!function(n){if("object"==typeof exports)module.exports=n();else if("function"==typeof define&&define.amd)define(n);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self);t.proj4=n()}}(function(){return function n(t,i,r){function u(f,o){var h,s;if(!i[f]){if(!t[f]){if(h="function"==typeof require&&require,!o&&h)return h(f,!0);if(e)return e(f,!0);throw new Error("Cannot find module '"+f+"'");}s=i[f]={exports:{}};t[f][0].call(s.exports,function(n){var i=t[f][1][n];return u(i?i:n)},s,s.exports,n,t,i,r)}return i[f].exports}for(var e="function"==typeof require&&require,f=0;f<r.length;f++)u(r[f]);return u}({1:[function(n,t){function i(n,t,r){if(!(this instanceof i))return new i(n,t,r);if(Array.isArray(n))this.x=n[0],this.y=n[1],this.z=n[2]||0;else if("object"==typeof n)this.x=n.x,this.y=n.y,this.z=n.z||0;else if("string"==typeof n&&"undefined"==typeof t){var u=n.split(",");this.x=parseFloat(u[0],10);this.y=parseFloat(u[1],10);this.z=parseFloat(u[2],10)||0}else this.x=n,this.y=t,this.z=r||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}var r=n("mgrs");i.fromMGRS=function(n){return new i(r.toPoint(n))};i.prototype.toMGRS=function(n){return r.forward([this.x,this.y],n)};t.exports=i},{mgrs:66}],2:[function(n,t){function i(n,t){var f,o,s;if(!(this instanceof i))return new i(n);if(t=t||function(n){if(n)throw n;},f=u(n),"object"!=typeof f)return void t(n);o=e(f);s=i.projections.get(o.projName);s?(r(this,o),r(this,s),this.init(),t(null,this)):t(n)}var u=n("./parseCode"),r=n("./extend"),f=n("./projections"),e=n("./deriveConstants");i.projections=f;i.projections.start();t.exports=i},{"./deriveConstants":32,"./extend":33,"./parseCode":36,"./projections":38}],3:[function(n,t){t.exports=function(n,t,i){for(var r,u,e=i.x,o=i.y,s=i.z||0,f=0;3>f;f++)if(!t||2!==f||void 0!==i.z)switch(0===f?(r=e,u="x"):1===f?(r=o,u="y"):(r=s,u="z"),n.axis[f]){case"e":i[u]=r;break;case"w":i[u]=-r;break;case"n":i[u]=r;break;case"s":i[u]=-r;break;case"u":void 0!==i[u]&&(i.z=r);break;case"d":void 0!==i[u]&&(i.z=-r);break;default:return null}return i}},{}],4:[function(n,t){var i=Math.PI/2,r=n("./sign");t.exports=function(n){return Math.abs(n)<i?n:n-r(n)*Math.PI}},{"./sign":21}],5:[function(n,t){var i=2*Math.PI,r=3.14159265359,u=n("./sign");t.exports=function(n){return Math.abs(n)<=r?n:n-u(n)*i}},{"./sign":21}],6:[function(n,t){t.exports=function(n){return Math.abs(n)>1&&(n=n>1?1:-1),Math.asin(n)}},{}],7:[function(n,t){t.exports=function(n){return 1-.25*n*(1+n/16*(3+1.25*n))}},{}],8:[function(n,t){t.exports=function(n){return.375*n*(1+.25*n*(1+.46875*n))}},{}],9:[function(n,t){t.exports=function(n){return.05859375*n*n*(1+.75*n)}},{}],10:[function(n,t){t.exports=function(n){return n*n*n*(35/3072)}},{}],11:[function(n,t){t.exports=function(n,t,i){var r=t*i;return n/Math.sqrt(1-r*r)}},{}],12:[function(n,t){t.exports=function(n,t,i,r,u){for(var e,f=n/t,o=0;15>o;o++)if(e=(n-(t*f-i*Math.sin(2*f)+r*Math.sin(4*f)-u*Math.sin(6*f)))/(t-2*i*Math.cos(2*f)+4*r*Math.cos(4*f)-6*u*Math.cos(6*f)),f+=e,Math.abs(e)<=1e-10)return f;return NaN}},{}],13:[function(n,t){var i=Math.PI/2;t.exports=function(n,t){var h=1-(1-n*n)/(2*n)*Math.log((1-n)/(1+n)),f,e,s,r,u,o;if(Math.abs(Math.abs(t)-h)<1e-6)return 0>t?-1*i:i;for(u=Math.asin(.5*t),o=0;30>o;o++)if(e=Math.sin(u),s=Math.cos(u),r=n*e,f=Math.pow(1-r*r,2)/(2*s)*(t/(1-n*n)-e/(1-r*r)+.5/n*Math.log((1-r)/(1+r))),u+=f,Math.abs(f)<=1e-10)return u;return NaN}},{}],14:[function(n,t){t.exports=function(n,t,i,r,u){return n*u-t*Math.sin(2*u)+i*Math.sin(4*u)-r*Math.sin(6*u)}},{}],15:[function(n,t){t.exports=function(n,t,i){var r=n*t;return i/Math.sqrt(1-r*r)}},{}],16:[function(n,t){var i=Math.PI/2;t.exports=function(n,t){for(var u,f,o=.5*n,r=i-2*Math.atan(t),e=0;15>=e;e++)if(u=n*Math.sin(r),f=i-2*Math.atan(t*Math.pow((1-u)/(1+u),o))-r,r+=f,Math.abs(f)<=1e-10)return r;return-9999}},{}],17:[function(n,t){var f=1,e=.25,i=.046875,r=.01953125,u=.01068115234375,o=.75,s=.46875,h=.013020833333333334,c=.007120768229166667,l=.36458333333333331,a=.005696614583333333,v=.3076171875;t.exports=function(n){var t=[],y;return t[0]=f-n*(e+n*(i+n*(r+n*u))),t[1]=n*(o-n*(i+n*(r+n*u))),y=n*n,t[2]=y*(s-n*(h+n*c)),y*=n,t[3]=y*(l-n*a),t[4]=y*n*v,t}},{}],18:[function(n,t){var i=n("./pj_mlfn"),r=1e-10,u=20;t.exports=function(n,t,f){for(var s,o,c=1/(1-t),e=n,h=u;h;--h)if(s=Math.sin(e),o=1-t*s*s,o=(i(e,s,Math.cos(e),f)-n)*o*Math.sqrt(o)*c,e-=o,Math.abs(o)<r)return e;return e}},{"./pj_mlfn":19}],19:[function(n,t){t.exports=function(n,t,i,r){return i*=t,t*=t,r[0]*n-i*(r[1]+t*(r[2]+t*(r[3]+t*r[4])))}},{}],20:[function(n,t){t.exports=function(n,t){var i;return n>1e-7?(i=n*t,(1-n*n)*(t/(1-i*i)-.5/n*Math.log((1-i)/(1+i)))):2*t}},{}],21:[function(n,t){t.exports=function(n){return 0>n?-1:1}},{}],22:[function(n,t){t.exports=function(n,t){return Math.pow((1-n)/(1+n),t)}},{}],23:[function(n,t){t.exports=function(n){var t={x:n[0],y:n[1]};return n.length>2&&(t.z=n[2]),n.length>3&&(t.m=n[3]),t}},{}],24:[function(n,t){var i=Math.PI/2;t.exports=function(n,t,r){var u=n*r,f=.5*n;return u=Math.pow((1-u)/(1+u),f),Math.tan(.5*(i-t))/u}},{}],25:[function(n,t,i){i.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"};i.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"};i.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"};i.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"};i.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"};i.potsdam={towgs84:"606.0,23.0,413.0",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"};i.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"};i.hermannskogel={towgs84:"653.0,-212.0,449.0",ellipse:"bessel",datumName:"Hermannskogel"};i.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"};i.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"};i.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"};i.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"};i.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"};i.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"};i.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"};i.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"}},{}],26:[function(n,t,i){i.MERIT={a:6378137,rf:298.257,ellipseName:"MERIT 1983"};i.SGS85={a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"};i.GRS80={a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"};i.IAU76={a:6378140,rf:298.257,ellipseName:"IAU 1976"};i.airy={a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"};i.APL4={a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"};i.NWL9D={a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"};i.mod_airy={a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"};i.andrae={a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"};i.aust_SA={a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"};i.GRS67={a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"};i.bessel={a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"};i.bess_nam={a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"};i.clrk66={a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"};i.clrk80={a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."};i.clrk58={a:6378293.6452087592,rf:294.26067636926541,ellipseName:"Clarke 1858"};i.CPM={a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"};i.delmbr={a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"};i.engelis={a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"};i.evrst30={a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"};i.evrst48={a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"};i.evrst56={a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"};i.evrst69={a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"};i.evrstSS={a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"};i.fschr60={a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"};i.fschr60m={a:6378155,rf:298.3,ellipseName:"Fischer 1960"};i.fschr68={a:6378150,rf:298.3,ellipseName:"Fischer 1968"};i.helmert={a:6378200,rf:298.3,ellipseName:"Helmert 1906"};i.hough={a:6378270,rf:297,ellipseName:"Hough"};i.intl={a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"};i.kaula={a:6378163,rf:298.24,ellipseName:"Kaula 1961"};i.lerch={a:6378139,rf:298.257,ellipseName:"Lerch 1979"};i.mprts={a:6397300,rf:191,ellipseName:"Maupertius 1738"};i.new_intl={a:6378157.5,b:6356772.2,ellipseName:"New International 1967"};i.plessis={a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"};i.krass={a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"};i.SEasia={a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"};i.walbeck={a:6376896,b:6355834.8467,ellipseName:"Walbeck"};i.WGS60={a:6378165,rf:298.3,ellipseName:"WGS 60"};i.WGS66={a:6378145,rf:298.25,ellipseName:"WGS 66"};i.WGS7={a:6378135,rf:298.26,ellipseName:"WGS 72"};i.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};i.sphere={a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}},{}],27:[function(n,t,i){i.greenwich=0;i.lisbon=-9.131906111111;i.paris=2.337229166667;i.bogota=-74.080916666667;i.madrid=-3.687938888889;i.rome=12.452333333333;i.bern=7.439583333333;i.jakarta=106.807719444444;i.ferro=-17.666666666667;i.brussels=4.367975;i.stockholm=18.058277777778;i.athens=23.7163375;i.oslo=10.722916666667},{}],28:[function(n,t){function i(n,t,i){var r;return Array.isArray(i)?(r=f(n,t,i),3===i.length?[r.x,r.y,r.z]:[r.x,r.y]):f(n,t,i)}function u(n){return n instanceof r?n:n.oProj?n.oProj:r(n)}function o(n,t,r){n=u(n);var f,o=!1;return"undefined"==typeof t?(t=n,n=e,o=!0):("undefined"!=typeof t.x||Array.isArray(t))&&(r=t,t=n,n=e,o=!0),t=u(t),r?i(n,t,r):(f={forward:function(r){return i(n,t,r)},inverse:function(r){return i(t,n,r)}},o&&(f.oProj=t),f)}var r=n("./Proj"),f=n("./transform"),e=r("WGS84");t.exports=o},{"./Proj":2,"./transform":64}],29:[function(n,t){var i=Math.PI/2,r=1,u=2,f=3,h=4,c=5,o=484813681109536e-20,l=1.0026,s=.38268343236508978,e=function(n){if(!(this instanceof e))return new e(n);if(this.datum_type=h,n){if(n.datumCode&&"none"===n.datumCode&&(this.datum_type=c),n.datum_params){for(var t=0;t<n.datum_params.length;t++)n.datum_params[t]=parseFloat(n.datum_params[t]);(0!==n.datum_params[0]||0!==n.datum_params[1]||0!==n.datum_params[2])&&(this.datum_type=r);n.datum_params.length>3&&(0!==n.datum_params[3]||0!==n.datum_params[4]||0!==n.datum_params[5]||0!==n.datum_params[6])&&(this.datum_type=u,n.datum_params[3]*=o,n.datum_params[4]*=o,n.datum_params[5]*=o,n.datum_params[6]=n.datum_params[6]/1e6+1)}this.datum_type=n.grids?f:this.datum_type;this.a=n.a;this.b=n.b;this.es=n.es;this.ep2=n.ep2;this.datum_params=n.datum_params;this.datum_type===f&&(this.grids=n.grids)}};e.prototype={compare_datums:function(n){return this.datum_type!==n.datum_type?!1:this.a!==n.a||Math.abs(this.es-n.es)>5e-11?!1:this.datum_type===r?this.datum_params[0]===n.datum_params[0]&&this.datum_params[1]===n.datum_params[1]&&this.datum_params[2]===n.datum_params[2]:this.datum_type===u?this.datum_params[0]===n.datum_params[0]&&this.datum_params[1]===n.datum_params[1]&&this.datum_params[2]===n.datum_params[2]&&this.datum_params[3]===n.datum_params[3]&&this.datum_params[4]===n.datum_params[4]&&this.datum_params[5]===n.datum_params[5]&&this.datum_params[6]===n.datum_params[6]:this.datum_type===f||n.datum_type===f?this.nadgrids===n.nadgrids:!0},geodetic_to_geocentric:function(n){var s,h,c,r,u,l,e,f=n.x,t=n.y,o=n.z?n.z:0;if(-i>t&&t>-1.001*i)t=-i;else if(t>i&&1.001*i>t)t=i;else if(-i>t||t>i)return null;return f>Math.PI&&(f-=2*Math.PI),u=Math.sin(t),e=Math.cos(t),l=u*u,r=this.a/Math.sqrt(1-this.es*l),s=(r+o)*e*Math.cos(f),h=(r+o)*e*Math.sin(f),c=(r*(1-this.es)+o)*u,n.x=s,n.y=h,n.z=c,0},geocentric_to_geodetic:function(n){var o,s,b,r,u,h,c,l,t,a,v,k,tt,d,g,nt,y,p=1e-12,it=p*p,f=n.x,e=n.y,w=n.z?n.z:0;if(tt=!1,o=Math.sqrt(f*f+e*e),s=Math.sqrt(f*f+e*e+w*w),o/this.a<p){if(tt=!0,g=0,s/this.a<p)return nt=i,void(y=-this.b)}else g=Math.atan2(e,f);b=w/s;r=o/s;u=1/Math.sqrt(1-this.es*(2-this.es)*r*r);l=r*(1-this.es)*u;t=b*u;d=0;do d++,c=this.a/Math.sqrt(1-this.es*t*t),y=o*l+w*t-c*(1-this.es*t*t),h=this.es*c/(c+y),u=1/Math.sqrt(1-h*(2-h)*r*r),a=r*(1-h)*u,v=b*u,k=v*l-a*t,l=a,t=v;while(k*k>it&&30>d);return nt=Math.atan(v/Math.abs(a)),n.x=g,n.y=nt,n.z=y,n},geocentric_to_geodetic_noniter:function(n){var e,o,k,h,d,a,v,g,nt,y,it,p,c,u,w,b,tt,f=n.x,t=n.y,r=n.z?n.z:0;if(f=parseFloat(f),t=parseFloat(t),r=parseFloat(r),tt=!1,0!==f)e=Math.atan2(t,f);else if(t>0)e=i;else if(0>t)e=-i;else if(tt=!0,e=0,r>0)o=i;else{if(!(0>r))return o=i,void(k=-this.b);o=-i}return d=f*f+t*t,h=Math.sqrt(d),a=r*l,g=Math.sqrt(a*a+d),y=a/g,p=h/g,it=y*y*y,v=r+this.b*this.ep2*it,b=h-this.a*this.es*p*p*p,nt=Math.sqrt(v*v+b*b),c=v/nt,u=b/nt,w=this.a/Math.sqrt(1-this.es*c*c),k=u>=s?h/u-w:-s>=u?h/-u-w:r/c+w*(this.es-1),tt===!1&&(o=Math.atan(c/u)),n.x=e,n.y=o,n.z=k,n},geocentric_to_wgs84:function(n){if(this.datum_type===r)n.x+=this.datum_params[0],n.y+=this.datum_params[1],n.z+=this.datum_params[2];else if(this.datum_type===u){var o=this.datum_params[0],s=this.datum_params[1],h=this.datum_params[2],i=this.datum_params[3],f=this.datum_params[4],e=this.datum_params[5],t=this.datum_params[6],c=t*(n.x-e*n.y+f*n.z)+o,l=t*(e*n.x+n.y-i*n.z)+s,a=t*(-f*n.x+i*n.y+n.z)+h;n.x=c;n.y=l;n.z=a}},geocentric_from_wgs84:function(n){if(this.datum_type===r)n.x-=this.datum_params[0],n.y-=this.datum_params[1],n.z-=this.datum_params[2];else if(this.datum_type===u){var c=this.datum_params[0],l=this.datum_params[1],a=this.datum_params[2],o=this.datum_params[3],s=this.datum_params[4],h=this.datum_params[5],t=this.datum_params[6],i=(n.x-c)/t,f=(n.y-l)/t,e=(n.z-a)/t;n.x=i+h*f-s*e;n.y=-h*i+f+o*e;n.z=s*i-o*f+e}}};t.exports=e},{}],30:[function(n,t){var r=1,u=2,i=3,f=5,e=6378137,o=.0066943799901413156;t.exports=function(n,t,s){function h(n){return n===r||n===u}var l,c,y;if(n.compare_datums(t)||n.datum_type===f||t.datum_type===f)return s;var a=n.a,p=n.es,w=t.a,b=t.es,v=n.datum_type;if(v===i)if(0===this.apply_gridshift(n,0,s))n.a=e,n.es=o;else{if(!n.datum_params)return n.a=a,n.es=n.es,s;for(l=1,c=0,y=n.datum_params.length;y>c;c++)l*=n.datum_params[c];if(0===l)return n.a=a,n.es=n.es,s;v=n.datum_params.length>3?u:r}return t.datum_type===i&&(t.a=e,t.es=o),(n.es!==t.es||n.a!==t.a||h(v)||h(t.datum_type))&&(n.geodetic_to_geocentric(s),h(n.datum_type)&&n.geocentric_to_wgs84(s),h(t.datum_type)&&t.geocentric_from_wgs84(s),t.geocentric_to_geodetic(s)),t.datum_type===i&&this.apply_gridshift(t,1,s),n.a=a,n.es=p,t.a=w,t.es=b,s}},{}],31:[function(n,t){function i(n){var r=this,t;if(2===arguments.length)t=arguments[1],i[n]="string"==typeof t?"+"===t.charAt(0)?u(arguments[1]):f(arguments[1]):t;else if(1===arguments.length){if(Array.isArray(n))return n.map(function(n){Array.isArray(n)?i.apply(r,n):i(n)});if("string"==typeof n){if(n in i)return i[n]}else"EPSG"in n?i["EPSG:"+n.EPSG]=n:"ESRI"in n?i["ESRI:"+n.ESRI]=n:"IAU2000"in n?i["IAU2000:"+n.IAU2000]=n:console.log(n);return}}var r=n("./global"),u=n("./projString"),f=n("./wkt");r(i);t.exports=i},{"./global":34,"./projString":37,"./wkt":65}],32:[function(n,t){var r=n("./constants/Datum"),i=n("./constants/Ellipsoid"),u=n("./extend"),f=n("./datum"),e=1e-10,o=.16666666666666666,s=.047222222222222221,h=.022156084656084655;t.exports=function(n){var t,c;return n.datumCode&&"none"!==n.datumCode&&(t=r[n.datumCode],t&&(n.datum_params=t.towgs84?t.towgs84.split(","):null,n.ellps=t.ellipse,n.datumName=t.datumName?t.datumName:n.datumCode)),n.a||(c=i[n.ellps]?i[n.ellps]:i.WGS84,u(n,c)),n.rf&&!n.b&&(n.b=(1-1/n.rf)*n.a),(0===n.rf||Math.abs(n.a-n.b)<e)&&(n.sphere=!0,n.b=n.a),n.a2=n.a*n.a,n.b2=n.b*n.b,n.es=(n.a2-n.b2)/n.a2,n.e=Math.sqrt(n.es),n.R_A&&(n.a*=1-n.es*(o+n.es*(s+n.es*h)),n.a2=n.a*n.a,n.b2=n.b*n.b,n.es=0),n.ep2=(n.a2-n.b2)/n.b2,n.k0||(n.k0=1),n.axis||(n.axis="enu"),n.datum||(n.datum=f(n)),n}},{"./constants/Datum":25,"./constants/Ellipsoid":26,"./datum":29,"./extend":33}],33:[function(n,t){t.exports=function(n,t){n=n||{};var i,r;if(!t)return n;for(r in t)i=t[r],void 0!==i&&(n[r]=i);return n}},{}],34:[function(n,t){t.exports=function(n){n("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees");n("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees");n("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");n.WGS84=n["EPSG:4326"];n["EPSG:3785"]=n["EPSG:3857"];n.GOOGLE=n["EPSG:3857"];n["EPSG:900913"]=n["EPSG:3857"];n["EPSG:102113"]=n["EPSG:3857"]}},{}],35:[function(n,t){var i=n("./core");i.defaultDatum="WGS84";i.Proj=n("./Proj");i.WGS84=new i.Proj("WGS84");i.Point=n("./Point");i.toPoint=n("./common/toPoint");i.defs=n("./defs");i.transform=n("./transform");i.mgrs=n("mgrs");i.version=n("../package.json").version;n("./includedProjections")(i);t.exports=i},{"../package.json":67,"./Point":1,"./Proj":2,"./common/toPoint":23,"./core":28,"./defs":31,"./includedProjections":"gWUPNW","./transform":64,mgrs:66}],36:[function(n,t){function r(n){return"string"==typeof n}function u(n){return n in i}function f(n){return["GEOGCS","GEOCCS","PROJCS","LOCAL_CS"].reduce(function(t,i){return t+1+n.indexOf(i)},0)}function e(n){return"+"===n[0]}function o(n){return r(n)?u(n)?i[n]:f(n)?s(n):e(n)?h(n):void 0:n}var i=n("./defs"),s=n("./wkt"),h=n("./projString");t.exports=o},{"./defs":31,"./projString":37,"./wkt":65}],37:[function(n,t){var i=.017453292519943295,r=n("./constants/PrimeMeridian");t.exports=function(n){var t={},o={},u,f,e,s;n.split("+").map(function(n){return n.trim()}).filter(function(n){return n}).forEach(function(n){var t=n.split("=");t.push(!0);o[t[0].toLowerCase()]=t[1]});s={proj:"projName",datum:"datumCode",rf:function(n){t.rf=parseFloat(n)},lat_0:function(n){t.lat0=n*i},lat_1:function(n){t.lat1=n*i},lat_2:function(n){t.lat2=n*i},lat_ts:function(n){t.lat_ts=n*i},lon_0:function(n){t.long0=n*i},lon_1:function(n){t.long1=n*i},lon_2:function(n){t.long2=n*i},alpha:function(n){t.alpha=parseFloat(n)*i},lonc:function(n){t.longc=n*i},x_0:function(n){t.x0=parseFloat(n)},y_0:function(n){t.y0=parseFloat(n)},k_0:function(n){t.k0=parseFloat(n)},k:function(n){t.k0=parseFloat(n)},a:function(n){t.a=parseFloat(n)},b:function(n){t.b=parseFloat(n)},r_a:function(){t.R_A=!0},zone:function(n){t.zone=parseInt(n,10)},south:function(){t.utmSouth=!0},towgs84:function(n){t.datum_params=n.split(",").map(function(n){return parseFloat(n)})},to_meter:function(n){t.to_meter=parseFloat(n)},from_greenwich:function(n){t.from_greenwich=n*i},pm:function(n){t.from_greenwich=(r[n]?r[n]:parseFloat(n))*i},nadgrids:function(n){"@null"===n?t.datumCode="none":t.nadgrids=n},axis:function(n){var i="ewnsud";3===n.length&&-1!==i.indexOf(n.substr(0,1))&&-1!==i.indexOf(n.substr(1,1))&&-1!==i.indexOf(n.substr(2,1))&&(t.axis=n)}};for(u in o)f=o[u],u in s?(e=s[u],"function"==typeof e?e(f):t[e]=f):t[u]=f;return"string"==typeof t.datumCode&&"WGS84"!==t.datumCode&&(t.datumCode=t.datumCode.toLowerCase()),t}},{"./constants/PrimeMeridian":27}],38:[function(n,t,i){function f(n,t){var i=u.length;return n.names?(u[i]=n,n.names.forEach(function(n){r[n.toLowerCase()]=i}),this):(console.log(t),!0)}var e=[n("./projections/merc"),n("./projections/longlat")],r={},u=[];i.add=f;i.get=function(n){if(!n)return!1;var t=n.toLowerCase();if("undefined"!=typeof r[t]&&u[r[t]])return u[r[t]]};i.start=function(){e.forEach(f)}},{"./projections/longlat":50,"./projections/merc":51}],39:[function(n,t,i){var u=1e-10,f=n("../common/msfnz"),r=n("../common/qsfnz"),e=n("../common/adjust_lon"),o=n("../common/asinz");i.init=function(){Math.abs(this.lat1+this.lat2)<u||(this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e3=Math.sqrt(this.es),this.sin_po=Math.sin(this.lat1),this.cos_po=Math.cos(this.lat1),this.t1=this.sin_po,this.con=this.sin_po,this.ms1=f(this.e3,this.sin_po,this.cos_po),this.qs1=r(this.e3,this.sin_po,this.cos_po),this.sin_po=Math.sin(this.lat2),this.cos_po=Math.cos(this.lat2),this.t2=this.sin_po,this.ms2=f(this.e3,this.sin_po,this.cos_po),this.qs2=r(this.e3,this.sin_po,this.cos_po),this.sin_po=Math.sin(this.lat0),this.cos_po=Math.cos(this.lat0),this.t3=this.sin_po,this.qs0=r(this.e3,this.sin_po,this.cos_po),this.ns0=Math.abs(this.lat1-this.lat2)>u?(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)};i.forward=function(n){var f=n.x,t=n.y;this.sin_phi=Math.sin(t);this.cos_phi=Math.cos(t);var o=r(this.e3,this.sin_phi,this.cos_phi),i=this.a*Math.sqrt(this.c-this.ns0*o)/this.ns0,u=this.ns0*e(f-this.long0),s=i*Math.sin(u)+this.x0,h=this.rh-i*Math.cos(u)+this.y0;return n.x=s,n.y=h,n};i.inverse=function(n){var i,f,t,r,o,u;return n.x-=this.x0,n.y=this.rh-n.y+this.y0,this.ns0>=0?(i=Math.sqrt(n.x*n.x+n.y*n.y),t=1):(i=-Math.sqrt(n.x*n.x+n.y*n.y),t=-1),r=0,0!==i&&(r=Math.atan2(t*n.x,t*n.y)),t=i*this.ns0/this.a,this.sphere?u=Math.asin((this.c-t*t)/(2*this.ns0)):(f=(this.c-t*t)/this.ns0,u=this.phi1z(this.e3,f)),o=e(r/this.ns0+this.long0),n.x=o,n.y=u,n};i.phi1z=function(n,t){var e,c,i,f,s,r=o(.5*t),l,h;if(u>n)return r;for(l=n*n,h=1;25>=h;h++)if(e=Math.sin(r),c=Math.cos(r),i=n*e,f=1-i*i,s=.5*f*f/c*(t/(1-l)-e/f+.5/n*Math.log((1-i)/(1+i))),r+=s,Math.abs(s)<=1e-7)return r;return null};i.names=["Albers_Conic_Equal_Area","Albers","aea"]},{"../common/adjust_lon":5,"../common/asinz":6,"../common/msfnz":15,"../common/qsfnz":20}],40:[function(n,t,i){var e=n("../common/adjust_lon"),r=Math.PI/2,u=1e-10,f=n("../common/mlfn"),s=n("../common/e0fn"),h=n("../common/e1fn"),c=n("../common/e2fn"),l=n("../common/e3fn"),o=n("../common/gN"),v=n("../common/asinz"),a=n("../common/imlfn");i.init=function(){this.sin_p12=Math.sin(this.lat0);this.cos_p12=Math.cos(this.lat0)};i.forward=function(n){var d,g,nt,tt,p,w,at,et,vt,i,a,rt,ut,ot,v,b,st,yt,y,ht,ct,lt,pt,wt=n.x,k=n.y,ft=Math.sin(n.y),it=Math.cos(n.y),t=e(wt-this.long0);return this.sphere?Math.abs(this.sin_p12-1)<=u?(n.x=this.x0+this.a*(r-k)*Math.sin(t),n.y=this.y0-this.a*(r-k)*Math.cos(t),n):Math.abs(this.sin_p12+1)<=u?(n.x=this.x0+this.a*(r+k)*Math.sin(t),n.y=this.y0+this.a*(r+k)*Math.cos(t),n):(yt=this.sin_p12*ft+this.cos_p12*it*Math.cos(t),b=Math.acos(yt),st=b/Math.sin(b),n.x=this.x0+this.a*st*it*Math.sin(t),n.y=this.y0+this.a*st*(this.cos_p12*ft-this.sin_p12*it*Math.cos(t)),n):(d=s(this.es),g=h(this.es),nt=c(this.es),tt=l(this.es),Math.abs(this.sin_p12-1)<=u?(p=this.a*f(d,g,nt,tt,r),w=this.a*f(d,g,nt,tt,k),n.x=this.x0+(p-w)*Math.sin(t),n.y=this.y0-(p-w)*Math.cos(t),n):Math.abs(this.sin_p12+1)<=u?(p=this.a*f(d,g,nt,tt,r),w=this.a*f(d,g,nt,tt,k),n.x=this.x0+(p+w)*Math.sin(t),n.y=this.y0+(p+w)*Math.cos(t),n):(at=ft/it,et=o(this.a,this.e,this.sin_p12),vt=o(this.a,this.e,ft),i=Math.atan((1-this.es)*at+this.es*et*this.sin_p12/(vt*it)),a=Math.atan2(Math.sin(t),this.cos_p12*Math.tan(i)-this.sin_p12*Math.cos(t)),y=0===a?Math.asin(this.cos_p12*Math.sin(i)-this.sin_p12*Math.cos(i)):Math.abs(Math.abs(a)-Math.PI)<=u?-Math.asin(this.cos_p12*Math.sin(i)-this.sin_p12*Math.cos(i)):Math.asin(Math.sin(t)*Math.cos(i)/Math.sin(a)),rt=this.e*this.sin_p12/Math.sqrt(1-this.es),ut=this.e*this.cos_p12*Math.cos(a)/Math.sqrt(1-this.es),ot=rt*ut,v=ut*ut,ht=y*y,ct=ht*y,lt=ct*y,pt=lt*y,b=et*y*(1-ht*v*(1-v)/6+ct/8*ot*(1-2*v)+lt/120*(v*(4-7*v)-3*rt*rt*(1-7*v))-pt/48*ot),n.x=this.x0+b*Math.sin(a),n.y=this.y0+b*Math.cos(a),n))};i.inverse=function(n){n.x-=this.x0;n.y-=this.y0;var t,et,tt,ot,i,y,ct,b,k,d,g,it,rt,lt,ut,st,ft,ht,w,at,nt,p,vt;return this.sphere?(t=Math.sqrt(n.x*n.x+n.y*n.y),t>2*r*this.a)?void 0:(et=t/this.a,tt=Math.sin(et),ot=Math.cos(et),i=this.long0,Math.abs(t)<=u?y=this.lat0:(y=v(ot*this.sin_p12+n.y*tt*this.cos_p12/t),ct=Math.abs(this.lat0)-r,i=e(Math.abs(ct)<=u?this.lat0>=0?this.long0+Math.atan2(n.x,-n.y):this.long0-Math.atan2(-n.x,n.y):this.long0+Math.atan2(n.x*tt,t*this.cos_p12*ot-n.y*this.sin_p12*tt))),n.x=i,n.y=y,n):(b=s(this.es),k=h(this.es),d=c(this.es),g=l(this.es),Math.abs(this.sin_p12-1)<=u?(it=this.a*f(b,k,d,g,r),t=Math.sqrt(n.x*n.x+n.y*n.y),rt=it-t,y=a(rt/this.a,b,k,d,g),i=e(this.long0+Math.atan2(n.x,-1*n.y)),n.x=i,n.y=y,n):Math.abs(this.sin_p12+1)<=u?(it=this.a*f(b,k,d,g,r),t=Math.sqrt(n.x*n.x+n.y*n.y),rt=t-it,y=a(rt/this.a,b,k,d,g),i=e(this.long0+Math.atan2(n.x,n.y)),n.x=i,n.y=y,n):(t=Math.sqrt(n.x*n.x+n.y*n.y),st=Math.atan2(n.x,n.y),lt=o(this.a,this.e,this.sin_p12),ft=Math.cos(st),ht=this.e*this.cos_p12*ft,w=-ht*ht/(1-this.es),at=3*this.es*(1-w)*this.sin_p12*this.cos_p12*ft/(1-this.es),nt=t/lt,p=nt-w*(1+w)*Math.pow(nt,3)/6-at*(1+3*w)*Math.pow(nt,4)/24,vt=1-w*p*p/2-nt*p*p*p/6,ut=Math.asin(this.sin_p12*Math.cos(p)+this.cos_p12*Math.sin(p)*ft),i=e(this.long0+Math.asin(Math.sin(st)*Math.sin(p)/Math.cos(ut))),y=Math.atan((1-this.es*vt*this.sin_p12/Math.sin(ut))*Math.tan(ut)/(1-this.es)),n.x=i,n.y=y,n))};i.names=["Azimuthal_Equidistant","aeqd"]},{"../common/adjust_lon":5,"../common/asinz":6,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/imlfn":12,"../common/mlfn":14}],41:[function(n,t,i){var r=n("../common/mlfn"),o=n("../common/e0fn"),s=n("../common/e1fn"),h=n("../common/e2fn"),c=n("../common/e3fn"),u=n("../common/gN"),f=n("../common/adjust_lon"),l=n("../common/adjust_lat"),a=n("../common/imlfn"),e=Math.PI/2,v=1e-10;i.init=function(){this.sphere||(this.e0=o(this.es),this.e1=s(this.es),this.e2=h(this.es),this.e3=c(this.es),this.ml0=this.a*r(this.e0,this.e1,this.e2,this.e3,this.lat0))};i.forward=function(n){var o,s,i=n.x,t=n.y;if(i=f(i-this.long0),this.sphere)o=this.a*Math.asin(Math.cos(t)*Math.sin(i)),s=this.a*(Math.atan2(Math.tan(t),Math.cos(i))-this.lat0);else{var a=Math.sin(t),h=Math.cos(t),v=u(this.a,this.e,a),c=Math.tan(t)*Math.tan(t),l=i*Math.cos(t),e=l*l,y=this.es*h*h/(1-this.es),p=this.a*r(this.e0,this.e1,this.e2,this.e3,t);o=v*l*(1-e*c*(1/6-(8-c+8*y)*e/120));s=p-this.ml0+v*a/h*e*(.5+(5-c+6*y)*e/24)}return n.x=o+this.x0,n.y=s+this.y0,n};i.inverse=function(n){var c,y,o,s,p,w,t;if(n.x-=this.x0,n.y-=this.y0,o=n.x/this.a,s=n.y/this.a,this.sphere)p=s+this.lat0,c=Math.asin(Math.sin(p)*Math.cos(o)),y=Math.atan2(Math.tan(o),Math.cos(p));else{if(w=this.ml0/this.a+s,t=a(w,this.e0,this.e1,this.e2,this.e3),Math.abs(Math.abs(t)-e)<=v)return n.x=this.long0,n.y=e,0>s&&(n.y*=-1),n;var r=u(this.a,this.e,Math.sin(t)),k=r*r*r/this.a/this.a*(1-this.es),h=Math.pow(Math.tan(t),2),i=o*this.a/r,b=i*i;c=t-r*Math.tan(t)/k*i*i*(.5-(1+3*h)*i*i/24);y=i*(1-b*(h/3+(1+3*h)*h*b/15))/Math.cos(t)}return n.x=f(y+this.long0),n.y=l(c),n};i.names=["Cassini","Cassini_Soldner","cass"]},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/imlfn":12,"../common/mlfn":14}],42:[function(n,t,i){var r=n("../common/adjust_lon"),u=n("../common/qsfnz"),f=n("../common/msfnz"),e=n("../common/iqsfnz");i.init=function(){this.sphere||(this.k0=f(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))};i.forward=function(n){var t,i,s=n.x,f=n.y,e=r(s-this.long0),o;return this.sphere?(t=this.x0+this.a*e*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(f)/Math.cos(this.lat_ts)):(o=u(this.e,Math.sin(f)),t=this.x0+this.a*this.k0*e,i=this.y0+this.a*o*.5/this.k0),n.x=t,n.y=i,n};i.inverse=function(n){n.x-=this.x0;n.y-=this.y0;var t,i;return this.sphere?(t=r(this.long0+n.x/this.a/Math.cos(this.lat_ts)),i=Math.asin(n.y/this.a*Math.cos(this.lat_ts))):(i=e(this.e,2*n.y*this.k0/this.a),t=r(this.long0+n.x/(this.a*this.k0))),n.x=t,n.y=i,n};i.names=["cea"]},{"../common/adjust_lon":5,"../common/iqsfnz":13,"../common/msfnz":15,"../common/qsfnz":20}],43:[function(n,t,i){var r=n("../common/adjust_lon"),u=n("../common/adjust_lat");i.init=function(){this.x0=this.x0||0;this.y0=this.y0||0;this.lat0=this.lat0||0;this.long0=this.long0||0;this.lat_ts=this.lat_ts||0;this.title=this.title||"Equidistant Cylindrical (Plate Carre)";this.rc=Math.cos(this.lat_ts)};i.forward=function(n){var t=n.x,i=n.y,f=r(t-this.long0),e=u(i-this.lat0);return n.x=this.x0+this.a*f*this.rc,n.y=this.y0+this.a*e,n};i.inverse=function(n){var t=n.x,i=n.y;return n.x=r(this.long0+(t-this.x0)/(this.a*this.rc)),n.y=u(this.lat0+(i-this.y0)/this.a),n};i.names=["Equirectangular","Equidistant_Cylindrical","eqc"]},{"../common/adjust_lat":4,"../common/adjust_lon":5}],44:[function(n,t,i){var o=n("../common/e0fn"),s=n("../common/e1fn"),h=n("../common/e2fn"),c=n("../common/e3fn"),f=n("../common/msfnz"),r=n("../common/mlfn"),u=n("../common/adjust_lon"),l=n("../common/adjust_lat"),a=n("../common/imlfn"),e=1e-10;i.init=function(){Math.abs(this.lat1+this.lat2)<e||(this.lat2=this.lat2||this.lat1,this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=o(this.es),this.e1=s(this.es),this.e2=h(this.es),this.e3=c(this.es),this.sinphi=Math.sin(this.lat1),this.cosphi=Math.cos(this.lat1),this.ms1=f(this.e,this.sinphi,this.cosphi),this.ml1=r(this.e0,this.e1,this.e2,this.e3,this.lat1),Math.abs(this.lat1-this.lat2)<e?this.ns=this.sinphi:(this.sinphi=Math.sin(this.lat2),this.cosphi=Math.cos(this.lat2),this.ms2=f(this.e,this.sinphi,this.cosphi),this.ml2=r(this.e0,this.e1,this.e2,this.e3,this.lat2),this.ns=(this.ms1-this.ms2)/(this.ml2-this.ml1)),this.g=this.ml1+this.ms1/this.ns,this.ml0=r(this.e0,this.e1,this.e2,this.e3,this.lat0),this.rh=this.a*(this.g-this.ml0))};i.forward=function(n){var t,o=n.x,i=n.y,f;this.sphere?t=this.a*(this.g-i):(f=r(this.e0,this.e1,this.e2,this.e3,i),t=this.a*(this.g-f));var e=this.ns*u(o-this.long0),s=this.x0+t*Math.sin(e),h=this.y0+this.rh-t*Math.cos(e);return n.x=s,n.y=h,n};i.inverse=function(n){var i,t,r,f,e,o;return(n.x-=this.x0,n.y=this.rh-n.y+this.y0,this.ns>=0?(t=Math.sqrt(n.x*n.x+n.y*n.y),i=1):(t=-Math.sqrt(n.x*n.x+n.y*n.y),i=-1),e=0,0!==t&&(e=Math.atan2(i*n.x,i*n.y)),this.sphere)?(f=u(this.long0+e/this.ns),r=l(this.g-t/this.a),n.x=f,n.y=r,n):(o=this.g-t/this.a,r=a(o,this.e0,this.e1,this.e2,this.e3),f=u(this.long0+e/this.ns),n.x=f,n.y=r,n)};i.names=["Equidistant_Conic","eqdc"]},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/imlfn":12,"../common/mlfn":14,"../common/msfnz":15}],45:[function(n,t,i){var r=Math.PI/4,u=n("../common/srat"),f=Math.PI/2,e=20;i.init=function(){var n=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t;this.rc=Math.sqrt(1-this.es)/(1-this.es*n*n);this.C=Math.sqrt(1+this.es*t*t/(1-this.es));this.phic0=Math.asin(n/this.C);this.ratexp=.5*this.C*this.e;this.K=Math.tan(.5*this.phic0+r)/(Math.pow(Math.tan(.5*this.lat0+r),this.C)*u(this.e*n,this.ratexp))};i.forward=function(n){var i=n.x,t=n.y;return n.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*t+r),this.C)*u(this.e*Math.sin(t),this.ratexp))-f,n.x=this.C*i,n};i.inverse=function(n){for(var o=n.x/this.C,t=n.y,s=Math.pow(Math.tan(.5*t+r)/this.K,1/this.C),i=e;i>0&&(t=2*Math.atan(s*u(this.e*Math.sin(n.y),-.5*this.e))-f,!(Math.abs(t-n.y)<1e-14));--i)n.y=t;return i?(n.x=o,n.y=t,n):null};i.names=["gauss"]},{"../common/srat":22}],46:[function(n,t,i){var r=n("../common/adjust_lon"),u=1e-10,f=n("../common/asinz");i.init=function(){this.sin_p14=Math.sin(this.lat0);this.cos_p14=Math.cos(this.lat0);this.infinity_dist=1e3*this.a;this.rc=1};i.forward=function(n){var f,t,e,o,s,i,h,c,a=n.x,l=n.y;return e=r(a-this.long0),f=Math.sin(l),t=Math.cos(l),o=Math.cos(e),i=this.sin_p14*f+this.cos_p14*t*o,s=1,i>0||Math.abs(i)<=u?(h=this.x0+this.a*s*t*Math.sin(e)/i,c=this.y0+this.a*s*(this.cos_p14*f-this.sin_p14*t*o)/i):(h=this.x0+this.infinity_dist*t*Math.sin(e),c=this.y0+this.infinity_dist*(this.cos_p14*f-this.sin_p14*t*o)),n.x=h,n.y=c,n};i.inverse=function(n){var i,u,e,o,t,s;return n.x=(n.x-this.x0)/this.a,n.y=(n.y-this.y0)/this.a,n.x/=this.k0,n.y/=this.k0,(i=Math.sqrt(n.x*n.x+n.y*n.y))?(o=Math.atan2(i,this.rc),u=Math.sin(o),e=Math.cos(o),s=f(e*this.sin_p14+n.y*u*this.cos_p14/i),t=Math.atan2(n.x*u,i*this.cos_p14*e-n.y*this.sin_p14*u),t=r(this.long0+t)):(s=this.phic0,t=0),n.x=t,n.y=s,n};i.names=["gnom"]},{"../common/adjust_lon":5,"../common/asinz":6}],47:[function(n,t,i){var r=n("../common/adjust_lon");i.init=function(){this.a=6377397.155;this.es=.006674372230614;this.e=Math.sqrt(this.es);this.lat0||(this.lat0=.863937979737193);this.long0||(this.long0=.43342343091192509);this.k0||(this.k0=.9999);this.s45=.785398163397448;this.s90=2*this.s45;this.fi0=this.lat0;this.e2=this.es;this.e=Math.sqrt(this.e2);this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2));this.uq=1.04216856380474;this.u0=Math.asin(Math.sin(this.fi0)/this.alfa);this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2);this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g;this.k1=this.k0;this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2));this.s0=1.37008346281555;this.n=Math.sin(this.s0);this.ro0=this.k1*this.n0/Math.tan(this.s0);this.ad=this.s90-this.uq};i.forward=function(n){var s,t,i,u,h,f,e,c=n.x,o=n.y,l=r(c-this.long0);return s=Math.pow((1+this.e*Math.sin(o))/(1-this.e*Math.sin(o)),this.alfa*this.e/2),t=2*(Math.atan(this.k*Math.pow(Math.tan(o/2+this.s45),this.alfa)/s)-this.s45),i=-l*this.alfa,u=Math.asin(Math.cos(this.ad)*Math.sin(t)+Math.sin(this.ad)*Math.cos(t)*Math.cos(i)),h=Math.asin(Math.cos(t)*Math.sin(i)/Math.cos(u)),f=this.n*h,e=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(u/2+this.s45),this.n),n.y=e*Math.cos(f)/1,n.x=e*Math.sin(f)/1,this.czech||(n.y*=-1,n.x*=-1),n};i.inverse=function(n){var i,o,r,f,s,h,t,e,c=n.x,u;n.x=n.y;n.y=c;this.czech||(n.y*=-1,n.x*=-1);h=Math.sqrt(n.x*n.x+n.y*n.y);s=Math.atan2(n.y,n.x);f=s/Math.sin(this.s0);r=2*(Math.atan(Math.pow(this.ro0/h,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45);i=Math.asin(Math.cos(this.ad)*Math.sin(r)-Math.sin(this.ad)*Math.cos(r)*Math.cos(f));o=Math.asin(Math.cos(r)*Math.sin(f)/Math.cos(i));n.x=this.long0-o/this.alfa;t=i;e=0;u=0;do n.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(i/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(t))/(1-this.e*Math.sin(t)),this.e/2))-this.s45),Math.abs(t-n.y)<1e-10&&(e=1),t=n.y,u+=1;while(0===e&&15>u);return u>=15?null:n};i.names=["Krovak","krovak"]},{"../common/adjust_lon":5}],48:[function(n,t,i){var u=Math.PI/2,o=Math.PI/4,r=1e-10,f=n("../common/qsfnz"),e=n("../common/adjust_lon");i.S_POLE=1;i.N_POLE=2;i.EQUIT=3;i.OBLIQ=4;i.init=function(){var t=Math.abs(this.lat0),n;if(this.mode=Math.abs(t-u)<r?this.lat0<0?this.S_POLE:this.N_POLE:Math.abs(t)<r?this.EQUIT:this.OBLIQ,this.es>0)switch(this.qp=f(this.e,1),this.mmf=.5/(1-this.es),this.apa=this.authset(this.es),this.mode){case this.N_POLE:this.dd=1;break;case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp);this.dd=1/this.rq;this.xmf=1;this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp);n=Math.sin(this.lat0);this.sinb1=f(this.e,n)/this.qp;this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1);this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*n*n)*this.rq*this.cosb1);this.ymf=(this.xmf=this.rq)/this.dd;this.xmf*=this.dd}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))};i.forward=function(n){var y,t,s,b,p,h,c,l,i,w,a=n.x,v=n.y;if(a=e(a-this.long0),this.sphere){if(p=Math.sin(v),w=Math.cos(v),s=Math.cos(a),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(t=this.mode===this.EQUIT?1+w*s:1+this.sinph0*p+this.cosph0*w*s,r>=t)return null;t=Math.sqrt(2/t);y=t*w*Math.sin(a);t*=this.mode===this.EQUIT?p:this.cosph0*p-this.sinph0*w*s}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(s=-s),Math.abs(v+this.phi0)<r)return null;t=o-.5*v;t=2*(this.mode===this.S_POLE?Math.cos(t):Math.sin(t));y=t*Math.sin(a);t*=s}}else{switch(c=0,l=0,i=0,s=Math.cos(a),b=Math.sin(a),p=Math.sin(v),h=f(this.e,p),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(c=h/this.qp,l=Math.sqrt(1-c*c)),this.mode){case this.OBLIQ:i=1+this.sinb1*c+this.cosb1*l*s;break;case this.EQUIT:i=1+l*s;break;case this.N_POLE:i=u+v;h=this.qp-h;break;case this.S_POLE:i=v-u;h=this.qp+h}if(Math.abs(i)<r)return null;switch(this.mode){case this.OBLIQ:case this.EQUIT:i=Math.sqrt(2/i);t=this.mode===this.OBLIQ?this.ymf*i*(this.cosb1*c-this.sinb1*l*s):(i=Math.sqrt(2/(1+l*s)))*c*this.ymf;y=this.xmf*i*l*b;break;case this.N_POLE:case this.S_POLE:h>=0?(y=(i=Math.sqrt(h))*b,t=s*(this.mode===this.S_POLE?i:-i)):y=t=0}}return n.x=this.a*y+this.x0,n.y=this.a*t+this.y0,n};i.inverse=function(n){var p,i,y,h,a,c,o,f,t,s,v,l;if(n.x-=this.x0,n.y-=this.y0,f=n.x/this.a,t=n.y/this.a,this.sphere){if(v=0,l=0,s=Math.sqrt(f*f+t*t),i=.5*s,i>1)return null;switch(i=2*Math.asin(i),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(l=Math.sin(i),v=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(s)<=r?0:Math.asin(t*l/s);f*=l;t=v*s;break;case this.OBLIQ:i=Math.abs(s)<=r?this.phi0:Math.asin(v*this.sinph0+t*l*this.cosph0/s);f*=l*this.cosph0;t=(v-Math.sin(i)*this.sinph0)*s;break;case this.N_POLE:t=-t;i=u-i;break;case this.S_POLE:i-=u}p=0!==t||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(f,t):0}else{if(o=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(f/=this.dd,t*=this.dd,c=Math.sqrt(f*f+t*t),r>c)return n.x=0,n.y=this.phi0,n;h=2*Math.asin(.5*c/this.rq);y=Math.cos(h);f*=h=Math.sin(h);this.mode===this.OBLIQ?(o=y*this.sinb1+t*h*this.cosb1/c,a=this.qp*o,t=c*this.cosb1*y-t*this.sinb1*h):(o=t*h/c,a=this.qp*o,t=c*y)}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(t=-t),a=f*f+t*t,!a)return n.x=0,n.y=this.phi0,n;o=1-a/this.qp;this.mode===this.S_POLE&&(o=-o)}p=Math.atan2(f,t);i=this.authlat(Math.asin(o),this.apa)}return n.x=e(this.long0+p),n.y=i,n};i.P00=.33333333333333331;i.P01=.17222222222222222;i.P02=.10257936507936508;i.P10=.063888888888888884;i.P11=.0664021164021164;i.P20=.016415012942191543;i.authset=function(n){var t,i=[];return i[0]=n*this.P00,t=n*n,i[0]+=t*this.P01,i[1]=t*this.P10,t*=n,i[0]+=t*this.P02,i[1]+=t*this.P11,i[2]=t*this.P20,i};i.authlat=function(n,t){var i=n+n;return n+t[0]*Math.sin(i)+t[1]*Math.sin(i+i)+t[2]*Math.sin(i+i+i)};i.names=["Lambert Azimuthal Equal Area","Lambert_Azimuthal_Equal_Area","laea"]},{"../common/adjust_lon":5,"../common/qsfnz":20}],49:[function(n,t,i){var r=1e-10,e=n("../common/msfnz"),u=n("../common/tsfnz"),f=Math.PI/2,s=n("../common/sign"),o=n("../common/adjust_lon"),h=n("../common/phi2z");i.init=function(){var t;if(this.lat2||(this.lat2=this.lat1),this.k0||(this.k0=1),this.x0=this.x0||0,this.y0=this.y0||0,!(Math.abs(this.lat1+this.lat2)<r)){t=this.b/this.a;this.e=Math.sqrt(1-t*t);var n=Math.sin(this.lat1),s=Math.cos(this.lat1),i=e(this.e,n,s),f=u(this.e,this.lat1,n),o=Math.sin(this.lat2),h=Math.cos(this.lat2),c=e(this.e,o,h),l=u(this.e,this.lat2,o),a=u(this.e,this.lat0,Math.sin(this.lat0));this.ns=Math.abs(this.lat1-this.lat2)>r?Math.log(i/c)/Math.log(f/l):n;isNaN(this.ns)&&(this.ns=n);this.f0=i/(this.ns*Math.pow(f,this.ns));this.rh=this.a*this.f0*Math.pow(a,this.ns);this.title||(this.title="Lambert Conformal Conic")}};i.forward=function(n){var l=n.x,t=n.y,c,i,e,h;if(Math.abs(2*Math.abs(t)-Math.PI)<=r&&(t=s(t)*(f-2*r)),e=Math.abs(Math.abs(t)-f),e>r)c=u(this.e,t,Math.sin(t)),i=this.a*this.f0*Math.pow(c,this.ns);else{if(e=t*this.ns,0>=e)return null;i=0}return h=this.ns*o(l-this.long0),n.x=this.k0*i*Math.sin(h)+this.x0,n.y=this.k0*(this.rh-i*Math.cos(h))+this.y0,n};i.inverse=function(n){var i,t,c,e,l,r=(n.x-this.x0)/this.k0,u=this.rh-(n.y-this.y0)/this.k0,s;if(this.ns>0?(i=Math.sqrt(r*r+u*u),t=1):(i=-Math.sqrt(r*r+u*u),t=-1),s=0,0!==i&&(s=Math.atan2(t*r,t*u)),0!==i||this.ns>0){if(t=1/this.ns,c=Math.pow(i/(this.a*this.f0),t),e=h(this.e,c),-9999===e)return null}else e=-f;return l=o(s/this.ns+this.long0),n.x=l,n.y=e,n};i.names=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_2SP","lcc"]},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/sign":21,"../common/tsfnz":24}],50:[function(n,t,i){function r(n){return n}i.init=function(){};i.forward=r;i.inverse=r;i.names=["longlat","identity"]},{}],51:[function(n,t,i){var e=n("../common/msfnz"),f=Math.PI/2,o=1e-10,r=57.295779513082323,u=n("../common/adjust_lon"),s=Math.PI/4,h=n("../common/tsfnz"),c=n("../common/phi2z");i.init=function(){var n=this.b/this.a;this.es=1-n*n;"x0"in this||(this.x0=0);"y0"in this||(this.y0=0);this.e=Math.sqrt(this.es);this.lat_ts?this.k0=this.sphere?Math.cos(this.lat_ts):e(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k0=this.k?this.k:1)};i.forward=function(n){var i=n.x,t=n.y,e,c,l,a;return t*r>90&&-90>t*r&&i*r>180&&-180>i*r?null:Math.abs(Math.abs(t)-f)<=o?null:(this.sphere?(e=this.x0+this.a*this.k0*u(i-this.long0),c=this.y0+this.a*this.k0*Math.log(Math.tan(s+.5*t))):(l=Math.sin(t),a=h(this.e,t,l),e=this.x0+this.a*this.k0*u(i-this.long0),c=this.y0-this.a*this.k0*Math.log(a)),n.x=e,n.y=c,n)};i.inverse=function(n){var i,t,o=n.x-this.x0,r=n.y-this.y0,e;if(this.sphere)t=f-2*Math.atan(Math.exp(-r/(this.a*this.k0)));else if(e=Math.exp(-r/(this.a*this.k0)),t=c(this.e,e),-9999===t)return null;return i=u(this.long0+o/(this.a*this.k0)),n.x=i,n.y=t,n};i.names=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"]},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/tsfnz":24}],52:[function(n,t,i){var r=n("../common/adjust_lon");i.init=function(){};i.forward=function(n){var t=n.x,i=n.y,u=r(t-this.long0),f=this.x0+this.a*u,e=this.y0+this.a*Math.log(Math.tan(Math.PI/4+i/2.5))*1.25;return n.x=f,n.y=e,n};i.inverse=function(n){n.x-=this.x0;n.y-=this.y0;var t=r(this.long0+n.x/this.a),i=2.5*(Math.atan(Math.exp(.8*n.y/this.a))-Math.PI/4);return n.x=t,n.y=i,n};i.names=["Miller_Cylindrical","mill"]},{"../common/adjust_lon":5}],53:[function(n,t,i){var r=n("../common/adjust_lon"),u=1e-10;i.init=function(){};i.forward=function(n){for(var f,o,s,h=n.x,i=n.y,e=r(h-this.long0),t=i,c=Math.PI*Math.sin(i),l=0;;l++)if(f=-(t+Math.sin(t)-c)/(1+Math.cos(t)),t+=f,Math.abs(f)<u)break;return t/=2,Math.PI/2-Math.abs(i)<u&&(e=0),o=.900316316158*this.a*e*Math.cos(t)+this.x0,s=1.4142135623731*this.a*Math.sin(t)+this.y0,n.x=o,n.y=s,n};i.inverse=function(n){var u,t,i,f;return n.x-=this.x0,n.y-=this.y0,t=n.y/(1.4142135623731*this.a),Math.abs(t)>.999999999999&&(t=.999999999999),u=Math.asin(t),i=r(this.long0+n.x/(.900316316158*this.a*Math.cos(u))),i<-Math.PI&&(i=-Math.PI),i>Math.PI&&(i=Math.PI),t=(2*u+Math.sin(2*u))/Math.PI,Math.abs(t)>1&&(t=1),f=Math.asin(t),n.x=i,n.y=f,n};i.names=["Mollweide","moll"]},{"../common/adjust_lon":5}],54:[function(n,t,i){var r=484813681109536e-20;i.iterations=1;i.init=function(){this.A=[];this.A[1]=.6399175073;this.A[2]=-.1358797613;this.A[3]=.063294409;this.A[4]=-.02526853;this.A[5]=.0117879;this.A[6]=-.0055161;this.A[7]=.0026906;this.A[8]=-.001333;this.A[9]=.00067;this.A[10]=-.00034;this.B_re=[];this.B_im=[];this.B_re[1]=.7557853228;this.B_im[1]=0;this.B_re[2]=.249204646;this.B_im[2]=.003371507;this.B_re[3]=-.001541739;this.B_im[3]=.04105856;this.B_re[4]=-.10162907;this.B_im[4]=.01727609;this.B_re[5]=-.26623489;this.B_im[5]=-.36249218;this.B_re[6]=-.6870983;this.B_im[6]=-1.1651967;this.C_re=[];this.C_im=[];this.C_re[1]=1.3231270439;this.C_im[1]=0;this.C_re[2]=-.577245789;this.C_im[2]=-.007809598;this.C_re[3]=.508307513;this.C_im[3]=-.112208952;this.C_re[4]=-.15094762;this.C_im[4]=.18200602;this.C_re[5]=1.01418179;this.C_im[5]=1.64497696;this.C_re[6]=1.9660549;this.C_im[6]=2.5127645;this.D=[];this.D[1]=1.5627014243;this.D[2]=.5185406398;this.D[3]=-.03333098;this.D[4]=-.1052906;this.D[5]=-.0368594;this.D[6]=.007317;this.D[7]=.0122;this.D[8]=.00394;this.D[9]=-.0013};i.forward=function(n){for(var v=n.x,y=n.y,p=y-this.lat0,w=v-this.long0,b=p/r*1e-5,k=w,o=1,s=0,t=1;10>=t;t++)o*=b,s+=this.A[t]*o;var h,c,l=s,a=k,i=1,u=0,f=0,e=0;for(t=1;6>=t;t++)h=i*l-u*a,c=u*l+i*a,i=h,u=c,f=f+this.B_re[t]*i-this.B_im[t]*u,e=e+this.B_im[t]*i+this.B_re[t]*u;return n.x=e*this.a+this.x0,n.y=f*this.a+this.y0,n};i.inverse=function(n){for(var d,g,ut=n.x,ft=n.y,et=ut-this.x0,ot=ft-this.y0,v=ot/this.a,y=et/this.a,h=1,c=0,f=0,e=0,p,o,s,k,it,rt,t=1;6>=t;t++)d=h*v-c*y,g=c*v+h*y,h=d,c=g,f=f+this.C_re[t]*h-this.C_im[t]*c,e=e+this.C_im[t]*h+this.C_re[t]*c;for(p=0;p<this.iterations;p++){var l,a,i=f,u=e,w=v,b=y;for(t=2;6>=t;t++)l=i*f-u*e,a=u*f+i*e,i=l,u=a,w+=(t-1)*(this.B_re[t]*i-this.B_im[t]*u),b+=(t-1)*(this.B_im[t]*i+this.B_re[t]*u);for(i=1,u=0,o=this.B_re[1],s=this.B_im[1],t=2;6>=t;t++)l=i*f-u*e,a=u*f+i*e,i=l,u=a,o+=t*(this.B_re[t]*i-this.B_im[t]*u),s+=t*(this.B_im[t]*i+this.B_re[t]*u);k=o*o+s*s;f=(w*o+b*s)/k;e=(b*o-w*s)/k}var st=f,ht=e,nt=1,tt=0;for(t=1;9>=t;t++)nt*=st,tt+=this.D[t]*nt;return it=this.lat0+tt*r*1e5,rt=this.long0+ht,n.x=rt,n.y=it,n};i.names=["New_Zealand_Map_Grid","nzmg"]},{}],55:[function(n,t,i){var f=n("../common/tsfnz"),r=n("../common/adjust_lon"),o=n("../common/phi2z"),e=Math.PI/2,s=Math.PI/4,u=1e-10;i.init=function(){var o,n,t,s,l,a,i,u,v;this.no_off=this.no_off||!1;this.no_rot=this.no_rot||!1;isNaN(this.k0)&&(this.k0=1);var h=Math.sin(this.lat0),c=Math.cos(this.lat0),e=this.e*h;if(this.bl=Math.sqrt(1+this.es/(1-this.es)*Math.pow(c,4)),this.al=this.a*this.bl*this.k0*Math.sqrt(1-this.es)/(1-e*e),o=f(this.e,this.lat0,h),n=this.bl/c*Math.sqrt((1-this.es)/(1-e*e)),1>n*n&&(n=1),isNaN(this.longc)){l=f(this.e,this.lat1,Math.sin(this.lat1));a=f(this.e,this.lat2,Math.sin(this.lat2));this.el=this.lat0>=0?(n+Math.sqrt(n*n-1))*Math.pow(o,this.bl):(n-Math.sqrt(n*n-1))*Math.pow(o,this.bl);i=Math.pow(l,this.bl);u=Math.pow(a,this.bl);t=this.el/i;s=.5*(t-1/t);var y=(this.el*this.el-u*i)/(this.el*this.el+u*i),p=(u-i)/(u+i),w=r(this.long1-this.long2);this.long0=.5*(this.long1+this.long2)-Math.atan(y*Math.tan(.5*this.bl*w)/p)/this.bl;this.long0=r(this.long0);v=r(this.long1-this.long0);this.gamma0=Math.atan(Math.sin(this.bl*v)/s);this.alpha=Math.asin(n*Math.sin(this.gamma0))}else t=this.lat0>=0?n+Math.sqrt(n*n-1):n-Math.sqrt(n*n-1),this.el=t*Math.pow(o,this.bl),s=.5*(t-1/t),this.gamma0=Math.asin(Math.sin(this.alpha)/n),this.long0=this.longc-Math.asin(s*Math.tan(this.gamma0))/this.bl;this.uc=this.no_off?0:this.lat0>=0?this.al/this.bl*Math.atan2(Math.sqrt(n*n-1),Math.cos(this.alpha)):-1*this.al/this.bl*Math.atan2(Math.sqrt(n*n-1),Math.cos(this.alpha))};i.forward=function(n){var t,i,l,p=n.x,o=n.y,h=r(p-this.long0);if(Math.abs(Math.abs(o)-e)<=u)l=o>0?-1:1,i=this.al/this.bl*Math.log(Math.tan(s+l*this.gamma0*.5)),t=-1*l*e*this.al/this.bl;else{var w=f(this.e,o,Math.sin(o)),c=this.el/Math.pow(w,this.bl),v=.5*(c-1/c),b=.5*(c+1/c),y=Math.sin(this.bl*h),a=(v*Math.sin(this.gamma0)-y*Math.cos(this.gamma0))/b;i=Math.abs(Math.abs(a)-1)<=u?Number.POSITIVE_INFINITY:.5*this.al*Math.log((1-a)/(1+a))/this.bl;t=Math.abs(Math.cos(this.bl*h))<=u?this.al*this.bl*h:this.al*Math.atan2(v*Math.cos(this.gamma0)+y*Math.sin(this.gamma0),Math.cos(this.bl*h))/this.bl}return this.no_rot?(n.x=this.x0+t,n.y=this.y0+i):(t-=this.uc,n.x=this.x0+i*Math.cos(this.alpha)+t*Math.sin(this.alpha),n.y=this.y0+t*Math.cos(this.alpha)-i*Math.sin(this.alpha)),n};i.inverse=function(n){var t,s;this.no_rot?(s=n.y-this.y0,t=n.x-this.x0):(s=(n.x-this.x0)*Math.cos(this.alpha)-(n.y-this.y0)*Math.sin(this.alpha),t=(n.y-this.y0)*Math.cos(this.alpha)+(n.x-this.x0)*Math.sin(this.alpha),t+=this.uc);var i=Math.exp(-1*this.bl*s/this.al),h=.5*(i-1/i),l=.5*(i+1/i),c=Math.sin(this.bl*t/this.al),f=(c*Math.cos(this.gamma0)+h*Math.sin(this.gamma0))/l,a=Math.pow(this.el/Math.sqrt((1+f)/(1-f)),1/this.bl);return Math.abs(f-1)<u?(n.x=this.long0,n.y=e):Math.abs(f+1)<u?(n.x=this.long0,n.y=-1*e):(n.y=o(this.e,a),n.x=r(this.long0-Math.atan2(h*Math.cos(this.gamma0)-c*Math.sin(this.gamma0),Math.cos(this.bl*t/this.al))/this.bl)),n};i.names=["Hotine_Oblique_Mercator","Hotine Oblique Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin","Hotine_Oblique_Mercator_Azimuth_Center","omerc"]},{"../common/adjust_lon":5,"../common/phi2z":16,"../common/tsfnz":24}],56:[function(n,t,i){var o=n("../common/e0fn"),s=n("../common/e1fn"),h=n("../common/e2fn"),c=n("../common/e3fn"),u=n("../common/adjust_lon"),l=n("../common/adjust_lat"),f=n("../common/mlfn"),r=1e-10,a=n("../common/gN"),e=20;i.init=function(){this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=o(this.es);this.e1=s(this.es);this.e2=h(this.es);this.e3=c(this.es);this.ml0=this.a*f(this.e0,this.e1,this.e2,this.e3,this.lat0)};i.forward=function(n){var i,e,o,c=n.x,t=n.y,s=u(c-this.long0),h;return(o=s*Math.sin(t),this.sphere)?Math.abs(t)<=r?(i=this.a*s,e=-1*this.a*this.lat0):(i=this.a*Math.sin(o)/Math.tan(t),e=this.a*(l(t-this.lat0)+(1-Math.cos(o))/Math.tan(t))):Math.abs(t)<=r?(i=this.a*s,e=-1*this.ml0):(h=a(this.a,this.e,Math.sin(t))/Math.tan(t),i=h*Math.sin(o),e=this.a*f(this.e0,this.e1,this.e2,this.e3,t)-this.ml0+h*(1-Math.cos(o))),n.x=i+this.x0,n.y=e+this.y0,n};i.inverse=function(n){var v,o,s,y,l,i,p,t,a,w,c,d,b,h,k;if(s=n.x-this.x0,y=n.y-this.y0,this.sphere)if(Math.abs(y+this.a*this.lat0)<=r)v=u(s/this.a+this.long0),o=0;else{for(i=this.lat0+y/this.a,p=s*s/this.a/this.a+i*i,t=i,l=e;l;--l)if(w=Math.tan(t),a=-1*(i*(t*w+1)-t-.5*(t*t+p)*w)/((t-i)/w-1),t+=a,Math.abs(a)<=r){o=t;break}v=u(this.long0+Math.asin(s*Math.tan(t)/this.a)/Math.sin(o))}else if(Math.abs(y+this.ml0)<=r)o=0,v=u(this.long0+s/this.a);else{for(i=(this.ml0+y)/this.a,p=s*s/this.a/this.a+i*i,t=i,l=e;l;--l)if(k=this.e*Math.sin(t),c=Math.sqrt(1-k*k)*Math.tan(t),d=this.a*f(this.e0,this.e1,this.e2,this.e3,t),b=this.e0-2*this.e1*Math.cos(2*t)+4*this.e2*Math.cos(4*t)-6*this.e3*Math.cos(6*t),h=d/this.a,a=(i*(c*h+1)-h-.5*c*(h*h+p))/(this.es*Math.sin(2*t)*(h*h+p-2*i*h)/(4*c)+(i-h)*(c*b-2/Math.sin(2*t))-b),t-=a,Math.abs(a)<=r){o=t;break}c=Math.sqrt(1-this.es*Math.pow(Math.sin(o),2))*Math.tan(o);v=u(this.long0+Math.asin(s*c/this.a)/Math.sin(o))}return n.x=v,n.y=o,n};i.names=["Polyconic","poly"]},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/gN":11,"../common/mlfn":14}],57:[function(n,t,i){var r=n("../common/adjust_lon"),o=n("../common/adjust_lat"),s=n("../common/pj_enfn"),h=20,c=n("../common/pj_mlfn"),l=n("../common/pj_inv_mlfn"),u=Math.PI/2,f=1e-10,e=n("../common/asinz");i.init=function(){this.sphere?(this.n=1,this.m=0,this.es=0,this.C_y=Math.sqrt((this.m+1)/this.n),this.C_x=this.C_y/(this.m+1)):this.en=s(this.es)};i.forward=function(n){var e,o,i=n.x,t=n.y,v,s,l,u,a;if(i=r(i-this.long0),this.sphere){if(this.m){for(v=this.n*Math.sin(t),s=h;s;--s)if(l=(this.m*t+Math.sin(t)-v)/(this.m+Math.cos(t)),t-=l,Math.abs(l)<f)break}else t=1!==this.n?Math.asin(this.n*Math.sin(t)):t;e=this.a*this.C_x*i*(this.m+Math.cos(t));o=this.a*this.C_y*t}else u=Math.sin(t),a=Math.cos(t),o=this.a*c(t,u,a,this.en),e=this.a*i*a/Math.sqrt(1-this.es*u*u);return n.x=e,n.y=o,n};i.inverse=function(n){var t,h,i,s;return n.x-=this.x0,i=n.x/this.a,n.y-=this.y0,t=n.y/this.a,this.sphere?(t/=this.C_y,i/=this.C_x*(this.m+Math.cos(t)),this.m?t=e((this.m*t+Math.sin(t))/this.n):1!==this.n&&(t=e(Math.sin(t)/this.n)),i=r(i+this.long0),t=o(t)):(t=l(n.y/this.a,this.es,this.en),s=Math.abs(t),u>s?(s=Math.sin(t),h=this.long0+n.x*Math.sqrt(1-this.es*s*s)/(this.a*Math.cos(t)),i=r(h)):u>s-f&&(i=this.long0)),n.x=i,n.y=t,n};i.names=["Sinusoidal","sinu"]},{"../common/adjust_lat":4,"../common/adjust_lon":5,"../common/asinz":6,"../common/pj_enfn":17,"../common/pj_inv_mlfn":18,"../common/pj_mlfn":19}],58:[function(n,t,i){i.init=function(){var i=this.lat0;this.lambda0=this.long0;var t=Math.sin(i),f=this.a,e=this.rf,u=1/e,n=2*u-Math.pow(u,2),r=this.e=Math.sqrt(n);this.R=this.k0*f*Math.sqrt(1-n)/(1-n*Math.pow(t,2));this.alpha=Math.sqrt(1+n/(1-n)*Math.pow(Math.cos(i),4));this.b0=Math.asin(t/this.alpha);var o=Math.log(Math.tan(Math.PI/4+this.b0/2)),s=Math.log(Math.tan(Math.PI/4+i/2)),h=Math.log((1+r*t)/(1-r*t));this.K=o-this.alpha*s+this.alpha*r/2*h};i.forward=function(n){var u=Math.log(Math.tan(Math.PI/4-n.y/2)),f=this.e/2*Math.log((1+this.e*Math.sin(n.y))/(1-this.e*Math.sin(n.y))),e=-this.alpha*(u+f)+this.K,t=2*(Math.atan(Math.exp(e))-Math.PI/4),i=this.alpha*(n.x-this.lambda0),o=Math.atan(Math.sin(i)/(Math.sin(this.b0)*Math.tan(t)+Math.cos(this.b0)*Math.cos(i))),r=Math.asin(Math.cos(this.b0)*Math.sin(t)-Math.sin(this.b0)*Math.cos(t)*Math.cos(i));return n.y=this.R/2*Math.log((1+Math.sin(r))/(1-Math.sin(r)))+this.y0,n.x=this.R*o+this.x0,n};i.inverse=function(n){for(var o=n.x-this.x0,s=n.y-this.y0,i=o/this.R,r=2*(Math.atan(Math.exp(s/this.R))-Math.PI/4),u=Math.asin(Math.cos(this.b0)*Math.sin(r)+Math.sin(this.b0)*Math.cos(r)*Math.cos(i)),h=Math.atan(Math.sin(i)/(Math.cos(this.b0)*Math.cos(i)-Math.sin(this.b0)*Math.tan(r))),c=this.lambda0+h/this.alpha,f=0,t=u,e=-1e3,l=0;Math.abs(t-e)>1e-7;){if(++l>20)return;f=1/this.alpha*(Math.log(Math.tan(Math.PI/4+u/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(t))/2));e=t;t=2*Math.atan(Math.exp(f))-Math.PI/2}return n.x=c,n.y=t,n};i.names=["somerc"]},{}],59:[function(n,t,i){var u=Math.PI/2,r=1e-10,h=n("../common/sign"),e=n("../common/msfnz"),o=n("../common/tsfnz"),s=n("../common/phi2z"),f=n("../common/adjust_lon");i.ssfn_=function(n,t,i){return t*=i,Math.tan(.5*(u+n))*Math.pow((1-t)/(1+t),.5*i)};i.init=function(){this.coslat0=Math.cos(this.lat0);this.sinlat0=Math.sin(this.lat0);this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=r&&(this.k0=.5*(1+h(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=r&&(this.con=this.lat0>0?1:-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=r&&(this.k0=.5*this.cons*e(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/o(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=e(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-u,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))};i.forward=function(n){var t,a,h,e,p,v,c=n.x,s=n.y,l=Math.sin(s),y=Math.cos(s),i=f(c-this.long0);return Math.abs(Math.abs(c-this.long0)-Math.PI)<=r&&Math.abs(s+this.lat0)<=r?(n.x=NaN,n.y=NaN,n):this.sphere?(t=2*this.k0/(1+this.sinlat0*l+this.coslat0*y*Math.cos(i)),n.x=this.a*t*y*Math.sin(i)+this.x0,n.y=this.a*t*(this.coslat0*l-this.sinlat0*y*Math.cos(i))+this.y0,n):(a=2*Math.atan(this.ssfn_(s,l,this.e))-u,e=Math.cos(a),h=Math.sin(a),Math.abs(this.coslat0)<=r?(p=o(this.e,s*this.con,this.con*l),v=2*this.a*this.k0*p/this.cons,n.x=this.x0+v*Math.sin(c-this.long0),n.y=this.y0-this.con*v*Math.cos(c-this.long0),n):(Math.abs(this.sinlat0)<r?(t=2*this.a*this.k0/(1+e*Math.cos(i)),n.y=t*h):(t=2*this.a*this.k0*this.ms1/(this.cosX0*(1+this.sinX0*h+this.cosX0*e*Math.cos(i))),n.y=t*(this.cosX0*h-this.sinX0*e*Math.cos(i))+this.y0),n.x=t*e*Math.sin(i)+this.x0,n))};i.inverse=function(n){var i,e,l,o,c,t,h;if(n.x-=this.x0,n.y-=this.y0,t=Math.sqrt(n.x*n.x+n.y*n.y),this.sphere)return h=2*Math.atan(t/(.5*this.a*this.k0)),i=this.long0,e=this.lat0,r>=t?(n.x=i,n.y=e,n):(e=Math.asin(Math.cos(h)*this.sinlat0+n.y*Math.sin(h)*this.coslat0/t),i=f(Math.abs(this.coslat0)<r?this.lat0>0?this.long0+Math.atan2(n.x,-1*n.y):this.long0+Math.atan2(n.x,n.y):this.long0+Math.atan2(n.x*Math.sin(h),t*this.coslat0*Math.cos(h)-n.y*this.sinlat0*Math.sin(h))),n.x=i,n.y=e,n);if(Math.abs(this.coslat0)<=r){if(r>=t)return e=this.lat0,i=this.long0,n.x=i,n.y=e,n;n.x*=this.con;n.y*=this.con;l=t*this.cons/(2*this.a*this.k0);e=this.con*s(this.e,l);i=this.con*f(this.con*this.long0+Math.atan2(n.x,-1*n.y))}else o=2*Math.atan(t*this.cosX0/(2*this.a*this.k0*this.ms1)),i=this.long0,r>=t?c=this.X0:(c=Math.asin(Math.cos(o)*this.sinX0+n.y*Math.sin(o)*this.cosX0/t),i=f(this.long0+Math.atan2(n.x*Math.sin(o),t*this.cosX0*Math.cos(o)-n.y*this.sinX0*Math.sin(o)))),e=-1*s(this.e,Math.tan(.5*(u+c)));return n.x=i,n.y=e,n};i.names=["stere"]},{"../common/adjust_lon":5,"../common/msfnz":15,"../common/phi2z":16,"../common/sign":21,"../common/tsfnz":24}],60:[function(n,t,i){var r=n("./gauss"),u=n("../common/adjust_lon");i.init=function(){r.init.apply(this);this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))};i.forward=function(n){var i,t,f,e;return n.x=u(n.x-this.long0),r.forward.apply(this,[n]),i=Math.sin(n.y),t=Math.cos(n.y),f=Math.cos(n.x),e=this.k0*this.R2/(1+this.sinc0*i+this.cosc0*t*f),n.x=e*t*Math.sin(n.x),n.y=e*(this.cosc0*i-this.sinc0*t*f),n.x=this.a*n.x+this.x0,n.y=this.a*n.y+this.y0,n};i.inverse=function(n){var t,f,e,o,i,s;return(n.x=(n.x-this.x0)/this.a,n.y=(n.y-this.y0)/this.a,n.x/=this.k0,n.y/=this.k0,i=Math.sqrt(n.x*n.x+n.y*n.y))?(s=2*Math.atan2(i,this.R2),t=Math.sin(s),f=Math.cos(s),o=Math.asin(f*this.sinc0+n.y*t*this.cosc0/i),e=Math.atan2(n.x*t,i*this.cosc0*f-n.y*this.sinc0*t)):(o=this.phic0,e=0),n.x=e,n.y=o,r.inverse.apply(this,[n]),n.x=u(n.x+this.long0),n};i.names=["Stereographic_North_Pole","Oblique_Stereographic","Polar_Stereographic","sterea","Oblique Stereographic Alternative"]},{"../common/adjust_lon":5,"./gauss":45}],61:[function(n,t,i){var e=n("../common/e0fn"),o=n("../common/e1fn"),s=n("../common/e2fn"),h=n("../common/e3fn"),u=n("../common/mlfn"),r=n("../common/adjust_lon"),f=Math.PI/2,c=1e-10,l=n("../common/sign"),a=n("../common/asinz");i.init=function(){this.e0=e(this.es);this.e1=o(this.es);this.e2=s(this.es);this.e3=h(this.es);this.ml0=this.a*u(this.e0,this.e1,this.e2,this.e3,this.lat0)};i.forward=function(n){var t,c,l,b=n.x,e=n.y,a=r(b-this.long0),k=Math.sin(e),h=Math.cos(e),i,v,w;if(this.sphere){if(i=h*Math.sin(a),Math.abs(Math.abs(i)-1)<1e-10)return 93;c=.5*this.a*this.k0*Math.log((1+i)/(1-i));t=Math.acos(h*Math.cos(a)/Math.sqrt(1-i*i));0>e&&(t=-t);l=this.a*this.k0*(t-this.lat0)}else{var y=h*a,o=Math.pow(y,2),s=this.ep2*Math.pow(h,2),p=Math.tan(e),f=Math.pow(p,2);t=1-this.es*Math.pow(k,2);v=this.a/Math.sqrt(t);w=this.a*u(this.e0,this.e1,this.e2,this.e3,e);c=this.k0*v*y*(1+o/6*(1-f+s+o/20*(5-18*f+Math.pow(f,2)+72*s-58*this.ep2)))+this.x0;l=this.k0*(w-this.ml0+v*p*o*(.5+o/24*(5-f+9*s+4*Math.pow(s,2)+o/30*(61-58*f+Math.pow(f,2)+600*s-330*this.ep2))))+this.y0}return n.x=c,n.y=l,n};i.inverse=function(n){var i,t,p,w,u,h,tt,b;if(this.sphere){var g=Math.exp(n.x/(this.a*this.k0)),v=.5*(g-1/g),nt=this.lat0+n.y/(this.a*this.k0),y=Math.cos(nt);i=Math.sqrt((1-y*y)/(1+v*v));u=a(i);0>nt&&(u=-u);h=0===v&&0===y?this.long0:r(Math.atan2(v,y)+this.long0)}else{for(tt=n.x-this.x0,b=n.y-this.y0,i=(this.ml0+b/this.k0)/this.a,t=i,w=0;!0&&(p=(i+this.e1*Math.sin(2*t)-this.e2*Math.sin(4*t)+this.e3*Math.sin(6*t))/this.e0-t,t+=p,!(Math.abs(p)<=c));w++)if(w>=6)return 95;if(Math.abs(t)<f){var et=Math.sin(t),it=Math.cos(t),rt=Math.tan(t),e=this.ep2*Math.pow(it,2),k=Math.pow(e,2),o=Math.pow(rt,2),ut=Math.pow(o,2);i=1-this.es*Math.pow(et,2);var d=this.a/Math.sqrt(i),ot=d*(1-this.es)/i,ft=tt/(d*this.k0),s=Math.pow(ft,2);u=t-d*rt*s/ot*(.5-s/24*(5+3*o+10*e-4*k-9*this.ep2-s/30*(61+90*o+298*e+45*ut-252*this.ep2-3*k)));h=r(this.long0+ft*(1-s/6*(1+2*o+e-s/20*(5-2*e+28*o-3*k+8*this.ep2+24*ut)))/it)}else u=f*l(b),h=this.long0}return n.x=h,n.y=u,n};i.names=["Transverse_Mercator","Transverse Mercator","tmerc"]},{"../common/adjust_lon":5,"../common/asinz":6,"../common/e0fn":7,"../common/e1fn":8,"../common/e2fn":9,"../common/e3fn":10,"../common/mlfn":14,"../common/sign":21}],62:[function(n,t,i){var u=.017453292519943295,r=n("./tmerc");i.dependsOn="tmerc";i.init=function(){this.zone&&(this.lat0=0,this.long0=(6*Math.abs(this.zone)-183)*u,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,r.init.apply(this),this.forward=r.forward,this.inverse=r.inverse)};i.names=["Universal Transverse Mercator System","utm"]},{"./tmerc":61}],63:[function(n,t,i){var u=n("../common/adjust_lon"),f=Math.PI/2,r=1e-10,e=n("../common/asinz");i.init=function(){this.R=this.a};i.forward=function(n){var a,v,d=n.x,h=n.y,c=u(d-this.long0),l,p;Math.abs(h)<=r&&(a=this.x0+this.R*c,v=this.y0);l=e(2*Math.abs(h/Math.PI));(Math.abs(c)<=r||Math.abs(Math.abs(h)-f)<=r)&&(a=this.x0,v=h>=0?this.y0+Math.PI*this.R*Math.tan(.5*l):this.y0+Math.PI*this.R*-Math.tan(.5*l));var y=.5*Math.abs(Math.PI/c-c/Math.PI),i=y*y,b=Math.sin(l),k=Math.cos(l),o=k/(b+k-1),g=o*o,w=o*(2/b-1),t=w*w,s=Math.PI*this.R*(y*(o-t)+Math.sqrt(i*(o-t)*(o-t)-(t+i)*(g-t)))/(t+i);return 0>c&&(s=-s),a=this.x0+s,p=i+o,s=Math.PI*this.R*(w*p-y*Math.sqrt((t+i)*(i+1)-p*p))/(t+i),v=h>=0?this.y0+s:this.y0-s,n.x=a,n.y=v,n};i.inverse=function(n){var v,y,f,t,s,h,e,i,l,c,o,a,p;return n.x-=this.x0,n.y-=this.y0,o=Math.PI*this.R,f=n.x/o,t=n.y/o,s=f*f+t*t,h=-Math.abs(t)*(1+s),e=h-2*t*t+f*f,i=-2*h+1+2*t*t+s*s,p=t*t/i+(2*e*e*e/i/i/i-9*h*e/i/i)/27,l=(h-e*e/3/i)/i,c=2*Math.sqrt(-l/3),o=3*p/l/c,Math.abs(o)>1&&(o=o>=0?1:-1),a=Math.acos(o)/3,y=n.y>=0?(-c*Math.cos(a+Math.PI/3)-e/3/i)*Math.PI:-(-c*Math.cos(a+Math.PI/3)-e/3/i)*Math.PI,v=Math.abs(f)<r?this.long0:u(this.long0+Math.PI*(s-1+Math.sqrt(1+2*(f*f-t*t)+s*s))/2/f),n.x=v,n.y=y,n};i.names=["Van_der_Grinten_I","VanDerGrinten","vandg"]},{"../common/adjust_lon":5,"../common/asinz":6}],64:[function(n,t){var i=.017453292519943295,r=57.295779513082323,f=1,e=2,o=n("./datum_transform"),u=n("./adjust_axis"),s=n("./Proj"),h=n("./common/toPoint");t.exports=function c(n,t,l){function v(n,t){return(n.datum.datum_type===f||n.datum.datum_type===e)&&"WGS84"!==t.datumCode}var a;return Array.isArray(l)&&(l=h(l)),n.datum&&t.datum&&(v(n,t)||v(t,n))&&(a=new s("WGS84"),c(n,a,l),n=a),"enu"!==n.axis&&u(n,!1,l),"longlat"===n.projName?(l.x*=i,l.y*=i):(n.to_meter&&(l.x*=n.to_meter,l.y*=n.to_meter),n.inverse(l)),n.from_greenwich&&(l.x+=n.from_greenwich),l=o(n.datum,t.datum,l),t.from_greenwich&&(l.x-=t.from_greenwich),"longlat"===t.projName?(l.x*=r,l.y*=r):(t.forward(l),t.to_meter&&(l.x/=t.to_meter,l.y/=t.to_meter)),"enu"!==t.axis&&u(t,!0,l),l}},{"./Proj":2,"./adjust_axis":3,"./common/toPoint":23,"./datum_transform":30}],65:[function(n,t){function u(n,t,i){n[t]=i.map(function(n){var t={};return r(n,t),t}).reduce(function(n,t){return f(n,t)},{})}function r(n,t){var i;return Array.isArray(n)?(i=n.shift(),"PARAMETER"===i&&(i=n.shift()),1===n.length?Array.isArray(n[0])?(t[i]={},r(n[0],t[i])):t[i]=n[0]:n.length?"TOWGS84"===i?t[i]=n:(t[i]={},["UNIT","PRIMEM","VERT_DATUM"].indexOf(i)>-1?(t[i]={name:n[0].toLowerCase(),convert:n[1]},3===n.length&&(t[i].auth=n[2])):"SPHEROID"===i?(t[i]={name:n[0],a:n[1],rf:n[2]},4===n.length&&(t[i].auth=n[3])):["GEOGCS","GEOCCS","DATUM","VERT_CS","COMPD_CS","LOCAL_CS","FITTED_CS","LOCAL_DATUM"].indexOf(i)>-1?(n[0]=["name",n[0]],u(t,i,n)):n.every(function(n){return Array.isArray(n)})?u(t,i,n):r(n,t[i])):t[i]=!0,void 0):void(t[n]=!0)}function e(n,t){var i=t[0],r=t[1];!(i in n)&&r in n&&(n[i]=n[r],3===t.length&&(n[i]=t[2](n[i])))}function i(n){return n*s}function o(n){function t(t){var i=n.to_meter||1;return parseFloat(t,10)*i}"GEOGCS"===n.type?n.projName="longlat":"LOCAL_CS"===n.type?(n.projName="identity",n.local=!0):n.projName="object"==typeof n.PROJECTION?Object.keys(n.PROJECTION)[0]:n.PROJECTION;n.UNIT&&(n.units=n.UNIT.name.toLowerCase(),"metre"===n.units&&(n.units="meter"),n.UNIT.convert&&(n.to_meter=parseFloat(n.UNIT.convert,10)));n.GEOGCS&&(n.datumCode=n.GEOGCS.DATUM?n.GEOGCS.DATUM.name.toLowerCase():n.GEOGCS.name.toLowerCase(),"d_"===n.datumCode.slice(0,2)&&(n.datumCode=n.datumCode.slice(2)),("new_zealand_geodetic_datum_1949"===n.datumCode||"new_zealand_1949"===n.datumCode)&&(n.datumCode="nzgd49"),"wgs_1984"===n.datumCode&&("Mercator_Auxiliary_Sphere"===n.PROJECTION&&(n.sphere=!0),n.datumCode="wgs84"),"_ferro"===n.datumCode.slice(-6)&&(n.datumCode=n.datumCode.slice(0,-6)),"_jakarta"===n.datumCode.slice(-8)&&(n.datumCode=n.datumCode.slice(0,-8)),~n.datumCode.indexOf("belge")&&(n.datumCode="rnb72"),n.GEOGCS.DATUM&&n.GEOGCS.DATUM.SPHEROID&&(n.ellps=n.GEOGCS.DATUM.SPHEROID.name.replace("_19","").replace(/[Cc]larke\_18/,"clrk"),"international"===n.ellps.toLowerCase().slice(0,13)&&(n.ellps="intl"),n.a=n.GEOGCS.DATUM.SPHEROID.a,n.rf=parseFloat(n.GEOGCS.DATUM.SPHEROID.rf,10)),~n.datumCode.indexOf("osgb_1936")&&(n.datumCode="osgb36"));n.b&&!isFinite(n.b)&&(n.b=n.a);var r=function(t){return e(n,t)},u=[["standard_parallel_1","Standard_Parallel_1"],["standard_parallel_2","Standard_Parallel_2"],["false_easting","False_Easting"],["false_northing","False_Northing"],["central_meridian","Central_Meridian"],["latitude_of_origin","Latitude_Of_Origin"],["latitude_of_origin","Central_Parallel"],["scale_factor","Scale_Factor"],["k0","scale_factor"],["latitude_of_center","Latitude_of_center"],["lat0","latitude_of_center",i],["longitude_of_center","Longitude_Of_Center"],["longc","longitude_of_center",i],["x0","false_easting",t],["y0","false_northing",t],["long0","central_meridian",i],["lat0","latitude_of_origin",i],["lat0","standard_parallel_1",i],["lat1","standard_parallel_1",i],["lat2","standard_parallel_2",i],["alpha","azimuth",i],["srsCode","name"]];u.forEach(r);n.long0||!n.longc||"Albers_Conic_Equal_Area"!==n.PROJECTION&&"Lambert_Azimuthal_Equal_Area"!==n.PROJECTION||(n.long0=n.longc)}var s=.017453292519943295,f=n("./extend");t.exports=function(n,t){var i=JSON.parse((","+n).replace(/\s*\,\s*([A-Z_0-9]+?)(\[)/g,',["$1",').slice(1).replace(/\s*\,\s*([A-Z_0-9]+?)\]/g,',"$1"]').replace(/,\["VERTCS".+/,"")),e=i.shift(),s=i.shift(),u;return i.unshift(["name",s]),i.unshift(["type",e]),i.unshift("output"),u={},r(i,u),o(u.output),f(t,u.output)}},{"./extend":33}],66:[function(n,t,i){function s(n){return n*(Math.PI/180)}function h(n){return 180*(n/Math.PI)}function p(n){var v,c,l,f,o,i,y,p,e,h=n.lat,r=n.lon,b=6378137,t=.00669438,k=.9996,u=s(h),g=s(r),d,a;return e=Math.floor((r+180)/6)+1,180===r&&(e=60),h>=56&&64>h&&r>=3&&12>r&&(e=32),h>=72&&84>h&&(r>=0&&9>r?e=31:r>=9&&21>r?e=33:r>=21&&33>r?e=35:r>=33&&42>r&&(e=37)),v=6*(e-1)-177,p=s(v),c=t/(1-t),l=b/Math.sqrt(1-t*Math.sin(u)*Math.sin(u)),f=Math.tan(u)*Math.tan(u),o=c*Math.cos(u)*Math.cos(u),i=Math.cos(u)*(g-p),y=b*((1-t/4-3*t*t/64-5*t*t*t/256)*u-(3*t/8+3*t*t/32+45*t*t*t/1024)*Math.sin(2*u)+(15*t*t/256+45*t*t*t/1024)*Math.sin(4*u)-35*t*t*t/3072*Math.sin(6*u)),d=k*l*(i+(1-f+o)*i*i*i/6+(5-18*f+f*f+72*o-58*c)*i*i*i*i*i/120)+5e5,a=k*(y+l*Math.tan(u)*(i*i/2+(5-f+9*o+4*o*o)*i*i*i*i/24+(61-58*f+f*f+600*o-330*c)*i*i*i*i*i*i/720)),0>h&&(a+=1e7),{northing:Math.round(a),easting:Math.round(d),zoneNumber:e,zoneLetter:w(h)}}function c(n){var it=n.northing,rt=n.easting,ut=n.zoneLetter,v=n.zoneNumber,l,a,w,b;if(0>v||v>60)return null;var o,y,e,f,k,t,d,g,s,u,nt=.9996,p=6378137,i=.00669438,r=(1-Math.sqrt(1-i))/(1+Math.sqrt(1-i)),ft=rt-5e5,tt=it;return"N">ut&&(tt-=1e7),g=6*(v-1)-177,o=i/(1-i),d=tt/nt,s=d/(p*(1-i/4-3*i*i/64-5*i*i*i/256)),u=s+(3*r/2-27*r*r*r/32)*Math.sin(2*s)+(21*r*r/16-55*r*r*r*r/32)*Math.sin(4*s)+151*r*r*r/96*Math.sin(6*s),y=p/Math.sqrt(1-i*Math.sin(u)*Math.sin(u)),e=Math.tan(u)*Math.tan(u),f=o*Math.cos(u)*Math.cos(u),k=p*(1-i)/Math.pow(1-i*Math.sin(u)*Math.sin(u),1.5),t=ft/(y*nt),l=u-y*Math.tan(u)/k*(t*t/2-(5+3*e+10*f-4*f*f-9*o)*t*t*t*t/24+(61+90*e+298*f+45*e*e-252*o-3*f*f)*t*t*t*t*t*t/720),l=h(l),a=(t-(1+2*e+f)*t*t*t/6+(5-2*f+28*e-3*f*f+8*o+24*e*e)*t*t*t*t*t/120)/Math.cos(u),a=g+h(a),n.accuracy?(b=c({northing:n.northing+n.accuracy,easting:n.easting+n.accuracy,zoneLetter:n.zoneLetter,zoneNumber:n.zoneNumber}),w={top:b.lat,right:b.lon,bottom:l,left:a}):w={lat:l,lon:a},w}function w(n){var t="Z";return 84>=n&&n>=72?t="X":72>n&&n>=64?t="W":64>n&&n>=56?t="V":56>n&&n>=48?t="U":48>n&&n>=40?t="T":40>n&&n>=32?t="S":32>n&&n>=24?t="R":24>n&&n>=16?t="Q":16>n&&n>=8?t="P":8>n&&n>=0?t="N":0>n&&n>=-8?t="M":-8>n&&n>=-16?t="L":-16>n&&n>=-24?t="K":-24>n&&n>=-32?t="J":-32>n&&n>=-40?t="H":-40>n&&n>=-48?t="G":-48>n&&n>=-56?t="F":-56>n&&n>=-64?t="E":-64>n&&n>=-72?t="D":-72>n&&n>=-80&&(t="C"),t}function b(n,t){var i=""+n.easting,r=""+n.northing;return n.zoneNumber+n.zoneLetter+k(n.easting,n.northing,n.zoneNumber)+i.substr(i.length-5,t)+r.substr(r.length-5,t)}function k(n,t,i){var r=l(i),u=Math.floor(n/1e5),f=Math.floor(t/1e5)%20;return d(u,f,r)}function l(n){var t=n%a;return 0===t&&(t=a),t}function d(n,t,i){var p=i-1,l=v.charCodeAt(p),a=y.charCodeAt(p),s=l+n-1,h=a+t,c=!1;return s>o&&(s=s-o+f-1,c=!0),(s===r||r>l&&s>r||(s>r||r>l)&&c)&&s++,(s===u||u>l&&s>u||(s>u||u>l)&&c)&&(s++,s===r&&s++),s>o&&(s=s-o+f-1),h>e?(h=h-e+f-1,c=!0):c=!1,(h===r||r>a&&h>r||(h>r||r>a)&&c)&&h++,(h===u||u>a&&h>u||(h>u||u>a)&&c)&&(h++,h===r&&h++),h>e&&(h=h-e+f-1),String.fromCharCode(s)+String.fromCharCode(h)}function g(n){var e,i,s;if(n&&0===n.length)throw"MGRSPoint coverting from nothing";for(var h,c=n.length,f=null,a="",t=0;!/[A-Z]/.test(h=n.charAt(t));){if(t>=2)throw"MGRSPoint bad conversion from: "+n;a+=h;t++}if(e=parseInt(a,10),0===t||t+3>c)throw"MGRSPoint bad conversion from: "+n;if(i=n.charAt(t++),"A">=i||"B"===i||"Y"===i||i>="Z"||"I"===i||"O"===i)throw"MGRSPoint zone letter "+i+" not handled: "+n;f=n.substring(t,t+=2);for(var v=l(e),g=nt(f.charAt(0),v),o=tt(f.charAt(1),v);o<it(i);)o+=2e6;if(s=c-t,s%2!=0)throw"MGRSPoint has to have an even number \nof digits after the zone letter and two 100km letters - front \nhalf for easting meters, second half for \nnorthing meters"+n;var r,y,p,w,b,u=s/2,k=0,d=0;return u>0&&(r=1e5/Math.pow(10,u),y=n.substring(t,t+u),k=parseFloat(y)*r,p=n.substring(t+u),d=parseFloat(p)*r),w=k+g,b=d+o,{easting:w,northing:b,zoneLetter:i,zoneNumber:e,accuracy:r}}function nt(n,t){for(var i=v.charCodeAt(t-1),e=1e5,s=!1;i!==n.charCodeAt(0);){if(i++,i===r&&i++,i===u&&i++,i>o){if(s)throw"Bad character: "+n;i=f;s=!0}e+=1e5}return e}function tt(n,t){if(n>"V")throw"MGRSPoint given invalid Northing "+n;for(var i=y.charCodeAt(t-1),o=0,s=!1;i!==n.charCodeAt(0);){if(i++,i===r&&i++,i===u&&i++,i>e){if(s)throw"Bad character: "+n;i=f;s=!0}o+=1e5}return o}function it(n){var t;switch(n){case"C":t=11e5;break;case"D":t=2e6;break;case"E":t=28e5;break;case"F":t=37e5;break;case"G":t=46e5;break;case"H":t=55e5;break;case"J":t=64e5;break;case"K":t=73e5;break;case"L":t=82e5;break;case"M":t=91e5;break;case"N":t=0;break;case"P":t=8e5;break;case"Q":t=17e5;break;case"R":t=26e5;break;case"S":t=35e5;break;case"T":t=44e5;break;case"U":t=53e5;break;case"V":t=62e5;break;case"W":t=7e6;break;case"X":t=79e5;break;default:t=-1}if(t>=0)return t;throw"Invalid zone letter: "+n;}var a=6,v="AJSAJS",y="AFAFAF",f=65,r=73,u=79,e=86,o=90;i.forward=function(n,t){return t=t||5,b(p({lat:n[1],lon:n[0]}),t)};i.inverse=function(n){var t=c(g(n.toUpperCase()));return[t.left,t.bottom,t.right,t.top]};i.toPoint=function(n){var t=i.inverse(n);return[(t[2]+t[0])/2,(t[3]+t[1])/2]}},{}],67:[function(n,t){t.exports={name:"proj4",version:"2.3.3",description:"Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",main:"lib/index.js",directories:{test:"test",doc:"docs"},scripts:{test:"./node_modules/istanbul/lib/cli.js test ./node_modules/mocha/bin/_mocha test/test.js"},repository:{type:"git",url:"git://github.com/proj4js/proj4js.git"},author:"",license:"MIT",jam:{main:"dist/proj4.js",include:["dist/proj4.js","README.md","AUTHORS","LICENSE.md"]},devDependencies:{"grunt-cli":"~0.1.13",grunt:"~0.4.2","grunt-contrib-connect":"~0.6.0","grunt-contrib-jshint":"~0.8.0",chai:"~1.8.1",mocha:"~1.17.1","grunt-mocha-phantomjs":"~0.4.0",browserify:"~3.24.5","grunt-browserify":"~1.3.0","grunt-contrib-uglify":"~0.3.2",curl:"git://github.com/cujojs/curl.git",istanbul:"~0.2.4",tin:"~0.4.0"},dependencies:{mgrs:"0.0.0"}}},{}],"./includedProjections":[function(n,t){t.exports=n("gWUPNW")},{}],gWUPNW:[function(n,t){var i=[n("./lib/projections/tmerc"),n("./lib/projections/utm"),n("./lib/projections/sterea"),n("./lib/projections/stere"),n("./lib/projections/somerc"),n("./lib/projections/omerc"),n("./lib/projections/lcc"),n("./lib/projections/krovak"),n("./lib/projections/cass"),n("./lib/projections/laea"),n("./lib/projections/aea"),n("./lib/projections/gnom"),n("./lib/projections/cea"),n("./lib/projections/eqc"),n("./lib/projections/poly"),n("./lib/projections/nzmg"),n("./lib/projections/mill"),n("./lib/projections/sinu"),n("./lib/projections/moll"),n("./lib/projections/eqdc"),n("./lib/projections/vandg"),n("./lib/projections/aeqd")];t.exports=function(n){i.forEach(function(t){n.Proj.projections.add(t)})}},{"./lib/projections/aea":39,"./lib/projections/aeqd":40,"./lib/projections/cass":41,"./lib/projections/cea":42,"./lib/projections/eqc":43,"./lib/projections/eqdc":44,"./lib/projections/gnom":46,"./lib/projections/krovak":47,"./lib/projections/laea":48,"./lib/projections/lcc":49,"./lib/projections/mill":52,"./lib/projections/moll":53,"./lib/projections/nzmg":54,"./lib/projections/omerc":55,"./lib/projections/poly":56,"./lib/projections/sinu":57,"./lib/projections/somerc":58,"./lib/projections/stere":59,"./lib/projections/sterea":60,"./lib/projections/tmerc":61,"./lib/projections/utm":62,"./lib/projections/vandg":63}]},{},[35])(35)}),function(n,t){typeof exports=="object"?module.exports=t():typeof define=="function"&&define.amd?define([],t):n.ol=t()}(this,function(){var t={},n=this.goog={},i,r;return this.CLOSURE_NO_DEPS=!0,i=!1,n=n||{},n.global=this,n.global.CLOSURE_UNCOMPILED_DEFINES,n.global.CLOSURE_DEFINES,n.isDef=function(n){return n!==void 0},n.isString=function(n){return typeof n=="string"},n.isBoolean=function(n){return typeof n=="boolean"},n.isNumber=function(n){return typeof n=="number"},n.exportPath_=function(t,i,r){var e=t.split("."),u=r||n.global,f;for((e[0]in u)||!u.execScript||u.execScript("var "+e[0]);e.length&&(f=e.shift());)!e.length&&n.isDef(i)?u[f]=i:u=u[f]&&u[f]!==Object.prototype[f]?u[f]:u[f]={}},n.define=function(t,r){var u=r;i||(n.global.CLOSURE_UNCOMPILED_DEFINES&&n.global.CLOSURE_UNCOMPILED_DEFINES.nodeType===undefined&&Object.prototype.hasOwnProperty.call(n.global.CLOSURE_UNCOMPILED_DEFINES,t)?u=n.global.CLOSURE_UNCOMPILED_DEFINES[t]:n.global.CLOSURE_DEFINES&&n.global.CLOSURE_DEFINES.nodeType===undefined&&Object.prototype.hasOwnProperty.call(n.global.CLOSURE_DEFINES,t)&&(u=n.global.CLOSURE_DEFINES[t]));n.exportPath_(t,u)},n.define("goog.DEBUG",!0),n.define("goog.LOCALE","en"),n.define("goog.TRUSTED_SITE",!0),n.define("goog.STRICT_MODE_COMPATIBLE",!1),n.define("goog.DISALLOW_TEST_ONLY_CODE",i&&!n.DEBUG),n.define("goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING",!1),n.provide=function(t){if(n.isInModuleLoader_())throw new Error("goog.provide can not be used within a goog.module.");if(!i&&n.isProvided_(t))throw new Error('Namespace "'+t+'" already declared.');n.constructNamespace_(t)},n.constructNamespace_=function(t,r){if(!i){delete n.implicitNamespaces_[t];for(var u=t;u=u.substring(0,u.lastIndexOf("."));){if(n.getObjectByName(u))break;n.implicitNamespaces_[u]=!0}}n.exportPath_(t,r)},n.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,n.module=function(t){if(!n.isString(t)||!t||t.search(n.VALID_MODULE_RE_)==-1)throw new Error("Invalid module identifier");if(!n.isInModuleLoader_())throw new Error("Module "+t+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(n.moduleLoaderState_.moduleName)throw new Error("goog.module may only be called once per module.");if(n.moduleLoaderState_.moduleName=t,!i){if(n.isProvided_(t))throw new Error('Namespace "'+t+'" already declared.');delete n.implicitNamespaces_[t]}},n.module.get=function(t){return n.module.getInternal_(t)},n.module.getInternal_=function(t){if(!i){if(t in n.loadedModules_)return n.loadedModules_[t];if(!n.implicitNamespaces_[t]){var r=n.getObjectByName(t);return r!=null?r:null}}return null},n.moduleLoaderState_=null,n.isInModuleLoader_=function(){return n.moduleLoaderState_!=null},n.module.declareLegacyNamespace=function(){if(!i&&!n.isInModuleLoader_())throw new Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!i&&!n.moduleLoaderState_.moduleName)throw new Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");n.moduleLoaderState_.declareLegacyNamespace=!0},n.setTestOnly=function(t){if(n.DISALLOW_TEST_ONLY_CODE){t=t||"";throw new Error("Importing test-only code into non-debug environment"+(t?": "+t:"."));}},n.forwardDeclare=function(){},n.forwardDeclare("Document"),n.forwardDeclare("HTMLScriptElement"),n.forwardDeclare("XMLHttpRequest"),i||(n.isProvided_=function(t){return t in n.loadedModules_||!n.implicitNamespaces_[t]&&n.isDefAndNotNull(n.getObjectByName(t))},n.implicitNamespaces_={"goog.module":!0}),n.getObjectByName=function(t,i){for(var f=t.split("."),r=i||n.global,u=0;u<f.length;u++)if(r=r[f[u]],!n.isDefAndNotNull(r))return null;return r},n.globalize=function(t,i){var u=i||n.global;for(var r in t)u[r]=t[r]},n.addDependency=function(t,i,r,u){var h,c,f,e,o,s;if(n.DEPENDENCIES_ENABLED){for(f=t.replace(/\\/g,"/"),e=n.dependencies_,u&&typeof u!="boolean"||(u=u?{module:"goog"}:{}),o=0;h=i[o];o++)e.nameToPath[h]=f,e.loadFlags[f]=u;for(s=0;c=r[s];s++)f in e.requires||(e.requires[f]={}),e.requires[f][c]=!0}},n.define("goog.ENABLE_DEBUG_LOADER",!0),n.logToConsole_=function(t){n.global.console&&n.global.console.error(t)},n.require=function(t){var r,u;if(!i){if(n.ENABLE_DEBUG_LOADER&&n.IS_OLD_IE_&&n.maybeProcessDeferredDep_(t),n.isProvided_(t)){if(n.isInModuleLoader_())return n.module.getInternal_(t)}else if(n.ENABLE_DEBUG_LOADER)if(r=n.getPathFromDeps_(t),r)n.writeScripts_(r);else{u="goog.require could not find: "+t;n.logToConsole_(u);throw new Error(u);}return null}},n.basePath="",n.global.CLOSURE_BASE_PATH,n.global.CLOSURE_NO_DEPS,n.global.CLOSURE_IMPORT_SCRIPT,n.nullFunction=function(){},n.abstractMethod=function(){throw new Error("unimplemented abstract method");},n.addSingletonGetter=function(t){t.instance_=undefined;t.getInstance=function(){return t.instance_?t.instance_:(n.DEBUG&&(n.instantiatedSingletons_[n.instantiatedSingletons_.length]=t),t.instance_=new t)}},n.instantiatedSingletons_=[],n.define("goog.LOAD_MODULE_USING_EVAL",!0),n.define("goog.SEAL_MODULE_EXPORTS",n.DEBUG),n.loadedModules_={},n.DEPENDENCIES_ENABLED=!i&&n.ENABLE_DEBUG_LOADER,n.define("goog.TRANSPILE","detect"),n.define("goog.TRANSPILER","transpile.js"),n.DEPENDENCIES_ENABLED&&(n.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},n.inHtmlDocument_=function(){var t=n.global.document;return t!=null&&"write"in t},n.findBasePath_=function(){var r,u,f,t;if(n.isDef(n.global.CLOSURE_BASE_PATH)&&n.isString(n.global.CLOSURE_BASE_PATH)){n.basePath=n.global.CLOSURE_BASE_PATH;return}if(n.inHtmlDocument_())for(r=n.global.document,u=r.currentScript,f=u?[u]:r.getElementsByTagName("SCRIPT"),t=f.length-1;t>=0;--t){var s=f[t],i=s.src,e=i.lastIndexOf("?"),o=e==-1?i.length:e;if(i.substr(o-7,7)=="base.js"){n.basePath=i.substr(0,o-7);return}}},n.importScript_=function(t,i){var r=n.global.CLOSURE_IMPORT_SCRIPT||n.writeScriptTag_;r(t,i)&&(n.dependencies_.written[t]=!0)},n.IS_OLD_IE_=!!(!n.global.atob&&n.global.document&&n.global.document.all),n.oldIeWaiting_=!1,n.importProcessedScript_=function(t,i,r){var u='goog.retrieveAndExec_("'+t+'", '+i+", "+r+");";n.importScript_("",u)},n.queuedModules_=[],n.wrapModule_=function(t,i){return n.LOAD_MODULE_USING_EVAL&&n.isDef(n.global.JSON)?"goog.loadModule("+n.global.JSON.stringify(i+"\n//# sourceURL="+t+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+i+"\n;return exports});\n//# sourceURL="+t+"\n"},n.loadQueuedModules_=function(){var i=n.queuedModules_.length,r,t,u;if(i>0)for(r=n.queuedModules_,n.queuedModules_=[],t=0;t<i;t++)u=r[t],n.maybeProcessDeferredPath_(u);n.oldIeWaiting_=!1},n.maybeProcessDeferredDep_=function(t){if(n.isDeferredModule_(t)&&n.allDepsAreAvailable_(t)){var i=n.getPathFromDeps_(t);n.maybeProcessDeferredPath_(n.basePath+i)}},n.isDeferredModule_=function(t){var i=n.getPathFromDeps_(t),r=i&&n.dependencies_.loadFlags[i]||{},f=r.lang||"es3",u;return i&&(r.module=="goog"||n.needsTranspile_(f))?(u=n.basePath+i,u in n.dependencies_.deferred):!1},n.allDepsAreAvailable_=function(t){var i=n.getPathFromDeps_(t),r;if(i&&i in n.dependencies_.requires)for(r in n.dependencies_.requires[i])if(!n.isProvided_(r)&&!n.isDeferredModule_(r))return!1;return!0},n.maybeProcessDeferredPath_=function(t){if(t in n.dependencies_.deferred){var i=n.dependencies_.deferred[t];delete n.dependencies_.deferred[t];n.globalEval(i)}},n.loadModuleFromUrl=function(t){n.retrieveAndExec_(t,!0,!1)},n.writeScriptSrcNode_=function(t){n.global.document.write('<script type="text/javascript" src="'+t+'"><\/script>')},n.appendScriptSrcNode_=function(t){var r=n.global.document,i=r.createElement("script");i.type="text/javascript";i.src=t;i.defer=!1;i.async=!1;r.head.appendChild(i)},n.writeScriptTag_=function(t,i){var r,u,f;if(n.inHtmlDocument_()){if(r=n.global.document,!n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&r.readyState=="complete"){if(u=/\bdeps.js$/.test(t),u)return!1;throw new Error('Cannot write "'+t+'" after document load');}return i===undefined?n.IS_OLD_IE_?(n.oldIeWaiting_=!0,f=" onreadystatechange='goog.onScriptLoad_(this, "+ ++n.lastNonModuleScriptIndex_+")' ",r.write('<script type="text/javascript" src="'+t+'"'+f+"><\/script>")):n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?n.appendScriptSrcNode_(t):n.writeScriptSrcNode_(t):r.write('<script type="text/javascript">'+n.protectScriptTag_(i)+"<\/script>"),!0}return!1},n.protectScriptTag_=function(n){return n.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")},n.needsTranspile_=function(t){if(n.TRANSPILE=="always")return!0;if(n.TRANSPILE=="never")return!1;if(n.requiresTranspilation_||(n.requiresTranspilation_=n.createRequiresTranspilation_()),t in n.requiresTranspilation_)return n.requiresTranspilation_[t];throw new Error("Unknown language mode: "+t);},n.requiresTranspilation_=null,n.lastNonModuleScriptIndex_=0,n.onScriptLoad_=function(t,i){return t.readyState=="complete"&&n.lastNonModuleScriptIndex_==i&&n.loadQueuedModules_(),!0},n.writeScripts_=function(t){function h(t){if(!(t in i.written)&&!(t in i.visited)){if(i.visited[t]=!0,t in i.requires)for(var r in i.requires[t])if(!n.isProvided_(r))if(r in i.nameToPath)h(i.nameToPath[r]);else throw new Error("Undefined nameToPath for "+r);t in s||(s[t]=!0,f.push(t))}}var f=[],s={},i=n.dependencies_,e,r,u;for(h(t),r=0;r<f.length;r++)u=f[r],n.dependencies_.written[u]=!0;for(e=n.moduleLoaderState_,n.moduleLoaderState_=null,r=0;r<f.length;r++)if(u=f[r],u){var o=i.loadFlags[u]||{},l=o.lang||"es3",c=n.needsTranspile_(l);o.module=="goog"||c?n.importProcessedScript_(n.basePath+u,o.module=="goog",c):n.importScript_(n.basePath+u)}else{n.moduleLoaderState_=e;throw new Error("Undefined script input");}n.moduleLoaderState_=e},n.getPathFromDeps_=function(t){return t in n.dependencies_.nameToPath?n.dependencies_.nameToPath[t]:null},n.findBasePath_(),n.global.CLOSURE_NO_DEPS||n.importScript_(n.basePath+"deps.js")),n.hasBadLetScoping=null,n.useSafari10Workaround=function(){if(n.hasBadLetScoping==null){var hasBadLetScoping;try{hasBadLetScoping=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(e){hasBadLetScoping=!1}n.hasBadLetScoping=hasBadLetScoping}return n.hasBadLetScoping},n.workaroundSafari10EvalBug=function(n){return"(function(){"+n+"\n;})();\n"},n.loadModule=function(t){var u=n.moduleLoaderState_,i,r;try{if(n.moduleLoaderState_={moduleName:undefined,declareLegacyNamespace:!1},n.isFunction(t))i=t.call(undefined,{});else if(n.isString(t))n.useSafari10Workaround()&&(t=n.workaroundSafari10EvalBug(t)),i=n.loadModuleFromSource_.call(undefined,t);else throw new Error("Invalid module definition");if(r=n.moduleLoaderState_.moduleName,!n.isString(r)||!r)throw new Error('Invalid module name "'+r+'"');n.moduleLoaderState_.declareLegacyNamespace?n.constructNamespace_(r,i):n.SEAL_MODULE_EXPORTS&&Object.seal&&typeof i=="object"&&i!=null&&Object.seal(i);n.loadedModules_[r]=i}finally{n.moduleLoaderState_=u}},n.loadModuleFromSource_=function(){"use strict";var exports={};return eval(arguments[0]),exports},n.normalizePath_=function(n){for(var i=n.split("/"),t=0;t<i.length;)i[t]=="."?i.splice(t,1):t&&i[t]==".."&&i[t-1]&&i[t-1]!=".."?i.splice(--t,2):t++;return i.join("/")},n.global.CLOSURE_LOAD_FILE_SYNC,n.loadFileSync_=function(t){if(n.global.CLOSURE_LOAD_FILE_SYNC)return n.global.CLOSURE_LOAD_FILE_SYNC(t);try{var i=new n.global.XMLHttpRequest;return i.open("get",t,!1),i.send(),i.status==0||i.status==200?i.responseText:null}catch(r){return null}},n.retrieveAndExec_=function(t,r,u){var e,o,f,s;if(!i){if(e=t,t=n.normalizePath_(t),o=n.global.CLOSURE_IMPORT_SCRIPT||n.writeScriptTag_,f=n.loadFileSync_(t),f==null)throw new Error('Load of "'+t+'" failed');u&&(f=n.transpile_.call(n.global,f,t));r?f=n.wrapModule_(t,f):f+="\n//# sourceURL="+t;s=n.IS_OLD_IE_;s&&n.oldIeWaiting_?(n.dependencies_.deferred[e]=f,n.queuedModules_.push(e)):o(t,f)}},n.transpile_=function(code,path){var jscomp=n.global.$jscomp,transpile,transpilerPath,transpilerCode,suffix;if(jscomp||(n.global.$jscomp=jscomp={}),transpile=jscomp.transpile,!transpile&&(transpilerPath=n.basePath+n.TRANSPILER,transpilerCode=n.loadFileSync_(transpilerPath),transpilerCode)){if(eval(transpilerCode+"\n//# sourceURL="+transpilerPath),n.global.$gwtExport&&n.global.$gwtExport.$jscomp&&!n.global.$gwtExport.$jscomp.transpile)throw new Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(n.global.$gwtExport));n.global.$jscomp.transpile=n.global.$gwtExport.$jscomp.transpile;jscomp=n.global.$jscomp;transpile=jscomp.transpile}return transpile||(suffix=" requires transpilation but no transpiler was found.",transpile=jscomp.transpile=function(t,i){return n.logToConsole_(i+suffix),t}),transpile(code,path)},n.typeOf=function(n){var t=typeof n,i;if(t=="object")if(n){if(n instanceof Array)return"array";if(n instanceof Object)return t;if(i=Object.prototype.toString.call(n),i=="[object Window]")return"object";if(i=="[object Array]"||typeof n.length=="number"&&typeof n.splice!="undefined"&&typeof n.propertyIsEnumerable!="undefined"&&!n.propertyIsEnumerable("splice"))return"array";if(i=="[object Function]"||typeof n.call!="undefined"&&typeof n.propertyIsEnumerable!="undefined"&&!n.propertyIsEnumerable("call"))return"function"}else return"null";else if(t=="function"&&typeof n.call=="undefined")return"object";return t},n.isNull=function(n){return n===null},n.isDefAndNotNull=function(n){return n!=null},n.isArray=function(t){return n.typeOf(t)=="array"},n.isArrayLike=function(t){var i=n.typeOf(t);return i=="array"||i=="object"&&typeof t.length=="number"},n.isDateLike=function(t){return n.isObject(t)&&typeof t.getFullYear=="function"},n.isFunction=function(t){return n.typeOf(t)=="function"},n.isObject=function(n){var t=typeof n;return t=="object"&&n!=null||t=="function"},n.getUid=function(t){return t[n.UID_PROPERTY_]||(t[n.UID_PROPERTY_]=++n.uidCounter_)},n.hasUid=function(t){return!!t[n.UID_PROPERTY_]},n.removeUid=function(t){t!==null&&"removeAttribute"in t&&t.removeAttribute(n.UID_PROPERTY_);try{delete t[n.UID_PROPERTY_]}catch(i){}},n.UID_PROPERTY_="closure_uid_"+(Math.random()*1e9>>>0),n.uidCounter_=0,n.getHashCode=n.getUid,n.removeHashCode=n.removeUid,n.cloneObject=function(t){var i=n.typeOf(t),r,u;if(i=="object"||i=="array"){if(t.clone)return t.clone();r=i=="array"?[]:{};for(u in t)r[u]=n.cloneObject(t[u]);return r}return t},n.bindNative_=function(n){return n.call.apply(n.bind,arguments)},n.bindJs_=function(n,t){if(!n)throw new Error;if(arguments.length>2){var i=Array.prototype.slice.call(arguments,2);return function(){var r=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(r,i),n.apply(t,r)}}return function(){return n.apply(t,arguments)}},n.bind=function(){return n.bind=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?n.bindNative_:n.bindJs_,n.bind.apply(null,arguments)},n.partial=function(n){var t=Array.prototype.slice.call(arguments,1);return function(){var i=t.slice();return i.push.apply(i,arguments),n.apply(this,i)}},n.mixin=function(n,t){for(var i in t)n[i]=t[i]},n.now=n.TRUSTED_SITE&&Date.now||function(){return+new Date},n.globalEval=function(t){if(n.global.execScript)n.global.execScript(t,"JavaScript");else if(n.global.eval){if(n.evalWorksForGlobals_==null)if(n.global.eval("var _evalTest_ = 1;"),typeof n.global._evalTest_!="undefined"){try{delete n.global._evalTest_}catch(u){}n.evalWorksForGlobals_=!0}else n.evalWorksForGlobals_=!1;if(n.evalWorksForGlobals_)n.global.eval(t);else{var r=n.global.document,i=r.createElement("SCRIPT");i.type="text/javascript";i.defer=!1;i.appendChild(r.createTextNode(t));r.body.appendChild(i);r.body.removeChild(i)}}else throw new Error("goog.globalEval not available");},n.evalWorksForGlobals_=null,n.cssNameMapping_,n.cssNameMappingStyle_,n.global.CLOSURE_CSS_NAME_MAP_FN,n.getCssName=function(t,i){var r,e,u,f;if(String(t).charAt(0)==".")throw new Error('className passed in goog.getCssName must not start with ".". You passed: '+t);return(r=function(t){return n.cssNameMapping_[t]||t},e=function(n){for(var i=n.split("-"),u=[],t=0;t<i.length;t++)u.push(r(i[t]));return u.join("-")},u=n.cssNameMapping_?n.cssNameMappingStyle_=="BY_WHOLE"?r:e:function(n){return n},f=i?t+"-"+u(i):u(t),n.global.CLOSURE_CSS_NAME_MAP_FN)?n.global.CLOSURE_CSS_NAME_MAP_FN(f):f},n.setCssNameMapping=function(t,i){n.cssNameMapping_=t;n.cssNameMappingStyle_=i},n.global.CLOSURE_CSS_NAME_MAPPING,!i&&n.global.CLOSURE_CSS_NAME_MAPPING&&(n.cssNameMapping_=n.global.CLOSURE_CSS_NAME_MAPPING),n.getMsg=function(n,t){return t&&(n=n.replace(/\{\$([^}]+)}/g,function(n,i){return t!=null&&i in t?t[i]:n})),n},n.getMsgWithFallback=function(n){return n},n.exportSymbol=function(t,i,r){n.exportPath_(t,i,r)},n.exportProperty=function(n,t,i){n[t]=i},n.inherits=function(n,t){function i(){}i.prototype=t.prototype;n.superClass_=t.prototype;n.prototype=new i;n.prototype.constructor=n;n.base=function(n,i){for(var u=new Array(arguments.length-2),r=2;r<arguments.length;r++)u[r-2]=arguments[r];return t.prototype[i].apply(n,u)}},n.base=function(t,i){var f=arguments.callee.caller,o,e,r,s,u;if(n.STRICT_MODE_COMPATIBLE||n.DEBUG&&!f)throw new Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(f.superClass_){for(o=new Array(arguments.length-1),r=1;r<arguments.length;r++)o[r-1]=arguments[r];return f.superClass_.constructor.apply(t,o)}for(e=new Array(arguments.length-2),r=2;r<arguments.length;r++)e[r-2]=arguments[r];for(s=!1,u=t.constructor;u;u=u.superClass_&&u.superClass_.constructor)if(u.prototype[i]===f)s=!0;else if(s)return u.prototype[i].apply(t,e);if(t[i]===f)return t.constructor.prototype[i].apply(t,e);throw new Error("goog.base called from a method of one name to a method of a different name");},n.scope=function(t){if(n.isInModuleLoader_())throw new Error("goog.scope is not supported within a goog.module.");t.call(n.global)},i||(n.global.COMPILED=i),n.defineClass=function(t,i){var u=i.constructor,f=i.statics,r;return u&&u!=Object.prototype.constructor||(u=function(){throw new Error("cannot instantiate an interface (no constructor defined).");}),r=n.defineClass.createSealingConstructor_(u,t),t&&n.inherits(r,t),delete i.constructor,delete i.statics,n.defineClass.applyProperties_(r.prototype,i),f!=null&&(f instanceof Function?f(r):n.defineClass.applyProperties_(r,f)),r},n.defineClass.ClassDescriptor,n.define("goog.defineClass.SEAL_CLASS_INSTANCES",n.DEBUG),n.defineClass.createSealingConstructor_=function(t,i){if(!n.defineClass.SEAL_CLASS_INSTANCES)return t;var u=!n.defineClass.isUnsealable_(i),r=function(){var i=t.apply(this,arguments)||this;return i[n.UID_PROPERTY_]=i[n.UID_PROPERTY_],this.constructor===r&&u&&Object.seal instanceof Function&&Object.seal(i),i};return r},n.defineClass.isUnsealable_=function(t){return t&&t.prototype&&t.prototype[n.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},n.defineClass.OBJECT_PROTOTYPE_FIELDS_=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],n.defineClass.applyProperties_=function(t,i){var r,u;for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r]);for(u=0;u<n.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;u++)r=n.defineClass.OBJECT_PROTOTYPE_FIELDS_[u],Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r])},n.tagUnsealableClass=function(t){!i&&n.defineClass.SEAL_CLASS_INSTANCES&&(t.prototype[n.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},n.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",n.createRequiresTranspilation_=function(){function t(n,t){u?i[n]=!0:t()?i[n]=!1:(i[n]=!0,u=!0)}function r(code){try{return!!eval(code)}catch(ignored){return!1}}var i={es3:!1},u=!1,f=n.global.navigator&&n.global.navigator.userAgent?n.global.navigator.userAgent:"";return t("es5",function(){return r("[1,].length==1")}),t("es6",function(){var n=f.match(/Edge\/(\d+)(\.\d)*/i),t;return n&&Number(n[1])<15?!1:(t="class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}",r('(()=>{"use strict";'+t+"})()"))}),t("es6-impl",function(){return!0}),t("es7",function(){return r("2 ** 2 == 4")}),t("es8",function(){return r("async () => 1, true")}),i},n.provide("ol.array"),ol.array.binarySearch=function(n,t,i){for(var u,f,s=i||ol.array.numberSafeCompareFunction,r=0,e=n.length,o=!1;r<e;)u=r+(e-r>>1),f=+s(n[u],t),f<0?r=u+1:(e=u,o=!f);return o?r:~r},ol.array.numberSafeCompareFunction=function(n,t){return n>t?1:n<t?-1:0},ol.array.includes=function(n,t){return n.indexOf(t)>=0},ol.array.linearFindNearest=function(n,t,i){var u=n.length,r;if(n[0]<=t)return 0;if(t<=n[u-1])return u-1;if(i>0){for(r=1;r<u;++r)if(n[r]<t)return r-1}else if(i<0){for(r=1;r<u;++r)if(n[r]<=t)return r}else for(r=1;r<u;++r){if(n[r]==t)return r;if(n[r]<t)return n[r-1]-t<t-n[r]?r-1:r}return u-1},ol.array.reverseSubArray=function(n,t,i){while(t<i){var r=n[t];n[t]=n[i];n[i]=r;++t;--i}},ol.array.extend=function(n,t){for(var r=Array.isArray(t)?t:[t],u=r.length,i=0;i<u;i++)n[n.length]=r[i]},ol.array.remove=function(n,t){var i=n.indexOf(t),r=i>-1;return r&&n.splice(i,1),r},ol.array.find=function(n,t){for(var u=n.length>>>0,r,i=0;i<u;i++)if(r=n[i],t(r,i,n))return r;return null},ol.array.equals=function(n,t){var r=n.length,i;if(r!==t.length)return!1;for(i=0;i<r;i++)if(n[i]!==t[i])return!1;return!0},ol.array.stableSort=function(n,t){for(var u=n.length,r=Array(n.length),i=0;i<u;i++)r[i]={index:i,value:n[i]};for(r.sort(function(n,i){return t(n.value,i.value)||n.index-i.index}),i=0;i<n.length;i++)n[i]=r[i].value},ol.array.findIndex=function(n,t){var i,r=!n.every(function(r,u){return i=u,!t(r,u,n)});return r?i:-1},ol.array.isSorted=function(n,t,i){var r=t||ol.array.numberSafeCompareFunction;return n.every(function(t,u){if(u===0)return!0;var f=r(n[u-1],t);return!(f>0||i&&f===0)})},n.provide("ol"),ol.ASSUME_TOUCH=!1,ol.DEFAULT_MAX_ZOOM=42,ol.DEFAULT_MIN_ZOOM=0,ol.DEFAULT_RASTER_REPROJECTION_ERROR_THRESHOLD=.5,ol.DEFAULT_TILE_SIZE=256,ol.DEFAULT_WMS_VERSION="1.3.0",ol.ENABLE_CANVAS=!0,ol.ENABLE_PROJ4JS=!0,ol.ENABLE_RASTER_REPROJECTION=!0,ol.ENABLE_WEBGL=!0,ol.DEBUG_WEBGL=!0,ol.INITIAL_ATLAS_SIZE=256,ol.MAX_ATLAS_SIZE=-1,ol.MOUSEWHEELZOOM_MAXDELTA=1,ol.OVERVIEWMAP_MAX_RATIO=.75,ol.OVERVIEWMAP_MIN_RATIO=.1,ol.RASTER_REPROJECTION_MAX_SOURCE_TILES=100,ol.RASTER_REPROJECTION_MAX_SUBDIVISION=10,ol.RASTER_REPROJECTION_MAX_TRIANGLE_WIDTH=.25,ol.SIMPLIFY_TOLERANCE=.5,ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK=1024,ol.VERSION="",ol.WEBGL_MAX_TEXTURE_SIZE,ol.WEBGL_EXTENSIONS,ol.inherits=function(n,t){n.prototype=Object.create(t.prototype);n.prototype.constructor=n},ol.nullFunction=function(){},ol.getUid=function(n){return n.ol_uid||(n.ol_uid=++ol.uidCounter_)},ol.uidCounter_=0,n.provide("ol.AssertionError"),n.require("ol"),ol.AssertionError=function(n){var t=ol.VERSION?ol.VERSION.split("-")[0]:"latest";this.message="Assertion failed. See https://openlayers.org/en/"+t+"/doc/errors/#"+n+" for details.";this.code=n;this.name="AssertionError"},ol.inherits(ol.AssertionError,Error),n.provide("ol.asserts"),n.require("ol.AssertionError"),ol.asserts.assert=function(n,t){if(!n)throw new ol.AssertionError(t);},n.provide("ol.TileRange"),ol.TileRange=function(n,t,i,r){this.minX=n;this.maxX=t;this.minY=i;this.maxY=r},ol.TileRange.createOrUpdate=function(n,t,i,r,u){return u!==undefined?(u.minX=n,u.maxX=t,u.minY=i,u.maxY=r,u):new ol.TileRange(n,t,i,r)},ol.TileRange.prototype.contains=function(n){return this.containsXY(n[1],n[2])},ol.TileRange.prototype.containsTileRange=function(n){return this.minX<=n.minX&&n.maxX<=this.maxX&&this.minY<=n.minY&&n.maxY<=this.maxY},ol.TileRange.prototype.containsXY=function(n,t){return this.minX<=n&&n<=this.maxX&&this.minY<=t&&t<=this.maxY},ol.TileRange.prototype.equals=function(n){return this.minX==n.minX&&this.minY==n.minY&&this.maxX==n.maxX&&this.maxY==n.maxY},ol.TileRange.prototype.extend=function(n){n.minX<this.minX&&(this.minX=n.minX);n.maxX>this.maxX&&(this.maxX=n.maxX);n.minY<this.minY&&(this.minY=n.minY);n.maxY>this.maxY&&(this.maxY=n.maxY)},ol.TileRange.prototype.getHeight=function(){return this.maxY-this.minY+1},ol.TileRange.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},ol.TileRange.prototype.getWidth=function(){return this.maxX-this.minX+1},ol.TileRange.prototype.intersects=function(n){return this.minX<=n.maxX&&this.maxX>=n.minX&&this.minY<=n.maxY&&this.maxY>=n.minY},n.provide("ol.math"),n.require("ol.asserts"),ol.math.clamp=function(n,t,i){return Math.min(Math.max(n,t),i)},ol.math.cosh=function(){return"cosh"in Math?Math.cosh:function(n){var t=Math.exp(n);return(t+1/t)/2}}(),ol.math.roundUpToPowerOfTwo=function(n){return ol.asserts.assert(0<n,29),Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},ol.math.squaredSegmentDistance=function(n,t,i,r,u,f){var e=u-i,o=f-r,s;return(e!==0||o!==0)&&(s=((n-i)*e+(t-r)*o)/(e*e+o*o),s>1?(i=u,r=f):s>0&&(i+=e*s,r+=o*s)),ol.math.squaredDistance(n,t,i,r)},ol.math.squaredDistance=function(n,t,i,r){var u=i-n,f=r-t;return u*u+f*f},ol.math.solveLinearSystem=function(n){for(var s,h,e,l,a,f,v,u,c,i,o,r=n.length,t=0;t<r;t++){for(s=t,h=Math.abs(n[t][t]),e=t+1;e<r;e++)l=Math.abs(n[e][t]),l>h&&(h=l,s=e);if(h===0)return null;for(a=n[s],n[s]=n[t],n[t]=a,f=t+1;f<r;f++)for(v=-n[f][t]/n[t][t],u=t;u<r+1;u++)t==u?n[f][u]=0:n[f][u]+=v*n[t][u]}for(c=new Array(r),i=r-1;i>=0;i--)for(c[i]=n[i][r]/n[i][i],o=i-1;o>=0;o--)n[o][r]-=n[o][i]*c[i];return c},ol.math.toDegrees=function(n){return n*180/Math.PI},ol.math.toRadians=function(n){return n*Math.PI/180},ol.math.modulo=function(n,t){var i=n%t;return i*t<0?i+t:i},ol.math.lerp=function(n,t,i){return n+i*(t-n)},n.provide("ol.size"),ol.size.buffer=function(n,t,i){return i===undefined&&(i=[0,0]),i[0]=n[0]+2*t,i[1]=n[1]+2*t,i},ol.size.hasArea=function(n){return n[0]>0&&n[1]>0},ol.size.scale=function(n,t,i){return i===undefined&&(i=[0,0]),i[0]=n[0]*t+.5|0,i[1]=n[1]*t+.5|0,i},ol.size.toSize=function(n,t){return Array.isArray(n)?n:(t===undefined?t=[n,n]:t[0]=t[1]=n,t)},n.provide("ol.extent.Corner"),ol.extent.Corner={BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",TOP_LEFT:"top-left",TOP_RIGHT:"top-right"},n.provide("ol.extent.Relationship"),ol.extent.Relationship={UNKNOWN:0,INTERSECTING:1,ABOVE:2,RIGHT:4,BELOW:8,LEFT:16},n.provide("ol.extent"),n.require("ol.asserts"),n.require("ol.extent.Corner"),n.require("ol.extent.Relationship"),ol.extent.boundingExtent=function(n){for(var i=ol.extent.createEmpty(),t=0,r=n.length;t<r;++t)ol.extent.extendCoordinate(i,n[t]);return i},ol.extent.boundingExtentXYs_=function(n,t,i){var r=Math.min.apply(null,n),u=Math.min.apply(null,t),f=Math.max.apply(null,n),e=Math.max.apply(null,t);return ol.extent.createOrUpdate(r,u,f,e,i)},ol.extent.buffer=function(n,t,i){return i?(i[0]=n[0]-t,i[1]=n[1]-t,i[2]=n[2]+t,i[3]=n[3]+t,i):[n[0]-t,n[1]-t,n[2]+t,n[3]+t]},ol.extent.clone=function(n,t){return t?(t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t):n.slice()},ol.extent.closestSquaredDistanceXY=function(n,t,i){var r,u;return r=t<n[0]?n[0]-t:n[2]<t?t-n[2]:0,u=i<n[1]?n[1]-i:n[3]<i?i-n[3]:0,r*r+u*u},ol.extent.containsCoordinate=function(n,t){return ol.extent.containsXY(n,t[0],t[1])},ol.extent.containsExtent=function(n,t){return n[0]<=t[0]&&t[2]<=n[2]&&n[1]<=t[1]&&t[3]<=n[3]},ol.extent.containsXY=function(n,t,i){return n[0]<=t&&t<=n[2]&&n[1]<=i&&i<=n[3]},ol.extent.coordinateRelationship=function(n,t){var f=n[0],e=n[1],o=n[2],s=n[3],r=t[0],u=t[1],i=ol.extent.Relationship.UNKNOWN;return r<f?i=i|ol.extent.Relationship.LEFT:r>o&&(i=i|ol.extent.Relationship.RIGHT),u<e?i=i|ol.extent.Relationship.BELOW:u>s&&(i=i|ol.extent.Relationship.ABOVE),i===ol.extent.Relationship.UNKNOWN&&(i=ol.extent.Relationship.INTERSECTING),i},ol.extent.createEmpty=function(){return[Infinity,Infinity,-Infinity,-Infinity]},ol.extent.createOrUpdate=function(n,t,i,r,u){return u?(u[0]=n,u[1]=t,u[2]=i,u[3]=r,u):[n,t,i,r]},ol.extent.createOrUpdateEmpty=function(n){return ol.extent.createOrUpdate(Infinity,Infinity,-Infinity,-Infinity,n)},ol.extent.createOrUpdateFromCoordinate=function(n,t){var i=n[0],r=n[1];return ol.extent.createOrUpdate(i,r,i,r,t)},ol.extent.createOrUpdateFromCoordinates=function(n,t){var i=ol.extent.createOrUpdateEmpty(t);return ol.extent.extendCoordinates(i,n)},ol.extent.createOrUpdateFromFlatCoordinates=function(n,t,i,r,u){var f=ol.extent.createOrUpdateEmpty(u);return ol.extent.extendFlatCoordinates(f,n,t,i,r)},ol.extent.createOrUpdateFromRings=function(n,t){var i=ol.extent.createOrUpdateEmpty(t);return ol.extent.extendRings(i,n)},ol.extent.equals=function(n,t){return n[0]==t[0]&&n[2]==t[2]&&n[1]==t[1]&&n[3]==t[3]},ol.extent.extend=function(n,t){return t[0]<n[0]&&(n[0]=t[0]),t[2]>n[2]&&(n[2]=t[2]),t[1]<n[1]&&(n[1]=t[1]),t[3]>n[3]&&(n[3]=t[3]),n},ol.extent.extendCoordinate=function(n,t){t[0]<n[0]&&(n[0]=t[0]);t[0]>n[2]&&(n[2]=t[0]);t[1]<n[1]&&(n[1]=t[1]);t[1]>n[3]&&(n[3]=t[1])},ol.extent.extendCoordinates=function(n,t){for(var i=0,r=t.length;i<r;++i)ol.extent.extendCoordinate(n,t[i]);return n},ol.extent.extendFlatCoordinates=function(n,t,i,r,u){for(;i<r;i+=u)ol.extent.extendXY(n,t[i],t[i+1]);return n},ol.extent.extendRings=function(n,t){for(var i=0,r=t.length;i<r;++i)ol.extent.extendCoordinates(n,t[i]);return n},ol.extent.extendXY=function(n,t,i){n[0]=Math.min(n[0],t);n[1]=Math.min(n[1],i);n[2]=Math.max(n[2],t);n[3]=Math.max(n[3],i)},ol.extent.forEachCorner=function(n,t,i){var r;return(r=t.call(i,ol.extent.getBottomLeft(n)),r)?r:(r=t.call(i,ol.extent.getBottomRight(n)),r)?r:(r=t.call(i,ol.extent.getTopRight(n)),r)?r:(r=t.call(i,ol.extent.getTopLeft(n)),r)?r:!1},ol.extent.getArea=function(n){var t=0;return ol.extent.isEmpty(n)||(t=ol.extent.getWidth(n)*ol.extent.getHeight(n)),t},ol.extent.getBottomLeft=function(n){return[n[0],n[1]]},ol.extent.getBottomRight=function(n){return[n[2],n[1]]},ol.extent.getCenter=function(n){return[(n[0]+n[2])/2,(n[1]+n[3])/2]},ol.extent.getCorner=function(n,t){var i;return t===ol.extent.Corner.BOTTOM_LEFT?i=ol.extent.getBottomLeft(n):t===ol.extent.Corner.BOTTOM_RIGHT?i=ol.extent.getBottomRight(n):t===ol.extent.Corner.TOP_LEFT?i=ol.extent.getTopLeft(n):t===ol.extent.Corner.TOP_RIGHT?i=ol.extent.getTopRight(n):ol.asserts.assert(!1,13),i},ol.extent.getEnlargedArea=function(n,t){var i=Math.min(n[0],t[0]),r=Math.min(n[1],t[1]),u=Math.max(n[2],t[2]),f=Math.max(n[3],t[3]);return(u-i)*(f-r)},ol.extent.getForViewAndSize=function(n,t,i,r,u){var l=t*r[0]/2,a=t*r[1]/2,v=Math.cos(i),y=Math.sin(i),f=l*v,e=l*y,o=a*v,s=a*y,h=n[0],c=n[1],p=h-f+s,w=h-f-s,b=h+f-s,k=h+f+s,d=c-e-o,g=c-e+o,nt=c+e+o,tt=c+e-o;return ol.extent.createOrUpdate(Math.min(p,w,b,k),Math.min(d,g,nt,tt),Math.max(p,w,b,k),Math.max(d,g,nt,tt),u)},ol.extent.getHeight=function(n){return n[3]-n[1]},ol.extent.getIntersectionArea=function(n,t){var i=ol.extent.getIntersection(n,t);return ol.extent.getArea(i)},ol.extent.getIntersection=function(n,t,i){var r=i?i:ol.extent.createEmpty();return ol.extent.intersects(n,t)&&(r[0]=n[0]>t[0]?n[0]:t[0],r[1]=n[1]>t[1]?n[1]:t[1],r[2]=n[2]<t[2]?n[2]:t[2],r[3]=n[3]<t[3]?n[3]:t[3]),r},ol.extent.getMargin=function(n){return ol.extent.getWidth(n)+ol.extent.getHeight(n)},ol.extent.getSize=function(n){return[n[2]-n[0],n[3]-n[1]]},ol.extent.getTopLeft=function(n){return[n[0],n[3]]},ol.extent.getTopRight=function(n){return[n[2],n[3]]},ol.extent.getWidth=function(n){return n[2]-n[0]},ol.extent.intersects=function(n,t){return n[0]<=t[2]&&n[2]>=t[0]&&n[1]<=t[3]&&n[3]>=t[1]},ol.extent.isEmpty=function(n){return n[2]<n[0]||n[3]<n[1]},ol.extent.returnOrUpdate=function(n,t){return t?(t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t):n},ol.extent.scaleFromCenter=function(n,t){var i=(n[2]-n[0])/2*(t-1),r=(n[3]-n[1])/2*(t-1);n[0]-=i;n[2]+=i;n[1]-=r;n[3]+=r},ol.extent.intersectsSegment=function(n,t,i){var r=!1,e=ol.extent.coordinateRelationship(n,t),o=ol.extent.coordinateRelationship(n,i);if(e===ol.extent.Relationship.INTERSECTING||o===ol.extent.Relationship.INTERSECTING)r=!0;else{var l=n[0],a=n[1],v=n[2],y=n[3],p=t[0],w=t[1],s=i[0],h=i[1],c=(h-w)/(s-p),u,f;!(o&ol.extent.Relationship.ABOVE)||e&ol.extent.Relationship.ABOVE||(u=s-(h-y)/c,r=u>=l&&u<=v);r||!(o&ol.extent.Relationship.RIGHT)||e&ol.extent.Relationship.RIGHT||(f=h-(s-v)*c,r=f>=a&&f<=y);r||!(o&ol.extent.Relationship.BELOW)||e&ol.extent.Relationship.BELOW||(u=s-(h-a)/c,r=u>=l&&u<=v);r||!(o&ol.extent.Relationship.LEFT)||e&ol.extent.Relationship.LEFT||(f=h-(s-l)*c,r=f>=a&&f<=y)}return r},ol.extent.applyTransform=function(n,t,i){var r=[n[0],n[1],n[0],n[3],n[2],n[1],n[2],n[3]],u,f;return t(r,r,2),u=[r[0],r[2],r[4],r[6]],f=[r[1],r[3],r[5],r[7]],ol.extent.boundingExtentXYs_(u,f,i)},n.provide("ol.obj"),ol.obj.assign=typeof Object.assign=="function"?Object.assign:function(n){var u,i,f,t,r;if(n===undefined||n===null)throw new TypeError("Cannot convert undefined or null to object");for(u=Object(n),i=1,f=arguments.length;i<f;++i)if(t=arguments[i],t!==undefined&&t!==null)for(r in t)t.hasOwnProperty(r)&&(u[r]=t[r]);return u},ol.obj.clear=function(n){for(var t in n)delete n[t]},ol.obj.getValues=function(n){var t=[];for(var i in n)t.push(n[i]);return t},ol.obj.isEmpty=function(n){for(var t in n)return!1;return!t},n.provide("ol.geom.GeometryType"),ol.geom.GeometryType={POINT:"Point",LINE_STRING:"LineString",LINEAR_RING:"LinearRing",POLYGON:"Polygon",MULTI_POINT:"MultiPoint",MULTI_LINE_STRING:"MultiLineString",MULTI_POLYGON:"MultiPolygon",GEOMETRY_COLLECTION:"GeometryCollection",CIRCLE:"Circle"},n.provide("ol.Sphere"),n.require("ol.math"),n.require("ol.geom.GeometryType"),ol.Sphere=function(n){this.radius=n},ol.Sphere.prototype.geodesicArea=function(n){return ol.Sphere.getArea_(n,this.radius)},ol.Sphere.prototype.haversineDistance=function(n,t){return ol.Sphere.getDistance_(n,t,this.radius)},ol.Sphere.prototype.offset=function(n,t,i){var r=ol.math.toRadians(n[1]),e=ol.math.toRadians(n[0]),u=t/this.radius,f=Math.asin(Math.sin(r)*Math.cos(u)+Math.cos(r)*Math.sin(u)*Math.cos(i)),o=e+Math.atan2(Math.sin(i)*Math.sin(u)*Math.cos(r),Math.cos(u)-Math.sin(r)*Math.sin(f));return[ol.math.toDegrees(o),ol.math.toDegrees(f)]},ol.Sphere.DEFAULT_RADIUS=6371008.8,ol.Sphere.getLength=function(n,t){var l=t||{},o=l.radius||ol.Sphere.DEFAULT_RADIUS,v=l.projection||"EPSG:3857",s,u,r,h,i,f,e,a,c;n=n.clone().transform(v,"EPSG:4326");s=n.getType();u=0;switch(s){case ol.geom.GeometryType.POINT:case ol.geom.GeometryType.MULTI_POINT:break;case ol.geom.GeometryType.LINE_STRING:case ol.geom.GeometryType.LINEAR_RING:r=n.getCoordinates();u=ol.Sphere.getLength_(r,o);break;case ol.geom.GeometryType.MULTI_LINE_STRING:case ol.geom.GeometryType.POLYGON:for(r=n.getCoordinates(),i=0,f=r.length;i<f;++i)u+=ol.Sphere.getLength_(r[i],o);break;case ol.geom.GeometryType.MULTI_POLYGON:for(r=n.getCoordinates(),i=0,f=r.length;i<f;++i)for(h=r[i],e=0,a=h.length;e<a;++e)u+=ol.Sphere.getLength_(h[e],o);break;case ol.geom.GeometryType.GEOMETRY_COLLECTION:for(c=n.getGeometries(),i=0,f=c.length;i<f;++i)u+=ol.Sphere.getLength(c[i],t);break;default:throw new Error("Unsupported geometry type: "+s);}return u},ol.Sphere.getLength_=function(n,t){for(var r=0,i=0,u=n.length;i<u-1;++i)r+=ol.Sphere.getDistance_(n[i],n[i+1],t);return r},ol.Sphere.getDistance_=function(n,t,i){var r=ol.math.toRadians(n[1]),u=ol.math.toRadians(t[1]),f=(u-r)/2,e=ol.math.toRadians(t[0]-n[0])/2,o=Math.sin(f)*Math.sin(f)+Math.sin(e)*Math.sin(e)*Math.cos(r)*Math.cos(u);return 2*i*Math.atan2(Math.sqrt(o),Math.sqrt(1-o))},ol.Sphere.getArea=function(n,t){var l=t||{},e=l.radius||ol.Sphere.DEFAULT_RADIUS,v=l.projection||"EPSG:3857",h,r,u,o,i,f,s,a,c;n=n.clone().transform(v,"EPSG:4326");h=n.getType();r=0;switch(h){case ol.geom.GeometryType.POINT:case ol.geom.GeometryType.MULTI_POINT:case ol.geom.GeometryType.LINE_STRING:case ol.geom.GeometryType.MULTI_LINE_STRING:case ol.geom.GeometryType.LINEAR_RING:break;case ol.geom.GeometryType.POLYGON:for(u=n.getCoordinates(),r=Math.abs(ol.Sphere.getArea_(u[0],e)),i=1,f=u.length;i<f;++i)r-=Math.abs(ol.Sphere.getArea_(u[i],e));break;case ol.geom.GeometryType.MULTI_POLYGON:for(u=n.getCoordinates(),i=0,f=u.length;i<f;++i)for(o=u[i],r+=Math.abs(ol.Sphere.getArea_(o[0],e)),s=1,a=o.length;s<a;++s)r-=Math.abs(ol.Sphere.getArea_(o[s],e));break;case ol.geom.GeometryType.GEOMETRY_COLLECTION:for(c=n.getGeometries(),i=0,f=c.length;i<f;++i)r+=ol.Sphere.getArea(c[i],t);break;default:throw new Error("Unsupported geometry type: "+h);}return r},ol.Sphere.getArea_=function(n,t){for(var u,f,e=0,r=n.length,o=n[r-1][0],s=n[r-1][1],i=0;i<r;i++)u=n[i][0],f=n[i][1],e+=ol.math.toRadians(u-o)*(2+Math.sin(ol.math.toRadians(s))+Math.sin(ol.math.toRadians(f))),o=u,s=f;return e*t*t/2},n.provide("ol.proj.Units"),ol.proj.Units={DEGREES:"degrees",FEET:"ft",METERS:"m",PIXELS:"pixels",TILE_PIXELS:"tile-pixels",USFEET:"us-ft"},ol.proj.Units.METERS_PER_UNIT={},ol.proj.Units.METERS_PER_UNIT[ol.proj.Units.DEGREES]=12741994*Math.PI/360,ol.proj.Units.METERS_PER_UNIT[ol.proj.Units.FEET]=.3048,ol.proj.Units.METERS_PER_UNIT[ol.proj.Units.METERS]=1,ol.proj.Units.METERS_PER_UNIT[ol.proj.Units.USFEET]=1200/3937,n.provide("ol.proj.proj4"),ol.proj.proj4.cache_=null,ol.proj.proj4.set=function(n){ol.proj.proj4.cache_=n},ol.proj.proj4.get=function(){return ol.proj.proj4.cache_||window.proj4},n.provide("ol.proj.Projection"),n.require("ol"),n.require("ol.proj.Units"),n.require("ol.proj.proj4"),ol.proj.Projection=function(n){var r,i,t;this.code_=n.code;this.units_=n.units;this.extent_=n.extent!==undefined?n.extent:null;this.worldExtent_=n.worldExtent!==undefined?n.worldExtent:null;this.axisOrientation_=n.axisOrientation!==undefined?n.axisOrientation:"enu";this.global_=n.global!==undefined?n.global:!1;this.canWrapX_=!!(this.global_&&this.extent_);this.getPointResolutionFunc_=n.getPointResolution;this.defaultTileGrid_=null;this.metersPerUnit_=n.metersPerUnit;r=n.code;ol.ENABLE_PROJ4JS&&(i=ol.proj.proj4.get(),typeof i=="function"&&(t=i.defs(r),t!==undefined&&(t.axis!==undefined&&n.axisOrientation===undefined&&(this.axisOrientation_=t.axis),n.metersPerUnit===undefined&&(this.metersPerUnit_=t.to_meter),n.units===undefined&&(this.units_=t.units))))},ol.proj.Projection.prototype.canWrapX=function(){return this.canWrapX_},ol.proj.Projection.prototype.getCode=function(){return this.code_},ol.proj.Projection.prototype.getExtent=function(){return this.extent_},ol.proj.Projection.prototype.getUnits=function(){return this.units_},ol.proj.Projection.prototype.getMetersPerUnit=function(){return this.metersPerUnit_||ol.proj.Units.METERS_PER_UNIT[this.units_]},ol.proj.Projection.prototype.getWorldExtent=function(){return this.worldExtent_},ol.proj.Projection.prototype.getAxisOrientation=function(){return this.axisOrientation_},ol.proj.Projection.prototype.isGlobal=function(){return this.global_},ol.proj.Projection.prototype.setGlobal=function(n){this.global_=n;this.canWrapX_=!!(n&&this.extent_)},ol.proj.Projection.prototype.getDefaultTileGrid=function(){return this.defaultTileGrid_},ol.proj.Projection.prototype.setDefaultTileGrid=function(n){this.defaultTileGrid_=n},ol.proj.Projection.prototype.setExtent=function(n){this.extent_=n;this.canWrapX_=!!(this.global_&&n)},ol.proj.Projection.prototype.setWorldExtent=function(n){this.worldExtent_=n},ol.proj.Projection.prototype.setGetPointResolution=function(n){this.getPointResolutionFunc_=n},ol.proj.Projection.prototype.getPointResolutionFunc=function(){return this.getPointResolutionFunc_},n.provide("ol.proj.EPSG3857"),n.require("ol"),n.require("ol.math"),n.require("ol.proj.Projection"),n.require("ol.proj.Units"),ol.proj.EPSG3857.Projection_=function(n){ol.proj.Projection.call(this,{code:n,units:ol.proj.Units.METERS,extent:ol.proj.EPSG3857.EXTENT,global:!0,worldExtent:ol.proj.EPSG3857.WORLD_EXTENT,getPointResolution:function(n,t){return n/ol.math.cosh(t[1]/ol.proj.EPSG3857.RADIUS)}})},ol.inherits(ol.proj.EPSG3857.Projection_,ol.proj.Projection),ol.proj.EPSG3857.RADIUS=6378137,ol.proj.EPSG3857.HALF_SIZE=Math.PI*ol.proj.EPSG3857.RADIUS,ol.proj.EPSG3857.EXTENT=[-ol.proj.EPSG3857.HALF_SIZE,-ol.proj.EPSG3857.HALF_SIZE,ol.proj.EPSG3857.HALF_SIZE,ol.proj.EPSG3857.HALF_SIZE],ol.proj.EPSG3857.WORLD_EXTENT=[-180,-85,180,85],ol.proj.EPSG3857.PROJECTIONS=[new ol.proj.EPSG3857.Projection_("EPSG:3857"),new ol.proj.EPSG3857.Projection_("EPSG:102100"),new ol.proj.EPSG3857.Projection_("EPSG:102113"),new ol.proj.EPSG3857.Projection_("EPSG:900913"),new ol.proj.EPSG3857.Projection_("urn:ogc:def:crs:EPSG:6.18:3:3857"),new ol.proj.EPSG3857.Projection_("urn:ogc:def:crs:EPSG::3857"),new ol.proj.EPSG3857.Projection_("http://www.opengis.net/gml/srs/epsg.xml#3857")],ol.proj.EPSG3857.fromEPSG4326=function(n,t,i){var o=n.length,s=i>1?i:2,e=t,u,r,f;for(e===undefined&&(e=s>2?n.slice():new Array(o)),u=ol.proj.EPSG3857.HALF_SIZE,r=0;r<o;r+=s)e[r]=u*n[r]/180,f=ol.proj.EPSG3857.RADIUS*Math.log(Math.tan(Math.PI*(n[r+1]+90)/360)),f>u?f=u:f<-u&&(f=-u),e[r+1]=f;return e},ol.proj.EPSG3857.toEPSG4326=function(n,t,i){var f=n.length,e=i>1?i:2,u=t,r;for(u===undefined&&(u=e>2?n.slice():new Array(f)),r=0;r<f;r+=e)u[r]=180*n[r]/ol.proj.EPSG3857.HALF_SIZE,u[r+1]=360*Math.atan(Math.exp(n[r+1]/ol.proj.EPSG3857.RADIUS))/Math.PI-90;return u},n.provide("ol.proj.EPSG4326"),n.require("ol"),n.require("ol.proj.Projection"),n.require("ol.proj.Units"),ol.proj.EPSG4326.Projection_=function(n,t){ol.proj.Projection.call(this,{code:n,units:ol.proj.Units.DEGREES,extent:ol.proj.EPSG4326.EXTENT,axisOrientation:t,global:!0,metersPerUnit:ol.proj.EPSG4326.METERS_PER_UNIT,worldExtent:ol.proj.EPSG4326.EXTENT})},ol.inherits(ol.proj.EPSG4326.Projection_,ol.proj.Projection),ol.proj.EPSG4326.RADIUS=6378137,ol.proj.EPSG4326.EXTENT=[-180,-90,180,90],ol.proj.EPSG4326.METERS_PER_UNIT=Math.PI*ol.proj.EPSG4326.RADIUS/180,ol.proj.EPSG4326.PROJECTIONS=[new ol.proj.EPSG4326.Projection_("CRS:84"),new ol.proj.EPSG4326.Projection_("EPSG:4326","neu"),new ol.proj.EPSG4326.Projection_("urn:ogc:def:crs:EPSG::4326","neu"),new ol.proj.EPSG4326.Projection_("urn:ogc:def:crs:EPSG:6.6:4326","neu"),new ol.proj.EPSG4326.Projection_("urn:ogc:def:crs:OGC:1.3:CRS84"),new ol.proj.EPSG4326.Projection_("urn:ogc:def:crs:OGC:2:84"),new ol.proj.EPSG4326.Projection_("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new ol.proj.EPSG4326.Projection_("urn:x-ogc:def:crs:EPSG:4326","neu")],n.provide("ol.proj.projections"),ol.proj.projections.cache_={},ol.proj.projections.clear=function(){ol.proj.projections.cache_={}},ol.proj.projections.get=function(n){var t=ol.proj.projections.cache_;return t[n]||null},ol.proj.projections.add=function(n,t){var i=ol.proj.projections.cache_;i[n]=t},n.provide("ol.proj.transforms"),n.require("ol.obj"),ol.proj.transforms.cache_={},ol.proj.transforms.clear=function(){ol.proj.transforms.cache_={}},ol.proj.transforms.add=function(n,t,i){var r=n.getCode(),f=t.getCode(),u=ol.proj.transforms.cache_;r in u||(u[r]={});u[r][f]=i},ol.proj.transforms.remove=function(n,t){var i=n.getCode(),u=t.getCode(),r=ol.proj.transforms.cache_,f=r[i][u];return delete r[i][u],ol.obj.isEmpty(r[i])&&delete r[i],f},ol.proj.transforms.get=function(n,t){var r,i=ol.proj.transforms.cache_;return n in i&&t in i[n]&&(r=i[n][t]),r},n.provide("ol.proj"),n.require("ol"),n.require("ol.Sphere"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.proj.EPSG3857"),n.require("ol.proj.EPSG4326"),n.require("ol.proj.Projection"),n.require("ol.proj.Units"),n.require("ol.proj.proj4"),n.require("ol.proj.projections"),n.require("ol.proj.transforms"),ol.proj.METERS_PER_UNIT=ol.proj.Units.METERS_PER_UNIT,ol.proj.SPHERE_=new ol.Sphere(ol.Sphere.DEFAULT_RADIUS),ol.ENABLE_PROJ4JS&&(ol.proj.setProj4=function(n){ol.proj.proj4.set(n)}),ol.proj.getPointResolution=function(n,t,i,r){var f,e,s,h,u,c,l,o;return n=ol.proj.get(n),e=n.getPointResolutionFunc(),e?f=e(t,i):(s=n.getUnits(),(s!=ol.proj.Units.DEGREES||r)&&r!=ol.proj.Units.DEGREES?(h=ol.proj.getTransformFromProjections(n,ol.proj.get("EPSG:4326")),u=[i[0]-t/2,i[1],i[0]+t/2,i[1],i[0],i[1]-t/2,i[0],i[1]+t/2],u=h(u,u,2),c=ol.proj.SPHERE_.haversineDistance(u.slice(0,2),u.slice(2,4)),l=ol.proj.SPHERE_.haversineDistance(u.slice(4,6),u.slice(6,8)),f=(c+l)/2,o=r?ol.proj.Units.METERS_PER_UNIT[r]:n.getMetersPerUnit(),o!==undefined&&(f/=o)):f=t),f},ol.proj.addEquivalentProjections=function(n){ol.proj.addProjections(n);n.forEach(function(t){n.forEach(function(n){t!==n&&ol.proj.transforms.add(t,n,ol.proj.cloneTransform)})})},ol.proj.addEquivalentTransforms=function(n,t,i,r){n.forEach(function(n){t.forEach(function(t){ol.proj.transforms.add(n,t,i);ol.proj.transforms.add(t,n,r)})})},ol.proj.addProjection=function(n){ol.proj.projections.add(n.getCode(),n);ol.proj.transforms.add(n,n,ol.proj.cloneTransform)},ol.proj.addProjections=function(n){n.forEach(ol.proj.addProjection)},ol.proj.clearAllProjections=function(){ol.proj.projections.clear();ol.proj.transforms.clear()},ol.proj.createProjection=function(n,t){return n?typeof n=="string"?ol.proj.get(n):n:ol.proj.get(t)},ol.proj.addCoordinateTransforms=function(n,t,i,r){var u=ol.proj.get(n),f=ol.proj.get(t);ol.proj.transforms.add(u,f,ol.proj.createTransformFromCoordinateTransform(i));ol.proj.transforms.add(f,u,ol.proj.createTransformFromCoordinateTransform(r))},ol.proj.createTransformFromCoordinateTransform=function(n){return function(t,i,r){for(var s=t.length,h=r!==undefined?r:2,e=i!==undefined?i:new Array(s),o,f,u=0;u<s;u+=h)for(o=n([t[u],t[u+1]]),e[u]=o[0],e[u+1]=o[1],f=h-1;f>=2;--f)e[u+f]=t[u+f];return e}},ol.proj.fromLonLat=function(n,t){return ol.proj.transform(n,"EPSG:4326",t!==undefined?t:"EPSG:3857")},ol.proj.toLonLat=function(n,t){var i=ol.proj.transform(n,t!==undefined?t:"EPSG:3857","EPSG:4326"),r=i[0];return(r<-180||r>180)&&(i[0]=ol.math.modulo(r+180,360)-180),i},ol.proj.get=function(n){var t=null,i,r;return n instanceof ol.proj.Projection?t=n:typeof n=="string"&&(i=n,t=ol.proj.projections.get(i),ol.ENABLE_PROJ4JS&&!t&&(r=ol.proj.proj4.get(),typeof r=="function"&&r.defs(i)!==undefined&&(t=new ol.proj.Projection({code:i}),ol.proj.addProjection(t)))),t},ol.proj.equivalent=function(n,t){var i,r;return n===t?!0:(i=n.getUnits()===t.getUnits(),n.getCode()===t.getCode()?i:(r=ol.proj.getTransformFromProjections(n,t),r===ol.proj.cloneTransform&&i))},ol.proj.getTransform=function(n,t){var i=ol.proj.get(n),r=ol.proj.get(t);return ol.proj.getTransformFromProjections(i,r)},ol.proj.getTransformFromProjections=function(n,t){var u=n.getCode(),f=t.getCode(),i=ol.proj.transforms.get(u,f),r,e,o,s;return ol.ENABLE_PROJ4JS&&!i&&(r=ol.proj.proj4.get(),typeof r=="function"&&(e=r.defs(u),o=r.defs(f),e!==undefined&&o!==undefined&&(e===o?ol.proj.addEquivalentProjections([t,n]):(s=r(f,u),ol.proj.addCoordinateTransforms(t,n,s.forward,s.inverse)),i=ol.proj.transforms.get(u,f)))),i||(i=ol.proj.identityTransform),i},ol.proj.identityTransform=function(n,t){if(t!==undefined&&n!==t){for(var i=0,r=n.length;i<r;++i)t[i]=n[i];n=t}return n},ol.proj.cloneTransform=function(n,t){var r,i,u;if(t!==undefined){for(i=0,u=n.length;i<u;++i)t[i]=n[i];r=t}else r=n.slice();return r},ol.proj.transform=function(n,t,i){var r=ol.proj.getTransform(t,i);return r(n,undefined,n.length)},ol.proj.transformExtent=function(n,t,i){var r=ol.proj.getTransform(t,i);return ol.extent.applyTransform(n,r)},ol.proj.transformWithProjections=function(n,t,i){var r=ol.proj.getTransformFromProjections(t,i);return r(n)},ol.proj.addCommon=function(){ol.proj.addEquivalentProjections(ol.proj.EPSG3857.PROJECTIONS);ol.proj.addEquivalentProjections(ol.proj.EPSG4326.PROJECTIONS);ol.proj.addEquivalentTransforms(ol.proj.EPSG4326.PROJECTIONS,ol.proj.EPSG3857.PROJECTIONS,ol.proj.EPSG3857.fromEPSG4326,ol.proj.EPSG3857.toEPSG4326)},ol.proj.addCommon(),n.provide("ol.tilecoord"),ol.tilecoord.createOrUpdate=function(n,t,i,r){return r!==undefined?(r[0]=n,r[1]=t,r[2]=i,r):[n,t,i]},ol.tilecoord.getKeyZXY=function(n,t,i){return n+"/"+t+"/"+i},ol.tilecoord.getKey=function(n){return ol.tilecoord.getKeyZXY(n[0],n[1],n[2])},ol.tilecoord.fromKey=function(n){return n.split("/").map(Number)},ol.tilecoord.hash=function(n){return(n[1]<<n[0])+n[2]},ol.tilecoord.quadKey=function(n){for(var r=n[0],f=new Array(r),u=1<<r-1,i,t=0;t<r;++t)i=48,n[1]&u&&(i+=1),n[2]&u&&(i+=2),f[t]=String.fromCharCode(i),u>>=1;return f.join("")},ol.tilecoord.withinExtentAndZ=function(n,t){var i=n[0],f=n[1],e=n[2],r,u;return t.getMinZoom()>i||i>t.getMaxZoom()?!1:(r=t.getExtent(),u=r?t.getTileRangeForExtentAndZ(r,i):t.getFullTileRange(i),u?u.containsXY(f,e):!0)},n.provide("ol.tilegrid.TileGrid"),n.require("ol"),n.require("ol.asserts"),n.require("ol.TileRange"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.size"),n.require("ol.tilecoord"),ol.tilegrid.TileGrid=function(n){var r,t,u,i;if(this.minZoom=n.minZoom!==undefined?n.minZoom:0,this.resolutions_=n.resolutions,ol.asserts.assert(ol.array.isSorted(this.resolutions_,function(n,t){return t-n},!0),17),!n.origins)for(t=0,u=this.resolutions_.length-1;t<u;++t)if(r){if(this.resolutions_[t]/this.resolutions_[t+1]!==r){r=undefined;break}}else r=this.resolutions_[t]/this.resolutions_[t+1];this.zoomFactor_=r;this.maxZoom=this.resolutions_.length-1;this.origin_=n.origin!==undefined?n.origin:null;this.origins_=null;n.origins!==undefined&&(this.origins_=n.origins,ol.asserts.assert(this.origins_.length==this.resolutions_.length,20));i=n.extent;i===undefined||this.origin_||this.origins_||(this.origin_=ol.extent.getTopLeft(i));ol.asserts.assert(!this.origin_&&this.origins_||this.origin_&&!this.origins_,18);this.tileSizes_=null;n.tileSizes!==undefined&&(this.tileSizes_=n.tileSizes,ol.asserts.assert(this.tileSizes_.length==this.resolutions_.length,19));this.tileSize_=n.tileSize!==undefined?n.tileSize:this.tileSizes_?null:ol.DEFAULT_TILE_SIZE;ol.asserts.assert(!this.tileSize_&&this.tileSizes_||this.tileSize_&&!this.tileSizes_,22);this.extent_=i!==undefined?i:null;this.fullTileRanges_=null;this.tmpSize_=[0,0];n.sizes!==undefined?this.fullTileRanges_=n.sizes.map(function(n){return new ol.TileRange(Math.min(0,n[0]),Math.max(n[0]-1,-1),Math.min(0,n[1]),Math.max(n[1]-1,-1))},this):i&&this.calculateTileRanges_(i)},ol.tilegrid.TileGrid.tmpTileCoord_=[0,0,0],ol.tilegrid.TileGrid.prototype.forEachTileCoord=function(n,t,i){for(var u,e,r=this.getTileRangeForExtentAndZ(n,t),f=r.minX,o=r.maxX;f<=o;++f)for(u=r.minY,e=r.maxY;u<=e;++u)i([t,f,u])},ol.tilegrid.TileGrid.prototype.forEachTileCoordParentTileRange=function(n,t,i,r,u){var s,f,e,h=null,o=n[0]-1;for(this.zoomFactor_===2?(f=n[1],e=n[2]):h=this.getTileCoordExtent(n,u);o>=this.minZoom;){if(this.zoomFactor_===2?(f=Math.floor(f/2),e=Math.floor(e/2),s=ol.TileRange.createOrUpdate(f,f,e,e,r)):s=this.getTileRangeForExtentAndZ(h,o,r),t.call(i,o,s))return!0;--o}return!1},ol.tilegrid.TileGrid.prototype.getExtent=function(){return this.extent_},ol.tilegrid.TileGrid.prototype.getMaxZoom=function(){return this.maxZoom},ol.tilegrid.TileGrid.prototype.getMinZoom=function(){return this.minZoom},ol.tilegrid.TileGrid.prototype.getOrigin=function(n){return this.origin_?this.origin_:this.origins_[n]},ol.tilegrid.TileGrid.prototype.getResolution=function(n){return this.resolutions_[n]},ol.tilegrid.TileGrid.prototype.getResolutions=function(){return this.resolutions_},ol.tilegrid.TileGrid.prototype.getTileCoordChildTileRange=function(n,t,i){var r,u,f;return n[0]<this.maxZoom?this.zoomFactor_===2?(r=n[1]*2,u=n[2]*2,ol.TileRange.createOrUpdate(r,r+1,u,u+1,t)):(f=this.getTileCoordExtent(n,i),this.getTileRangeForExtentAndZ(f,n[0]+1,t)):null},ol.tilegrid.TileGrid.prototype.getTileRangeExtent=function(n,t,i){var r=this.getOrigin(n),u=this.getResolution(n),f=ol.size.toSize(this.getTileSize(n),this.tmpSize_),e=r[0]+t.minX*f[0]*u,o=r[0]+(t.maxX+1)*f[0]*u,s=r[1]+t.minY*f[1]*u,h=r[1]+(t.maxY+1)*f[1]*u;return ol.extent.createOrUpdate(e,s,o,h,i)},ol.tilegrid.TileGrid.prototype.getTileRangeForExtentAndZ=function(n,t,i){var r=ol.tilegrid.TileGrid.tmpTileCoord_,u,f;return this.getTileCoordForXYAndZ_(n[0],n[1],t,!1,r),u=r[1],f=r[2],this.getTileCoordForXYAndZ_(n[2],n[3],t,!0,r),ol.TileRange.createOrUpdate(u,r[1],f,r[2],i)},ol.tilegrid.TileGrid.prototype.getTileCoordCenter=function(n){var t=this.getOrigin(n[0]),i=this.getResolution(n[0]),r=ol.size.toSize(this.getTileSize(n[0]),this.tmpSize_);return[t[0]+(n[1]+.5)*r[0]*i,t[1]+(n[2]+.5)*r[1]*i]},ol.tilegrid.TileGrid.prototype.getTileCoordExtent=function(n,t){var u=this.getOrigin(n[0]),i=this.getResolution(n[0]),r=ol.size.toSize(this.getTileSize(n[0]),this.tmpSize_),f=u[0]+n[1]*r[0]*i,e=u[1]+n[2]*r[1]*i,o=f+r[0]*i,s=e+r[1]*i;return ol.extent.createOrUpdate(f,e,o,s,t)},ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution=function(n,t,i){return this.getTileCoordForXYAndResolution_(n[0],n[1],t,!1,i)},ol.tilegrid.TileGrid.prototype.getTileCoordForXYAndResolution_=function(n,t,i,r,u){var o=this.getZForResolution(i),s=i/this.getResolution(o),h=this.getOrigin(o),c=ol.size.toSize(this.getTileSize(o),this.tmpSize_),l=r?.5:0,a=r?0:.5,v=Math.floor((n-h[0])/i+l),y=Math.floor((t-h[1])/i+a),f=s*v/c[0],e=s*y/c[1];return r?(f=Math.ceil(f)-1,e=Math.ceil(e)-1):(f=Math.floor(f),e=Math.floor(e)),ol.tilecoord.createOrUpdate(o,f,e,u)},ol.tilegrid.TileGrid.prototype.getTileCoordForXYAndZ_=function(n,t,i,r,u){var o=this.getOrigin(i),s=this.getResolution(i),h=ol.size.toSize(this.getTileSize(i),this.tmpSize_),c=r?.5:0,l=r?0:.5,a=Math.floor((n-o[0])/s+c),v=Math.floor((t-o[1])/s+l),f=a/h[0],e=v/h[1];return r?(f=Math.ceil(f)-1,e=Math.ceil(e)-1):(f=Math.floor(f),e=Math.floor(e)),ol.tilecoord.createOrUpdate(i,f,e,u)},ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndZ=function(n,t,i){return this.getTileCoordForXYAndZ_(n[0],n[1],t,!1,i)},ol.tilegrid.TileGrid.prototype.getTileCoordResolution=function(n){return this.resolutions_[n[0]]},ol.tilegrid.TileGrid.prototype.getTileSize=function(n){return this.tileSize_?this.tileSize_:this.tileSizes_[n]},ol.tilegrid.TileGrid.prototype.getFullTileRange=function(n){return this.fullTileRanges_?this.fullTileRanges_[n]:null},ol.tilegrid.TileGrid.prototype.getZForResolution=function(n,t){var i=ol.array.linearFindNearest(this.resolutions_,n,t||0);return ol.math.clamp(i,this.minZoom,this.maxZoom)},ol.tilegrid.TileGrid.prototype.calculateTileRanges_=function(n){for(var i=this.resolutions_.length,r=new Array(i),t=this.minZoom;t<i;++t)r[t]=this.getTileRangeForExtentAndZ(n,t);this.fullTileRanges_=r},n.provide("ol.tilegrid"),n.require("ol"),n.require("ol.size"),n.require("ol.extent"),n.require("ol.extent.Corner"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.proj.Units"),n.require("ol.tilegrid.TileGrid"),ol.tilegrid.getForProjection=function(n){var t=n.getDefaultTileGrid();return t||(t=ol.tilegrid.createForProjection(n),n.setDefaultTileGrid(t)),t},ol.tilegrid.wrapX=function(n,t,i){var o=t[0],r=n.getTileCoordCenter(t),u=ol.tilegrid.extentFromProjection(i),f,e;return ol.extent.containsCoordinate(u,r)?t:(f=ol.extent.getWidth(u),e=Math.ceil((u[0]-r[0])/f),r[0]+=f*e,n.getTileCoordForCoordAndZ(r,o))},ol.tilegrid.createForExtent=function(n,t,i,r){var u=r!==undefined?r:ol.extent.Corner.TOP_LEFT,f=ol.tilegrid.resolutionsFromExtent(n,t,i);return new ol.tilegrid.TileGrid({extent:n,origin:ol.extent.getCorner(n,u),resolutions:f,tileSize:i})},ol.tilegrid.createXYZ=function(n){var t={};return ol.obj.assign(t,n!==undefined?n:{}),t.extent===undefined&&(t.extent=ol.proj.get("EPSG:3857").getExtent()),t.resolutions=ol.tilegrid.resolutionsFromExtent(t.extent,t.maxZoom,t.tileSize),delete t.maxZoom,new ol.tilegrid.TileGrid(t)},ol.tilegrid.resolutionsFromExtent=function(n,t,i){for(var o=t!==undefined?t:ol.DEFAULT_MAX_ZOOM,s=ol.extent.getHeight(n),h=ol.extent.getWidth(n),u=ol.size.toSize(i!==undefined?i:ol.DEFAULT_TILE_SIZE),c=Math.max(h/u[0],s/u[1]),f=o+1,e=new Array(f),r=0;r<f;++r)e[r]=c/Math.pow(2,r);return e},ol.tilegrid.createForProjection=function(n,t,i,r){var u=ol.tilegrid.extentFromProjection(n);return ol.tilegrid.createForExtent(u,t,i,r)},ol.tilegrid.extentFromProjection=function(n){var i,t;return n=ol.proj.get(n),i=n.getExtent(),i||(t=180*ol.proj.METERS_PER_UNIT[ol.proj.Units.DEGREES]/n.getMetersPerUnit(),i=ol.extent.createOrUpdate(-t,-t,t,t)),i},n.provide("ol.Attribution"),n.require("ol.TileRange"),n.require("ol.math"),n.require("ol.tilegrid"),ol.Attribution=function(n){this.html_=n.html;this.tileRanges_=n.tileRanges?n.tileRanges:null},ol.Attribution.prototype.getHTML=function(){return this.html_},ol.Attribution.prototype.intersectsAnyTileRange=function(n,t,i){var e,h,r,u,o,f,s;if(!this.tileRanges_)return!0;for(u in n)if(u in this.tileRanges_)for(r=n[u],e=0,h=this.tileRanges_[u].length;e<h;++e)if((o=this.tileRanges_[u][e],o.intersects(r))||(f=t.getTileRangeForExtentAndZ(ol.tilegrid.extentFromProjection(i),parseInt(u,10)),s=f.getWidth(),(r.minX<f.minX||r.maxX>f.maxX)&&(o.intersects(new ol.TileRange(ol.math.modulo(r.minX,s),ol.math.modulo(r.maxX,s),r.minY,r.maxY))||r.getWidth()>s&&o.intersects(f))))return!0;return!1},n.provide("ol.CollectionEventType"),ol.CollectionEventType={ADD:"add",REMOVE:"remove"},n.provide("ol.ObjectEventType"),ol.ObjectEventType={PROPERTYCHANGE:"propertychange"},n.provide("ol.events"),n.require("ol.obj"),ol.events.bindListener_=function(n){var t=function(t){var i=n.listener,r=n.bindTo||n.target;return n.callOnce&&ol.events.unlistenByKey(n),i.call(r,t)};return n.boundListener=t,t},ol.events.findListener_=function(n,t,i,r){for(var u,f=0,e=n.length;f<e;++f)if(u=n[f],u.listener===t&&u.bindTo===i)return r&&(u.deleteIndex=f),u;return undefined},ol.events.getListeners=function(n,t){var i=n.ol_lm;return i?i[t]:undefined},ol.events.getListenerMap_=function(n){var t=n.ol_lm;return t||(t=n.ol_lm={}),t},ol.events.removeListeners_=function(n,t){var i=ol.events.getListeners(n,t),r,f,u;if(i){for(r=0,f=i.length;r<f;++r)n.removeEventListener(t,i[r].boundListener),ol.obj.clear(i[r]);i.length=0;u=n.ol_lm;u&&(delete u[t],Object.keys(u).length===0&&delete n.ol_lm)}},ol.events.listen=function(n,t,i,r,u){var o=ol.events.getListenerMap_(n),e=o[t],f;return e||(e=o[t]=[]),f=ol.events.findListener_(e,i,r,!1),f?u||(f.callOnce=!1):(f={bindTo:r,callOnce:!!u,listener:i,target:n,type:t},n.addEventListener(t,ol.events.bindListener_(f)),e.push(f)),f},ol.events.listenOnce=function(n,t,i,r){return ol.events.listen(n,t,i,r,!0)},ol.events.unlisten=function(n,t,i,r){var f=ol.events.getListeners(n,t),u;f&&(u=ol.events.findListener_(f,i,r,!0),u&&ol.events.unlistenByKey(u))},ol.events.unlistenByKey=function(n){var t,i;n&&n.target&&(n.target.removeEventListener(n.type,n.boundListener),t=ol.events.getListeners(n.target,n.type),t&&(i="deleteIndex"in n?n.deleteIndex:t.indexOf(n),i!==-1&&t.splice(i,1),t.length===0&&ol.events.removeListeners_(n.target,n.type)),ol.obj.clear(n))},ol.events.unlistenAll=function(n){var t=ol.events.getListenerMap_(n);for(var i in t)ol.events.removeListeners_(n,i)},n.provide("ol.Disposable"),n.require("ol"),ol.Disposable=function(){},ol.Disposable.prototype.disposed_=!1,ol.Disposable.prototype.dispose=function(){this.disposed_||(this.disposed_=!0,this.disposeInternal())},ol.Disposable.prototype.disposeInternal=ol.nullFunction,n.provide("ol.events.Event"),ol.events.Event=function(n){this.propagationStopped;this.type=n;this.target=null},ol.events.Event.prototype.preventDefault=ol.events.Event.prototype.stopPropagation=function(){this.propagationStopped=!0},ol.events.Event.stopPropagation=function(n){n.stopPropagation()},ol.events.Event.preventDefault=function(n){n.preventDefault()},n.provide("ol.events.EventTarget"),n.require("ol"),n.require("ol.Disposable"),n.require("ol.events"),n.require("ol.events.Event"),ol.events.EventTarget=function(){ol.Disposable.call(this);this.pendingRemovals_={};this.dispatching_={};this.listeners_={}},ol.inherits(ol.events.EventTarget,ol.Disposable),ol.events.EventTarget.prototype.addEventListener=function(n,t){var i=this.listeners_[n];i||(i=this.listeners_[n]=[]);i.indexOf(t)===-1&&i.push(t)},ol.events.EventTarget.prototype.dispatchEvent=function(n){var i=typeof n=="string"?new ol.events.Event(n):n,t=i.type,r,f,u,e,o;if(i.target=this,r=this.listeners_[t],r){for((t in this.dispatching_)||(this.dispatching_[t]=0,this.pendingRemovals_[t]=0),++this.dispatching_[t],u=0,e=r.length;u<e;++u)if(r[u].call(this,i)===!1||i.propagationStopped){f=!1;break}if(--this.dispatching_[t],this.dispatching_[t]===0){for(o=this.pendingRemovals_[t],delete this.pendingRemovals_[t];o--;)this.removeEventListener(t,ol.nullFunction);delete this.dispatching_[t]}return f}},ol.events.EventTarget.prototype.disposeInternal=function(){ol.events.unlistenAll(this)},ol.events.EventTarget.prototype.getListeners=function(n){return this.listeners_[n]},ol.events.EventTarget.prototype.hasListener=function(n){return n?n in this.listeners_:Object.keys(this.listeners_).length>0},ol.events.EventTarget.prototype.removeEventListener=function(n,t){var i=this.listeners_[n],r;i&&(r=i.indexOf(t),n in this.pendingRemovals_?(i[r]=ol.nullFunction,++this.pendingRemovals_[n]):(i.splice(r,1),i.length===0&&delete this.listeners_[n]))},n.provide("ol.events.EventType"),ol.events.EventType={CHANGE:"change",CLEAR:"clear",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"},n.provide("ol.Observable"),n.require("ol"),n.require("ol.events"),n.require("ol.events.EventTarget"),n.require("ol.events.EventType"),ol.Observable=function(){ol.events.EventTarget.call(this);this.revision_=0},ol.inherits(ol.Observable,ol.events.EventTarget),ol.Observable.unByKey=function(n){if(Array.isArray(n))for(var t=0,i=n.length;t<i;++t)ol.events.unlistenByKey(n[t]);else ol.events.unlistenByKey(n)},ol.Observable.prototype.changed=function(){++this.revision_;this.dispatchEvent(ol.events.EventType.CHANGE)},ol.Observable.prototype.dispatchEvent,ol.Observable.prototype.getRevision=function(){return this.revision_},ol.Observable.prototype.on=function(n,t,i){var u,f,r;if(Array.isArray(n)){for(u=n.length,f=new Array(u),r=0;r<u;++r)f[r]=ol.events.listen(this,n[r],t,i);return f}return ol.events.listen(this,n,t,i)},ol.Observable.prototype.once=function(n,t,i){var u,f,r;if(Array.isArray(n)){for(u=n.length,f=new Array(u),r=0;r<u;++r)f[r]=ol.events.listenOnce(this,n[r],t,i);return f}return ol.events.listenOnce(this,n,t,i)},ol.Observable.prototype.un=function(n,t,i){if(Array.isArray(n)){for(var r=0,u=n.length;r<u;++r)ol.events.unlisten(this,n[r],t,i);return}ol.events.unlisten(this,n,t,i)},n.provide("ol.Object"),n.require("ol"),n.require("ol.ObjectEventType"),n.require("ol.Observable"),n.require("ol.events.Event"),n.require("ol.obj"),ol.Object=function(n){ol.Observable.call(this);ol.getUid(this);this.values_={};n!==undefined&&this.setProperties(n)},ol.inherits(ol.Object,ol.Observable),ol.Object.changeEventTypeCache_={},ol.Object.getChangeEventType=function(n){return ol.Object.changeEventTypeCache_.hasOwnProperty(n)?ol.Object.changeEventTypeCache_[n]:ol.Object.changeEventTypeCache_[n]="change:"+n},ol.Object.prototype.get=function(n){var t;return this.values_.hasOwnProperty(n)&&(t=this.values_[n]),t},ol.Object.prototype.getKeys=function(){return Object.keys(this.values_)},ol.Object.prototype.getProperties=function(){return ol.obj.assign({},this.values_)},ol.Object.prototype.notify=function(n,t){var i;i=ol.Object.getChangeEventType(n);this.dispatchEvent(new ol.Object.Event(i,n,t));i=ol.ObjectEventType.PROPERTYCHANGE;this.dispatchEvent(new ol.Object.Event(i,n,t))},ol.Object.prototype.set=function(n,t,i){if(i)this.values_[n]=t;else{var r=this.values_[n];this.values_[n]=t;r!==t&&this.notify(n,r)}},ol.Object.prototype.setProperties=function(n,t){for(var i in n)this.set(i,n[i],t)},ol.Object.prototype.unset=function(n,t){if(n in this.values_){var i=this.values_[n];delete this.values_[n];t||this.notify(n,i)}},ol.Object.Event=function(n,t,i){ol.events.Event.call(this,n);this.key=t;this.oldValue=i},ol.inherits(ol.Object.Event,ol.events.Event),n.provide("ol.Collection"),n.require("ol"),n.require("ol.AssertionError"),n.require("ol.CollectionEventType"),n.require("ol.Object"),n.require("ol.events.Event"),ol.Collection=function(n,t){var r,i,u;if(ol.Object.call(this),r=t||{},this.unique_=!!r.unique,this.array_=n?n:[],this.unique_)for(i=0,u=this.array_.length;i<u;++i)this.assertUnique_(this.array_[i],i);this.updateLength_()},ol.inherits(ol.Collection,ol.Object),ol.Collection.prototype.clear=function(){while(this.getLength()>0)this.pop()},ol.Collection.prototype.extend=function(n){for(var t=0,i=n.length;t<i;++t)this.push(n[t]);return this},ol.Collection.prototype.forEach=function(n,t){for(var u=t?n.bind(t):n,r=this.array_,i=0,f=r.length;i<f;++i)u(r[i],i,r)},ol.Collection.prototype.getArray=function(){return this.array_},ol.Collection.prototype.item=function(n){return this.array_[n]},ol.Collection.prototype.getLength=function(){return this.get(ol.Collection.Property_.LENGTH)},ol.Collection.prototype.insertAt=function(n,t){this.unique_&&this.assertUnique_(t);this.array_.splice(n,0,t);this.updateLength_();this.dispatchEvent(new ol.Collection.Event(ol.CollectionEventType.ADD,t))},ol.Collection.prototype.pop=function(){return this.removeAt(this.getLength()-1)},ol.Collection.prototype.push=function(n){this.unique_&&this.assertUnique_(n);var t=this.getLength();return this.insertAt(t,n),this.getLength()},ol.Collection.prototype.remove=function(n){for(var i=this.array_,t=0,r=i.length;t<r;++t)if(i[t]===n)return this.removeAt(t);return undefined},ol.Collection.prototype.removeAt=function(n){var t=this.array_[n];return this.array_.splice(n,1),this.updateLength_(),this.dispatchEvent(new ol.Collection.Event(ol.CollectionEventType.REMOVE,t)),t},ol.Collection.prototype.setAt=function(n,t){var r=this.getLength(),u,i;if(n<r)this.unique_&&this.assertUnique_(t,n),u=this.array_[n],this.array_[n]=t,this.dispatchEvent(new ol.Collection.Event(ol.CollectionEventType.REMOVE,u)),this.dispatchEvent(new ol.Collection.Event(ol.CollectionEventType.ADD,t));else{for(i=r;i<n;++i)this.insertAt(i,undefined);this.insertAt(n,t)}},ol.Collection.prototype.updateLength_=function(){this.set(ol.Collection.Property_.LENGTH,this.array_.length)},ol.Collection.prototype.assertUnique_=function(n,t){for(var i=0,r=this.array_.length;i<r;++i)if(this.array_[i]===n&&i!==t)throw new ol.AssertionError(58);},ol.Collection.Property_={LENGTH:"length"},ol.Collection.Event=function(n,t){ol.events.Event.call(this,n);this.element=t},ol.inherits(ol.Collection.Event,ol.events.Event),n.provide("ol.MapEvent"),n.require("ol"),n.require("ol.events.Event"),ol.MapEvent=function(n,t,i){ol.events.Event.call(this,n);this.map=t;this.frameState=i!==undefined?i:null},ol.inherits(ol.MapEvent,ol.events.Event),n.provide("ol.MapBrowserEvent"),n.require("ol"),n.require("ol.MapEvent"),ol.MapBrowserEvent=function(n,t,i,r,u){ol.MapEvent.call(this,n,t,u);this.originalEvent=i;this.pixel=t.getEventPixel(i);this.coordinate=t.getCoordinateFromPixel(this.pixel);this.dragging=r!==undefined?r:!1},ol.inherits(ol.MapBrowserEvent,ol.MapEvent),ol.MapBrowserEvent.prototype.preventDefault=function(){ol.MapEvent.prototype.preventDefault.call(this);this.originalEvent.preventDefault()},ol.MapBrowserEvent.prototype.stopPropagation=function(){ol.MapEvent.prototype.stopPropagation.call(this);this.originalEvent.stopPropagation()},n.provide("ol.webgl"),ol.webgl.ONE=1,ol.webgl.SRC_ALPHA=770,ol.webgl.COLOR_ATTACHMENT0=36064,ol.webgl.COLOR_BUFFER_BIT=16384,ol.webgl.TRIANGLES=4,ol.webgl.TRIANGLE_STRIP=5,ol.webgl.ONE_MINUS_SRC_ALPHA=771,ol.webgl.ARRAY_BUFFER=34962,ol.webgl.ELEMENT_ARRAY_BUFFER=34963,ol.webgl.STREAM_DRAW=35040,ol.webgl.STATIC_DRAW=35044,ol.webgl.DYNAMIC_DRAW=35048,ol.webgl.CULL_FACE=2884,ol.webgl.BLEND=3042,ol.webgl.STENCIL_TEST=2960,ol.webgl.DEPTH_TEST=2929,ol.webgl.SCISSOR_TEST=3089,ol.webgl.UNSIGNED_BYTE=5121,ol.webgl.UNSIGNED_SHORT=5123,ol.webgl.UNSIGNED_INT=5125,ol.webgl.FLOAT=5126,ol.webgl.RGBA=6408,ol.webgl.FRAGMENT_SHADER=35632,ol.webgl.VERTEX_SHADER=35633,ol.webgl.LINK_STATUS=35714,ol.webgl.LINEAR=9729,ol.webgl.TEXTURE_MAG_FILTER=10240,ol.webgl.TEXTURE_MIN_FILTER=10241,ol.webgl.TEXTURE_WRAP_S=10242,ol.webgl.TEXTURE_WRAP_T=10243,ol.webgl.TEXTURE_2D=3553,ol.webgl.TEXTURE0=33984,ol.webgl.CLAMP_TO_EDGE=33071,ol.webgl.COMPILE_STATUS=35713,ol.webgl.FRAMEBUFFER=36160,ol.webgl.CONTEXT_IDS_=["experimental-webgl","webgl","webkit-3d","moz-webgl"],ol.webgl.getContext=function(n,t){for(var r,u=ol.webgl.CONTEXT_IDS_.length,i=0;i<u;++i)try{if(r=n.getContext(ol.webgl.CONTEXT_IDS_[i],t),r)return r}catch(f){}return null},n.provide("ol.has"),n.require("ol"),n.require("ol.webgl"),r=typeof navigator!="undefined"?navigator.userAgent.toLowerCase():"",ol.has.FIREFOX=r.indexOf("firefox")!==-1,ol.has.SAFARI=r.indexOf("safari")!==-1&&r.indexOf("chrom")==-1,ol.has.WEBKIT=r.indexOf("webkit")!==-1&&r.indexOf("edge")==-1,ol.has.MAC=r.indexOf("macintosh")!==-1,ol.has.DEVICE_PIXEL_RATIO=window.devicePixelRatio||1,ol.has.CANVAS_LINE_DASH=!1,ol.has.CANVAS=ol.ENABLE_CANVAS&&function(){if(!("HTMLCanvasElement"in window))return!1;try{var n=document.createElement("CANVAS").getContext("2d");return n?(n.setLineDash!==undefined&&(ol.has.CANVAS_LINE_DASH=!0),!0):!1}catch(t){return!1}}(),ol.has.DEVICE_ORIENTATION="DeviceOrientationEvent"in window,ol.has.GEOLOCATION="geolocation"in navigator,ol.has.TOUCH=ol.ASSUME_TOUCH||"ontouchstart"in window,ol.has.POINTER="PointerEvent"in window,ol.has.MSPOINTER=!!navigator.msPointerEnabled,ol.has.WEBGL,function(){var t,r,i,u,n;if(ol.ENABLE_WEBGL){if(t=!1,i=[],"WebGLRenderingContext"in window)try{u=document.createElement("CANVAS");n=ol.webgl.getContext(u,{failIfMajorPerformanceCaveat:!0});n&&(t=!0,r=n.getParameter(n.MAX_TEXTURE_SIZE),i=n.getSupportedExtensions())}catch(f){}ol.has.WEBGL=t;ol.WEBGL_EXTENSIONS=i;ol.WEBGL_MAX_TEXTURE_SIZE=r}}(),n.provide("ol.MapBrowserEventType"),n.require("ol.events.EventType"),ol.MapBrowserEventType={SINGLECLICK:"singleclick",CLICK:ol.events.EventType.CLICK,DBLCLICK:ol.events.EventType.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},n.provide("ol.MapBrowserPointerEvent"),n.require("ol"),n.require("ol.MapBrowserEvent"),ol.MapBrowserPointerEvent=function(n,t,i,r,u){ol.MapBrowserEvent.call(this,n,t,i.originalEvent,r,u);this.pointerEvent=i},ol.inherits(ol.MapBrowserPointerEvent,ol.MapBrowserEvent),n.provide("ol.pointer.EventType"),ol.pointer.EventType={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},n.provide("ol.pointer.EventSource"),ol.pointer.EventSource=function(n,t){this.dispatcher=n;this.mapping_=t},ol.pointer.EventSource.prototype.getEvents=function(){return Object.keys(this.mapping_)},ol.pointer.EventSource.prototype.getHandlerForEvent=function(n){return this.mapping_[n]},n.provide("ol.pointer.MouseSource"),n.require("ol"),n.require("ol.pointer.EventSource"),ol.pointer.MouseSource=function(n){var t={mousedown:this.mousedown,mousemove:this.mousemove,mouseup:this.mouseup,mouseover:this.mouseover,mouseout:this.mouseout};ol.pointer.EventSource.call(this,n,t);this.pointerMap=n.pointerMap;this.lastTouches=[]},ol.inherits(ol.pointer.MouseSource,ol.pointer.EventSource),ol.pointer.MouseSource.POINTER_ID=1,ol.pointer.MouseSource.POINTER_TYPE="mouse",ol.pointer.MouseSource.DEDUP_DIST=25,ol.pointer.MouseSource.prototype.isEventSimulatedFromTouch_=function(n){for(var u,f,r=this.lastTouches,e=n.clientX,o=n.clientY,t=0,s=r.length,i;t<s&&(i=r[t]);t++)if(u=Math.abs(e-i[0]),f=Math.abs(o-i[1]),u<=ol.pointer.MouseSource.DEDUP_DIST&&f<=ol.pointer.MouseSource.DEDUP_DIST)return!0;return!1},ol.pointer.MouseSource.prepareEvent=function(n,t){var i=t.cloneEvent(n,n),r=i.preventDefault;return i.preventDefault=function(){n.preventDefault();r()},i.pointerId=ol.pointer.MouseSource.POINTER_ID,i.isPrimary=!0,i.pointerType=ol.pointer.MouseSource.POINTER_TYPE,i},ol.pointer.MouseSource.prototype.mousedown=function(n){if(!this.isEventSimulatedFromTouch_(n)){ol.pointer.MouseSource.POINTER_ID.toString()in this.pointerMap&&this.cancel(n);var t=ol.pointer.MouseSource.prepareEvent(n,this.dispatcher);this.pointerMap[ol.pointer.MouseSource.POINTER_ID.toString()]=n;this.dispatcher.down(t,n)}},ol.pointer.MouseSource.prototype.mousemove=function(n){if(!this.isEventSimulatedFromTouch_(n)){var t=ol.pointer.MouseSource.prepareEvent(n,this.dispatcher);this.dispatcher.move(t,n)}},ol.pointer.MouseSource.prototype.mouseup=function(n){var t,i;this.isEventSimulatedFromTouch_(n)||(t=this.pointerMap[ol.pointer.MouseSource.POINTER_ID.toString()],t&&t.button===n.button&&(i=ol.pointer.MouseSource.prepareEvent(n,this.dispatcher),this.dispatcher.up(i,n),this.cleanupMouse()))},ol.pointer.MouseSource.prototype.mouseover=function(n){if(!this.isEventSimulatedFromTouch_(n)){var t=ol.pointer.MouseSource.prepareEvent(n,this.dispatcher);this.dispatcher.enterOver(t,n)}},ol.pointer.MouseSource.prototype.mouseout=function(n){if(!this.isEventSimulatedFromTouch_(n)){var t=ol.pointer.MouseSource.prepareEvent(n,this.dispatcher);this.dispatcher.leaveOut(t,n)}},ol.pointer.MouseSource.prototype.cancel=function(n){var t=ol.pointer.MouseSource.prepareEvent(n,this.dispatcher);this.dispatcher.cancel(t,n);this.cleanupMouse()},ol.pointer.MouseSource.prototype.cleanupMouse=function(){delete this.pointerMap[ol.pointer.MouseSource.POINTER_ID.toString()]},n.provide("ol.pointer.MsSource"),n.require("ol"),n.require("ol.pointer.EventSource"),ol.pointer.MsSource=function(n){var t={MSPointerDown:this.msPointerDown,MSPointerMove:this.msPointerMove,MSPointerUp:this.msPointerUp,MSPointerOut:this.msPointerOut,MSPointerOver:this.msPointerOver,MSPointerCancel:this.msPointerCancel,MSGotPointerCapture:this.msGotPointerCapture,MSLostPointerCapture:this.msLostPointerCapture};ol.pointer.EventSource.call(this,n,t);this.pointerMap=n.pointerMap;this.POINTER_TYPES=["","unavailable","touch","pen","mouse"]},ol.inherits(ol.pointer.MsSource,ol.pointer.EventSource),ol.pointer.MsSource.prototype.prepareEvent_=function(n){var t=n;return typeof n.pointerType=="number"&&(t=this.dispatcher.cloneEvent(n,n),t.pointerType=this.POINTER_TYPES[n.pointerType]),t},ol.pointer.MsSource.prototype.cleanup=function(n){delete this.pointerMap[n.toString()]},ol.pointer.MsSource.prototype.msPointerDown=function(n){this.pointerMap[n.pointerId.toString()]=n;var t=this.prepareEvent_(n);this.dispatcher.down(t,n)},ol.pointer.MsSource.prototype.msPointerMove=function(n){var t=this.prepareEvent_(n);this.dispatcher.move(t,n)},ol.pointer.MsSource.prototype.msPointerUp=function(n){var t=this.prepareEvent_(n);this.dispatcher.up(t,n);this.cleanup(n.pointerId)},ol.pointer.MsSource.prototype.msPointerOut=function(n){var t=this.prepareEvent_(n);this.dispatcher.leaveOut(t,n)},ol.pointer.MsSource.prototype.msPointerOver=function(n){var t=this.prepareEvent_(n);this.dispatcher.enterOver(t,n)},ol.pointer.MsSource.prototype.msPointerCancel=function(n){var t=this.prepareEvent_(n);this.dispatcher.cancel(t,n);this.cleanup(n.pointerId)},ol.pointer.MsSource.prototype.msLostPointerCapture=function(n){var t=this.dispatcher.makeEvent("lostpointercapture",n,n);this.dispatcher.dispatchEvent(t)},ol.pointer.MsSource.prototype.msGotPointerCapture=function(n){var t=this.dispatcher.makeEvent("gotpointercapture",n,n);this.dispatcher.dispatchEvent(t)},n.provide("ol.pointer.NativeSource"),n.require("ol"),n.require("ol.pointer.EventSource"),ol.pointer.NativeSource=function(n){var t={pointerdown:this.pointerDown,pointermove:this.pointerMove,pointerup:this.pointerUp,pointerout:this.pointerOut,pointerover:this.pointerOver,pointercancel:this.pointerCancel,gotpointercapture:this.gotPointerCapture,lostpointercapture:this.lostPointerCapture};ol.pointer.EventSource.call(this,n,t)},ol.inherits(ol.pointer.NativeSource,ol.pointer.EventSource),ol.pointer.NativeSource.prototype.pointerDown=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.pointerMove=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.pointerUp=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.pointerOut=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.pointerOver=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.pointerCancel=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.lostPointerCapture=function(n){this.dispatcher.fireNativeEvent(n)},ol.pointer.NativeSource.prototype.gotPointerCapture=function(n){this.dispatcher.fireNativeEvent(n)},n.provide("ol.pointer.PointerEvent"),n.require("ol"),n.require("ol.events.Event"),ol.pointer.PointerEvent=function(n,t,i){ol.events.Event.call(this,n);this.originalEvent=t;var r=i?i:{};this.buttons=this.getButtons_(r);this.pressure=this.getPressure_(r,this.buttons);this.bubbles="bubbles"in r?r.bubbles:!1;this.cancelable="cancelable"in r?r.cancelable:!1;this.view="view"in r?r.view:null;this.detail="detail"in r?r.detail:null;this.screenX="screenX"in r?r.screenX:0;this.screenY="screenY"in r?r.screenY:0;this.clientX="clientX"in r?r.clientX:0;this.clientY="clientY"in r?r.clientY:0;this.ctrlKey="ctrlKey"in r?r.ctrlKey:!1;this.altKey="altKey"in r?r.altKey:!1;this.shiftKey="shiftKey"in r?r.shiftKey:!1;this.metaKey="metaKey"in r?r.metaKey:!1;this.button="button"in r?r.button:0;this.relatedTarget="relatedTarget"in r?r.relatedTarget:null;this.pointerId="pointerId"in r?r.pointerId:0;this.width="width"in r?r.width:0;this.height="height"in r?r.height:0;this.tiltX="tiltX"in r?r.tiltX:0;this.tiltY="tiltY"in r?r.tiltY:0;this.pointerType="pointerType"in r?r.pointerType:"";this.hwTimestamp="hwTimestamp"in r?r.hwTimestamp:0;this.isPrimary="isPrimary"in r?r.isPrimary:!1;t.preventDefault&&(this.preventDefault=function(){t.preventDefault()})},ol.inherits(ol.pointer.PointerEvent,ol.events.Event),ol.pointer.PointerEvent.prototype.getButtons_=function(n){var t;if(n.buttons||ol.pointer.PointerEvent.HAS_BUTTONS)t=n.buttons;else switch(n.which){case 1:t=1;break;case 2:t=4;break;case 3:t=2;break;default:t=0}return t},ol.pointer.PointerEvent.prototype.getPressure_=function(n,t){return n.pressure?n.pressure:t?.5:0},ol.pointer.PointerEvent.HAS_BUTTONS=!1,function(){try{var n=new MouseEvent("click",{buttons:1});ol.pointer.PointerEvent.HAS_BUTTONS=n.buttons===1}catch(t){}}(),n.provide("ol.pointer.TouchSource"),n.require("ol"),n.require("ol.array"),n.require("ol.pointer.EventSource"),n.require("ol.pointer.MouseSource"),ol.pointer.TouchSource=function(n,t){var i={touchstart:this.touchstart,touchmove:this.touchmove,touchend:this.touchend,touchcancel:this.touchcancel};ol.pointer.EventSource.call(this,n,i);this.pointerMap=n.pointerMap;this.mouseSource=t;this.firstTouchId_=undefined;this.clickCount_=0;this.resetId_=undefined},ol.inherits(ol.pointer.TouchSource,ol.pointer.EventSource),ol.pointer.TouchSource.DEDUP_TIMEOUT=2500,ol.pointer.TouchSource.CLICK_COUNT_TIMEOUT=200,ol.pointer.TouchSource.POINTER_TYPE="touch",ol.pointer.TouchSource.prototype.isPrimaryTouch_=function(n){return this.firstTouchId_===n.identifier},ol.pointer.TouchSource.prototype.setPrimaryTouch_=function(n){var t=Object.keys(this.pointerMap).length;(t===0||t===1&&ol.pointer.MouseSource.POINTER_ID.toString()in this.pointerMap)&&(this.firstTouchId_=n.identifier,this.cancelResetClickCount_())},ol.pointer.TouchSource.prototype.removePrimaryPointer_=function(n){n.isPrimary&&(this.firstTouchId_=undefined,this.resetClickCount_())},ol.pointer.TouchSource.prototype.resetClickCount_=function(){this.resetId_=setTimeout(this.resetClickCountHandler_.bind(this),ol.pointer.TouchSource.CLICK_COUNT_TIMEOUT)},ol.pointer.TouchSource.prototype.resetClickCountHandler_=function(){this.clickCount_=0;this.resetId_=undefined},ol.pointer.TouchSource.prototype.cancelResetClickCount_=function(){this.resetId_!==undefined&&clearTimeout(this.resetId_)},ol.pointer.TouchSource.prototype.touchToPointer_=function(n,t){var i=this.dispatcher.cloneEvent(n,t);return i.pointerId=t.identifier+2,i.bubbles=!0,i.cancelable=!0,i.detail=this.clickCount_,i.button=0,i.buttons=1,i.width=t.webkitRadiusX||t.radiusX||0,i.height=t.webkitRadiusY||t.radiusY||0,i.pressure=t.webkitForce||t.force||.5,i.isPrimary=this.isPrimaryTouch_(t),i.pointerType=ol.pointer.TouchSource.POINTER_TYPE,i.clientX=t.clientX,i.clientY=t.clientY,i.screenX=t.screenX,i.screenY=t.screenY,i},ol.pointer.TouchSource.prototype.processTouches_=function(n,t){function e(){n.preventDefault()}for(var u=Array.prototype.slice.call(n.changedTouches),f=u.length,r,i=0;i<f;++i)r=this.touchToPointer_(n,u[i]),r.preventDefault=e,t.call(this,n,r)},ol.pointer.TouchSource.prototype.findTouch_=function(n,t){for(var u=n.length,r,i=0;i<u;i++)if(r=n[i],r.identifier===t)return!0;return!1},ol.pointer.TouchSource.prototype.vacuumTouches_=function(n){var u=n.touches,f=Object.keys(this.pointerMap),e=f.length,i,t,r,o;if(e>=u.length){for(i=[],t=0;t<e;++t)r=f[t],o=this.pointerMap[r],r==ol.pointer.MouseSource.POINTER_ID||this.findTouch_(u,r-2)||i.push(o.out);for(t=0;t<i.length;++t)this.cancelOut_(n,i[t])}},ol.pointer.TouchSource.prototype.touchstart=function(n){this.vacuumTouches_(n);this.setPrimaryTouch_(n.changedTouches[0]);this.dedupSynthMouse_(n);this.clickCount_++;this.processTouches_(n,this.overDown_)},ol.pointer.TouchSource.prototype.overDown_=function(n,t){this.pointerMap[t.pointerId]={target:t.target,out:t,outTarget:t.target};this.dispatcher.over(t,n);this.dispatcher.enter(t,n);this.dispatcher.down(t,n)},ol.pointer.TouchSource.prototype.touchmove=function(n){n.preventDefault();this.processTouches_(n,this.moveOverOut_)},ol.pointer.TouchSource.prototype.moveOverOut_=function(n,t){var i=t,r=this.pointerMap[i.pointerId],u,f;r&&(u=r.out,f=r.outTarget,this.dispatcher.move(i,n),u&&f!==i.target&&(u.relatedTarget=i.target,i.relatedTarget=f,u.target=f,i.target?(this.dispatcher.leaveOut(u,n),this.dispatcher.enterOver(i,n)):(i.target=f,i.relatedTarget=null,this.cancelOut_(n,i))),r.out=i,r.outTarget=i.target)},ol.pointer.TouchSource.prototype.touchend=function(n){this.dedupSynthMouse_(n);this.processTouches_(n,this.upOut_)},ol.pointer.TouchSource.prototype.upOut_=function(n,t){this.dispatcher.up(t,n);this.dispatcher.out(t,n);this.dispatcher.leave(t,n);this.cleanUpPointer_(t)},ol.pointer.TouchSource.prototype.touchcancel=function(n){this.processTouches_(n,this.cancelOut_)},ol.pointer.TouchSource.prototype.cancelOut_=function(n,t){this.dispatcher.cancel(t,n);this.dispatcher.out(t,n);this.dispatcher.leave(t,n);this.cleanUpPointer_(t)},ol.pointer.TouchSource.prototype.cleanUpPointer_=function(n){delete this.pointerMap[n.pointerId];this.removePrimaryPointer_(n)},ol.pointer.TouchSource.prototype.dedupSynthMouse_=function(n){var r=this.mouseSource.lastTouches,t=n.changedTouches[0],i;this.isPrimaryTouch_(t)&&(i=[t.clientX,t.clientY],r.push(i),setTimeout(function(){ol.array.remove(r,i)},ol.pointer.TouchSource.DEDUP_TIMEOUT))},n.provide("ol.pointer.PointerEventHandler"),n.require("ol"),n.require("ol.events"),n.require("ol.events.EventTarget"),n.require("ol.has"),n.require("ol.pointer.EventType"),n.require("ol.pointer.MouseSource"),n.require("ol.pointer.MsSource"),n.require("ol.pointer.NativeSource"),n.require("ol.pointer.PointerEvent"),n.require("ol.pointer.TouchSource"),ol.pointer.PointerEventHandler=function(n){ol.events.EventTarget.call(this);this.element_=n;this.pointerMap={};this.eventMap_={};this.eventSourceList_=[];this.registerSources()},ol.inherits(ol.pointer.PointerEventHandler,ol.events.EventTarget),ol.pointer.PointerEventHandler.prototype.registerSources=function(){if(ol.has.POINTER)this.registerSource("native",new ol.pointer.NativeSource(this));else if(ol.has.MSPOINTER)this.registerSource("ms",new ol.pointer.MsSource(this));else{var n=new ol.pointer.MouseSource(this);this.registerSource("mouse",n);ol.has.TOUCH&&this.registerSource("touch",new ol.pointer.TouchSource(this,n))}this.register_()},ol.pointer.PointerEventHandler.prototype.registerSource=function(n,t){var i=t,r=i.getEvents();r&&(r.forEach(function(n){var t=i.getHandlerForEvent(n);t&&(this.eventMap_[n]=t.bind(i))},this),this.eventSourceList_.push(i))},ol.pointer.PointerEventHandler.prototype.register_=function(){for(var i=this.eventSourceList_.length,t,n=0;n<i;n++)t=this.eventSourceList_[n],this.addEvents_(t.getEvents())},ol.pointer.PointerEventHandler.prototype.unregister_=function(){for(var i=this.eventSourceList_.length,t,n=0;n<i;n++)t=this.eventSourceList_[n],this.removeEvents_(t.getEvents())},ol.pointer.PointerEventHandler.prototype.eventHandler_=function(n){var i=n.type,t=this.eventMap_[i];t&&t(n)},ol.pointer.PointerEventHandler.prototype.addEvents_=function(n){n.forEach(function(n){ol.events.listen(this.element_,n,this.eventHandler_,this)},this)},ol.pointer.PointerEventHandler.prototype.removeEvents_=function(n){n.forEach(function(n){ol.events.unlisten(this.element_,n,this.eventHandler_,this)},this)},ol.pointer.PointerEventHandler.prototype.cloneEvent=function(n,t){for(var u={},i,r=0,f=ol.pointer.PointerEventHandler.CLONE_PROPS.length;r<f;r++)i=ol.pointer.PointerEventHandler.CLONE_PROPS[r][0],u[i]=n[i]||t[i]||ol.pointer.PointerEventHandler.CLONE_PROPS[r][1];return u},ol.pointer.PointerEventHandler.prototype.down=function(n,t){this.fireEvent(ol.pointer.EventType.POINTERDOWN,n,t)},ol.pointer.PointerEventHandler.prototype.move=function(n,t){this.fireEvent(ol.pointer.EventType.POINTERMOVE,n,t)},ol.pointer.PointerEventHandler.prototype.up=function(n,t){this.fireEvent(ol.pointer.EventType.POINTERUP,n,t)},ol.pointer.PointerEventHandler.prototype.enter=function(n,t){n.bubbles=!1;this.fireEvent(ol.pointer.EventType.POINTERENTER,n,t)},ol.pointer.PointerEventHandler.prototype.leave=function(n,t){n.bubbles=!1;this.fireEvent(ol.pointer.EventType.POINTERLEAVE,n,t)},ol.pointer.PointerEventHandler.prototype.over=function(n,t){n.bubbles=!0;this.fireEvent(ol.pointer.EventType.POINTEROVER,n,t)},ol.pointer.PointerEventHandler.prototype.out=function(n,t){n.bubbles=!0;this.fireEvent(ol.pointer.EventType.POINTEROUT,n,t)},ol.pointer.PointerEventHandler.prototype.cancel=function(n,t){this.fireEvent(ol.pointer.EventType.POINTERCANCEL,n,t)},ol.pointer.PointerEventHandler.prototype.leaveOut=function(n,t){this.out(n,t);this.contains_(n.target,n.relatedTarget)||this.leave(n,t)},ol.pointer.PointerEventHandler.prototype.enterOver=function(n,t){this.over(n,t);this.contains_(n.target,n.relatedTarget)||this.enter(n,t)},ol.pointer.PointerEventHandler.prototype.contains_=function(n,t){return!n||!t?!1:n.contains(t)},ol.pointer.PointerEventHandler.prototype.makeEvent=function(n,t,i){return new ol.pointer.PointerEvent(n,i,t)},ol.pointer.PointerEventHandler.prototype.fireEvent=function(n,t,i){var r=this.makeEvent(n,t,i);this.dispatchEvent(r)},ol.pointer.PointerEventHandler.prototype.fireNativeEvent=function(n){var t=this.makeEvent(n.type,n,n);this.dispatchEvent(t)},ol.pointer.PointerEventHandler.prototype.wrapMouseEvent=function(n,t){return this.makeEvent(n,ol.pointer.MouseSource.prepareEvent(t,this),t)},ol.pointer.PointerEventHandler.prototype.disposeInternal=function(){this.unregister_();ol.events.EventTarget.prototype.disposeInternal.call(this)},ol.pointer.PointerEventHandler.CLONE_PROPS=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],n.provide("ol.MapBrowserEventHandler"),n.require("ol"),n.require("ol.has"),n.require("ol.MapBrowserEventType"),n.require("ol.MapBrowserPointerEvent"),n.require("ol.events"),n.require("ol.events.EventTarget"),n.require("ol.pointer.EventType"),n.require("ol.pointer.PointerEventHandler"),ol.MapBrowserEventHandler=function(n,t){ol.events.EventTarget.call(this);this.map_=n;this.clickTimeoutId_=0;this.dragging_=!1;this.dragListenerKeys_=[];this.moveTolerance_=t?t*ol.has.DEVICE_PIXEL_RATIO:ol.has.DEVICE_PIXEL_RATIO;this.down_=null;var i=this.map_.getViewport();this.activePointers_=0;this.trackedTouches_={};this.pointerEventHandler_=new ol.pointer.PointerEventHandler(i);this.documentPointerEventHandler_=null;this.pointerdownListenerKey_=ol.events.listen(this.pointerEventHandler_,ol.pointer.EventType.POINTERDOWN,this.handlePointerDown_,this);this.relayedListenerKey_=ol.events.listen(this.pointerEventHandler_,ol.pointer.EventType.POINTERMOVE,this.relayEvent_,this)},ol.inherits(ol.MapBrowserEventHandler,ol.events.EventTarget),ol.MapBrowserEventHandler.prototype.emulateClick_=function(n){var t=new ol.MapBrowserPointerEvent(ol.MapBrowserEventType.CLICK,this.map_,n);this.dispatchEvent(t);this.clickTimeoutId_!==0?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=0,t=new ol.MapBrowserPointerEvent(ol.MapBrowserEventType.DBLCLICK,this.map_,n),this.dispatchEvent(t)):this.clickTimeoutId_=setTimeout(function(){this.clickTimeoutId_=0;var t=new ol.MapBrowserPointerEvent(ol.MapBrowserEventType.SINGLECLICK,this.map_,n);this.dispatchEvent(t)}.bind(this),250)},ol.MapBrowserEventHandler.prototype.updateActivePointers_=function(n){var t=n;t.type==ol.MapBrowserEventType.POINTERUP||t.type==ol.MapBrowserEventType.POINTERCANCEL?delete this.trackedTouches_[t.pointerId]:t.type==ol.MapBrowserEventType.POINTERDOWN&&(this.trackedTouches_[t.pointerId]=!0);this.activePointers_=Object.keys(this.trackedTouches_).length},ol.MapBrowserEventHandler.prototype.handlePointerUp_=function(n){this.updateActivePointers_(n);var t=new ol.MapBrowserPointerEvent(ol.MapBrowserEventType.POINTERUP,this.map_,n);this.dispatchEvent(t);t.propagationStopped||this.dragging_||!this.isMouseActionButton_(n)||this.emulateClick_(this.down_);this.activePointers_===0&&(this.dragListenerKeys_.forEach(ol.events.unlistenByKey),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null,this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null)},ol.MapBrowserEventHandler.prototype.isMouseActionButton_=function(n){return n.button===0},ol.MapBrowserEventHandler.prototype.handlePointerDown_=function(n){this.updateActivePointers_(n);var t=new ol.MapBrowserPointerEvent(ol.MapBrowserEventType.POINTERDOWN,this.map_,n);this.dispatchEvent(t);this.down_=n;this.dragListenerKeys_.length===0&&(this.documentPointerEventHandler_=new ol.pointer.PointerEventHandler(document),this.dragListenerKeys_.push(ol.events.listen(this.documentPointerEventHandler_,ol.MapBrowserEventType.POINTERMOVE,this.handlePointerMove_,this),ol.events.listen(this.documentPointerEventHandler_,ol.MapBrowserEventType.POINTERUP,this.handlePointerUp_,this),ol.events.listen(this.pointerEventHandler_,ol.MapBrowserEventType.POINTERCANCEL,this.handlePointerUp_,this)))},ol.MapBrowserEventHandler.prototype.handlePointerMove_=function(n){if(this.isMoving_(n)){this.dragging_=!0;var t=new ol.MapBrowserPointerEvent(ol.MapBrowserEventType.POINTERDRAG,this.map_,n,this.dragging_);this.dispatchEvent(t)}n.preventDefault()},ol.MapBrowserEventHandler.prototype.relayEvent_=function(n){var t=!!(this.down_&&this.isMoving_(n));this.dispatchEvent(new ol.MapBrowserPointerEvent(n.type,this.map_,n,t))},ol.MapBrowserEventHandler.prototype.isMoving_=function(n){return Math.abs(n.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(n.clientY-this.down_.clientY)>this.moveTolerance_},ol.MapBrowserEventHandler.prototype.disposeInternal=function(){this.relayedListenerKey_&&(ol.events.unlistenByKey(this.relayedListenerKey_),this.relayedListenerKey_=null);this.pointerdownListenerKey_&&(ol.events.unlistenByKey(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null);this.dragListenerKeys_.forEach(ol.events.unlistenByKey);this.dragListenerKeys_.length=0;this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null);this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null);ol.events.EventTarget.prototype.disposeInternal.call(this)},n.provide("ol.MapEventType"),ol.MapEventType={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend"},n.provide("ol.MapProperty"),ol.MapProperty={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},n.provide("ol.TileState"),ol.TileState={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},n.provide("ol.structs.PriorityQueue"),n.require("ol.asserts"),n.require("ol.obj"),ol.structs.PriorityQueue=function(n,t){this.priorityFunction_=n;this.keyFunction_=t;this.elements_=[];this.priorities_=[];this.queuedElements_={}},ol.structs.PriorityQueue.DROP=Infinity,ol.structs.PriorityQueue.prototype.clear=function(){this.elements_.length=0;this.priorities_.length=0;ol.obj.clear(this.queuedElements_)},ol.structs.PriorityQueue.prototype.dequeue=function(){var n=this.elements_,t=this.priorities_,i=n[0],r;return n.length==1?(n.length=0,t.length=0):(n[0]=n.pop(),t[0]=t.pop(),this.siftUp_(0)),r=this.keyFunction_(i),delete this.queuedElements_[r],i},ol.structs.PriorityQueue.prototype.enqueue=function(n){ol.asserts.assert(!(this.keyFunction_(n)in this.queuedElements_),31);var t=this.priorityFunction_(n);return t!=ol.structs.PriorityQueue.DROP?(this.elements_.push(n),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(n)]=!0,this.siftDown_(0,this.elements_.length-1),!0):!1},ol.structs.PriorityQueue.prototype.getCount=function(){return this.elements_.length},ol.structs.PriorityQueue.prototype.getLeftChildIndex_=function(n){return n*2+1},ol.structs.PriorityQueue.prototype.getRightChildIndex_=function(n){return n*2+2},ol.structs.PriorityQueue.prototype.getParentIndex_=function(n){return n-1>>1},ol.structs.PriorityQueue.prototype.heapify_=function(){for(var n=(this.elements_.length>>1)-1;n>=0;n--)this.siftUp_(n)},ol.structs.PriorityQueue.prototype.isEmpty=function(){return this.elements_.length===0},ol.structs.PriorityQueue.prototype.isKeyQueued=function(n){return n in this.queuedElements_},ol.structs.PriorityQueue.prototype.isQueued=function(n){return this.isKeyQueued(this.keyFunction_(n))},ol.structs.PriorityQueue.prototype.siftUp_=function(n){for(var i=this.elements_,t=this.priorities_,f=i.length,o=i[n],s=t[n],h=n;n<f>>1;){var e=this.getLeftChildIndex_(n),r=this.getRightChildIndex_(n),u=r<f&&t[r]<t[e]?r:e;i[n]=i[u];t[n]=t[u];n=u}i[n]=o;t[n]=s;this.siftDown_(h,n)},ol.structs.PriorityQueue.prototype.siftDown_=function(n,t){for(var u=this.elements_,i=this.priorities_,e=u[t],f=i[t],r;t>n;)if(r=this.getParentIndex_(t),i[r]>f)u[t]=u[r],i[t]=i[r],t=r;else break;u[t]=e;i[t]=f},ol.structs.PriorityQueue.prototype.reprioritize=function(){for(var e=this.priorityFunction_,n=this.elements_,f=this.priorities_,t=0,o=n.length,i,u,r=0;r<o;++r)i=n[r],u=e(i),u==ol.structs.PriorityQueue.DROP?delete this.queuedElements_[this.keyFunction_(i)]:(f[t]=u,n[t++]=i);n.length=t;f.length=t;this.heapify_()},n.provide("ol.TileQueue"),n.require("ol"),n.require("ol.TileState"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.structs.PriorityQueue"),ol.TileQueue=function(n,t){ol.structs.PriorityQueue.call(this,function(t){return n.apply(null,t)},function(n){return n[0].getKey()});this.tileChangeCallback_=t;this.tilesLoading_=0;this.tilesLoadingKeys_={}},ol.inherits(ol.TileQueue,ol.structs.PriorityQueue),ol.TileQueue.prototype.enqueue=function(n){var t=ol.structs.PriorityQueue.prototype.enqueue.call(this,n),i;return t&&(i=n[0],ol.events.listen(i,ol.events.EventType.CHANGE,this.handleTileChange,this)),t},ol.TileQueue.prototype.getTilesLoading=function(){return this.tilesLoading_},ol.TileQueue.prototype.handleTileChange=function(n){var i=n.target,t=i.getState(),r;(t===ol.TileState.LOADED||t===ol.TileState.ERROR||t===ol.TileState.EMPTY||t===ol.TileState.ABORT)&&(ol.events.unlisten(i,ol.events.EventType.CHANGE,this.handleTileChange,this),r=i.getKey(),r in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[r],--this.tilesLoading_),this.tileChangeCallback_())},ol.TileQueue.prototype.loadMoreTiles=function(n,t){for(var r=0,e=!1,u,i,f;this.tilesLoading_<n&&r<t&&this.getCount()>0;)i=this.dequeue()[0],f=i.getKey(),u=i.getState(),u===ol.TileState.ABORT?e=!0:u!==ol.TileState.IDLE||f in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[f]=!0,++this.tilesLoading_,++r,i.load());r===0&&e&&this.tileChangeCallback_()},n.provide("ol.CenterConstraint"),n.require("ol.math"),ol.CenterConstraint.createExtent=function(n){return function(t){return t?[ol.math.clamp(t[0],n[0],n[2]),ol.math.clamp(t[1],n[1],n[3])]:undefined}},ol.CenterConstraint.none=function(n){return n},n.provide("ol.ResolutionConstraint"),n.require("ol.array"),n.require("ol.math"),ol.ResolutionConstraint.createSnapToResolutions=function(n){return function(t,i,r){var f,u,e;return t!==undefined?(f=ol.array.linearFindNearest(n,t,r),f=ol.math.clamp(f+i,0,n.length-1),u=Math.floor(f),f!=u&&u<n.length-1?(e=n[u]/n[u+1],n[u]/Math.pow(e,f-u)):n[u]):undefined}},ol.ResolutionConstraint.createSnapToPower=function(n,t,i){return function(r,u,f){if(r!==undefined){var o=-f/2+.5,s=Math.floor(Math.log(t/r)/Math.log(n)+o),e=Math.max(s+u,0);return i!==undefined&&(e=Math.min(e,i)),t/Math.pow(n,e)}return undefined}},n.provide("ol.RotationConstraint"),n.require("ol.math"),ol.RotationConstraint.disable=function(n){return n!==undefined?0:undefined},ol.RotationConstraint.none=function(n,t){return n!==undefined?n+t:undefined},ol.RotationConstraint.createSnapToN=function(n){var t=2*Math.PI/n;return function(n,i){return n!==undefined?Math.floor((n+i)/t+.5)*t:undefined}},ol.RotationConstraint.createSnapToZero=function(n){var t=n||ol.math.toRadians(5);return function(n,i){return n!==undefined?Math.abs(n+i)<=t?0:n+i:undefined}},n.provide("ol.ViewHint"),ol.ViewHint={ANIMATING:0,INTERACTING:1},n.provide("ol.ViewProperty"),ol.ViewProperty={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"},n.provide("ol.string"),ol.string.padNumber=function(n,t,i){var u=i!==undefined?n.toFixed(i):""+n,r=u.indexOf(".");return r=r===-1?u.length:r,r>t?u:new Array(1+t-r).join("0")+u},ol.string.compareVersions=function(n,t){for(var r,u,f=(""+n).split("."),e=(""+t).split("."),i=0;i<Math.max(f.length,e.length);i++){if(r=parseInt(f[i]||"0",10),u=parseInt(e[i]||"0",10),r>u)return 1;if(u>r)return-1}return 0},n.provide("ol.coordinate"),n.require("ol.math"),n.require("ol.string"),ol.coordinate.add=function(n,t){return n[0]+=t[0],n[1]+=t[1],n},ol.coordinate.closestOnCircle=function(n,t){var f=t.getRadius(),e=t.getCenter(),o=e[0],s=e[1],l=n[0],a=n[1],i=l-o,r=a-s,u,h,c;return i===0&&r===0&&(i=1),u=Math.sqrt(i*i+r*r),h=o+f*i/u,c=s+f*r/u,[h,c]},ol.coordinate.closestOnSegment=function(n,t){var v=n[0],y=n[1],h=t[0],c=t[1],u=h[0],f=h[1],l=c[0],a=c[1],i=l-u,r=a-f,e=i===0&&r===0?0:(i*(v-u)+r*(y-f))/(i*i+r*r||0),o,s;return e<=0?(o=u,s=f):e>=1?(o=l,s=a):(o=u+e*i,s=f+e*r),[o,s]},ol.coordinate.createStringXY=function(n){return function(t){return ol.coordinate.toStringXY(t,n)}},ol.coordinate.degreesToStringHDMS=function(n,t,i){var e=ol.math.modulo(t+180,360)-180,o=Math.abs(3600*e),s=i||0,h=Math.pow(10,s),f=Math.floor(o/3600),r=Math.floor((o-f*3600)/60),u=o-f*3600-r*60;return u=Math.ceil(u*h)/h,u>=60&&(u=0,r+=1),r>=60&&(r=0,f+=1),f+"° "+ol.string.padNumber(r,2)+"′ "+ol.string.padNumber(u,2,s)+"″"+(e==0?"":" "+n.charAt(e<0?1:0))},ol.coordinate.format=function(n,t,i){return n?t.replace("{x}",n[0].toFixed(i)).replace("{y}",n[1].toFixed(i)):""},ol.coordinate.equals=function(n,t){for(var r=!0,i=n.length-1;i>=0;--i)if(n[i]!=t[i]){r=!1;break}return r},ol.coordinate.rotate=function(n,t){var i=Math.cos(t),r=Math.sin(t),u=n[0]*i-n[1]*r,f=n[1]*i+n[0]*r;return n[0]=u,n[1]=f,n},ol.coordinate.scale=function(n,t){return n[0]*=t,n[1]*=t,n},ol.coordinate.sub=function(n,t){return n[0]-=t[0],n[1]-=t[1],n},ol.coordinate.squaredDistance=function(n,t){var i=n[0]-t[0],r=n[1]-t[1];return i*i+r*r},ol.coordinate.distance=function(n,t){return Math.sqrt(ol.coordinate.squaredDistance(n,t))},ol.coordinate.squaredDistanceToSegment=function(n,t){return ol.coordinate.squaredDistance(n,ol.coordinate.closestOnSegment(n,t))},ol.coordinate.toStringHDMS=function(n,t){return n?ol.coordinate.degreesToStringHDMS("NS",n[1],t)+" "+ol.coordinate.degreesToStringHDMS("EW",n[0],t):""},ol.coordinate.toStringXY=function(n,t){return ol.coordinate.format(n,"{x}, {y}",t)},n.provide("ol.easing"),ol.easing.easeIn=function(n){return Math.pow(n,3)},ol.easing.easeOut=function(n){return 1-ol.easing.easeIn(1-n)},ol.easing.inAndOut=function(n){return 3*n*n-2*n*n*n},ol.easing.linear=function(n){return n},ol.easing.upAndDown=function(n){return n<.5?ol.easing.inAndOut(2*n):1-ol.easing.inAndOut(2*(n-.5))},n.provide("ol.geom.GeometryLayout"),ol.geom.GeometryLayout={XY:"XY",XYZ:"XYZ",XYM:"XYM",XYZM:"XYZM"},n.provide("ol.functions"),ol.functions.TRUE=function(){return!0},ol.functions.FALSE=function(){return!1},n.provide("ol.geom.flat.transform"),ol.geom.flat.transform.transform2D=function(n,t,i,r,u,f){for(var e=f?f:[],s=0,h,c,o=t;o<i;o+=r)h=n[o],c=n[o+1],e[s++]=u[0]*h+u[2]*c+u[4],e[s++]=u[1]*h+u[3]*c+u[5];return f&&e.length!=s&&(e.length=s),e},ol.geom.flat.transform.rotate=function(n,t,i,r,u,f,e){for(var l,a,c,o=e?e:[],v=Math.cos(u),y=Math.sin(u),p=f[0],w=f[1],h=0,s=t;s<i;s+=r)for(l=n[s]-p,a=n[s+1]-w,o[h++]=p+l*v-a*y,o[h++]=w+l*y+a*v,c=s+2;c<s+r;++c)o[h++]=n[c];return e&&o.length!=h&&(o.length=h),o},ol.geom.flat.transform.scale=function(n,t,i,r,u,f,e,o){for(var y,p,l,s=o?o:[],a=e[0],v=e[1],c=0,h=t;h<i;h+=r)for(y=n[h]-a,p=n[h+1]-v,s[c++]=a+u*y,s[c++]=v+f*p,l=h+2;l<h+r;++l)s[c++]=n[l];return o&&s.length!=c&&(s.length=c),s},ol.geom.flat.transform.translate=function(n,t,i,r,u,f,e){for(var s=e?e:[],h=0,c,o=t;o<i;o+=r)for(s[h++]=n[o]+u,s[h++]=n[o+1]+f,c=o+2;c<o+r;++c)s[h++]=n[c];return e&&s.length!=h&&(s.length=h),s},n.provide("ol.transform"),n.require("ol.asserts"),ol.transform.tmp_=new Array(6),ol.transform.create=function(){return[1,0,0,1,0,0]},ol.transform.reset=function(n){return ol.transform.set(n,1,0,0,1,0,0)},ol.transform.multiply=function(n,t){var i=n[0],r=n[1],u=n[2],f=n[3],a=n[4],v=n[5],e=t[0],o=t[1],s=t[2],h=t[3],c=t[4],l=t[5];return n[0]=i*e+u*o,n[1]=r*e+f*o,n[2]=i*s+u*h,n[3]=r*s+f*h,n[4]=i*c+u*l+a,n[5]=r*c+f*l+v,n},ol.transform.set=function(n,t,i,r,u,f,e){return n[0]=t,n[1]=i,n[2]=r,n[3]=u,n[4]=f,n[5]=e,n},ol.transform.setFromArray=function(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n},ol.transform.apply=function(n,t){var i=t[0],r=t[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t},ol.transform.rotate=function(n,t){var i=Math.cos(t),r=Math.sin(t);return ol.transform.multiply(n,ol.transform.set(ol.transform.tmp_,i,r,-r,i,0,0))},ol.transform.scale=function(n,t,i){return ol.transform.multiply(n,ol.transform.set(ol.transform.tmp_,t,0,0,i,0,0))},ol.transform.translate=function(n,t,i){return ol.transform.multiply(n,ol.transform.set(ol.transform.tmp_,1,0,0,1,t,i))},ol.transform.compose=function(n,t,i,r,u,f,e,o){var s=Math.sin(f),h=Math.cos(f);return n[0]=r*h,n[1]=u*s,n[2]=-r*s,n[3]=u*h,n[4]=e*r*h-o*r*s+t,n[5]=e*u*s+o*u*h+i,n},ol.transform.invert=function(n){var t=ol.transform.determinant(n);ol.asserts.assert(t!==0,32);var i=n[0],r=n[1],u=n[2],f=n[3],e=n[4],o=n[5];return n[0]=f/t,n[1]=-r/t,n[2]=-u/t,n[3]=i/t,n[4]=(u*o-f*e)/t,n[5]=-(i*o-r*e)/t,n},ol.transform.determinant=function(n){return n[0]*n[3]-n[1]*n[2]},n.provide("ol.geom.Geometry"),n.require("ol"),n.require("ol.Object"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.geom.flat.transform"),n.require("ol.proj"),n.require("ol.proj.Units"),n.require("ol.transform"),ol.geom.Geometry=function(){ol.Object.call(this);this.extent_=ol.extent.createEmpty();this.extentRevision_=-1;this.simplifiedGeometryCache={};this.simplifiedGeometryMaxMinSquaredTolerance=0;this.simplifiedGeometryRevision=0;this.tmpTransform_=ol.transform.create()},ol.inherits(ol.geom.Geometry,ol.Object),ol.geom.Geometry.prototype.clone=function(){},ol.geom.Geometry.prototype.closestPointXY=function(){},ol.geom.Geometry.prototype.getClosestPoint=function(n,t){var i=t?t:[NaN,NaN];return this.closestPointXY(n[0],n[1],i,Infinity),i},ol.geom.Geometry.prototype.intersectsCoordinate=function(n){return this.containsXY(n[0],n[1])},ol.geom.Geometry.prototype.computeExtent=function(){},ol.geom.Geometry.prototype.containsXY=ol.functions.FALSE,ol.geom.Geometry.prototype.getExtent=function(n){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),ol.extent.returnOrUpdate(this.extent_,n)},ol.geom.Geometry.prototype.rotate=function(){},ol.geom.Geometry.prototype.scale=function(){},ol.geom.Geometry.prototype.simplify=function(n){return this.getSimplifiedGeometry(n*n)},ol.geom.Geometry.prototype.getSimplifiedGeometry=function(){},ol.geom.Geometry.prototype.getType=function(){},ol.geom.Geometry.prototype.applyTransform=function(){},ol.geom.Geometry.prototype.intersectsExtent=function(){},ol.geom.Geometry.prototype.translate=function(){},ol.geom.Geometry.prototype.transform=function(n,t){var i=this.tmpTransform_,r;return n=ol.proj.get(n),r=n.getUnits()==ol.proj.Units.TILE_PIXELS?function(r,u,f){var s=n.getExtent(),e=n.getWorldExtent(),o=ol.extent.getHeight(e)/ol.extent.getHeight(s);return ol.transform.compose(i,e[0],e[3],o,-o,0,0,0),ol.geom.flat.transform.transform2D(r,0,r.length,f,i,u),ol.proj.getTransform(n,t)(r,u,f)}:ol.proj.getTransform(n,t),this.applyTransform(r),this},n.provide("ol.geom.SimpleGeometry"),n.require("ol"),n.require("ol.functions"),n.require("ol.extent"),n.require("ol.geom.Geometry"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.flat.transform"),n.require("ol.obj"),ol.geom.SimpleGeometry=function(){ol.geom.Geometry.call(this);this.layout=ol.geom.GeometryLayout.XY;this.stride=2;this.flatCoordinates=null},ol.inherits(ol.geom.SimpleGeometry,ol.geom.Geometry),ol.geom.SimpleGeometry.getLayoutForStride_=function(n){var t;return n==2?t=ol.geom.GeometryLayout.XY:n==3?t=ol.geom.GeometryLayout.XYZ:n==4&&(t=ol.geom.GeometryLayout.XYZM),t},ol.geom.SimpleGeometry.getStrideForLayout=function(n){var t;return n==ol.geom.GeometryLayout.XY?t=2:n==ol.geom.GeometryLayout.XYZ||n==ol.geom.GeometryLayout.XYM?t=3:n==ol.geom.GeometryLayout.XYZM&&(t=4),t},ol.geom.SimpleGeometry.prototype.containsXY=ol.functions.FALSE,ol.geom.SimpleGeometry.prototype.computeExtent=function(n){return ol.extent.createOrUpdateFromFlatCoordinates(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n)},ol.geom.SimpleGeometry.prototype.getCoordinates=function(){},ol.geom.SimpleGeometry.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},ol.geom.SimpleGeometry.prototype.getFlatCoordinates=function(){return this.flatCoordinates},ol.geom.SimpleGeometry.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},ol.geom.SimpleGeometry.prototype.getLayout=function(){return this.layout},ol.geom.SimpleGeometry.prototype.getSimplifiedGeometry=function(n){var t,i,r;return(this.simplifiedGeometryRevision!=this.getRevision()&&(ol.obj.clear(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),n<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&n<=this.simplifiedGeometryMaxMinSquaredTolerance)?this:(t=n.toString(),this.simplifiedGeometryCache.hasOwnProperty(t)?this.simplifiedGeometryCache[t]:(i=this.getSimplifiedGeometryInternal(n),r=i.getFlatCoordinates(),r.length<this.flatCoordinates.length?(this.simplifiedGeometryCache[t]=i,i):(this.simplifiedGeometryMaxMinSquaredTolerance=n,this)))},ol.geom.SimpleGeometry.prototype.getSimplifiedGeometryInternal=function(){return this},ol.geom.SimpleGeometry.prototype.getStride=function(){return this.stride},ol.geom.SimpleGeometry.prototype.setFlatCoordinatesInternal=function(n,t){this.stride=ol.geom.SimpleGeometry.getStrideForLayout(n);this.layout=n;this.flatCoordinates=t},ol.geom.SimpleGeometry.prototype.setCoordinates=function(){},ol.geom.SimpleGeometry.prototype.setLayout=function(n,t,i){var r,u;if(n)r=ol.geom.SimpleGeometry.getStrideForLayout(n);else{for(u=0;u<i;++u){if(t.length===0){this.layout=ol.geom.GeometryLayout.XY;this.stride=2;return}t=t[0]}r=t.length;n=ol.geom.SimpleGeometry.getLayoutForStride_(r)}this.layout=n;this.stride=r},ol.geom.SimpleGeometry.prototype.applyTransform=function(n){this.flatCoordinates&&(n(this.flatCoordinates,this.flatCoordinates,this.stride),this.changed())},ol.geom.SimpleGeometry.prototype.rotate=function(n,t){var i=this.getFlatCoordinates(),r;i&&(r=this.getStride(),ol.geom.flat.transform.rotate(i,0,i.length,r,n,t,i),this.changed())},ol.geom.SimpleGeometry.prototype.scale=function(n,t,i){var f=t,u,r,e;f===undefined&&(f=n);u=i;u||(u=ol.extent.getCenter(this.getExtent()));r=this.getFlatCoordinates();r&&(e=this.getStride(),ol.geom.flat.transform.scale(r,0,r.length,e,n,f,u,r),this.changed())},ol.geom.SimpleGeometry.prototype.translate=function(n,t){var i=this.getFlatCoordinates(),r;i&&(r=this.getStride(),ol.geom.flat.transform.translate(i,0,i.length,r,n,t,i),this.changed())},ol.geom.SimpleGeometry.transform2D=function(n,t,i){var r=n.getFlatCoordinates(),u;return r?(u=n.getStride(),ol.geom.flat.transform.transform2D(r,0,r.length,u,t,i)):null},n.provide("ol.geom.flat.area"),ol.geom.flat.area.linearRing=function(n,t,i,r){for(var e=0,o=n[i-r],s=n[i-r+1],u,f;t<i;t+=r)u=n[t],f=n[t+1],e+=s*u-o*f,o=u,s=f;return e/2},ol.geom.flat.area.linearRings=function(n,t,i,r){for(var e=0,f,u=0,o=i.length;u<o;++u)f=i[u],e+=ol.geom.flat.area.linearRing(n,t,f,r),t=f;return e},ol.geom.flat.area.linearRingss=function(n,t,i,r){for(var e=0,f,u=0,o=i.length;u<o;++u)f=i[u],e+=ol.geom.flat.area.linearRings(n,t,f,r),t=f[f.length-1];return e},n.provide("ol.geom.flat.closest"),n.require("ol.math"),ol.geom.flat.closest.point=function(n,t,i,r,u,f,e){var a=n[t],v=n[t+1],s=n[i]-a,h=n[i+1]-v,o,c,l;if(s===0&&h===0)c=t;else if(l=((u-a)*s+(f-v)*h)/(s*s+h*h),l>1)c=i;else{if(l>0){for(o=0;o<r;++o)e[o]=ol.math.lerp(n[t+o],n[i+o],l);e.length=r;return}c=t}for(o=0;o<r;++o)e[o]=n[c+o];e.length=r},ol.geom.flat.closest.getMaxSquaredDelta=function(n,t,i,r,u){var f=n[t],e=n[t+1];for(t+=r;t<i;t+=r){var o=n[t],s=n[t+1],h=ol.math.squaredDistance(f,e,o,s);h>u&&(u=h);f=o;e=s}return u},ol.geom.flat.closest.getsMaxSquaredDelta=function(n,t,i,r,u){for(var e,f=0,o=i.length;f<o;++f)e=i[f],u=ol.geom.flat.closest.getMaxSquaredDelta(n,t,e,r,u),t=e;return u},ol.geom.flat.closest.getssMaxSquaredDelta=function(n,t,i,r,u){for(var e,f=0,o=i.length;f<o;++f)e=i[f],u=ol.geom.flat.closest.getsMaxSquaredDelta(n,t,e,r,u),t=e[e.length-1];return u},ol.geom.flat.closest.getClosestPoint=function(n,t,i,r,u,f,e,o,s,h,c){var l,a,v,y;if(t==i)return h;if(u===0){if(a=ol.math.squaredDistance(e,o,n[t],n[t+1]),a<h){for(l=0;l<r;++l)s[l]=n[t+l];return s.length=r,a}return h}for(v=c?c:[NaN,NaN],y=t+r;y<i;)if(ol.geom.flat.closest.point(n,y-r,y,r,e,o,v),a=ol.math.squaredDistance(e,o,v[0],v[1]),a<h){for(h=a,l=0;l<r;++l)s[l]=v[l];s.length=r;y+=r}else y+=r*Math.max((Math.sqrt(a)-Math.sqrt(h))/u|0,1);if(f&&(ol.geom.flat.closest.point(n,i-r,t,r,e,o,v),a=ol.math.squaredDistance(e,o,v[0],v[1]),a<h)){for(h=a,l=0;l<r;++l)s[l]=v[l];s.length=r}return h},ol.geom.flat.closest.getsClosestPoint=function(n,t,i,r,u,f,e,o,s,h,c){for(var y=c?c:[NaN,NaN],a,l=0,v=i.length;l<v;++l)a=i[l],h=ol.geom.flat.closest.getClosestPoint(n,t,a,r,u,f,e,o,s,h,y),t=a;return h},ol.geom.flat.closest.getssClosestPoint=function(n,t,i,r,u,f,e,o,s,h,c){for(var y=c?c:[NaN,NaN],a,l=0,v=i.length;l<v;++l)a=i[l],h=ol.geom.flat.closest.getsClosestPoint(n,t,a,r,u,f,e,o,s,h,y),t=a[a.length-1];return h},n.provide("ol.geom.flat.deflate"),ol.geom.flat.deflate.coordinate=function(n,t,i){for(var r=0,u=i.length;r<u;++r)n[t++]=i[r];return t},ol.geom.flat.deflate.coordinates=function(n,t,i,r){for(var o,f,u=0,e=i.length;u<e;++u)for(o=i[u],f=0;f<r;++f)n[t++]=o[f];return t},ol.geom.flat.deflate.coordinatess=function(n,t,i,r,u){for(var e=u?u:[],s=0,o,f=0,h=i.length;f<h;++f)o=ol.geom.flat.deflate.coordinates(n,t,i[f],r),e[s++]=o,t=o;return e.length=s,e},ol.geom.flat.deflate.coordinatesss=function(n,t,i,r,u){for(var f=u?u:[],s=0,o,e=0,h=i.length;e<h;++e)o=ol.geom.flat.deflate.coordinatess(n,t,i[e],r,f[s]),f[s++]=o,t=o[o.length-1];return f.length=s,f},n.provide("ol.geom.flat.inflate"),ol.geom.flat.inflate.coordinates=function(n,t,i,r,u){for(var e=u!==undefined?u:[],o=0,f=t;f<i;f+=r)e[o++]=n.slice(f,f+r);return e.length=o,e},ol.geom.flat.inflate.coordinatess=function(n,t,i,r,u){for(var f=u!==undefined?u:[],o=0,s,e=0,h=i.length;e<h;++e)s=i[e],f[o++]=ol.geom.flat.inflate.coordinates(n,t,s,r,f[o]),t=s;return f.length=o,f},ol.geom.flat.inflate.coordinatesss=function(n,t,i,r,u){for(var f=u!==undefined?u:[],s=0,o,e=0,h=i.length;e<h;++e)o=i[e],f[s++]=ol.geom.flat.inflate.coordinatess(n,t,o,r,f[s]),t=o[o.length-1];return f.length=s,f},n.provide("ol.geom.flat.simplify"),n.require("ol.math"),ol.geom.flat.simplify.lineString=function(n,t,i,r,u,f,e){var o=e!==undefined?e:[];return f||(i=ol.geom.flat.simplify.radialDistance(n,t,i,r,u,o,0),n=o,t=0,r=2),o.length=ol.geom.flat.simplify.douglasPeucker(n,t,i,r,u,o,0),o},ol.geom.flat.simplify.douglasPeucker=function(n,t,i,r,u,f,e){var v=(i-t)/r,c,h,s,o;if(v<3){for(;t<i;t+=r)f[e++]=n[t],f[e++]=n[t+1];return e}for(c=new Array(v),c[0]=1,c[v-1]=1,h=[t,i-r],s=0;h.length>0;){var l=h.pop(),a=h.pop(),y=0,w=n[a],b=n[a+1],k=n[l],d=n[l+1];for(o=a+r;o<l;o+=r){var g=n[o],nt=n[o+1],p=ol.math.squaredSegmentDistance(g,nt,w,b,k,d);p>y&&(s=o,y=p)}y>u&&(c[(s-t)/r]=1,a+r<s&&h.push(a,s),s+r<l&&h.push(s,l))}for(o=0;o<v;++o)c[o]&&(f[e++]=n[t+o*r],f[e++]=n[t+o*r+1]);return e},ol.geom.flat.simplify.douglasPeuckers=function(n,t,i,r,u,f,e,o){for(var h,s=0,c=i.length;s<c;++s)h=i[s],e=ol.geom.flat.simplify.douglasPeucker(n,t,h,r,u,f,e),o.push(e),t=h;return e},ol.geom.flat.simplify.douglasPeuckerss=function(n,t,i,r,u,f,e,o){for(var h,c,s=0,l=i.length;s<l;++s)h=i[s],c=[],e=ol.geom.flat.simplify.douglasPeuckers(n,t,h,r,u,f,e,c),o.push(c),t=h[h.length-1];return e},ol.geom.flat.simplify.radialDistance=function(n,t,i,r,u,f,e){var h,c,o,s;if(i<=t+r){for(;t<i;t+=r)f[e++]=n[t],f[e++]=n[t+1];return e}for(h=n[t],c=n[t+1],f[e++]=h,f[e++]=c,o=h,s=c,t+=r;t<i;t+=r)o=n[t],s=n[t+1],ol.math.squaredDistance(h,c,o,s)>u&&(f[e++]=o,f[e++]=s,h=o,c=s);return(o!=h||s!=c)&&(f[e++]=o,f[e++]=s),e},ol.geom.flat.simplify.snap=function(n,t){return t*Math.round(n/t)},ol.geom.flat.simplify.quantize=function(n,t,i,r,u,f,e){var h,c,o,s,v,y;if(t==i)return e;h=ol.geom.flat.simplify.snap(n[t],u);c=ol.geom.flat.simplify.snap(n[t+1],u);t+=r;f[e++]=h;f[e++]=c;do if(o=ol.geom.flat.simplify.snap(n[t],u),s=ol.geom.flat.simplify.snap(n[t+1],u),t+=r,t==i)return f[e++]=o,f[e++]=s,e;while(o==h&&s==c);while(t<i)if(v=ol.geom.flat.simplify.snap(n[t],u),y=ol.geom.flat.simplify.snap(n[t+1],u),t+=r,v!=o||y!=s){var l=o-h,a=s-c,p=v-h,w=y-c;if(l*w==a*p&&(l<0&&p<l||l==p||l>0&&p>l)&&(a<0&&w<a||a==w||a>0&&w>a)){o=v;s=y;continue}f[e++]=o;f[e++]=s;h=o;c=s;o=v;s=y}return f[e++]=o,f[e++]=s,e},ol.geom.flat.simplify.quantizes=function(n,t,i,r,u,f,e,o){for(var h,s=0,c=i.length;s<c;++s)h=i[s],e=ol.geom.flat.simplify.quantize(n,t,h,r,u,f,e),o.push(e),t=h;return e},ol.geom.flat.simplify.quantizess=function(n,t,i,r,u,f,e,o){for(var h,c,s=0,l=i.length;s<l;++s)h=i[s],c=[],e=ol.geom.flat.simplify.quantizes(n,t,h,r,u,f,e,c),o.push(c),t=h[h.length-1];return e},n.provide("ol.geom.LinearRing"),n.require("ol"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.area"),n.require("ol.geom.flat.closest"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.inflate"),n.require("ol.geom.flat.simplify"),ol.geom.LinearRing=function(n,t){ol.geom.SimpleGeometry.call(this);this.maxDelta_=-1;this.maxDeltaRevision_=-1;this.setCoordinates(n,t)},ol.inherits(ol.geom.LinearRing,ol.geom.SimpleGeometry),ol.geom.LinearRing.prototype.clone=function(){var n=new ol.geom.LinearRing(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice()),n},ol.geom.LinearRing.prototype.closestPointXY=function(n,t,i,r){return r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t)?r:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(ol.geom.flat.closest.getMaxSquaredDelta(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),ol.geom.flat.closest.getClosestPoint(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,this.maxDelta_,!0,n,t,i,r))},ol.geom.LinearRing.prototype.getArea=function(){return ol.geom.flat.area.linearRing(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)},ol.geom.LinearRing.prototype.getCoordinates=function(){return ol.geom.flat.inflate.coordinates(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)},ol.geom.LinearRing.prototype.getSimplifiedGeometryInternal=function(n){var t=[],i;return t.length=ol.geom.flat.simplify.douglasPeucker(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n,t,0),i=new ol.geom.LinearRing(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XY,t),i},ol.geom.LinearRing.prototype.getType=function(){return ol.geom.GeometryType.LINEAR_RING},ol.geom.LinearRing.prototype.intersectsExtent=function(){},ol.geom.LinearRing.prototype.setCoordinates=function(n,t){n?(this.setLayout(t,n,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=ol.geom.flat.deflate.coordinates(this.flatCoordinates,0,n,this.stride),this.changed()):this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null)},ol.geom.LinearRing.prototype.setFlatCoordinates=function(n,t){this.setFlatCoordinatesInternal(n,t);this.changed()},n.provide("ol.geom.Point"),n.require("ol"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.deflate"),n.require("ol.math"),ol.geom.Point=function(n,t){ol.geom.SimpleGeometry.call(this);this.setCoordinates(n,t)},ol.inherits(ol.geom.Point,ol.geom.SimpleGeometry),ol.geom.Point.prototype.clone=function(){var n=new ol.geom.Point(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice()),n},ol.geom.Point.prototype.closestPointXY=function(n,t,i,r){var f=this.flatCoordinates,o=ol.math.squaredDistance(n,t,f[0],f[1]),e,u;if(o<r){for(e=this.stride,u=0;u<e;++u)i[u]=f[u];return i.length=e,o}return r},ol.geom.Point.prototype.getCoordinates=function(){return this.flatCoordinates?this.flatCoordinates.slice():[]},ol.geom.Point.prototype.computeExtent=function(n){return ol.extent.createOrUpdateFromCoordinate(this.flatCoordinates,n)},ol.geom.Point.prototype.getType=function(){return ol.geom.GeometryType.POINT},ol.geom.Point.prototype.intersectsExtent=function(n){return ol.extent.containsXY(n,this.flatCoordinates[0],this.flatCoordinates[1])},ol.geom.Point.prototype.setCoordinates=function(n,t){n?(this.setLayout(t,n,0),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=ol.geom.flat.deflate.coordinate(this.flatCoordinates,0,n,this.stride),this.changed()):this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null)},ol.geom.Point.prototype.setFlatCoordinates=function(n,t){this.setFlatCoordinatesInternal(n,t);this.changed()},n.provide("ol.geom.flat.contains"),n.require("ol.extent"),ol.geom.flat.contains.linearRingContainsExtent=function(n,t,i,r,u){var f=ol.extent.forEachCorner(u,function(u){return!ol.geom.flat.contains.linearRingContainsXY(n,t,i,r,u[0],u[1])});return!f},ol.geom.flat.contains.linearRingContainsXY=function(n,t,i,r,u,f){for(var c=0,s=n[i-r],e=n[i-r+1],h,o;t<i;t+=r)h=n[t],o=n[t+1],e<=f?o>f&&(h-s)*(f-e)-(u-s)*(o-e)>0&&c++:o<=f&&(h-s)*(f-e)-(u-s)*(o-e)<0&&c--,s=h,e=o;return c!==0},ol.geom.flat.contains.linearRingsContainsXY=function(n,t,i,r,u,f){if(i.length===0||!ol.geom.flat.contains.linearRingContainsXY(n,t,i[0],r,u,f))return!1;for(var e=1,o=i.length;e<o;++e)if(ol.geom.flat.contains.linearRingContainsXY(n,i[e-1],i[e],r,u,f))return!1;return!0},ol.geom.flat.contains.linearRingssContainsXY=function(n,t,i,r,u,f){var e,s,o;if(i.length===0)return!1;for(e=0,s=i.length;e<s;++e){if(o=i[e],ol.geom.flat.contains.linearRingsContainsXY(n,t,o,r,u,f))return!0;t=o[o.length-1]}return!1},n.provide("ol.geom.flat.interiorpoint"),n.require("ol.array"),n.require("ol.geom.flat.contains"),ol.geom.flat.interiorpoint.linearRings=function(n,t,i,r,u,f,e){for(var b,a,w,d,o,g,v,s,c,l,y,h=u[f+1],p=[],k=0,nt=i.length;k<nt;++k)for(b=i[k],s=n[b-r],l=n[b-r+1],o=t;o<b;o+=r)c=n[o],y=n[o+1],(h<=l&&y<=h||l<=h&&h<=y)&&(v=(h-l)/(y-l)*(c-s)+s,p.push(v)),s=c,l=y;for(a=NaN,w=-Infinity,p.sort(ol.array.numberSafeCompareFunction),s=p[0],o=1,g=p.length;o<g;++o)c=p[o],d=Math.abs(c-s),d>w&&(v=(s+c)/2,ol.geom.flat.contains.linearRingsContainsXY(n,t,i,r,v,h)&&(a=v,w=d)),s=c;return isNaN(a)&&(a=u[f]),e?(e.push(a,h,w),e):[a,h,w]},ol.geom.flat.interiorpoint.linearRingss=function(n,t,i,r,u){for(var o=[],e,f=0,s=i.length;f<s;++f)e=i[f],o=ol.geom.flat.interiorpoint.linearRings(n,t,e,r,u,2*f,o),t=e[e.length-1];return o},n.provide("ol.geom.flat.segments"),ol.geom.flat.segments.forEach=function(n,t,i,r,u,f){for(var o=[n[t],n[t+1]],e=[],s;t+r<i;t+=r){if(e[0]=n[t+r],e[1]=n[t+r+1],s=u.call(f,o,e),s)return s;o[0]=e[0];o[1]=e[1]}return!1},n.provide("ol.geom.flat.intersectsextent"),n.require("ol.extent"),n.require("ol.geom.flat.contains"),n.require("ol.geom.flat.segments"),ol.geom.flat.intersectsextent.lineString=function(n,t,i,r,u){var f=ol.extent.extendFlatCoordinates(ol.extent.createEmpty(),n,t,i,r);return ol.extent.intersects(u,f)?ol.extent.containsExtent(u,f)?!0:f[0]>=u[0]&&f[2]<=u[2]?!0:f[1]>=u[1]&&f[3]<=u[3]?!0:ol.geom.flat.segments.forEach(n,t,i,r,function(n,t){return ol.extent.intersectsSegment(u,n,t)}):!1},ol.geom.flat.intersectsextent.lineStrings=function(n,t,i,r,u){for(var f=0,e=i.length;f<e;++f){if(ol.geom.flat.intersectsextent.lineString(n,t,i[f],r,u))return!0;t=i[f]}return!1},ol.geom.flat.intersectsextent.linearRing=function(n,t,i,r,u){return ol.geom.flat.intersectsextent.lineString(n,t,i,r,u)?!0:ol.geom.flat.contains.linearRingContainsXY(n,t,i,r,u[0],u[1])?!0:ol.geom.flat.contains.linearRingContainsXY(n,t,i,r,u[0],u[3])?!0:ol.geom.flat.contains.linearRingContainsXY(n,t,i,r,u[2],u[1])?!0:ol.geom.flat.contains.linearRingContainsXY(n,t,i,r,u[2],u[3])?!0:!1},ol.geom.flat.intersectsextent.linearRings=function(n,t,i,r,u){if(!ol.geom.flat.intersectsextent.linearRing(n,t,i[0],r,u))return!1;if(i.length===1)return!0;for(var f=1,e=i.length;f<e;++f)if(ol.geom.flat.contains.linearRingContainsExtent(n,i[f-1],i[f],r,u))return!1;return!0},ol.geom.flat.intersectsextent.linearRingss=function(n,t,i,r,u){for(var e,f=0,o=i.length;f<o;++f){if(e=i[f],ol.geom.flat.intersectsextent.linearRings(n,t,e,r,u))return!0;t=e[e.length-1]}return!1},n.provide("ol.geom.flat.reverse"),ol.geom.flat.reverse.coordinates=function(n,t,i,r){for(var u,f;t<i-r;){for(u=0;u<r;++u)f=n[t+u],n[t+u]=n[i-r+u],n[i-r+u]=f;t+=r;i-=r}},n.provide("ol.geom.flat.orient"),n.require("ol.geom.flat.reverse"),ol.geom.flat.orient.linearRingIsClockwise=function(n,t,i,r){for(var e=0,o=n[i-r],s=n[i-r+1],u,f;t<i;t+=r)u=n[t],f=n[t+1],e+=(u-o)*(f+s),o=u,s=f;return e>0},ol.geom.flat.orient.linearRingsAreOriented=function(n,t,i,r,u){for(var o=u!==undefined?u:!1,s,e,f=0,h=i.length;f<h;++f){if(s=i[f],e=ol.geom.flat.orient.linearRingIsClockwise(n,t,s,r),f===0){if(o&&e||!o&&!e)return!1}else if(o&&!e||!o&&e)return!1;t=s}return!0},ol.geom.flat.orient.linearRingssAreOriented=function(n,t,i,r,u){for(var f=0,e=i.length;f<e;++f)if(!ol.geom.flat.orient.linearRingsAreOriented(n,t,i[f],r,u))return!1;return!0},ol.geom.flat.orient.orientLinearRings=function(n,t,i,r,u){for(var e=u!==undefined?u:!1,f=0,h=i.length;f<h;++f){var s=i[f],o=ol.geom.flat.orient.linearRingIsClockwise(n,t,s,r),c=f===0?e&&o||!e&&!o:e&&!o||!e&&o;c&&ol.geom.flat.reverse.coordinates(n,t,s,r);t=s}return t},ol.geom.flat.orient.orientLinearRingss=function(n,t,i,r,u){for(var f=0,e=i.length;f<e;++f)t=ol.geom.flat.orient.orientLinearRings(n,t,i[f],r,u);return t},n.provide("ol.geom.Polygon"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.LinearRing"),n.require("ol.geom.Point"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.area"),n.require("ol.geom.flat.closest"),n.require("ol.geom.flat.contains"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.inflate"),n.require("ol.geom.flat.interiorpoint"),n.require("ol.geom.flat.intersectsextent"),n.require("ol.geom.flat.orient"),n.require("ol.geom.flat.simplify"),n.require("ol.math"),ol.geom.Polygon=function(n,t){ol.geom.SimpleGeometry.call(this);this.ends_=[];this.flatInteriorPointRevision_=-1;this.flatInteriorPoint_=null;this.maxDelta_=-1;this.maxDeltaRevision_=-1;this.orientedRevision_=-1;this.orientedFlatCoordinates_=null;this.setCoordinates(n,t)},ol.inherits(ol.geom.Polygon,ol.geom.SimpleGeometry),ol.geom.Polygon.prototype.appendLinearRing=function(n){this.flatCoordinates?ol.array.extend(this.flatCoordinates,n.getFlatCoordinates()):this.flatCoordinates=n.getFlatCoordinates().slice();this.ends_.push(this.flatCoordinates.length);this.changed()},ol.geom.Polygon.prototype.clone=function(){var n=new ol.geom.Polygon(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice(),this.ends_.slice()),n},ol.geom.Polygon.prototype.closestPointXY=function(n,t,i,r){return r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t)?r:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(ol.geom.flat.closest.getsMaxSquaredDelta(this.flatCoordinates,0,this.ends_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),ol.geom.flat.closest.getsClosestPoint(this.flatCoordinates,0,this.ends_,this.stride,this.maxDelta_,!0,n,t,i,r))},ol.geom.Polygon.prototype.containsXY=function(n,t){return ol.geom.flat.contains.linearRingsContainsXY(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,n,t)},ol.geom.Polygon.prototype.getArea=function(){return ol.geom.flat.area.linearRings(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride)},ol.geom.Polygon.prototype.getCoordinates=function(n){var t;return n!==undefined?(t=this.getOrientedFlatCoordinates().slice(),ol.geom.flat.orient.orientLinearRings(t,0,this.ends_,this.stride,n)):t=this.flatCoordinates,ol.geom.flat.inflate.coordinatess(t,0,this.ends_,this.stride)},ol.geom.Polygon.prototype.getEnds=function(){return this.ends_},ol.geom.Polygon.prototype.getFlatInteriorPoint=function(){if(this.flatInteriorPointRevision_!=this.getRevision()){var n=ol.extent.getCenter(this.getExtent());this.flatInteriorPoint_=ol.geom.flat.interiorpoint.linearRings(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,n,0);this.flatInteriorPointRevision_=this.getRevision()}return this.flatInteriorPoint_},ol.geom.Polygon.prototype.getInteriorPoint=function(){return new ol.geom.Point(this.getFlatInteriorPoint(),ol.geom.GeometryLayout.XYM)},ol.geom.Polygon.prototype.getLinearRingCount=function(){return this.ends_.length},ol.geom.Polygon.prototype.getLinearRing=function(n){if(n<0||this.ends_.length<=n)return null;var t=new ol.geom.LinearRing(null);return t.setFlatCoordinates(this.layout,this.flatCoordinates.slice(n===0?0:this.ends_[n-1],this.ends_[n])),t},ol.geom.Polygon.prototype.getLinearRings=function(){for(var o=this.layout,s=this.flatCoordinates,r=this.ends_,u=[],f=0,t,i,n=0,e=r.length;n<e;++n)t=r[n],i=new ol.geom.LinearRing(null),i.setFlatCoordinates(o,s.slice(f,t)),u.push(i),f=t;return u},ol.geom.Polygon.prototype.getOrientedFlatCoordinates=function(){if(this.orientedRevision_!=this.getRevision()){var n=this.flatCoordinates;ol.geom.flat.orient.linearRingsAreOriented(n,0,this.ends_,this.stride)?this.orientedFlatCoordinates_=n:(this.orientedFlatCoordinates_=n.slice(),this.orientedFlatCoordinates_.length=ol.geom.flat.orient.orientLinearRings(this.orientedFlatCoordinates_,0,this.ends_,this.stride));this.orientedRevision_=this.getRevision()}return this.orientedFlatCoordinates_},ol.geom.Polygon.prototype.getSimplifiedGeometryInternal=function(n){var t=[],r=[],i;return t.length=ol.geom.flat.simplify.quantizes(this.flatCoordinates,0,this.ends_,this.stride,Math.sqrt(n),t,0,r),i=new ol.geom.Polygon(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XY,t,r),i},ol.geom.Polygon.prototype.getType=function(){return ol.geom.GeometryType.POLYGON},ol.geom.Polygon.prototype.intersectsExtent=function(n){return ol.geom.flat.intersectsextent.linearRings(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,n)},ol.geom.Polygon.prototype.setCoordinates=function(n,t){if(n){this.setLayout(t,n,2);this.flatCoordinates||(this.flatCoordinates=[]);var i=ol.geom.flat.deflate.coordinatess(this.flatCoordinates,0,n,this.stride,this.ends_);this.flatCoordinates.length=i.length===0?0:i[i.length-1];this.changed()}else this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null,this.ends_)},ol.geom.Polygon.prototype.setFlatCoordinates=function(n,t,i){this.setFlatCoordinatesInternal(n,t);this.ends_=i;this.changed()},ol.geom.Polygon.circular=function(n,t,i,r){for(var o=r?r:32,u=[],e,f=0;f<o;++f)ol.array.extend(u,n.offset(t,i,2*Math.PI*f/o));return u.push(u[0],u[1]),e=new ol.geom.Polygon(null),e.setFlatCoordinates(ol.geom.GeometryLayout.XY,u,[u.length]),e},ol.geom.Polygon.fromExtent=function(n){var t=n[0],i=n[1],r=n[2],u=n[3],f=[t,i,t,u,r,u,r,i,t,i],e=new ol.geom.Polygon(null);return e.setFlatCoordinates(ol.geom.GeometryLayout.XY,f,[f.length]),e},ol.geom.Polygon.fromCircle=function(n,t,i){for(var s,h=t?t:32,c=n.getStride(),e=n.getLayout(),r=new ol.geom.Polygon(null,e),o=c*(h+1),u=new Array(o),f=0;f<o;f++)u[f]=0;return s=[u.length],r.setFlatCoordinates(e,u,s),ol.geom.Polygon.makeRegular(r,n.getCenter(),n.getRadius(),i),r},ol.geom.Polygon.makeRegular=function(n,t,i,r){for(var u=n.getFlatCoordinates(),c=n.getLayout(),h=n.getStride(),l=n.getEnds(),e=u.length/h-1,a=r?r:0,o,s,f=0;f<=e;++f)s=f*h,o=a+ol.math.modulo(f,e)*2*Math.PI/e,u[s]=t[0]+i*Math.cos(o),u[s+1]=t[1]+i*Math.sin(o);n.setFlatCoordinates(c,u,l)},n.provide("ol.View"),n.require("ol"),n.require("ol.CenterConstraint"),n.require("ol.Object"),n.require("ol.ResolutionConstraint"),n.require("ol.RotationConstraint"),n.require("ol.ViewHint"),n.require("ol.ViewProperty"),n.require("ol.array"),n.require("ol.asserts"),n.require("ol.coordinate"),n.require("ol.easing"),n.require("ol.extent"),n.require("ol.geom.GeometryType"),n.require("ol.geom.Polygon"),n.require("ol.geom.SimpleGeometry"),n.require("ol.math"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.proj.Units"),ol.View=function(n){ol.Object.call(this);var t=ol.obj.assign({},n);this.hints_=[0,0];this.animations_=[];this.updateAnimationKey_;this.updateAnimations_=this.updateAnimations_.bind(this);this.projection_=ol.proj.createProjection(t.projection,"EPSG:3857");this.applyOptions_(t)},ol.inherits(ol.View,ol.Object),ol.View.prototype.applyOptions_=function(n){var t={},i;t[ol.ViewProperty.CENTER]=n.center!==undefined?n.center:null;i=ol.View.createResolutionConstraint_(n);this.maxResolution_=i.maxResolution;this.minResolution_=i.minResolution;this.zoomFactor_=i.zoomFactor;this.resolutions_=n.resolutions;this.minZoom_=i.minZoom;var r=ol.View.createCenterConstraint_(n),u=i.constraint,f=ol.View.createRotationConstraint_(n);this.constraints_={center:r,resolution:u,rotation:f};n.resolution!==undefined?t[ol.ViewProperty.RESOLUTION]=n.resolution:n.zoom!==undefined&&(t[ol.ViewProperty.RESOLUTION]=this.constrainResolution(this.maxResolution_,n.zoom-this.minZoom_),this.resolutions_&&(t[ol.ViewProperty.RESOLUTION]=ol.math.clamp(Number(this.getResolution()||t[ol.ViewProperty.RESOLUTION]),this.minResolution_,this.maxResolution_)));t[ol.ViewProperty.ROTATION]=n.rotation!==undefined?n.rotation:0;this.setProperties(t);this.options_=n},ol.View.prototype.getUpdatedOptions_=function(n){var t=ol.obj.assign({},this.options_);return t.resolution!==undefined?t.resolution=this.getResolution():t.zoom=this.getZoom(),t.center=this.getCenter(),t.rotation=this.getRotation(),ol.obj.assign({},t,n)},ol.View.prototype.animate=function(){var r=arguments.length,u,i,o,t,n,l;if(r>1&&typeof arguments[r-1]=="function"&&(u=arguments[r-1],--r),!this.isDef()){i=arguments[r-1];i.center&&this.setCenter(i.center);i.zoom!==undefined&&this.setZoom(i.zoom);i.rotation!==undefined&&this.setRotation(i.rotation);u&&u(!0);return}var s=Date.now(),h=this.getCenter().slice(),f=this.getResolution(),e=this.getRotation(),c=[];for(o=0;o<r;++o)t=arguments[o],n={start:s,complete:!1,anchor:t.anchor,duration:t.duration!==undefined?t.duration:1e3,easing:t.easing||ol.easing.inAndOut},t.center&&(n.sourceCenter=h,n.targetCenter=t.center,h=n.targetCenter),t.zoom!==undefined?(n.sourceResolution=f,n.targetResolution=this.constrainResolution(this.maxResolution_,t.zoom-this.minZoom_,0),f=n.targetResolution):t.resolution&&(n.sourceResolution=f,n.targetResolution=t.resolution,f=n.targetResolution),t.rotation!==undefined&&(n.sourceRotation=e,l=ol.math.modulo(t.rotation-e+Math.PI,2*Math.PI)-Math.PI,n.targetRotation=e+l,e=n.targetRotation),n.callback=u,ol.View.isNoopAnimation(n)?n.complete=!0:s+=n.duration,c.push(n);this.animations_.push(c);this.setHint(ol.ViewHint.ANIMATING,1);this.updateAnimations_()},ol.View.prototype.getAnimating=function(){return this.hints_[ol.ViewHint.ANIMATING]>0},ol.View.prototype.getInteracting=function(){return this.hints_[ol.ViewHint.INTERACTING]>0},ol.View.prototype.cancelAnimations=function(){var n,i,t;for(this.setHint(ol.ViewHint.ANIMATING,-this.hints_[ol.ViewHint.ANIMATING]),n=0,i=this.animations_.length;n<i;++n)t=this.animations_[n],t[0].callback&&t[0].callback(!1);this.animations_.length=0},ol.View.prototype.updateAnimations_=function(){var l,e,i,r,o,u,a,n,v,f,t,s,h,c;if(this.updateAnimationKey_!==undefined&&(cancelAnimationFrame(this.updateAnimationKey_),this.updateAnimationKey_=undefined),this.getAnimating()){for(l=Date.now(),e=!1,i=this.animations_.length-1;i>=0;--i){for(r=this.animations_[i],o=!0,u=0,a=r.length;u<a;++u)if(n=r[u],!n.complete){if(v=l-n.start,f=n.duration>0?v/n.duration:1,f>=1?(n.complete=!0,f=1):o=!1,t=n.easing(f),n.sourceCenter){var y=n.sourceCenter[0],p=n.sourceCenter[1],w=n.targetCenter[0],b=n.targetCenter[1],k=y+t*(w-y),d=p+t*(b-p);this.set(ol.ViewProperty.CENTER,[k,d])}if(n.sourceResolution&&n.targetResolution&&(s=t===1?n.targetResolution:n.sourceResolution+t*(n.targetResolution-n.sourceResolution),n.anchor&&this.set(ol.ViewProperty.CENTER,this.calculateCenterZoom(s,n.anchor)),this.set(ol.ViewProperty.RESOLUTION,s)),n.sourceRotation!==undefined&&n.targetRotation!==undefined&&(h=t===1?ol.math.modulo(n.targetRotation+Math.PI,2*Math.PI)-Math.PI:n.sourceRotation+t*(n.targetRotation-n.sourceRotation),n.anchor&&this.set(ol.ViewProperty.CENTER,this.calculateCenterRotate(h,n.anchor)),this.set(ol.ViewProperty.ROTATION,h)),e=!0,!n.complete)break}o&&(this.animations_[i]=null,this.setHint(ol.ViewHint.ANIMATING,-1),c=r[0].callback,c&&c(!0))}this.animations_=this.animations_.filter(Boolean);e&&this.updateAnimationKey_===undefined&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},ol.View.prototype.calculateCenterRotate=function(n,t){var i,r=this.getCenter();return r!==undefined&&(i=[r[0]-t[0],r[1]-t[1]],ol.coordinate.rotate(i,n-this.getRotation()),ol.coordinate.add(i,t)),i},ol.View.prototype.calculateCenterZoom=function(n,t){var u,i=this.getCenter(),r=this.getResolution(),f,e;return i!==undefined&&r!==undefined&&(f=t[0]-n*(t[0]-i[0])/r,e=t[1]-n*(t[1]-i[1])/r,u=[f,e]),u},ol.View.prototype.getSizeFromViewport_=function(){var n=[100,100],r='.ol-viewport[data-view="'+ol.getUid(this)+'"]',i=document.querySelector(r),t;return i&&(t=getComputedStyle(i),n[0]=parseInt(t.width,10),n[1]=parseInt(t.height,10)),n},ol.View.prototype.constrainCenter=function(n){return this.constraints_.center(n)},ol.View.prototype.constrainResolution=function(n,t,i){var r=t||0,u=i||0;return this.constraints_.resolution(n,r,u)},ol.View.prototype.constrainRotation=function(n,t){var i=t||0;return this.constraints_.rotation(n,i)},ol.View.prototype.getCenter=function(){return this.get(ol.ViewProperty.CENTER)},ol.View.prototype.getConstraints=function(){return this.constraints_},ol.View.prototype.getHints=function(n){return n!==undefined?(n[0]=this.hints_[0],n[1]=this.hints_[1],n):this.hints_.slice()},ol.View.prototype.calculateExtent=function(n){var u=n||this.getSizeFromViewport_(),r=this.getCenter(),t,i;return ol.asserts.assert(r,1),t=this.getResolution(),ol.asserts.assert(t!==undefined,2),i=this.getRotation(),ol.asserts.assert(i!==undefined,3),ol.extent.getForViewAndSize(r,t,i,u)},ol.View.prototype.getMaxResolution=function(){return this.maxResolution_},ol.View.prototype.getMinResolution=function(){return this.minResolution_},ol.View.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},ol.View.prototype.setMaxZoom=function(n){this.applyOptions_(this.getUpdatedOptions_({maxZoom:n}))},ol.View.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},ol.View.prototype.setMinZoom=function(n){this.applyOptions_(this.getUpdatedOptions_({minZoom:n}))},ol.View.prototype.getProjection=function(){return this.projection_},ol.View.prototype.getResolution=function(){return this.get(ol.ViewProperty.RESOLUTION)},ol.View.prototype.getResolutions=function(){return this.resolutions_},ol.View.prototype.getResolutionForExtent=function(n,t){var i=t||this.getSizeFromViewport_(),r=ol.extent.getWidth(n)/i[0],u=ol.extent.getHeight(n)/i[1];return Math.max(r,u)},ol.View.prototype.getResolutionForValueFunction=function(n){var t=n||2,i=this.maxResolution_,r=this.minResolution_,u=Math.log(i/r)/Math.log(t);return function(n){return i/Math.pow(t,n*u)}},ol.View.prototype.getRotation=function(){return this.get(ol.ViewProperty.ROTATION)},ol.View.prototype.getValueForResolutionFunction=function(n){var t=n||2,i=this.maxResolution_,r=this.minResolution_,u=Math.log(i/r)/Math.log(t);return function(n){return Math.log(i/n)/Math.log(t)/u}},ol.View.prototype.getState=function(){var t=this.getCenter(),n=this.getProjection(),i=this.getResolution(),r=this.getRotation();return{center:t.slice(),projection:n!==undefined?n:null,resolution:i,rotation:r,zoom:this.getZoom()}},ol.View.prototype.getZoom=function(){var n,t=this.getResolution();return t!==undefined&&(n=this.getZoomForResolution(t)),n},ol.View.prototype.getZoomForResolution=function(n){var u=this.minZoom_||0,i,r,t;return this.resolutions_?(t=ol.array.linearFindNearest(this.resolutions_,n,1),u=t,i=this.resolutions_[t],r=t==this.resolutions_.length-1?2:i/this.resolutions_[t+1]):(i=this.maxResolution_,r=this.zoomFactor_),u+Math.log(i/n)/Math.log(r)},ol.View.prototype.getResolutionForZoom=function(n){return this.constrainResolution(this.maxResolution_,n-this.minZoom_,0)},ol.View.prototype.fit=function(n,t){var i=t||{},c=i.size,e,f,tt,k,d,r,h,w,b;c||(c=this.getSizeFromViewport_());n instanceof ol.geom.SimpleGeometry?n.getType()===ol.geom.GeometryType.CIRCLE?(n=n.getExtent(),e=ol.geom.Polygon.fromExtent(n),e.rotate(this.getRotation(),ol.extent.getCenter(n))):e=n:(ol.asserts.assert(Array.isArray(n),24),ol.asserts.assert(!ol.extent.isEmpty(n),25),e=ol.geom.Polygon.fromExtent(n));var u=i.padding!==undefined?i.padding:[0,0,0,0],ut=i.constrainResolution!==undefined?i.constrainResolution:!0,ft=i.nearest!==undefined?i.nearest:!1,g=i.minResolution!==undefined?i.minResolution:i.maxZoom!==undefined?this.constrainResolution(this.maxResolution_,i.maxZoom-this.minZoom_,0):0;var s=e.getFlatCoordinates(),nt=this.getRotation(),l=Math.cos(-nt),o=Math.sin(-nt),a=+Infinity,v=+Infinity,y=-Infinity,p=-Infinity,et=e.getStride();for(f=0,tt=s.length;f<tt;f+=et)k=s[f]*l-s[f+1]*o,d=s[f]*o+s[f+1]*l,a=Math.min(a,k),v=Math.min(v,d),y=Math.max(y,k),p=Math.max(p,d);r=this.getResolutionForExtent([a,v,y,p],[c[0]-u[1]-u[3],c[1]-u[0]-u[2]]);r=isNaN(r)?g:Math.max(r,g);ut&&(h=this.constrainResolution(r,0,0),!ft&&h<r&&(h=this.constrainResolution(h,-1,0)),r=h);o=-o;w=(a+y)/2;b=(v+p)/2;w+=(u[1]-u[3])/2*r;b+=(u[0]-u[2])/2*r;var ot=w*l-b*o,st=b*l+w*o,it=[ot,st],rt=i.callback?i.callback:ol.nullFunction;i.duration!==undefined?this.animate({resolution:r,center:it,duration:i.duration,easing:i.easing},rt):(this.setResolution(r),this.setCenter(it),setTimeout(rt.bind(undefined,!0),0))},ol.View.prototype.centerOn=function(n,t,i){var o=this.getRotation(),u=Math.cos(-o),r=Math.sin(-o),f=n[0]*u-n[1]*r,e=n[1]*u+n[0]*r,s=this.getResolution(),h,c;f+=(t[0]/2-i[0])*s;e+=(i[1]-t[1]/2)*s;r=-r;h=f*u-e*r;c=e*u+f*r;this.setCenter([h,c])},ol.View.prototype.isDef=function(){return!!this.getCenter()&&this.getResolution()!==undefined},ol.View.prototype.rotate=function(n,t){if(t!==undefined){var i=this.calculateCenterRotate(n,t);this.setCenter(i)}this.setRotation(n)},ol.View.prototype.setCenter=function(n){this.set(ol.ViewProperty.CENTER,n);this.getAnimating()&&this.cancelAnimations()},ol.View.prototype.setHint=function(n,t){return this.hints_[n]+=t,this.changed(),this.hints_[n]},ol.View.prototype.setResolution=function(n){this.set(ol.ViewProperty.RESOLUTION,n);this.getAnimating()&&this.cancelAnimations()},ol.View.prototype.setRotation=function(n){this.set(ol.ViewProperty.ROTATION,n);this.getAnimating()&&this.cancelAnimations()},ol.View.prototype.setZoom=function(n){this.setResolution(this.getResolutionForZoom(n))},ol.View.createCenterConstraint_=function(n){return n.extent!==undefined?ol.CenterConstraint.createExtent(n.extent):ol.CenterConstraint.none},ol.View.createResolutionConstraint_=function(n){var o,t,i,l=28,s=2,r=n.minZoom!==undefined?n.minZoom:ol.DEFAULT_MIN_ZOOM,u=n.maxZoom!==undefined?n.maxZoom:l,f=n.zoomFactor!==undefined?n.zoomFactor:s,e;if(n.resolutions!==undefined)e=n.resolutions,t=e[r],i=e[u]!==undefined?e[u]:e[e.length-1],o=ol.ResolutionConstraint.createSnapToResolutions(e);else{var a=ol.proj.createProjection(n.projection,"EPSG:3857"),h=a.getExtent(),v=h?Math.max(ol.extent.getWidth(h),ol.extent.getHeight(h)):360*ol.proj.METERS_PER_UNIT[ol.proj.Units.DEGREES]/a.getMetersPerUnit(),c=v/ol.DEFAULT_TILE_SIZE/Math.pow(s,ol.DEFAULT_MIN_ZOOM),y=c/Math.pow(s,l-ol.DEFAULT_MIN_ZOOM);t=n.maxResolution;t!==undefined?r=0:t=c/Math.pow(f,r);i=n.minResolution;i===undefined&&(i=n.maxZoom!==undefined?n.maxResolution!==undefined?t/Math.pow(f,u):c/Math.pow(f,u):y);u=r+Math.floor(Math.log(t/i)/Math.log(f));i=t/Math.pow(f,u-r);o=ol.ResolutionConstraint.createSnapToPower(f,t,u-r)}return{constraint:o,maxResolution:t,minResolution:i,minZoom:r,zoomFactor:f}},ol.View.createRotationConstraint_=function(n){var i=n.enableRotation!==undefined?n.enableRotation:!0,t;return i?(t=n.constrainRotation,t===undefined||t===!0?ol.RotationConstraint.createSnapToZero():t===!1?ol.RotationConstraint.none:typeof t=="number"?ol.RotationConstraint.createSnapToN(t):ol.RotationConstraint.none):ol.RotationConstraint.disable},ol.View.isNoopAnimation=function(n){return n.sourceCenter&&n.targetCenter&&!ol.coordinate.equals(n.sourceCenter,n.targetCenter)?!1:n.sourceResolution!==n.targetResolution?!1:n.sourceRotation!==n.targetRotation?!1:!0},n.provide("ol.dom"),ol.dom.createCanvasContext2D=function(n,t){var i=document.createElement("CANVAS");return n&&(i.width=n),t&&(i.height=t),i.getContext("2d")},ol.dom.outerWidth=function(n){var i=n.offsetWidth,t=getComputedStyle(n);return i+(parseInt(t.marginLeft,10)+parseInt(t.marginRight,10))},ol.dom.outerHeight=function(n){var i=n.offsetHeight,t=getComputedStyle(n);return i+(parseInt(t.marginTop,10)+parseInt(t.marginBottom,10))},ol.dom.replaceNode=function(n,t){var i=t.parentNode;i&&i.replaceChild(n,t)},ol.dom.removeNode=function(n){return n&&n.parentNode?n.parentNode.removeChild(n):null},ol.dom.removeChildren=function(n){while(n.lastChild)n.removeChild(n.lastChild)},n.provide("ol.layer.Property"),ol.layer.Property={OPACITY:"opacity",VISIBLE:"visible",EXTENT:"extent",Z_INDEX:"zIndex",MAX_RESOLUTION:"maxResolution",MIN_RESOLUTION:"minResolution",SOURCE:"source"},n.provide("ol.layer.Base"),n.require("ol"),n.require("ol.Object"),n.require("ol.layer.Property"),n.require("ol.math"),n.require("ol.obj"),ol.layer.Base=function(n){ol.Object.call(this);var t=ol.obj.assign({},n);t[ol.layer.Property.OPACITY]=n.opacity!==undefined?n.opacity:1;t[ol.layer.Property.VISIBLE]=n.visible!==undefined?n.visible:!0;t[ol.layer.Property.Z_INDEX]=n.zIndex!==undefined?n.zIndex:0;t[ol.layer.Property.MAX_RESOLUTION]=n.maxResolution!==undefined?n.maxResolution:Infinity;t[ol.layer.Property.MIN_RESOLUTION]=n.minResolution!==undefined?n.minResolution:0;this.setProperties(t);this.state_={layer:this,managed:!0};this.type},ol.inherits(ol.layer.Base,ol.Object),ol.layer.Base.prototype.getType=function(){return this.type},ol.layer.Base.prototype.getLayerState=function(){return this.state_.opacity=ol.math.clamp(this.getOpacity(),0,1),this.state_.sourceState=this.getSourceState(),this.state_.visible=this.getVisible(),this.state_.extent=this.getExtent(),this.state_.zIndex=this.getZIndex(),this.state_.maxResolution=this.getMaxResolution(),this.state_.minResolution=Math.max(this.getMinResolution(),0),this.state_},ol.layer.Base.prototype.getLayersArray=function(){},ol.layer.Base.prototype.getLayerStatesArray=function(){},ol.layer.Base.prototype.getExtent=function(){return this.get(ol.layer.Property.EXTENT)},ol.layer.Base.prototype.getMaxResolution=function(){return this.get(ol.layer.Property.MAX_RESOLUTION)},ol.layer.Base.prototype.getMinResolution=function(){return this.get(ol.layer.Property.MIN_RESOLUTION)},ol.layer.Base.prototype.getOpacity=function(){return this.get(ol.layer.Property.OPACITY)},ol.layer.Base.prototype.getSourceState=function(){},ol.layer.Base.prototype.getVisible=function(){return this.get(ol.layer.Property.VISIBLE)},ol.layer.Base.prototype.getZIndex=function(){return this.get(ol.layer.Property.Z_INDEX)},ol.layer.Base.prototype.setExtent=function(n){this.set(ol.layer.Property.EXTENT,n)},ol.layer.Base.prototype.setMaxResolution=function(n){this.set(ol.layer.Property.MAX_RESOLUTION,n)},ol.layer.Base.prototype.setMinResolution=function(n){this.set(ol.layer.Property.MIN_RESOLUTION,n)},ol.layer.Base.prototype.setOpacity=function(n){this.set(ol.layer.Property.OPACITY,n)},ol.layer.Base.prototype.setVisible=function(n){this.set(ol.layer.Property.VISIBLE,n)},ol.layer.Base.prototype.setZIndex=function(n){this.set(ol.layer.Property.Z_INDEX,n)},n.provide("ol.source.State"),ol.source.State={UNDEFINED:"undefined",LOADING:"loading",READY:"ready",ERROR:"error"},n.provide("ol.layer.Group"),n.require("ol"),n.require("ol.Collection"),n.require("ol.CollectionEventType"),n.require("ol.Object"),n.require("ol.ObjectEventType"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.layer.Base"),n.require("ol.obj"),n.require("ol.source.State"),ol.layer.Group=function(n){var i=n||{},r=ol.obj.assign({},i),t;delete r.layers;t=i.layers;ol.layer.Base.call(this,r);this.layersListenerKeys_=[];this.listenerKeys_={};ol.events.listen(this,ol.Object.getChangeEventType(ol.layer.Group.Property_.LAYERS),this.handleLayersChanged_,this);t?Array.isArray(t)?t=new ol.Collection(t.slice(),{unique:!0}):(ol.asserts.assert(t instanceof ol.Collection,43),t=t):t=new ol.Collection(undefined,{unique:!0});this.setLayers(t)},ol.inherits(ol.layer.Group,ol.layer.Base),ol.layer.Group.prototype.handleLayerChange_=function(){this.changed()},ol.layer.Group.prototype.handleLayersChanged_=function(){var n,u,r,t,f,i;this.layersListenerKeys_.forEach(ol.events.unlistenByKey);this.layersListenerKeys_.length=0;n=this.getLayers();this.layersListenerKeys_.push(ol.events.listen(n,ol.CollectionEventType.ADD,this.handleLayersAdd_,this),ol.events.listen(n,ol.CollectionEventType.REMOVE,this.handleLayersRemove_,this));for(u in this.listenerKeys_)this.listenerKeys_[u].forEach(ol.events.unlistenByKey);for(ol.obj.clear(this.listenerKeys_),r=n.getArray(),t=0,f=r.length;t<f;t++)i=r[t],this.listenerKeys_[ol.getUid(i).toString()]=[ol.events.listen(i,ol.ObjectEventType.PROPERTYCHANGE,this.handleLayerChange_,this),ol.events.listen(i,ol.events.EventType.CHANGE,this.handleLayerChange_,this)];this.changed()},ol.layer.Group.prototype.handleLayersAdd_=function(n){var t=n.element,i=ol.getUid(t).toString();this.listenerKeys_[i]=[ol.events.listen(t,ol.ObjectEventType.PROPERTYCHANGE,this.handleLayerChange_,this),ol.events.listen(t,ol.events.EventType.CHANGE,this.handleLayerChange_,this)];this.changed()},ol.layer.Group.prototype.handleLayersRemove_=function(n){var i=n.element,t=ol.getUid(i).toString();this.listenerKeys_[t].forEach(ol.events.unlistenByKey);delete this.listenerKeys_[t];this.changed()},ol.layer.Group.prototype.getLayers=function(){return this.get(ol.layer.Group.Property_.LAYERS)},ol.layer.Group.prototype.setLayers=function(n){this.set(ol.layer.Group.Property_.LAYERS,n)},ol.layer.Group.prototype.getLayersArray=function(n){var t=n!==undefined?n:[];return this.getLayers().forEach(function(n){n.getLayersArray(t)}),t},ol.layer.Group.prototype.getLayerStatesArray=function(n){var r=n!==undefined?n:[],e=r.length,i,u,f,t;for(this.getLayers().forEach(function(n){n.getLayerStatesArray(r)}),i=this.getLayerState(),u=e,f=r.length;u<f;u++)t=r[u],t.opacity*=i.opacity,t.visible=t.visible&&i.visible,t.maxResolution=Math.min(t.maxResolution,i.maxResolution),t.minResolution=Math.max(t.minResolution,i.minResolution),i.extent!==undefined&&(t.extent=t.extent!==undefined?ol.extent.getIntersection(t.extent,i.extent):i.extent);return r},ol.layer.Group.prototype.getSourceState=function(){return ol.source.State.READY},ol.layer.Group.Property_={LAYERS:"layers"},n.provide("ol.PluginType"),ol.PluginType={MAP_RENDERER:"MAP_RENDERER",LAYER_RENDERER:"LAYER_RENDERER"},n.provide("ol.plugins"),n.require("ol.PluginType"),ol.plugins.mapRendererPlugins_=[],ol.plugins.getMapRendererPlugins=function(){return ol.plugins.mapRendererPlugins_},ol.plugins.layerRendererPlugins_=[],ol.plugins.getLayerRendererPlugins=function(){return ol.plugins.layerRendererPlugins_},ol.plugins.register=function(n,t){var i;switch(n){case ol.PluginType.MAP_RENDERER:i=ol.plugins.mapRendererPlugins_;i.push(t);break;case ol.PluginType.LAYER_RENDERER:i=ol.plugins.layerRendererPlugins_;i.push(t);break;default:throw new Error("Unsupported plugin type: "+n);}},ol.plugins.registerMultiple=function(n,t){for(var i=0,r=t.length;i<r;++i)ol.plugins.register(n,t[i])},n.provide("ol.renderer.Type"),ol.renderer.Type={CANVAS:"canvas",WEBGL:"webgl"},n.provide("ol.PluggableMap"),n.require("ol"),n.require("ol.Collection"),n.require("ol.CollectionEventType"),n.require("ol.MapBrowserEvent"),n.require("ol.MapBrowserEventHandler"),n.require("ol.MapBrowserEventType"),n.require("ol.MapEvent"),n.require("ol.MapEventType"),n.require("ol.MapProperty"),n.require("ol.Object"),n.require("ol.ObjectEventType"),n.require("ol.TileQueue"),n.require("ol.View"),n.require("ol.ViewHint"),n.require("ol.asserts"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.has"),n.require("ol.layer.Group"),n.require("ol.obj"),n.require("ol.plugins"),n.require("ol.renderer.Type"),n.require("ol.size"),n.require("ol.structs.PriorityQueue"),n.require("ol.transform"),ol.PluggableMap=function(n){var t,r,i,u,f;for(ol.Object.call(this),t=ol.PluggableMap.createOptionsInternal(n),this.loadTilesWhileAnimating_=n.loadTilesWhileAnimating!==undefined?n.loadTilesWhileAnimating:!1,this.loadTilesWhileInteracting_=n.loadTilesWhileInteracting!==undefined?n.loadTilesWhileInteracting:!1,this.pixelRatio_=n.pixelRatio!==undefined?n.pixelRatio:ol.has.DEVICE_PIXEL_RATIO,this.logos_=t.logos,this.animationDelayKey_,this.animationDelay_=function(){this.animationDelayKey_=undefined;this.renderFrame_.call(this,Date.now())}.bind(this),this.coordinateToPixelTransform_=ol.transform.create(),this.pixelToCoordinateTransform_=ol.transform.create(),this.frameIndex_=0,this.frameState_=null,this.previousExtent_=null,this.viewPropertyListenerKey_=null,this.viewChangeListenerKey_=null,this.layerGroupPropertyListenerKeys_=null,this.viewport_=document.createElement("DIV"),this.viewport_.className="ol-viewport"+(ol.has.TOUCH?" ol-touch":""),this.viewport_.style.position="relative",this.viewport_.style.overflow="hidden",this.viewport_.style.width="100%",this.viewport_.style.height="100%",this.viewport_.style.msTouchAction="none",this.viewport_.style.touchAction="none",this.overlayContainer_=document.createElement("DIV"),this.overlayContainer_.className="ol-overlaycontainer",this.viewport_.appendChild(this.overlayContainer_),this.overlayContainerStopEvent_=document.createElement("DIV"),this.overlayContainerStopEvent_.className="ol-overlaycontainer-stopevent",r=[ol.events.EventType.CLICK,ol.events.EventType.DBLCLICK,ol.events.EventType.MOUSEDOWN,ol.events.EventType.TOUCHSTART,ol.events.EventType.MSPOINTERDOWN,ol.MapBrowserEventType.POINTERDOWN,ol.events.EventType.MOUSEWHEEL,ol.events.EventType.WHEEL],i=0,u=r.length;i<u;++i)ol.events.listen(this.overlayContainerStopEvent_,r[i],ol.events.Event.stopPropagation);this.viewport_.appendChild(this.overlayContainerStopEvent_);this.mapBrowserEventHandler_=new ol.MapBrowserEventHandler(this,n.moveTolerance);for(f in ol.MapBrowserEventType)ol.events.listen(this.mapBrowserEventHandler_,ol.MapBrowserEventType[f],this.handleMapBrowserEvent,this);this.keyboardEventTarget_=t.keyboardEventTarget;this.keyHandlerKeys_=null;ol.events.listen(this.viewport_,ol.events.EventType.WHEEL,this.handleBrowserEvent,this);ol.events.listen(this.viewport_,ol.events.EventType.MOUSEWHEEL,this.handleBrowserEvent,this);this.controls=t.controls||new ol.Collection;this.interactions=t.interactions||new ol.Collection;this.overlays_=t.overlays;this.overlayIdIndex_={};this.renderer_=t.mapRendererPlugin.create(this.viewport_,this);this.handleResize_;this.focus_=null;this.postRenderFunctions_=[];this.tileQueue_=new ol.TileQueue(this.getTilePriority.bind(this),this.handleTileChange_.bind(this));this.skippedFeatureUids_={};ol.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.LAYERGROUP),this.handleLayerGroupChanged_,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.VIEW),this.handleViewChanged_,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.SIZE),this.handleSizeChanged_,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.TARGET),this.handleTargetChanged_,this);this.setProperties(t.values);this.controls.forEach(function(n){n.setMap(this)},this);ol.events.listen(this.controls,ol.CollectionEventType.ADD,function(n){n.element.setMap(this)},this);ol.events.listen(this.controls,ol.CollectionEventType.REMOVE,function(n){n.element.setMap(null)},this);this.interactions.forEach(function(n){n.setMap(this)},this);ol.events.listen(this.interactions,ol.CollectionEventType.ADD,function(n){n.element.setMap(this)},this);ol.events.listen(this.interactions,ol.CollectionEventType.REMOVE,function(n){n.element.setMap(null)},this);this.overlays_.forEach(this.addOverlayInternal_,this);ol.events.listen(this.overlays_,ol.CollectionEventType.ADD,function(n){this.addOverlayInternal_(n.element)},this);ol.events.listen(this.overlays_,ol.CollectionEventType.REMOVE,function(n){var i=n.element,t=i.getId();t!==undefined&&delete this.overlayIdIndex_[t.toString()];n.element.setMap(null)},this)},ol.inherits(ol.PluggableMap,ol.Object),ol.PluggableMap.prototype.addControl=function(n){this.getControls().push(n)},ol.PluggableMap.prototype.addInteraction=function(n){this.getInteractions().push(n)},ol.PluggableMap.prototype.addLayer=function(n){var t=this.getLayerGroup().getLayers();t.push(n)},ol.PluggableMap.prototype.addOverlay=function(n){this.getOverlays().push(n)},ol.PluggableMap.prototype.addOverlayInternal_=function(n){var t=n.getId();t!==undefined&&(this.overlayIdIndex_[t.toString()]=n);n.setMap(this)},ol.PluggableMap.prototype.disposeInternal=function(){this.mapBrowserEventHandler_.dispose();ol.events.unlisten(this.viewport_,ol.events.EventType.WHEEL,this.handleBrowserEvent,this);ol.events.unlisten(this.viewport_,ol.events.EventType.MOUSEWHEEL,this.handleBrowserEvent,this);this.handleResize_!==undefined&&(window.removeEventListener(ol.events.EventType.RESIZE,this.handleResize_,!1),this.handleResize_=undefined);this.animationDelayKey_&&(cancelAnimationFrame(this.animationDelayKey_),this.animationDelayKey_=undefined);this.setTarget(null);ol.Object.prototype.disposeInternal.call(this)},ol.PluggableMap.prototype.forEachFeatureAtPixel=function(n,t,i){var r,u,f;if(this.frameState_)return r=this.getCoordinateFromPixel(n),i=i!==undefined?i:{},u=i.hitTolerance!==undefined?i.hitTolerance*this.frameState_.pixelRatio:0,f=i.layerFilter!==undefined?i.layerFilter:ol.functions.TRUE,this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,u,t,null,f,null)},ol.PluggableMap.prototype.getFeaturesAtPixel=function(n,t){var i=null;return this.forEachFeatureAtPixel(n,function(n){i||(i=[]);i.push(n)},t),i},ol.PluggableMap.prototype.forEachLayerAtPixel=function(n,t,i,r,u){if(this.frameState_){var f=i!==undefined?i:null,e=r!==undefined?r:ol.functions.TRUE,o=u!==undefined?u:null;return this.renderer_.forEachLayerAtPixel(n,this.frameState_,t,f,e,o)}},ol.PluggableMap.prototype.hasFeatureAtPixel=function(n,t){var i,r,u;return this.frameState_?(i=this.getCoordinateFromPixel(n),t=t!==undefined?t:{},r=t.layerFilter!==undefined?t.layerFilter:ol.functions.TRUE,u=t.hitTolerance!==undefined?t.hitTolerance*this.frameState_.pixelRatio:0,this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,u,r,null)):!1},ol.PluggableMap.prototype.getEventCoordinate=function(n){return this.getCoordinateFromPixel(this.getEventPixel(n))},ol.PluggableMap.prototype.getEventPixel=function(n){var t=this.viewport_.getBoundingClientRect(),i=n.changedTouches?n.changedTouches[0]:n;return[i.clientX-t.left,i.clientY-t.top]},ol.PluggableMap.prototype.getTarget=function(){return this.get(ol.MapProperty.TARGET)},ol.PluggableMap.prototype.getTargetElement=function(){var n=this.getTarget();return n!==undefined?typeof n=="string"?document.getElementById(n):n:null},ol.PluggableMap.prototype.getCoordinateFromPixel=function(n){var t=this.frameState_;return t?ol.transform.apply(t.pixelToCoordinateTransform,n.slice()):null},ol.PluggableMap.prototype.getControls=function(){return this.controls},ol.PluggableMap.prototype.getOverlays=function(){return this.overlays_},ol.PluggableMap.prototype.getOverlayById=function(n){var t=this.overlayIdIndex_[n.toString()];return t!==undefined?t:null},ol.PluggableMap.prototype.getInteractions=function(){return this.interactions},ol.PluggableMap.prototype.getLayerGroup=function(){return this.get(ol.MapProperty.LAYERGROUP)},ol.PluggableMap.prototype.getLayers=function(){return this.getLayerGroup().getLayers()},ol.PluggableMap.prototype.getPixelFromCoordinate=function(n){var t=this.frameState_;return t?ol.transform.apply(t.coordinateToPixelTransform,n.slice(0,2)):null},ol.PluggableMap.prototype.getRenderer=function(){return this.renderer_},ol.PluggableMap.prototype.getSize=function(){return this.get(ol.MapProperty.SIZE)},ol.PluggableMap.prototype.getView=function(){return this.get(ol.MapProperty.VIEW)},ol.PluggableMap.prototype.getViewport=function(){return this.viewport_},ol.PluggableMap.prototype.getOverlayContainer=function(){return this.overlayContainer_},ol.PluggableMap.prototype.getOverlayContainerStopEvent=function(){return this.overlayContainerStopEvent_},ol.PluggableMap.prototype.getTilePriority=function(n,t,i,r){var u=this.frameState_,f,e;return!u||!(t in u.wantedTiles)?ol.structs.PriorityQueue.DROP:u.wantedTiles[t][n.getKey()]?(f=i[0]-u.focus[0],e=i[1]-u.focus[1],65536*Math.log(r)+Math.sqrt(f*f+e*e)/r):ol.structs.PriorityQueue.DROP},ol.PluggableMap.prototype.handleBrowserEvent=function(n,t){var i=t||n.type,r=new ol.MapBrowserEvent(i,this,n);this.handleMapBrowserEvent(r)},ol.PluggableMap.prototype.handleMapBrowserEvent=function(n){var i,t,r,u;if(this.frameState_&&(this.focus_=n.coordinate,n.frameState=this.frameState_,i=this.getInteractions().getArray(),this.dispatchEvent(n)!==!1))for(t=i.length-1;t>=0;t--)if((r=i[t],r.getActive())&&(u=r.handleEvent(n),!u))break},ol.PluggableMap.prototype.handlePostRender=function(){var f=this.frameState_,t=this.tileQueue_,n,i,e,r,u,o;for(t.isEmpty()||(n=16,i=n,f&&(e=f.viewHints,e[ol.ViewHint.ANIMATING]&&(n=this.loadTilesWhileAnimating_?8:0,i=2),e[ol.ViewHint.INTERACTING]&&(n=this.loadTilesWhileInteracting_?8:0,i=2)),t.getTilesLoading()<n&&(t.reprioritize(),t.loadMoreTiles(n,i))),r=this.postRenderFunctions_,u=0,o=r.length;u<o;++u)r[u](this,f);r.length=0},ol.PluggableMap.prototype.handleSizeChanged_=function(){this.render()},ol.PluggableMap.prototype.handleTargetChanged_=function(){var n,t,r,i;if(this.getTarget()&&(n=this.getTargetElement()),this.keyHandlerKeys_){for(t=0,r=this.keyHandlerKeys_.length;t<r;++t)ol.events.unlistenByKey(this.keyHandlerKeys_[t]);this.keyHandlerKeys_=null}n?(n.appendChild(this.viewport_),i=this.keyboardEventTarget_?this.keyboardEventTarget_:n,this.keyHandlerKeys_=[ol.events.listen(i,ol.events.EventType.KEYDOWN,this.handleBrowserEvent,this),ol.events.listen(i,ol.events.EventType.KEYPRESS,this.handleBrowserEvent,this)],this.handleResize_||(this.handleResize_=this.updateSize.bind(this),window.addEventListener(ol.events.EventType.RESIZE,this.handleResize_,!1))):(this.renderer_.removeLayerRenderers(),ol.dom.removeNode(this.viewport_),this.handleResize_!==undefined&&(window.removeEventListener(ol.events.EventType.RESIZE,this.handleResize_,!1),this.handleResize_=undefined));this.updateSize()},ol.PluggableMap.prototype.handleTileChange_=function(){this.render()},ol.PluggableMap.prototype.handleViewPropertyChanged_=function(){this.render()},ol.PluggableMap.prototype.handleViewChanged_=function(){this.viewPropertyListenerKey_&&(ol.events.unlistenByKey(this.viewPropertyListenerKey_),this.viewPropertyListenerKey_=null);this.viewChangeListenerKey_&&(ol.events.unlistenByKey(this.viewChangeListenerKey_),this.viewChangeListenerKey_=null);var n=this.getView();n&&(this.viewport_.setAttribute("data-view",ol.getUid(n)),this.viewPropertyListenerKey_=ol.events.listen(n,ol.ObjectEventType.PROPERTYCHANGE,this.handleViewPropertyChanged_,this),this.viewChangeListenerKey_=ol.events.listen(n,ol.events.EventType.CHANGE,this.handleViewPropertyChanged_,this));this.render()},ol.PluggableMap.prototype.handleLayerGroupChanged_=function(){this.layerGroupPropertyListenerKeys_&&(this.layerGroupPropertyListenerKeys_.forEach(ol.events.unlistenByKey),this.layerGroupPropertyListenerKeys_=null);var n=this.getLayerGroup();n&&(this.layerGroupPropertyListenerKeys_=[ol.events.listen(n,ol.ObjectEventType.PROPERTYCHANGE,this.render,this),ol.events.listen(n,ol.events.EventType.CHANGE,this.render,this)]);this.render()},ol.PluggableMap.prototype.isRendered=function(){return!!this.frameState_},ol.PluggableMap.prototype.renderSync=function(){this.animationDelayKey_&&cancelAnimationFrame(this.animationDelayKey_);this.animationDelay_()},ol.PluggableMap.prototype.render=function(){this.animationDelayKey_===undefined&&(this.animationDelayKey_=requestAnimationFrame(this.animationDelay_))},ol.PluggableMap.prototype.removeControl=function(n){return this.getControls().remove(n)},ol.PluggableMap.prototype.removeInteraction=function(n){return this.getInteractions().remove(n)},ol.PluggableMap.prototype.removeLayer=function(n){var t=this.getLayerGroup().getLayers();return t.remove(n)},ol.PluggableMap.prototype.removeOverlay=function(n){return this.getOverlays().remove(n)},ol.PluggableMap.prototype.renderFrame_=function(n){var u,h,i,s=this.getSize(),e=this.getView(),c=ol.extent.createEmpty(),l=this.frameState_,t=null,r,f,v,y;if(s!==undefined&&ol.size.hasArea(s)&&e&&e.isDef()){var p=e.getHints(this.frameState_?this.frameState_.viewHints:undefined),o=this.getLayerGroup().getLayerStatesArray(),a={};for(u=0,h=o.length;u<h;++u)a[ol.getUid(o[u].layer)]=o[u];i=e.getState();r=i.center;f=i.resolution/this.pixelRatio_;r[0]=Math.round(r[0]/f)*f;r[1]=Math.round(r[1]/f)*f;t={animate:!1,coordinateToPixelTransform:this.coordinateToPixelTransform_,extent:c,focus:this.focus_?this.focus_:r,index:this.frameIndex_++,layerStates:a,layerStatesArray:o,logos:ol.obj.assign({},this.logos_),pixelRatio:this.pixelRatio_,pixelToCoordinateTransform:this.pixelToCoordinateTransform_,postRenderFunctions:[],size:s,skippedFeatureUids:this.skippedFeatureUids_,tileQueue:this.tileQueue_,time:n,usedTiles:{},viewState:i,viewHints:p,wantedTiles:{}}}t&&(t.extent=ol.extent.getForViewAndSize(i.center,i.resolution,i.rotation,t.size,c));this.frameState_=t;this.renderer_.renderFrame(t);t&&(t.animate&&this.render(),Array.prototype.push.apply(this.postRenderFunctions_,t.postRenderFunctions),l&&(v=!this.previousExtent_||!ol.extent.isEmpty(this.previousExtent_)&&!ol.extent.equals(t.extent,this.previousExtent_),v&&(this.dispatchEvent(new ol.MapEvent(ol.MapEventType.MOVESTART,this,l)),this.previousExtent_=ol.extent.createOrUpdateEmpty(this.previousExtent_))),y=this.previousExtent_&&!t.viewHints[ol.ViewHint.ANIMATING]&&!t.viewHints[ol.ViewHint.INTERACTING]&&!ol.extent.equals(t.extent,this.previousExtent_),y&&(this.dispatchEvent(new ol.MapEvent(ol.MapEventType.MOVEEND,this,t)),ol.extent.clone(t.extent,this.previousExtent_)));this.dispatchEvent(new ol.MapEvent(ol.MapEventType.POSTRENDER,this,t));setTimeout(this.handlePostRender.bind(this),0)},ol.PluggableMap.prototype.setLayerGroup=function(n){this.set(ol.MapProperty.LAYERGROUP,n)},ol.PluggableMap.prototype.setSize=function(n){this.set(ol.MapProperty.SIZE,n)},ol.PluggableMap.prototype.setTarget=function(n){this.set(ol.MapProperty.TARGET,n)},ol.PluggableMap.prototype.setView=function(n){this.set(ol.MapProperty.VIEW,n)},ol.PluggableMap.prototype.skipFeature=function(n){var t=ol.getUid(n).toString();this.skippedFeatureUids_[t]=!0;this.render()},ol.PluggableMap.prototype.updateSize=function(){var t=this.getTargetElement(),n;t?(n=getComputedStyle(t),this.setSize([t.offsetWidth-parseFloat(n.borderLeftWidth)-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight)-parseFloat(n.borderRightWidth),t.offsetHeight-parseFloat(n.borderTopWidth)-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom)-parseFloat(n.borderBottomWidth)])):this.setSize(undefined)},ol.PluggableMap.prototype.unskipFeature=function(n){var t=ol.getUid(n).toString();delete this.skippedFeatureUids_[t];this.render()},ol.PluggableMap.DEFAULT_RENDERER_TYPES=[ol.renderer.Type.CANVAS,ol.renderer.Type.WEBGL],ol.PluggableMap.LOGO_URL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHGAAABxgEXwfpGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAhNQTFRF////AP//AICAgP//AFVVQECA////K1VVSbbbYL/fJ05idsTYJFtbbcjbJllmZszWWMTOIFhoHlNiZszTa9DdUcHNHlNlV8XRIVdiasrUHlZjIVZjaMnVH1RlIFRkH1RkH1ZlasvYasvXVsPQH1VkacnVa8vWIVZjIFRjVMPQa8rXIVVkXsXRsNveIFVkIFZlIVVj3eDeh6GmbMvXH1ZkIFRka8rWbMvXIFVkIFVjIFVkbMvWH1VjbMvWIFVlbcvWIFVla8vVIFVkbMvWbMvVH1VkbMvWIFVlbcvWIFVkbcvVbMvWjNPbIFVkU8LPwMzNIFVkbczWIFVkbsvWbMvXIFVkRnB8bcvW2+TkW8XRIFVkIlZlJVloJlpoKlxrLl9tMmJwOWd0Omh1RXF8TneCT3iDUHiDU8LPVMLPVcLPVcPQVsPPVsPQV8PQWMTQWsTQW8TQXMXSXsXRX4SNX8bSYMfTYcfTYsfTY8jUZcfSZsnUaIqTacrVasrVa8jTa8rWbI2VbMvWbcvWdJObdcvUdszUd8vVeJaee87Yfc3WgJyjhqGnitDYjaarldPZnrK2oNbborW5o9bbo9fbpLa6q9ndrL3ArtndscDDutzfu8fJwN7gwt7gxc/QyuHhy+HizeHi0NfX0+Pj19zb1+Tj2uXk29/e3uLg3+Lh3+bl4uXj4ufl4+fl5Ofl5ufl5ujm5+jmySDnBAAAAFp0Uk5TAAECAgMEBAYHCA0NDg4UGRogIiMmKSssLzU7PkJJT1JTVFliY2hrdHZ3foSFhYeJjY2QkpugqbG1tre5w8zQ09XY3uXn6+zx8vT09vf4+Pj5+fr6/P39/f3+gz7SsAAAAVVJREFUOMtjYKA7EBDnwCPLrObS1BRiLoJLnte6CQy8FLHLCzs2QUG4FjZ5GbcmBDDjxJBXDWxCBrb8aM4zbkIDzpLYnAcE9VXlJSWlZRU13koIeW57mGx5XjoMZEUqwxWYQaQbSzLSkYGfKFSe0QMsX5WbjgY0YS4MBplemI4BdGBW+DQ11eZiymfqQuXZIjqwyadPNoSZ4L+0FVM6e+oGI6g8a9iKNT3o8kVzNkzRg5lgl7p4wyRUL9Yt2jAxVh6mQCogae6GmflI8p0r13VFWTHBQ0rWPW7ahgWVcPm+9cuLoyy4kCJDzCm6d8PSFoh0zvQNC5OjDJhQopPPJqph1doJBUD5tnkbZiUEqaCnB3bTqLTFG1bPn71kw4b+GFdpLElKIzRxxgYgWNYc5SCENVHKeUaltHdXx0dZ8uBI1hJ2UUDgq82CM2MwKeibqAvSO7MCABq0wXEPiqWEAAAAAElFTkSuQmCC",ol.PluggableMap.createOptionsInternal=function(n){var v=null,u,r,t,y,i,s,h,f,p,w,e,b,c,l,a,o;n.keyboardEventTarget!==undefined&&(v=typeof n.keyboardEventTarget=="string"?document.getElementById(n.keyboardEventTarget):n.keyboardEventTarget);u={};r={};n.logo===undefined||typeof n.logo=="boolean"&&n.logo?r[ol.PluggableMap.LOGO_URL]="https://openlayers.org/":(t=n.logo,typeof t=="string"?r[t]="":t instanceof HTMLElement?r[ol.getUid(t).toString()]=t:t&&(ol.asserts.assert(typeof t.href=="string",44),ol.asserts.assert(typeof t.src=="string",45),r[t.src]=t.href));y=n.layers instanceof ol.layer.Group?n.layers:new ol.layer.Group({layers:n.layers});u[ol.MapProperty.LAYERGROUP]=y;u[ol.MapProperty.TARGET]=n.target;u[ol.MapProperty.VIEW]=n.view!==undefined?n.view:new ol.View;n.renderer!==undefined?(Array.isArray(n.renderer)?i=n.renderer:typeof n.renderer=="string"?i=[n.renderer]:ol.asserts.assert(!1,46),i.indexOf("dom")>=0&&(i=i.concat(ol.PluggableMap.DEFAULT_RENDERER_TYPES))):i=ol.PluggableMap.DEFAULT_RENDERER_TYPES;h=ol.plugins.getMapRendererPlugins();n:for(f=0,p=i.length;f<p;++f)for(w=i[f],e=0,b=h.length;e<b;++e)if(c=h[e],c.handles(w)){s=c;break n}if(!s)throw new Error("Unable to create a map renderer for types: "+i.join(", "));return n.controls!==undefined&&(Array.isArray(n.controls)?l=new ol.Collection(n.controls.slice()):(ol.asserts.assert(n.controls instanceof ol.Collection,47),l=n.controls)),n.interactions!==undefined&&(Array.isArray(n.interactions)?a=new ol.Collection(n.interactions.slice()):(ol.asserts.assert(n.interactions instanceof ol.Collection,48),a=n.interactions)),n.overlays!==undefined?Array.isArray(n.overlays)?o=new ol.Collection(n.overlays.slice()):(ol.asserts.assert(n.overlays instanceof ol.Collection,49),o=n.overlays):o=new ol.Collection,{controls:l,interactions:a,keyboardEventTarget:v,logos:r,overlays:o,mapRendererPlugin:s,values:u}},n.provide("ol.control.Control"),n.require("ol"),n.require("ol.MapEventType"),n.require("ol.Object"),n.require("ol.dom"),n.require("ol.events"),ol.control.Control=function(n){ol.Object.call(this);this.element=n.element?n.element:null;this.target_=null;this.map_=null;this.listenerKeys=[];this.render=n.render?n.render:ol.nullFunction;n.target&&this.setTarget(n.target)},ol.inherits(ol.control.Control,ol.Object),ol.control.Control.prototype.disposeInternal=function(){ol.dom.removeNode(this.element);ol.Object.prototype.disposeInternal.call(this)},ol.control.Control.prototype.getMap=function(){return this.map_},ol.control.Control.prototype.setMap=function(n){var t,i,r;for(this.map_&&ol.dom.removeNode(this.element),t=0,i=this.listenerKeys.length;t<i;++t)ol.events.unlistenByKey(this.listenerKeys[t]);this.listenerKeys.length=0;this.map_=n;this.map_&&(r=this.target_?this.target_:n.getOverlayContainerStopEvent(),r.appendChild(this.element),this.render!==ol.nullFunction&&this.listenerKeys.push(ol.events.listen(n,ol.MapEventType.POSTRENDER,this.render,this)),n.render())},ol.control.Control.prototype.setTarget=function(n){this.target_=typeof n=="string"?document.getElementById(n):n},n.provide("ol.css"),ol.css.CLASS_HIDDEN="ol-hidden",ol.css.CLASS_SELECTABLE="ol-selectable",ol.css.CLASS_UNSELECTABLE="ol-unselectable",ol.css.CLASS_UNSUPPORTED="ol-unsupported",ol.css.CLASS_CONTROL="ol-control",ol.css.getFontFamilies=function(){var n,t={};return function(i){if(n||(n=document.createElement("div").style),!(i in t)){n.font=i;var r=n.fontFamily;if(n.font="",!r)return null;t[i]=r.split(/,\s?/)}return t[i]}}(),n.provide("ol.render.EventType"),ol.render.EventType={POSTCOMPOSE:"postcompose",PRECOMPOSE:"precompose",RENDER:"render"},n.provide("ol.layer.Layer"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol"),n.require("ol.Object"),n.require("ol.layer.Base"),n.require("ol.layer.Property"),n.require("ol.obj"),n.require("ol.render.EventType"),n.require("ol.source.State"),ol.layer.Layer=function(n){var t=ol.obj.assign({},n),i;delete t.source;ol.layer.Base.call(this,t);this.mapPrecomposeKey_=null;this.mapRenderKey_=null;this.sourceChangeKey_=null;n.map&&this.setMap(n.map);ol.events.listen(this,ol.Object.getChangeEventType(ol.layer.Property.SOURCE),this.handleSourcePropertyChange_,this);i=n.source?n.source:null;this.setSource(i)},ol.inherits(ol.layer.Layer,ol.layer.Base),ol.layer.Layer.visibleAtResolution=function(n,t){return n.visible&&t>=n.minResolution&&t<n.maxResolution},ol.layer.Layer.prototype.getLayersArray=function(n){var t=n?n:[];return t.push(this),t},ol.layer.Layer.prototype.getLayerStatesArray=function(n){var t=n?n:[];return t.push(this.getLayerState()),t},ol.layer.Layer.prototype.getSource=function(){var n=this.get(ol.layer.Property.SOURCE);return n||null},ol.layer.Layer.prototype.getSourceState=function(){var n=this.getSource();return n?n.getState():ol.source.State.UNDEFINED},ol.layer.Layer.prototype.handleSourceChange_=function(){this.changed()},ol.layer.Layer.prototype.handleSourcePropertyChange_=function(){this.sourceChangeKey_&&(ol.events.unlistenByKey(this.sourceChangeKey_),this.sourceChangeKey_=null);var n=this.getSource();n&&(this.sourceChangeKey_=ol.events.listen(n,ol.events.EventType.CHANGE,this.handleSourceChange_,this));this.changed()},ol.layer.Layer.prototype.setMap=function(n){this.mapPrecomposeKey_&&(ol.events.unlistenByKey(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null);n||this.changed();this.mapRenderKey_&&(ol.events.unlistenByKey(this.mapRenderKey_),this.mapRenderKey_=null);n&&(this.mapPrecomposeKey_=ol.events.listen(n,ol.render.EventType.PRECOMPOSE,function(n){var t=this.getLayerState();t.managed=!1;t.zIndex=Infinity;n.frameState.layerStatesArray.push(t);n.frameState.layerStates[ol.getUid(this)]=t},this),this.mapRenderKey_=ol.events.listen(this,ol.events.EventType.CHANGE,n.render,n),this.changed())},ol.layer.Layer.prototype.setSource=function(n){this.set(ol.layer.Property.SOURCE,n)},n.provide("ol.control.Attribution"),n.require("ol"),n.require("ol.array"),n.require("ol.control.Control"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.layer.Layer"),n.require("ol.obj"),ol.control.Attribution=function(n){var t=n?n:{},u,e,i,o,r,s;this.ulElement_=document.createElement("UL");this.logoLi_=document.createElement("LI");this.ulElement_.appendChild(this.logoLi_);this.logoLi_.style.display="none";this.collapsed_=t.collapsed!==undefined?t.collapsed:!0;this.collapsible_=t.collapsible!==undefined?t.collapsible:!0;this.collapsible_||(this.collapsed_=!1);var h=t.className!==undefined?t.className:"ol-attribution",c=t.tipLabel!==undefined?t.tipLabel:"Attributions",f=t.collapseLabel!==undefined?t.collapseLabel:"»";typeof f=="string"?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=f):this.collapseLabel_=f;u=t.label!==undefined?t.label:"i";typeof u=="string"?(this.label_=document.createElement("span"),this.label_.textContent=u):this.label_=u;e=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_;i=document.createElement("button");i.setAttribute("type","button");i.title=c;i.appendChild(e);ol.events.listen(i,ol.events.EventType.CLICK,this.handleClick_,this);o=h+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible");r=document.createElement("div");r.className=o;r.appendChild(this.ulElement_);r.appendChild(i);s=t.render?t.render:ol.control.Attribution.render;ol.control.Control.call(this,{element:r,render:s,target:t.target});this.renderedAttributions_=[];this.renderedVisible_=!0;this.logoElements_={}},ol.inherits(ol.control.Attribution,ol.control.Control),ol.control.Attribution.prototype.getSourceAttributions_=function(n){for(var e,o,s,t,i,c,r={},u=[],h=n.layerStatesArray,l=n.viewState.resolution,f=0,a=h.length;f<a;++f)if((e=h[f],ol.layer.Layer.visibleAtResolution(e,l))&&(o=e.layer.getSource(),o)&&(s=o.getAttributions2(),s)&&(t=s(n),t))if(Array.isArray(t))for(i=0,c=t.length;i<c;++i)t[i]in r||(u.push(t[i]),r[t[i]]=!0);else t in r||(u.push(t),r[t]=!0);return u},ol.control.Attribution.render=function(n){this.updateElement_(n.frameState)},ol.control.Attribution.prototype.updateElement_=function(n){var t,i,f,u,r;if(!n){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}if(t=this.getSourceAttributions_(n),!ol.array.equals(t,this.renderedAttributions_)){while(this.ulElement_.lastChild!==this.logoLi_)this.ulElement_.removeChild(this.ulElement_.lastChild);for(i=0,f=t.length;i<f;++i)u=document.createElement("LI"),u.innerHTML=t[i],this.ulElement_.appendChild(u);t.length===0&&this.renderedAttributions_.length>0?this.element.classList.add("ol-logo-only"):this.renderedAttributions_.length===0&&t.length>0&&this.element.classList.remove("ol-logo-only");r=t.length>0||!ol.obj.isEmpty(n.logos);this.renderedVisible_!=r&&(this.element.style.display=r?"":"none",this.renderedVisible_=r);this.renderedAttributions_=t;this.insertLogos_(n)}},ol.control.Attribution.prototype.insertLogos_=function(n){var f,e=n.logos,t=this.logoElements_,o,i,r,u;for(f in t)f in e||(ol.dom.removeNode(t[f]),delete t[f]);for(r in e)u=e[r],u instanceof HTMLElement&&(this.logoLi_.appendChild(u),t[r]=u),r in t||(o=new Image,o.src=r,u===""?i=o:(i=document.createElement("a"),i.href=u,i.appendChild(o)),this.logoLi_.appendChild(i),t[r]=i);this.logoLi_.style.display=ol.obj.isEmpty(e)?"none":""},ol.control.Attribution.prototype.handleClick_=function(n){n.preventDefault();this.handleToggle_()},ol.control.Attribution.prototype.handleToggle_=function(){this.element.classList.toggle("ol-collapsed");this.collapsed_?ol.dom.replaceNode(this.collapseLabel_,this.label_):ol.dom.replaceNode(this.label_,this.collapseLabel_);this.collapsed_=!this.collapsed_},ol.control.Attribution.prototype.getCollapsible=function(){return this.collapsible_},ol.control.Attribution.prototype.setCollapsible=function(n){this.collapsible_!==n&&(this.collapsible_=n,this.element.classList.toggle("ol-uncollapsible"),!n&&this.collapsed_&&this.handleToggle_())},ol.control.Attribution.prototype.setCollapsed=function(n){this.collapsible_&&this.collapsed_!==n&&this.handleToggle_()},ol.control.Attribution.prototype.getCollapsed=function(){return this.collapsed_},n.provide("ol.control.Rotate"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol"),n.require("ol.control.Control"),n.require("ol.css"),n.require("ol.easing"),ol.control.Rotate=function(n){var t=n?n:{},f=t.className!==undefined?t.className:"ol-rotate",u=t.label!==undefined?t.label:"⇧",e,i,o,r,s;this.label_=null;typeof u=="string"?(this.label_=document.createElement("span"),this.label_.className="ol-compass",this.label_.textContent=u):(this.label_=u,this.label_.classList.add("ol-compass"));e=t.tipLabel?t.tipLabel:"Reset rotation";i=document.createElement("button");i.className=f+"-reset";i.setAttribute("type","button");i.title=e;i.appendChild(this.label_);ol.events.listen(i,ol.events.EventType.CLICK,ol.control.Rotate.prototype.handleClick_,this);o=f+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL;r=document.createElement("div");r.className=o;r.appendChild(i);s=t.render?t.render:ol.control.Rotate.render;this.callResetNorth_=t.resetNorth?t.resetNorth:undefined;ol.control.Control.call(this,{element:r,render:s,target:t.target});this.duration_=t.duration!==undefined?t.duration:250;this.autoHide_=t.autoHide!==undefined?t.autoHide:!0;this.rotation_=undefined;this.autoHide_&&this.element.classList.add(ol.css.CLASS_HIDDEN)},ol.inherits(ol.control.Rotate,ol.control.Control),ol.control.Rotate.prototype.handleClick_=function(n){n.preventDefault();this.callResetNorth_!==undefined?this.callResetNorth_():this.resetNorth_()},ol.control.Rotate.prototype.resetNorth_=function(){var t=this.getMap(),n=t.getView();n&&n.getRotation()!==undefined&&(this.duration_>0?n.animate({rotation:0,duration:this.duration_,easing:ol.easing.easeOut}):n.setRotation(0))},ol.control.Rotate.render=function(n){var u=n.frameState,t,i,r;u&&(t=u.viewState.rotation,t!=this.rotation_&&(i="rotate("+t+"rad)",this.autoHide_&&(r=this.element.classList.contains(ol.css.CLASS_HIDDEN),r||t!==0?r&&t!==0&&this.element.classList.remove(ol.css.CLASS_HIDDEN):this.element.classList.add(ol.css.CLASS_HIDDEN)),this.label_.style.msTransform=i,this.label_.style.webkitTransform=i,this.label_.style.transform=i),this.rotation_=t)},n.provide("ol.control.Zoom"),n.require("ol"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.control.Control"),n.require("ol.css"),n.require("ol.easing"),ol.control.Zoom=function(n){var t=n?n:{},f=t.className!==undefined?t.className:"ol-zoom",s=t.delta!==undefined?t.delta:1,e=t.zoomInLabel!==undefined?t.zoomInLabel:"+",o=t.zoomOutLabel!==undefined?t.zoomOutLabel:"−",c=t.zoomInTipLabel!==undefined?t.zoomInTipLabel:"Zoom in",l=t.zoomOutTipLabel!==undefined?t.zoomOutTipLabel:"Zoom out",r=document.createElement("button"),i,h,u;r.className=f+"-in";r.setAttribute("type","button");r.title=c;r.appendChild(typeof e=="string"?document.createTextNode(e):e);ol.events.listen(r,ol.events.EventType.CLICK,ol.control.Zoom.prototype.handleClick_.bind(this,s));i=document.createElement("button");i.className=f+"-out";i.setAttribute("type","button");i.title=l;i.appendChild(typeof o=="string"?document.createTextNode(o):o);ol.events.listen(i,ol.events.EventType.CLICK,ol.control.Zoom.prototype.handleClick_.bind(this,-s));h=f+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL;u=document.createElement("div");u.className=h;u.appendChild(r);u.appendChild(i);ol.control.Control.call(this,{element:u,target:t.target});this.duration_=t.duration!==undefined?t.duration:250},ol.inherits(ol.control.Zoom,ol.control.Control),ol.control.Zoom.prototype.handleClick_=function(n,t){t.preventDefault();this.zoomByDelta_(n)},ol.control.Zoom.prototype.zoomByDelta_=function(n){var u=this.getMap(),t=u.getView(),i,r;t&&(i=t.getResolution(),i&&(r=t.constrainResolution(i,n),this.duration_>0?(t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:r,duration:this.duration_,easing:ol.easing.easeOut})):t.setResolution(r)))},n.provide("ol.control"),n.require("ol.Collection"),n.require("ol.control.Attribution"),n.require("ol.control.Rotate"),n.require("ol.control.Zoom"),ol.control.defaults=function(n){var t=n?n:{},i=new ol.Collection,f=t.zoom!==undefined?t.zoom:!0,r,u;return f&&i.push(new ol.control.Zoom(t.zoomOptions)),r=t.rotate!==undefined?t.rotate:!0,r&&i.push(new ol.control.Rotate(t.rotateOptions)),u=t.attribution!==undefined?t.attribution:!0,u&&i.push(new ol.control.Attribution(t.attributionOptions)),i},n.provide("ol.Kinetic"),ol.Kinetic=function(n,t,i){this.decay_=n;this.minVelocity_=t;this.delay_=i;this.points_=[];this.angle_=0;this.initialVelocity_=0},ol.Kinetic.prototype.begin=function(){this.points_.length=0;this.angle_=0;this.initialVelocity_=0},ol.Kinetic.prototype.update=function(n,t){this.points_.push(n,t,Date.now())},ol.Kinetic.prototype.end=function(){var u,t,n,f,i,r;if(this.points_.length<6||(u=Date.now()-this.delay_,t=this.points_.length-3,this.points_[t+2]<u))return!1;for(n=t-3;n>0&&this.points_[n+2]>u;)n-=3;return(f=this.points_[t+2]-this.points_[n+2],f<1e3/60)?!1:(i=this.points_[t]-this.points_[n],r=this.points_[t+1]-this.points_[n+1],this.angle_=Math.atan2(r,i),this.initialVelocity_=Math.sqrt(i*i+r*r)/f,this.initialVelocity_>this.minVelocity_)},ol.Kinetic.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},ol.Kinetic.prototype.getAngle=function(){return this.angle_},n.provide("ol.interaction.Property"),ol.interaction.Property={ACTIVE:"active"},n.provide("ol.interaction.Interaction"),n.require("ol"),n.require("ol.Object"),n.require("ol.easing"),n.require("ol.interaction.Property"),n.require("ol.math"),ol.interaction.Interaction=function(n){ol.Object.call(this);this.map_=null;this.setActive(!0);this.handleEvent=n.handleEvent},ol.inherits(ol.interaction.Interaction,ol.Object),ol.interaction.Interaction.prototype.getActive=function(){return this.get(ol.interaction.Property.ACTIVE)},ol.interaction.Interaction.prototype.getMap=function(){return this.map_},ol.interaction.Interaction.prototype.setActive=function(n){this.set(ol.interaction.Property.ACTIVE,n)},ol.interaction.Interaction.prototype.setMap=function(n){this.map_=n},ol.interaction.Interaction.pan=function(n,t,i){var r=n.getCenter(),u;r&&(u=n.constrainCenter([r[0]+t[0],r[1]+t[1]]),i?n.animate({duration:i,easing:ol.easing.linear,center:u}):n.setCenter(u))},ol.interaction.Interaction.rotate=function(n,t,i,r){t=n.constrainRotation(t,0);ol.interaction.Interaction.rotateWithoutConstraints(n,t,i,r)},ol.interaction.Interaction.rotateWithoutConstraints=function(n,t,i,r){if(t!==undefined){var u=n.getRotation(),f=n.getCenter();u!==undefined&&f&&r>0?n.animate({rotation:t,anchor:i,duration:r,easing:ol.easing.easeOut}):n.rotate(t,i)}},ol.interaction.Interaction.zoom=function(n,t,i,r,u){t=n.constrainResolution(t,0,u);ol.interaction.Interaction.zoomWithoutConstraints(n,t,i,r)},ol.interaction.Interaction.zoomByDelta=function(n,t,i,r){var f=n.getResolution(),u=n.constrainResolution(f,t,0),o,s,e;u!==undefined&&(o=n.getResolutions(),u=ol.math.clamp(u,n.getMinResolution()||o[o.length-1],n.getMaxResolution()||o[0]));i&&u!==undefined&&u!==f&&(s=n.getCenter(),e=n.calculateCenterZoom(u,i),e=n.constrainCenter(e),i=[(u*s[0]-f*e[0])/(u-f),(u*s[1]-f*e[1])/(u-f)]);ol.interaction.Interaction.zoomWithoutConstraints(n,u,i,r)},ol.interaction.Interaction.zoomWithoutConstraints=function(n,t,i,r){var u,f,e;t&&(u=n.getResolution(),f=n.getCenter(),u!==undefined&&f&&t!==u&&r?n.animate({resolution:t,anchor:i,duration:r,easing:ol.easing.easeOut}):(i&&(e=n.calculateCenterZoom(t,i),n.setCenter(e)),n.setResolution(t)))},n.provide("ol.interaction.DoubleClickZoom"),n.require("ol"),n.require("ol.MapBrowserEventType"),n.require("ol.interaction.Interaction"),ol.interaction.DoubleClickZoom=function(n){var t=n?n:{};this.delta_=t.delta?t.delta:1;ol.interaction.Interaction.call(this,{handleEvent:ol.interaction.DoubleClickZoom.handleEvent});this.duration_=t.duration!==undefined?t.duration:250},ol.inherits(ol.interaction.DoubleClickZoom,ol.interaction.Interaction),ol.interaction.DoubleClickZoom.handleEvent=function(n){var t=!1,i=n.originalEvent;if(n.type==ol.MapBrowserEventType.DBLCLICK){var r=n.map,u=n.coordinate,f=i.shiftKey?-this.delta_:this.delta_,e=r.getView();ol.interaction.Interaction.zoomByDelta(e,f,u,this.duration_);n.preventDefault();t=!0}return!t},n.provide("ol.events.condition"),n.require("ol.MapBrowserEventType"),n.require("ol.asserts"),n.require("ol.functions"),n.require("ol.has"),ol.events.condition.altKeyOnly=function(n){var t=n.originalEvent;return t.altKey&&!(t.metaKey||t.ctrlKey)&&!t.shiftKey},ol.events.condition.altShiftKeysOnly=function(n){var t=n.originalEvent;return t.altKey&&!(t.metaKey||t.ctrlKey)&&t.shiftKey},ol.events.condition.always=ol.functions.TRUE,ol.events.condition.click=function(n){return n.type==ol.MapBrowserEventType.CLICK},ol.events.condition.mouseActionButton=function(n){var t=n.originalEvent;return t.button==0&&!(ol.has.WEBKIT&&ol.has.MAC&&t.ctrlKey)},ol.events.condition.never=ol.functions.FALSE,ol.events.condition.pointerMove=function(n){return n.type=="pointermove"},ol.events.condition.singleClick=function(n){return n.type==ol.MapBrowserEventType.SINGLECLICK},ol.events.condition.doubleClick=function(n){return n.type==ol.MapBrowserEventType.DBLCLICK},ol.events.condition.noModifierKeys=function(n){var t=n.originalEvent;return!t.altKey&&!(t.metaKey||t.ctrlKey)&&!t.shiftKey},ol.events.condition.platformModifierKeyOnly=function(n){var t=n.originalEvent;return!t.altKey&&(ol.has.MAC?t.metaKey:t.ctrlKey)&&!t.shiftKey},ol.events.condition.shiftKeyOnly=function(n){var t=n.originalEvent;return!t.altKey&&!(t.metaKey||t.ctrlKey)&&t.shiftKey},ol.events.condition.targetNotEditable=function(n){var i=n.originalEvent.target,t=i.tagName;return t!=="INPUT"&&t!=="SELECT"&&t!=="TEXTAREA"},ol.events.condition.mouseOnly=function(n){return ol.asserts.assert(n.pointerEvent,56),n.pointerEvent.pointerType=="mouse"},ol.events.condition.primaryAction=function(n){var t=n.pointerEvent;return t.isPrimary&&t.button===0},n.provide("ol.interaction.Pointer"),n.require("ol"),n.require("ol.functions"),n.require("ol.MapBrowserEventType"),n.require("ol.MapBrowserPointerEvent"),n.require("ol.interaction.Interaction"),n.require("ol.obj"),ol.interaction.Pointer=function(n){var t=n?n:{},i=t.handleEvent?t.handleEvent:ol.interaction.Pointer.handleEvent;ol.interaction.Interaction.call(this,{handleEvent:i});this.handleDownEvent_=t.handleDownEvent?t.handleDownEvent:ol.interaction.Pointer.handleDownEvent;this.handleDragEvent_=t.handleDragEvent?t.handleDragEvent:ol.interaction.Pointer.handleDragEvent;this.handleMoveEvent_=t.handleMoveEvent?t.handleMoveEvent:ol.interaction.Pointer.handleMoveEvent;this.handleUpEvent_=t.handleUpEvent?t.handleUpEvent:ol.interaction.Pointer.handleUpEvent;this.handlingDownUpSequence=!1;this.trackedPointers_={};this.targetPointers=[]},ol.inherits(ol.interaction.Pointer,ol.interaction.Interaction),ol.interaction.Pointer.centroid=function(n){for(var i=n.length,r=0,u=0,t=0;t<i;t++)r+=n[t].clientX,u+=n[t].clientY;return[r/i,u/i]},ol.interaction.Pointer.prototype.isPointerDraggingEvent_=function(n){var t=n.type;return t===ol.MapBrowserEventType.POINTERDOWN||t===ol.MapBrowserEventType.POINTERDRAG||t===ol.MapBrowserEventType.POINTERUP},ol.interaction.Pointer.prototype.updateTrackedPointers_=function(n){if(this.isPointerDraggingEvent_(n)){var i=n.pointerEvent,t=i.pointerId.toString();n.type==ol.MapBrowserEventType.POINTERUP?delete this.trackedPointers_[t]:n.type==ol.MapBrowserEventType.POINTERDOWN?this.trackedPointers_[t]=i:t in this.trackedPointers_&&(this.trackedPointers_[t]=i);this.targetPointers=ol.obj.getValues(this.trackedPointers_)}},ol.interaction.Pointer.handleDragEvent=ol.nullFunction,ol.interaction.Pointer.handleUpEvent=ol.functions.FALSE,ol.interaction.Pointer.handleDownEvent=ol.functions.FALSE,ol.interaction.Pointer.handleMoveEvent=ol.nullFunction,ol.interaction.Pointer.handleEvent=function(n){var t,r,i;return(n instanceof ol.MapBrowserPointerEvent)?(t=!1,this.updateTrackedPointers_(n),this.handlingDownUpSequence?n.type==ol.MapBrowserEventType.POINTERDRAG?this.handleDragEvent_(n):n.type==ol.MapBrowserEventType.POINTERUP&&(r=this.handleUpEvent_(n),this.handlingDownUpSequence=r&&this.targetPointers.length>0):n.type==ol.MapBrowserEventType.POINTERDOWN?(i=this.handleDownEvent_(n),this.handlingDownUpSequence=i,t=this.shouldStopEvent(i)):n.type==ol.MapBrowserEventType.POINTERMOVE&&this.handleMoveEvent_(n),!t):!0},ol.interaction.Pointer.prototype.shouldStopEvent=function(n){return n},n.provide("ol.interaction.DragPan"),n.require("ol"),n.require("ol.ViewHint"),n.require("ol.coordinate"),n.require("ol.easing"),n.require("ol.events.condition"),n.require("ol.functions"),n.require("ol.interaction.Pointer"),ol.interaction.DragPan=function(n){ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.DragPan.handleDownEvent_,handleDragEvent:ol.interaction.DragPan.handleDragEvent_,handleUpEvent:ol.interaction.DragPan.handleUpEvent_});var t=n?n:{};this.kinetic_=t.kinetic;this.lastCentroid=null;this.lastPointersCount_;this.condition_=t.condition?t.condition:ol.events.condition.noModifierKeys;this.noKinetic_=!1},ol.inherits(ol.interaction.DragPan,ol.interaction.Pointer),ol.interaction.DragPan.handleDragEvent_=function(n){var r=this.targetPointers,i=ol.interaction.Pointer.centroid(r);if(r.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var e=this.lastCentroid[0]-i[0],o=i[1]-this.lastCentroid[1],s=n.map,u=s.getView(),f=u.getState(),t=[e,o];ol.coordinate.scale(t,f.resolution);ol.coordinate.rotate(t,f.rotation);ol.coordinate.add(t,f.center);t=u.constrainCenter(t);u.setCenter(t)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i;this.lastPointersCount_=r.length},ol.interaction.DragPan.handleUpEvent_=function(n){var i=n.map,t=i.getView();if(this.targetPointers.length===0){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),u=this.kinetic_.getAngle(),e=t.getCenter(),f=i.getPixelFromCoordinate(e),o=i.getCoordinateFromPixel([f[0]-r*Math.cos(u),f[1]-r*Math.sin(u)]);t.animate({center:t.constrainCenter(o),duration:500,easing:ol.easing.easeOut})}return t.setHint(ol.ViewHint.INTERACTING,-1),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},ol.interaction.DragPan.handleDownEvent_=function(n){if(this.targetPointers.length>0&&this.condition_(n)){var i=n.map,t=i.getView();return this.lastCentroid=null,this.handlingDownUpSequence||t.setHint(ol.ViewHint.INTERACTING,1),t.getAnimating()&&t.setCenter(n.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},ol.interaction.DragPan.prototype.shouldStopEvent=ol.functions.FALSE,n.provide("ol.interaction.DragRotate"),n.require("ol"),n.require("ol.RotationConstraint"),n.require("ol.ViewHint"),n.require("ol.events.condition"),n.require("ol.functions"),n.require("ol.interaction.Interaction"),n.require("ol.interaction.Pointer"),ol.interaction.DragRotate=function(n){var t=n?n:{};ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.DragRotate.handleDownEvent_,handleDragEvent:ol.interaction.DragRotate.handleDragEvent_,handleUpEvent:ol.interaction.DragRotate.handleUpEvent_});this.condition_=t.condition?t.condition:ol.events.condition.altShiftKeysOnly;this.lastAngle_=undefined;this.duration_=t.duration!==undefined?t.duration:250},ol.inherits(ol.interaction.DragRotate,ol.interaction.Pointer),ol.interaction.DragRotate.handleDragEvent_=function(n){var i,t,e,o;if(ol.events.condition.mouseOnly(n)&&(i=n.map,t=i.getView(),t.getConstraints().rotation!==ol.RotationConstraint.disable)){var r=i.getSize(),u=n.pixel,f=Math.atan2(r[1]/2-u[1],u[0]-r[0]/2);this.lastAngle_!==undefined&&(e=f-this.lastAngle_,o=t.getRotation(),ol.interaction.Interaction.rotateWithoutConstraints(t,o-e));this.lastAngle_=f}},ol.interaction.DragRotate.handleUpEvent_=function(n){var i,t,r;return ol.events.condition.mouseOnly(n)?(i=n.map,t=i.getView(),t.setHint(ol.ViewHint.INTERACTING,-1),r=t.getRotation(),ol.interaction.Interaction.rotate(t,r,undefined,this.duration_),!1):!0},ol.interaction.DragRotate.handleDownEvent_=function(n){if(!ol.events.condition.mouseOnly(n))return!1;if(ol.events.condition.mouseActionButton(n)&&this.condition_(n)){var t=n.map;return t.getView().setHint(ol.ViewHint.INTERACTING,1),this.lastAngle_=undefined,!0}return!1},ol.interaction.DragRotate.prototype.shouldStopEvent=ol.functions.FALSE,n.provide("ol.render.Box"),n.require("ol"),n.require("ol.Disposable"),n.require("ol.geom.Polygon"),ol.render.Box=function(n){this.geometry_=null;this.element_=document.createElement("div");this.element_.style.position="absolute";this.element_.className="ol-box "+n;this.map_=null;this.startPixel_=null;this.endPixel_=null},ol.inherits(ol.render.Box,ol.Disposable),ol.render.Box.prototype.disposeInternal=function(){this.setMap(null)},ol.render.Box.prototype.render_=function(){var n=this.startPixel_,t=this.endPixel_,i="px",r=this.element_.style;r.left=Math.min(n[0],t[0])+i;r.top=Math.min(n[1],t[1])+i;r.width=Math.abs(t[0]-n[0])+i;r.height=Math.abs(t[1]-n[1])+i},ol.render.Box.prototype.setMap=function(n){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var t=this.element_.style;t.left=t.top=t.width=t.height="inherit"}this.map_=n;this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},ol.render.Box.prototype.setPixels=function(n,t){this.startPixel_=n;this.endPixel_=t;this.createOrUpdateGeometry();this.render_()},ol.render.Box.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,i=this.endPixel_,r=[t,[t[0],i[1]],i,[i[0],t[1]]],n=r.map(this.map_.getCoordinateFromPixel,this.map_);n[4]=n[0].slice();this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new ol.geom.Polygon([n])},ol.render.Box.prototype.getGeometry=function(){return this.geometry_},n.provide("ol.interaction.DragBox"),n.require("ol.events.Event"),n.require("ol"),n.require("ol.events.condition"),n.require("ol.interaction.Pointer"),n.require("ol.render.Box"),ol.interaction.DragBox=function(n){ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.DragBox.handleDownEvent_,handleDragEvent:ol.interaction.DragBox.handleDragEvent_,handleUpEvent:ol.interaction.DragBox.handleUpEvent_});var t=n?n:{};this.box_=new ol.render.Box(t.className||"ol-dragbox");this.minArea_=t.minArea!==undefined?t.minArea:64;this.startPixel_=null;this.condition_=t.condition?t.condition:ol.events.condition.always;this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:ol.interaction.DragBox.defaultBoxEndCondition},ol.inherits(ol.interaction.DragBox,ol.interaction.Pointer),ol.interaction.DragBox.defaultBoxEndCondition=function(n,t,i){var r=i[0]-t[0],u=i[1]-t[1];return r*r+u*u>=this.minArea_},ol.interaction.DragBox.handleDragEvent_=function(n){ol.events.condition.mouseOnly(n)&&(this.box_.setPixels(this.startPixel_,n.pixel),this.dispatchEvent(new ol.interaction.DragBox.Event(ol.interaction.DragBox.EventType_.BOXDRAG,n.coordinate,n)))},ol.interaction.DragBox.prototype.getGeometry=function(){return this.box_.getGeometry()},ol.interaction.DragBox.prototype.onBoxEnd=ol.nullFunction,ol.interaction.DragBox.handleUpEvent_=function(n){if(!ol.events.condition.mouseOnly(n))return!0;if(this.box_.setMap(null),this.boxEndCondition_(n,this.startPixel_,n.pixel)){this.onBoxEnd(n);this.dispatchEvent(new ol.interaction.DragBox.Event(ol.interaction.DragBox.EventType_.BOXEND,n.coordinate,n))}return!1},ol.interaction.DragBox.handleDownEvent_=function(n){return ol.events.condition.mouseOnly(n)?ol.events.condition.mouseActionButton(n)&&this.condition_(n)?(this.startPixel_=n.pixel,this.box_.setMap(n.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new ol.interaction.DragBox.Event(ol.interaction.DragBox.EventType_.BOXSTART,n.coordinate,n)),!0):!1:!1},ol.interaction.DragBox.EventType_={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend"},ol.interaction.DragBox.Event=function(n,t,i){ol.events.Event.call(this,n);this.coordinate=t;this.mapBrowserEvent=i},ol.inherits(ol.interaction.DragBox.Event,ol.events.Event),n.provide("ol.interaction.DragZoom"),n.require("ol"),n.require("ol.easing"),n.require("ol.events.condition"),n.require("ol.extent"),n.require("ol.interaction.DragBox"),ol.interaction.DragZoom=function(n){var t=n?n:{},i=t.condition?t.condition:ol.events.condition.shiftKeyOnly;this.duration_=t.duration!==undefined?t.duration:200;this.out_=t.out!==undefined?t.out:!1;ol.interaction.DragBox.call(this,{condition:i,className:t.className||"ol-dragzoom"})},ol.inherits(ol.interaction.DragZoom,ol.interaction.DragBox),ol.interaction.DragZoom.prototype.onBoxEnd=function(){var i=this.getMap(),n=i.getView(),u=i.getSize(),t=this.getGeometry().getExtent(),e,r;if(this.out_){var f=n.calculateExtent(u),o=ol.extent.createOrUpdateFromCoordinates([i.getPixelFromCoordinate(ol.extent.getBottomLeft(t)),i.getPixelFromCoordinate(ol.extent.getTopRight(t))]),s=n.getResolutionForExtent(o,u);ol.extent.scaleFromCenter(f,1/s);t=f}e=n.constrainResolution(n.getResolutionForExtent(t,u));r=ol.extent.getCenter(t);r=n.constrainCenter(r);n.animate({resolution:e,center:r,duration:this.duration_,easing:ol.easing.easeOut})},n.provide("ol.events.KeyCode"),ol.events.KeyCode={LEFT:37,UP:38,RIGHT:39,DOWN:40},n.provide("ol.interaction.KeyboardPan"),n.require("ol"),n.require("ol.coordinate"),n.require("ol.events.EventType"),n.require("ol.events.KeyCode"),n.require("ol.events.condition"),n.require("ol.interaction.Interaction"),ol.interaction.KeyboardPan=function(n){ol.interaction.Interaction.call(this,{handleEvent:ol.interaction.KeyboardPan.handleEvent});var t=n||{};this.defaultCondition_=function(n){return ol.events.condition.noModifierKeys(n)&&ol.events.condition.targetNotEditable(n)};this.condition_=t.condition!==undefined?t.condition:this.defaultCondition_;this.duration_=t.duration!==undefined?t.duration:100;this.pixelDelta_=t.pixelDelta!==undefined?t.pixelDelta:128},ol.inherits(ol.interaction.KeyboardPan,ol.interaction.Interaction),ol.interaction.KeyboardPan.handleEvent=function(n){var o=!1,s,t,e;if(n.type==ol.events.EventType.KEYDOWN&&(s=n.originalEvent,t=s.keyCode,this.condition_(n)&&(t==ol.events.KeyCode.DOWN||t==ol.events.KeyCode.LEFT||t==ol.events.KeyCode.RIGHT||t==ol.events.KeyCode.UP))){var h=n.map,r=h.getView(),i=r.getResolution()*this.pixelDelta_,u=0,f=0;t==ol.events.KeyCode.DOWN?f=-i:t==ol.events.KeyCode.LEFT?u=-i:t==ol.events.KeyCode.RIGHT?u=i:f=i;e=[u,f];ol.coordinate.rotate(e,r.getRotation());ol.interaction.Interaction.pan(r,e,this.duration_);n.preventDefault();o=!0}return!o},n.provide("ol.interaction.KeyboardZoom"),n.require("ol"),n.require("ol.events.EventType"),n.require("ol.events.condition"),n.require("ol.interaction.Interaction"),ol.interaction.KeyboardZoom=function(n){ol.interaction.Interaction.call(this,{handleEvent:ol.interaction.KeyboardZoom.handleEvent});var t=n?n:{};this.condition_=t.condition?t.condition:ol.events.condition.targetNotEditable;this.delta_=t.delta?t.delta:1;this.duration_=t.duration!==undefined?t.duration:100},ol.inherits(ol.interaction.KeyboardZoom,ol.interaction.Interaction),ol.interaction.KeyboardZoom.handleEvent=function(n){var i=!1,r,t;if((n.type==ol.events.EventType.KEYDOWN||n.type==ol.events.EventType.KEYPRESS)&&(r=n.originalEvent,t=r.charCode,this.condition_(n)&&(t=="+".charCodeAt(0)||t=="-".charCodeAt(0)))){var u=n.map,f=t=="+".charCodeAt(0)?this.delta_:-this.delta_,e=u.getView();ol.interaction.Interaction.zoomByDelta(e,f,undefined,this.duration_);n.preventDefault();i=!0}return!i},n.provide("ol.interaction.MouseWheelZoom"),n.require("ol"),n.require("ol.ViewHint"),n.require("ol.easing"),n.require("ol.events.EventType"),n.require("ol.has"),n.require("ol.interaction.Interaction"),n.require("ol.math"),ol.interaction.MouseWheelZoom=function(n){ol.interaction.Interaction.call(this,{handleEvent:ol.interaction.MouseWheelZoom.handleEvent});var t=n||{};this.delta_=0;this.duration_=t.duration!==undefined?t.duration:250;this.timeout_=t.timeout!==undefined?t.timeout:80;this.useAnchor_=t.useAnchor!==undefined?t.useAnchor:!0;this.constrainResolution_=t.constrainResolution||!1;this.lastAnchor_=null;this.startTime_=undefined;this.timeoutId_=undefined;this.mode_=undefined;this.trackpadEventGap_=400;this.trackpadTimeoutId_=undefined;this.trackpadDeltaPerZoom_=300;this.trackpadZoomBuffer_=1.5},ol.inherits(ol.interaction.MouseWheelZoom,ol.interaction.Interaction),ol.interaction.MouseWheelZoom.handleEvent=function(n){var c=n.type,o,u,i,f,t,l,a;if(c!==ol.events.EventType.WHEEL&&c!==ol.events.EventType.MOUSEWHEEL)return!0;if(n.preventDefault(),o=n.map,u=n.originalEvent,this.useAnchor_&&(this.lastAnchor_=n.coordinate),n.type==ol.events.EventType.WHEEL?(i=u.deltaY,ol.has.FIREFOX&&u.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=ol.has.DEVICE_PIXEL_RATIO),u.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):n.type==ol.events.EventType.MOUSEWHEEL&&(i=-u.wheelDeltaY,ol.has.SAFARI&&(i/=3)),i===0)return!1;if(f=Date.now(),this.startTime_===undefined&&(this.startTime_=f),(!this.mode_||f-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?ol.interaction.MouseWheelZoom.Mode_.TRACKPAD:ol.interaction.MouseWheelZoom.Mode_.WHEEL),this.mode_===ol.interaction.MouseWheelZoom.Mode_.TRACKPAD){t=o.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):t.setHint(ol.ViewHint.INTERACTING,1);this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var r=t.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),s=t.getMinResolution(),h=t.getMaxResolution(),e=0;return r<s?(r=Math.max(r,s/this.trackpadZoomBuffer_),e=1):r>h&&(r=Math.min(r,h*this.trackpadZoomBuffer_),e=-1),this.lastAnchor_&&(l=t.calculateCenterZoom(r,this.lastAnchor_),t.setCenter(t.constrainCenter(l))),t.setResolution(r),e===0&&this.constrainResolution_&&t.animate({resolution:t.constrainResolution(r,i>0?-1:1),easing:ol.easing.easeOut,anchor:this.lastAnchor_,duration:this.duration_}),e>0?t.animate({resolution:s,easing:ol.easing.easeOut,anchor:this.lastAnchor_,duration:500}):e<0&&t.animate({resolution:h,easing:ol.easing.easeOut,anchor:this.lastAnchor_,duration:500}),this.startTime_=f,!1}return this.delta_+=i,a=Math.max(this.timeout_-(f-this.startTime_),0),clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,o),a),!1},ol.interaction.MouseWheelZoom.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=undefined;var n=this.getMap().getView();n.setHint(ol.ViewHint.INTERACTING,-1)},ol.interaction.MouseWheelZoom.prototype.handleWheelZoom_=function(n){var t=n.getView(),i,r;t.getAnimating()&&t.cancelAnimations();i=ol.MOUSEWHEELZOOM_MAXDELTA;r=ol.math.clamp(this.delta_,-i,i);ol.interaction.Interaction.zoomByDelta(t,-r,this.lastAnchor_,this.duration_);this.mode_=undefined;this.delta_=0;this.lastAnchor_=null;this.startTime_=undefined;this.timeoutId_=undefined},ol.interaction.MouseWheelZoom.prototype.setMouseAnchor=function(n){this.useAnchor_=n;n||(this.lastAnchor_=null)},ol.interaction.MouseWheelZoom.Mode_={TRACKPAD:"trackpad",WHEEL:"wheel"},n.provide("ol.interaction.PinchRotate"),n.require("ol"),n.require("ol.ViewHint"),n.require("ol.functions"),n.require("ol.interaction.Interaction"),n.require("ol.interaction.Pointer"),n.require("ol.RotationConstraint"),ol.interaction.PinchRotate=function(n){ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.PinchRotate.handleDownEvent_,handleDragEvent:ol.interaction.PinchRotate.handleDragEvent_,handleUpEvent:ol.interaction.PinchRotate.handleUpEvent_});var t=n||{};this.anchor_=null;this.lastAngle_=undefined;this.rotating_=!1;this.rotationDelta_=0;this.threshold_=t.threshold!==undefined?t.threshold:.3;this.duration_=t.duration!==undefined?t.duration:250},ol.inherits(ol.interaction.PinchRotate,ol.interaction.Pointer),ol.interaction.PinchRotate.handleDragEvent_=function(n){var e=0,o=this.targetPointers[0],s=this.targetPointers[1],h=Math.atan2(s.clientY-o.clientY,s.clientX-o.clientX),u,t,i,f,r,c;(this.lastAngle_!==undefined&&(u=h-this.lastAngle_,this.rotationDelta_+=u,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=u),this.lastAngle_=h,t=n.map,i=t.getView(),i.getConstraints().rotation!==ol.RotationConstraint.disable)&&(f=t.getViewport().getBoundingClientRect(),r=ol.interaction.Pointer.centroid(this.targetPointers),r[0]-=f.left,r[1]-=f.top,this.anchor_=t.getCoordinateFromPixel(r),this.rotating_&&(c=i.getRotation(),t.render(),ol.interaction.Interaction.rotateWithoutConstraints(i,c+e,this.anchor_)))},ol.interaction.PinchRotate.handleUpEvent_=function(n){var i,t,r;return this.targetPointers.length<2?(i=n.map,t=i.getView(),t.setHint(ol.ViewHint.INTERACTING,-1),this.rotating_&&(r=t.getRotation(),ol.interaction.Interaction.rotate(t,r,this.anchor_,this.duration_)),!1):!0},ol.interaction.PinchRotate.handleDownEvent_=function(n){if(this.targetPointers.length>=2){var t=n.map;return this.anchor_=null,this.lastAngle_=undefined,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().setHint(ol.ViewHint.INTERACTING,1),!0}return!1},ol.interaction.PinchRotate.prototype.shouldStopEvent=ol.functions.FALSE,n.provide("ol.interaction.PinchZoom"),n.require("ol"),n.require("ol.ViewHint"),n.require("ol.functions"),n.require("ol.interaction.Interaction"),n.require("ol.interaction.Pointer"),ol.interaction.PinchZoom=function(n){ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.PinchZoom.handleDownEvent_,handleDragEvent:ol.interaction.PinchZoom.handleDragEvent_,handleUpEvent:ol.interaction.PinchZoom.handleUpEvent_});var t=n?n:{};this.constrainResolution_=t.constrainResolution||!1;this.anchor_=null;this.duration_=t.duration!==undefined?t.duration:400;this.lastDistance_=undefined;this.lastScaleDelta_=1},ol.inherits(ol.interaction.PinchZoom,ol.interaction.Pointer),ol.interaction.PinchZoom.handleDragEvent_=function(n){var t=1,c=this.targetPointers[0],l=this.targetPointers[1],a=c.clientX-l.clientX,v=c.clientY-l.clientY,y=Math.sqrt(a*a+v*v),h,f;this.lastDistance_!==undefined&&(t=this.lastDistance_/y);this.lastDistance_=y;var r=n.map,u=r.getView(),e=u.getResolution(),o=u.getMaxResolution(),s=u.getMinResolution(),i=e*t;i>o?(t=o/e,i=o):i<s&&(t=s/e,i=s);t!=1&&(this.lastScaleDelta_=t);h=r.getViewport().getBoundingClientRect();f=ol.interaction.Pointer.centroid(this.targetPointers);f[0]-=h.left;f[1]-=h.top;this.anchor_=r.getCoordinateFromPixel(f);r.render();ol.interaction.Interaction.zoomWithoutConstraints(u,i,this.anchor_)},ol.interaction.PinchZoom.handleUpEvent_=function(n){var r,t,i,u;return this.targetPointers.length<2?(r=n.map,t=r.getView(),t.setHint(ol.ViewHint.INTERACTING,-1),i=t.getResolution(),(this.constrainResolution_||i<t.getMinResolution()||i>t.getMaxResolution())&&(u=this.lastScaleDelta_-1,ol.interaction.Interaction.zoom(t,i,this.anchor_,this.duration_,u)),!1):!0},ol.interaction.PinchZoom.handleDownEvent_=function(n){if(this.targetPointers.length>=2){var t=n.map;return this.anchor_=null,this.lastDistance_=undefined,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().setHint(ol.ViewHint.INTERACTING,1),!0}return!1},ol.interaction.PinchZoom.prototype.shouldStopEvent=ol.functions.FALSE,n.provide("ol.interaction"),n.require("ol.Collection"),n.require("ol.Kinetic"),n.require("ol.interaction.DoubleClickZoom"),n.require("ol.interaction.DragPan"),n.require("ol.interaction.DragRotate"),n.require("ol.interaction.DragZoom"),n.require("ol.interaction.KeyboardPan"),n.require("ol.interaction.KeyboardZoom"),n.require("ol.interaction.MouseWheelZoom"),n.require("ol.interaction.PinchRotate"),n.require("ol.interaction.PinchZoom"),ol.interaction.defaults=function(n){var t=n?n:{},i=new ol.Collection,c=new ol.Kinetic(-.005,.05,100),l=t.altShiftDragRotate!==undefined?t.altShiftDragRotate:!0,r,u,f,e,o,s,h;return l&&i.push(new ol.interaction.DragRotate),r=t.doubleClickZoom!==undefined?t.doubleClickZoom:!0,r&&i.push(new ol.interaction.DoubleClickZoom({delta:t.zoomDelta,duration:t.zoomDuration})),u=t.dragPan!==undefined?t.dragPan:!0,u&&i.push(new ol.interaction.DragPan({kinetic:c})),f=t.pinchRotate!==undefined?t.pinchRotate:!0,f&&i.push(new ol.interaction.PinchRotate),e=t.pinchZoom!==undefined?t.pinchZoom:!0,e&&i.push(new ol.interaction.PinchZoom({constrainResolution:t.constrainResolution,duration:t.zoomDuration})),o=t.keyboard!==undefined?t.keyboard:!0,o&&(i.push(new ol.interaction.KeyboardPan),i.push(new ol.interaction.KeyboardZoom({delta:t.zoomDelta,duration:t.zoomDuration}))),s=t.mouseWheelZoom!==undefined?t.mouseWheelZoom:!0,s&&i.push(new ol.interaction.MouseWheelZoom({constrainResolution:t.constrainResolution,duration:t.zoomDuration})),h=t.shiftDragZoom!==undefined?t.shiftDragZoom:!0,h&&i.push(new ol.interaction.DragZoom({duration:t.zoomDuration})),i},n.provide("ol.ImageBase"),n.require("ol"),n.require("ol.events.EventTarget"),n.require("ol.events.EventType"),ol.ImageBase=function(n,t,i,r){ol.events.EventTarget.call(this);this.extent=n;this.pixelRatio_=i;this.resolution=t;this.state=r},ol.inherits(ol.ImageBase,ol.events.EventTarget),ol.ImageBase.prototype.changed=function(){this.dispatchEvent(ol.events.EventType.CHANGE)},ol.ImageBase.prototype.getExtent=function(){return this.extent},ol.ImageBase.prototype.getImage=function(){},ol.ImageBase.prototype.getPixelRatio=function(){return this.pixelRatio_},ol.ImageBase.prototype.getResolution=function(){return this.resolution},ol.ImageBase.prototype.getState=function(){return this.state},ol.ImageBase.prototype.load=function(){},n.provide("ol.ImageState"),ol.ImageState={IDLE:0,LOADING:1,LOADED:2,ERROR:3},n.provide("ol.ImageCanvas"),n.require("ol"),n.require("ol.ImageBase"),n.require("ol.ImageState"),ol.ImageCanvas=function(n,t,i,r,u){this.loader_=u!==undefined?u:null;var f=u!==undefined?ol.ImageState.IDLE:ol.ImageState.LOADED;ol.ImageBase.call(this,n,t,i,f);this.canvas_=r;this.error_=null},ol.inherits(ol.ImageCanvas,ol.ImageBase),ol.ImageCanvas.prototype.getError=function(){return this.error_},ol.ImageCanvas.prototype.handleLoad_=function(n){n?(this.error_=n,this.state=ol.ImageState.ERROR):this.state=ol.ImageState.LOADED;this.changed()},ol.ImageCanvas.prototype.load=function(){this.state==ol.ImageState.IDLE&&(this.state=ol.ImageState.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},ol.ImageCanvas.prototype.getImage=function(){return this.canvas_},n.provide("ol.LayerType"),ol.LayerType={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},n.provide("ol.layer.VectorRenderType"),ol.layer.VectorRenderType={IMAGE:"image",VECTOR:"vector"},n.provide("ol.render.Event"),n.require("ol"),n.require("ol.events.Event"),ol.render.Event=function(n,t,i,r,u){ol.events.Event.call(this,n);this.vectorContext=t;this.frameState=i;this.context=r;this.glContext=u},ol.inherits(ol.render.Event,ol.events.Event),n.provide("ol.structs.LRUCache"),n.require("ol"),n.require("ol.asserts"),n.require("ol.events.EventTarget"),n.require("ol.events.EventType"),ol.structs.LRUCache=function(n){ol.events.EventTarget.call(this);this.highWaterMark=n!==undefined?n:2048;this.count_=0;this.entries_={};this.oldest_=null;this.newest_=null},ol.inherits(ol.structs.LRUCache,ol.events.EventTarget),ol.structs.LRUCache.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},ol.structs.LRUCache.prototype.clear=function(){this.count_=0;this.entries_={};this.oldest_=null;this.newest_=null;this.dispatchEvent(ol.events.EventType.CLEAR)},ol.structs.LRUCache.prototype.containsKey=function(n){return this.entries_.hasOwnProperty(n)},ol.structs.LRUCache.prototype.forEach=function(n,t){for(var i=this.oldest_;i;)n.call(t,i.value_,i.key_,this),i=i.newer},ol.structs.LRUCache.prototype.get=function(n){var t=this.entries_[n];return(ol.asserts.assert(t!==undefined,15),t===this.newest_)?t.value_:(t===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(t.newer.older=t.older,t.older.newer=t.newer),t.newer=null,t.older=this.newest_,this.newest_.newer=t,this.newest_=t,t.value_)},ol.structs.LRUCache.prototype.remove=function(n){var t=this.entries_[n];return ol.asserts.assert(t!==undefined,15),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[n],--this.count_,t.value_},ol.structs.LRUCache.prototype.getCount=function(){return this.count_},ol.structs.LRUCache.prototype.getKeys=function(){for(var t=new Array(this.count_),i=0,n=this.newest_;n;n=n.older)t[i++]=n.key_;return t},ol.structs.LRUCache.prototype.getValues=function(){for(var t=new Array(this.count_),i=0,n=this.newest_;n;n=n.older)t[i++]=n.value_;return t},ol.structs.LRUCache.prototype.peekLast=function(){return this.oldest_.value_},ol.structs.LRUCache.prototype.peekLastKey=function(){return this.oldest_.key_},ol.structs.LRUCache.prototype.peekFirstKey=function(){return this.newest_.key_},ol.structs.LRUCache.prototype.pop=function(){var n=this.oldest_;return delete this.entries_[n.key_],n.newer&&(n.newer.older=null),this.oldest_=n.newer,this.oldest_||(this.newest_=null),--this.count_,n.value_},ol.structs.LRUCache.prototype.replace=function(n,t){this.get(n);this.entries_[n].value_=t},ol.structs.LRUCache.prototype.set=function(n,t){ol.asserts.assert(!(n in this.entries_),16);var i={key_:n,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=i:this.oldest_=i;this.newest_=i;this.entries_[n]=i;++this.count_},ol.structs.LRUCache.prototype.prune=function(){while(this.canExpireCache())this.pop()},n.provide("ol.render.canvas"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.obj"),n.require("ol.structs.LRUCache"),n.require("ol.transform"),ol.render.canvas.defaultFont="10px sans-serif",ol.render.canvas.defaultFillStyle=[0,0,0,1],ol.render.canvas.defaultLineCap="round",ol.render.canvas.defaultLineDash=[],ol.render.canvas.defaultLineDashOffset=0,ol.render.canvas.defaultLineJoin="round",ol.render.canvas.defaultMiterLimit=10,ol.render.canvas.defaultStrokeStyle=[0,0,0,1],ol.render.canvas.defaultTextAlign="center",ol.render.canvas.defaultTextBaseline="middle",ol.render.canvas.defaultPadding=[0,0,0,0],ol.render.canvas.defaultLineWidth=1,ol.render.canvas.labelCache=new ol.structs.LRUCache,ol.render.canvas.checkedFonts_={},ol.render.canvas.measureContext_=null,ol.render.canvas.textHeights_={},ol.render.canvas.checkFont=function(){function f(n){var t=ol.render.canvas.getMeasureContext(),i,f;return t.font=o,u=t.measureText(r).width,i=!0,n!="monospace"&&(t.font="32px "+n+",monospace",f=t.measureText(r).width,i=f!=u),i}function s(){var u=!0;for(var r in n)n[r]<i&&(f(r)?(n[r]=i,ol.obj.clear(ol.render.canvas.textHeights_),ol.render.canvas.measureContext_=null,e.clear()):(++n[r],u=!1));u&&(window.clearInterval(t),t=undefined)}var i=60,n=ol.render.canvas.checkedFonts_,e=ol.render.canvas.labelCache,o="32px monospace",r="wmytzilWMYTZIL@#/&?$%10",t,u;return function(r){var o=ol.css.getFontFamilies(r),e,h,u;if(o)for(e=0,h=o.length;e<h;++e)u=o[e],u in n||(n[u]=i,f(u)||(n[u]=0,t===undefined&&(t=window.setInterval(s,32))))}}(),ol.render.canvas.getMeasureContext=function(){var n=ol.render.canvas.measureContext_;return n||(n=ol.render.canvas.measureContext_=ol.dom.createCanvasContext2D(1,1)),n},ol.render.canvas.measureTextHeight=function(){var n,t=ol.render.canvas.textHeights_;return function(i){var r=t[i];return r==undefined&&(n||(n=document.createElement("span"),n.textContent="M",n.style.margin=n.style.padding="0 !important",n.style.position="absolute !important",n.style.left="-99999px !important"),n.style.font=i,document.body.appendChild(n),r=t[i]=n.offsetHeight,document.body.removeChild(n)),r}}(),ol.render.canvas.measureTextWidth=function(n,t){var i=ol.render.canvas.getMeasureContext();return n!=i.font&&(i.font=n),i.measureText(t).width},ol.render.canvas.rotateAtOffset=function(n,t,i,r){t!==0&&(n.translate(i,r),n.rotate(t),n.translate(-i,-r))},ol.render.canvas.resetTransform_=ol.transform.create(),ol.render.canvas.drawImage=function(n,t,i,r,u,f,e,o,s,h,c){var l;i!=1&&(l=n.globalAlpha,n.globalAlpha=l*i);t&&n.setTransform.apply(n,t);n.drawImage(r,u,f,e,o,s,h,e*c,o*c);l&&(n.globalAlpha=l);t&&n.setTransform.apply(n,ol.render.canvas.resetTransform_)},n.provide("ol.color"),n.require("ol.asserts"),n.require("ol.math"),ol.color.HEX_COLOR_RE_=/^#(?:[0-9a-f]{3,4}){1,2}$/i,ol.color.NAMED_COLOR_RE_=/^([a-z]*)$/i,ol.color.asArray=function(n){return Array.isArray(n)?n:ol.color.fromString(n)},ol.color.asString=function(n){return typeof n=="string"?n:ol.color.toString(n)},ol.color.fromNamed=function(n){var t=document.createElement("div"),i;return t.style.color=n,document.body.appendChild(t),i=getComputedStyle(t).color,document.body.removeChild(t),i},ol.color.fromString=function(){var i=1024,n={},t=0;return function(r){var u,f,e;if(n.hasOwnProperty(r))u=n[r];else{if(t>=i){f=0;for(e in n)(f++&3)==0&&(delete n[e],--t)}u=ol.color.fromStringInternal_(r);n[r]=u;++t}return u}}(),ol.color.fromStringInternal_=function(n){var i,r,u,f,o,e,s,t,h;return ol.color.NAMED_COLOR_RE_.exec(n)&&(n=ol.color.fromNamed(n)),ol.color.HEX_COLOR_RE_.exec(n)?(s=n.length-1,t=s<=4?1:2,h=s===4||s===8,i=parseInt(n.substr(1+0*t,t),16),r=parseInt(n.substr(1+1*t,t),16),u=parseInt(n.substr(1+2*t,t),16),f=h?parseInt(n.substr(1+3*t,t),16):255,t==1&&(i=(i<<4)+i,r=(r<<4)+r,u=(u<<4)+u,h&&(f=(f<<4)+f)),o=[i,r,u,f/255]):n.indexOf("rgba(")==0?(e=n.slice(5,-1).split(",").map(Number),o=ol.color.normalize(e)):n.indexOf("rgb(")==0?(e=n.slice(4,-1).split(",").map(Number),e.push(1),o=ol.color.normalize(e)):ol.asserts.assert(!1,14),o},ol.color.normalize=function(n,t){var i=t||[];return i[0]=ol.math.clamp(n[0]+.5|0,0,255),i[1]=ol.math.clamp(n[1]+.5|0,0,255),i[2]=ol.math.clamp(n[2]+.5|0,0,255),i[3]=ol.math.clamp(n[3],0,1),i},ol.color.toString=function(n){var r=n[0],t,i,u;return r!=(r|0)&&(r=r+.5|0),t=n[1],t!=(t|0)&&(t=t+.5|0),i=n[2],i!=(i|0)&&(i=i+.5|0),u=n[3]===undefined?1:n[3],"rgba("+r+","+t+","+i+","+u+")"},n.provide("ol.colorlike"),n.require("ol.color"),ol.colorlike.asColorLike=function(n){return ol.colorlike.isColorLike(n)?n:ol.color.asString(n)},ol.colorlike.isColorLike=function(n){return typeof n=="string"||n instanceof CanvasPattern||n instanceof CanvasGradient},n.provide("ol.render.VectorContext"),ol.render.VectorContext=function(){},ol.render.VectorContext.prototype.drawCustom=function(){},ol.render.VectorContext.prototype.drawGeometry=function(){},ol.render.VectorContext.prototype.setStyle=function(){},ol.render.VectorContext.prototype.drawCircle=function(){},ol.render.VectorContext.prototype.drawFeature=function(){},ol.render.VectorContext.prototype.drawGeometryCollection=function(){},ol.render.VectorContext.prototype.drawLineString=function(){},ol.render.VectorContext.prototype.drawMultiLineString=function(){},ol.render.VectorContext.prototype.drawMultiPoint=function(){},ol.render.VectorContext.prototype.drawMultiPolygon=function(){},ol.render.VectorContext.prototype.drawPoint=function(){},ol.render.VectorContext.prototype.drawPolygon=function(){},ol.render.VectorContext.prototype.drawText=function(){},ol.render.VectorContext.prototype.setFillStrokeStyle=function(){},ol.render.VectorContext.prototype.setImageStyle=function(){},ol.render.VectorContext.prototype.setTextStyle=function(){},n.provide("ol.render.canvas.Immediate"),n.require("ol"),n.require("ol.array"),n.require("ol.colorlike"),n.require("ol.extent"),n.require("ol.geom.GeometryType"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.transform"),n.require("ol.has"),n.require("ol.render.VectorContext"),n.require("ol.render.canvas"),n.require("ol.transform"),ol.render.canvas.Immediate=function(n,t,i,r,u){ol.render.VectorContext.call(this);this.context_=n;this.pixelRatio_=t;this.extent_=i;this.transform_=r;this.viewRotation_=u;this.contextFillState_=null;this.contextStrokeState_=null;this.contextTextState_=null;this.fillState_=null;this.strokeState_=null;this.image_=null;this.imageAnchorX_=0;this.imageAnchorY_=0;this.imageHeight_=0;this.imageOpacity_=0;this.imageOriginX_=0;this.imageOriginY_=0;this.imageRotateWithView_=!1;this.imageRotation_=0;this.imageScale_=0;this.imageSnapToPixel_=!1;this.imageWidth_=0;this.text_="";this.textOffsetX_=0;this.textOffsetY_=0;this.textRotateWithView_=!1;this.textRotation_=0;this.textScale_=0;this.textFillState_=null;this.textStrokeState_=null;this.textState_=null;this.pixelCoordinates_=[];this.tmpLocalTransform_=ol.transform.create()},ol.inherits(ol.render.canvas.Immediate,ol.render.VectorContext),ol.render.canvas.Immediate.prototype.drawImages_=function(n,t,i){var u,f,v,e,o,h,c;if(this.image_){var s=ol.geom.flat.transform.transform2D(n,t,i,2,this.transform_,this.pixelCoordinates_),r=this.context_,l=this.tmpLocalTransform_,a=r.globalAlpha;for(this.imageOpacity_!=1&&(r.globalAlpha=a*this.imageOpacity_),u=this.imageRotation_,this.imageRotateWithView_&&(u+=this.viewRotation_),f=0,v=s.length;f<v;f+=2)e=s[f]-this.imageAnchorX_,o=s[f+1]-this.imageAnchorY_,this.imageSnapToPixel_&&(e=Math.round(e),o=Math.round(o)),(u!==0||this.imageScale_!=1)&&(h=e+this.imageAnchorX_,c=o+this.imageAnchorY_,ol.transform.compose(l,h,c,this.imageScale_,this.imageScale_,u,-h,-c),r.setTransform.apply(r,l)),r.drawImage(this.image_,this.imageOriginX_,this.imageOriginY_,this.imageWidth_,this.imageHeight_,e,o,this.imageWidth_,this.imageHeight_);(u!==0||this.imageScale_!=1)&&r.setTransform(1,0,0,1,0,0);this.imageOpacity_!=1&&(r.globalAlpha=a)}},ol.render.canvas.Immediate.prototype.drawText_=function(n,t,i,r){var f,e,h;if(this.textState_&&this.text_!==""){this.textFillState_&&this.setContextFillState_(this.textFillState_);this.textStrokeState_&&this.setContextStrokeState_(this.textStrokeState_);this.setContextTextState_(this.textState_);var s=ol.geom.flat.transform.transform2D(n,t,i,r,this.transform_,this.pixelCoordinates_),u=this.context_,o=this.textRotation_;for(this.textRotateWithView_&&(o+=this.viewRotation_);t<i;t+=r)f=s[t]+this.textOffsetX_,e=s[t+1]+this.textOffsetY_,(o!==0||this.textScale_!=1)&&(h=ol.transform.compose(this.tmpLocalTransform_,f,e,this.textScale_,this.textScale_,o,-f,-e),u.setTransform.apply(u,h)),this.textStrokeState_&&u.strokeText(this.text_,f,e),this.textFillState_&&u.fillText(this.text_,f,e);(o!==0||this.textScale_!=1)&&u.setTransform(1,0,0,1,0,0)}},ol.render.canvas.Immediate.prototype.moveToLineTo_=function(n,t,i,r,u){var o=this.context_,f=ol.geom.flat.transform.transform2D(n,t,i,r,this.transform_,this.pixelCoordinates_),s,e;for(o.moveTo(f[0],f[1]),s=f.length,u&&(s-=2),e=2;e<s;e+=2)o.lineTo(f[e],f[e+1]);return u&&o.closePath(),i},ol.render.canvas.Immediate.prototype.drawRings_=function(n,t,i,r){for(var u=0,f=i.length;u<f;++u)t=this.moveToLineTo_(n,t,i[u],r,!0);return t},ol.render.canvas.Immediate.prototype.drawCircle=function(n){if(ol.extent.intersects(this.extent_,n.getExtent())){if(this.fillState_||this.strokeState_){this.fillState_&&this.setContextFillState_(this.fillState_);this.strokeState_&&this.setContextStrokeState_(this.strokeState_);var t=ol.geom.SimpleGeometry.transform2D(n,this.transform_,this.pixelCoordinates_),r=t[2]-t[0],u=t[3]-t[1],f=Math.sqrt(r*r+u*u),i=this.context_;i.beginPath();i.arc(t[0],t[1],f,0,2*Math.PI);this.fillState_&&i.fill();this.strokeState_&&i.stroke()}this.text_!==""&&this.drawText_(n.getCenter(),0,2,2)}},ol.render.canvas.Immediate.prototype.setStyle=function(n){this.setFillStrokeStyle(n.getFill(),n.getStroke());this.setImageStyle(n.getImage());this.setTextStyle(n.getText())},ol.render.canvas.Immediate.prototype.drawGeometry=function(n){var t=n.getType();switch(t){case ol.geom.GeometryType.POINT:this.drawPoint(n);break;case ol.geom.GeometryType.LINE_STRING:this.drawLineString(n);break;case ol.geom.GeometryType.POLYGON:this.drawPolygon(n);break;case ol.geom.GeometryType.MULTI_POINT:this.drawMultiPoint(n);break;case ol.geom.GeometryType.MULTI_LINE_STRING:this.drawMultiLineString(n);break;case ol.geom.GeometryType.MULTI_POLYGON:this.drawMultiPolygon(n);break;case ol.geom.GeometryType.GEOMETRY_COLLECTION:this.drawGeometryCollection(n);break;case ol.geom.GeometryType.CIRCLE:this.drawCircle(n)}},ol.render.canvas.Immediate.prototype.drawFeature=function(n,t){var i=t.getGeometryFunction()(n);i&&ol.extent.intersects(this.extent_,i.getExtent())&&(this.setStyle(t),this.drawGeometry(i))},ol.render.canvas.Immediate.prototype.drawGeometryCollection=function(n){for(var i=n.getGeometriesArray(),t=0,r=i.length;t<r;++t)this.drawGeometry(i[t])},ol.render.canvas.Immediate.prototype.drawPoint=function(n){var t=n.getFlatCoordinates(),i=n.getStride();this.image_&&this.drawImages_(t,0,t.length,i);this.text_!==""&&this.drawText_(t,0,t.length,i)},ol.render.canvas.Immediate.prototype.drawMultiPoint=function(n){var t=n.getFlatCoordinates(),i=n.getStride();this.image_&&this.drawImages_(t,0,t.length,i);this.text_!==""&&this.drawText_(t,0,t.length,i)},ol.render.canvas.Immediate.prototype.drawLineString=function(n){var t,i,r;ol.extent.intersects(this.extent_,n.getExtent())&&(this.strokeState_&&(this.setContextStrokeState_(this.strokeState_),t=this.context_,i=n.getFlatCoordinates(),t.beginPath(),this.moveToLineTo_(i,0,i.length,n.getStride(),!1),t.stroke()),this.text_!==""&&(r=n.getFlatMidpoint(),this.drawText_(r,0,2,2)))},ol.render.canvas.Immediate.prototype.drawMultiLineString=function(n){var o=n.getExtent(),t,e,i;if(ol.extent.intersects(this.extent_,o)){if(this.strokeState_){this.setContextStrokeState_(this.strokeState_);var r=this.context_,s=n.getFlatCoordinates(),u=0,f=n.getEnds(),h=n.getStride();for(r.beginPath(),t=0,e=f.length;t<e;++t)u=this.moveToLineTo_(s,u,f[t],h,!1);r.stroke()}this.text_!==""&&(i=n.getFlatMidpoints(),this.drawText_(i,0,i.length,2))}},ol.render.canvas.Immediate.prototype.drawPolygon=function(n){var t,i;ol.extent.intersects(this.extent_,n.getExtent())&&((this.strokeState_||this.fillState_)&&(this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_),t=this.context_,t.beginPath(),this.drawRings_(n.getOrientedFlatCoordinates(),0,n.getEnds(),n.getStride()),this.fillState_&&t.fill(),this.strokeState_&&t.stroke()),this.text_!==""&&(i=n.getFlatInteriorPoint(),this.drawText_(i,0,2,2)))},ol.render.canvas.Immediate.prototype.drawMultiPolygon=function(n){var o,r;if(ol.extent.intersects(this.extent_,n.getExtent())){if(this.strokeState_||this.fillState_){this.fillState_&&this.setContextFillState_(this.fillState_);this.strokeState_&&this.setContextStrokeState_(this.strokeState_);var i=this.context_,s=n.getOrientedFlatCoordinates(),u=0,f=n.getEndss(),h=n.getStride(),t,e;for(i.beginPath(),t=0,e=f.length;t<e;++t)o=f[t],u=this.drawRings_(s,u,o,h);this.fillState_&&i.fill();this.strokeState_&&i.stroke()}this.text_!==""&&(r=n.getFlatInteriorPoints(),this.drawText_(r,0,r.length,2))}},ol.render.canvas.Immediate.prototype.setContextFillState_=function(n){var i=this.context_,t=this.contextFillState_;t?t.fillStyle!=n.fillStyle&&(t.fillStyle=i.fillStyle=n.fillStyle):(i.fillStyle=n.fillStyle,this.contextFillState_={fillStyle:n.fillStyle})},ol.render.canvas.Immediate.prototype.setContextStrokeState_=function(n){var i=this.context_,t=this.contextStrokeState_;t?(t.lineCap!=n.lineCap&&(t.lineCap=i.lineCap=n.lineCap),ol.has.CANVAS_LINE_DASH&&(ol.array.equals(t.lineDash,n.lineDash)||i.setLineDash(t.lineDash=n.lineDash),t.lineDashOffset!=n.lineDashOffset&&(t.lineDashOffset=i.lineDashOffset=n.lineDashOffset)),t.lineJoin!=n.lineJoin&&(t.lineJoin=i.lineJoin=n.lineJoin),t.lineWidth!=n.lineWidth&&(t.lineWidth=i.lineWidth=n.lineWidth),t.miterLimit!=n.miterLimit&&(t.miterLimit=i.miterLimit=n.miterLimit),t.strokeStyle!=n.strokeStyle&&(t.strokeStyle=i.strokeStyle=n.strokeStyle)):(i.lineCap=n.lineCap,ol.has.CANVAS_LINE_DASH&&(i.setLineDash(n.lineDash),i.lineDashOffset=n.lineDashOffset),i.lineJoin=n.lineJoin,i.lineWidth=n.lineWidth,i.miterLimit=n.miterLimit,i.strokeStyle=n.strokeStyle,this.contextStrokeState_={lineCap:n.lineCap,lineDash:n.lineDash,lineDashOffset:n.lineDashOffset,lineJoin:n.lineJoin,lineWidth:n.lineWidth,miterLimit:n.miterLimit,strokeStyle:n.strokeStyle})},ol.render.canvas.Immediate.prototype.setContextTextState_=function(n){var i=this.context_,t=this.contextTextState_,r=n.textAlign?n.textAlign:ol.render.canvas.defaultTextAlign;t?(t.font!=n.font&&(t.font=i.font=n.font),t.textAlign!=r&&(t.textAlign=r),t.textBaseline!=n.textBaseline&&(t.textBaseline=i.textBaseline=n.textBaseline)):(i.font=n.font,i.textAlign=r,i.textBaseline=n.textBaseline,this.contextTextState_={font:n.font,textAlign:r,textBaseline:n.textBaseline})},ol.render.canvas.Immediate.prototype.setFillStrokeStyle=function(n,t){var i;if(n?(i=n.getColor(),this.fillState_={fillStyle:ol.colorlike.asColorLike(i?i:ol.render.canvas.defaultFillStyle)}):this.fillState_=null,t){var r=t.getColor(),u=t.getLineCap(),f=t.getLineDash(),e=t.getLineDashOffset(),o=t.getLineJoin(),s=t.getWidth(),h=t.getMiterLimit();this.strokeState_={lineCap:u!==undefined?u:ol.render.canvas.defaultLineCap,lineDash:f?f:ol.render.canvas.defaultLineDash,lineDashOffset:e?e:ol.render.canvas.defaultLineDashOffset,lineJoin:o!==undefined?o:ol.render.canvas.defaultLineJoin,lineWidth:this.pixelRatio_*(s!==undefined?s:ol.render.canvas.defaultLineWidth),miterLimit:h!==undefined?h:ol.render.canvas.defaultMiterLimit,strokeStyle:ol.colorlike.asColorLike(r?r:ol.render.canvas.defaultStrokeStyle)}}else this.strokeState_=null},ol.render.canvas.Immediate.prototype.setImageStyle=function(n){if(n){var t=n.getAnchor(),u=n.getImage(1),i=n.getOrigin(),r=n.getSize();this.imageAnchorX_=t[0];this.imageAnchorY_=t[1];this.imageHeight_=r[1];this.image_=u;this.imageOpacity_=n.getOpacity();this.imageOriginX_=i[0];this.imageOriginY_=i[1];this.imageRotateWithView_=n.getRotateWithView();this.imageRotation_=n.getRotation();this.imageScale_=n.getScale()*this.pixelRatio_;this.imageSnapToPixel_=n.getSnapToPixel();this.imageWidth_=r[0]}else this.image_=null},ol.render.canvas.Immediate.prototype.setTextStyle=function(n){var i,r,t;if(n){if(i=n.getFill(),i?(r=i.getColor(),this.textFillState_={fillStyle:ol.colorlike.asColorLike(r?r:ol.render.canvas.defaultFillStyle)}):this.textFillState_=null,t=n.getStroke(),t){var u=t.getColor(),f=t.getLineCap(),e=t.getLineDash(),o=t.getLineDashOffset(),s=t.getLineJoin(),h=t.getWidth(),c=t.getMiterLimit();this.textStrokeState_={lineCap:f!==undefined?f:ol.render.canvas.defaultLineCap,lineDash:e?e:ol.render.canvas.defaultLineDash,lineDashOffset:o?o:ol.render.canvas.defaultLineDashOffset,lineJoin:s!==undefined?s:ol.render.canvas.defaultLineJoin,lineWidth:h!==undefined?h:ol.render.canvas.defaultLineWidth,miterLimit:c!==undefined?c:ol.render.canvas.defaultMiterLimit,strokeStyle:ol.colorlike.asColorLike(u?u:ol.render.canvas.defaultStrokeStyle)}}else this.textStrokeState_=null;var l=n.getFont(),a=n.getOffsetX(),v=n.getOffsetY(),y=n.getRotateWithView(),p=n.getRotation(),w=n.getScale(),b=n.getText(),k=n.getTextAlign(),d=n.getTextBaseline();this.textState_={font:l!==undefined?l:ol.render.canvas.defaultFont,textAlign:k!==undefined?k:ol.render.canvas.defaultTextAlign,textBaseline:d!==undefined?d:ol.render.canvas.defaultTextBaseline};this.text_=b!==undefined?b:"";this.textOffsetX_=a!==undefined?this.pixelRatio_*a:0;this.textOffsetY_=v!==undefined?this.pixelRatio_*v:0;this.textRotateWithView_=y!==undefined?y:!1;this.textRotation_=p!==undefined?p:0;this.textScale_=this.pixelRatio_*(w!==undefined?w:1)}else this.text_=""},n.provide("ol.renderer.Layer"),n.require("ol"),n.require("ol.ImageState"),n.require("ol.Observable"),n.require("ol.TileState"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.functions"),n.require("ol.source.State"),ol.renderer.Layer=function(n){ol.Observable.call(this);this.layer_=n},ol.inherits(ol.renderer.Layer,ol.Observable),ol.renderer.Layer.prototype.forEachFeatureAtCoordinate=ol.nullFunction,ol.renderer.Layer.prototype.hasFeatureAtCoordinate=ol.functions.FALSE,ol.renderer.Layer.prototype.createLoadedTileFinder=function(n,t,i){return function(r,u){function f(n){i[r]||(i[r]={});i[r][n.tileCoord.toString()]=n}return n.forEachLoadedTile(t,r,u,f)}},ol.renderer.Layer.prototype.getLayer=function(){return this.layer_},ol.renderer.Layer.prototype.handleImageChange_=function(n){var t=n.target;t.getState()===ol.ImageState.LOADED&&this.renderIfReadyAndVisible()},ol.renderer.Layer.prototype.loadImage=function(n){var t=n.getState();return t!=ol.ImageState.LOADED&&t!=ol.ImageState.ERROR&&ol.events.listen(n,ol.events.EventType.CHANGE,this.handleImageChange_,this),t==ol.ImageState.IDLE&&(n.load(),t=n.getState()),t==ol.ImageState.LOADED},ol.renderer.Layer.prototype.renderIfReadyAndVisible=function(){var n=this.getLayer();n.getVisible()&&n.getSourceState()==ol.source.State.READY&&this.changed()},ol.renderer.Layer.prototype.scheduleExpireCache=function(n,t){if(t.canExpireCache()){var i=function(n,t,i){var r=ol.getUid(n).toString();r in i.usedTiles&&n.expireCache(i.viewState.projection,i.usedTiles[r])}.bind(null,t);n.postRenderFunctions.push(i)}},ol.renderer.Layer.prototype.updateLogos=function(n,t){var i=t.getLogo();i!==undefined&&(typeof i=="string"?n.logos[i]="":i&&(ol.asserts.assert(typeof i.href=="string",44),ol.asserts.assert(typeof i.src=="string",45),n.logos[i.src]=i.href))},ol.renderer.Layer.prototype.updateUsedTiles=function(n,t,i,r){var u=ol.getUid(t).toString(),f=i.toString();u in n?f in n[u]?n[u][f].extend(r):n[u][f]=r:(n[u]={},n[u][f]=r)},ol.renderer.Layer.prototype.manageTilePyramid=function(n,t,i,r,u,f,e,o,s,h){var p=ol.getUid(t).toString();p in n.wantedTiles||(n.wantedTiles[p]={});for(var k=n.wantedTiles[p],w=n.tileQueue,d=i.getMinZoom(),l,a,b,v,y,c=d;c<=e;++c)for(a=i.getTileRangeForExtentAndZ(f,c,a),b=i.getResolution(c),v=a.minX;v<=a.maxX;++v)for(y=a.minY;y<=a.maxY;++y)e-c<=o?(l=t.getTile(c,v,y,r,u),l.getState()==ol.TileState.IDLE&&(k[l.getKey()]=!0,w.isKeyQueued(l.getKey())||w.enqueue([l,p,i.getTileCoordCenter(l.tileCoord),b])),s!==undefined&&s.call(h,l)):t.useTile(c,v,y,u)},n.provide("ol.renderer.canvas.Layer"),n.require("ol"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.render.Event"),n.require("ol.render.EventType"),n.require("ol.render.canvas"),n.require("ol.render.canvas.Immediate"),n.require("ol.renderer.Layer"),n.require("ol.transform"),ol.renderer.canvas.Layer=function(n){ol.renderer.Layer.call(this,n);this.renderedResolution;this.transform_=ol.transform.create()},ol.inherits(ol.renderer.canvas.Layer,ol.renderer.Layer),ol.renderer.canvas.Layer.prototype.clip=function(n,t,i){var r=t.pixelRatio,s=t.size[0]*r,h=t.size[1]*r,c=t.viewState.rotation,u=ol.extent.getTopLeft(i),f=ol.extent.getTopRight(i),e=ol.extent.getBottomRight(i),o=ol.extent.getBottomLeft(i);ol.transform.apply(t.coordinateToPixelTransform,u);ol.transform.apply(t.coordinateToPixelTransform,f);ol.transform.apply(t.coordinateToPixelTransform,e);ol.transform.apply(t.coordinateToPixelTransform,o);n.save();ol.render.canvas.rotateAtOffset(n,-c,s/2,h/2);n.beginPath();n.moveTo(u[0]*r,u[1]*r);n.lineTo(f[0]*r,f[1]*r);n.lineTo(e[0]*r,e[1]*r);n.lineTo(o[0]*r,o[1]*r);n.clip();ol.render.canvas.rotateAtOffset(n,c,s/2,h/2)},ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_=function(n,t,i,r){var u=this.getLayer();if(u.hasListener(n)){var f=i.size[0]*i.pixelRatio,e=i.size[1]*i.pixelRatio,o=i.viewState.rotation;ol.render.canvas.rotateAtOffset(t,-o,f/2,e/2);var s=r!==undefined?r:this.getTransform(i,0),h=new ol.render.canvas.Immediate(t,i.pixelRatio,i.extent,s,i.viewState.rotation),c=new ol.render.Event(n,h,i,t,null);u.dispatchEvent(c);ol.render.canvas.rotateAtOffset(t,o,f/2,e/2)}},ol.renderer.canvas.Layer.prototype.forEachLayerAtCoordinate=function(n,t,i,r){var u=this.forEachFeatureAtCoordinate(n,t,0,ol.functions.TRUE,this);return u?i.call(r,this.getLayer(),null):undefined},ol.renderer.canvas.Layer.prototype.postCompose=function(n,t,i,r){this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE,n,t,r)},ol.renderer.canvas.Layer.prototype.preCompose=function(n,t,i){this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE,n,t,i)},ol.renderer.canvas.Layer.prototype.dispatchRenderEvent=function(n,t,i){this.dispatchComposeEvent_(ol.render.EventType.RENDER,n,t,i)},ol.renderer.canvas.Layer.prototype.getTransform=function(n,t){var i=n.viewState,r=n.pixelRatio,f=r*n.size[0]/2,e=r*n.size[1]/2,u=r/i.resolution,o=-u,s=-i.rotation,h=-i.center[0]+t,c=-i.center[1];return ol.transform.compose(this.transform_,f,e,u,o,s,h,c)},ol.renderer.canvas.Layer.prototype.composeFrame=function(){},ol.renderer.canvas.Layer.prototype.prepareFrame=function(){},n.provide("ol.renderer.canvas.IntermediateCanvas"),n.require("ol"),n.require("ol.coordinate"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.renderer.canvas.Layer"),n.require("ol.transform"),ol.renderer.canvas.IntermediateCanvas=function(n){ol.renderer.canvas.Layer.call(this,n);this.coordinateToCanvasPixelTransform=ol.transform.create();this.hitCanvasContext_=null},ol.inherits(ol.renderer.canvas.IntermediateCanvas,ol.renderer.canvas.Layer),ol.renderer.canvas.IntermediateCanvas.prototype.composeFrame=function(n,t,i){var r,u,e,f,o;if(this.preCompose(i,n),r=this.getImage(),r){u=t.extent;e=u!==undefined&&!ol.extent.containsExtent(u,n.extent)&&ol.extent.intersects(u,n.extent);e&&this.clip(i,n,u);f=this.getImageTransform();o=i.globalAlpha;i.globalAlpha=t.opacity;var s=f[4],h=f[5],c=r.width*f[0],l=r.height*f[3];i.drawImage(r,0,0,+r.width,+r.height,Math.round(s),Math.round(h),Math.round(c),Math.round(l));i.globalAlpha=o;e&&i.restore()}this.postCompose(i,n,t)},ol.renderer.canvas.IntermediateCanvas.prototype.getImage=function(){},ol.renderer.canvas.IntermediateCanvas.prototype.getImageTransform=function(){},ol.renderer.canvas.IntermediateCanvas.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u){var f=this.getLayer(),e=f.getSource(),o=t.viewState.resolution,s=t.viewState.rotation,h=t.skippedFeatureUids;return e.forEachFeatureAtCoordinate(n,o,s,i,h,function(n){return r.call(u,n,f)})},ol.renderer.canvas.IntermediateCanvas.prototype.forEachLayerAtCoordinate=function(n,t,i,r){var u,f;return this.getImage()?this.getLayer().getSource().forEachFeatureAtCoordinate!==ol.nullFunction?ol.renderer.canvas.Layer.prototype.forEachLayerAtCoordinate.apply(this,arguments):(u=ol.transform.apply(this.coordinateToCanvasPixelTransform,n.slice()),ol.coordinate.scale(u,t.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=ol.dom.createCanvasContext2D(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),u[0],u[1],1,1,0,0,1,1),f=this.hitCanvasContext_.getImageData(0,0,1,1).data,f[3]>0?i.call(r,this.getLayer(),f):undefined):undefined},n.provide("ol.renderer.canvas.ImageLayer"),n.require("ol"),n.require("ol.ImageCanvas"),n.require("ol.LayerType"),n.require("ol.ViewHint"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.layer.VectorRenderType"),n.require("ol.obj"),n.require("ol.plugins"),n.require("ol.renderer.Type"),n.require("ol.renderer.canvas.IntermediateCanvas"),n.require("ol.transform"),ol.renderer.canvas.ImageLayer=function(n){ol.renderer.canvas.IntermediateCanvas.call(this,n);this.image_=null;this.imageTransform_=ol.transform.create();this.skippedFeatures_=[];this.vectorRenderer_=null},ol.inherits(ol.renderer.canvas.ImageLayer,ol.renderer.canvas.IntermediateCanvas),ol.renderer.canvas.ImageLayer.handles=function(n,t){return n===ol.renderer.Type.CANVAS&&(t.getType()===ol.LayerType.IMAGE||t.getType()===ol.LayerType.VECTOR&&t.getRenderMode()===ol.layer.VectorRenderType.IMAGE)},ol.renderer.canvas.ImageLayer.create=function(n,t){var f=new ol.renderer.canvas.ImageLayer(t),u,i,e,r;if(t.getType()===ol.LayerType.VECTOR)for(u=ol.plugins.getLayerRendererPlugins(),i=0,e=u.length;i<e;++i)r=u[i],r!==ol.renderer.canvas.ImageLayer&&r.handles(ol.renderer.Type.CANVAS,t)&&f.setVectorRenderer(r.create(n,t));return f},ol.renderer.canvas.ImageLayer.prototype.getImage=function(){return this.image_?this.image_.getImage():null},ol.renderer.canvas.ImageLayer.prototype.getImageTransform=function(){return this.imageTransform_},ol.renderer.canvas.ImageLayer.prototype.prepareFrame=function(n,t){var i=n.pixelRatio,s=n.size,v=n.viewState,h=v.center,u=v.resolution,r,it=this.getLayer(),y=it.getSource(),b=n.viewHints,f=n.extent,p,w,e,d;if(t.extent!==undefined&&(f=ol.extent.getIntersection(f,t.extent)),!b[ol.ViewHint.ANIMATING]&&!b[ol.ViewHint.INTERACTING]&&!ol.extent.isEmpty(f))if(p=v.projection,ol.ENABLE_RASTER_REPROJECTION||(w=y.getProjection(),w&&(p=w)),e=this.vectorRenderer_,e){var c=e.context,o=ol.obj.assign({},n,{size:[ol.extent.getWidth(f)/u,ol.extent.getHeight(f)/u],viewState:ol.obj.assign({},n.viewState,{rotation:0})}),k=Object.keys(o.skippedFeatureUids).sort();e.prepareFrame(o,t)&&(e.replayGroupChanged||!ol.array.equals(k,this.skippedFeatures_))&&(c.canvas.width=o.size[0]*i,c.canvas.height=o.size[1]*i,e.composeFrame(o,t,c),this.image_=new ol.ImageCanvas(f,u,i,c.canvas),this.skippedFeatures_=k)}else r=y.getImage(f,u,i,p),r&&(d=this.loadImage(r),d&&(this.image_=r));if(this.image_){r=this.image_;var g=r.getExtent(),l=r.getResolution(),a=r.getPixelRatio(),nt=i*l/(u*a),tt=ol.transform.compose(this.imageTransform_,i*s[0]/2,i*s[1]/2,nt,nt,0,a*(g[0]-h[0])/l,a*(h[1]-g[3])/l);ol.transform.compose(this.coordinateToCanvasPixelTransform,i*s[0]/2-tt[4],i*s[1]/2-tt[5],i/u,-i/u,0,-h[0],-h[1]);this.updateLogos(n,y);this.renderedResolution=l*i/a}return!!this.image_},ol.renderer.canvas.ImageLayer.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(n,t,i,r,u):ol.renderer.canvas.IntermediateCanvas.prototype.forEachFeatureAtCoordinate.call(this,n,t,i,r,u)},ol.renderer.canvas.ImageLayer.prototype.setVectorRenderer=function(n){this.vectorRenderer_=n},n.provide("ol.style.IconImageCache"),n.require("ol.color"),ol.style.IconImageCache=function(){this.cache_={};this.cacheSize_=0;this.maxCacheSize_=32},ol.style.IconImageCache.getKey=function(n,t,i){var r=i?ol.color.asString(i):"null";return t+":"+n+":"+r},ol.style.IconImageCache.prototype.clear=function(){this.cache_={};this.cacheSize_=0},ol.style.IconImageCache.prototype.expire=function(){if(this.cacheSize_>this.maxCacheSize_){var i=0,n,t;for(n in this.cache_)t=this.cache_[n],(i++&3)!=0||t.hasListener()||(delete this.cache_[n],--this.cacheSize_)}},ol.style.IconImageCache.prototype.get=function(n,t,i){var r=ol.style.IconImageCache.getKey(n,t,i);return r in this.cache_?this.cache_[r]:null},ol.style.IconImageCache.prototype.set=function(n,t,i,r){var u=ol.style.IconImageCache.getKey(n,t,i);this.cache_[u]=r;++this.cacheSize_},ol.style.IconImageCache.prototype.setSize=function(n){this.maxCacheSize_=n;this.expire()},n.provide("ol.style"),n.require("ol.style.IconImageCache"),ol.style.iconImageCache=new ol.style.IconImageCache,n.provide("ol.renderer.Map"),n.require("ol"),n.require("ol.Disposable"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.layer.Layer"),n.require("ol.plugins"),n.require("ol.style"),n.require("ol.transform"),ol.renderer.Map=function(n,t){ol.Disposable.call(this);this.map_=t;this.layerRenderers_={};this.layerRendererListeners_={}},ol.inherits(ol.renderer.Map,ol.Disposable),ol.renderer.Map.prototype.calculateMatrices2D=function(n){var t=n.viewState,i=n.coordinateToPixelTransform,r=n.pixelToCoordinateTransform;ol.transform.compose(i,n.size[0]/2,n.size[1]/2,1/t.resolution,-1/t.resolution,-t.rotation,-t.center[0],-t.center[1]);ol.transform.invert(ol.transform.setFromArray(r,i))},ol.renderer.Map.prototype.removeLayerRenderers=function(){for(var n in this.layerRenderers_)this.removeLayerRendererByKey_(n).dispose()},ol.renderer.Map.expireIconCache_=function(){var n=ol.style.iconImageCache;n.expire()},ol.renderer.Map.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u,f,e){function tt(n,i){var e=ol.getUid(n).toString(),f=t.layerStates[ol.getUid(i)].managed;if(!(e in t.skippedFeatureUids&&!f))return r.call(u,n,f?i:null)}var l,y=t.viewState,nt=y.resolution,p=y.projection,w=n,k,a,d,c,v,o,g;if(p.canWrapX()){var s=p.getExtent(),b=ol.extent.getWidth(s),h=n[0];(h<s[0]||h>s[2])&&(k=Math.ceil((s[0]-h)/b),w=[h+b*k,n[1]])}for(a=t.layerStatesArray,d=a.length,c=d-1;c>=0;--c)if(v=a[c],o=v.layer,ol.layer.Layer.visibleAtResolution(v,nt)&&f.call(e,o)&&(g=this.getLayerRenderer(o),o.getSource()&&(l=g.forEachFeatureAtCoordinate(o.getSource().getWrapX()?w:n,t,i,tt,u)),l))return l;return undefined},ol.renderer.Map.prototype.forEachLayerAtPixel=function(){},ol.renderer.Map.prototype.hasFeatureAtCoordinate=function(n,t,i,r,u){var f=this.forEachFeatureAtCoordinate(n,t,i,ol.functions.TRUE,this,r,u);return f!==undefined},ol.renderer.Map.prototype.getLayerRenderer=function(n){var i=ol.getUid(n).toString(),u,t,e,r,o,f;if(i in this.layerRenderers_)return this.layerRenderers_[i];for(u=ol.plugins.getLayerRendererPlugins(),e=this.getType(),r=0,o=u.length;r<o;++r)if(f=u[r],f.handles(e,n)){t=f.create(this,n);break}if(t)this.layerRenderers_[i]=t,this.layerRendererListeners_[i]=ol.events.listen(t,ol.events.EventType.CHANGE,this.handleLayerRendererChange_,this);else throw new Error("Unable to create renderer for layer: "+n.getType());return t},ol.renderer.Map.prototype.getLayerRendererByKey=function(n){return this.layerRenderers_[n]},ol.renderer.Map.prototype.getLayerRenderers=function(){return this.layerRenderers_},ol.renderer.Map.prototype.getMap=function(){return this.map_},ol.renderer.Map.prototype.getType=function(){},ol.renderer.Map.prototype.handleLayerRendererChange_=function(){this.map_.render()},ol.renderer.Map.prototype.removeLayerRendererByKey_=function(n){var t=this.layerRenderers_[n];return delete this.layerRenderers_[n],ol.events.unlistenByKey(this.layerRendererListeners_[n]),delete this.layerRendererListeners_[n],t},ol.renderer.Map.prototype.renderFrame=ol.nullFunction,ol.renderer.Map.prototype.removeUnusedLayerRenderers_=function(n,t){for(var i in this.layerRenderers_)t&&i in t.layerStates||this.removeLayerRendererByKey_(i).dispose()},ol.renderer.Map.prototype.scheduleExpireIconCache=function(n){n.postRenderFunctions.push(ol.renderer.Map.expireIconCache_)},ol.renderer.Map.prototype.scheduleRemoveUnusedLayerRenderers=function(n){for(var t in this.layerRenderers_)if(!(t in n.layerStates)){n.postRenderFunctions.push(this.removeUnusedLayerRenderers_.bind(this));return}},ol.renderer.Map.sortByZIndex=function(n,t){return n.zIndex-t.zIndex},n.provide("ol.renderer.canvas.Map"),n.require("ol.transform"),n.require("ol"),n.require("ol.array"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.layer.Layer"),n.require("ol.render.Event"),n.require("ol.render.EventType"),n.require("ol.render.canvas"),n.require("ol.render.canvas.Immediate"),n.require("ol.renderer.Map"),n.require("ol.renderer.Type"),n.require("ol.source.State"),ol.renderer.canvas.Map=function(n,t){ol.renderer.Map.call(this,n,t);this.context_=ol.dom.createCanvasContext2D();this.canvas_=this.context_.canvas;this.canvas_.style.width="100%";this.canvas_.style.height="100%";this.canvas_.style.display="block";this.canvas_.className=ol.css.CLASS_UNSELECTABLE;n.insertBefore(this.canvas_,n.childNodes[0]||null);this.renderedVisible_=!0;this.transform_=ol.transform.create()},ol.inherits(ol.renderer.canvas.Map,ol.renderer.Map),ol.renderer.canvas.Map.handles=function(n){return n===ol.renderer.Type.CANVAS},ol.renderer.canvas.Map.create=function(n,t){return new ol.renderer.canvas.Map(n,t)},ol.renderer.canvas.Map.prototype.dispatchComposeEvent_=function(n,t){var i=this.getMap(),r=this.context_;if(i.hasListener(n)){var u=t.extent,f=t.pixelRatio,e=t.viewState,o=e.rotation,s=this.getTransform(t),h=new ol.render.canvas.Immediate(r,f,u,s,o),c=new ol.render.Event(n,h,t,r,null);i.dispatchEvent(c)}},ol.renderer.canvas.Map.prototype.getTransform=function(n){var t=n.viewState,r=this.canvas_.width/2,u=this.canvas_.height/2,i=n.pixelRatio/t.resolution,f=-i,e=-t.rotation,o=-t.center[0],s=-t.center[1];return ol.transform.compose(this.transform_,r,u,i,f,e,o,s)},ol.renderer.canvas.Map.prototype.getType=function(){return ol.renderer.Type.CANVAS},ol.renderer.canvas.Map.prototype.renderFrame=function(n){var f,e,c,o,l,a,s,t;if(!n){this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1);return}var i=this.context_,h=n.pixelRatio,r=Math.round(n.size[0]*h),u=Math.round(n.size[1]*h);for(this.canvas_.width!=r||this.canvas_.height!=u?(this.canvas_.width=r,this.canvas_.height=u):i.clearRect(0,0,r,u),f=n.viewState.rotation,this.calculateMatrices2D(n),this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE,n),e=n.layerStatesArray,ol.array.stableSort(e,ol.renderer.Map.sortByZIndex),f&&(i.save(),ol.render.canvas.rotateAtOffset(i,f,r/2,u/2)),c=n.viewState.resolution,o=0,l=e.length;o<l;++o)(t=e[o],a=t.layer,s=this.getLayerRenderer(a),ol.layer.Layer.visibleAtResolution(t,c)&&t.sourceState==ol.source.State.READY)&&s.prepareFrame(n,t)&&s.composeFrame(n,t,i);f&&i.restore();this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE,n);this.renderedVisible_||(this.canvas_.style.display="",this.renderedVisible_=!0);this.scheduleRemoveUnusedLayerRenderers(n);this.scheduleExpireIconCache(n)},ol.renderer.canvas.Map.prototype.forEachLayerAtPixel=function(n,t,i,r,u,f){for(var o,a=t.viewState,v=a.resolution,c=t.layerStatesArray,y=c.length,p=ol.transform.apply(t.pixelToCoordinateTransform,n.slice()),s,h,l,e=y-1;e>=0;--e)if(s=c[e],h=s.layer,ol.layer.Layer.visibleAtResolution(s,v)&&u.call(f,h)&&(l=this.getLayerRenderer(h),o=l.forEachLayerAtCoordinate(p,t,i,r),o))return o;return undefined},n.provide("ol.renderer.canvas.TileLayer"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.TileRange"),n.require("ol.TileState"),n.require("ol.ViewHint"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.renderer.Type"),n.require("ol.renderer.canvas.IntermediateCanvas"),n.require("ol.transform"),ol.renderer.canvas.TileLayer=function(n){ol.renderer.canvas.IntermediateCanvas.call(this,n);this.context=this.context===null?null:ol.dom.createCanvasContext2D();this.oversampling_;this.renderedExtent_=null;this.renderedRevision;this.renderedTiles=[];this.tmpExtent=ol.extent.createEmpty();this.tmpTileRange_=new ol.TileRange(0,0,0,0);this.imageTransform_=ol.transform.create();this.zDirection=0},ol.inherits(ol.renderer.canvas.TileLayer,ol.renderer.canvas.IntermediateCanvas),ol.renderer.canvas.TileLayer.handles=function(n,t){return n===ol.renderer.Type.CANVAS&&t.getType()===ol.LayerType.TILE},ol.renderer.canvas.TileLayer.create=function(n,t){return new ol.renderer.canvas.TileLayer(t)},ol.renderer.canvas.TileLayer.prototype.isDrawableTile_=function(n){var t=n.getState(),i=this.getLayer().getUseInterimTilesOnError();return t==ol.TileState.LOADED||t==ol.TileState.EMPTY||t==ol.TileState.ERROR&&!i},ol.renderer.canvas.TileLayer.prototype.prepareFrame=function(n,t){var r=n.pixelRatio,k=n.size,et=n.viewState,h=et.projection,y=et.resolution,d=et.center,g=this.getLayer(),f=g.getSource(),dt=f.getRevision(),o=f.getTileGridForProjection(h),u=o.getZForResolution(y,this.zDirection),c=o.getResolution(u),e=Math.round(y/c)||1,l=n.extent,st,ti,ht,ct,it,ut,fi,vt,yt,b,ft,ei,pt,oi,wt,si,hi,ci,bt,kt;if(t.extent!==undefined&&(l=ol.extent.getIntersection(l,t.extent)),ol.extent.isEmpty(l))return!1;var s=o.getTileRangeForExtentAndZ(l,u),nt=o.getTileRangeExtent(u,s),p=f.getTilePixelRatio(r),w={};w[u]={};for(var gt=this.createLoadedTileFinder(f,h,w),ot=this.tmpExtent,ni=this.tmpTileRange_,tt=!1,i,v,a=s.minX;a<=s.maxX;++a)for(v=s.minY;v<=s.maxY;++v)(i=f.getTile(u,a,v,r,h),i.getState()==ol.TileState.ERROR&&(g.getUseInterimTilesOnError()?g.getPreload()>0&&(tt=!0):i.setState(ol.TileState.LOADED)),this.isDrawableTile_(i)||(i=i.getInterimTile()),this.isDrawableTile_(i)&&(st=ol.getUid(this),i.getState()==ol.TileState.LOADED&&(w[u][i.tileCoord.toString()]=i,ti=i.inTransition(st),!tt&&(ti||this.renderedTiles.indexOf(i)===-1)&&(tt=!0)),i.getAlpha(st,n.time)===1))||(ht=o.getTileCoordChildTileRange(i.tileCoord,ni,ot),ct=!1,ht&&(ct=gt(u+1,ht)),ct||o.forEachTileCoordParentTileRange(i.tileCoord,gt,null,ni,ot));var li=c*r/p*e,ii=n.viewHints,ri=ii[ol.ViewHint.ANIMATING]||ii[ol.ViewHint.INTERACTING];if(!(this.renderedResolution&&Date.now()-n.time>16&&ri)&&(tt||!(this.renderedExtent_&&ol.extent.containsExtent(this.renderedExtent_,l))||this.renderedRevision!=dt||e!=this.oversampling_||!ri&&li!=this.renderedResolution)){if(it=this.context,it){var ui=f.getTilePixelSize(u,r,h),lt=Math.round(s.getWidth()*ui[0]/e),at=Math.round(s.getHeight()*ui[1]/e),rt=it.canvas;rt.width!=lt||rt.height!=at?(this.oversampling_=e,rt.width=lt,rt.height=at):(this.renderedExtent_&&!ol.extent.equals(nt,this.renderedExtent_)&&it.clearRect(0,0,lt,at),e=this.oversampling_)}for(this.renderedTiles.length=0,ut=Object.keys(w).map(Number),ut.sort(function(n,t){return n===u?1:t===u?-1:n>t?1:n<t?-1:0}),ft=0,ei=ut.length;ft<ei;++ft){b=ut[ft];yt=f.getTilePixelSize(b,r,h);fi=o.getResolution(b);vt=fi/c;oi=p*f.getGutter(h);wt=w[b];for(ci in wt)i=wt[ci],pt=o.getTileCoordExtent(i.getTileCoord(),ot),a=(pt[0]-nt[0])/c*p/e,v=(nt[3]-pt[3])/c*p/e,si=yt[0]*vt/e,hi=yt[1]*vt/e,this.drawTileImage(i,n,t,a,v,si,hi,oi,u===b),this.renderedTiles.push(i)}this.renderedRevision=dt;this.renderedResolution=c*r/p*e;this.renderedExtent_=nt}return bt=this.renderedResolution/y,kt=ol.transform.compose(this.imageTransform_,r*k[0]/2,r*k[1]/2,bt,bt,0,(this.renderedExtent_[0]-d[0])/this.renderedResolution*r,(d[1]-this.renderedExtent_[3])/this.renderedResolution*r),ol.transform.compose(this.coordinateToCanvasPixelTransform,r*k[0]/2-kt[4],r*k[1]/2-kt[5],r/y,-r/y,0,-d[0],-d[1]),this.updateUsedTiles(n.usedTiles,f,u,s),this.manageTilePyramid(n,f,o,r,h,l,u,g.getPreload()),this.scheduleExpireCache(n,f),this.updateLogos(n,f),this.renderedTiles.length>0},ol.renderer.canvas.TileLayer.prototype.drawTileImage=function(n,t,i,r,u,f,e,o,s){var c=n.getImage(this.getLayer()),l,h,a;c&&(l=ol.getUid(this),h=s?n.getAlpha(l,t.time):1,h!==1||this.getLayer().getSource().getOpaque(t.viewState.projection)||this.context.clearRect(r,u,f,e),a=h!==this.context.globalAlpha,a&&(this.context.save(),this.context.globalAlpha=h),this.context.drawImage(c,o,o,c.width-2*o,c.height-2*o,r,u,f,e),a&&this.context.restore(),h!==1?t.animate=!0:s&&n.endTransition(l))},ol.renderer.canvas.TileLayer.prototype.getImage=function(){var n=this.context;return n?n.canvas:null},ol.renderer.canvas.TileLayer.prototype.getLayer,ol.renderer.canvas.TileLayer.prototype.getImageTransform=function(){return this.imageTransform_},n.provide("ol.ext.rbush"),ol.ext.rbush=function(){},function(){(function(n){"use strict";function a(n,t,i,r,u){v(n,t,i||0,r||n.length-1,u||d)}function v(n,t,i,u,f){while(u>i){if(u-i>600){var o=u-i+1,l=t-i+1,a=Math.log(o),h=.5*Math.exp(2*a/3),y=.5*Math.sqrt(a*h*(o-h)/o)*(l-o/2<0?-1:1),p=Math.max(i,Math.floor(t-l*h/o+y)),w=Math.min(u,Math.floor(t+(o-l)*h/o+y));v(n,t,p,w,f)}var c=n[t],s=i,e=u;for(r(n,i,t),f(n[u],c)>0&&r(n,i,u);s<e;){for(r(n,s,e),s++,e--;f(n[s],c)<0;)s++;while(f(n[e],c)>0)e--}f(n[i],c)===0?r(n,i,e):(e++,r(n,e,u));e<=t&&(i=e+1);t<=e&&(u=e-1)}}function r(n,t,i){var r=n[t];n[t]=n[i];n[i]=r}function d(n,t){return n<t?-1:n>t?1:0}function e(n,t){if(!(this instanceof e))return new e(n,t);this._maxEntries=Math.max(4,n||9);this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4));t&&this._initFormat(t);this.clear()}function g(n,t,i){if(!i)return t.indexOf(n);for(var r=0;r<t.length;r++)if(i(n,t[r]))return r;return-1}function t(n,t){u(n,0,n.children.length,t,n)}function u(n,t,r,u,e){e||(e=i(null));e.minX=Infinity;e.minY=Infinity;e.maxX=-Infinity;e.maxY=-Infinity;for(var o=t,s;o<r;o++)s=n.children[o],f(e,n.leaf?u(s):s);return e}function f(n,t){return n.minX=Math.min(n.minX,t.minX),n.minY=Math.min(n.minY,t.minY),n.maxX=Math.max(n.maxX,t.maxX),n.maxY=Math.max(n.maxY,t.maxY),n}function p(n,t){return n.minX-t.minX}function w(n,t){return n.minY-t.minY}function h(n){return(n.maxX-n.minX)*(n.maxY-n.minY)}function o(n){return n.maxX-n.minX+(n.maxY-n.minY)}function nt(n,t){return(Math.max(t.maxX,n.maxX)-Math.min(t.minX,n.minX))*(Math.max(t.maxY,n.maxY)-Math.min(t.minY,n.minY))}function tt(n,t){var i=Math.max(n.minX,t.minX),r=Math.max(n.minY,t.minY),u=Math.min(n.maxX,t.maxX),f=Math.min(n.maxY,t.maxY);return Math.max(0,u-i)*Math.max(0,f-r)}function c(n,t){return n.minX<=t.minX&&n.minY<=t.minY&&t.maxX<=n.maxX&&t.maxY<=n.maxY}function s(n,t){return t.minX<=n.maxX&&t.minY<=n.maxY&&t.maxX>=n.minX&&t.maxY>=n.minY}function i(n){return{children:n,height:1,leaf:!0,minX:Infinity,minY:Infinity,maxX:-Infinity,maxY:-Infinity}}function b(n,t,i,r,u){for(var f=[t,i],e;f.length;)(i=f.pop(),t=f.pop(),i-t<=r)||(e=t+Math.ceil((i-t)/r/2)*r,l(n,e,t,i,u),f.push(t,e,e,i))}var l=a,k=a,y;l.default=k;y=e;e.prototype={all:function(){return this._all(this.data,[])},search:function(n){var t=this.data,r=[],h=this.toBBox,f,u,o,i,e;if(!s(n,t))return r;for(f=[];t;){for(u=0,o=t.children.length;u<o;u++)i=t.children[u],e=t.leaf?h(i):i,s(n,e)&&(t.leaf?r.push(i):c(n,e)?this._all(i,r):f.push(i));t=f.pop()}return r},collides:function(n){var t=this.data,o=this.toBBox,u,i,e,r,f;if(!s(n,t))return!1;for(u=[];t;){for(i=0,e=t.children.length;i<e;i++)if(r=t.children[i],f=t.leaf?o(r):r,s(n,f)){if(t.leaf||c(n,f))return!0;u.push(r)}t=u.pop()}return!1},load:function(n){var i,r,t,u;if(!(n&&n.length))return this;if(n.length<this._minEntries){for(i=0,r=n.length;i<r;i++)this.insert(n[i]);return this}return t=this._build(n.slice(),0,n.length-1,0),this.data.children.length?this.data.height===t.height?this._splitRoot(this.data,t):(this.data.height<t.height&&(u=this.data,this.data=t,t=u),this._insert(t,this.data.height-t.height-1,!0)):this.data=t,this},insert:function(n){return n&&this._insert(n,this.data.height-1),this},clear:function(){return this.data=i([]),this},remove:function(n,t){if(!n)return this;for(var i=this.data,h=this.toBBox(n),r=[],s=[],u,f,e,o;i||r.length;){if(i||(i=r.pop(),f=r[r.length-1],u=s.pop(),o=!0),i.leaf&&(e=g(n,i.children,t),e!==-1))return i.children.splice(e,1),r.push(i),this._condense(r),this;o||i.leaf||!c(i,h)?f?(u++,i=f.children[u],o=!1):i=null:(r.push(i),s.push(u),u=0,f=i,i=i.children[0])}return this},toBBox:function(n){return n},compareMinX:p,compareMinY:w,toJSON:function(){return this.data},fromJSON:function(n){return this.data=n,this},_all:function(n,t){for(var i=[];n;)n.leaf?t.push.apply(t,n.children):i.push.apply(i,n.children),n=i.pop();return t},_build:function(n,r,u,f){var l=u-r+1,o=this._maxEntries,e,h,a,s,c,v,y;if(l<=o)return e=i(n.slice(r,u+1)),t(e,this.toBBox),e;for(f||(f=Math.ceil(Math.log(l)/Math.log(o)),o=Math.ceil(l/Math.pow(o,f-1))),e=i([]),e.leaf=!1,e.height=f,h=Math.ceil(l/o),a=h*Math.ceil(Math.sqrt(o)),b(n,r,u,a,this.compareMinX),s=r;s<=u;s+=a)for(v=Math.min(s+a-1,u),b(n,s,v,h,this.compareMinY),c=s;c<=v;c+=h)y=Math.min(c+h-1,v),e.children.push(this._build(n,c,y,f-1));return t(e,this.toBBox),e},_chooseSubtree:function(n,t,i,r){for(var o,a,e,l,u,s,f,c;;){if(r.push(t),t.leaf||r.length-1===i)break;for(f=c=Infinity,o=0,a=t.children.length;o<a;o++)e=t.children[o],u=h(e),s=nt(n,e)-u,s<c?(c=s,f=u<f?u:f,l=e):s===c&&u<f&&(f=u,l=e);t=l||t.children[0]}return t},_insert:function(n,t,i){var o=this.toBBox,u=i?n:o(n),r=[],e=this._chooseSubtree(u,this.data,t,r);for(e.children.push(n),f(e,u);t>=0;)if(r[t].children.length>this._maxEntries)this._split(r,t),t--;else break;this._adjustParentBBoxes(u,r,t)},_split:function(n,r){var u=n[r],o=u.children.length,s=this._minEntries,e,f;this._chooseSplitAxis(u,s,o);e=this._chooseSplitIndex(u,s,o);f=i(u.children.splice(e,u.children.length-e));f.height=u.height;f.leaf=u.leaf;t(u,this.toBBox);t(f,this.toBBox);r?n[r-1].children.push(f):this._splitRoot(u,f)},_splitRoot:function(n,r){this.data=i([n,r]);this.data.height=n.height+1;this.data.leaf=!1;t(this.data,this.toBBox)},_chooseSplitIndex:function(n,t,i){for(var c,l,o,e,f,a,s=f=Infinity,r=t;r<=i-t;r++)c=u(n,0,r,this.toBBox),l=u(n,r,i,this.toBBox),o=tt(c,l),e=h(c)+h(l),o<s?(s=o,a=r,f=e<f?e:f):o===s&&e<f&&(f=e,a=r);return a},_chooseSplitAxis:function(n,t,i){var r=n.leaf?this.compareMinX:p,u=n.leaf?this.compareMinY:w,f=this._allDistMargin(n,t,i,r),e=this._allDistMargin(n,t,i,u);f<e&&n.children.sort(r)},_allDistMargin:function(n,t,i,r){n.children.sort(r);for(var h=this.toBBox,c=u(n,0,t,h),l=u(n,i-t,i,h),a=o(c)+o(l),s,e=t;e<i-t;e++)s=n.children[e],f(c,n.leaf?h(s):s),a+=o(c);for(e=i-t-1;e>=t;e--)s=n.children[e],f(l,n.leaf?h(s):s),a+=o(l);return a},_adjustParentBBoxes:function(n,t,i){for(var r=i;r>=0;r--)f(t[r],n)},_condense:function(n){for(var i=n.length-1,r;i>=0;i--)n[i].children.length===0?i>0?(r=n[i-1].children,r.splice(r.indexOf(n[i]),1)):this.clear():t(n[i],this.toBBox)},_initFormat:function(n){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(n[0]));this.compareMinY=new Function("a","b",t.join(n[1]));this.toBBox=new Function("a","return {minX: a"+n[0]+", minY: a"+n[1]+", maxX: a"+n[2]+", maxY: a"+n[3]+"};")}};n["default"]=y})(this.rbush=this.rbush||{})}.call(ol.ext),ol.ext.rbush=ol.ext.rbush.default,n.provide("ol.render.ReplayGroup"),ol.render.ReplayGroup=function(){},ol.render.ReplayGroup.prototype.getReplay=function(){},ol.render.ReplayGroup.prototype.isEmpty=function(){},n.provide("ol.render.ReplayType"),ol.render.ReplayType={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"},n.provide("ol.geom.flat.length"),ol.geom.flat.length.lineString=function(n,t,i,r){for(var o=n[t],s=n[t+1],h=0,f,e,u=t+r;u<i;u+=r)f=n[u],e=n[u+1],h+=Math.sqrt((f-o)*(f-o)+(e-s)*(e-s)),o=f,s=e;return h},ol.geom.flat.length.linearRing=function(n,t,i,r){var e=ol.geom.flat.length.lineString(n,t,i,r),u=n[i-r]-n[t],f=n[i-r+1]-n[t+1];return e+Math.sqrt(u*u+f*f)},n.provide("ol.geom.flat.textpath"),n.require("ol.math"),ol.geom.flat.textpath.lineString=function(n,t,i,r,u,f,e,o){var tt=[],y=n[t]>n[i-r],ft=u.length,p=n[t],w=n[t+1],b,nt,c,ut,ot,l,k;t+=r;var a=n[t],v=n[t+1],it=0,d=Math.sqrt(Math.pow(a-p,2)+Math.pow(v-w,2)),s="",rt=0,h,et,g;for(b=0;b<ft;++b){for(et=y?ft-b-1:b,nt=u.charAt(et),s=y?nt+s:s+nt,c=f(s)-rt,rt+=c,ut=e+c/2;t<i-r&&it+d<ut;)p=a,w=v,t+=r,a=n[t],v=n[t+1],it+=d,d=Math.sqrt(Math.pow(a-p,2)+Math.pow(v-w,2));if(ot=ut-it,l=Math.atan2(v-w,a-p),y&&(l+=l>0?-Math.PI:Math.PI),g!==undefined&&(k=l-g,k+=k>Math.PI?-2*Math.PI:k<-Math.PI?2*Math.PI:0,Math.abs(k)>o))return null;var st=ot/d,ht=ol.math.lerp(p,a,st),ct=ol.math.lerp(w,v,st);g==l?(y&&(h[0]=ht,h[1]=ct,h[2]=c/2),h[4]=s):(s=nt,rt=c,h=[ht,ct,c/2,l,s],y?tt.unshift(h):tt.push(h),g=l);e+=c}return tt},n.provide("ol.render.canvas.Instruction"),ol.render.canvas.Instruction={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},n.provide("ol.render.replay"),n.require("ol.render.ReplayType"),ol.render.replay.ORDER=[ol.render.ReplayType.POLYGON,ol.render.ReplayType.CIRCLE,ol.render.ReplayType.LINE_STRING,ol.render.ReplayType.IMAGE,ol.render.ReplayType.TEXT,ol.render.ReplayType.DEFAULT],ol.render.replay.TEXT_ALIGN={},ol.render.replay.TEXT_ALIGN.left=0,ol.render.replay.TEXT_ALIGN.end=0,ol.render.replay.TEXT_ALIGN.center=.5,ol.render.replay.TEXT_ALIGN.right=1,ol.render.replay.TEXT_ALIGN.start=1,ol.render.replay.TEXT_ALIGN.top=0,ol.render.replay.TEXT_ALIGN.middle=.5,ol.render.replay.TEXT_ALIGN.hanging=.2,ol.render.replay.TEXT_ALIGN.alphabetic=.8,ol.render.replay.TEXT_ALIGN.ideographic=.8,ol.render.replay.TEXT_ALIGN.bottom=1,n.provide("ol.render.canvas.Replay"),n.require("ol"),n.require("ol.array"),n.require("ol.colorlike"),n.require("ol.extent"),n.require("ol.extent.Relationship"),n.require("ol.geom.GeometryType"),n.require("ol.geom.flat.inflate"),n.require("ol.geom.flat.length"),n.require("ol.geom.flat.textpath"),n.require("ol.geom.flat.transform"),n.require("ol.has"),n.require("ol.obj"),n.require("ol.render.VectorContext"),n.require("ol.render.canvas"),n.require("ol.render.canvas.Instruction"),n.require("ol.render.replay"),n.require("ol.transform"),ol.render.canvas.Replay=function(n,t,i,r,u,f){ol.render.VectorContext.call(this);this.declutterTree=f;this.tmpExtent_=ol.extent.createEmpty();this.tolerance=n;this.maxExtent=t;this.overlaps=u;this.pixelRatio=r;this.maxLineWidth=0;this.resolution=i;this.fillOrigin_;this.beginGeometryInstruction1_=null;this.beginGeometryInstruction2_=null;this.bufferedMaxExtent_=null;this.instructions=[];this.coordinates=[];this.coordinateCache_={};this.renderedTransform_=ol.transform.create();this.hitDetectionInstructions=[];this.pixelCoordinates_=null;this.state={};this.viewRotation_=0;this.tmpLocalTransform_=ol.transform.create();this.resetTransform_=ol.transform.create()},ol.inherits(ol.render.canvas.Replay,ol.render.VectorContext),ol.render.canvas.Replay.prototype.replayTextBackground_=function(n,t,i,r,u,f,e){n.beginPath();n.moveTo.apply(n,t);n.lineTo.apply(n,i);n.lineTo.apply(n,r);n.lineTo.apply(n,u);n.lineTo.apply(n,t);f&&(this.fillOrigin_=f[2],this.fill_(n));e&&(this.setStrokeStyle_(n,e),n.stroke())},ol.render.canvas.Replay.prototype.replayImage_=function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b){var st=w||b,nt=this.tmpLocalTransform_,tt,vt,yt,pt,et,ot;u*=a;f*=a;t-=u;i-=f;v&&(t=Math.round(t),i=Math.round(i));var ht=y+h>r.width?r.width-h:y,ct=o+c>r.height?r.height-c:o,k=this.tmpExtent_,lt=p[3]+ht*a+p[1],at=p[0]+ct*a+p[2],d=t-p[3],g=i-p[0],it,rt,ut,ft;if((st||l!==0)&&(it=[d,g],rt=[d+lt,g],ut=[d+lt,g+at],ft=[d,g+at]),tt=null,l!==0?(vt=t+u,yt=i+f,tt=ol.transform.compose(nt,vt,yt,1,1,l,-vt,-yt),ol.extent.createOrUpdateEmpty(k),ol.extent.extendCoordinate(k,ol.transform.apply(nt,it)),ol.extent.extendCoordinate(k,ol.transform.apply(nt,rt)),ol.extent.extendCoordinate(k,ol.transform.apply(nt,ut)),ol.extent.extendCoordinate(k,ol.transform.apply(nt,ft))):ol.extent.createOrUpdate(d,g,d+lt,g+at,k),pt=n.canvas,et=k[0]<=pt.width&&k[2]>=0&&k[1]<=pt.height&&k[3]>=0,e){if(!et&&e[4]==1)return;ol.extent.extend(e,k);ot=et?[n,tt?tt.slice(0):null,s,r,h,c,ht,ct,t,i,a]:null;ot&&st&&ot.push(w,b,it,rt,ut,ft);e.push(ot)}else et&&(st&&this.replayTextBackground_(n,it,rt,ut,ft,w,b),ol.render.canvas.drawImage(n,tt,s,r,h,c,ht,ct,t,i,a))},ol.render.canvas.Replay.prototype.applyPixelRatio=function(n){var t=this.pixelRatio;return t==1?n:n.map(function(n){return n*t})},ol.render.canvas.Replay.prototype.appendFlatCoordinates=function(n,t,i,r,u,f){var e=this.coordinates.length,v=this.getBufferedMaxExtent();f&&(t+=r);for(var s=[n[t],n[t+1]],o=[NaN,NaN],c=!0,a,l,h=t+r;h<i;h+=r)o[0]=n[h],o[1]=n[h+1],l=ol.extent.coordinateRelationship(v,o),l!==a?(c&&(this.coordinates[e++]=s[0],this.coordinates[e++]=s[1]),this.coordinates[e++]=o[0],this.coordinates[e++]=o[1],c=!1):l===ol.extent.Relationship.INTERSECTING?(this.coordinates[e++]=o[0],this.coordinates[e++]=o[1],c=!1):c=!0,s[0]=o[0],s[1]=o[1],a=l;return(u&&c||h===t+r)&&(this.coordinates[e++]=s[0],this.coordinates[e++]=s[1]),e},ol.render.canvas.Replay.prototype.drawCustomCoordinates_=function(n,t,i,r,u){for(var e,s,f=0,o=i.length;f<o;++f)e=i[f],s=this.appendFlatCoordinates(n,t,e,r,!1,!1),u.push(s),t=e;return t},ol.render.canvas.Replay.prototype.drawCustom=function(n,t,i){var a,s,y,v;this.beginGeometry(n,t);var u=n.getType(),h=n.getStride(),f=this.coordinates.length,r,e,c,l,o;if(u==ol.geom.GeometryType.MULTI_POLYGON){for(n=n,r=n.getOrientedFlatCoordinates(),l=[],a=n.getEndss(),o=0,s=0,y=a.length;s<y;++s)v=[],o=this.drawCustomCoordinates_(r,o,a[s],h,v),l.push(v);this.instructions.push([ol.render.canvas.Instruction.CUSTOM,f,l,n,i,ol.geom.flat.inflate.coordinatesss])}else u==ol.geom.GeometryType.POLYGON||u==ol.geom.GeometryType.MULTI_LINE_STRING?(c=[],r=u==ol.geom.GeometryType.POLYGON?n.getOrientedFlatCoordinates():n.getFlatCoordinates(),o=this.drawCustomCoordinates_(r,0,n.getEnds(),h,c),this.instructions.push([ol.render.canvas.Instruction.CUSTOM,f,c,n,i,ol.geom.flat.inflate.coordinatess])):u==ol.geom.GeometryType.LINE_STRING||u==ol.geom.GeometryType.MULTI_POINT?(r=n.getFlatCoordinates(),e=this.appendFlatCoordinates(r,0,r.length,h,!1,!1),this.instructions.push([ol.render.canvas.Instruction.CUSTOM,f,e,n,i,ol.geom.flat.inflate.coordinates])):u==ol.geom.GeometryType.POINT&&(r=n.getFlatCoordinates(),this.coordinates.push(r[0],r[1]),e=this.coordinates.length,this.instructions.push([ol.render.canvas.Instruction.CUSTOM,f,e,n,i]));this.endGeometry(n,t)},ol.render.canvas.Replay.prototype.beginGeometry=function(n,t){this.beginGeometryInstruction1_=[ol.render.canvas.Instruction.BEGIN_GEOMETRY,t,0];this.instructions.push(this.beginGeometryInstruction1_);this.beginGeometryInstruction2_=[ol.render.canvas.Instruction.BEGIN_GEOMETRY,t,0];this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)},ol.render.canvas.Replay.prototype.fill_=function(n){if(this.fillOrigin_){var t=ol.transform.apply(this.renderedTransform_,this.fillOrigin_.slice());n.translate(t[0],t[1]);n.rotate(this.viewRotation_)}n.fill();this.fillOrigin_&&n.setTransform.apply(n,ol.render.canvas.resetTransform_)},ol.render.canvas.Replay.prototype.setStrokeStyle_=function(n,t){n.strokeStyle=t[1];n.lineWidth=t[2];n.lineCap=t[3];n.lineJoin=t[4];n.miterLimit=t[5];ol.has.CANVAS_LINE_DASH&&(n.lineDashOffset=t[7],n.setLineDash(t[6]))},ol.render.canvas.Replay.prototype.renderDeclutter_=function(n,t){var u,f,e,r,o,i;if(n&&n.length>5&&(u=n[4],u==1||u==n.length-5)){if(f={minX:n[0],minY:n[1],maxX:n[2],maxY:n[3],value:t},!this.declutterTree.collides(f))for(this.declutterTree.insert(f),e=ol.render.canvas.drawImage,r=5,o=n.length;r<o;++r)i=n[r],i&&(i.length>11&&this.replayTextBackground_(i[0],i[13],i[14],i[15],i[16],i[11],i[12]),e.apply(undefined,i));n.length=5;ol.extent.createOrUpdateEmpty(n)}},ol.render.canvas.Replay.prototype.replay_=function(n,t,i,r,u,f){var h,e,ri,v,tt,it,rt,y,st,ht,l,c,dt;this.pixelCoordinates_&&ol.array.equals(t,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=ol.geom.flat.transform.transform2D(this.coordinates,0,this.coordinates.length,2,t,this.pixelCoordinates_),ol.transform.setFromArray(this.renderedTransform_,t));for(var gi=!ol.obj.isEmpty(i),s=0,nr=r.length,o=0,p,k,d,ut,ft,g,nt,w,gt,b=0,a=0,ni=null,ti=null,ct=this.coordinateCache_,ii=this.viewRotation_,lt={context:n,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:ii},ot=this.instructions!=r||this.overlaps?0:200;s<nr;){e=r[s];ri=e[0];switch(ri){case ol.render.canvas.Instruction.BEGIN_GEOMETRY:v=e[1];gi&&i[ol.getUid(v).toString()]||!v.getGeometry()?s=e[2]:f===undefined||ol.extent.intersects(f,v.getGeometry().getExtent())?++s:s=e[2]+1;break;case ol.render.canvas.Instruction.BEGIN_PATH:b>ot&&(this.fill_(n),b=0);a>ot&&(n.stroke(),a=0);b||a||(n.beginPath(),ut=ft=NaN);++s;break;case ol.render.canvas.Instruction.CIRCLE:o=e[1];var at=h[o],vt=h[o+1],tr=h[o+2],ir=h[o+3],ui=tr-at,fi=ir-vt,ei=Math.sqrt(ui*ui+fi*fi);n.moveTo(at+ei,vt);n.arc(at,vt,ei,0,2*Math.PI,!0);++s;break;case ol.render.canvas.Instruction.CLOSE_PATH:n.closePath();++s;break;case ol.render.canvas.Instruction.CUSTOM:o=e[1];p=e[2];var rr=e[3],ur=e[4],oi=e.length==6?e[5]:undefined;lt.geometry=rr;lt.feature=v;s in ct||(ct[s]=[]);rt=ct[s];oi?oi(h,o,p,2,rt):(rt[0]=h[o],rt[1]=h[o+1],rt.length=2);ur(rt,lt);++s;break;case ol.render.canvas.Instruction.DRAW_IMAGE:o=e[1];p=e[2];gt=e[3];k=e[4];d=e[5];w=u?null:e[6];var fr=e[7],er=e[8],or=e[9],sr=e[10],hr=e[11],si=e[12],cr=e[13],lr=e[14],ar=e[15],yt,pt,wt;for(e.length>16?(yt=e[16],pt=e[17],wt=e[18]):(yt=ol.render.canvas.defaultPadding,pt=wt=!1),hr&&(si+=ii);o<p;o+=2)this.replayImage_(n,h[o],h[o+1],gt,k,d,w,fr,er,or,sr,si,cr,lr,ar,yt,pt?ni:null,wt?ti:null);this.renderDeclutter_(w,v);++s;break;case ol.render.canvas.Instruction.DRAW_CHARS:var hi=e[1],ci=e[2],bt=e[3];w=u?null:e[4];var vr=e[5],li=e[6],yr=e[7],ai=e[8],vi=e[9],yi=e[10],pi=e[11],wi=e[12],kt=e[13],bi=e[14],ki=ol.geom.flat.length.lineString(h,hi,ci,2),di=ai(wi);if(vr||di<=ki){var pr=this.textStates[kt].textAlign,wr=(ki-di)*ol.render.replay.TEXT_ALIGN[pr],et=ol.geom.flat.textpath.lineString(h,hi,ci,2,wi,ai,wr,yr);if(et){if(yi)for(y=0,st=et.length;y<st;++y)c=et[y],ht=c[4],l=this.getImage(ht,kt,"",yi),k=c[2]+pi,d=bt*l.height+(.5-bt)*2*pi-vi,this.replayImage_(n,c[0],c[1],l,k,d,w,l.height,1,0,0,c[3],bi,!1,l.width,ol.render.canvas.defaultPadding,null,null);if(li)for(y=0,st=et.length;y<st;++y)c=et[y],ht=c[4],l=this.getImage(ht,kt,li,""),k=c[2],d=bt*l.height-vi,this.replayImage_(n,c[0],c[1],l,k,d,w,l.height,1,0,0,c[3],bi,!1,l.width,ol.render.canvas.defaultPadding,null,null)}}this.renderDeclutter_(w,v);++s;break;case ol.render.canvas.Instruction.END_GEOMETRY:if(u!==undefined&&(v=e[1],dt=u(v),dt))return dt;++s;break;case ol.render.canvas.Instruction.FILL:ot?b++:this.fill_(n);++s;break;case ol.render.canvas.Instruction.MOVE_TO_LINE_TO:for(o=e[1],p=e[2],tt=h[o],it=h[o+1],g=tt+.5|0,nt=it+.5|0,(g!==ut||nt!==ft)&&(n.moveTo(tt,it),ut=g,ft=nt),o+=2;o<p;o+=2)tt=h[o],it=h[o+1],g=tt+.5|0,nt=it+.5|0,(o==p-2||g!==ut||nt!==ft)&&(n.lineTo(tt,it),ut=g,ft=nt);++s;break;case ol.render.canvas.Instruction.SET_FILL_STYLE:ni=e;this.fillOrigin_=e[2];b&&(this.fill_(n),b=0,a&&(n.stroke(),a=0));n.fillStyle=e[1];++s;break;case ol.render.canvas.Instruction.SET_STROKE_STYLE:ti=e;a&&(n.stroke(),a=0);this.setStrokeStyle_(n,e);++s;break;case ol.render.canvas.Instruction.STROKE:ot?a++:n.stroke();++s;break;default:++s}}return b&&this.fill_(n),a&&n.stroke(),undefined},ol.render.canvas.Replay.prototype.replay=function(n,t,i,r){this.viewRotation_=i;this.replay_(n,t,r,this.instructions,undefined,undefined)},ol.render.canvas.Replay.prototype.replayHitDetection=function(n,t,i,r,u,f){return this.viewRotation_=i,this.replay_(n,t,r,this.hitDetectionInstructions,u,f)},ol.render.canvas.Replay.prototype.reverseHitDetectionInstructions=function(){var i=this.hitDetectionInstructions,n,f,r,u,t;for(i.reverse(),f=i.length,t=-1,n=0;n<f;++n)r=i[n],u=r[0],u==ol.render.canvas.Instruction.END_GEOMETRY?t=n:u==ol.render.canvas.Instruction.BEGIN_GEOMETRY&&(r[2]=n,ol.array.reverseSubArray(this.hitDetectionInstructions,t,n),t=-1)},ol.render.canvas.Replay.prototype.setFillStrokeStyle=function(n,t){var i=this.state,r,u,f,e,o,s,h,c;n?(r=n.getColor(),i.fillStyle=ol.colorlike.asColorLike(r?r:ol.render.canvas.defaultFillStyle)):i.fillStyle=undefined;t?(u=t.getColor(),i.strokeStyle=ol.colorlike.asColorLike(u?u:ol.render.canvas.defaultStrokeStyle),f=t.getLineCap(),i.lineCap=f!==undefined?f:ol.render.canvas.defaultLineCap,e=t.getLineDash(),i.lineDash=e?e.slice():ol.render.canvas.defaultLineDash,o=t.getLineDashOffset(),i.lineDashOffset=o?o:ol.render.canvas.defaultLineDashOffset,s=t.getLineJoin(),i.lineJoin=s!==undefined?s:ol.render.canvas.defaultLineJoin,h=t.getWidth(),i.lineWidth=h!==undefined?h:ol.render.canvas.defaultLineWidth,c=t.getMiterLimit(),i.miterLimit=c!==undefined?c:ol.render.canvas.defaultMiterLimit,i.lineWidth>this.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)):(i.strokeStyle=undefined,i.lineCap=undefined,i.lineDash=null,i.lineDashOffset=undefined,i.lineJoin=undefined,i.lineWidth=undefined,i.miterLimit=undefined)},ol.render.canvas.Replay.prototype.applyFill=function(n,t){var r=n.fillStyle,u=[ol.render.canvas.Instruction.SET_FILL_STYLE,r],i;typeof r!="string"&&(i=t.getExtent(),u.push([i[0],i[3]]));this.instructions.push(u)},ol.render.canvas.Replay.prototype.applyStroke=function(n){this.instructions.push([ol.render.canvas.Instruction.SET_STROKE_STYLE,n.strokeStyle,n.lineWidth*this.pixelRatio,n.lineCap,n.lineJoin,n.miterLimit,this.applyPixelRatio(n.lineDash),n.lineDashOffset*this.pixelRatio])},ol.render.canvas.Replay.prototype.updateFillStyle=function(n,t,i){var r=n.fillStyle;(typeof r!="string"||n.currentFillStyle!=r)&&(t.call(this,n,i),n.currentFillStyle=r)},ol.render.canvas.Replay.prototype.updateStrokeStyle=function(n,t){var r=n.strokeStyle,u=n.lineCap,i=n.lineDash,f=n.lineDashOffset,e=n.lineJoin,o=n.lineWidth,s=n.miterLimit;n.currentStrokeStyle==r&&n.currentLineCap==u&&(i==n.currentLineDash||ol.array.equals(n.currentLineDash,i))&&n.currentLineDashOffset==f&&n.currentLineJoin==e&&n.currentLineWidth==o&&n.currentMiterLimit==s||(t.call(this,n),n.currentStrokeStyle=r,n.currentLineCap=u,n.currentLineDash=i,n.currentLineDashOffset=f,n.currentLineJoin=e,n.currentLineWidth=o,n.currentMiterLimit=s)},ol.render.canvas.Replay.prototype.endGeometry=function(n,t){this.beginGeometryInstruction1_[2]=this.instructions.length;this.beginGeometryInstruction1_=null;this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length;this.beginGeometryInstruction2_=null;var i=[ol.render.canvas.Instruction.END_GEOMETRY,t];this.instructions.push(i);this.hitDetectionInstructions.push(i)},ol.render.canvas.Replay.prototype.finish=ol.nullFunction,ol.render.canvas.Replay.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=ol.extent.clone(this.maxExtent),this.maxLineWidth>0)){var n=this.resolution*(this.maxLineWidth+1)/2;ol.extent.buffer(this.bufferedMaxExtent_,n,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},n.provide("ol.render.canvas.ImageReplay"),n.require("ol"),n.require("ol.render.canvas.Instruction"),n.require("ol.render.canvas.Replay"),ol.render.canvas.ImageReplay=function(n,t,i,r,u,f){ol.render.canvas.Replay.call(this,n,t,i,r,u,f);this.declutterGroup_=null;this.hitDetectionImage_=null;this.image_=null;this.anchorX_=undefined;this.anchorY_=undefined;this.height_=undefined;this.opacity_=undefined;this.originX_=undefined;this.originY_=undefined;this.rotateWithView_=undefined;this.rotation_=undefined;this.scale_=undefined;this.snapToPixel_=undefined;this.width_=undefined},ol.inherits(ol.render.canvas.ImageReplay,ol.render.canvas.Replay),ol.render.canvas.ImageReplay.prototype.drawCoordinates_=function(n,t,i,r){return this.appendFlatCoordinates(n,t,i,r,!1,!1)},ol.render.canvas.ImageReplay.prototype.drawPoint=function(n,t){if(this.image_){this.beginGeometry(n,t);var i=n.getFlatCoordinates(),f=n.getStride(),r=this.coordinates.length,u=this.drawCoordinates_(i,0,i.length,f);this.instructions.push([ol.render.canvas.Instruction.DRAW_IMAGE,r,u,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.snapToPixel_,this.width_]);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.DRAW_IMAGE,r,u,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.snapToPixel_,this.width_]);this.endGeometry(n,t)}},ol.render.canvas.ImageReplay.prototype.drawMultiPoint=function(n,t){if(this.image_){this.beginGeometry(n,t);var i=n.getFlatCoordinates(),f=n.getStride(),r=this.coordinates.length,u=this.drawCoordinates_(i,0,i.length,f);this.instructions.push([ol.render.canvas.Instruction.DRAW_IMAGE,r,u,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.snapToPixel_,this.width_]);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.DRAW_IMAGE,r,u,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.snapToPixel_,this.width_]);this.endGeometry(n,t)}},ol.render.canvas.ImageReplay.prototype.finish=function(){this.reverseHitDetectionInstructions();this.anchorX_=undefined;this.anchorY_=undefined;this.hitDetectionImage_=null;this.image_=null;this.height_=undefined;this.scale_=undefined;this.opacity_=undefined;this.originX_=undefined;this.originY_=undefined;this.rotateWithView_=undefined;this.rotation_=undefined;this.snapToPixel_=undefined;this.width_=undefined},ol.render.canvas.ImageReplay.prototype.setImageStyle=function(n,t){var i=n.getAnchor(),r=n.getSize(),f=n.getHitDetectionImage(1),e=n.getImage(1),u=n.getOrigin();this.anchorX_=i[0];this.anchorY_=i[1];this.declutterGroup_=t;this.hitDetectionImage_=f;this.image_=e;this.height_=r[1];this.opacity_=n.getOpacity();this.originX_=u[0];this.originY_=u[1];this.rotateWithView_=n.getRotateWithView();this.rotation_=n.getRotation();this.scale_=n.getScale();this.snapToPixel_=n.getSnapToPixel();this.width_=r[0]},n.provide("ol.render.canvas.LineStringReplay"),n.require("ol"),n.require("ol.render.canvas.Instruction"),n.require("ol.render.canvas.Replay"),ol.render.canvas.LineStringReplay=function(n,t,i,r,u,f){ol.render.canvas.Replay.call(this,n,t,i,r,u,f)},ol.inherits(ol.render.canvas.LineStringReplay,ol.render.canvas.Replay),ol.render.canvas.LineStringReplay.prototype.drawFlatCoordinates_=function(n,t,i,r){var f=this.coordinates.length,e=this.appendFlatCoordinates(n,t,i,r,!1,!1),u=[ol.render.canvas.Instruction.MOVE_TO_LINE_TO,f,e];return this.instructions.push(u),this.hitDetectionInstructions.push(u),i},ol.render.canvas.LineStringReplay.prototype.drawLineString=function(n,t){var i=this.state,f=i.strokeStyle,e=i.lineWidth,r,u;f!==undefined&&e!==undefined&&(this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(n,t),this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],[ol.render.canvas.Instruction.BEGIN_PATH]),r=n.getFlatCoordinates(),u=n.getStride(),this.drawFlatCoordinates_(r,0,r.length,u),this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]),this.endGeometry(n,t))},ol.render.canvas.LineStringReplay.prototype.drawMultiLineString=function(n,t){var i=this.state,o=i.strokeStyle,s=i.lineWidth;if(o!==undefined&&s!==undefined){this.updateStrokeStyle(i,this.applyStroke);this.beginGeometry(n,t);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],[ol.render.canvas.Instruction.BEGIN_PATH]);for(var u=n.getEnds(),h=n.getFlatCoordinates(),c=n.getStride(),f=0,r=0,e=u.length;r<e;++r)f=this.drawFlatCoordinates_(h,f,u[r],c);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.STROKE]);this.endGeometry(n,t)}},ol.render.canvas.LineStringReplay.prototype.finish=function(){var n=this.state;n.lastStroke!=undefined&&n.lastStroke!=this.coordinates.length&&this.instructions.push([ol.render.canvas.Instruction.STROKE]);this.reverseHitDetectionInstructions();this.state=null},ol.render.canvas.LineStringReplay.prototype.applyStroke=function(n){n.lastStroke!=undefined&&n.lastStroke!=this.coordinates.length&&(this.instructions.push([ol.render.canvas.Instruction.STROKE]),n.lastStroke=this.coordinates.length);n.lastStroke=0;ol.render.canvas.Replay.prototype.applyStroke.call(this,n);this.instructions.push([ol.render.canvas.Instruction.BEGIN_PATH])},n.provide("ol.render.canvas.PolygonReplay"),n.require("ol"),n.require("ol.color"),n.require("ol.geom.flat.simplify"),n.require("ol.render.canvas"),n.require("ol.render.canvas.Instruction"),n.require("ol.render.canvas.Replay"),ol.render.canvas.PolygonReplay=function(n,t,i,r,u,f){ol.render.canvas.Replay.call(this,n,t,i,r,u,f)},ol.inherits(ol.render.canvas.PolygonReplay,ol.render.canvas.Replay),ol.render.canvas.PolygonReplay.prototype.drawFlatCoordinatess_=function(n,t,i,r){var h=this.state,v=h.fillStyle!==undefined,f=h.strokeStyle!=undefined,y=i.length,c=[ol.render.canvas.Instruction.BEGIN_PATH],u,e,o,s;for(this.instructions.push(c),this.hitDetectionInstructions.push(c),u=0;u<y;++u){var l=i[u],p=this.coordinates.length,w=this.appendFlatCoordinates(n,t,l,r,!0,!f),a=[ol.render.canvas.Instruction.MOVE_TO_LINE_TO,p,w];this.instructions.push(a);this.hitDetectionInstructions.push(a);f&&(e=[ol.render.canvas.Instruction.CLOSE_PATH],this.instructions.push(e),this.hitDetectionInstructions.push(e));t=l}return o=[ol.render.canvas.Instruction.FILL],this.hitDetectionInstructions.push(o),v&&this.instructions.push(o),f&&(s=[ol.render.canvas.Instruction.STROKE],this.instructions.push(s),this.hitDetectionInstructions.push(s)),t},ol.render.canvas.PolygonReplay.prototype.drawCircle=function(n,t){var i=this.state,s=i.fillStyle,h=i.strokeStyle,r,u,f,e;if(s!==undefined||h!==undefined){this.setFillStrokeStyles_(n);this.beginGeometry(n,t);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_FILL_STYLE,ol.color.asString(ol.render.canvas.defaultFillStyle)]);i.strokeStyle!==undefined&&this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);var o=n.getFlatCoordinates(),c=n.getStride(),l=this.coordinates.length;this.appendFlatCoordinates(o,0,o.length,c,!1,!1);r=[ol.render.canvas.Instruction.BEGIN_PATH];u=[ol.render.canvas.Instruction.CIRCLE,l];this.instructions.push(r,u);this.hitDetectionInstructions.push(r,u);f=[ol.render.canvas.Instruction.FILL];this.hitDetectionInstructions.push(f);i.fillStyle!==undefined&&this.instructions.push(f);i.strokeStyle!==undefined&&(e=[ol.render.canvas.Instruction.STROKE],this.instructions.push(e),this.hitDetectionInstructions.push(e));this.endGeometry(n,t)}},ol.render.canvas.PolygonReplay.prototype.drawPolygon=function(n,t){var i=this.state;this.setFillStrokeStyles_(n);this.beginGeometry(n,t);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_FILL_STYLE,ol.color.asString(ol.render.canvas.defaultFillStyle)]);i.strokeStyle!==undefined&&this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);var r=n.getEnds(),u=n.getOrientedFlatCoordinates(),f=n.getStride();this.drawFlatCoordinatess_(u,0,r,f);this.endGeometry(n,t)},ol.render.canvas.PolygonReplay.prototype.drawMultiPolygon=function(n,t){var i=this.state,o=i.fillStyle,s=i.strokeStyle;if(o!==undefined||s!==undefined){this.setFillStrokeStyles_(n);this.beginGeometry(n,t);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_FILL_STYLE,ol.color.asString(ol.render.canvas.defaultFillStyle)]);i.strokeStyle!==undefined&&this.hitDetectionInstructions.push([ol.render.canvas.Instruction.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);for(var u=n.getEndss(),h=n.getOrientedFlatCoordinates(),c=n.getStride(),f=0,r=0,e=u.length;r<e;++r)f=this.drawFlatCoordinatess_(h,f,u[r],c);this.endGeometry(n,t)}},ol.render.canvas.PolygonReplay.prototype.finish=function(){var i,t,n,r;if(this.reverseHitDetectionInstructions(),this.state=null,i=this.tolerance,i!==0)for(t=this.coordinates,n=0,r=t.length;n<r;++n)t[n]=ol.geom.flat.simplify.snap(t[n],i)},ol.render.canvas.PolygonReplay.prototype.setFillStrokeStyles_=function(n){var t=this.state,i=t.fillStyle;i!==undefined&&this.updateFillStyle(t,this.applyFill,n);t.strokeStyle!==undefined&&this.updateStrokeStyle(t,this.applyStroke)},n.provide("ol.geom.flat.straightchunk"),ol.geom.flat.straightchunk.lineString=function(n,t,i,r,u){for(var b=i,k=i,c=0,e=0,l=i,d,a,h,v,g,y,nt,o,s,p,w,f=i;f<r;f+=u)p=t[f],w=t[f+1],v!==undefined&&(o=p-v,s=w-g,h=Math.sqrt(o*o+s*s),y!==undefined&&(e+=a,d=Math.acos((y*o+nt*s)/(a*h)),d>n&&(e>c&&(c=e,b=l,k=f),e=0,l=f-u)),a=h,y=o,nt=s),v=p,g=w;return e+=h,e>c?[l,f]:[b,k]},n.provide("ol.style.TextPlacement"),ol.style.TextPlacement={POINT:"point",LINE:"line"},n.provide("ol.render.canvas.TextReplay"),n.require("ol"),n.require("ol.colorlike"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.geom.flat.straightchunk"),n.require("ol.geom.GeometryType"),n.require("ol.has"),n.require("ol.render.canvas"),n.require("ol.render.canvas.Instruction"),n.require("ol.render.canvas.Replay"),n.require("ol.render.replay"),n.require("ol.style.TextPlacement"),ol.render.canvas.TextReplay=function(n,t,i,r,u,f){ol.render.canvas.Replay.call(this,n,t,i,r,u,f);this.declutterGroup_;this.labels_=null;this.text_="";this.textOffsetX_=0;this.textOffsetY_=0;this.textRotateWithView_=undefined;this.textRotation_=0;this.textFillState_=null;this.fillStates={};this.textStrokeState_=null;this.strokeStates={};this.textState_={};this.textStates={};this.textKey_="";this.fillKey_="";this.strokeKey_="";this.widths_={};var e=ol.render.canvas.labelCache;e.prune()},ol.inherits(ol.render.canvas.TextReplay,ol.render.canvas.Replay),ol.render.canvas.TextReplay.measureTextWidths=function(n,t,i){for(var e=t.length,u=0,f,r=0;r<e;++r)f=ol.render.canvas.measureTextWidth(n,t[r]),u=Math.max(u,f),i.push(f);return u},ol.render.canvas.TextReplay.prototype.drawText=function(n,t){var nt=this.textFillState_,tt=this.textStrokeState_,u=this.textState_,e,y,d,c,p,o,g,w,b,k,l;if(this.text_!==""&&u&&(nt||tt)){var v=this.coordinates.length,s=n.getType(),i=null,f=2,h=2,r,a;if(u.placement===ol.style.TextPlacement.LINE){if(!ol.extent.intersects(this.getBufferedMaxExtent(),n.getExtent()))return;if(i=n.getFlatCoordinates(),h=n.getStride(),s==ol.geom.GeometryType.LINE_STRING)e=[i.length];else if(s==ol.geom.GeometryType.MULTI_LINE_STRING)e=n.getEnds();else if(s==ol.geom.GeometryType.POLYGON)e=n.getEnds().slice(0,1);else if(s==ol.geom.GeometryType.MULTI_POLYGON)for(y=n.getEndss(),e=[],r=0,a=y.length;r<a;++r)e.push(y[r][0]);for(this.beginGeometry(n,t),d=u.textAlign,c=0,o=0,g=e.length;o<g;++o){for(d==undefined?(w=ol.geom.flat.straightchunk.lineString(u.maxAngle,i,c,e[o],h),c=w[0],p=w[1]):p=e[o],r=c;r<p;r+=h)this.coordinates.push(i[r],i[r+1]);f=this.coordinates.length;c=e[o];this.drawChars_(v,f,this.declutterGroup_);v=f}this.endGeometry(n,t)}else{b=this.getImage(this.text_,this.textKey_,this.fillKey_,this.strokeKey_);k=b.width/this.pixelRatio;switch(s){case ol.geom.GeometryType.POINT:case ol.geom.GeometryType.MULTI_POINT:i=n.getFlatCoordinates();f=i.length;break;case ol.geom.GeometryType.LINE_STRING:i=n.getFlatMidpoint();break;case ol.geom.GeometryType.CIRCLE:i=n.getCenter();break;case ol.geom.GeometryType.MULTI_LINE_STRING:i=n.getFlatMidpoints();f=i.length;break;case ol.geom.GeometryType.POLYGON:if(i=n.getFlatInteriorPoint(),!u.overflow&&i[2]/this.resolution<k)return;h=3;break;case ol.geom.GeometryType.MULTI_POLYGON:for(l=n.getFlatInteriorPoints(),i=[],r=0,a=l.length;r<a;r+=3)(u.overflow||l[r+2]/this.resolution>=k)&&i.push(l[r],l[r+1]);if(f=i.length,f==0)return}f=this.appendFlatCoordinates(i,0,f,h,!1,!1);this.beginGeometry(n,t);(u.backgroundFill||u.backgroundStroke)&&(this.setFillStrokeStyle(u.backgroundFill,u.backgroundStroke),this.updateFillStyle(this.state,this.applyFill,n),this.updateStrokeStyle(this.state,this.applyStroke));this.drawTextImage_(b,v,f);this.endGeometry(n,t)}}},ol.render.canvas.TextReplay.prototype.getImage=function(n,t,i,r){var v,y=r+t+n+i+this.pixelRatio,p=ol.render.canvas.labelCache,a,k,f;if(!p.containsKey(y)){var e=r?this.strokeStates[r]||this.textStrokeState_:null,g=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[t]||this.textState_,nt=this.pixelRatio,o=h.scale*nt,d=ol.render.replay.TEXT_ALIGN[h.textAlign||ol.render.canvas.defaultTextAlign],s=r&&e.lineWidth?e.lineWidth:0,l=n.split("\n"),w=l.length,b=[],tt=ol.render.canvas.TextReplay.measureTextWidths(h.font,l,b),c=ol.render.canvas.measureTextHeight(h.font),it=c*w,rt=tt+s,u=ol.dom.createCanvasContext2D(Math.ceil(rt*o),Math.ceil((it+s)*o));if(v=u.canvas,p.set(y,v),o!=1&&u.scale(o,o),u.font=h.font,r&&(u.strokeStyle=e.strokeStyle,u.lineWidth=s*(ol.has.SAFARI?o:1),u.lineCap=e.lineCap,u.lineJoin=e.lineJoin,u.miterLimit=e.miterLimit,ol.has.CANVAS_LINE_DASH&&e.lineDash.length&&(u.setLineDash(e.lineDash),u.lineDashOffset=e.lineDashOffset)),i&&(u.fillStyle=g.fillStyle),u.textBaseline="middle",u.textAlign="center",a=.5-d,k=d*v.width/o+a*s,r)for(f=0;f<w;++f)u.strokeText(l[f],k+a*b[f],.5*(s+c)+f*c);if(i)for(f=0;f<w;++f)u.fillText(l[f],k+a*b[f],.5*(s+c)+f*c)}return p.get(y)},ol.render.canvas.TextReplay.prototype.drawTextImage_=function(n,t,i){var r=this.textState_,f=this.textStrokeState_,u=this.pixelRatio,e=ol.render.replay.TEXT_ALIGN[r.textAlign||ol.render.canvas.defaultTextAlign],o=ol.render.replay.TEXT_ALIGN[r.textBaseline],s=f&&f.lineWidth?f.lineWidth:0,h=e*n.width/u+2*(.5-e)*s,c=o*n.height/u+2*(.5-o)*s;this.instructions.push([ol.render.canvas.Instruction.DRAW_IMAGE,t,i,n,(h-this.textOffsetX_)*u,(c-this.textOffsetY_)*u,this.declutterGroup_,n.height,1,0,0,this.textRotateWithView_,this.textRotation_,1,!0,n.width,r.padding==ol.render.canvas.defaultPadding?ol.render.canvas.defaultPadding:r.padding.map(function(n){return n*u}),!!r.backgroundFill,!!r.backgroundStroke]);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.DRAW_IMAGE,t,i,n,(h-this.textOffsetX_)*u,(c-this.textOffsetY_)*u,this.declutterGroup_,n.height,1,0,0,this.textRotateWithView_,this.textRotation_,1/u,!0,n.width,r.padding,!!r.backgroundFill,!!r.backgroundStroke])},ol.render.canvas.TextReplay.prototype.drawChars_=function(n,t,i){var r=this.textStrokeState_,u=this.textState_,a=this.textFillState_,o=this.strokeKey_,c,e;r&&(o in this.strokeStates||(this.strokeStates[o]={strokeStyle:r.strokeStyle,lineCap:r.lineCap,lineDashOffset:r.lineDashOffset,lineWidth:r.lineWidth,lineJoin:r.lineJoin,miterLimit:r.miterLimit,lineDash:r.lineDash}));c=this.textKey_;this.textKey_ in this.textStates||(this.textStates[this.textKey_]={font:u.font,textAlign:u.textAlign||ol.render.canvas.defaultTextAlign,scale:u.scale});e=this.fillKey_;a&&(e in this.fillStates||(this.fillStates[e]={fillStyle:a.fillStyle}));var s=this.pixelRatio,v=ol.render.replay.TEXT_ALIGN[u.textBaseline],y=this.textOffsetY_*s,p=this.text_,h=u.font,l=u.scale,w=r?r.lineWidth*l/2:0,f=this.widths_[h];f||(this.widths_[h]=f={});this.instructions.push([ol.render.canvas.Instruction.DRAW_CHARS,n,t,v,i,u.overflow,e,u.maxAngle,function(n){var t=f[n];return t||(t=f[n]=ol.render.canvas.measureTextWidth(h,n)),t*l*s},y,o,w*s,p,c,1]);this.hitDetectionInstructions.push([ol.render.canvas.Instruction.DRAW_CHARS,n,t,v,i,u.overflow,e,u.maxAngle,function(n){var t=f[n];return t||(t=f[n]=ol.render.canvas.measureTextWidth(h,n)),t*l},y,o,w,p,c,1/s])},ol.render.canvas.TextReplay.prototype.setTextStyle=function(n,t){var r,u,i,e,f,o,s;if(n){if(this.declutterGroup_=t,e=n.getFill(),e?(u=this.textFillState_,u||(u=this.textFillState_={}),u.fillStyle=ol.colorlike.asColorLike(e.getColor()||ol.render.canvas.defaultFillStyle)):u=this.textFillState_=null,f=n.getStroke(),f){i=this.textStrokeState_;i||(i=this.textStrokeState_={});var h=f.getLineDash(),c=f.getLineDashOffset(),l=f.getWidth(),a=f.getMiterLimit();i.lineCap=f.getLineCap()||ol.render.canvas.defaultLineCap;i.lineDash=h?h.slice():ol.render.canvas.defaultLineDash;i.lineDashOffset=c===undefined?ol.render.canvas.defaultLineDashOffset:c;i.lineJoin=f.getLineJoin()||ol.render.canvas.defaultLineJoin;i.lineWidth=l===undefined?ol.render.canvas.defaultLineWidth:l;i.miterLimit=a===undefined?ol.render.canvas.defaultMiterLimit:a;i.strokeStyle=ol.colorlike.asColorLike(f.getColor()||ol.render.canvas.defaultStrokeStyle)}else i=this.textStrokeState_=null;r=this.textState_;o=n.getFont()||ol.render.canvas.defaultFont;ol.render.canvas.checkFont(o);s=n.getScale();r.overflow=n.getOverflow();r.font=o;r.maxAngle=n.getMaxAngle();r.placement=n.getPlacement();r.textAlign=n.getTextAlign();r.textBaseline=n.getTextBaseline()||ol.render.canvas.defaultTextBaseline;r.backgroundFill=n.getBackgroundFill();r.backgroundStroke=n.getBackgroundStroke();r.padding=n.getPadding()||ol.render.canvas.defaultPadding;r.scale=s===undefined?1:s;var v=n.getOffsetX(),y=n.getOffsetY(),p=n.getRotateWithView(),w=n.getRotation();this.text_=n.getText()||"";this.textOffsetX_=v===undefined?0:v;this.textOffsetY_=y===undefined?0:y;this.textRotateWithView_=p===undefined?!1:p;this.textRotation_=w===undefined?0:w;this.strokeKey_=i?(typeof i.strokeStyle=="string"?i.strokeStyle:ol.getUid(i.strokeStyle))+i.lineCap+i.lineDashOffset+"|"+i.lineWidth+i.lineJoin+i.miterLimit+"["+i.lineDash.join()+"]":"";this.textKey_=r.font+r.scale+(r.textAlign||"?");this.fillKey_=u?typeof u.fillStyle=="string"?u.fillStyle:"|"+ol.getUid(u.fillStyle):""}else this.text_=""},n.provide("ol.render.canvas.ReplayGroup"),n.require("ol"),n.require("ol.array"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.geom.flat.transform"),n.require("ol.obj"),n.require("ol.render.ReplayGroup"),n.require("ol.render.ReplayType"),n.require("ol.render.canvas.Replay"),n.require("ol.render.canvas.ImageReplay"),n.require("ol.render.canvas.LineStringReplay"),n.require("ol.render.canvas.PolygonReplay"),n.require("ol.render.canvas.TextReplay"),n.require("ol.render.replay"),n.require("ol.transform"),ol.render.canvas.ReplayGroup=function(n,t,i,r,u,f,e){ol.render.ReplayGroup.call(this);this.declutterTree_=f;this.declutterGroup_=null;this.tolerance_=n;this.maxExtent_=t;this.overlaps_=u;this.pixelRatio_=r;this.resolution_=i;this.renderBuffer_=e;this.replaysByZIndex_={};this.hitDetectionContext_=ol.dom.createCanvasContext2D(1,1);this.hitDetectionTransform_=ol.transform.create()},ol.inherits(ol.render.canvas.ReplayGroup,ol.render.ReplayGroup),ol.render.canvas.ReplayGroup.circleArrayCache_={0:[[!0]]},ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_=function(n,t,i){var r,u=Math.floor(n.length/2);if(t>=u)for(r=u;r<t;r++)n[r][i]=!0;else if(t<u)for(r=t+1;r<u;r++)n[r][i]=!0},ol.render.canvas.ReplayGroup.getCircleArray_=function(n){var u,t,f;if(ol.render.canvas.ReplayGroup.circleArrayCache_[n]!==undefined)return ol.render.canvas.ReplayGroup.circleArrayCache_[n];for(u=n*2+1,t=new Array(u),f=0;f<u;f++)t[f]=new Array(u);for(var i=n,r=0,e=0;i>=r;)ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n+i,n+r),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n+r,n+i),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n-r,n+i),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n-i,n+r),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n-i,n-r),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n-r,n-i),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n+r,n-i),ol.render.canvas.ReplayGroup.fillCircleArrayRowToMiddle_(t,n+i,n-r),r++,e+=1+2*r,2*(e-i)+1>0&&(i-=1,e+=1-2*i);return ol.render.canvas.ReplayGroup.circleArrayCache_[n]=t,t},ol.render.canvas.ReplayGroup.replayDeclutter=function(n,t,i){for(var r,u,o,s,h,e=Object.keys(n).map(Number).sort(ol.array.numberSafeCompareFunction),c={},f=0,l=e.length;f<l;++f)for(r=n[e[f].toString()],u=0,o=r.length;u<o;)s=r[u++],h=r[u++],s.replay(t,h,i,c)},ol.render.canvas.ReplayGroup.prototype.addDeclutter=function(n){var t=null;return this.declutterTree_&&(n?(t=this.declutterGroup_,t[4]++):(t=this.declutterGroup_=ol.extent.createEmpty(),t.push(1))),t},ol.render.canvas.ReplayGroup.prototype.clip=function(n,t){var i=this.getClipCoords(t);n.beginPath();n.moveTo(i[0],i[1]);n.lineTo(i[2],i[3]);n.lineTo(i[4],i[5]);n.lineTo(i[6],i[7]);n.clip()},ol.render.canvas.ReplayGroup.prototype.hasReplays=function(n){var i,r,t,u;for(i in this.replaysByZIndex_)for(r=this.replaysByZIndex_[i],t=0,u=n.length;t<u;++t)if(n[t]in r)return!0;return!1},ol.render.canvas.ReplayGroup.prototype.finish=function(){var t,n,i;for(t in this.replaysByZIndex_){n=this.replaysByZIndex_[t];for(i in n)n[i].finish()}},ol.render.canvas.ReplayGroup.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u,f,e){function tt(n){for(var t,r,u=s.getImageData(0,0,o,o).data,i=0;i<o;i++)for(t=0;t<o;t++)if(g[i][t]&&u[(t*o+i)*4+3]>0)return b&&(h==ol.render.ReplayType.IMAGE||h==ol.render.ReplayType.TEXT)&&b.indexOf(n)===-1||(r=f(n)),r?r:(s.clearRect(0,0,o,o),undefined)}var c,g,b,h,a,v,y,nt,l,k,p,d;r=Math.round(r);var o=r*2+1,w=ol.transform.compose(this.hitDetectionTransform_,r+.5,r+.5,1/t,-1/t,-i,-n[0],-n[1]),s=this.hitDetectionContext_;for(s.canvas.width!==o||s.canvas.height!==o?(s.canvas.width=o,s.canvas.height=o):s.clearRect(0,0,o,o),this.renderBuffer_!==undefined&&(c=ol.extent.createEmpty(),ol.extent.extendCoordinate(c,n),ol.extent.buffer(c,t*(this.renderBuffer_+r),c)),g=ol.render.canvas.ReplayGroup.getCircleArray_(r),this.declutterTree_&&(b=this.declutterTree_.all().map(function(n){return n.value})),a=Object.keys(this.replaysByZIndex_).map(Number),a.sort(ol.array.numberSafeCompareFunction),v=a.length-1;v>=0;--v)for(p=a[v].toString(),nt=this.replaysByZIndex_[p],y=ol.render.replay.ORDER.length-1;y>=0;--y)if(h=ol.render.replay.ORDER[y],l=nt[h],l!==undefined)if(e&&(h==ol.render.ReplayType.IMAGE||h==ol.render.ReplayType.TEXT))d=e[p],d?d.push(l,w.slice(0)):e[p]=[l,w.slice(0)];else if(k=l.replayHitDetection(s,w,i,u,tt,c),k)return k;return undefined},ol.render.canvas.ReplayGroup.prototype.getClipCoords=function(n){var t=this.maxExtent_,r=t[0],u=t[1],f=t[2],e=t[3],i=[r,u,r,e,f,e,f,u];return ol.geom.flat.transform.transform2D(i,0,8,2,n,i),i},ol.render.canvas.ReplayGroup.prototype.getReplay=function(n,t){var u=n!==undefined?n.toString():"0",i=this.replaysByZIndex_[u],r,f;return i===undefined&&(i={},this.replaysByZIndex_[u]=i),r=i[t],r===undefined&&(f=ol.render.canvas.ReplayGroup.BATCH_CONSTRUCTORS_[t],r=new f(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),i[t]=r),r},ol.render.canvas.ReplayGroup.prototype.getReplays=function(){return this.replaysByZIndex_},ol.render.canvas.ReplayGroup.prototype.isEmpty=function(){return ol.obj.isEmpty(this.replaysByZIndex_)},ol.render.canvas.ReplayGroup.prototype.replay=function(n,t,i,r,u,f){var l=Object.keys(this.replaysByZIndex_).map(Number),a,o,y,s,p,w,e,h,c,v;for(l.sort(ol.array.numberSafeCompareFunction),n.save(),this.clip(n,t),a=u?u:ol.render.replay.ORDER,o=0,y=l.length;o<y;++o)for(h=l[o].toString(),w=this.replaysByZIndex_[h],s=0,p=a.length;s<p;++s)c=a[s],e=w[c],e!==undefined&&(f&&(c==ol.render.ReplayType.IMAGE||c==ol.render.ReplayType.TEXT)?(v=f[h],v?v.push(e,t.slice(0)):f[h]=[e,t.slice(0)]):e.replay(n,t,i,r));n.restore()},ol.render.canvas.ReplayGroup.BATCH_CONSTRUCTORS_={Circle:ol.render.canvas.PolygonReplay,Default:ol.render.canvas.Replay,Image:ol.render.canvas.ImageReplay,LineString:ol.render.canvas.LineStringReplay,Polygon:ol.render.canvas.PolygonReplay,Text:ol.render.canvas.TextReplay},n.provide("ol.renderer.vector"),n.require("ol"),n.require("ol.ImageState"),n.require("ol.geom.GeometryType"),n.require("ol.render.ReplayType"),ol.renderer.vector.defaultOrder=function(n,t){return ol.getUid(n)-ol.getUid(t)},ol.renderer.vector.getSquaredTolerance=function(n,t){var i=ol.renderer.vector.getTolerance(n,t);return i*i},ol.renderer.vector.getTolerance=function(n,t){return ol.SIMPLIFY_TOLERANCE*n/t},ol.renderer.vector.renderCircleGeometry_=function(n,t,i,r){var o=i.getFill(),s=i.getStroke(),u,f,e;(o||s)&&(u=n.getReplay(i.getZIndex(),ol.render.ReplayType.CIRCLE),u.setFillStrokeStyle(o,s),u.drawCircle(t,r));f=i.getText();f&&(e=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),e.setTextStyle(f,n.addDeclutter(!1)),e.drawText(t,r))},ol.renderer.vector.renderFeature=function(n,t,i,r,u,f){var s=!1,e,o;return e=i.getImage(),e&&(o=e.getImageState(),o==ol.ImageState.LOADED||o==ol.ImageState.ERROR?e.unlistenImageChange(u,f):(o==ol.ImageState.IDLE&&e.load(),o=e.getImageState(),e.listenImageChange(u,f),s=!0)),ol.renderer.vector.renderFeature_(n,t,i,r),s},ol.renderer.vector.renderFeature_=function(n,t,i,r){var f=i.getGeometryFunction()(t),u,e,o;f&&(u=f.getSimplifiedGeometry(r),e=i.getRenderer(),e?ol.renderer.vector.renderGeometry_(n,u,i,t):(o=ol.renderer.vector.GEOMETRY_RENDERERS_[u.getType()],o(n,u,i,t)))},ol.renderer.vector.renderGeometry_=function(n,t,i,r){var f,u,e,o;if(t.getType()==ol.geom.GeometryType.GEOMETRY_COLLECTION){for(f=t.getGeometries(),u=0,e=f.length;u<e;++u)ol.renderer.vector.renderGeometry_(n,f[u],i,r);return}o=n.getReplay(i.getZIndex(),ol.render.ReplayType.DEFAULT);o.drawCustom(t,r,i.getRenderer())},ol.renderer.vector.renderGeometryCollectionGeometry_=function(n,t,i,r){for(var f=t.getGeometriesArray(),o,u=0,e=f.length;u<e;++u)o=ol.renderer.vector.GEOMETRY_RENDERERS_[f[u].getType()],o(n,f[u],i,r)},ol.renderer.vector.renderLineStringGeometry_=function(n,t,i,r){var o=i.getStroke(),u,f,e;o&&(u=n.getReplay(i.getZIndex(),ol.render.ReplayType.LINE_STRING),u.setFillStrokeStyle(null,o),u.drawLineString(t,r));f=i.getText();f&&(e=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),e.setTextStyle(f,n.addDeclutter(!1)),e.drawText(t,r))},ol.renderer.vector.renderMultiLineStringGeometry_=function(n,t,i,r){var o=i.getStroke(),u,f,e;o&&(u=n.getReplay(i.getZIndex(),ol.render.ReplayType.LINE_STRING),u.setFillStrokeStyle(null,o),u.drawMultiLineString(t,r));f=i.getText();f&&(e=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),e.setTextStyle(f,n.addDeclutter(!1)),e.drawText(t,r))},ol.renderer.vector.renderMultiPolygonGeometry_=function(n,t,i,r){var o=i.getFill(),s=i.getStroke(),u,f,e;(s||o)&&(u=n.getReplay(i.getZIndex(),ol.render.ReplayType.POLYGON),u.setFillStrokeStyle(o,s),u.drawMultiPolygon(t,r));f=i.getText();f&&(e=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),e.setTextStyle(f,n.addDeclutter(!1)),e.drawText(t,r))},ol.renderer.vector.renderPointGeometry_=function(n,t,i,r){var u=i.getImage(),f,e,o;if(u){if(u.getImageState()!=ol.ImageState.LOADED)return;f=n.getReplay(i.getZIndex(),ol.render.ReplayType.IMAGE);f.setImageStyle(u,n.addDeclutter(!1));f.drawPoint(t,r)}e=i.getText();e&&(o=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),o.setTextStyle(e,n.addDeclutter(!!u)),o.drawText(t,r))},ol.renderer.vector.renderMultiPointGeometry_=function(n,t,i,r){var u=i.getImage(),f,e,o;if(u){if(u.getImageState()!=ol.ImageState.LOADED)return;f=n.getReplay(i.getZIndex(),ol.render.ReplayType.IMAGE);f.setImageStyle(u,n.addDeclutter(!1));f.drawMultiPoint(t,r)}e=i.getText();e&&(o=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),o.setTextStyle(e,n.addDeclutter(!!u)),o.drawText(t,r))},ol.renderer.vector.renderPolygonGeometry_=function(n,t,i,r){var o=i.getFill(),s=i.getStroke(),u,f,e;(o||s)&&(u=n.getReplay(i.getZIndex(),ol.render.ReplayType.POLYGON),u.setFillStrokeStyle(o,s),u.drawPolygon(t,r));f=i.getText();f&&(e=n.getReplay(i.getZIndex(),ol.render.ReplayType.TEXT),e.setTextStyle(f,n.addDeclutter(!1)),e.drawText(t,r))},ol.renderer.vector.GEOMETRY_RENDERERS_={Point:ol.renderer.vector.renderPointGeometry_,LineString:ol.renderer.vector.renderLineStringGeometry_,Polygon:ol.renderer.vector.renderPolygonGeometry_,MultiPoint:ol.renderer.vector.renderMultiPointGeometry_,MultiLineString:ol.renderer.vector.renderMultiLineStringGeometry_,MultiPolygon:ol.renderer.vector.renderMultiPolygonGeometry_,GeometryCollection:ol.renderer.vector.renderGeometryCollectionGeometry_,Circle:ol.renderer.vector.renderCircleGeometry_},n.provide("ol.renderer.canvas.VectorLayer"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.ViewHint"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.ext.rbush"),n.require("ol.extent"),n.require("ol.render.EventType"),n.require("ol.render.canvas"),n.require("ol.render.canvas.ReplayGroup"),n.require("ol.renderer.Type"),n.require("ol.renderer.canvas.Layer"),n.require("ol.renderer.vector"),ol.renderer.canvas.VectorLayer=function(n){ol.renderer.canvas.Layer.call(this,n);this.declutterTree_=n.getDeclutter()?ol.ext.rbush(9):null;this.dirty_=!1;this.renderedRevision_=-1;this.renderedResolution_=NaN;this.renderedExtent_=ol.extent.createEmpty();this.renderedRenderOrder_=null;this.replayGroup_=null;this.replayGroupChanged=!0;this.context=ol.dom.createCanvasContext2D();ol.events.listen(ol.render.canvas.labelCache,ol.events.EventType.CLEAR,this.handleFontsChanged_,this)},ol.inherits(ol.renderer.canvas.VectorLayer,ol.renderer.canvas.Layer),ol.renderer.canvas.VectorLayer.handles=function(n,t){return n===ol.renderer.Type.CANVAS&&t.getType()===ol.LayerType.VECTOR},ol.renderer.canvas.VectorLayer.create=function(n,t){return new ol.renderer.canvas.VectorLayer(t)},ol.renderer.canvas.VectorLayer.prototype.disposeInternal=function(){ol.events.unlisten(ol.render.canvas.labelCache,ol.events.EventType.CLEAR,this.handleFontsChanged_,this);ol.renderer.canvas.Layer.prototype.disposeInternal.call(this)},ol.renderer.canvas.VectorLayer.prototype.composeFrame=function(n,t,i){var k=n.extent,rt=n.pixelRatio,d=t.managed?n.skippedFeatureUids:{},ut=n.viewState,ft=ut.projection,f=ut.rotation,v=ft.getExtent(),ht=this.getLayer().getSource(),u=this.getTransform(n,0),g,nt,e,o,s,p,ot,tt,it,st;if(this.preCompose(i,n,u),g=t.extent,nt=g!==undefined,nt&&this.clip(i,n,g),e=this.replayGroup_,e&&!e.isEmpty()){this.declutterTree_&&this.declutterTree_.clear();var ct=this.getLayer(),h=0,c=0,r,y=t.opacity!==1,et=ct.hasListener(ol.render.EventType.RENDER);if(y||et?(o=i.canvas.width,s=i.canvas.height,f&&(p=Math.round(Math.sqrt(o*o+s*s)),h=(p-o)/2,c=(p-s)/2,o=s=p),this.context.canvas.width=o,this.context.canvas.height=s,r=this.context):r=i,ot=r.globalAlpha,y||(r.globalAlpha=t.opacity),r!=i&&r.translate(h,c),tt=n.size[0]*rt,it=n.size[1]*rt,ol.render.canvas.rotateAtOffset(r,-f,tt/2,it/2),e.replay(r,u,f,d),ht.getWrapX()&&ft.canWrapX()&&!ol.extent.containsExtent(v,k)){for(var l=k[0],w=ol.extent.getWidth(v),a=0,b;l<v[0];)--a,b=w*a,u=this.getTransform(n,b),e.replay(r,u,f,d),l+=w;for(a=0,l=k[2];l>v[2];)++a,b=w*a,u=this.getTransform(n,b),e.replay(r,u,f,d),l-=w;u=this.getTransform(n,0)}ol.render.canvas.rotateAtOffset(r,f,tt/2,it/2);r!=i&&(et&&this.dispatchRenderEvent(r,n,u),y?(st=i.globalAlpha,i.globalAlpha=t.opacity,i.drawImage(r.canvas,-h,-c),i.globalAlpha=st):i.drawImage(r.canvas,-h,-c),r.translate(-h,-c));y||(r.globalAlpha=ot)}nt&&i.restore();this.postCompose(i,n,t,u)},ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u){if(this.replayGroup_){var e=t.viewState.resolution,o=t.viewState.rotation,s=this.getLayer(),f={};return this.replayGroup_.forEachFeatureAtCoordinate(n,e,o,i,{},function(n){var t=ol.getUid(n).toString();if(!(t in f))return f[t]=!0,r.call(u,n,s)},null)}return undefined},ol.renderer.canvas.VectorLayer.prototype.handleFontsChanged_=function(){var n=this.getLayer();n.getVisible()&&this.replayGroup_&&n.changed()},ol.renderer.canvas.VectorLayer.prototype.handleStyleImageChange_=function(){this.renderIfReadyAndVisible()},ol.renderer.canvas.VectorLayer.prototype.prepareFrame=function(n){var r=this.getLayer(),u=r.getSource(),t,e,p,a,h,v,o,c,w;this.updateLogos(n,u);var b=n.viewHints[ol.ViewHint.ANIMATING],k=n.viewHints[ol.ViewHint.INTERACTING],d=r.getUpdateWhileAnimating(),g=r.getUpdateWhileInteracting();if(!this.dirty_&&!d&&b||!g&&k)return!0;var nt=n.extent,s=n.viewState,tt=s.projection,i=s.resolution,l=n.pixelRatio,y=r.getRevision(),it=r.getRenderBuffer(),f=r.getRenderOrder();if(f===undefined&&(f=ol.renderer.vector.defaultOrder),t=ol.extent.buffer(nt,it*i),e=s.projection.getExtent(),u.getWrapX()&&s.projection.canWrapX()&&!ol.extent.containsExtent(e,n.extent)&&(p=ol.extent.getWidth(e),a=Math.max(ol.extent.getWidth(t)/2,p),t[0]=e[0]-a,t[2]=e[2]+a),!this.dirty_&&this.renderedResolution_==i&&this.renderedRevision_==y&&this.renderedRenderOrder_==f&&ol.extent.containsExtent(this.renderedExtent_,t))return this.replayGroupChanged=!1,!0;if(this.replayGroup_=null,this.dirty_=!1,h=new ol.render.canvas.ReplayGroup(ol.renderer.vector.getTolerance(i,l),t,i,l,u.getOverlaps(),this.declutterTree_,r.getRenderBuffer()),u.loadFeatures(t,i,tt),v=function(n){var u,t=n.getStyleFunction(),f;t?u=t.call(n,i):(t=r.getStyleFunction(),t&&(u=t(n,i)));u&&(f=this.renderFeature(n,i,l,u,h),this.dirty_=this.dirty_||f)}.bind(this),f)for(o=[],u.forEachFeatureInExtent(t,function(n){o.push(n)},this),o.sort(f),c=0,w=o.length;c<w;++c)v(o[c]);else u.forEachFeatureInExtent(t,v,this);return h.finish(),this.renderedResolution_=i,this.renderedRevision_=y,this.renderedRenderOrder_=f,this.renderedExtent_=t,this.replayGroup_=h,this.replayGroupChanged=!0,!0},ol.renderer.canvas.VectorLayer.prototype.renderFeature=function(n,t,i,r,u){var f,e,o;if(!r)return!1;if(f=!1,Array.isArray(r))for(e=0,o=r.length;e<o;++e)f=ol.renderer.vector.renderFeature(u,n,r[e],ol.renderer.vector.getSquaredTolerance(t,i),this.handleStyleImageChange_,this)||f;else f=ol.renderer.vector.renderFeature(u,n,r,ol.renderer.vector.getSquaredTolerance(t,i),this.handleStyleImageChange_,this);return f},n.provide("ol.layer.VectorTileRenderType"),ol.layer.VectorTileRenderType={IMAGE:"image",HYBRID:"hybrid",VECTOR:"vector"},n.provide("ol.renderer.canvas.VectorTileLayer"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.TileState"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.ext.rbush"),n.require("ol.extent"),n.require("ol.layer.VectorTileRenderType"),n.require("ol.proj"),n.require("ol.proj.Units"),n.require("ol.render.ReplayType"),n.require("ol.render.canvas"),n.require("ol.render.canvas.ReplayGroup"),n.require("ol.render.replay"),n.require("ol.renderer.Type"),n.require("ol.renderer.canvas.TileLayer"),n.require("ol.renderer.vector"),n.require("ol.transform"),ol.renderer.canvas.VectorTileLayer=function(n){this.context=null;ol.renderer.canvas.TileLayer.call(this,n);this.declutterTree_=n.getDeclutter()?ol.ext.rbush(9):null;this.dirty_=!1;this.renderedLayerRevision_;this.tmpTransform_=ol.transform.create();this.zDirection=n.getRenderMode()==ol.layer.VectorTileRenderType.VECTOR?1:0;ol.events.listen(ol.render.canvas.labelCache,ol.events.EventType.CLEAR,this.handleFontsChanged_,this)},ol.inherits(ol.renderer.canvas.VectorTileLayer,ol.renderer.canvas.TileLayer),ol.renderer.canvas.VectorTileLayer.handles=function(n,t){return n===ol.renderer.Type.CANVAS&&t.getType()===ol.LayerType.VECTOR_TILE},ol.renderer.canvas.VectorTileLayer.create=function(n,t){return new ol.renderer.canvas.VectorTileLayer(t)},ol.renderer.canvas.VectorTileLayer.IMAGE_REPLAYS={image:[ol.render.ReplayType.POLYGON,ol.render.ReplayType.CIRCLE,ol.render.ReplayType.LINE_STRING,ol.render.ReplayType.IMAGE,ol.render.ReplayType.TEXT],hybrid:[ol.render.ReplayType.POLYGON,ol.render.ReplayType.LINE_STRING]},ol.renderer.canvas.VectorTileLayer.VECTOR_REPLAYS={image:[ol.render.ReplayType.DEFAULT],hybrid:[ol.render.ReplayType.IMAGE,ol.render.ReplayType.TEXT,ol.render.ReplayType.DEFAULT],vector:ol.render.replay.ORDER},ol.renderer.canvas.VectorTileLayer.prototype.disposeInternal=function(){ol.events.unlisten(ol.render.canvas.labelCache,ol.events.EventType.CLEAR,this.handleFontsChanged_,this);ol.renderer.canvas.TileLayer.prototype.disposeInternal.call(this)},ol.renderer.canvas.VectorTileLayer.prototype.prepareFrame=function(){var t=this.getLayer(),i=t.getRevision(),n;return this.renderedLayerRevision_!=i&&(this.renderedTiles.length=0,n=t.getRenderMode(),this.context||n==ol.layer.VectorTileRenderType.VECTOR||(this.context=ol.dom.createCanvasContext2D()),this.context&&n==ol.layer.VectorTileRenderType.VECTOR&&(this.context=null)),this.renderedLayerRevision_=i,ol.renderer.canvas.TileLayer.prototype.prepareFrame.apply(this,arguments)},ol.renderer.canvas.VectorTileLayer.prototype.createReplayGroup_=function(n,t){var r=this.getLayer(),b=t.pixelRatio,s=t.viewState.projection,k=r.getRevision(),f=r.getRenderOrder()||null,i=n.getReplayState(r),h,g,u,l,a,it,rt;if(i.dirty||i.renderedRevision!=k||i.renderedRenderOrder!=f){var v=r.getSource(),ut=v.getTileGrid(),d=v.getTileGridForProjection(s),e=d.getResolution(n.tileCoord[0]),ft=d.getTileCoordExtent(n.wrappedTileCoord),et={};for(h=0,g=n.tileKeys.length;h<g;++h)if(u=n.getTile(n.tileKeys[h]),u.getState()!=ol.TileState.ERROR){var ot=u.tileCoord,y=ut.getTileCoordExtent(ot),p=ol.extent.getIntersection(ft,y),nt=ol.extent.equals(y,p)?null:ol.extent.buffer(p,r.getRenderBuffer()*e),o=u.getProjection(),tt=!1;ol.proj.equivalent(s,o)||(tt=!0,u.setProjection(s));i.dirty=!1;var c=new ol.render.canvas.ReplayGroup(0,p,e,b,v.getOverlaps(),this.declutterTree_,r.getRenderBuffer()),st=ol.renderer.vector.getSquaredTolerance(e,b),ht=function(n){var u,t=n.getStyleFunction(),f;t?u=t.call(n,e):(t=r.getStyleFunction(),t&&(u=t(n,e)));u&&(f=this.renderFeature(n,st,u,c),this.dirty_=this.dirty_||f,i.dirty=i.dirty||f)},w=u.getFeatures();for(f&&f!==i.renderedRenderOrder&&w.sort(f),a=0,it=w.length;a<it;++a)l=w[a],tt&&(o.getUnits()==ol.proj.Units.TILE_PIXELS&&(o.setWorldExtent(y),o.setExtent(u.getExtent())),l.getGeometry().transform(o,s)),(!nt||ol.extent.intersects(nt,l.getGeometry().getExtent()))&&ht.call(this,l);c.finish();for(rt in c.getReplays())et[rt]=!0;u.setReplayGroup(r,n.tileCoord.toString(),c)}i.renderedRevision=k;i.renderedRenderOrder=f}},ol.renderer.canvas.VectorTileLayer.prototype.drawTileImage=function(n,t,i){var r=n;this.createReplayGroup_(r,t);this.context&&(this.renderTileImage_(r,t,i),ol.renderer.canvas.TileLayer.prototype.drawTileImage.apply(this,arguments))},ol.renderer.canvas.VectorTileLayer.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u){var a=t.viewState.resolution,g=t.viewState.rotation,o,d,l;i=i==undefined?0:i;for(var s=this.getLayer(),v={},y=this.renderedTiles,nt=s.getSource(),tt=nt.getTileGridForProjection(t.viewState.projection),h,c,w,f,b,k,e=0,p=y.length;e<p;++e)if(f=y[e],b=f.wrappedTileCoord,k=tt.getTileCoordExtent(b,this.tmpExtent),h=ol.extent.buffer(k,i*a,h),ol.extent.containsCoordinate(h,n))for(o=0,d=f.tileKeys.length;o<d;++o)(l=f.getTile(f.tileKeys[o]),l.getState()!=ol.TileState.ERROR)&&(w=l.getReplayGroup(s,f.tileCoord.toString()),c=c||w.forEachFeatureAtCoordinate(n,a,g,i,{},function(n){var t=ol.getUid(n).toString();if(!(t in v))return v[t]=!0,r.call(u,n,s)},null));return c},ol.renderer.canvas.VectorTileLayer.prototype.getReplayTransform_=function(n,t){var l=this.getLayer(),a=l.getSource(),f=a.getTileGrid(),e=n.tileCoord,i=f.getResolution(e[0]),r=t.viewState,u=t.pixelRatio,o=r.resolution/u,v=f.getTileCoordExtent(e,this.tmpExtent),s=r.center,h=ol.extent.getTopLeft(v),c=t.size,y=Math.round(u*c[0]/2),p=Math.round(u*c[1]/2);return ol.transform.compose(this.tmpTransform_,y,p,i/o,i/o,r.rotation,(h[0]-s[0])/i,(s[1]-h[1])/i)},ol.renderer.canvas.VectorTileLayer.prototype.handleFontsChanged_=function(){var n=this.getLayer();n.getVisible()&&this.renderedLayerRevision_!==undefined&&n.changed()},ol.renderer.canvas.VectorTileLayer.prototype.handleStyleImageChange_=function(){this.renderIfReadyAndVisible()},ol.renderer.canvas.VectorTileLayer.prototype.postCompose=function(n,t,i){var s=this.getLayer(),h=s.getDeclutter()?{}:null,st=s.getSource(),d=s.getRenderMode(),g=ol.renderer.canvas.VectorTileLayer.VECTOR_REPLAYS[d],nt=t.pixelRatio,e=t.viewState.rotation,tt=t.size,p,w,c,f,a,et,v,y,k,r,o,ot,u;e&&(p=Math.round(nt*tt[0]/2),w=Math.round(nt*tt[1]/2),ol.render.canvas.rotateAtOffset(n,-e,p,w));h&&this.declutterTree_.clear();var it=this.renderedTiles,rt=st.getTileGridForProjection(t.viewState.projection),b=[],ut=[];for(c=it.length-1;c>=0;--c)if(f=it[c],f.getState()!=ol.TileState.ABORT){var ft=f.tileCoord,ht=rt.getTileCoordExtent(ft)[0]-rt.getTileCoordExtent(f.wrappedTileCoord)[0],l=undefined;for(a=0,et=f.tileKeys.length;a<et;++a)if((v=f.getTile(f.tileKeys[a]),v.getState()!=ol.TileState.ERROR)&&(y=v.getReplayGroup(s,ft.toString()),d==ol.layer.VectorTileRenderType.VECTOR||y.hasReplays(g))){for(l||(l=this.getTransform(t,ht)),k=v.tileCoord[0],r=y.getClipCoords(l),n.save(),n.globalAlpha=i.opacity,o=0,ot=b.length;o<ot;++o)u=b[o],k<ut[o]&&(n.beginPath(),n.moveTo(r[0],r[1]),n.lineTo(r[2],r[3]),n.lineTo(r[4],r[5]),n.lineTo(r[6],r[7]),n.moveTo(u[6],u[7]),n.lineTo(u[4],u[5]),n.lineTo(u[2],u[3]),n.lineTo(u[0],u[1]),n.clip());y.replay(n,l,e,{},g,h);n.restore();b.push(r);ut.push(k)}}h&&ol.render.canvas.ReplayGroup.replayDeclutter(h,n,e);e&&ol.render.canvas.rotateAtOffset(n,e,p,w);ol.renderer.canvas.TileLayer.prototype.postCompose.apply(this,arguments)},ol.renderer.canvas.VectorTileLayer.prototype.renderFeature=function(n,t,i,r){var u,f,e;if(!i)return!1;if(u=!1,Array.isArray(i))for(f=0,e=i.length;f<e;++f)u=ol.renderer.vector.renderFeature(r,n,i[f],t,this.handleStyleImageChange_,this)||u;else u=ol.renderer.vector.renderFeature(r,n,i,t,this.handleStyleImageChange_,this);return u},ol.renderer.canvas.VectorTileLayer.prototype.renderTileImage_=function(n,t){var i=this.getLayer(),h=n.getReplayState(i),c=i.getRevision(),l=ol.renderer.canvas.VectorTileLayer.IMAGE_REPLAYS[i.getRenderMode()],e,r,k,o,s,u,d;if(l&&h.renderedTileRevision!==c){h.renderedTileRevision=c;var a=n.wrappedTileCoord,v=a[0],y=t.pixelRatio,p=i.getSource(),w=p.getTileGridForProjection(t.viewState.projection),g=w.getResolution(v),f=n.getContext(i),b=p.getTilePixelSize(v,y,t.viewState.projection);for(f.canvas.width=b[0],f.canvas.height=b[1],e=w.getTileCoordExtent(a),r=0,k=n.tileKeys.length;r<k;++r)(o=n.getTile(n.tileKeys[r]),o.getState()!=ol.TileState.ERROR)&&(s=y/g,u=ol.transform.reset(this.tmpTransform_),ol.transform.scale(u,s,-s),ol.transform.translate(u,-e[0],-e[3]),d=o.getReplayGroup(i,n.tileCoord.toString()),d.replay(f,u,0,{},l))}},n.provide("ol.CanvasMap"),n.require("ol"),n.require("ol.PluggableMap"),n.require("ol.PluginType"),n.require("ol.control"),n.require("ol.interaction"),n.require("ol.obj"),n.require("ol.plugins"),n.require("ol.renderer.canvas.ImageLayer"),n.require("ol.renderer.canvas.Map"),n.require("ol.renderer.canvas.TileLayer"),n.require("ol.renderer.canvas.VectorLayer"),n.require("ol.renderer.canvas.VectorTileLayer"),ol.plugins.register(ol.PluginType.MAP_RENDERER,ol.renderer.canvas.Map),ol.plugins.registerMultiple(ol.PluginType.LAYER_RENDERER,[ol.renderer.canvas.ImageLayer,ol.renderer.canvas.TileLayer,ol.renderer.canvas.VectorLayer,ol.renderer.canvas.VectorTileLayer]),ol.CanvasMap=function(n){n=ol.obj.assign({},n);delete n.renderer;n.controls||(n.controls=ol.control.defaults());n.interactions||(n.interactions=ol.interaction.defaults());ol.PluggableMap.call(this,n)},ol.inherits(ol.CanvasMap,ol.PluggableMap),n.provide("ol.control.FullScreen"),n.require("ol"),n.require("ol.control.Control"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),ol.control.FullScreen=function(n){var t=n?n:{},r,u,e,i,o,f;this.cssClassName_=t.className!==undefined?t.className:"ol-full-screen";r=t.label!==undefined?t.label:"⤢";this.labelNode_=typeof r=="string"?document.createTextNode(r):r;u=t.labelActive!==undefined?t.labelActive:"×";this.labelActiveNode_=typeof u=="string"?document.createTextNode(u):u;e=t.tipLabel?t.tipLabel:"Toggle full-screen";i=document.createElement("button");i.className=this.cssClassName_+"-"+ol.control.FullScreen.isFullScreen();i.setAttribute("type","button");i.title=e;i.appendChild(this.labelNode_);ol.events.listen(i,ol.events.EventType.CLICK,this.handleClick_,this);o=this.cssClassName_+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL+" "+(ol.control.FullScreen.isFullScreenSupported()?"":ol.css.CLASS_UNSUPPORTED);f=document.createElement("div");f.className=o;f.appendChild(i);ol.control.Control.call(this,{element:f,target:t.target});this.keys_=t.keys!==undefined?t.keys:!1;this.source_=t.source},ol.inherits(ol.control.FullScreen,ol.control.Control),ol.control.FullScreen.prototype.handleClick_=function(n){n.preventDefault();this.handleFullScreen_()},ol.control.FullScreen.prototype.handleFullScreen_=function(){var n,t;ol.control.FullScreen.isFullScreenSupported()&&(n=this.getMap(),n)&&(ol.control.FullScreen.isFullScreen()?ol.control.FullScreen.exitFullScreen():(t=this.source_?typeof this.source_=="string"?document.getElementById(this.source_):this.source_:n.getTargetElement(),this.keys_?ol.control.FullScreen.requestFullScreenWithKeys(t):ol.control.FullScreen.requestFullScreen(t)))},ol.control.FullScreen.prototype.handleFullScreenChange_=function(){var n=this.element.firstElementChild,t=this.getMap();ol.control.FullScreen.isFullScreen()?(n.className=this.cssClassName_+"-true",ol.dom.replaceNode(this.labelActiveNode_,this.labelNode_)):(n.className=this.cssClassName_+"-false",ol.dom.replaceNode(this.labelNode_,this.labelActiveNode_));t&&t.updateSize()},ol.control.FullScreen.prototype.setMap=function(n){ol.control.Control.prototype.setMap.call(this,n);n&&this.listenerKeys.push(ol.events.listen(document,ol.control.FullScreen.getChangeType_(),this.handleFullScreenChange_,this))},ol.control.FullScreen.isFullScreenSupported=function(){var n=document.body;return!!(n.webkitRequestFullscreen||n.mozRequestFullScreen&&document.mozFullScreenEnabled||n.msRequestFullscreen&&document.msFullscreenEnabled||n.requestFullscreen&&document.fullscreenEnabled)},ol.control.FullScreen.isFullScreen=function(){return!!(document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement||document.fullscreenElement)},ol.control.FullScreen.requestFullScreen=function(n){n.requestFullscreen?n.requestFullscreen():n.msRequestFullscreen?n.msRequestFullscreen():n.mozRequestFullScreen?n.mozRequestFullScreen():n.webkitRequestFullscreen&&n.webkitRequestFullscreen()},ol.control.FullScreen.requestFullScreenWithKeys=function(n){n.mozRequestFullScreenWithKeys?n.mozRequestFullScreenWithKeys():n.webkitRequestFullscreen?n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):ol.control.FullScreen.requestFullScreen(n)},ol.control.FullScreen.exitFullScreen=function(){document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()},ol.control.FullScreen.getChangeType_=function(){var n;return function(){if(!n){var t=document.body;t.webkitRequestFullscreen?n="webkitfullscreenchange":t.mozRequestFullScreen?n="mozfullscreenchange":t.msRequestFullscreen?n="MSFullscreenChange":t.requestFullscreen&&(n="fullscreenchange")}return n}}(),n.provide("ol.control.MousePosition"),n.require("ol"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.Object"),n.require("ol.control.Control"),n.require("ol.proj"),ol.control.MousePosition=function(n){var t=n?n:{},i=document.createElement("DIV"),r;i.className=t.className!==undefined?t.className:"ol-mouse-position";r=t.render?t.render:ol.control.MousePosition.render;ol.control.Control.call(this,{element:i,render:r,target:t.target});ol.events.listen(this,ol.Object.getChangeEventType(ol.control.MousePosition.Property_.PROJECTION),this.handleProjectionChanged_,this);t.coordinateFormat&&this.setCoordinateFormat(t.coordinateFormat);t.projection&&this.setProjection(t.projection);this.undefinedHTML_=t.undefinedHTML!==undefined?t.undefinedHTML:"";this.renderedHTML_=i.innerHTML;this.mapProjection_=null;this.transform_=null;this.lastMouseMovePixel_=null},ol.inherits(ol.control.MousePosition,ol.control.Control),ol.control.MousePosition.render=function(n){var t=n.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null;this.updateHTML_(this.lastMouseMovePixel_)},ol.control.MousePosition.prototype.handleProjectionChanged_=function(){this.transform_=null},ol.control.MousePosition.prototype.getCoordinateFormat=function(){return this.get(ol.control.MousePosition.Property_.COORDINATE_FORMAT)},ol.control.MousePosition.prototype.getProjection=function(){return this.get(ol.control.MousePosition.Property_.PROJECTION)},ol.control.MousePosition.prototype.handleMouseMove=function(n){var t=this.getMap();this.lastMouseMovePixel_=t.getEventPixel(n);this.updateHTML_(this.lastMouseMovePixel_)},ol.control.MousePosition.prototype.handleMouseOut=function(){this.updateHTML_(null);this.lastMouseMovePixel_=null},ol.control.MousePosition.prototype.setMap=function(n){if(ol.control.Control.prototype.setMap.call(this,n),n){var t=n.getViewport();this.listenerKeys.push(ol.events.listen(t,ol.events.EventType.MOUSEMOVE,this.handleMouseMove,this),ol.events.listen(t,ol.events.EventType.MOUSEOUT,this.handleMouseOut,this))}},ol.control.MousePosition.prototype.setCoordinateFormat=function(n){this.set(ol.control.MousePosition.Property_.COORDINATE_FORMAT,n)},ol.control.MousePosition.prototype.setProjection=function(n){this.set(ol.control.MousePosition.Property_.PROJECTION,ol.proj.get(n))},ol.control.MousePosition.prototype.updateHTML_=function(n){var i=this.undefinedHTML_,r,f,t,u;n&&this.mapProjection_&&(this.transform_||(r=this.getProjection(),this.transform_=r?ol.proj.getTransformFromProjections(this.mapProjection_,r):ol.proj.identityTransform),f=this.getMap(),t=f.getCoordinateFromPixel(n),t&&(this.transform_(t,t),u=this.getCoordinateFormat(),i=u?u(t):t.toString()));this.renderedHTML_&&i==this.renderedHTML_||(this.element.innerHTML=i,this.renderedHTML_=i)},ol.control.MousePosition.Property_={PROJECTION:"projection",COORDINATE_FORMAT:"coordinateFormat"},n.provide("ol.OverlayPositioning"),ol.OverlayPositioning={BOTTOM_LEFT:"bottom-left",BOTTOM_CENTER:"bottom-center",BOTTOM_RIGHT:"bottom-right",CENTER_LEFT:"center-left",CENTER_CENTER:"center-center",CENTER_RIGHT:"center-right",TOP_LEFT:"top-left",TOP_CENTER:"top-center",TOP_RIGHT:"top-right"},n.provide("ol.Overlay"),n.require("ol"),n.require("ol.MapEventType"),n.require("ol.Object"),n.require("ol.OverlayPositioning"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.extent"),ol.Overlay=function(n){ol.Object.call(this);this.options=n;this.id=n.id;this.insertFirst=n.insertFirst!==undefined?n.insertFirst:!0;this.stopEvent=n.stopEvent!==undefined?n.stopEvent:!0;this.element=document.createElement("DIV");this.element.className=n.className!==undefined?n.className:"ol-overlay-container "+ol.css.CLASS_SELECTABLE;this.element.style.position="absolute";this.autoPan=n.autoPan!==undefined?n.autoPan:!1;this.autoPanAnimation=n.autoPanAnimation||{};this.autoPanMargin=n.autoPanMargin!==undefined?n.autoPanMargin:20;this.rendered={bottom_:"",left_:"",right_:"",top_:"",visible:!0};this.mapPostrenderListenerKey=null;ol.events.listen(this,ol.Object.getChangeEventType(ol.Overlay.Property.ELEMENT),this.handleElementChanged,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.Overlay.Property.MAP),this.handleMapChanged,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.Overlay.Property.OFFSET),this.handleOffsetChanged,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.Overlay.Property.POSITION),this.handlePositionChanged,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.Overlay.Property.POSITIONING),this.handlePositioningChanged,this);n.element!==undefined&&this.setElement(n.element);this.setOffset(n.offset!==undefined?n.offset:[0,0]);this.setPositioning(n.positioning!==undefined?n.positioning:ol.OverlayPositioning.TOP_LEFT);n.position!==undefined&&this.setPosition(n.position)},ol.inherits(ol.Overlay,ol.Object),ol.Overlay.prototype.getElement=function(){return this.get(ol.Overlay.Property.ELEMENT)},ol.Overlay.prototype.getId=function(){return this.id},ol.Overlay.prototype.getMap=function(){return this.get(ol.Overlay.Property.MAP)},ol.Overlay.prototype.getOffset=function(){return this.get(ol.Overlay.Property.OFFSET)},ol.Overlay.prototype.getPosition=function(){return this.get(ol.Overlay.Property.POSITION)},ol.Overlay.prototype.getPositioning=function(){return this.get(ol.Overlay.Property.POSITIONING)},ol.Overlay.prototype.handleElementChanged=function(){ol.dom.removeChildren(this.element);var n=this.getElement();n&&this.element.appendChild(n)},ol.Overlay.prototype.handleMapChanged=function(){var n,t;this.mapPostrenderListenerKey&&(ol.dom.removeNode(this.element),ol.events.unlistenByKey(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);n=this.getMap();n&&(this.mapPostrenderListenerKey=ol.events.listen(n,ol.MapEventType.POSTRENDER,this.render,this),this.updatePixelPosition(),t=this.stopEvent?n.getOverlayContainerStopEvent():n.getOverlayContainer(),this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element))},ol.Overlay.prototype.render=function(){this.updatePixelPosition()},ol.Overlay.prototype.handleOffsetChanged=function(){this.updatePixelPosition()},ol.Overlay.prototype.handlePositionChanged=function(){this.updatePixelPosition();this.get(ol.Overlay.Property.POSITION)&&this.autoPan&&this.panIntoView()},ol.Overlay.prototype.handlePositioningChanged=function(){this.updatePixelPosition()},ol.Overlay.prototype.setElement=function(n){this.set(ol.Overlay.Property.ELEMENT,n)},ol.Overlay.prototype.setMap=function(n){this.set(ol.Overlay.Property.MAP,n)},ol.Overlay.prototype.setOffset=function(n){this.set(ol.Overlay.Property.OFFSET,n)},ol.Overlay.prototype.setPosition=function(n){this.set(ol.Overlay.Property.POSITION,n)},ol.Overlay.prototype.panIntoView=function(){var n=this.getMap();if(n&&n.getTargetElement()){var i=this.getRect(n.getTargetElement(),n.getSize()),f=this.getElement(),r=this.getRect(f,[ol.dom.outerWidth(f),ol.dom.outerHeight(f)]),u=this.autoPanMargin;if(!ol.extent.containsExtent(i,r)){var e=r[0]-i[0],o=i[2]-r[2],s=r[1]-i[1],h=i[3]-r[3],t=[0,0];if(e<0?t[0]=e-u:o<0&&(t[0]=Math.abs(o)+u),s<0?t[1]=s-u:h<0&&(t[1]=Math.abs(h)+u),t[0]!==0||t[1]!==0){var l=n.getView().getCenter(),c=n.getPixelFromCoordinate(l),a=[c[0]+t[0],c[1]+t[1]];n.getView().animate({center:n.getCoordinateFromPixel(a),duration:this.autoPanAnimation.duration,easing:this.autoPanAnimation.easing})}}}},ol.Overlay.prototype.getRect=function(n,t){var i=n.getBoundingClientRect(),r=i.left+window.pageXOffset,u=i.top+window.pageYOffset;return[r,u,r+t[0],u+t[1]]},ol.Overlay.prototype.setPositioning=function(n){this.set(ol.Overlay.Property.POSITIONING,n)},ol.Overlay.prototype.setVisible=function(n){this.rendered.visible!==n&&(this.element.style.display=n?"":"none",this.rendered.visible=n)},ol.Overlay.prototype.updatePixelPosition=function(){var n=this.getMap(),t=this.getPosition(),i,r;if(!n||!n.isRendered()||!t){this.setVisible(!1);return}i=n.getPixelFromCoordinate(t);r=n.getSize();this.updateRenderedPosition(i,r)},ol.Overlay.prototype.updateRenderedPosition=function(n,t){var r=this.element.style,c=this.getOffset(),i=this.getPositioning(),u,f,e,o,s,h;this.setVisible(!0);u=c[0];f=c[1];i==ol.OverlayPositioning.BOTTOM_RIGHT||i==ol.OverlayPositioning.CENTER_RIGHT||i==ol.OverlayPositioning.TOP_RIGHT?(this.rendered.left_!==""&&(this.rendered.left_=r.left=""),e=Math.round(t[0]-n[0]-u)+"px",this.rendered.right_!=e&&(this.rendered.right_=r.right=e)):(this.rendered.right_!==""&&(this.rendered.right_=r.right=""),(i==ol.OverlayPositioning.BOTTOM_CENTER||i==ol.OverlayPositioning.CENTER_CENTER||i==ol.OverlayPositioning.TOP_CENTER)&&(u-=this.element.offsetWidth/2),o=Math.round(n[0]+u)+"px",this.rendered.left_!=o&&(this.rendered.left_=r.left=o));i==ol.OverlayPositioning.BOTTOM_LEFT||i==ol.OverlayPositioning.BOTTOM_CENTER||i==ol.OverlayPositioning.BOTTOM_RIGHT?(this.rendered.top_!==""&&(this.rendered.top_=r.top=""),s=Math.round(t[1]-n[1]-f)+"px",this.rendered.bottom_!=s&&(this.rendered.bottom_=r.bottom=s)):(this.rendered.bottom_!==""&&(this.rendered.bottom_=r.bottom=""),(i==ol.OverlayPositioning.CENTER_LEFT||i==ol.OverlayPositioning.CENTER_CENTER||i==ol.OverlayPositioning.CENTER_RIGHT)&&(f-=this.element.offsetHeight/2),h=Math.round(n[1]+f)+"px",this.rendered.top_!=h&&(this.rendered.top_=r.top=h))},ol.Overlay.prototype.getOptions=function(){return this.options},ol.Overlay.Property={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"},n.provide("ol.control.OverviewMap"),n.require("ol"),n.require("ol.Collection"),n.require("ol.PluggableMap"),n.require("ol.MapEventType"),n.require("ol.MapProperty"),n.require("ol.Object"),n.require("ol.ObjectEventType"),n.require("ol.Overlay"),n.require("ol.OverlayPositioning"),n.require("ol.ViewProperty"),n.require("ol.control.Control"),n.require("ol.coordinate"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),ol.control.OverviewMap=function(n){var t=n?n:{},u,h,i,f,e,c,r,l;this.collapsed_=t.collapsed!==undefined?t.collapsed:!0;this.collapsible_=t.collapsible!==undefined?t.collapsible:!0;this.collapsible_||(this.collapsed_=!1);var y=t.className!==undefined?t.className:"ol-overviewmap",p=t.tipLabel!==undefined?t.tipLabel:"Overview map",o=t.collapseLabel!==undefined?t.collapseLabel:"«";typeof o=="string"?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=o):this.collapseLabel_=o;u=t.label!==undefined?t.label:"»";typeof u=="string"?(this.label_=document.createElement("span"),this.label_.textContent=u):this.label_=u;h=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_;i=document.createElement("button");i.setAttribute("type","button");i.title=p;i.appendChild(h);ol.events.listen(i,ol.events.EventType.CLICK,this.handleClick_,this);this.ovmapDiv_=document.createElement("DIV");this.ovmapDiv_.className="ol-overviewmap-map";this.ovmap_=new ol.PluggableMap({controls:new ol.Collection,interactions:new ol.Collection,view:t.view});f=this.ovmap_;t.layers&&t.layers.forEach(function(n){f.addLayer(n)},this);e=document.createElement("DIV");e.className="ol-overviewmap-box";e.style.boxSizing="border-box";this.boxOverlay_=new ol.Overlay({position:[0,0],positioning:ol.OverlayPositioning.BOTTOM_LEFT,element:e});this.ovmap_.addOverlay(this.boxOverlay_);c=y+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible");r=document.createElement("div");r.className=c;r.appendChild(this.ovmapDiv_);r.appendChild(i);l=t.render?t.render:ol.control.OverviewMap.render;ol.control.Control.call(this,{element:r,render:l,target:t.target});var w=this,b=this.boxOverlay_,s=this.boxOverlay_.getElement(),k=function(n){return{clientX:n.clientX-s.offsetWidth/2,clientY:n.clientY+s.offsetHeight/2}},a=function(n){var t=f.getEventCoordinate(k(n));b.setPosition(t)},v=function(n){var t=f.getEventCoordinate(n);w.getMap().getView().setCenter(t);window.removeEventListener("mousemove",a);window.removeEventListener("mouseup",v)};s.addEventListener("mousedown",function(){window.addEventListener("mousemove",a);window.addEventListener("mouseup",v)})},ol.inherits(ol.control.OverviewMap,ol.control.Control),ol.control.OverviewMap.prototype.setMap=function(n){var i=this.getMap(),r,t;n!==i&&(i&&(r=i.getView(),r&&this.unbindView_(r),this.ovmap_.setTarget(null)),ol.control.Control.prototype.setMap.call(this,n),n&&(this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(ol.events.listen(n,ol.ObjectEventType.PROPERTYCHANGE,this.handleMapPropertyChange_,this)),this.ovmap_.getLayers().getLength()===0&&this.ovmap_.setLayerGroup(n.getLayerGroup()),t=n.getView(),t&&(this.bindView_(t),t.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_()))))},ol.control.OverviewMap.prototype.handleMapPropertyChange_=function(n){var t,i;n.key===ol.MapProperty.VIEW&&(t=n.oldValue,t&&this.unbindView_(t),i=this.getMap().getView(),this.bindView_(i))},ol.control.OverviewMap.prototype.bindView_=function(n){ol.events.listen(n,ol.Object.getChangeEventType(ol.ViewProperty.ROTATION),this.handleRotationChanged_,this)},ol.control.OverviewMap.prototype.unbindView_=function(n){ol.events.unlisten(n,ol.Object.getChangeEventType(ol.ViewProperty.ROTATION),this.handleRotationChanged_,this)},ol.control.OverviewMap.prototype.handleRotationChanged_=function(){this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())},ol.control.OverviewMap.render=function(){this.validateExtent_();this.updateBox_()},ol.control.OverviewMap.prototype.validateExtent_=function(){var t=this.getMap(),n=this.ovmap_;if(t.isRendered()&&n.isRendered()){var c=t.getSize(),l=t.getView(),i=l.calculateExtent(c),r=n.getSize(),a=n.getView(),v=a.calculateExtent(r),u=n.getPixelFromCoordinate(ol.extent.getTopLeft(i)),f=n.getPixelFromCoordinate(ol.extent.getBottomRight(i)),e=Math.abs(u[0]-f[0]),o=Math.abs(u[1]-f[1]),s=r[0],h=r[1];e<s*ol.OVERVIEWMAP_MIN_RATIO||o<h*ol.OVERVIEWMAP_MIN_RATIO||e>s*ol.OVERVIEWMAP_MAX_RATIO||o>h*ol.OVERVIEWMAP_MAX_RATIO?this.resetExtent_():ol.extent.containsExtent(v,i)||this.recenter_()}},ol.control.OverviewMap.prototype.resetExtent_=function(){if(ol.OVERVIEWMAP_MAX_RATIO!==0&&ol.OVERVIEWMAP_MIN_RATIO!==0){var n=this.getMap(),i=this.ovmap_,r=n.getSize(),u=n.getView(),t=u.calculateExtent(r),f=i.getView(),e=Math.log(ol.OVERVIEWMAP_MAX_RATIO/ol.OVERVIEWMAP_MIN_RATIO)/Math.LN2,o=1/(Math.pow(2,e/2)*ol.OVERVIEWMAP_MIN_RATIO);ol.extent.scaleFromCenter(t,o);f.fit(t)}},ol.control.OverviewMap.prototype.recenter_=function(){var n=this.getMap(),t=this.ovmap_,i=n.getView(),r=t.getView();r.setCenter(i.getCenter())},ol.control.OverviewMap.prototype.updateBox_=function(){var n=this.getMap(),r=this.ovmap_;if(n.isRendered()&&r.isRendered()){var s=n.getSize(),u=n.getView(),h=r.getView(),c=u.getRotation(),l=this.boxOverlay_,t=this.boxOverlay_.getElement(),f=u.calculateExtent(s),e=h.getResolution(),i=ol.extent.getBottomLeft(f),o=ol.extent.getTopRight(f),a=this.calculateCoordinateRotate_(c,i);l.setPosition(a);t&&(t.style.width=Math.abs((i[0]-o[0])/e)+"px",t.style.height=Math.abs((o[1]-i[1])/e)+"px")}},ol.control.OverviewMap.prototype.calculateCoordinateRotate_=function(n,t){var i,u=this.getMap(),f=u.getView(),r=f.getCenter();return r&&(i=[t[0]-r[0],t[1]-r[1]],ol.coordinate.rotate(i,n),ol.coordinate.add(i,r)),i},ol.control.OverviewMap.prototype.handleClick_=function(n){n.preventDefault();this.handleToggle_()},ol.control.OverviewMap.prototype.handleToggle_=function(){this.element.classList.toggle("ol-collapsed");this.collapsed_?ol.dom.replaceNode(this.collapseLabel_,this.label_):ol.dom.replaceNode(this.label_,this.collapseLabel_);this.collapsed_=!this.collapsed_;var n=this.ovmap_;this.collapsed_||n.isRendered()||(n.updateSize(),this.resetExtent_(),ol.events.listenOnce(n,ol.MapEventType.POSTRENDER,function(){this.updateBox_()},this))},ol.control.OverviewMap.prototype.getCollapsible=function(){return this.collapsible_},ol.control.OverviewMap.prototype.setCollapsible=function(n){this.collapsible_!==n&&(this.collapsible_=n,this.element.classList.toggle("ol-uncollapsible"),!n&&this.collapsed_&&this.handleToggle_())},ol.control.OverviewMap.prototype.setCollapsed=function(n){this.collapsible_&&this.collapsed_!==n&&this.handleToggle_()},ol.control.OverviewMap.prototype.getCollapsed=function(){return this.collapsed_},ol.control.OverviewMap.prototype.getOverviewMap=function(){return this.ovmap_},n.provide("ol.control.ScaleLineUnits"),ol.control.ScaleLineUnits={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},n.provide("ol.control.ScaleLine"),n.require("ol"),n.require("ol.Object"),n.require("ol.asserts"),n.require("ol.control.Control"),n.require("ol.control.ScaleLineUnits"),n.require("ol.css"),n.require("ol.events"),n.require("ol.proj"),n.require("ol.proj.Units"),ol.control.ScaleLine=function(n){var t=n?n:{},i=t.className!==undefined?t.className:"ol-scale-line",r;this.innerElement_=document.createElement("DIV");this.innerElement_.className=i+"-inner";this.element_=document.createElement("DIV");this.element_.className=i+" "+ol.css.CLASS_UNSELECTABLE;this.element_.appendChild(this.innerElement_);this.viewState_=null;this.minWidth_=t.minWidth!==undefined?t.minWidth:64;this.renderedVisible_=!1;this.renderedWidth_=undefined;this.renderedHTML_="";r=t.render?t.render:ol.control.ScaleLine.render;ol.control.Control.call(this,{element:this.element_,render:r,target:t.target});ol.events.listen(this,ol.Object.getChangeEventType(ol.control.ScaleLine.Property_.UNITS),this.handleUnitsChanged_,this);this.setUnits(t.units||ol.control.ScaleLineUnits.METRIC)},ol.inherits(ol.control.ScaleLine,ol.control.Control),ol.control.ScaleLine.LEADING_DIGITS=[1,2,5],ol.control.ScaleLine.prototype.getUnits=function(){return this.get(ol.control.ScaleLine.Property_.UNITS)},ol.control.ScaleLine.render=function(n){var t=n.frameState;this.viewState_=t?t.viewState:null;this.updateElement_()},ol.control.ScaleLine.prototype.handleUnitsChanged_=function(){this.updateElement_()},ol.control.ScaleLine.prototype.setUnits=function(n){this.set(ol.control.ScaleLine.Property_.UNITS,n)},ol.control.ScaleLine.prototype.updateElement_=function(){var e=this.viewState_,i,t,f,o,c,u,s;if(!e){this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1);return}var l=e.center,h=e.projection,r=this.getUnits(),a=r==ol.control.ScaleLineUnits.DEGREES?ol.proj.Units.DEGREES:ol.proj.Units.METERS,n=ol.proj.getPointResolution(h,e.resolution,l,a);for(r!=ol.control.ScaleLineUnits.DEGREES&&(n*=h.getMetersPerUnit()),i=this.minWidth_*n,t="",r==ol.control.ScaleLineUnits.DEGREES?(f=ol.proj.METERS_PER_UNIT[ol.proj.Units.DEGREES],h.getUnits()==ol.proj.Units.DEGREES?i*=f:n/=f,i<f/60?(t="″",n*=3600):i<f?(t="′",n*=60):t="°"):r==ol.control.ScaleLineUnits.IMPERIAL?i<.9144?(t="in",n/=.0254):i<1609.344?(t="ft",n/=.3048):(t="mi",n/=1609.344):r==ol.control.ScaleLineUnits.NAUTICAL?(n/=1852,t="nm"):r==ol.control.ScaleLineUnits.METRIC?i<.001?(t="μm",n*=1e6):i<1?(t="mm",n*=1e3):i<1e3?t="m":(t="km",n/=1e3):r==ol.control.ScaleLineUnits.US?i<.9144?(t="in",n*=39.37):i<1609.344?(t="ft",n/=.30480061):(t="mi",n/=1609.3472):ol.asserts.assert(!1,33),o=3*Math.floor(Math.log(this.minWidth_*n)/Math.log(10));;){if(c=ol.control.ScaleLine.LEADING_DIGITS[(o%3+3)%3]*Math.pow(10,Math.floor(o/3)),u=Math.round(c/n),isNaN(u)){this.element_.style.display="none";this.renderedVisible_=!1;return}if(u>=this.minWidth_)break;++o}s=c+" "+t;this.renderedHTML_!=s&&(this.innerElement_.innerHTML=s,this.renderedHTML_=s);this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u);this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0)},ol.control.ScaleLine.Property_={UNITS:"units"},n.provide("ol.control.ZoomSlider"),n.require("ol"),n.require("ol.ViewHint"),n.require("ol.control.Control"),n.require("ol.css"),n.require("ol.easing"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.EventType"),n.require("ol.math"),n.require("ol.pointer.EventType"),n.require("ol.pointer.PointerEventHandler"),ol.control.ZoomSlider=function(n){var t=n?n:{},u,r,i,f;this.currentResolution_=undefined;this.direction_=ol.control.ZoomSlider.Direction_.VERTICAL;this.dragging_;this.heightLimit_=0;this.widthLimit_=0;this.previousX_;this.previousY_;this.thumbSize_=null;this.sliderInitialized_=!1;this.duration_=t.duration!==undefined?t.duration:200;u=t.className!==undefined?t.className:"ol-zoomslider";r=document.createElement("button");r.setAttribute("type","button");r.className=u+"-thumb "+ol.css.CLASS_UNSELECTABLE;i=document.createElement("div");i.className=u+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL;i.appendChild(r);this.dragger_=new ol.pointer.PointerEventHandler(i);ol.events.listen(this.dragger_,ol.pointer.EventType.POINTERDOWN,this.handleDraggerStart_,this);ol.events.listen(this.dragger_,ol.pointer.EventType.POINTERMOVE,this.handleDraggerDrag_,this);ol.events.listen(this.dragger_,ol.pointer.EventType.POINTERUP,this.handleDraggerEnd_,this);ol.events.listen(i,ol.events.EventType.CLICK,this.handleContainerClick_,this);ol.events.listen(r,ol.events.EventType.CLICK,ol.events.Event.stopPropagation);f=t.render?t.render:ol.control.ZoomSlider.render;ol.control.Control.call(this,{element:i,render:f})},ol.inherits(ol.control.ZoomSlider,ol.control.Control),ol.control.ZoomSlider.prototype.disposeInternal=function(){this.dragger_.dispose();ol.control.Control.prototype.disposeInternal.call(this)},ol.control.ZoomSlider.Direction_={VERTICAL:0,HORIZONTAL:1},ol.control.ZoomSlider.prototype.setMap=function(n){ol.control.Control.prototype.setMap.call(this,n);n&&n.render()},ol.control.ZoomSlider.prototype.initSlider_=function(){var i=this.element,n={width:i.offsetWidth,height:i.offsetHeight},r=i.firstElementChild,t=getComputedStyle(r),u=r.offsetWidth+parseFloat(t.marginRight)+parseFloat(t.marginLeft),f=r.offsetHeight+parseFloat(t.marginTop)+parseFloat(t.marginBottom);this.thumbSize_=[u,f];n.width>n.height?(this.direction_=ol.control.ZoomSlider.Direction_.HORIZONTAL,this.widthLimit_=n.width-u):(this.direction_=ol.control.ZoomSlider.Direction_.VERTICAL,this.heightLimit_=n.height-f);this.sliderInitialized_=!0},ol.control.ZoomSlider.render=function(n){if(n.frameState){this.sliderInitialized_||this.initSlider_();var t=n.frameState.viewState.resolution;t!==this.currentResolution_&&(this.currentResolution_=t,this.setThumbPosition_(t))}},ol.control.ZoomSlider.prototype.handleContainerClick_=function(n){var t=this.getMap().getView(),i=this.getRelativePosition_(n.offsetX-this.thumbSize_[0]/2,n.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);t.animate({resolution:t.constrainResolution(r),duration:this.duration_,easing:ol.easing.easeOut})},ol.control.ZoomSlider.prototype.handleDraggerStart_=function(n){this.dragging_||n.originalEvent.target!==this.element.firstElementChild||(this.getMap().getView().setHint(ol.ViewHint.INTERACTING,1),this.previousX_=n.clientX,this.previousY_=n.clientY,this.dragging_=!0)},ol.control.ZoomSlider.prototype.handleDraggerDrag_=function(n){if(this.dragging_){var t=this.element.firstElementChild,i=n.clientX-this.previousX_+parseInt(t.style.left,10),r=n.clientY-this.previousY_+parseInt(t.style.top,10),u=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(u);this.getMap().getView().setResolution(this.currentResolution_);this.setThumbPosition_(this.currentResolution_);this.previousX_=n.clientX;this.previousY_=n.clientY}},ol.control.ZoomSlider.prototype.handleDraggerEnd_=function(){if(this.dragging_){var n=this.getMap().getView();n.setHint(ol.ViewHint.INTERACTING,-1);n.animate({resolution:n.constrainResolution(this.currentResolution_),duration:this.duration_,easing:ol.easing.easeOut});this.dragging_=!1;this.previousX_=undefined;this.previousY_=undefined}},ol.control.ZoomSlider.prototype.setThumbPosition_=function(n){var t=this.getPositionForResolution_(n),i=this.element.firstElementChild;this.direction_==ol.control.ZoomSlider.Direction_.HORIZONTAL?i.style.left=this.widthLimit_*t+"px":i.style.top=this.heightLimit_*t+"px"},ol.control.ZoomSlider.prototype.getRelativePosition_=function(n,t){var i;return i=this.direction_===ol.control.ZoomSlider.Direction_.HORIZONTAL?n/this.widthLimit_:t/this.heightLimit_,ol.math.clamp(i,0,1)},ol.control.ZoomSlider.prototype.getResolutionForPosition_=function(n){var t=this.getMap().getView().getResolutionForValueFunction();return t(1-n)},ol.control.ZoomSlider.prototype.getPositionForResolution_=function(n){var t=this.getMap().getView().getValueForResolutionFunction();return 1-t(n)},n.provide("ol.control.ZoomToExtent"),n.require("ol"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.control.Control"),n.require("ol.css"),ol.control.ZoomToExtent=function(n){var t=n?n:{},f,r;this.extent=t.extent?t.extent:null;var e=t.className!==undefined?t.className:"ol-zoom-extent",u=t.label!==undefined?t.label:"E",o=t.tipLabel!==undefined?t.tipLabel:"Fit to extent",i=document.createElement("button");i.setAttribute("type","button");i.title=o;i.appendChild(typeof u=="string"?document.createTextNode(u):u);ol.events.listen(i,ol.events.EventType.CLICK,this.handleClick_,this);f=e+" "+ol.css.CLASS_UNSELECTABLE+" "+ol.css.CLASS_CONTROL;r=document.createElement("div");r.className=f;r.appendChild(i);ol.control.Control.call(this,{element:r,target:t.target})},ol.inherits(ol.control.ZoomToExtent,ol.control.Control),ol.control.ZoomToExtent.prototype.handleClick_=function(n){n.preventDefault();this.handleZoomToExtent()},ol.control.ZoomToExtent.prototype.handleZoomToExtent=function(){var t=this.getMap(),n=t.getView(),i=this.extent?this.extent:n.getProjection().getExtent();n.fit(i)},n.provide("ol.DeviceOrientation"),n.require("ol.events"),n.require("ol"),n.require("ol.Object"),n.require("ol.has"),n.require("ol.math"),ol.DeviceOrientation=function(n){ol.Object.call(this);var t=n?n:{};this.listenerKey_=null;ol.events.listen(this,ol.Object.getChangeEventType(ol.DeviceOrientation.Property_.TRACKING),this.handleTrackingChanged_,this);this.setTracking(t.tracking!==undefined?t.tracking:!1)},ol.inherits(ol.DeviceOrientation,ol.Object),ol.DeviceOrientation.prototype.disposeInternal=function(){this.setTracking(!1);ol.Object.prototype.disposeInternal.call(this)},ol.DeviceOrientation.prototype.orientationChange_=function(n){var t=n,i,r;t.alpha!==null&&(i=ol.math.toRadians(t.alpha),this.set(ol.DeviceOrientation.Property_.ALPHA,i),typeof t.absolute=="boolean"&&t.absolute?this.set(ol.DeviceOrientation.Property_.HEADING,i):typeof t.webkitCompassHeading=="number"&&t.webkitCompassAccuracy!=-1&&(r=ol.math.toRadians(t.webkitCompassHeading),this.set(ol.DeviceOrientation.Property_.HEADING,r)));t.beta!==null&&this.set(ol.DeviceOrientation.Property_.BETA,ol.math.toRadians(t.beta));t.gamma!==null&&this.set(ol.DeviceOrientation.Property_.GAMMA,ol.math.toRadians(t.gamma));this.changed()},ol.DeviceOrientation.prototype.getAlpha=function(){return this.get(ol.DeviceOrientation.Property_.ALPHA)},ol.DeviceOrientation.prototype.getBeta=function(){return this.get(ol.DeviceOrientation.Property_.BETA)},ol.DeviceOrientation.prototype.getGamma=function(){return this.get(ol.DeviceOrientation.Property_.GAMMA)},ol.DeviceOrientation.prototype.getHeading=function(){return this.get(ol.DeviceOrientation.Property_.HEADING)},ol.DeviceOrientation.prototype.getTracking=function(){return this.get(ol.DeviceOrientation.Property_.TRACKING)},ol.DeviceOrientation.prototype.handleTrackingChanged_=function(){if(ol.has.DEVICE_ORIENTATION){var n=this.getTracking();n&&!this.listenerKey_?this.listenerKey_=ol.events.listen(window,"deviceorientation",this.orientationChange_,this):n||this.listenerKey_===null||(ol.events.unlistenByKey(this.listenerKey_),this.listenerKey_=null)}},ol.DeviceOrientation.prototype.setTracking=function(n){this.set(ol.DeviceOrientation.Property_.TRACKING,n)},ol.DeviceOrientation.Property_={ALPHA:"alpha",BETA:"beta",GAMMA:"gamma",HEADING:"heading",TRACKING:"tracking"},n.provide("ol.style.Image"),ol.style.Image=function(n){this.opacity_=n.opacity;this.rotateWithView_=n.rotateWithView;this.rotation_=n.rotation;this.scale_=n.scale;this.snapToPixel_=n.snapToPixel},ol.style.Image.prototype.getOpacity=function(){return this.opacity_},ol.style.Image.prototype.getRotateWithView=function(){return this.rotateWithView_},ol.style.Image.prototype.getRotation=function(){return this.rotation_},ol.style.Image.prototype.getScale=function(){return this.scale_},ol.style.Image.prototype.getSnapToPixel=function(){return this.snapToPixel_},ol.style.Image.prototype.getAnchor=function(){},ol.style.Image.prototype.getImage=function(){},ol.style.Image.prototype.getHitDetectionImage=function(){},ol.style.Image.prototype.getImageState=function(){},ol.style.Image.prototype.getImageSize=function(){},ol.style.Image.prototype.getHitDetectionImageSize=function(){},ol.style.Image.prototype.getOrigin=function(){},ol.style.Image.prototype.getSize=function(){},ol.style.Image.prototype.setOpacity=function(n){this.opacity_=n},ol.style.Image.prototype.setRotateWithView=function(n){this.rotateWithView_=n},ol.style.Image.prototype.setRotation=function(n){this.rotation_=n},ol.style.Image.prototype.setScale=function(n){this.scale_=n},ol.style.Image.prototype.setSnapToPixel=function(n){this.snapToPixel_=n},ol.style.Image.prototype.listenImageChange=function(){},ol.style.Image.prototype.load=function(){},ol.style.Image.prototype.unlistenImageChange=function(){},n.provide("ol.style.RegularShape"),n.require("ol"),n.require("ol.colorlike"),n.require("ol.dom"),n.require("ol.has"),n.require("ol.ImageState"),n.require("ol.render.canvas"),n.require("ol.style.Image"),ol.style.RegularShape=function(n){this.checksums_=null;this.canvas_=null;this.hitDetectionCanvas_=null;this.fill_=n.fill!==undefined?n.fill:null;this.origin_=[0,0];this.points_=n.points;this.radius_=n.radius!==undefined?n.radius:n.radius1;this.radius2_=n.radius2;this.angle_=n.angle!==undefined?n.angle:0;this.stroke_=n.stroke!==undefined?n.stroke:null;this.anchor_=null;this.size_=null;this.imageSize_=null;this.hitDetectionImageSize_=null;this.atlasManager_=n.atlasManager;this.render_(this.atlasManager_);var t=n.snapToPixel!==undefined?n.snapToPixel:!0,i=n.rotateWithView!==undefined?n.rotateWithView:!1;ol.style.Image.call(this,{opacity:1,rotateWithView:i,rotation:n.rotation!==undefined?n.rotation:0,scale:1,snapToPixel:t})},ol.inherits(ol.style.RegularShape,ol.style.Image),ol.style.RegularShape.prototype.clone=function(){var n=new ol.style.RegularShape({fill:this.getFill()?this.getFill().clone():undefined,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),snapToPixel:this.getSnapToPixel(),stroke:this.getStroke()?this.getStroke().clone():undefined,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return n.setOpacity(this.getOpacity()),n.setScale(this.getScale()),n},ol.style.RegularShape.prototype.getAnchor=function(){return this.anchor_},ol.style.RegularShape.prototype.getAngle=function(){return this.angle_},ol.style.RegularShape.prototype.getFill=function(){return this.fill_},ol.style.RegularShape.prototype.getHitDetectionImage=function(){return this.hitDetectionCanvas_},ol.style.RegularShape.prototype.getImage=function(){return this.canvas_},ol.style.RegularShape.prototype.getImageSize=function(){return this.imageSize_},ol.style.RegularShape.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},ol.style.RegularShape.prototype.getImageState=function(){return ol.ImageState.LOADED},ol.style.RegularShape.prototype.getOrigin=function(){return this.origin_},ol.style.RegularShape.prototype.getPoints=function(){return this.points_},ol.style.RegularShape.prototype.getRadius=function(){return this.radius_},ol.style.RegularShape.prototype.getRadius2=function(){return this.radius2_},ol.style.RegularShape.prototype.getSize=function(){return this.size_},ol.style.RegularShape.prototype.getStroke=function(){return this.stroke_},ol.style.RegularShape.prototype.listenImageChange=function(){},ol.style.RegularShape.prototype.load=function(){},ol.style.RegularShape.prototype.unlistenImageChange=function(){},ol.style.RegularShape.prototype.render_=function(n){var r,o="",s="",h=0,c=null,l=0,u,f=0,t,e,a,v,y,p,i;this.stroke_&&(u=this.stroke_.getColor(),u===null&&(u=ol.render.canvas.defaultStrokeStyle),u=ol.colorlike.asColorLike(u),f=this.stroke_.getWidth(),f===undefined&&(f=ol.render.canvas.defaultLineWidth),c=this.stroke_.getLineDash(),l=this.stroke_.getLineDashOffset(),ol.has.CANVAS_LINE_DASH||(c=null,l=0),s=this.stroke_.getLineJoin(),s===undefined&&(s=ol.render.canvas.defaultLineJoin),o=this.stroke_.getLineCap(),o===undefined&&(o=ol.render.canvas.defaultLineCap),h=this.stroke_.getMiterLimit(),h===undefined&&(h=ol.render.canvas.defaultMiterLimit));t=2*(this.radius_+f)+1;e={strokeStyle:u,strokeWidth:f,size:t,lineCap:o,lineDash:c,lineDashOffset:l,lineJoin:s,miterLimit:h};n===undefined?(a=ol.dom.createCanvasContext2D(t,t),this.canvas_=a.canvas,t=this.canvas_.width,r=t,this.draw_(e,a,0,0),this.createHitDetectionCanvas_(e)):(t=Math.round(t),v=!this.fill_,v&&(y=this.drawHitDetectionCanvas_.bind(this,e)),p=this.getChecksum(),i=n.add(p,t,t,this.draw_.bind(this,e),y),this.canvas_=i.image,this.origin_=[i.offsetX,i.offsetY],r=i.image.width,v?(this.hitDetectionCanvas_=i.hitImage,this.hitDetectionImageSize_=[i.hitImage.width,i.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[r,r]));this.anchor_=[t/2,t/2];this.size_=[t,t];this.imageSize_=[r,r]},ol.style.RegularShape.prototype.draw_=function(n,t,i,r){var f,o,s,u,h,e;if(t.setTransform(1,0,0,1,0,0),t.translate(i,r),t.beginPath(),u=this.points_,u===Infinity)t.arc(n.size/2,n.size/2,this.radius_,0,2*Math.PI,!0);else for(h=this.radius2_!==undefined?this.radius2_:this.radius_,h!==this.radius_&&(u=2*u),f=0;f<=u;f++)o=f*2*Math.PI/u-Math.PI/2+this.angle_,s=f%2==0?this.radius_:h,t.lineTo(n.size/2+s*Math.cos(o),n.size/2+s*Math.sin(o));this.fill_&&(e=this.fill_.getColor(),e===null&&(e=ol.render.canvas.defaultFillStyle),t.fillStyle=ol.colorlike.asColorLike(e),t.fill());this.stroke_&&(t.strokeStyle=n.strokeStyle,t.lineWidth=n.strokeWidth,n.lineDash&&(t.setLineDash(n.lineDash),t.lineDashOffset=n.lineDashOffset),t.lineCap=n.lineCap,t.lineJoin=n.lineJoin,t.miterLimit=n.miterLimit,t.stroke());t.closePath()},ol.style.RegularShape.prototype.createHitDetectionCanvas_=function(n){if(this.hitDetectionImageSize_=[n.size,n.size],this.fill_){this.hitDetectionCanvas_=this.canvas_;return}var t=ol.dom.createCanvasContext2D(n.size,n.size);this.hitDetectionCanvas_=t.canvas;this.drawHitDetectionCanvas_(n,t,0,0)},ol.style.RegularShape.prototype.drawHitDetectionCanvas_=function(n,t,i,r){var u,e,f,o,s;if(t.setTransform(1,0,0,1,0,0),t.translate(i,r),t.beginPath(),u=this.points_,u===Infinity)t.arc(n.size/2,n.size/2,this.radius_,0,2*Math.PI,!0);else for(e=this.radius2_!==undefined?this.radius2_:this.radius_,e!==this.radius_&&(u=2*u),f=0;f<=u;f++)s=f*2*Math.PI/u-Math.PI/2+this.angle_,o=f%2==0?this.radius_:e,t.lineTo(n.size/2+o*Math.cos(s),n.size/2+o*Math.sin(s));t.fillStyle=ol.render.canvas.defaultFillStyle;t.fill();this.stroke_&&(t.strokeStyle=n.strokeStyle,t.lineWidth=n.strokeWidth,n.lineDash&&(t.setLineDash(n.lineDash),t.lineDashOffset=n.lineDashOffset),t.stroke());t.closePath()},ol.style.RegularShape.prototype.getChecksum=function(){var n=this.stroke_?this.stroke_.getChecksum():"-",t=this.fill_?this.fill_.getChecksum():"-",r=!this.checksums_||n!=this.checksums_[1]||t!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6],i;return r&&(i="r"+n+t+(this.radius_!==undefined?this.radius_.toString():"-")+(this.radius2_!==undefined?this.radius2_.toString():"-")+(this.angle_!==undefined?this.angle_.toString():"-")+(this.points_!==undefined?this.points_.toString():"-"),this.checksums_=[i,n,t,this.radius_,this.radius2_,this.angle_,this.points_]),this.checksums_[0]},n.provide("ol.style.Circle"),n.require("ol"),n.require("ol.style.RegularShape"),ol.style.Circle=function(n){var t=n||{};ol.style.RegularShape.call(this,{points:Infinity,fill:t.fill,radius:t.radius,snapToPixel:t.snapToPixel,stroke:t.stroke,atlasManager:t.atlasManager})},ol.inherits(ol.style.Circle,ol.style.RegularShape),ol.style.Circle.prototype.clone=function(){var n=new ol.style.Circle({fill:this.getFill()?this.getFill().clone():undefined,stroke:this.getStroke()?this.getStroke().clone():undefined,radius:this.getRadius(),snapToPixel:this.getSnapToPixel(),atlasManager:this.atlasManager_});return n.setOpacity(this.getOpacity()),n.setScale(this.getScale()),n},ol.style.Circle.prototype.setRadius=function(n){this.radius_=n;this.render_(this.atlasManager_)},n.provide("ol.style.Fill"),n.require("ol"),n.require("ol.color"),ol.style.Fill=function(n){var t=n||{};this.color_=t.color!==undefined?t.color:null;this.checksum_=undefined},ol.style.Fill.prototype.clone=function(){var n=this.getColor();return new ol.style.Fill({color:n&&n.slice?n.slice():n||undefined})},ol.style.Fill.prototype.getColor=function(){return this.color_},ol.style.Fill.prototype.setColor=function(n){this.color_=n;this.checksum_=undefined},ol.style.Fill.prototype.getChecksum=function(){return this.checksum_===undefined&&(this.checksum_=this.color_ instanceof CanvasPattern||this.color_ instanceof CanvasGradient?ol.getUid(this.color_).toString():"f"+(this.color_?ol.color.asString(this.color_):"-")),this.checksum_},n.provide("ol.style.Stroke"),n.require("ol"),ol.style.Stroke=function(n){var t=n||{};this.color_=t.color!==undefined?t.color:null;this.lineCap_=t.lineCap;this.lineDash_=t.lineDash!==undefined?t.lineDash:null;this.lineDashOffset_=t.lineDashOffset;this.lineJoin_=t.lineJoin;this.miterLimit_=t.miterLimit;this.width_=t.width;this.checksum_=undefined},ol.style.Stroke.prototype.clone=function(){var n=this.getColor();return new ol.style.Stroke({color:n&&n.slice?n.slice():n||undefined,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():undefined,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},ol.style.Stroke.prototype.getColor=function(){return this.color_},ol.style.Stroke.prototype.getLineCap=function(){return this.lineCap_},ol.style.Stroke.prototype.getLineDash=function(){return this.lineDash_},ol.style.Stroke.prototype.getLineDashOffset=function(){return this.lineDashOffset_},ol.style.Stroke.prototype.getLineJoin=function(){return this.lineJoin_},ol.style.Stroke.prototype.getMiterLimit=function(){return this.miterLimit_},ol.style.Stroke.prototype.getWidth=function(){return this.width_},ol.style.Stroke.prototype.setColor=function(n){this.color_=n;this.checksum_=undefined},ol.style.Stroke.prototype.setLineCap=function(n){this.lineCap_=n;this.checksum_=undefined},ol.style.Stroke.prototype.setLineDash=function(n){this.lineDash_=n;this.checksum_=undefined},ol.style.Stroke.prototype.setLineDashOffset=function(n){this.lineDashOffset_=n;this.checksum_=undefined},ol.style.Stroke.prototype.setLineJoin=function(n){this.lineJoin_=n;this.checksum_=undefined},ol.style.Stroke.prototype.setMiterLimit=function(n){this.miterLimit_=n;this.checksum_=undefined},ol.style.Stroke.prototype.setWidth=function(n){this.width_=n;this.checksum_=undefined},ol.style.Stroke.prototype.getChecksum=function(){return this.checksum_===undefined&&(this.checksum_="s",this.checksum_+=this.color_?typeof this.color_=="string"?this.color_:ol.getUid(this.color_).toString():"-",this.checksum_+=","+(this.lineCap_!==undefined?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(this.lineDashOffset_!==undefined?this.lineDashOffset_:"-")+","+(this.lineJoin_!==undefined?this.lineJoin_:"-")+","+(this.miterLimit_!==undefined?this.miterLimit_.toString():"-")+","+(this.width_!==undefined?this.width_.toString():"-")),this.checksum_},n.provide("ol.style.Style"),n.require("ol.asserts"),n.require("ol.geom.GeometryType"),n.require("ol.style.Circle"),n.require("ol.style.Fill"),n.require("ol.style.Stroke"),ol.style.Style=function(n){var t=n||{};this.geometry_=null;this.geometryFunction_=ol.style.Style.defaultGeometryFunction;t.geometry!==undefined&&this.setGeometry(t.geometry);this.fill_=t.fill!==undefined?t.fill:null;this.image_=t.image!==undefined?t.image:null;this.renderer_=t.renderer!==undefined?t.renderer:null;this.stroke_=t.stroke!==undefined?t.stroke:null;this.text_=t.text!==undefined?t.text:null;this.zIndex_=t.zIndex},ol.style.Style.prototype.clone=function(){var n=this.getGeometry();return n&&n.clone&&(n=n.clone()),new ol.style.Style({geometry:n,fill:this.getFill()?this.getFill().clone():undefined,image:this.getImage()?this.getImage().clone():undefined,stroke:this.getStroke()?this.getStroke().clone():undefined,text:this.getText()?this.getText().clone():undefined,zIndex:this.getZIndex()})},ol.style.Style.prototype.getRenderer=function(){return this.renderer_},ol.style.Style.prototype.setRenderer=function(n){this.renderer_=n},ol.style.Style.prototype.getGeometry=function(){return this.geometry_},ol.style.Style.prototype.getGeometryFunction=function(){return this.geometryFunction_},ol.style.Style.prototype.getFill=function(){return this.fill_},ol.style.Style.prototype.setFill=function(n){this.fill_=n},ol.style.Style.prototype.getImage=function(){return this.image_},ol.style.Style.prototype.setImage=function(n){this.image_=n},ol.style.Style.prototype.getStroke=function(){return this.stroke_},ol.style.Style.prototype.setStroke=function(n){this.stroke_=n},ol.style.Style.prototype.getText=function(){return this.text_},ol.style.Style.prototype.setText=function(n){this.text_=n},ol.style.Style.prototype.getZIndex=function(){return this.zIndex_},ol.style.Style.prototype.setGeometry=function(n){typeof n=="function"?this.geometryFunction_=n:typeof n=="string"?this.geometryFunction_=function(t){return t.get(n)}:n?n!==undefined&&(this.geometryFunction_=function(){return n}):this.geometryFunction_=ol.style.Style.defaultGeometryFunction;this.geometry_=n},ol.style.Style.prototype.setZIndex=function(n){this.zIndex_=n},ol.style.Style.createFunction=function(n){var t,i;return typeof n=="function"?t=n:(Array.isArray(n)?i=n:(ol.asserts.assert(n instanceof ol.style.Style,41),i=[n]),t=function(){return i}),t},ol.style.Style.default_=null,ol.style.Style.defaultFunction=function(){if(!ol.style.Style.default_){var n=new ol.style.Fill({color:"rgba(255,255,255,0.4)"}),t=new ol.style.Stroke({color:"#3399CC",width:1.25});ol.style.Style.default_=[new ol.style.Style({image:new ol.style.Circle({fill:n,stroke:t,radius:5}),fill:n,stroke:t})]}return ol.style.Style.default_},ol.style.Style.createDefaultEditing=function(){var n={},i=[255,255,255,1],r=[0,153,255,1],t=3;return n[ol.geom.GeometryType.POLYGON]=[new ol.style.Style({fill:new ol.style.Fill({color:[255,255,255,.5]})})],n[ol.geom.GeometryType.MULTI_POLYGON]=n[ol.geom.GeometryType.POLYGON],n[ol.geom.GeometryType.LINE_STRING]=[new ol.style.Style({stroke:new ol.style.Stroke({color:i,width:t+2})}),new ol.style.Style({stroke:new ol.style.Stroke({color:r,width:t})})],n[ol.geom.GeometryType.MULTI_LINE_STRING]=n[ol.geom.GeometryType.LINE_STRING],n[ol.geom.GeometryType.CIRCLE]=n[ol.geom.GeometryType.POLYGON].concat(n[ol.geom.GeometryType.LINE_STRING]),n[ol.geom.GeometryType.POINT]=[new ol.style.Style({image:new ol.style.Circle({radius:t*2,fill:new ol.style.Fill({color:r}),stroke:new ol.style.Stroke({color:i,width:t/2})}),zIndex:Infinity})],n[ol.geom.GeometryType.MULTI_POINT]=n[ol.geom.GeometryType.POINT],n[ol.geom.GeometryType.GEOMETRY_COLLECTION]=n[ol.geom.GeometryType.POLYGON].concat(n[ol.geom.GeometryType.LINE_STRING],n[ol.geom.GeometryType.POINT]),n},ol.style.Style.defaultGeometryFunction=function(n){return n.getGeometry()},n.provide("ol.Feature"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol"),n.require("ol.Object"),n.require("ol.geom.Geometry"),n.require("ol.style.Style"),ol.Feature=function(n){var t,i;ol.Object.call(this);this.id_=undefined;this.geometryName_="geometry";this.style_=null;this.styleFunction_=undefined;this.geometryChangeKey_=null;ol.events.listen(this,ol.Object.getChangeEventType(this.geometryName_),this.handleGeometryChanged_,this);n!==undefined&&(n instanceof ol.geom.Geometry||!n?(t=n,this.setGeometry(t)):(i=n,this.setProperties(i)))},ol.inherits(ol.Feature,ol.Object),ol.Feature.prototype.clone=function(){var n=new ol.Feature(this.getProperties()),t,i;return n.setGeometryName(this.getGeometryName()),t=this.getGeometry(),t&&n.setGeometry(t.clone()),i=this.getStyle(),i&&n.setStyle(i),n},ol.Feature.prototype.getGeometry=function(){return this.get(this.geometryName_)},ol.Feature.prototype.getId=function(){return this.id_},ol.Feature.prototype.getGeometryName=function(){return this.geometryName_},ol.Feature.prototype.getStyle=function(){return this.style_},ol.Feature.prototype.getStyleFunction=function(){return this.styleFunction_},ol.Feature.prototype.handleGeometryChange_=function(){this.changed()},ol.Feature.prototype.handleGeometryChanged_=function(){this.geometryChangeKey_&&(ol.events.unlistenByKey(this.geometryChangeKey_),this.geometryChangeKey_=null);var n=this.getGeometry();n&&(this.geometryChangeKey_=ol.events.listen(n,ol.events.EventType.CHANGE,this.handleGeometryChange_,this));this.changed()},ol.Feature.prototype.setGeometry=function(n){this.set(this.geometryName_,n)},ol.Feature.prototype.setStyle=function(n){this.style_=n;this.styleFunction_=n?ol.Feature.createStyleFunction(n):undefined;this.changed()},ol.Feature.prototype.setId=function(n){this.id_=n;this.changed()},ol.Feature.prototype.setGeometryName=function(n){ol.events.unlisten(this,ol.Object.getChangeEventType(this.geometryName_),this.handleGeometryChanged_,this);this.geometryName_=n;ol.events.listen(this,ol.Object.getChangeEventType(this.geometryName_),this.handleGeometryChanged_,this);this.handleGeometryChanged_()},ol.Feature.createStyleFunction=function(n){var t,i;return typeof n=="function"?t=n.length==2?function(t){return n(this,t)}:n:(Array.isArray(n)?i=n:(ol.asserts.assert(n instanceof ol.style.Style,41),i=[n]),t=function(){return i}),t},n.provide("ol.format.FormatType"),ol.format.FormatType={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"},n.provide("ol.xml"),n.require("ol.array"),ol.xml.DOCUMENT=document.implementation.createDocument("","",null),ol.xml.createElementNS=function(n,t){return ol.xml.DOCUMENT.createElementNS(n,t)},ol.xml.getAllTextContent=function(n,t){return ol.xml.getAllTextContent_(n,t,[]).join("")},ol.xml.getAllTextContent_=function(n,t,i){if(n.nodeType==Node.CDATA_SECTION_NODE||n.nodeType==Node.TEXT_NODE)t?i.push(String(n.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(n.nodeValue);else for(var r=n.firstChild;r;r=r.nextSibling)ol.xml.getAllTextContent_(r,t,i);return i},ol.xml.isDocument=function(n){return n instanceof Document},ol.xml.isNode=function(n){return n instanceof Node},ol.xml.getAttributeNS=function(n,t,i){return n.getAttributeNS(t,i)||""},ol.xml.setAttributeNS=function(n,t,i,r){n.setAttributeNS(t,i,r)},ol.xml.parse=function(n){return(new DOMParser).parseFromString(n,"application/xml")},ol.xml.makeArrayExtender=function(n,t){return function(i,r){var u=n.call(t,i,r),f;u!==undefined&&(f=r[r.length-1],ol.array.extend(f,u))}},ol.xml.makeArrayPusher=function(n,t){return function(i,r){var u=n.call(t!==undefined?t:this,i,r),f;u!==undefined&&(f=r[r.length-1],f.push(u))}},ol.xml.makeReplacer=function(n,t){return function(i,r){var u=n.call(t!==undefined?t:this,i,r);u!==undefined&&(r[r.length-1]=u)}},ol.xml.makeObjectPropertyPusher=function(n,t,i){return function(r,u){var o=n.call(i!==undefined?i:this,r,u),f,e,s;o!==undefined&&(f=u[u.length-1],e=t!==undefined?t:r.localName,s=e in f?f[e]:f[e]=[],s.push(o))}},ol.xml.makeObjectPropertySetter=function(n,t,i){return function(r,u){var f=n.call(i!==undefined?i:this,r,u),e,o;f!==undefined&&(e=u[u.length-1],o=t!==undefined?t:r.localName,e[o]=f)}},ol.xml.makeChildAppender=function(n,t){return function(i,r,u){n.call(t!==undefined?t:this,i,r,u);var f=u[u.length-1],e=f.node;e.appendChild(i)}},ol.xml.makeArraySerializer=function(n){var t,i;return function(r,u,f){if(t===undefined){t={};var e={};e[r.localName]=n;t[r.namespaceURI]=e;i=ol.xml.makeSimpleNodeFactory(r.localName)}ol.xml.serialize(t,i,u,f)}},ol.xml.makeSimpleNodeFactory=function(n,t){var i=n;return function(n,r,u){var o=r[r.length-1],s=o.node,f=i,e;return f===undefined&&(f=u),e=t,t===undefined&&(e=s.namespaceURI),ol.xml.createElementNS(e,f)}},ol.xml.OBJECT_PROPERTY_NODE_FACTORY=ol.xml.makeSimpleNodeFactory(),ol.xml.makeSequence=function(n,t){for(var r=t.length,u=new Array(r),i=0;i<r;++i)u[i]=n[t[i]];return u},ol.xml.makeStructureNS=function(n,t,i){for(var u=i!==undefined?i:{},r=0,f=n.length;r<f;++r)u[n[r]]=t;return u},ol.xml.parseNode=function(n,t,i,r){for(var f,e,u=t.firstElementChild;u;u=u.nextElementSibling)f=n[u.namespaceURI],f!==undefined&&(e=f[u.localName],e!==undefined&&e.call(r,u,i))},ol.xml.pushParseAndPop=function(n,t,i,r,u){return r.push(n),ol.xml.parseNode(t,i,r,u),r.pop()},ol.xml.serialize=function(n,t,i,r,u,f){for(var h=(u!==undefined?u:i).length,o,e,s=0;s<h;++s)o=i[s],o!==undefined&&(e=t.call(f,o,r,u!==undefined?u[s]:undefined),e!==undefined&&n[e.namespaceURI][e.localName].call(f,e,o,r))},ol.xml.pushSerializeAndPop=function(n,t,i,r,u,f,e){return u.push(n),ol.xml.serialize(t,i,r,u,f,e),u.pop()},n.provide("ol.featureloader"),n.require("ol"),n.require("ol.format.FormatType"),n.require("ol.xml"),ol.featureloader.loadFeaturesXhr=function(n,t,i,r){return function(u,f,e){var o=new XMLHttpRequest;o.open("GET",typeof n=="function"?n(u,f,e):n,!0);t.getType()==ol.format.FormatType.ARRAY_BUFFER&&(o.responseType="arraybuffer");o.onload=function(){if(!o.status||o.status>=200&&o.status<300){var u=t.getType(),n;u==ol.format.FormatType.JSON||u==ol.format.FormatType.TEXT?n=o.responseText:u==ol.format.FormatType.XML?(n=o.responseXML,n||(n=ol.xml.parse(o.responseText))):u==ol.format.FormatType.ARRAY_BUFFER&&(n=o.response);n?i.call(this,t.readFeatures(n,{featureProjection:e}),t.readProjection(n),t.getLastExtent()):r.call(this)}else r.call(this)}.bind(this);o.onerror=function(){r.call(this)}.bind(this);o.send()}},ol.featureloader.xhr=function(n,t){return ol.featureloader.loadFeaturesXhr(n,t,function(n){this.addFeatures(n)},ol.nullFunction)},n.provide("ol.format.Feature"),n.require("ol.geom.Geometry"),n.require("ol.obj"),n.require("ol.proj"),ol.format.Feature=function(){this.defaultDataProjection=null;this.defaultFeatureProjection=null},ol.format.Feature.prototype.getReadOptions=function(n,t){var i;return t&&(i={dataProjection:t.dataProjection?t.dataProjection:this.readProjection(n),featureProjection:t.featureProjection}),this.adaptOptions(i)},ol.format.Feature.prototype.adaptOptions=function(n){return ol.obj.assign({dataProjection:this.defaultDataProjection,featureProjection:this.defaultFeatureProjection},n)},ol.format.Feature.prototype.getLastExtent=function(){return null},ol.format.Feature.prototype.getType=function(){},ol.format.Feature.prototype.readFeature=function(){},ol.format.Feature.prototype.readFeatures=function(){},ol.format.Feature.prototype.readGeometry=function(){},ol.format.Feature.prototype.readProjection=function(){},ol.format.Feature.prototype.writeFeature=function(){},ol.format.Feature.prototype.writeFeatures=function(){},ol.format.Feature.prototype.writeGeometry=function(){},ol.format.Feature.transformWithOptions=function(n,t,i){var u=i?ol.proj.get(i.featureProjection):null,f=i?ol.proj.get(i.dataProjection):null,r,e,o;return r=u&&f&&!ol.proj.equivalent(u,f)?n instanceof ol.geom.Geometry?(t?n.clone():n).transform(t?u:f,t?f:u):ol.proj.transformExtent(n,f,u):n,t&&i&&i.decimals!==undefined&&(e=Math.pow(10,i.decimals),o=function(n){for(var t=0,i=n.length;t<i;++t)n[t]=Math.round(n[t]*e)/e;return n},r===n&&(r=r.clone()),r.applyTransform(o)),r},n.provide("ol.format.JSONFeature"),n.require("ol"),n.require("ol.format.Feature"),n.require("ol.format.FormatType"),ol.format.JSONFeature=function(){ol.format.Feature.call(this)},ol.inherits(ol.format.JSONFeature,ol.format.Feature),ol.format.JSONFeature.prototype.getObject_=function(n){if(typeof n=="string"){var t=JSON.parse(n);return t?t:null}return n!==null?n:null},ol.format.JSONFeature.prototype.getType=function(){return ol.format.FormatType.JSON},ol.format.JSONFeature.prototype.readFeature=function(n,t){return this.readFeatureFromObject(this.getObject_(n),this.getReadOptions(n,t))},ol.format.JSONFeature.prototype.readFeatures=function(n,t){return this.readFeaturesFromObject(this.getObject_(n),this.getReadOptions(n,t))},ol.format.JSONFeature.prototype.readFeatureFromObject=function(){},ol.format.JSONFeature.prototype.readFeaturesFromObject=function(){},ol.format.JSONFeature.prototype.readGeometry=function(n,t){return this.readGeometryFromObject(this.getObject_(n),this.getReadOptions(n,t))},ol.format.JSONFeature.prototype.readGeometryFromObject=function(){},ol.format.JSONFeature.prototype.readProjection=function(n){return this.readProjectionFromObject(this.getObject_(n))},ol.format.JSONFeature.prototype.readProjectionFromObject=function(){},ol.format.JSONFeature.prototype.writeFeature=function(n,t){return JSON.stringify(this.writeFeatureObject(n,t))},ol.format.JSONFeature.prototype.writeFeatureObject=function(){},ol.format.JSONFeature.prototype.writeFeatures=function(n,t){return JSON.stringify(this.writeFeaturesObject(n,t))},ol.format.JSONFeature.prototype.writeFeaturesObject=function(){},ol.format.JSONFeature.prototype.writeGeometry=function(n,t){return JSON.stringify(this.writeGeometryObject(n,t))},ol.format.JSONFeature.prototype.writeGeometryObject=function(){},n.provide("ol.geom.flat.interpolate"),n.require("ol.array"),n.require("ol.math"),ol.geom.flat.interpolate.lineString=function(n,t,i,r,u,f){var o=NaN,s=NaN,y=(i-t)/r,a,v,k,e,d,l;if(y===1)o=n[t],s=n[t+1];else if(y==2)o=(1-u)*n[t]+u*n[t+r],s=(1-u)*n[t+1]+u*n[t+r+1];else if(y!==0){for(var p=n[t],w=n[t+1],b=0,h=[0],c=t+r;c<i;c+=r)a=n[c],v=n[c+1],b+=Math.sqrt((a-p)*(a-p)+(v-w)*(v-w)),h.push(b),p=a,w=v;k=u*b;e=ol.array.binarySearch(h,k);e<0?(d=(k-h[-e-2])/(h[-e-1]-h[-e-2]),l=t+(-e-2)*r,o=ol.math.lerp(n[l],n[l+r],d),s=ol.math.lerp(n[l+1],n[l+r+1],d)):(o=n[t+e*r],s=n[t+e*r+1])}return f?(f[0]=o,f[1]=s,f):[o,s]},ol.geom.flat.interpolate.lineStringCoordinateAtM=function(n,t,i,r,u,f){var e,o,h,c,l,a,v,s;if(i==t)return null;if(u<n[t+r-1])return f?(e=n.slice(t,t+r),e[r-1]=u,e):null;if(n[i-1]<u)return f?(e=n.slice(i-r,i),e[r-1]=u,e):null;if(u==n[t+r-1])return n.slice(t,t+r);for(o=t/r,h=i/r;o<h;)c=o+h>>1,u<n[(c+1)*r-1]?h=c:o=c+1;if(l=n[o*r-1],u==l)return n.slice((o-1)*r,(o-1)*r+r);for(a=n[(o+1)*r-1],v=(u-l)/(a-l),e=[],s=0;s<r-1;++s)e.push(ol.math.lerp(n[(o-1)*r+s],n[o*r+s],v));return e.push(u),e},ol.geom.flat.interpolate.lineStringsCoordinateAtM=function(n,t,i,r,u,f,e){var o,h,c,s;if(e)return ol.geom.flat.interpolate.lineStringCoordinateAtM(n,t,i[i.length-1],r,u,f);if(u<n[r-1])return f?(o=n.slice(0,r),o[r-1]=u,o):null;if(n[n.length-1]<u)return f?(o=n.slice(n.length-r),o[r-1]=u,o):null;for(h=0,c=i.length;h<c;++h)if(s=i[h],t!=s){if(u<n[t+r-1])return null;if(u<=n[s-1])return ol.geom.flat.interpolate.lineStringCoordinateAtM(n,t,s,r,u,!1);t=s}return null},n.provide("ol.geom.LineString"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.closest"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.inflate"),n.require("ol.geom.flat.interpolate"),n.require("ol.geom.flat.intersectsextent"),n.require("ol.geom.flat.length"),n.require("ol.geom.flat.segments"),n.require("ol.geom.flat.simplify"),ol.geom.LineString=function(n,t){ol.geom.SimpleGeometry.call(this);this.flatMidpoint_=null;this.flatMidpointRevision_=-1;this.maxDelta_=-1;this.maxDeltaRevision_=-1;this.setCoordinates(n,t)},ol.inherits(ol.geom.LineString,ol.geom.SimpleGeometry),ol.geom.LineString.prototype.appendCoordinate=function(n){this.flatCoordinates?ol.array.extend(this.flatCoordinates,n):this.flatCoordinates=n.slice();this.changed()},ol.geom.LineString.prototype.clone=function(){var n=new ol.geom.LineString(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice()),n},ol.geom.LineString.prototype.closestPointXY=function(n,t,i,r){return r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t)?r:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(ol.geom.flat.closest.getMaxSquaredDelta(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),ol.geom.flat.closest.getClosestPoint(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,this.maxDelta_,!1,n,t,i,r))},ol.geom.LineString.prototype.forEachSegment=function(n,t){return ol.geom.flat.segments.forEach(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n,t)},ol.geom.LineString.prototype.getCoordinateAtM=function(n,t){if(this.layout!=ol.geom.GeometryLayout.XYM&&this.layout!=ol.geom.GeometryLayout.XYZM)return null;var i=t!==undefined?t:!1;return ol.geom.flat.interpolate.lineStringCoordinateAtM(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n,i)},ol.geom.LineString.prototype.getCoordinates=function(){return ol.geom.flat.inflate.coordinates(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)},ol.geom.LineString.prototype.getCoordinateAt=function(n,t){return ol.geom.flat.interpolate.lineString(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n,t)},ol.geom.LineString.prototype.getLength=function(){return ol.geom.flat.length.lineString(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)},ol.geom.LineString.prototype.getFlatMidpoint=function(){return this.flatMidpointRevision_!=this.getRevision()&&(this.flatMidpoint_=this.getCoordinateAt(.5,this.flatMidpoint_),this.flatMidpointRevision_=this.getRevision()),this.flatMidpoint_},ol.geom.LineString.prototype.getSimplifiedGeometryInternal=function(n){var t=[],i;return t.length=ol.geom.flat.simplify.douglasPeucker(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n,t,0),i=new ol.geom.LineString(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XY,t),i},ol.geom.LineString.prototype.getType=function(){return ol.geom.GeometryType.LINE_STRING},ol.geom.LineString.prototype.intersectsExtent=function(n){return ol.geom.flat.intersectsextent.lineString(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,n)},ol.geom.LineString.prototype.setCoordinates=function(n,t){n?(this.setLayout(t,n,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=ol.geom.flat.deflate.coordinates(this.flatCoordinates,0,n,this.stride),this.changed()):this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null)},ol.geom.LineString.prototype.setFlatCoordinates=function(n,t){this.setFlatCoordinatesInternal(n,t);this.changed()},n.provide("ol.geom.MultiLineString"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.LineString"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.closest"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.inflate"),n.require("ol.geom.flat.interpolate"),n.require("ol.geom.flat.intersectsextent"),n.require("ol.geom.flat.simplify"),ol.geom.MultiLineString=function(n,t){ol.geom.SimpleGeometry.call(this);this.ends_=[];this.maxDelta_=-1;this.maxDeltaRevision_=-1;this.setCoordinates(n,t)},ol.inherits(ol.geom.MultiLineString,ol.geom.SimpleGeometry),ol.geom.MultiLineString.prototype.appendLineString=function(n){this.flatCoordinates?ol.array.extend(this.flatCoordinates,n.getFlatCoordinates().slice()):this.flatCoordinates=n.getFlatCoordinates().slice();this.ends_.push(this.flatCoordinates.length);this.changed()},ol.geom.MultiLineString.prototype.clone=function(){var n=new ol.geom.MultiLineString(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice(),this.ends_.slice()),n},ol.geom.MultiLineString.prototype.closestPointXY=function(n,t,i,r){return r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t)?r:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(ol.geom.flat.closest.getsMaxSquaredDelta(this.flatCoordinates,0,this.ends_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),ol.geom.flat.closest.getsClosestPoint(this.flatCoordinates,0,this.ends_,this.stride,this.maxDelta_,!1,n,t,i,r))},ol.geom.MultiLineString.prototype.getCoordinateAtM=function(n,t,i){if(this.layout!=ol.geom.GeometryLayout.XYM&&this.layout!=ol.geom.GeometryLayout.XYZM||this.flatCoordinates.length===0)return null;var r=t!==undefined?t:!1,u=i!==undefined?i:!1;return ol.geom.flat.interpolate.lineStringsCoordinateAtM(this.flatCoordinates,0,this.ends_,this.stride,n,r,u)},ol.geom.MultiLineString.prototype.getCoordinates=function(){return ol.geom.flat.inflate.coordinatess(this.flatCoordinates,0,this.ends_,this.stride)},ol.geom.MultiLineString.prototype.getEnds=function(){return this.ends_},ol.geom.MultiLineString.prototype.getLineString=function(n){if(n<0||this.ends_.length<=n)return null;var t=new ol.geom.LineString(null);return t.setFlatCoordinates(this.layout,this.flatCoordinates.slice(n===0?0:this.ends_[n-1],this.ends_[n])),t},ol.geom.MultiLineString.prototype.getLineStrings=function(){for(var o=this.flatCoordinates,r=this.ends_,s=this.layout,u=[],f=0,t,i,n=0,e=r.length;n<e;++n)t=r[n],i=new ol.geom.LineString(null),i.setFlatCoordinates(s,o.slice(f,t)),u.push(i),f=t;return u},ol.geom.MultiLineString.prototype.getFlatMidpoints=function(){for(var i=[],o=this.flatCoordinates,r=0,u=this.ends_,s=this.stride,t,e,n=0,f=u.length;n<f;++n)t=u[n],e=ol.geom.flat.interpolate.lineString(o,r,t,s,.5),ol.array.extend(i,e),r=t;return i},ol.geom.MultiLineString.prototype.getSimplifiedGeometryInternal=function(n){var t=[],r=[],i;return t.length=ol.geom.flat.simplify.douglasPeuckers(this.flatCoordinates,0,this.ends_,this.stride,n,t,0,r),i=new ol.geom.MultiLineString(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XY,t,r),i},ol.geom.MultiLineString.prototype.getType=function(){return ol.geom.GeometryType.MULTI_LINE_STRING},ol.geom.MultiLineString.prototype.intersectsExtent=function(n){return ol.geom.flat.intersectsextent.lineStrings(this.flatCoordinates,0,this.ends_,this.stride,n)},ol.geom.MultiLineString.prototype.setCoordinates=function(n,t){if(n){this.setLayout(t,n,2);this.flatCoordinates||(this.flatCoordinates=[]);var i=ol.geom.flat.deflate.coordinatess(this.flatCoordinates,0,n,this.stride,this.ends_);this.flatCoordinates.length=i.length===0?0:i[i.length-1];this.changed()}else this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null,this.ends_)},ol.geom.MultiLineString.prototype.setFlatCoordinates=function(n,t,i){this.setFlatCoordinatesInternal(n,t);this.ends_=i;this.changed()},ol.geom.MultiLineString.prototype.setLineStrings=function(n){for(var u=this.getLayout(),i=[],f=[],r,t=0,e=n.length;t<e;++t)r=n[t],t===0&&(u=r.getLayout()),ol.array.extend(i,r.getFlatCoordinates()),f.push(i.length);this.setFlatCoordinates(u,i,f)},n.provide("ol.geom.MultiPoint"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.Point"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.inflate"),n.require("ol.math"),ol.geom.MultiPoint=function(n,t){ol.geom.SimpleGeometry.call(this);this.setCoordinates(n,t)},ol.inherits(ol.geom.MultiPoint,ol.geom.SimpleGeometry),ol.geom.MultiPoint.prototype.appendPoint=function(n){this.flatCoordinates?ol.array.extend(this.flatCoordinates,n.getFlatCoordinates()):this.flatCoordinates=n.getFlatCoordinates().slice();this.changed()},ol.geom.MultiPoint.prototype.clone=function(){var n=new ol.geom.MultiPoint(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice()),n},ol.geom.MultiPoint.prototype.closestPointXY=function(n,t,i,r){var f,o,u,h,e,s;if(r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t))return r;for(f=this.flatCoordinates,o=this.stride,u=0,h=f.length;u<h;u+=o)if(s=ol.math.squaredDistance(n,t,f[u],f[u+1]),s<r){for(r=s,e=0;e<o;++e)i[e]=f[u+e];i.length=o}return r},ol.geom.MultiPoint.prototype.getCoordinates=function(){return ol.geom.flat.inflate.coordinates(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)},ol.geom.MultiPoint.prototype.getPoint=function(n){var i=this.flatCoordinates?this.flatCoordinates.length/this.stride:0,t;return n<0||i<=n?null:(t=new ol.geom.Point(null),t.setFlatCoordinates(this.layout,this.flatCoordinates.slice(n*this.stride,(n+1)*this.stride)),t)},ol.geom.MultiPoint.prototype.getPoints=function(){for(var i=this.flatCoordinates,e=this.layout,r=this.stride,u=[],t,n=0,f=i.length;n<f;n+=r)t=new ol.geom.Point(null),t.setFlatCoordinates(e,i.slice(n,n+r)),u.push(t);return u},ol.geom.MultiPoint.prototype.getType=function(){return ol.geom.GeometryType.MULTI_POINT},ol.geom.MultiPoint.prototype.intersectsExtent=function(n){for(var i=this.flatCoordinates,e=this.stride,u,f,t=0,r=i.length;t<r;t+=e)if(u=i[t],f=i[t+1],ol.extent.containsXY(n,u,f))return!0;return!1},ol.geom.MultiPoint.prototype.setCoordinates=function(n,t){n?(this.setLayout(t,n,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=ol.geom.flat.deflate.coordinates(this.flatCoordinates,0,n,this.stride),this.changed()):this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null)},ol.geom.MultiPoint.prototype.setFlatCoordinates=function(n,t){this.setFlatCoordinatesInternal(n,t);this.changed()},n.provide("ol.geom.flat.center"),n.require("ol.extent"),ol.geom.flat.center.linearRingss=function(n,t,i,r){for(var o=[],u=ol.extent.createEmpty(),e,f=0,s=i.length;f<s;++f)e=i[f],u=ol.extent.createOrUpdateFromFlatCoordinates(n,t,e[0],r),o.push((u[0]+u[2])/2,(u[1]+u[3])/2),t=e[e.length-1];return o},n.provide("ol.geom.MultiPolygon"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.Polygon"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.area"),n.require("ol.geom.flat.center"),n.require("ol.geom.flat.closest"),n.require("ol.geom.flat.contains"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.inflate"),n.require("ol.geom.flat.interiorpoint"),n.require("ol.geom.flat.intersectsextent"),n.require("ol.geom.flat.orient"),n.require("ol.geom.flat.simplify"),ol.geom.MultiPolygon=function(n,t){ol.geom.SimpleGeometry.call(this);this.endss_=[];this.flatInteriorPointsRevision_=-1;this.flatInteriorPoints_=null;this.maxDelta_=-1;this.maxDeltaRevision_=-1;this.orientedRevision_=-1;this.orientedFlatCoordinates_=null;this.setCoordinates(n,t)},ol.inherits(ol.geom.MultiPolygon,ol.geom.SimpleGeometry),ol.geom.MultiPolygon.prototype.appendPolygon=function(n){var t,r,i,u;if(this.flatCoordinates)for(r=this.flatCoordinates.length,ol.array.extend(this.flatCoordinates,n.getFlatCoordinates()),t=n.getEnds().slice(),i=0,u=t.length;i<u;++i)t[i]+=r;else this.flatCoordinates=n.getFlatCoordinates().slice(),t=n.getEnds().slice(),this.endss_.push();this.endss_.push(t);this.changed()},ol.geom.MultiPolygon.prototype.clone=function(){for(var t=new ol.geom.MultiPolygon(null),i=this.endss_.length,r=new Array(i),n=0;n<i;++n)r[n]=this.endss_[n].slice();return t.setFlatCoordinates(this.layout,this.flatCoordinates.slice(),r),t},ol.geom.MultiPolygon.prototype.closestPointXY=function(n,t,i,r){return r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t)?r:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(ol.geom.flat.closest.getssMaxSquaredDelta(this.flatCoordinates,0,this.endss_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),ol.geom.flat.closest.getssClosestPoint(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,this.maxDelta_,!0,n,t,i,r))},ol.geom.MultiPolygon.prototype.containsXY=function(n,t){return ol.geom.flat.contains.linearRingssContainsXY(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,n,t)},ol.geom.MultiPolygon.prototype.getArea=function(){return ol.geom.flat.area.linearRingss(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride)},ol.geom.MultiPolygon.prototype.getCoordinates=function(n){var t;return n!==undefined?(t=this.getOrientedFlatCoordinates().slice(),ol.geom.flat.orient.orientLinearRingss(t,0,this.endss_,this.stride,n)):t=this.flatCoordinates,ol.geom.flat.inflate.coordinatesss(t,0,this.endss_,this.stride)},ol.geom.MultiPolygon.prototype.getEndss=function(){return this.endss_},ol.geom.MultiPolygon.prototype.getFlatInteriorPoints=function(){if(this.flatInteriorPointsRevision_!=this.getRevision()){var n=ol.geom.flat.center.linearRingss(this.flatCoordinates,0,this.endss_,this.stride);this.flatInteriorPoints_=ol.geom.flat.interiorpoint.linearRingss(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,n);this.flatInteriorPointsRevision_=this.getRevision()}return this.flatInteriorPoints_},ol.geom.MultiPolygon.prototype.getInteriorPoints=function(){var n=new ol.geom.MultiPoint(null);return n.setFlatCoordinates(ol.geom.GeometryLayout.XYM,this.getFlatInteriorPoints().slice()),n},ol.geom.MultiPolygon.prototype.getOrientedFlatCoordinates=function(){if(this.orientedRevision_!=this.getRevision()){var n=this.flatCoordinates;ol.geom.flat.orient.linearRingssAreOriented(n,0,this.endss_,this.stride)?this.orientedFlatCoordinates_=n:(this.orientedFlatCoordinates_=n.slice(),this.orientedFlatCoordinates_.length=ol.geom.flat.orient.orientLinearRingss(this.orientedFlatCoordinates_,0,this.endss_,this.stride));this.orientedRevision_=this.getRevision()}return this.orientedFlatCoordinates_},ol.geom.MultiPolygon.prototype.getSimplifiedGeometryInternal=function(n){var t=[],r=[],i;return t.length=ol.geom.flat.simplify.quantizess(this.flatCoordinates,0,this.endss_,this.stride,Math.sqrt(n),t,0,r),i=new ol.geom.MultiPolygon(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XY,t,r),i},ol.geom.MultiPolygon.prototype.getPolygon=function(n){var i,u,t,e,r,o,f;if(n<0||this.endss_.length<=n)return null;if(n===0?i=0:(u=this.endss_[n-1],i=u[u.length-1]),t=this.endss_[n].slice(),e=t[t.length-1],i!==0)for(r=0,o=t.length;r<o;++r)t[r]-=i;return f=new ol.geom.Polygon(null),f.setFlatCoordinates(this.layout,this.flatCoordinates.slice(i,e),t),f},ol.geom.MultiPolygon.prototype.getPolygons=function(){for(var c=this.layout,l=this.flatCoordinates,e=this.endss_,o=[],t=0,r,h,n,u,f,i=0,s=e.length;i<s;++i){if(n=e[i].slice(),u=n[n.length-1],t!==0)for(r=0,h=n.length;r<h;++r)n[r]-=t;f=new ol.geom.Polygon(null);f.setFlatCoordinates(c,l.slice(t,u),n);o.push(f);t=u}return o},ol.geom.MultiPolygon.prototype.getType=function(){return ol.geom.GeometryType.MULTI_POLYGON},ol.geom.MultiPolygon.prototype.intersectsExtent=function(n){return ol.geom.flat.intersectsextent.linearRingss(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,n)},ol.geom.MultiPolygon.prototype.setCoordinates=function(n,t){var i,r;n?(this.setLayout(t,n,3),this.flatCoordinates||(this.flatCoordinates=[]),i=ol.geom.flat.deflate.coordinatesss(this.flatCoordinates,0,n,this.stride,this.endss_),i.length===0?this.flatCoordinates.length=0:(r=i[i.length-1],this.flatCoordinates.length=r.length===0?0:r[r.length-1]),this.changed()):this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null,this.endss_)},ol.geom.MultiPolygon.prototype.setFlatCoordinates=function(n,t,i){this.setFlatCoordinatesInternal(n,t);this.endss_=i;this.changed()},ol.geom.MultiPolygon.prototype.setPolygons=function(n){for(var e=this.getLayout(),f=[],o=[],i,r,h,u,c,t=0,s=n.length;t<s;++t){for(r=n[t],t===0&&(e=r.getLayout()),h=f.length,i=r.getEnds(),u=0,c=i.length;u<c;++u)i[u]+=h;ol.array.extend(f,r.getFlatCoordinates());o.push(i)}this.setFlatCoordinates(e,f,o)},n.provide("ol.format.EsriJSON"),n.require("ol"),n.require("ol.Feature"),n.require("ol.asserts"),n.require("ol.extent"),n.require("ol.format.Feature"),n.require("ol.format.JSONFeature"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.LineString"),n.require("ol.geom.LinearRing"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.geom.flat.deflate"),n.require("ol.geom.flat.orient"),n.require("ol.obj"),n.require("ol.proj"),ol.format.EsriJSON=function(n){var t=n?n:{};ol.format.JSONFeature.call(this);this.geometryName_=t.geometryName},ol.inherits(ol.format.EsriJSON,ol.format.JSONFeature),ol.format.EsriJSON.readGeometry_=function(n,t){var i,u,r,f;return n?(typeof n.x=="number"&&typeof n.y=="number"?i=ol.geom.GeometryType.POINT:n.points?i=ol.geom.GeometryType.MULTI_POINT:n.paths?i=n.paths.length===1?ol.geom.GeometryType.LINE_STRING:ol.geom.GeometryType.MULTI_LINE_STRING:n.rings&&(u=ol.format.EsriJSON.getGeometryLayout_(n),r=ol.format.EsriJSON.convertRings_(n.rings,u),n=ol.obj.assign({},n),r.length===1?(i=ol.geom.GeometryType.POLYGON,n.rings=r[0]):(i=ol.geom.GeometryType.MULTI_POLYGON,n.rings=r)),f=ol.format.EsriJSON.GEOMETRY_READERS_[i],ol.format.Feature.transformWithOptions(f(n),!1,t)):null},ol.format.EsriJSON.convertRings_=function(n,t){for(var u=[],r=[],e=[],h,f,o,c,l,i=0,s=n.length;i<s;++i)u.length=0,ol.geom.flat.deflate.coordinates(u,0,n[i],t.length),h=ol.geom.flat.orient.linearRingIsClockwise(u,0,u.length,t.length),h?r.push([n[i]]):e.push(n[i]);while(e.length){for(f=e.shift(),o=!1,i=r.length-1;i>=0;i--)if(c=r[i][0],l=ol.extent.containsExtent(new ol.geom.LinearRing(c).getExtent(),new ol.geom.LinearRing(f).getExtent()),l){r[i].push(f);o=!0;break}o||r.push([f.reverse()])}return r},ol.format.EsriJSON.readPointGeometry_=function(n){return n.m!==undefined&&n.z!==undefined?new ol.geom.Point([n.x,n.y,n.z,n.m],ol.geom.GeometryLayout.XYZM):n.z!==undefined?new ol.geom.Point([n.x,n.y,n.z],ol.geom.GeometryLayout.XYZ):n.m!==undefined?new ol.geom.Point([n.x,n.y,n.m],ol.geom.GeometryLayout.XYM):new ol.geom.Point([n.x,n.y])},ol.format.EsriJSON.readLineStringGeometry_=function(n){var t=ol.format.EsriJSON.getGeometryLayout_(n);return new ol.geom.LineString(n.paths[0],t)},ol.format.EsriJSON.readMultiLineStringGeometry_=function(n){var t=ol.format.EsriJSON.getGeometryLayout_(n);return new ol.geom.MultiLineString(n.paths,t)},ol.format.EsriJSON.getGeometryLayout_=function(n){var t=ol.geom.GeometryLayout.XY;return n.hasZ===!0&&n.hasM===!0?t=ol.geom.GeometryLayout.XYZM:n.hasZ===!0?t=ol.geom.GeometryLayout.XYZ:n.hasM===!0&&(t=ol.geom.GeometryLayout.XYM),t},ol.format.EsriJSON.readMultiPointGeometry_=function(n){var t=ol.format.EsriJSON.getGeometryLayout_(n);return new ol.geom.MultiPoint(n.points,t)},ol.format.EsriJSON.readMultiPolygonGeometry_=function(n){var t=ol.format.EsriJSON.getGeometryLayout_(n);return new ol.geom.MultiPolygon(n.rings,t)},ol.format.EsriJSON.readPolygonGeometry_=function(n){var t=ol.format.EsriJSON.getGeometryLayout_(n);return new ol.geom.Polygon(n.rings,t)},ol.format.EsriJSON.writePointGeometry_=function(n){var t=n.getCoordinates(),i,r=n.getLayout();return r===ol.geom.GeometryLayout.XYZ?i={x:t[0],y:t[1],z:t[2]}:r===ol.geom.GeometryLayout.XYM?i={x:t[0],y:t[1],m:t[2]}:r===ol.geom.GeometryLayout.XYZM?i={x:t[0],y:t[1],z:t[2],m:t[3]}:r===ol.geom.GeometryLayout.XY?i={x:t[0],y:t[1]}:ol.asserts.assert(!1,34),i},ol.format.EsriJSON.getHasZM_=function(n){var t=n.getLayout();return{hasZ:t===ol.geom.GeometryLayout.XYZ||t===ol.geom.GeometryLayout.XYZM,hasM:t===ol.geom.GeometryLayout.XYM||t===ol.geom.GeometryLayout.XYZM}},ol.format.EsriJSON.writeLineStringGeometry_=function(n){var t=ol.format.EsriJSON.getHasZM_(n);return{hasZ:t.hasZ,hasM:t.hasM,paths:[n.getCoordinates()]}},ol.format.EsriJSON.writePolygonGeometry_=function(n){var t=ol.format.EsriJSON.getHasZM_(n);return{hasZ:t.hasZ,hasM:t.hasM,rings:n.getCoordinates(!1)}},ol.format.EsriJSON.writeMultiLineStringGeometry_=function(n){var t=ol.format.EsriJSON.getHasZM_(n);return{hasZ:t.hasZ,hasM:t.hasM,paths:n.getCoordinates()}},ol.format.EsriJSON.writeMultiPointGeometry_=function(n){var t=ol.format.EsriJSON.getHasZM_(n);return{hasZ:t.hasZ,hasM:t.hasM,points:n.getCoordinates()}},ol.format.EsriJSON.writeMultiPolygonGeometry_=function(n){for(var i,u=ol.format.EsriJSON.getHasZM_(n),r=n.getCoordinates(!1),f=[],t=0;t<r.length;t++)for(i=r[t].length-1;i>=0;i--)f.push(r[t][i]);return{hasZ:u.hasZ,hasM:u.hasM,rings:f}},ol.format.EsriJSON.GEOMETRY_READERS_={},ol.format.EsriJSON.GEOMETRY_READERS_[ol.geom.GeometryType.POINT]=ol.format.EsriJSON.readPointGeometry_,ol.format.EsriJSON.GEOMETRY_READERS_[ol.geom.GeometryType.LINE_STRING]=ol.format.EsriJSON.readLineStringGeometry_,ol.format.EsriJSON.GEOMETRY_READERS_[ol.geom.GeometryType.POLYGON]=ol.format.EsriJSON.readPolygonGeometry_,ol.format.EsriJSON.GEOMETRY_READERS_[ol.geom.GeometryType.MULTI_POINT]=ol.format.EsriJSON.readMultiPointGeometry_,ol.format.EsriJSON.GEOMETRY_READERS_[ol.geom.GeometryType.MULTI_LINE_STRING]=ol.format.EsriJSON.readMultiLineStringGeometry_,ol.format.EsriJSON.GEOMETRY_READERS_[ol.geom.GeometryType.MULTI_POLYGON]=ol.format.EsriJSON.readMultiPolygonGeometry_,ol.format.EsriJSON.GEOMETRY_WRITERS_={},ol.format.EsriJSON.GEOMETRY_WRITERS_[ol.geom.GeometryType.POINT]=ol.format.EsriJSON.writePointGeometry_,ol.format.EsriJSON.GEOMETRY_WRITERS_[ol.geom.GeometryType.LINE_STRING]=ol.format.EsriJSON.writeLineStringGeometry_,ol.format.EsriJSON.GEOMETRY_WRITERS_[ol.geom.GeometryType.POLYGON]=ol.format.EsriJSON.writePolygonGeometry_,ol.format.EsriJSON.GEOMETRY_WRITERS_[ol.geom.GeometryType.MULTI_POINT]=ol.format.EsriJSON.writeMultiPointGeometry_,ol.format.EsriJSON.GEOMETRY_WRITERS_[ol.geom.GeometryType.MULTI_LINE_STRING]=ol.format.EsriJSON.writeMultiLineStringGeometry_,ol.format.EsriJSON.GEOMETRY_WRITERS_[ol.geom.GeometryType.MULTI_POLYGON]=ol.format.EsriJSON.writeMultiPolygonGeometry_,ol.format.EsriJSON.prototype.readFeature,ol.format.EsriJSON.prototype.readFeatures,ol.format.EsriJSON.prototype.readFeatureFromObject=function(n,t){var i=n,u=ol.format.EsriJSON.readGeometry_(i.geometry,t),r=new ol.Feature;return this.geometryName_&&r.setGeometryName(this.geometryName_),r.setGeometry(u),t&&t.idField&&i.attributes[t.idField]&&r.setId(i.attributes[t.idField]),i.attributes&&r.setProperties(i.attributes),r},ol.format.EsriJSON.prototype.readFeaturesFromObject=function(n,t){var o=n,r=t?t:{};if(o.features){var s=n,u=[],f=s.features,i,e;for(r.idField=n.objectIdFieldName,i=0,e=f.length;i<e;++i)u.push(this.readFeatureFromObject(f[i],r));return u}return[this.readFeatureFromObject(n,r)]},ol.format.EsriJSON.prototype.readGeometry,ol.format.EsriJSON.prototype.readGeometryFromObject=function(n,t){return ol.format.EsriJSON.readGeometry_(n,t)},ol.format.EsriJSON.prototype.readProjection,ol.format.EsriJSON.prototype.readProjectionFromObject=function(n){var t=n,i;return t.spatialReference&&t.spatialReference.wkid?(i=t.spatialReference.wkid,ol.proj.get("EPSG:"+i)):null},ol.format.EsriJSON.writeGeometry_=function(n,t){var i=ol.format.EsriJSON.GEOMETRY_WRITERS_[n.getType()];return i(ol.format.Feature.transformWithOptions(n,!0,t),t)},ol.format.EsriJSON.prototype.writeGeometry,ol.format.EsriJSON.prototype.writeGeometryObject=function(n,t){return ol.format.EsriJSON.writeGeometry_(n,this.adaptOptions(t))},ol.format.EsriJSON.prototype.writeFeature,ol.format.EsriJSON.prototype.writeFeatureObject=function(n,t){var i,u,r;return t=this.adaptOptions(t),i={},u=n.getGeometry(),u&&(i.geometry=ol.format.EsriJSON.writeGeometry_(u,t),t&&t.featureProjection&&(i.geometry.spatialReference={wkid:ol.proj.get(t.featureProjection).getCode().split(":").pop()})),r=n.getProperties(),delete r[n.getGeometryName()],i.attributes=ol.obj.isEmpty(r)?{}:r,i},ol.format.EsriJSON.prototype.writeFeatures,ol.format.EsriJSON.prototype.writeFeaturesObject=function(n,t){t=this.adaptOptions(t);for(var r=[],i=0,u=n.length;i<u;++i)r.push(this.writeFeatureObject(n[i],t));return{features:r}},n.provide("ol.format.filter.Filter"),ol.format.filter.Filter=function(n){this.tagName_=n},ol.format.filter.Filter.prototype.getTagName=function(){return this.tagName_},n.provide("ol.format.filter.LogicalNary"),n.require("ol"),n.require("ol.asserts"),n.require("ol.format.filter.Filter"),ol.format.filter.LogicalNary=function(n){ol.format.filter.Filter.call(this,n);this.conditions=Array.prototype.slice.call(arguments,1);ol.asserts.assert(this.conditions.length>=2,57)},ol.inherits(ol.format.filter.LogicalNary,ol.format.filter.Filter),n.provide("ol.format.filter.And"),n.require("ol"),n.require("ol.format.filter.LogicalNary"),ol.format.filter.And=function(){var n=["And"].concat(Array.prototype.slice.call(arguments));ol.format.filter.LogicalNary.apply(this,n)},ol.inherits(ol.format.filter.And,ol.format.filter.LogicalNary),n.provide("ol.format.filter.Bbox"),n.require("ol"),n.require("ol.format.filter.Filter"),ol.format.filter.Bbox=function(n,t,i){ol.format.filter.Filter.call(this,"BBOX");this.geometryName=n;this.extent=t;this.srsName=i},ol.inherits(ol.format.filter.Bbox,ol.format.filter.Filter),n.provide("ol.format.filter.Spatial"),n.require("ol"),n.require("ol.format.filter.Filter"),ol.format.filter.Spatial=function(n,t,i,r){ol.format.filter.Filter.call(this,n);this.geometryName=t||"the_geom";this.geometry=i;this.srsName=r},ol.inherits(ol.format.filter.Spatial,ol.format.filter.Filter),n.provide("ol.format.filter.Contains"),n.require("ol"),n.require("ol.format.filter.Spatial"),ol.format.filter.Contains=function(n,t,i){ol.format.filter.Spatial.call(this,"Contains",n,t,i)},ol.inherits(ol.format.filter.Contains,ol.format.filter.Spatial),n.provide("ol.format.filter.Comparison"),n.require("ol"),n.require("ol.format.filter.Filter"),ol.format.filter.Comparison=function(n,t){ol.format.filter.Filter.call(this,n);this.propertyName=t},ol.inherits(ol.format.filter.Comparison,ol.format.filter.Filter),n.provide("ol.format.filter.During"),n.require("ol"),n.require("ol.format.filter.Comparison"),ol.format.filter.During=function(n,t,i){ol.format.filter.Comparison.call(this,"During",n);this.begin=t;this.end=i},ol.inherits(ol.format.filter.During,ol.format.filter.Comparison),n.provide("ol.format.filter.ComparisonBinary"),n.require("ol"),n.require("ol.format.filter.Comparison"),ol.format.filter.ComparisonBinary=function(n,t,i,r){ol.format.filter.Comparison.call(this,n,t);this.expression=i;this.matchCase=r},ol.inherits(ol.format.filter.ComparisonBinary,ol.format.filter.Comparison),n.provide("ol.format.filter.EqualTo"),n.require("ol"),n.require("ol.format.filter.ComparisonBinary"),ol.format.filter.EqualTo=function(n,t,i){ol.format.filter.ComparisonBinary.call(this,"PropertyIsEqualTo",n,t,i)},ol.inherits(ol.format.filter.EqualTo,ol.format.filter.ComparisonBinary),n.provide("ol.format.filter.GreaterThan"),n.require("ol"),n.require("ol.format.filter.ComparisonBinary"),ol.format.filter.GreaterThan=function(n,t){ol.format.filter.ComparisonBinary.call(this,"PropertyIsGreaterThan",n,t)},ol.inherits(ol.format.filter.GreaterThan,ol.format.filter.ComparisonBinary),n.provide("ol.format.filter.GreaterThanOrEqualTo"),n.require("ol"),n.require("ol.format.filter.ComparisonBinary"),ol.format.filter.GreaterThanOrEqualTo=function(n,t){ol.format.filter.ComparisonBinary.call(this,"PropertyIsGreaterThanOrEqualTo",n,t)},ol.inherits(ol.format.filter.GreaterThanOrEqualTo,ol.format.filter.ComparisonBinary),n.provide("ol.format.filter.Intersects"),n.require("ol"),n.require("ol.format.filter.Spatial"),ol.format.filter.Intersects=function(n,t,i){ol.format.filter.Spatial.call(this,"Intersects",n,t,i)},ol.inherits(ol.format.filter.Intersects,ol.format.filter.Spatial),n.provide("ol.format.filter.IsBetween"),n.require("ol"),n.require("ol.format.filter.Comparison"),ol.format.filter.IsBetween=function(n,t,i){ol.format.filter.Comparison.call(this,"PropertyIsBetween",n);this.lowerBoundary=t;this.upperBoundary=i},ol.inherits(ol.format.filter.IsBetween,ol.format.filter.Comparison),n.provide("ol.format.filter.IsLike"),n.require("ol"),n.require("ol.format.filter.Comparison"),ol.format.filter.IsLike=function(n,t,i,r,u,f){ol.format.filter.Comparison.call(this,"PropertyIsLike",n);this.pattern=t;this.wildCard=i!==undefined?i:"*";this.singleChar=r!==undefined?r:".";this.escapeChar=u!==undefined?u:"!";this.matchCase=f},ol.inherits(ol.format.filter.IsLike,ol.format.filter.Comparison),n.provide("ol.format.filter.IsNull"),n.require("ol"),n.require("ol.format.filter.Comparison"),ol.format.filter.IsNull=function(n){ol.format.filter.Comparison.call(this,"PropertyIsNull",n)},ol.inherits(ol.format.filter.IsNull,ol.format.filter.Comparison),n.provide("ol.format.filter.LessThan"),n.require("ol"),n.require("ol.format.filter.ComparisonBinary"),ol.format.filter.LessThan=function(n,t){ol.format.filter.ComparisonBinary.call(this,"PropertyIsLessThan",n,t)},ol.inherits(ol.format.filter.LessThan,ol.format.filter.ComparisonBinary),n.provide("ol.format.filter.LessThanOrEqualTo"),n.require("ol"),n.require("ol.format.filter.ComparisonBinary"),ol.format.filter.LessThanOrEqualTo=function(n,t){ol.format.filter.ComparisonBinary.call(this,"PropertyIsLessThanOrEqualTo",n,t)},ol.inherits(ol.format.filter.LessThanOrEqualTo,ol.format.filter.ComparisonBinary),n.provide("ol.format.filter.Not"),n.require("ol"),n.require("ol.format.filter.Filter"),ol.format.filter.Not=function(n){ol.format.filter.Filter.call(this,"Not");this.condition=n},ol.inherits(ol.format.filter.Not,ol.format.filter.Filter),n.provide("ol.format.filter.NotEqualTo"),n.require("ol"),n.require("ol.format.filter.ComparisonBinary"),ol.format.filter.NotEqualTo=function(n,t,i){ol.format.filter.ComparisonBinary.call(this,"PropertyIsNotEqualTo",n,t,i)},ol.inherits(ol.format.filter.NotEqualTo,ol.format.filter.ComparisonBinary),n.provide("ol.format.filter.Or"),n.require("ol"),n.require("ol.format.filter.LogicalNary"),ol.format.filter.Or=function(){var n=["Or"].concat(Array.prototype.slice.call(arguments));ol.format.filter.LogicalNary.apply(this,n)},ol.inherits(ol.format.filter.Or,ol.format.filter.LogicalNary),n.provide("ol.format.filter.Within"),n.require("ol"),n.require("ol.format.filter.Spatial"),ol.format.filter.Within=function(n,t,i){ol.format.filter.Spatial.call(this,"Within",n,t,i)},ol.inherits(ol.format.filter.Within,ol.format.filter.Spatial),n.provide("ol.format.filter"),n.require("ol.format.filter.And"),n.require("ol.format.filter.Bbox"),n.require("ol.format.filter.Contains"),n.require("ol.format.filter.During"),n.require("ol.format.filter.EqualTo"),n.require("ol.format.filter.GreaterThan"),n.require("ol.format.filter.GreaterThanOrEqualTo"),n.require("ol.format.filter.Intersects"),n.require("ol.format.filter.IsBetween"),n.require("ol.format.filter.IsLike"),n.require("ol.format.filter.IsNull"),n.require("ol.format.filter.LessThan"),n.require("ol.format.filter.LessThanOrEqualTo"),n.require("ol.format.filter.Not"),n.require("ol.format.filter.NotEqualTo"),n.require("ol.format.filter.Or"),n.require("ol.format.filter.Within"),ol.format.filter.and=function(){var n=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(ol.format.filter.And,n))},ol.format.filter.or=function(){var n=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(ol.format.filter.Or,n))},ol.format.filter.not=function(n){return new ol.format.filter.Not(n)},ol.format.filter.bbox=function(n,t,i){return new ol.format.filter.Bbox(n,t,i)},ol.format.filter.contains=function(n,t,i){return new ol.format.filter.Contains(n,t,i)},ol.format.filter.intersects=function(n,t,i){return new ol.format.filter.Intersects(n,t,i)},ol.format.filter.within=function(n,t,i){return new ol.format.filter.Within(n,t,i)},ol.format.filter.equalTo=function(n,t,i){return new ol.format.filter.EqualTo(n,t,i)},ol.format.filter.notEqualTo=function(n,t,i){return new ol.format.filter.NotEqualTo(n,t,i)},ol.format.filter.lessThan=function(n,t){return new ol.format.filter.LessThan(n,t)},ol.format.filter.lessThanOrEqualTo=function(n,t){return new ol.format.filter.LessThanOrEqualTo(n,t)},ol.format.filter.greaterThan=function(n,t){return new ol.format.filter.GreaterThan(n,t)},ol.format.filter.greaterThanOrEqualTo=function(n,t){return new ol.format.filter.GreaterThanOrEqualTo(n,t)},ol.format.filter.isNull=function(n){return new ol.format.filter.IsNull(n)},ol.format.filter.between=function(n,t,i){return new ol.format.filter.IsBetween(n,t,i)},ol.format.filter.like=function(n,t,i,r,u,f){return new ol.format.filter.IsLike(n,t,i,r,u,f)},ol.format.filter.during=function(n,t,i){return new ol.format.filter.During(n,t,i)},n.provide("ol.geom.GeometryCollection"),n.require("ol"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.geom.Geometry"),n.require("ol.geom.GeometryType"),n.require("ol.obj"),ol.geom.GeometryCollection=function(n){ol.geom.Geometry.call(this);this.geometries_=n?n:null;this.listenGeometriesChange_()},ol.inherits(ol.geom.GeometryCollection,ol.geom.Geometry),ol.geom.GeometryCollection.cloneGeometries_=function(n){for(var i=[],t=0,r=n.length;t<r;++t)i.push(n[t].clone());return i},ol.geom.GeometryCollection.prototype.unlistenGeometriesChange_=function(){var n,t;if(this.geometries_)for(n=0,t=this.geometries_.length;n<t;++n)ol.events.unlisten(this.geometries_[n],ol.events.EventType.CHANGE,this.changed,this)},ol.geom.GeometryCollection.prototype.listenGeometriesChange_=function(){var n,t;if(this.geometries_)for(n=0,t=this.geometries_.length;n<t;++n)ol.events.listen(this.geometries_[n],ol.events.EventType.CHANGE,this.changed,this)},ol.geom.GeometryCollection.prototype.clone=function(){var n=new ol.geom.GeometryCollection(null);return n.setGeometries(this.geometries_),n},ol.geom.GeometryCollection.prototype.closestPointXY=function(n,t,i,r){if(r<ol.extent.closestSquaredDistanceXY(this.getExtent(),n,t))return r;for(var f=this.geometries_,u=0,e=f.length;u<e;++u)r=f[u].closestPointXY(n,t,i,r);return r},ol.geom.GeometryCollection.prototype.containsXY=function(n,t){for(var r=this.geometries_,i=0,u=r.length;i<u;++i)if(r[i].containsXY(n,t))return!0;return!1},ol.geom.GeometryCollection.prototype.computeExtent=function(n){var i,t,r;for(ol.extent.createOrUpdateEmpty(n),i=this.geometries_,t=0,r=i.length;t<r;++t)ol.extent.extend(n,i[t].getExtent());return n},ol.geom.GeometryCollection.prototype.getGeometries=function(){return ol.geom.GeometryCollection.cloneGeometries_(this.geometries_)},ol.geom.GeometryCollection.prototype.getGeometriesArray=function(){return this.geometries_},ol.geom.GeometryCollection.prototype.getSimplifiedGeometry=function(n){var t,u,f,r;if(this.simplifiedGeometryRevision!=this.getRevision()&&(ol.obj.clear(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),n<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&n<this.simplifiedGeometryMaxMinSquaredTolerance)return this;if(t=n.toString(),this.simplifiedGeometryCache.hasOwnProperty(t))return this.simplifiedGeometryCache[t];for(var e=[],o=this.geometries_,s=!1,i=0,h=o.length;i<h;++i)u=o[i],f=u.getSimplifiedGeometry(n),e.push(f),f!==u&&(s=!0);return s?(r=new ol.geom.GeometryCollection(null),r.setGeometriesArray(e),this.simplifiedGeometryCache[t]=r,r):(this.simplifiedGeometryMaxMinSquaredTolerance=n,this)},ol.geom.GeometryCollection.prototype.getType=function(){return ol.geom.GeometryType.GEOMETRY_COLLECTION},ol.geom.GeometryCollection.prototype.intersectsExtent=function(n){for(var i=this.geometries_,t=0,r=i.length;t<r;++t)if(i[t].intersectsExtent(n))return!0;return!1},ol.geom.GeometryCollection.prototype.isEmpty=function(){return this.geometries_.length===0},ol.geom.GeometryCollection.prototype.rotate=function(n,t){for(var r=this.geometries_,i=0,u=r.length;i<u;++i)r[i].rotate(n,t);this.changed()},ol.geom.GeometryCollection.prototype.scale=function(n,t,i){var u=i,f,r,e;for(u||(u=ol.extent.getCenter(this.getExtent())),f=this.geometries_,r=0,e=f.length;r<e;++r)f[r].scale(n,t,u);this.changed()},ol.geom.GeometryCollection.prototype.setGeometries=function(n){this.setGeometriesArray(ol.geom.GeometryCollection.cloneGeometries_(n))},ol.geom.GeometryCollection.prototype.setGeometriesArray=function(n){this.unlistenGeometriesChange_();this.geometries_=n;this.listenGeometriesChange_();this.changed()},ol.geom.GeometryCollection.prototype.applyTransform=function(n){for(var i=this.geometries_,t=0,r=i.length;t<r;++t)i[t].applyTransform(n);this.changed()},ol.geom.GeometryCollection.prototype.translate=function(n,t){for(var r=this.geometries_,i=0,u=r.length;i<u;++i)r[i].translate(n,t);this.changed()},ol.geom.GeometryCollection.prototype.disposeInternal=function(){this.unlistenGeometriesChange_();ol.geom.Geometry.prototype.disposeInternal.call(this)},n.provide("ol.format.GeoJSON"),n.require("ol"),n.require("ol.asserts"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.JSONFeature"),n.require("ol.geom.GeometryCollection"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.obj"),n.require("ol.proj"),ol.format.GeoJSON=function(n){var t=n?n:{};ol.format.JSONFeature.call(this);this.defaultDataProjection=ol.proj.get(t.defaultDataProjection?t.defaultDataProjection:"EPSG:4326");t.featureProjection&&(this.defaultFeatureProjection=ol.proj.get(t.featureProjection));this.geometryName_=t.geometryName;this.extractGeometryName_=t.extractGeometryName},ol.inherits(ol.format.GeoJSON,ol.format.JSONFeature),ol.format.GeoJSON.readGeometry_=function(n,t){if(!n)return null;var i=ol.format.GeoJSON.GEOMETRY_READERS_[n.type];return ol.format.Feature.transformWithOptions(i(n),!1,t)},ol.format.GeoJSON.readGeometryCollectionGeometry_=function(n,t){var i=n.geometries.map(function(n){return ol.format.GeoJSON.readGeometry_(n,t)});return new ol.geom.GeometryCollection(i)},ol.format.GeoJSON.readPointGeometry_=function(n){return new ol.geom.Point(n.coordinates)},ol.format.GeoJSON.readLineStringGeometry_=function(n){return new ol.geom.LineString(n.coordinates)},ol.format.GeoJSON.readMultiLineStringGeometry_=function(n){return new ol.geom.MultiLineString(n.coordinates)},ol.format.GeoJSON.readMultiPointGeometry_=function(n){return new ol.geom.MultiPoint(n.coordinates)},ol.format.GeoJSON.readMultiPolygonGeometry_=function(n){return new ol.geom.MultiPolygon(n.coordinates)},ol.format.GeoJSON.readPolygonGeometry_=function(n){return new ol.geom.Polygon(n.coordinates)},ol.format.GeoJSON.writeGeometry_=function(n,t){var i=ol.format.GeoJSON.GEOMETRY_WRITERS_[n.getType()];return i(ol.format.Feature.transformWithOptions(n,!0,t),t)},ol.format.GeoJSON.writeEmptyGeometryCollectionGeometry_=function(){return{type:"GeometryCollection",geometries:[]}},ol.format.GeoJSON.writeGeometryCollectionGeometry_=function(n,t){var i=n.getGeometriesArray().map(function(n){var i=ol.obj.assign({},t);return delete i.featureProjection,ol.format.GeoJSON.writeGeometry_(n,i)});return{type:"GeometryCollection",geometries:i}},ol.format.GeoJSON.writeLineStringGeometry_=function(n){return{type:"LineString",coordinates:n.getCoordinates()}},ol.format.GeoJSON.writeMultiLineStringGeometry_=function(n){return{type:"MultiLineString",coordinates:n.getCoordinates()}},ol.format.GeoJSON.writeMultiPointGeometry_=function(n){return{type:"MultiPoint",coordinates:n.getCoordinates()}},ol.format.GeoJSON.writeMultiPolygonGeometry_=function(n,t){var i;return t&&(i=t.rightHanded),{type:"MultiPolygon",coordinates:n.getCoordinates(i)}},ol.format.GeoJSON.writePointGeometry_=function(n){return{type:"Point",coordinates:n.getCoordinates()}},ol.format.GeoJSON.writePolygonGeometry_=function(n,t){var i;return t&&(i=t.rightHanded),{type:"Polygon",coordinates:n.getCoordinates(i)}},ol.format.GeoJSON.GEOMETRY_READERS_={Point:ol.format.GeoJSON.readPointGeometry_,LineString:ol.format.GeoJSON.readLineStringGeometry_,Polygon:ol.format.GeoJSON.readPolygonGeometry_,MultiPoint:ol.format.GeoJSON.readMultiPointGeometry_,MultiLineString:ol.format.GeoJSON.readMultiLineStringGeometry_,MultiPolygon:ol.format.GeoJSON.readMultiPolygonGeometry_,GeometryCollection:ol.format.GeoJSON.readGeometryCollectionGeometry_},ol.format.GeoJSON.GEOMETRY_WRITERS_={Point:ol.format.GeoJSON.writePointGeometry_,LineString:ol.format.GeoJSON.writeLineStringGeometry_,Polygon:ol.format.GeoJSON.writePolygonGeometry_,MultiPoint:ol.format.GeoJSON.writeMultiPointGeometry_,MultiLineString:ol.format.GeoJSON.writeMultiLineStringGeometry_,MultiPolygon:ol.format.GeoJSON.writeMultiPolygonGeometry_,GeometryCollection:ol.format.GeoJSON.writeGeometryCollectionGeometry_,Circle:ol.format.GeoJSON.writeEmptyGeometryCollectionGeometry_},ol.format.GeoJSON.prototype.readFeature,ol.format.GeoJSON.prototype.readFeatures,ol.format.GeoJSON.prototype.readFeatureFromObject=function(n,t){var i=null,u,r;return i=n.type==="Feature"?n:{type:"Feature",geometry:n},u=ol.format.GeoJSON.readGeometry_(i.geometry,t),r=new ol.Feature,this.geometryName_?r.setGeometryName(this.geometryName_):this.extractGeometryName_&&i.geometry_name!==undefined&&r.setGeometryName(i.geometry_name),r.setGeometry(u),i.id!==undefined&&r.setId(i.id),i.properties&&r.setProperties(i.properties),r},ol.format.GeoJSON.prototype.readFeaturesFromObject=function(n,t){var o=n,i=null,f,u,r,e;if(o.type==="FeatureCollection")for(f=n,i=[],u=f.features,r=0,e=u.length;r<e;++r)i.push(this.readFeatureFromObject(u[r],t));else i=[this.readFeatureFromObject(n,t)];return i},ol.format.GeoJSON.prototype.readGeometry,ol.format.GeoJSON.prototype.readGeometryFromObject=function(n,t){return ol.format.GeoJSON.readGeometry_(n,t)},ol.format.GeoJSON.prototype.readProjection,ol.format.GeoJSON.prototype.readProjectionFromObject=function(n){var r=n,t=r.crs,i;return t?t.type=="name"?i=ol.proj.get(t.properties.name):ol.asserts.assert(!1,36):i=this.defaultDataProjection,i},ol.format.GeoJSON.prototype.writeFeature,ol.format.GeoJSON.prototype.writeFeatureObject=function(n,t){var i,u,f,r;return t=this.adaptOptions(t),i={type:"Feature"},u=n.getId(),u!==undefined&&(i.id=u),f=n.getGeometry(),i.geometry=f?ol.format.GeoJSON.writeGeometry_(f,t):null,r=n.getProperties(),delete r[n.getGeometryName()],i.properties=ol.obj.isEmpty(r)?null:r,i},ol.format.GeoJSON.prototype.writeFeatures,ol.format.GeoJSON.prototype.writeFeaturesObject=function(n,t){t=this.adaptOptions(t);for(var r=[],i=0,u=n.length;i<u;++i)r.push(this.writeFeatureObject(n[i],t));return{type:"FeatureCollection",features:r}},ol.format.GeoJSON.prototype.writeGeometry,ol.format.GeoJSON.prototype.writeGeometryObject=function(n,t){return ol.format.GeoJSON.writeGeometry_(n,this.adaptOptions(t))},n.provide("ol.format.XMLFeature"),n.require("ol"),n.require("ol.array"),n.require("ol.format.Feature"),n.require("ol.format.FormatType"),n.require("ol.xml"),ol.format.XMLFeature=function(){this.xmlSerializer_=new XMLSerializer;ol.format.Feature.call(this)},ol.inherits(ol.format.XMLFeature,ol.format.Feature),ol.format.XMLFeature.prototype.getType=function(){return ol.format.FormatType.XML},ol.format.XMLFeature.prototype.readFeature=function(n,t){if(ol.xml.isDocument(n))return this.readFeatureFromDocument(n,t);if(ol.xml.isNode(n))return this.readFeatureFromNode(n,t);if(typeof n=="string"){var i=ol.xml.parse(n);return this.readFeatureFromDocument(i,t)}return null},ol.format.XMLFeature.prototype.readFeatureFromDocument=function(n,t){var i=this.readFeaturesFromDocument(n,t);return i.length>0?i[0]:null},ol.format.XMLFeature.prototype.readFeatureFromNode=function(){return null},ol.format.XMLFeature.prototype.readFeatures=function(n,t){if(ol.xml.isDocument(n))return this.readFeaturesFromDocument(n,t);if(ol.xml.isNode(n))return this.readFeaturesFromNode(n,t);if(typeof n=="string"){var i=ol.xml.parse(n);return this.readFeaturesFromDocument(i,t)}return[]},ol.format.XMLFeature.prototype.readFeaturesFromDocument=function(n,t){for(var r=[],i=n.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&ol.array.extend(r,this.readFeaturesFromNode(i,t));return r},ol.format.XMLFeature.prototype.readFeaturesFromNode=function(){},ol.format.XMLFeature.prototype.readGeometry=function(n,t){if(ol.xml.isDocument(n))return this.readGeometryFromDocument(n,t);if(ol.xml.isNode(n))return this.readGeometryFromNode(n,t);if(typeof n=="string"){var i=ol.xml.parse(n);return this.readGeometryFromDocument(i,t)}return null},ol.format.XMLFeature.prototype.readGeometryFromDocument=function(){return null},ol.format.XMLFeature.prototype.readGeometryFromNode=function(){return null},ol.format.XMLFeature.prototype.readProjection=function(n){if(ol.xml.isDocument(n))return this.readProjectionFromDocument(n);if(ol.xml.isNode(n))return this.readProjectionFromNode(n);if(typeof n=="string"){var t=ol.xml.parse(n);return this.readProjectionFromDocument(t)}return null},ol.format.XMLFeature.prototype.readProjectionFromDocument=function(){return this.defaultDataProjection},ol.format.XMLFeature.prototype.readProjectionFromNode=function(){return this.defaultDataProjection},ol.format.XMLFeature.prototype.writeFeature=function(n,t){var i=this.writeFeatureNode(n,t);return this.xmlSerializer_.serializeToString(i)},ol.format.XMLFeature.prototype.writeFeatureNode=function(){return null},ol.format.XMLFeature.prototype.writeFeatures=function(n,t){var i=this.writeFeaturesNode(n,t);return this.xmlSerializer_.serializeToString(i)},ol.format.XMLFeature.prototype.writeFeaturesNode=function(){return null},ol.format.XMLFeature.prototype.writeGeometry=function(n,t){var i=this.writeGeometryNode(n,t);return this.xmlSerializer_.serializeToString(i)},ol.format.XMLFeature.prototype.writeGeometryNode=function(){return null},n.provide("ol.format.GMLBase"),n.require("ol"),n.require("ol.array"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.XMLFeature"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.LinearRing"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.xml"),ol.format.GMLBase=function(n){var t=n?n:{};this.featureType=t.featureType;this.featureNS=t.featureNS;this.srsName=t.srsName;this.schemaLocation="";this.FEATURE_COLLECTION_PARSERS={};this.FEATURE_COLLECTION_PARSERS[ol.format.GMLBase.GMLNS]={featureMember:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readFeaturesInternal),featureMembers:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readFeaturesInternal)};ol.format.XMLFeature.call(this)},ol.inherits(ol.format.GMLBase,ol.format.XMLFeature),ol.format.GMLBase.GMLNS="http://www.opengis.net/gml",ol.format.GMLBase.ONLY_WHITESPACE_RE_=/^[\s\xa0]*$/,ol.format.GMLBase.prototype.readFeaturesInternal=function(n,t){var f=n.localName,e=null,l,v,y,g,a,s,p,w,nt;if(f=="FeatureCollection")e=n.namespaceURI==="http://www.opengis.net/wfs"?ol.xml.pushParseAndPop([],this.FEATURE_COLLECTION_PARSERS,n,t,this):ol.xml.pushParseAndPop(null,this.FEATURE_COLLECTION_PARSERS,n,t,this);else if(f=="featureMembers"||f=="featureMember"){var h=t[0],u=h.featureType,i=h.featureNS,r,c,b="p0";if(!u&&n.childNodes){for(u=[],i={},r=0,c=n.childNodes.length;r<c;++r)if(l=n.childNodes[r],l.nodeType===1&&(v=l.nodeName.split(":").pop(),u.indexOf(v)===-1)){var o="",k=0,d=l.namespaceURI;for(y in i){if(i[y]===d){o=y;break}++k}o||(o="p"+k,i[o]=d);u.push(o+":"+v)}f!="featureMember"&&(h.featureType=u,h.featureNS=i)}typeof i=="string"&&(g=i,i={},i[b]=g);a={};s=Array.isArray(u)?u:[u];for(p in i){for(w={},r=0,c=s.length;r<c;++r)nt=s[r].indexOf(":")===-1?b:s[r].split(":")[0],nt===p&&(w[s[r].split(":").pop()]=f=="featureMembers"?ol.xml.makeArrayPusher(this.readFeatureElement,this):ol.xml.makeReplacer(this.readFeatureElement,this));a[i[p]]=w}e=f=="featureMember"?ol.xml.pushParseAndPop(undefined,a,n,t):ol.xml.pushParseAndPop([],a,n,t)}return e===null&&(e=[]),e},ol.format.GMLBase.prototype.readGeometryElement=function(n,t){var i=t[0],r;return i.srsName=n.firstElementChild.getAttribute("srsName"),i.srsDimension=n.firstElementChild.getAttribute("srsDimension"),r=ol.xml.pushParseAndPop(null,this.GEOMETRY_PARSERS_,n,t,this),r?ol.format.Feature.transformWithOptions(r,!1,i):undefined},ol.format.GMLBase.prototype.readFeatureElement=function(n,t){for(var s=n.getAttribute("fid")||ol.xml.getAttributeNS(n,ol.format.GMLBase.GMLNS,"id"),e={},o,r,u,f,i=n.firstElementChild;i;i=i.nextElementSibling)r=i.localName,i.childNodes.length===0||i.childNodes.length===1&&(i.firstChild.nodeType===3||i.firstChild.nodeType===4)?(u=ol.xml.getAllTextContent(i,!1),ol.format.GMLBase.ONLY_WHITESPACE_RE_.test(u)&&(u=undefined),e[r]=u):(r!=="boundedBy"&&(o=r),e[r]=this.readGeometryElement(i,t));return f=new ol.Feature(e),o&&f.setGeometryName(o),s&&f.setId(s),f},ol.format.GMLBase.prototype.readPoint=function(n,t){var r=this.readFlatCoordinatesFromNode_(n,t),i;if(r)return i=new ol.geom.Point(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r),i},ol.format.GMLBase.prototype.readMultiPoint=function(n,t){var i=ol.xml.pushParseAndPop([],this.MULTIPOINT_PARSERS_,n,t,this);return i?new ol.geom.MultiPoint(i):undefined},ol.format.GMLBase.prototype.readMultiLineString=function(n,t){var r=ol.xml.pushParseAndPop([],this.MULTILINESTRING_PARSERS_,n,t,this),i;return r?(i=new ol.geom.MultiLineString(null),i.setLineStrings(r),i):undefined},ol.format.GMLBase.prototype.readMultiPolygon=function(n,t){var r=ol.xml.pushParseAndPop([],this.MULTIPOLYGON_PARSERS_,n,t,this),i;return r?(i=new ol.geom.MultiPolygon(null),i.setPolygons(r),i):undefined},ol.format.GMLBase.prototype.pointMemberParser_=function(n,t){ol.xml.parseNode(this.POINTMEMBER_PARSERS_,n,t,this)},ol.format.GMLBase.prototype.lineStringMemberParser_=function(n,t){ol.xml.parseNode(this.LINESTRINGMEMBER_PARSERS_,n,t,this)},ol.format.GMLBase.prototype.polygonMemberParser_=function(n,t){ol.xml.parseNode(this.POLYGONMEMBER_PARSERS_,n,t,this)},ol.format.GMLBase.prototype.readLineString=function(n,t){var r=this.readFlatCoordinatesFromNode_(n,t),i;return r?(i=new ol.geom.LineString(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r),i):undefined},ol.format.GMLBase.prototype.readFlatLinearRing_=function(n,t){var i=ol.xml.pushParseAndPop(null,this.GEOMETRY_FLAT_COORDINATES_PARSERS_,n,t,this);return i?i:undefined},ol.format.GMLBase.prototype.readLinearRing=function(n,t){var r=this.readFlatCoordinatesFromNode_(n,t),i;return r?(i=new ol.geom.LinearRing(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r),i):undefined},ol.format.GMLBase.prototype.readPolygon=function(n,t){var i=ol.xml.pushParseAndPop([null],this.FLAT_LINEAR_RINGS_PARSERS_,n,t,this);if(i&&i[0]){for(var f=new ol.geom.Polygon(null),r=i[0],e=[r.length],u=1,o=i.length;u<o;++u)ol.array.extend(r,i[u]),e.push(r.length);return f.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r,e),f}return undefined},ol.format.GMLBase.prototype.readFlatCoordinatesFromNode_=function(n,t){return ol.xml.pushParseAndPop(null,this.GEOMETRY_FLAT_COORDINATES_PARSERS_,n,t,this)},ol.format.GMLBase.prototype.MULTIPOINT_PARSERS_={"http://www.opengis.net/gml":{pointMember:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.pointMemberParser_),pointMembers:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.pointMemberParser_)}},ol.format.GMLBase.prototype.MULTILINESTRING_PARSERS_={"http://www.opengis.net/gml":{lineStringMember:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.lineStringMemberParser_),lineStringMembers:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.lineStringMemberParser_)}},ol.format.GMLBase.prototype.MULTIPOLYGON_PARSERS_={"http://www.opengis.net/gml":{polygonMember:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.polygonMemberParser_),polygonMembers:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.polygonMemberParser_)}},ol.format.GMLBase.prototype.POINTMEMBER_PARSERS_={"http://www.opengis.net/gml":{Point:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readFlatCoordinatesFromNode_)}},ol.format.GMLBase.prototype.LINESTRINGMEMBER_PARSERS_={"http://www.opengis.net/gml":{LineString:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readLineString)}},ol.format.GMLBase.prototype.POLYGONMEMBER_PARSERS_={"http://www.opengis.net/gml":{Polygon:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readPolygon)}},ol.format.GMLBase.prototype.RING_PARSERS={"http://www.opengis.net/gml":{LinearRing:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readFlatLinearRing_)}},ol.format.GMLBase.prototype.readGeometryFromNode=function(n,t){var i=this.readGeometryElement(n,[this.getReadOptions(n,t?t:{})]);return i?i:null},ol.format.GMLBase.prototype.readFeatures,ol.format.GMLBase.prototype.readFeaturesFromNode=function(n,t){var i={featureType:this.featureType,featureNS:this.featureNS},r;return t&&ol.obj.assign(i,this.getReadOptions(n,t)),r=this.readFeaturesInternal(n,[i]),r||[]},ol.format.GMLBase.prototype.readProjectionFromNode=function(n){return ol.proj.get(this.srsName?this.srsName:n.firstElementChild.getAttribute("srsName"))},n.provide("ol.format.XSD"),n.require("ol.xml"),n.require("ol.string"),ol.format.XSD.NAMESPACE_URI="http://www.w3.org/2001/XMLSchema",ol.format.XSD.readBoolean=function(n){var t=ol.xml.getAllTextContent(n,!1);return ol.format.XSD.readBooleanString(t)},ol.format.XSD.readBooleanString=function(n){var t=/^\s*(true|1)|(false|0)\s*$/.exec(n);return t?t[1]!==undefined||!1:undefined},ol.format.XSD.readDateTime=function(n){var i=ol.xml.getAllTextContent(n,!1),t=Date.parse(i);return isNaN(t)?undefined:t/1e3},ol.format.XSD.readDecimal=function(n){var t=ol.xml.getAllTextContent(n,!1);return ol.format.XSD.readDecimalString(t)},ol.format.XSD.readDecimalString=function(n){var t=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(n);return t?parseFloat(t[1]):undefined},ol.format.XSD.readNonNegativeInteger=function(n){var t=ol.xml.getAllTextContent(n,!1);return ol.format.XSD.readNonNegativeIntegerString(t)},ol.format.XSD.readNonNegativeIntegerString=function(n){var t=/^\s*(\d+)\s*$/.exec(n);return t?parseInt(t[1],10):undefined},ol.format.XSD.readString=function(n){return ol.xml.getAllTextContent(n,!1).trim()},ol.format.XSD.writeBooleanTextNode=function(n,t){ol.format.XSD.writeStringTextNode(n,t?"1":"0")},ol.format.XSD.writeCDATASection=function(n,t){n.appendChild(ol.xml.DOCUMENT.createCDATASection(t))},ol.format.XSD.writeDateTimeTextNode=function(n,t){var i=new Date(t*1e3),r=i.getUTCFullYear()+"-"+ol.string.padNumber(i.getUTCMonth()+1,2)+"-"+ol.string.padNumber(i.getUTCDate(),2)+"T"+ol.string.padNumber(i.getUTCHours(),2)+":"+ol.string.padNumber(i.getUTCMinutes(),2)+":"+ol.string.padNumber(i.getUTCSeconds(),2)+"Z";n.appendChild(ol.xml.DOCUMENT.createTextNode(r))},ol.format.XSD.writeDecimalTextNode=function(n,t){var i=t.toPrecision();n.appendChild(ol.xml.DOCUMENT.createTextNode(i))},ol.format.XSD.writeNonNegativeIntegerTextNode=function(n,t){var i=t.toString();n.appendChild(ol.xml.DOCUMENT.createTextNode(i))},ol.format.XSD.writeStringTextNode=function(n,t){n.appendChild(ol.xml.DOCUMENT.createTextNode(t))},n.provide("ol.format.GML3"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.format.Feature"),n.require("ol.format.GMLBase"),n.require("ol.format.XSD"),n.require("ol.geom.Geometry"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Polygon"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.xml"),ol.format.GML3=function(n){var t=n?n:{};ol.format.GMLBase.call(this,t);this.surface_=t.surface!==undefined?t.surface:!1;this.curve_=t.curve!==undefined?t.curve:!1;this.multiCurve_=t.multiCurve!==undefined?t.multiCurve:!0;this.multiSurface_=t.multiSurface!==undefined?t.multiSurface:!0;this.schemaLocation=t.schemaLocation?t.schemaLocation:ol.format.GML3.schemaLocation_;this.hasZ=t.hasZ!==undefined?t.hasZ:!1},ol.inherits(ol.format.GML3,ol.format.GMLBase),ol.format.GML3.schemaLocation_=ol.format.GMLBase.GMLNS+" http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd",ol.format.GML3.prototype.readMultiCurve_=function(n,t){var r=ol.xml.pushParseAndPop([],this.MULTICURVE_PARSERS_,n,t,this),i;return r?(i=new ol.geom.MultiLineString(null),i.setLineStrings(r),i):undefined},ol.format.GML3.prototype.readMultiSurface_=function(n,t){var r=ol.xml.pushParseAndPop([],this.MULTISURFACE_PARSERS_,n,t,this),i;return r?(i=new ol.geom.MultiPolygon(null),i.setPolygons(r),i):undefined},ol.format.GML3.prototype.curveMemberParser_=function(n,t){ol.xml.parseNode(this.CURVEMEMBER_PARSERS_,n,t,this)},ol.format.GML3.prototype.surfaceMemberParser_=function(n,t){ol.xml.parseNode(this.SURFACEMEMBER_PARSERS_,n,t,this)},ol.format.GML3.prototype.readPatch_=function(n,t){return ol.xml.pushParseAndPop([null],this.PATCHES_PARSERS_,n,t,this)},ol.format.GML3.prototype.readSegment_=function(n,t){return ol.xml.pushParseAndPop([null],this.SEGMENTS_PARSERS_,n,t,this)},ol.format.GML3.prototype.readPolygonPatch_=function(n,t){return ol.xml.pushParseAndPop([null],this.FLAT_LINEAR_RINGS_PARSERS_,n,t,this)},ol.format.GML3.prototype.readLineStringSegment_=function(n,t){return ol.xml.pushParseAndPop([null],this.GEOMETRY_FLAT_COORDINATES_PARSERS_,n,t,this)},ol.format.GML3.prototype.interiorParser_=function(n,t){var i=ol.xml.pushParseAndPop(undefined,this.RING_PARSERS,n,t,this),r;i&&(r=t[t.length-1],r.push(i))},ol.format.GML3.prototype.exteriorParser_=function(n,t){var i=ol.xml.pushParseAndPop(undefined,this.RING_PARSERS,n,t,this),r;i&&(r=t[t.length-1],r[0]=i)},ol.format.GML3.prototype.readSurface_=function(n,t){var i=ol.xml.pushParseAndPop([null],this.SURFACE_PARSERS_,n,t,this);if(i&&i[0]){for(var f=new ol.geom.Polygon(null),r=i[0],e=[r.length],u=1,o=i.length;u<o;++u)ol.array.extend(r,i[u]),e.push(r.length);return f.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r,e),f}return undefined},ol.format.GML3.prototype.readCurve_=function(n,t){var r=ol.xml.pushParseAndPop([null],this.CURVE_PARSERS_,n,t,this),i;return r?(i=new ol.geom.LineString(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r),i):undefined},ol.format.GML3.prototype.readEnvelope_=function(n,t){var i=ol.xml.pushParseAndPop([null],this.ENVELOPE_PARSERS_,n,t,this);return ol.extent.createOrUpdate(i[1][0],i[1][1],i[2][0],i[2][1])},ol.format.GML3.prototype.readFlatPos_=function(n,t){for(var u=ol.xml.getAllTextContent(n,!1),i=[],f,h,r,c,l,a,e;f=/^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/.exec(u);)i.push(parseFloat(f[1])),u=u.substr(f[0].length);if(u!=="")return undefined;var v=t[0],o=v.srsName,s="enu";if(o&&(h=ol.proj.get(o),s=h.getAxisOrientation()),s==="neu")for(r=0,c=i.length;r<c;r+=3)l=i[r],a=i[r+1],i[r]=a,i[r+1]=l;return(e=i.length,e==2&&i.push(0),e===0)?undefined:i},ol.format.GML3.prototype.readFlatPosList_=function(n,t){var p=ol.xml.getAllTextContent(n,!1).replace(/^\s*|\s*$/g,""),h=t[0],c=h.srsName,l=h.srsDimension,a="enu",v,u,i,e,o,s,f,r,y;for(c&&(v=ol.proj.get(c),a=v.getAxisOrientation()),u=p.split(/\s+/),i=2,n.getAttribute("srsDimension")?i=ol.format.XSD.readNonNegativeIntegerString(n.getAttribute("srsDimension")):n.getAttribute("dimension")?i=ol.format.XSD.readNonNegativeIntegerString(n.getAttribute("dimension")):n.parentNode.getAttribute("srsDimension")?i=ol.format.XSD.readNonNegativeIntegerString(n.parentNode.getAttribute("srsDimension")):l&&(i=ol.format.XSD.readNonNegativeIntegerString(l)),f=[],r=0,y=u.length;r<y;r+=i)e=parseFloat(u[r]),o=parseFloat(u[r+1]),s=i===3?parseFloat(u[r+2]):0,a.substr(0,2)==="en"?f.push(e,o,s):f.push(o,e,s);return f},ol.format.GML3.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS_={"http://www.opengis.net/gml":{pos:ol.xml.makeReplacer(ol.format.GML3.prototype.readFlatPos_),posList:ol.xml.makeReplacer(ol.format.GML3.prototype.readFlatPosList_)}},ol.format.GML3.prototype.FLAT_LINEAR_RINGS_PARSERS_={"http://www.opengis.net/gml":{interior:ol.format.GML3.prototype.interiorParser_,exterior:ol.format.GML3.prototype.exteriorParser_}},ol.format.GML3.prototype.GEOMETRY_PARSERS_={"http://www.opengis.net/gml":{Point:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readPoint),MultiPoint:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readMultiPoint),LineString:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readLineString),MultiLineString:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readMultiLineString),LinearRing:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readLinearRing),Polygon:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readPolygon),MultiPolygon:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readMultiPolygon),Surface:ol.xml.makeReplacer(ol.format.GML3.prototype.readSurface_),MultiSurface:ol.xml.makeReplacer(ol.format.GML3.prototype.readMultiSurface_),Curve:ol.xml.makeReplacer(ol.format.GML3.prototype.readCurve_),MultiCurve:ol.xml.makeReplacer(ol.format.GML3.prototype.readMultiCurve_),Envelope:ol.xml.makeReplacer(ol.format.GML3.prototype.readEnvelope_)}},ol.format.GML3.prototype.MULTICURVE_PARSERS_={"http://www.opengis.net/gml":{curveMember:ol.xml.makeArrayPusher(ol.format.GML3.prototype.curveMemberParser_),curveMembers:ol.xml.makeArrayPusher(ol.format.GML3.prototype.curveMemberParser_)}},ol.format.GML3.prototype.MULTISURFACE_PARSERS_={"http://www.opengis.net/gml":{surfaceMember:ol.xml.makeArrayPusher(ol.format.GML3.prototype.surfaceMemberParser_),surfaceMembers:ol.xml.makeArrayPusher(ol.format.GML3.prototype.surfaceMemberParser_)}},ol.format.GML3.prototype.CURVEMEMBER_PARSERS_={"http://www.opengis.net/gml":{LineString:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readLineString),Curve:ol.xml.makeArrayPusher(ol.format.GML3.prototype.readCurve_)}},ol.format.GML3.prototype.SURFACEMEMBER_PARSERS_={"http://www.opengis.net/gml":{Polygon:ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readPolygon),Surface:ol.xml.makeArrayPusher(ol.format.GML3.prototype.readSurface_)}},ol.format.GML3.prototype.SURFACE_PARSERS_={"http://www.opengis.net/gml":{patches:ol.xml.makeReplacer(ol.format.GML3.prototype.readPatch_)}},ol.format.GML3.prototype.CURVE_PARSERS_={"http://www.opengis.net/gml":{segments:ol.xml.makeReplacer(ol.format.GML3.prototype.readSegment_)}},ol.format.GML3.prototype.ENVELOPE_PARSERS_={"http://www.opengis.net/gml":{lowerCorner:ol.xml.makeArrayPusher(ol.format.GML3.prototype.readFlatPosList_),upperCorner:ol.xml.makeArrayPusher(ol.format.GML3.prototype.readFlatPosList_)}},ol.format.GML3.prototype.PATCHES_PARSERS_={"http://www.opengis.net/gml":{PolygonPatch:ol.xml.makeReplacer(ol.format.GML3.prototype.readPolygonPatch_)}},ol.format.GML3.prototype.SEGMENTS_PARSERS_={"http://www.opengis.net/gml":{LineStringSegment:ol.xml.makeReplacer(ol.format.GML3.prototype.readLineStringSegment_)}},ol.format.GML3.prototype.writePos_=function(n,t,i){var o=i[i.length-1],s=o.hasZ,c=s?3:2,u,f,r,e,h;n.setAttribute("srsDimension",c);u=o.srsName;f="enu";u&&(f=ol.proj.get(u).getAxisOrientation());r=t.getCoordinates();e=f.substr(0,2)==="en"?r[0]+" "+r[1]:r[1]+" "+r[0];s&&(h=r[2]||0,e+=" "+h);ol.format.XSD.writeStringTextNode(n,e)},ol.format.GML3.prototype.getCoords_=function(n,t,i){var u="enu",r,f;return t&&(u=ol.proj.get(t).getAxisOrientation()),r=u.substr(0,2)==="en"?n[0]+" "+n[1]:n[1]+" "+n[0],i&&(f=n[2]||0,r+=" "+f),r},ol.format.GML3.prototype.writePosList_=function(n,t,i){var u=i[i.length-1],f=u.hasZ,c=f?3:2,r;n.setAttribute("srsDimension",c);var l=u.srsName,e=t.getCoordinates(),o=e.length,s=new Array(o),h;for(r=0;r<o;++r)h=e[r],s[r]=this.getCoords_(h,l,f);ol.format.XSD.writeStringTextNode(n,s.join(" "))},ol.format.GML3.prototype.writePoint_=function(n,t,i){var f=i[i.length-1],u=f.srsName,r;u&&n.setAttribute("srsName",u);r=ol.xml.createElementNS(n.namespaceURI,"pos");n.appendChild(r);this.writePos_(r,t,i)},ol.format.GML3.ENVELOPE_SERIALIZERS_={"http://www.opengis.net/gml":{lowerCorner:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),upperCorner:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)}},ol.format.GML3.prototype.writeEnvelope=function(n,t,i){var e=i[i.length-1],r=e.srsName,u,f;r&&n.setAttribute("srsName",r);u=["lowerCorner","upperCorner"];f=[t[0]+" "+t[1],t[2]+" "+t[3]];ol.xml.pushSerializeAndPop({node:n},ol.format.GML3.ENVELOPE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,f,i,u,this)},ol.format.GML3.prototype.writeLinearRing_=function(n,t,i){var f=i[i.length-1],u=f.srsName,r;u&&n.setAttribute("srsName",u);r=ol.xml.createElementNS(n.namespaceURI,"posList");n.appendChild(r);this.writePosList_(r,t,i)},ol.format.GML3.prototype.RING_NODE_FACTORY_=function(n,t){var i=t[t.length-1],u=i.node,r=i.exteriorWritten;return r===undefined&&(i.exteriorWritten=!0),ol.xml.createElementNS(u.namespaceURI,r!==undefined?"interior":"exterior")},ol.format.GML3.prototype.writeSurfaceOrPolygon_=function(n,t,i){var f=i[i.length-1],o=f.hasZ,r=f.srsName,e,u;n.nodeName!=="PolygonPatch"&&r&&n.setAttribute("srsName",r);n.nodeName==="Polygon"||n.nodeName==="PolygonPatch"?(e=t.getLinearRings(),ol.xml.pushSerializeAndPop({node:n,hasZ:o,srsName:r},ol.format.GML3.RING_SERIALIZERS_,this.RING_NODE_FACTORY_,e,i,undefined,this)):n.nodeName==="Surface"&&(u=ol.xml.createElementNS(n.namespaceURI,"patches"),n.appendChild(u),this.writeSurfacePatches_(u,t,i))},ol.format.GML3.prototype.writeCurveOrLineString_=function(n,t,i){var e=i[i.length-1],f=e.srsName,r,u;n.nodeName!=="LineStringSegment"&&f&&n.setAttribute("srsName",f);n.nodeName==="LineString"||n.nodeName==="LineStringSegment"?(r=ol.xml.createElementNS(n.namespaceURI,"posList"),n.appendChild(r),this.writePosList_(r,t,i)):n.nodeName==="Curve"&&(u=ol.xml.createElementNS(n.namespaceURI,"segments"),n.appendChild(u),this.writeCurveSegments_(u,t,i))},ol.format.GML3.prototype.writeMultiSurfaceOrPolygon_=function(n,t,i){var r=i[i.length-1],e=r.hasZ,u=r.srsName,o=r.surface,f;u&&n.setAttribute("srsName",u);f=t.getPolygons();ol.xml.pushSerializeAndPop({node:n,hasZ:e,srsName:u,surface:o},ol.format.GML3.SURFACEORPOLYGONMEMBER_SERIALIZERS_,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,f,i,undefined,this)},ol.format.GML3.prototype.writeMultiPoint_=function(n,t,i){var u=i[i.length-1],r=u.srsName,e=u.hasZ,f;r&&n.setAttribute("srsName",r);f=t.getPoints();ol.xml.pushSerializeAndPop({node:n,hasZ:e,srsName:r},ol.format.GML3.POINTMEMBER_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("pointMember"),f,i,undefined,this)},ol.format.GML3.prototype.writeMultiCurveOrLineString_=function(n,t,i){var r=i[i.length-1],e=r.hasZ,u=r.srsName,o=r.curve,f;u&&n.setAttribute("srsName",u);f=t.getLineStrings();ol.xml.pushSerializeAndPop({node:n,hasZ:e,srsName:u,curve:o},ol.format.GML3.LINESTRINGORCURVEMEMBER_SERIALIZERS_,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,f,i,undefined,this)},ol.format.GML3.prototype.writeRing_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"LinearRing");n.appendChild(r);this.writeLinearRing_(r,t,i)},ol.format.GML3.prototype.writeSurfaceOrPolygonMember_=function(n,t,i){var r=this.GEOMETRY_NODE_FACTORY_(t,i);r&&(n.appendChild(r),this.writeSurfaceOrPolygon_(r,t,i))},ol.format.GML3.prototype.writePointMember_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"Point");n.appendChild(r);this.writePoint_(r,t,i)},ol.format.GML3.prototype.writeLineStringOrCurveMember_=function(n,t,i){var r=this.GEOMETRY_NODE_FACTORY_(t,i);r&&(n.appendChild(r),this.writeCurveOrLineString_(r,t,i))},ol.format.GML3.prototype.writeSurfacePatches_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"PolygonPatch");n.appendChild(r);this.writeSurfaceOrPolygon_(r,t,i)},ol.format.GML3.prototype.writeCurveSegments_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"LineStringSegment");n.appendChild(r);this.writeCurveOrLineString_(r,t,i)},ol.format.GML3.prototype.writeGeometryElement=function(n,t,i){var r=i[i.length-1],u=ol.obj.assign({},r),f;u.node=n;f=Array.isArray(t)?r.dataProjection?ol.proj.transformExtent(t,r.featureProjection,r.dataProjection):t:ol.format.Feature.transformWithOptions(t,!0,r);ol.xml.pushSerializeAndPop(u,ol.format.GML3.GEOMETRY_SERIALIZERS_,this.GEOMETRY_NODE_FACTORY_,[f],i,undefined,this)},ol.format.GML3.prototype.writeFeatureElement=function(n,t,i){var s=t.getId(),u,e,o;s&&n.setAttribute("fid",s);var r=i[i.length-1],f=r.featureNS,a=t.getGeometryName();r.serializers||(r.serializers={},r.serializers[f]={});var h=t.getProperties(),c=[],l=[];for(u in h)e=h[u],e!==null&&(c.push(u),l.push(e),u==a||e instanceof ol.geom.Geometry?u in r.serializers[f]||(r.serializers[f][u]=ol.xml.makeChildAppender(this.writeGeometryElement,this)):u in r.serializers[f]||(r.serializers[f][u]=ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)));o=ol.obj.assign({},r);o.node=n;ol.xml.pushSerializeAndPop(o,r.serializers,ol.xml.makeSimpleNodeFactory(undefined,f),l,i,c)},ol.format.GML3.prototype.writeFeatureMembers_=function(n,t,i){var r=i[i.length-1],o=r.featureType,u=r.featureNS,f={},e;f[u]={};f[u][o]=ol.xml.makeChildAppender(this.writeFeatureElement,this);e=ol.obj.assign({},r);e.node=n;ol.xml.pushSerializeAndPop(e,f,ol.xml.makeSimpleNodeFactory(o,u),t,i)},ol.format.GML3.SURFACEORPOLYGONMEMBER_SERIALIZERS_={"http://www.opengis.net/gml":{surfaceMember:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeSurfaceOrPolygonMember_),polygonMember:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeSurfaceOrPolygonMember_)}},ol.format.GML3.POINTMEMBER_SERIALIZERS_={"http://www.opengis.net/gml":{pointMember:ol.xml.makeChildAppender(ol.format.GML3.prototype.writePointMember_)}},ol.format.GML3.LINESTRINGORCURVEMEMBER_SERIALIZERS_={"http://www.opengis.net/gml":{lineStringMember:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeLineStringOrCurveMember_),curveMember:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeLineStringOrCurveMember_)}},ol.format.GML3.RING_SERIALIZERS_={"http://www.opengis.net/gml":{exterior:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeRing_),interior:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeRing_)}},ol.format.GML3.GEOMETRY_SERIALIZERS_={"http://www.opengis.net/gml":{Curve:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeCurveOrLineString_),MultiCurve:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeMultiCurveOrLineString_),Point:ol.xml.makeChildAppender(ol.format.GML3.prototype.writePoint_),MultiPoint:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeMultiPoint_),LineString:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeCurveOrLineString_),MultiLineString:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeMultiCurveOrLineString_),LinearRing:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeLinearRing_),Polygon:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeSurfaceOrPolygon_),MultiPolygon:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeMultiSurfaceOrPolygon_),Surface:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeSurfaceOrPolygon_),MultiSurface:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeMultiSurfaceOrPolygon_),Envelope:ol.xml.makeChildAppender(ol.format.GML3.prototype.writeEnvelope)}},ol.format.GML3.MULTIGEOMETRY_TO_MEMBER_NODENAME_={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"},ol.format.GML3.prototype.MULTIGEOMETRY_MEMBER_NODE_FACTORY_=function(n,t){var i=t[t.length-1].node;return ol.xml.createElementNS("http://www.opengis.net/gml",ol.format.GML3.MULTIGEOMETRY_TO_MEMBER_NODENAME_[i.nodeName])},ol.format.GML3.prototype.GEOMETRY_NODE_FACTORY_=function(n,t){var r=t[t.length-1],u=r.multiSurface,f=r.surface,e=r.curve,o=r.multiCurve,i;return Array.isArray(n)?i="Envelope":(i=n.getType(),i==="MultiPolygon"&&u===!0?i="MultiSurface":i==="Polygon"&&f===!0?i="Surface":i==="LineString"&&e===!0?i="Curve":i==="MultiLineString"&&o===!0&&(i="MultiCurve")),ol.xml.createElementNS("http://www.opengis.net/gml",i)},ol.format.GML3.prototype.writeGeometryNode=function(n,t){t=this.adaptOptions(t);var i=ol.xml.createElementNS("http://www.opengis.net/gml","geom"),r={node:i,hasZ:this.hasZ,srsName:this.srsName,curve:this.curve_,surface:this.surface_,multiSurface:this.multiSurface_,multiCurve:this.multiCurve_};return t&&ol.obj.assign(r,t),this.writeGeometryElement(i,n,[r]),i},ol.format.GML3.prototype.writeFeatures,ol.format.GML3.prototype.writeFeaturesNode=function(n,t){var i,r;return t=this.adaptOptions(t),i=ol.xml.createElementNS("http://www.opengis.net/gml","featureMembers"),ol.xml.setAttributeNS(i,"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.schemaLocation),r={srsName:this.srsName,hasZ:this.hasZ,curve:this.curve_,surface:this.surface_,multiSurface:this.multiSurface_,multiCurve:this.multiCurve_,featureNS:this.featureNS,featureType:this.featureType},t&&ol.obj.assign(r,t),this.writeFeatureMembers_(i,n,[r]),i},n.provide("ol.format.GML"),n.require("ol.format.GML3"),ol.format.GML=ol.format.GML3,ol.format.GML.prototype.writeFeatures,ol.format.GML.prototype.writeFeaturesNode,n.provide("ol.format.GML2"),n.require("ol"),n.require("ol.extent"),n.require("ol.format.Feature"),n.require("ol.format.GMLBase"),n.require("ol.format.XSD"),n.require("ol.geom.Geometry"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.xml"),ol.format.GML2=function(n){var t=n?n:{};ol.format.GMLBase.call(this,t);this.FEATURE_COLLECTION_PARSERS[ol.format.GMLBase.GMLNS].featureMember=ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readFeaturesInternal);this.schemaLocation=t.schemaLocation?t.schemaLocation:ol.format.GML2.schemaLocation_},ol.inherits(ol.format.GML2,ol.format.GMLBase),ol.format.GML2.schemaLocation_=ol.format.GMLBase.GMLNS+" http://schemas.opengis.net/gml/2.1.2/feature.xsd",ol.format.GML2.prototype.readFlatCoordinates_=function(n,t){var v=ol.xml.getAllTextContent(n,!1).replace(/^\s*|\s*$/g,""),y=t[0],c=y.srsName,l="enu",f,e,o,s,h,r,u,a,i;for(c&&(f=ol.proj.get(c),f&&(l=f.getAxisOrientation())),e=v.trim().split(/\s+/),r=[],u=0,a=e.length;u<a;u++)i=e[u].split(/,+/),o=parseFloat(i[0]),s=parseFloat(i[1]),h=i.length===3?parseFloat(i[2]):0,l.substr(0,2)==="en"?r.push(o,s,h):r.push(s,o,h);return r},ol.format.GML2.prototype.readBox_=function(n,t){var i=ol.xml.pushParseAndPop([null],this.BOX_PARSERS_,n,t,this);return ol.extent.createOrUpdate(i[1][0],i[1][1],i[1][3],i[1][4])},ol.format.GML2.prototype.innerBoundaryIsParser_=function(n,t){var i=ol.xml.pushParseAndPop(undefined,this.RING_PARSERS,n,t,this),r;i&&(r=t[t.length-1],r.push(i))},ol.format.GML2.prototype.outerBoundaryIsParser_=function(n,t){var i=ol.xml.pushParseAndPop(undefined,this.RING_PARSERS,n,t,this),r;i&&(r=t[t.length-1],r[0]=i)},ol.format.GML2.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS_={"http://www.opengis.net/gml":{coordinates:ol.xml.makeReplacer(ol.format.GML2.prototype.readFlatCoordinates_)}},ol.format.GML2.prototype.FLAT_LINEAR_RINGS_PARSERS_={"http://www.opengis.net/gml":{innerBoundaryIs:ol.format.GML2.prototype.innerBoundaryIsParser_,outerBoundaryIs:ol.format.GML2.prototype.outerBoundaryIsParser_}},ol.format.GML2.prototype.BOX_PARSERS_={"http://www.opengis.net/gml":{coordinates:ol.xml.makeArrayPusher(ol.format.GML2.prototype.readFlatCoordinates_)}},ol.format.GML2.prototype.GEOMETRY_PARSERS_={"http://www.opengis.net/gml":{Point:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readPoint),MultiPoint:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readMultiPoint),LineString:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readLineString),MultiLineString:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readMultiLineString),LinearRing:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readLinearRing),Polygon:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readPolygon),MultiPolygon:ol.xml.makeReplacer(ol.format.GMLBase.prototype.readMultiPolygon),Box:ol.xml.makeReplacer(ol.format.GML2.prototype.readBox_)}},ol.format.GML2.prototype.GEOMETRY_NODE_FACTORY_=function(n,t){var r=t[t.length-1],u=r.multiSurface,f=r.surface,e=r.multiCurve,i;return Array.isArray(n)?i="Envelope":(i=n.getType(),i==="MultiPolygon"&&u===!0?i="MultiSurface":i==="Polygon"&&f===!0?i="Surface":i==="MultiLineString"&&e===!0&&(i="MultiCurve")),ol.xml.createElementNS("http://www.opengis.net/gml",i)},ol.format.GML2.prototype.writeFeatureElement=function(n,t,i){var s=t.getId(),u,e,o;s&&n.setAttribute("fid",s);var r=i[i.length-1],f=r.featureNS,a=t.getGeometryName();r.serializers||(r.serializers={},r.serializers[f]={});var h=t.getProperties(),c=[],l=[];for(u in h)e=h[u],e!==null&&(c.push(u),l.push(e),u==a||e instanceof ol.geom.Geometry?u in r.serializers[f]||(r.serializers[f][u]=ol.xml.makeChildAppender(this.writeGeometryElement,this)):u in r.serializers[f]||(r.serializers[f][u]=ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)));o=ol.obj.assign({},r);o.node=n;ol.xml.pushSerializeAndPop(o,r.serializers,ol.xml.makeSimpleNodeFactory(undefined,f),l,i,c)},ol.format.GML2.prototype.writeGeometryElement=function(n,t,i){var r=i[i.length-1],u=ol.obj.assign({},r),f;u.node=n;f=Array.isArray(t)?r.dataProjection?ol.proj.transformExtent(t,r.featureProjection,r.dataProjection):t:ol.format.Feature.transformWithOptions(t,!0,r);ol.xml.pushSerializeAndPop(u,ol.format.GML2.GEOMETRY_SERIALIZERS_,this.GEOMETRY_NODE_FACTORY_,[f],i,undefined,this)},ol.format.GML2.prototype.writeCurveOrLineString_=function(n,t,i){var e=i[i.length-1],f=e.srsName,r,u;n.nodeName!=="LineStringSegment"&&f&&n.setAttribute("srsName",f);n.nodeName==="LineString"||n.nodeName==="LineStringSegment"?(r=this.createCoordinatesNode_(n.namespaceURI),n.appendChild(r),this.writeCoordinates_(r,t,i)):n.nodeName==="Curve"&&(u=ol.xml.createElementNS(n.namespaceURI,"segments"),n.appendChild(u),this.writeCurveSegments_(u,t,i))},ol.format.GML2.prototype.createCoordinatesNode_=function(n){var t=ol.xml.createElementNS(n,"coordinates");return t.setAttribute("decimal","."),t.setAttribute("cs",","),t.setAttribute("ts"," "),t},ol.format.GML2.prototype.writeCoordinates_=function(n,t,i){for(var u=i[i.length-1],h=u.hasZ,c=u.srsName,f=t.getCoordinates(),e=f.length,o=new Array(e),s,r=0;r<e;++r)s=f[r],o[r]=this.getCoords_(s,c,h);ol.format.XSD.writeStringTextNode(n,o.join(" "))},ol.format.GML2.prototype.writeCurveSegments_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"LineStringSegment");n.appendChild(r);this.writeCurveOrLineString_(r,t,i)},ol.format.GML2.prototype.writeSurfaceOrPolygon_=function(n,t,i){var f=i[i.length-1],o=f.hasZ,r=f.srsName,e,u;n.nodeName!=="PolygonPatch"&&r&&n.setAttribute("srsName",r);n.nodeName==="Polygon"||n.nodeName==="PolygonPatch"?(e=t.getLinearRings(),ol.xml.pushSerializeAndPop({node:n,hasZ:o,srsName:r},ol.format.GML2.RING_SERIALIZERS_,this.RING_NODE_FACTORY_,e,i,undefined,this)):n.nodeName==="Surface"&&(u=ol.xml.createElementNS(n.namespaceURI,"patches"),n.appendChild(u),this.writeSurfacePatches_(u,t,i))},ol.format.GML2.prototype.RING_NODE_FACTORY_=function(n,t){var i=t[t.length-1],u=i.node,r=i.exteriorWritten;return r===undefined&&(i.exteriorWritten=!0),ol.xml.createElementNS(u.namespaceURI,r!==undefined?"innerBoundaryIs":"outerBoundaryIs")},ol.format.GML2.prototype.writeSurfacePatches_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"PolygonPatch");n.appendChild(r);this.writeSurfaceOrPolygon_(r,t,i)},ol.format.GML2.prototype.writeRing_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"LinearRing");n.appendChild(r);this.writeLinearRing_(r,t,i)},ol.format.GML2.prototype.getCoords_=function(n,t,i){var u="enu",r,f;return t&&(u=ol.proj.get(t).getAxisOrientation()),r=u.substr(0,2)==="en"?n[0]+","+n[1]:n[1]+","+n[0],i&&(f=n[2]||0,r+=","+f),r},ol.format.GML2.prototype.writeMultiCurveOrLineString_=function(n,t,i){var r=i[i.length-1],e=r.hasZ,u=r.srsName,o=r.curve,f;u&&n.setAttribute("srsName",u);f=t.getLineStrings();ol.xml.pushSerializeAndPop({node:n,hasZ:e,srsName:u,curve:o},ol.format.GML2.LINESTRINGORCURVEMEMBER_SERIALIZERS_,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,f,i,undefined,this)},ol.format.GML2.prototype.writePoint_=function(n,t,i){var f=i[i.length-1],s=f.hasZ,r=f.srsName,u,e,o;r&&n.setAttribute("srsName",r);u=this.createCoordinatesNode_(n.namespaceURI);n.appendChild(u);e=t.getCoordinates();o=this.getCoords_(e,r,s);ol.format.XSD.writeStringTextNode(u,o)},ol.format.GML2.prototype.writeMultiPoint_=function(n,t,i){var u=i[i.length-1],e=u.hasZ,r=u.srsName,f;r&&n.setAttribute("srsName",r);f=t.getPoints();ol.xml.pushSerializeAndPop({node:n,hasZ:e,srsName:r},ol.format.GML2.POINTMEMBER_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("pointMember"),f,i,undefined,this)},ol.format.GML2.prototype.writePointMember_=function(n,t,i){var r=ol.xml.createElementNS(n.namespaceURI,"Point");n.appendChild(r);this.writePoint_(r,t,i)},ol.format.GML2.prototype.writeLineStringOrCurveMember_=function(n,t,i){var r=this.GEOMETRY_NODE_FACTORY_(t,i);r&&(n.appendChild(r),this.writeCurveOrLineString_(r,t,i))},ol.format.GML2.prototype.writeLinearRing_=function(n,t,i){var f=i[i.length-1],u=f.srsName,r;u&&n.setAttribute("srsName",u);r=this.createCoordinatesNode_(n.namespaceURI);n.appendChild(r);this.writeCoordinates_(r,t,i)},ol.format.GML2.prototype.writeMultiSurfaceOrPolygon_=function(n,t,i){var r=i[i.length-1],e=r.hasZ,u=r.srsName,o=r.surface,f;u&&n.setAttribute("srsName",u);f=t.getPolygons();ol.xml.pushSerializeAndPop({node:n,hasZ:e,srsName:u,surface:o},ol.format.GML2.SURFACEORPOLYGONMEMBER_SERIALIZERS_,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,f,i,undefined,this)},ol.format.GML2.prototype.writeSurfaceOrPolygonMember_=function(n,t,i){var r=this.GEOMETRY_NODE_FACTORY_(t,i);r&&(n.appendChild(r),this.writeSurfaceOrPolygon_(r,t,i))},ol.format.GML2.prototype.writeEnvelope=function(n,t,i){var e=i[i.length-1],r=e.srsName,u,f;r&&n.setAttribute("srsName",r);u=["lowerCorner","upperCorner"];f=[t[0]+" "+t[1],t[2]+" "+t[3]];ol.xml.pushSerializeAndPop({node:n},ol.format.GML2.ENVELOPE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,f,i,u,this)},ol.format.GML2.GEOMETRY_SERIALIZERS_={"http://www.opengis.net/gml":{Curve:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeCurveOrLineString_),MultiCurve:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeMultiCurveOrLineString_),Point:ol.xml.makeChildAppender(ol.format.GML2.prototype.writePoint_),MultiPoint:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeMultiPoint_),LineString:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeCurveOrLineString_),MultiLineString:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeMultiCurveOrLineString_),LinearRing:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeLinearRing_),Polygon:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeSurfaceOrPolygon_),MultiPolygon:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeMultiSurfaceOrPolygon_),Surface:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeSurfaceOrPolygon_),MultiSurface:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeMultiSurfaceOrPolygon_),Envelope:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeEnvelope)}},ol.format.GML2.RING_SERIALIZERS_={"http://www.opengis.net/gml":{outerBoundaryIs:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeRing_),innerBoundaryIs:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeRing_)}},ol.format.GML2.POINTMEMBER_SERIALIZERS_={"http://www.opengis.net/gml":{pointMember:ol.xml.makeChildAppender(ol.format.GML2.prototype.writePointMember_)}},ol.format.GML2.LINESTRINGORCURVEMEMBER_SERIALIZERS_={"http://www.opengis.net/gml":{lineStringMember:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeLineStringOrCurveMember_),curveMember:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeLineStringOrCurveMember_)}},ol.format.GML2.prototype.MULTIGEOMETRY_MEMBER_NODE_FACTORY_=function(n,t){var i=t[t.length-1].node;return ol.xml.createElementNS("http://www.opengis.net/gml",ol.format.GML2.MULTIGEOMETRY_TO_MEMBER_NODENAME_[i.nodeName])},ol.format.GML2.MULTIGEOMETRY_TO_MEMBER_NODENAME_={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"},ol.format.GML2.SURFACEORPOLYGONMEMBER_SERIALIZERS_={"http://www.opengis.net/gml":{surfaceMember:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeSurfaceOrPolygonMember_),polygonMember:ol.xml.makeChildAppender(ol.format.GML2.prototype.writeSurfaceOrPolygonMember_)}},ol.format.GML2.ENVELOPE_SERIALIZERS_={"http://www.opengis.net/gml":{lowerCorner:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),upperCorner:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)}},n.provide("ol.format.GPX"),n.require("ol"),n.require("ol.Feature"),n.require("ol.array"),n.require("ol.format.Feature"),n.require("ol.format.XMLFeature"),n.require("ol.format.XSD"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.Point"),n.require("ol.proj"),n.require("ol.xml"),ol.format.GPX=function(n){var t=n?n:{};ol.format.XMLFeature.call(this);this.defaultDataProjection=ol.proj.get("EPSG:4326");this.readExtensions_=t.readExtensions},ol.inherits(ol.format.GPX,ol.format.XMLFeature),ol.format.GPX.NAMESPACE_URIS_=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"],ol.format.GPX.SCHEMA_LOCATION_="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd",ol.format.GPX.appendCoordinate_=function(n,t,i,r){return n.push(parseFloat(i.getAttribute("lon")),parseFloat(i.getAttribute("lat"))),"ele"in r?(n.push(r.ele),delete r.ele,t.hasZ=!0):n.push(0),"time"in r?(n.push(r.time),delete r.time,t.hasM=!0):n.push(0),n},ol.format.GPX.applyLayoutOptions_=function(n,t,i){var f=ol.geom.GeometryLayout.XY,u=2,r,e;if(n.hasZ&&n.hasM?(f=ol.geom.GeometryLayout.XYZM,u=4):n.hasZ?(f=ol.geom.GeometryLayout.XYZ,u=3):n.hasM&&(f=ol.geom.GeometryLayout.XYM,u=3),u!==4){for(r=0,e=t.length/4;r<e;r++)t[r*u]=t[r*4],t[r*u+1]=t[r*4+1],n.hasZ&&(t[r*u+2]=t[r*4+2]),n.hasM&&(t[r*u+2]=t[r*4+3]);if(t.length=t.length/4*u,i)for(r=0,e=i.length;r<e;r++)i[r]=i[r]/4*u}return f},ol.format.GPX.parseLink_=function(n,t){var r=t[t.length-1],i=n.getAttribute("href");i!==null&&(r.link=i);ol.xml.parseNode(ol.format.GPX.LINK_PARSERS_,n,t)},ol.format.GPX.parseExtensions_=function(n,t){var i=t[t.length-1];i.extensionsNode_=n},ol.format.GPX.parseRtePt_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.GPX.RTEPT_PARSERS_,n,t);if(i){var r=t[t.length-1],u=r.flatCoordinates,f=r.layoutOptions;ol.format.GPX.appendCoordinate_(u,f,n,i)}},ol.format.GPX.parseTrkPt_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.GPX.TRKPT_PARSERS_,n,t);if(i){var r=t[t.length-1],u=r.flatCoordinates,f=r.layoutOptions;ol.format.GPX.appendCoordinate_(u,f,n,i)}},ol.format.GPX.parseTrkSeg_=function(n,t){var i=t[t.length-1],r,u;ol.xml.parseNode(ol.format.GPX.TRKSEG_PARSERS_,n,t);r=i.flatCoordinates;u=i.ends;u.push(r.length)},ol.format.GPX.readRte_=function(n,t){var s=t[0],i=ol.xml.pushParseAndPop({flatCoordinates:[],layoutOptions:{}},ol.format.GPX.RTE_PARSERS_,n,t),u,e,o,r,f;return i?(u=i.flatCoordinates,delete i.flatCoordinates,e=i.layoutOptions,delete i.layoutOptions,o=ol.format.GPX.applyLayoutOptions_(e,u),r=new ol.geom.LineString(null),r.setFlatCoordinates(o,u),ol.format.Feature.transformWithOptions(r,!1,s),f=new ol.Feature(r),f.setProperties(i),f):undefined},ol.format.GPX.readTrk_=function(n,t){var h=t[0],i=ol.xml.pushParseAndPop({flatCoordinates:[],ends:[],layoutOptions:{}},ol.format.GPX.TRK_PARSERS_,n,t),u,f,o,s,r,e;return i?(u=i.flatCoordinates,delete i.flatCoordinates,f=i.ends,delete i.ends,o=i.layoutOptions,delete i.layoutOptions,s=ol.format.GPX.applyLayoutOptions_(o,u,f),r=new ol.geom.MultiLineString(null),r.setFlatCoordinates(s,u,f),ol.format.Feature.transformWithOptions(r,!1,h),e=new ol.Feature(r),e.setProperties(i),e):undefined},ol.format.GPX.readWpt_=function(n,t){var o=t[0],i=ol.xml.pushParseAndPop({},ol.format.GPX.WPT_PARSERS_,n,t),r;if(!i)return undefined;var u={},f=ol.format.GPX.appendCoordinate_([],u,n,i),s=ol.format.GPX.applyLayoutOptions_(u,f),e=new ol.geom.Point(f,s);return ol.format.Feature.transformWithOptions(e,!1,o),r=new ol.Feature(e),r.setProperties(i),r},ol.format.GPX.FEATURE_READER_={rte:ol.format.GPX.readRte_,trk:ol.format.GPX.readTrk_,wpt:ol.format.GPX.readWpt_},ol.format.GPX.GPX_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{rte:ol.xml.makeArrayPusher(ol.format.GPX.readRte_),trk:ol.xml.makeArrayPusher(ol.format.GPX.readTrk_),wpt:ol.xml.makeArrayPusher(ol.format.GPX.readWpt_)}),ol.format.GPX.LINK_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{text:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString,"linkText"),type:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString,"linkType")}),ol.format.GPX.RTE_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),cmt:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),desc:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),src:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),link:ol.format.GPX.parseLink_,number:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),extensions:ol.format.GPX.parseExtensions_,type:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),rtept:ol.format.GPX.parseRtePt_}),ol.format.GPX.RTEPT_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{ele:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),time:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDateTime)}),ol.format.GPX.TRK_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),cmt:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),desc:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),src:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),link:ol.format.GPX.parseLink_,number:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),type:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),extensions:ol.format.GPX.parseExtensions_,trkseg:ol.format.GPX.parseTrkSeg_}),ol.format.GPX.TRKSEG_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{trkpt:ol.format.GPX.parseTrkPt_}),ol.format.GPX.TRKPT_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{ele:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),time:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDateTime)}),ol.format.GPX.WPT_PARSERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{ele:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),time:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDateTime),magvar:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),geoidheight:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),cmt:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),desc:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),src:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),link:ol.format.GPX.parseLink_,sym:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),type:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),fix:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),sat:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),hdop:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),vdop:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),pdop:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),ageofdgpsdata:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),dgpsid:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),extensions:ol.format.GPX.parseExtensions_}),ol.format.GPX.prototype.handleReadExtensions_=function(n){var t,r,i,u;for(n||(n=[]),t=0,r=n.length;t<r;++t)i=n[t],this.readExtensions_&&(u=i.get("extensionsNode_")||null,this.readExtensions_(i,u)),i.set("extensionsNode_",undefined)},ol.format.GPX.prototype.readFeature,ol.format.GPX.prototype.readFeatureFromNode=function(n,t){var r,i;return ol.array.includes(ol.format.GPX.NAMESPACE_URIS_,n.namespaceURI)?(r=ol.format.GPX.FEATURE_READER_[n.localName],!r)?null:(i=r(n,[this.getReadOptions(n,t)]),!i)?null:(this.handleReadExtensions_([i]),i):null},ol.format.GPX.prototype.readFeatures,ol.format.GPX.prototype.readFeaturesFromNode=function(n,t){if(!ol.array.includes(ol.format.GPX.NAMESPACE_URIS_,n.namespaceURI))return[];if(n.localName=="gpx"){var i=ol.xml.pushParseAndPop([],ol.format.GPX.GPX_PARSERS_,n,[this.getReadOptions(n,t)]);return i?(this.handleReadExtensions_(i),i):[]}return[]},ol.format.GPX.prototype.readProjection,ol.format.GPX.writeLink_=function(n,t,i){n.setAttribute("href",t);var u=i[i.length-1],r=u.properties,f=[r.linkText,r.linkType];ol.xml.pushSerializeAndPop({node:n},ol.format.GPX.LINK_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,f,i,ol.format.GPX.LINK_SEQUENCE_)},ol.format.GPX.writeWptType_=function(n,t,i){var u=i[i.length-1],h=u.node,e=h.namespaceURI,r=u.properties,o,f,s;ol.xml.setAttributeNS(n,null,"lat",t[1]);ol.xml.setAttributeNS(n,null,"lon",t[0]);o=u.geometryLayout;switch(o){case ol.geom.GeometryLayout.XYZM:t[3]!==0&&(r.time=t[3]);case ol.geom.GeometryLayout.XYZ:t[2]!==0&&(r.ele=t[2]);break;case ol.geom.GeometryLayout.XYM:t[2]!==0&&(r.time=t[2])}f=n.nodeName=="rtept"?ol.format.GPX.RTEPT_TYPE_SEQUENCE_[e]:ol.format.GPX.WPT_TYPE_SEQUENCE_[e];s=ol.xml.makeSequence(r,f);ol.xml.pushSerializeAndPop({node:n,properties:r},ol.format.GPX.WPT_TYPE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,s,i,f)},ol.format.GPX.writeRte_=function(n,t,i){var o=i[0],u=t.getProperties(),f={node:n,properties:u},r=t.getGeometry();r&&(r=ol.format.Feature.transformWithOptions(r,!0,o),f.geometryLayout=r.getLayout(),u.rtept=r.getCoordinates());var s=i[i.length-1].node,e=ol.format.GPX.RTE_SEQUENCE_[s.namespaceURI],h=ol.xml.makeSequence(u,e);ol.xml.pushSerializeAndPop(f,ol.format.GPX.RTE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,h,i,e)},ol.format.GPX.writeTrk_=function(n,t,i){var e=i[0],u=t.getProperties(),o={node:n,properties:u},r=t.getGeometry();r&&(r=ol.format.Feature.transformWithOptions(r,!0,e),u.trkseg=r.getLineStrings());var s=i[i.length-1].node,f=ol.format.GPX.TRK_SEQUENCE_[s.namespaceURI],h=ol.xml.makeSequence(u,f);ol.xml.pushSerializeAndPop(o,ol.format.GPX.TRK_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,h,i,f)},ol.format.GPX.writeTrkSeg_=function(n,t,i){var r={node:n,geometryLayout:t.getLayout(),properties:{}};ol.xml.pushSerializeAndPop(r,ol.format.GPX.TRKSEG_SERIALIZERS_,ol.format.GPX.TRKSEG_NODE_FACTORY_,t.getCoordinates(),i)},ol.format.GPX.writeWpt_=function(n,t,i){var f=i[0],u=i[i.length-1],r;u.properties=t.getProperties();r=t.getGeometry();r&&(r=ol.format.Feature.transformWithOptions(r,!0,f),u.geometryLayout=r.getLayout(),ol.format.GPX.writeWptType_(n,r.getCoordinates(),i))},ol.format.GPX.LINK_SEQUENCE_=["text","type"],ol.format.GPX.LINK_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{text:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),type:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)}),ol.format.GPX.RTE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,["name","cmt","desc","src","link","number","type","rtept"]),ol.format.GPX.RTE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{name:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),cmt:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),desc:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),src:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),link:ol.xml.makeChildAppender(ol.format.GPX.writeLink_),number:ol.xml.makeChildAppender(ol.format.XSD.writeNonNegativeIntegerTextNode),type:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),rtept:ol.xml.makeArraySerializer(ol.xml.makeChildAppender(ol.format.GPX.writeWptType_))}),ol.format.GPX.RTEPT_TYPE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,["ele","time"]),ol.format.GPX.TRK_SEQUENCE_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,["name","cmt","desc","src","link","number","type","trkseg"]),ol.format.GPX.TRK_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{name:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),cmt:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),desc:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),src:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),link:ol.xml.makeChildAppender(ol.format.GPX.writeLink_),number:ol.xml.makeChildAppender(ol.format.XSD.writeNonNegativeIntegerTextNode),type:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),trkseg:ol.xml.makeArraySerializer(ol.xml.makeChildAppender(ol.format.GPX.writeTrkSeg_))}),ol.format.GPX.TRKSEG_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("trkpt"),ol.format.GPX.TRKSEG_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{trkpt:ol.xml.makeChildAppender(ol.format.GPX.writeWptType_)}),ol.format.GPX.WPT_TYPE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,["ele","time","magvar","geoidheight","name","cmt","desc","src","link","sym","type","fix","sat","hdop","vdop","pdop","ageofdgpsdata","dgpsid"]),ol.format.GPX.WPT_TYPE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{ele:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),time:ol.xml.makeChildAppender(ol.format.XSD.writeDateTimeTextNode),magvar:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),geoidheight:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),name:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),cmt:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),desc:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),src:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),link:ol.xml.makeChildAppender(ol.format.GPX.writeLink_),sym:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),type:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),fix:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),sat:ol.xml.makeChildAppender(ol.format.XSD.writeNonNegativeIntegerTextNode),hdop:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),vdop:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),pdop:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),ageofdgpsdata:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),dgpsid:ol.xml.makeChildAppender(ol.format.XSD.writeNonNegativeIntegerTextNode)}),ol.format.GPX.GEOMETRY_TYPE_TO_NODENAME_={Point:"wpt",LineString:"rte",MultiLineString:"trk"},ol.format.GPX.GPX_NODE_FACTORY_=function(n,t){var r=n.getGeometry(),i,u;if(r&&(i=ol.format.GPX.GEOMETRY_TYPE_TO_NODENAME_[r.getType()],i))return u=t[t.length-1].node,ol.xml.createElementNS(u.namespaceURI,i)},ol.format.GPX.GPX_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.GPX.NAMESPACE_URIS_,{rte:ol.xml.makeChildAppender(ol.format.GPX.writeRte_),trk:ol.xml.makeChildAppender(ol.format.GPX.writeTrk_),wpt:ol.xml.makeChildAppender(ol.format.GPX.writeWpt_)}),ol.format.GPX.prototype.writeFeatures,ol.format.GPX.prototype.writeFeaturesNode=function(n,t){t=this.adaptOptions(t);var i=ol.xml.createElementNS("http://www.topografix.com/GPX/1/1","gpx"),r="http://www.w3.org/2001/XMLSchema-instance";return ol.xml.setAttributeNS(i,"http://www.w3.org/2000/xmlns/","xmlns:xsi",r),ol.xml.setAttributeNS(i,r,"xsi:schemaLocation",ol.format.GPX.SCHEMA_LOCATION_),i.setAttribute("version","1.1"),i.setAttribute("creator","OpenLayers"),ol.xml.pushSerializeAndPop({node:i},ol.format.GPX.GPX_SERIALIZERS_,ol.format.GPX.GPX_NODE_FACTORY_,n,[t]),i},n.provide("ol.format.IGCZ"),ol.format.IGCZ={BAROMETRIC:"barometric",GPS:"gps",NONE:"none"},n.provide("ol.format.TextFeature"),n.require("ol"),n.require("ol.format.Feature"),n.require("ol.format.FormatType"),ol.format.TextFeature=function(){ol.format.Feature.call(this)},ol.inherits(ol.format.TextFeature,ol.format.Feature),ol.format.TextFeature.prototype.getText_=function(n){return typeof n=="string"?n:""},ol.format.TextFeature.prototype.getType=function(){return ol.format.FormatType.TEXT},ol.format.TextFeature.prototype.readFeature=function(n,t){return this.readFeatureFromText(this.getText_(n),this.adaptOptions(t))},ol.format.TextFeature.prototype.readFeatureFromText=function(){},ol.format.TextFeature.prototype.readFeatures=function(n,t){return this.readFeaturesFromText(this.getText_(n),this.adaptOptions(t))},ol.format.TextFeature.prototype.readFeaturesFromText=function(){},ol.format.TextFeature.prototype.readGeometry=function(n,t){return this.readGeometryFromText(this.getText_(n),this.adaptOptions(t))},ol.format.TextFeature.prototype.readGeometryFromText=function(){},ol.format.TextFeature.prototype.readProjection=function(n){return this.readProjectionFromText(this.getText_(n))},ol.format.TextFeature.prototype.readProjectionFromText=function(){return this.defaultDataProjection},ol.format.TextFeature.prototype.writeFeature=function(n,t){return this.writeFeatureText(n,this.adaptOptions(t))},ol.format.TextFeature.prototype.writeFeatureText=function(){},ol.format.TextFeature.prototype.writeFeatures=function(n,t){return this.writeFeaturesText(n,this.adaptOptions(t))},ol.format.TextFeature.prototype.writeFeaturesText=function(){},ol.format.TextFeature.prototype.writeGeometry=function(n,t){return this.writeGeometryText(n,this.adaptOptions(t))},ol.format.TextFeature.prototype.writeGeometryText=function(){},n.provide("ol.format.IGC"),n.require("ol"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.IGCZ"),n.require("ol.format.TextFeature"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.proj"),ol.format.IGC=function(n){var t=n?n:{};ol.format.TextFeature.call(this);this.defaultDataProjection=ol.proj.get("EPSG:4326");this.altitudeMode_=t.altitudeMode?t.altitudeMode:ol.format.IGCZ.NONE},ol.inherits(ol.format.IGC,ol.format.TextFeature),ol.format.IGC.B_RECORD_RE_=/^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,ol.format.IGC.H_RECORD_RE_=/^H.([A-Z]{3}).*?:(.*)/,ol.format.IGC.HFDTE_RECORD_RE_=/^HFDTE(\d{2})(\d{2})(\d{2})/,ol.format.IGC.NEWLINE_RE_=/\r\n|\r|\n/,ol.format.IGC.prototype.readFeature,ol.format.IGC.prototype.readFeatureFromText=function(n,t){for(var e=this.altitudeMode_,p=n.split(ol.format.IGC.NEWLINE_RE_),w={},u=[],h=2e3,c=0,l=1,b=-1,r,i,s,tt,f,v,it,y,o=0,k=p.length;o<k;++o)if(r=p[o],r.charAt(0)=="B"){if(i=ol.format.IGC.B_RECORD_RE_.exec(r),i){var d=parseInt(i[1],10),g=parseInt(i[2],10),nt=parseInt(i[3],10),a=parseInt(i[4],10)+parseInt(i[5],10)/6e4;i[6]=="S"&&(a=-a);s=parseInt(i[7],10)+parseInt(i[8],10)/6e4;i[9]=="W"&&(s=-s);u.push(s,a);e!=ol.format.IGCZ.NONE&&(tt=e==ol.format.IGCZ.GPS?parseInt(i[11],10):e==ol.format.IGCZ.BAROMETRIC?parseInt(i[12],10):0,u.push(tt));f=Date.UTC(h,c,l,d,g,nt);f<b&&(f=Date.UTC(h,c,l+1,d,g,nt));u.push(f/1e3);b=f}}else r.charAt(0)=="H"&&(i=ol.format.IGC.HFDTE_RECORD_RE_.exec(r),i?(l=parseInt(i[1],10),c=parseInt(i[2],10)-1,h=2e3+parseInt(i[3],10)):(i=ol.format.IGC.H_RECORD_RE_.exec(r),i&&(w[i[1]]=i[2].trim())));return u.length===0?null:(v=new ol.geom.LineString(null),it=e==ol.format.IGCZ.NONE?ol.geom.GeometryLayout.XYM:ol.geom.GeometryLayout.XYZM,v.setFlatCoordinates(it,u),y=new ol.Feature(ol.format.Feature.transformWithOptions(v,!1,t)),y.setProperties(w),y)},ol.format.IGC.prototype.readFeatures,ol.format.IGC.prototype.readFeaturesFromText=function(n,t){var i=this.readFeatureFromText(n,t);return i?[i]:[]},ol.format.IGC.prototype.readProjection,ol.format.IGC.prototype.writeFeatureText=function(){},ol.format.IGC.prototype.writeFeaturesText=function(){},ol.format.IGC.prototype.writeGeometryText=function(){},ol.format.IGC.prototype.readGeometryFromText=function(){},n.provide("ol.style.IconAnchorUnits"),ol.style.IconAnchorUnits={FRACTION:"fraction",PIXELS:"pixels"},n.provide("ol.style.IconImage"),n.require("ol"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventTarget"),n.require("ol.events.EventType"),n.require("ol.ImageState"),n.require("ol.style"),ol.style.IconImage=function(n,t,i,r,u,f){ol.events.EventTarget.call(this);this.hitDetectionImage_=null;this.image_=n?n:new Image;r!==null&&(this.image_.crossOrigin=r);this.canvas_=f?document.createElement("CANVAS"):null;this.color_=f;this.imageListenerKeys_=null;this.imageState_=u;this.size_=i;this.src_=t;this.tainting_=!1;this.imageState_==ol.ImageState.LOADED&&this.determineTainting_()},ol.inherits(ol.style.IconImage,ol.events.EventTarget),ol.style.IconImage.get=function(n,t,i,r,u,f){var o=ol.style.iconImageCache,e=o.get(t,r,f);return e||(e=new ol.style.IconImage(n,t,i,r,u,f),o.set(t,r,f,e)),e},ol.style.IconImage.prototype.determineTainting_=function(){var n=ol.dom.createCanvasContext2D(1,1);try{n.drawImage(this.image_,0,0);n.getImageData(0,0,1,1)}catch(t){this.tainting_=!0}},ol.style.IconImage.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(ol.events.EventType.CHANGE)},ol.style.IconImage.prototype.handleImageError_=function(){this.imageState_=ol.ImageState.ERROR;this.unlistenImage_();this.dispatchChangeEvent_()},ol.style.IconImage.prototype.handleImageLoad_=function(){this.imageState_=ol.ImageState.LOADED;this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]);this.size_=[this.image_.width,this.image_.height];this.unlistenImage_();this.determineTainting_();this.replaceColor_();this.dispatchChangeEvent_()},ol.style.IconImage.prototype.getImage=function(){return this.canvas_?this.canvas_:this.image_},ol.style.IconImage.prototype.getImageState=function(){return this.imageState_},ol.style.IconImage.prototype.getHitDetectionImage=function(){if(!this.hitDetectionImage_)if(this.tainting_){var n=this.size_[0],t=this.size_[1],i=ol.dom.createCanvasContext2D(n,t);i.fillRect(0,0,n,t);this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},ol.style.IconImage.prototype.getSize=function(){return this.size_},ol.style.IconImage.prototype.getSrc=function(){return this.src_},ol.style.IconImage.prototype.load=function(){if(this.imageState_==ol.ImageState.IDLE){this.imageState_=ol.ImageState.LOADING;this.imageListenerKeys_=[ol.events.listenOnce(this.image_,ol.events.EventType.ERROR,this.handleImageError_,this),ol.events.listenOnce(this.image_,ol.events.EventType.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(n){this.handleImageError_()}}},ol.style.IconImage.prototype.replaceColor_=function(){var t,n,u;if(!this.tainting_&&this.color_!==null){this.canvas_.width=this.image_.width;this.canvas_.height=this.image_.height;t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);var r=t.getImageData(0,0,this.image_.width,this.image_.height),i=r.data,f=this.color_[0]/255,e=this.color_[1]/255,o=this.color_[2]/255;for(n=0,u=i.length;n<u;n+=4)i[n]*=f,i[n+1]*=e,i[n+2]*=o;t.putImageData(r,0,0)}},ol.style.IconImage.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(ol.events.unlistenByKey);this.imageListenerKeys_=null},n.provide("ol.style.IconOrigin"),ol.style.IconOrigin={BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",TOP_LEFT:"top-left",TOP_RIGHT:"top-right"},n.provide("ol.style.Icon"),n.require("ol"),n.require("ol.ImageState"),n.require("ol.asserts"),n.require("ol.color"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.style.IconAnchorUnits"),n.require("ol.style.IconImage"),n.require("ol.style.IconOrigin"),n.require("ol.style.Image"),ol.style.Icon=function(n){var t=n||{},f;this.anchor_=t.anchor!==undefined?t.anchor:[.5,.5];this.normalizedAnchor_=null;this.anchorOrigin_=t.anchorOrigin!==undefined?t.anchorOrigin:ol.style.IconOrigin.TOP_LEFT;this.anchorXUnits_=t.anchorXUnits!==undefined?t.anchorXUnits:ol.style.IconAnchorUnits.FRACTION;this.anchorYUnits_=t.anchorYUnits!==undefined?t.anchorYUnits:ol.style.IconAnchorUnits.FRACTION;this.crossOrigin_=t.crossOrigin!==undefined?t.crossOrigin:null;var i=t.img!==undefined?t.img:null,u=t.imgSize!==undefined?t.imgSize:null,r=t.src;ol.asserts.assert(!(r!==undefined&&i),4);ol.asserts.assert(!i||i&&u,5);(r===undefined||r.length===0)&&i&&(r=i.src||ol.getUid(i).toString());ol.asserts.assert(r!==undefined&&r.length>0,6);f=t.src!==undefined?ol.ImageState.IDLE:ol.ImageState.LOADED;this.color_=t.color!==undefined?ol.color.asArray(t.color):null;this.iconImage_=ol.style.IconImage.get(i,r,u,this.crossOrigin_,f,this.color_);this.offset_=t.offset!==undefined?t.offset:[0,0];this.offsetOrigin_=t.offsetOrigin!==undefined?t.offsetOrigin:ol.style.IconOrigin.TOP_LEFT;this.origin_=null;this.size_=t.size!==undefined?t.size:null;var e=t.opacity!==undefined?t.opacity:1,o=t.rotateWithView!==undefined?t.rotateWithView:!1,s=t.rotation!==undefined?t.rotation:0,h=t.scale!==undefined?t.scale:1,c=t.snapToPixel!==undefined?t.snapToPixel:!0;ol.style.Image.call(this,{opacity:e,rotation:s,scale:h,snapToPixel:c,rotateWithView:o})},ol.inherits(ol.style.Icon,ol.style.Image),ol.style.Icon.prototype.clone=function(){return new ol.style.Icon({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||undefined,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:this.size_!==null?this.size_.slice():undefined,opacity:this.getOpacity(),scale:this.getScale(),snapToPixel:this.getSnapToPixel(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},ol.style.Icon.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var n=this.anchor_,t=this.getSize();if(this.anchorXUnits_==ol.style.IconAnchorUnits.FRACTION||this.anchorYUnits_==ol.style.IconAnchorUnits.FRACTION){if(!t)return null;n=this.anchor_.slice();this.anchorXUnits_==ol.style.IconAnchorUnits.FRACTION&&(n[0]*=t[0]);this.anchorYUnits_==ol.style.IconAnchorUnits.FRACTION&&(n[1]*=t[1])}if(this.anchorOrigin_!=ol.style.IconOrigin.TOP_LEFT){if(!t)return null;n===this.anchor_&&(n=this.anchor_.slice());(this.anchorOrigin_==ol.style.IconOrigin.TOP_RIGHT||this.anchorOrigin_==ol.style.IconOrigin.BOTTOM_RIGHT)&&(n[0]=-n[0]+t[0]);(this.anchorOrigin_==ol.style.IconOrigin.BOTTOM_LEFT||this.anchorOrigin_==ol.style.IconOrigin.BOTTOM_RIGHT)&&(n[1]=-n[1]+t[1])}return this.normalizedAnchor_=n,this.normalizedAnchor_},ol.style.Icon.prototype.getColor=function(){return this.color_},ol.style.Icon.prototype.getImage=function(n){return this.iconImage_.getImage(n)},ol.style.Icon.prototype.getImageSize=function(){return this.iconImage_.getSize()},ol.style.Icon.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},ol.style.Icon.prototype.getImageState=function(){return this.iconImage_.getImageState()},ol.style.Icon.prototype.getHitDetectionImage=function(n){return this.iconImage_.getHitDetectionImage(n)},ol.style.Icon.prototype.getOrigin=function(){var n,t,i;if(this.origin_)return this.origin_;if(n=this.offset_,this.offsetOrigin_!=ol.style.IconOrigin.TOP_LEFT){if(t=this.getSize(),i=this.iconImage_.getSize(),!t||!i)return null;n=n.slice();(this.offsetOrigin_==ol.style.IconOrigin.TOP_RIGHT||this.offsetOrigin_==ol.style.IconOrigin.BOTTOM_RIGHT)&&(n[0]=i[0]-t[0]-n[0]);(this.offsetOrigin_==ol.style.IconOrigin.BOTTOM_LEFT||this.offsetOrigin_==ol.style.IconOrigin.BOTTOM_RIGHT)&&(n[1]=i[1]-t[1]-n[1])}return this.origin_=n,this.origin_},ol.style.Icon.prototype.getSrc=function(){return this.iconImage_.getSrc()},ol.style.Icon.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},ol.style.Icon.prototype.listenImageChange=function(n,t){return ol.events.listen(this.iconImage_,ol.events.EventType.CHANGE,n,t)},ol.style.Icon.prototype.load=function(){this.iconImage_.load()},ol.style.Icon.prototype.unlistenImageChange=function(n,t){ol.events.unlisten(this.iconImage_,ol.events.EventType.CHANGE,n,t)},n.provide("ol.style.Text"),n.require("ol.style.Fill"),n.require("ol.style.TextPlacement"),ol.style.Text=function(n){var t=n||{},i;this.font_=t.font;this.rotation_=t.rotation;this.rotateWithView_=t.rotateWithView;this.scale_=t.scale;this.text_=t.text;this.textAlign_=t.textAlign;this.textBaseline_=t.textBaseline;this.fill_=t.fill!==undefined?t.fill:new ol.style.Fill({color:ol.style.Text.DEFAULT_FILL_COLOR_});this.maxAngle_=t.maxAngle!==undefined?t.maxAngle:Math.PI/4;this.placement_=t.placement!==undefined?t.placement:ol.style.TextPlacement.POINT;i=t.overflow===undefined?t.exceedLength:t.overflow;this.overflow_=i!==undefined?i:!1;this.stroke_=t.stroke!==undefined?t.stroke:null;this.offsetX_=t.offsetX!==undefined?t.offsetX:0;this.offsetY_=t.offsetY!==undefined?t.offsetY:0;this.backgroundFill_=t.backgroundFill?t.backgroundFill:null;this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null;this.padding_=t.padding===undefined?null:t.padding},ol.style.Text.DEFAULT_FILL_COLOR_="#333",ol.style.Text.prototype.clone=function(){return new ol.style.Text({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():undefined,stroke:this.getStroke()?this.getStroke().clone():undefined,offsetX:this.getOffsetX(),offsetY:this.getOffsetY()})},ol.style.Text.prototype.getOverflow=function(){return this.overflow_},ol.style.Text.prototype.getFont=function(){return this.font_},ol.style.Text.prototype.getMaxAngle=function(){return this.maxAngle_},ol.style.Text.prototype.getPlacement=function(){return this.placement_},ol.style.Text.prototype.getOffsetX=function(){return this.offsetX_},ol.style.Text.prototype.getOffsetY=function(){return this.offsetY_},ol.style.Text.prototype.getFill=function(){return this.fill_},ol.style.Text.prototype.getRotateWithView=function(){return this.rotateWithView_},ol.style.Text.prototype.getRotation=function(){return this.rotation_},ol.style.Text.prototype.getScale=function(){return this.scale_},ol.style.Text.prototype.getStroke=function(){return this.stroke_},ol.style.Text.prototype.getText=function(){return this.text_},ol.style.Text.prototype.getTextAlign=function(){return this.textAlign_},ol.style.Text.prototype.getTextBaseline=function(){return this.textBaseline_},ol.style.Text.prototype.getBackgroundFill=function(){return this.backgroundFill_},ol.style.Text.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},ol.style.Text.prototype.getPadding=function(){return this.padding_},ol.style.Text.prototype.setOverflow=function(n){this.overflow_=n},ol.style.Text.prototype.setFont=function(n){this.font_=n},ol.style.Text.prototype.setMaxAngle=function(n){this.maxAngle_=n},ol.style.Text.prototype.setOffsetX=function(n){this.offsetX_=n},ol.style.Text.prototype.setOffsetY=function(n){this.offsetY_=n},ol.style.Text.prototype.setPlacement=function(n){this.placement_=n},ol.style.Text.prototype.setFill=function(n){this.fill_=n},ol.style.Text.prototype.setRotation=function(n){this.rotation_=n},ol.style.Text.prototype.setScale=function(n){this.scale_=n},ol.style.Text.prototype.setStroke=function(n){this.stroke_=n},ol.style.Text.prototype.setText=function(n){this.text_=n},ol.style.Text.prototype.setTextAlign=function(n){this.textAlign_=n},ol.style.Text.prototype.setTextBaseline=function(n){this.textBaseline_=n},ol.style.Text.prototype.setBackgroundFill=function(n){this.backgroundFill_=n},ol.style.Text.prototype.setBackgroundStroke=function(n){this.backgroundStroke_=n},ol.style.Text.prototype.setPadding=function(n){this.padding_=n},n.provide("ol.format.KML"),n.require("ol"),n.require("ol.Feature"),n.require("ol.array"),n.require("ol.asserts"),n.require("ol.color"),n.require("ol.format.Feature"),n.require("ol.format.XMLFeature"),n.require("ol.format.XSD"),n.require("ol.geom.GeometryCollection"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.math"),n.require("ol.proj"),n.require("ol.style.Fill"),n.require("ol.style.Icon"),n.require("ol.style.IconAnchorUnits"),n.require("ol.style.IconOrigin"),n.require("ol.style.Stroke"),n.require("ol.style.Style"),n.require("ol.style.Text"),n.require("ol.xml"),ol.format.KML=function(n){var t=n?n:{};ol.format.XMLFeature.call(this);ol.format.KML.DEFAULT_STYLE_ARRAY_||ol.format.KML.createStyleDefaults_();this.defaultDataProjection=ol.proj.get("EPSG:4326");this.defaultStyle_=t.defaultStyle?t.defaultStyle:ol.format.KML.DEFAULT_STYLE_ARRAY_;this.extractStyles_=t.extractStyles!==undefined?t.extractStyles:!0;this.writeStyles_=t.writeStyles!==undefined?t.writeStyles:!0;this.sharedStyles_={};this.showPointNames_=t.showPointNames!==undefined?t.showPointNames:!0},ol.inherits(ol.format.KML,ol.format.XMLFeature),ol.format.KML.GX_NAMESPACE_URIS_=["http://www.google.com/kml/ext/2.2"],ol.format.KML.NAMESPACE_URIS_=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],ol.format.KML.SCHEMA_LOCATION_="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd",ol.format.KML.createStyleDefaults_=function(){return ol.format.KML.DEFAULT_COLOR_=[255,255,255,1],ol.format.KML.DEFAULT_FILL_STYLE_=new ol.style.Fill({color:ol.format.KML.DEFAULT_COLOR_}),ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_=[20,2],ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_=ol.style.IconAnchorUnits.PIXELS,ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_=ol.style.IconAnchorUnits.PIXELS,ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_=[64,64],ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",ol.format.KML.DEFAULT_IMAGE_SCALE_MULTIPLIER_=.5,ol.format.KML.DEFAULT_IMAGE_STYLE_=new ol.style.Icon({anchor:ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_,anchorOrigin:ol.style.IconOrigin.BOTTOM_LEFT,anchorXUnits:ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_,anchorYUnits:ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_,crossOrigin:"anonymous",rotation:0,scale:ol.format.KML.DEFAULT_IMAGE_SCALE_MULTIPLIER_,size:ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_,src:ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_}),ol.format.KML.DEFAULT_NO_IMAGE_STYLE_="NO_IMAGE",ol.format.KML.DEFAULT_STROKE_STYLE_=new ol.style.Stroke({color:ol.format.KML.DEFAULT_COLOR_,width:1}),ol.format.KML.DEFAULT_TEXT_STROKE_STYLE_=new ol.style.Stroke({color:[51,51,51,1],width:2}),ol.format.KML.DEFAULT_TEXT_STYLE_=new ol.style.Text({font:"bold 16px Helvetica",fill:ol.format.KML.DEFAULT_FILL_STYLE_,stroke:ol.format.KML.DEFAULT_TEXT_STROKE_STYLE_,scale:.8}),ol.format.KML.DEFAULT_STYLE_=new ol.style.Style({fill:ol.format.KML.DEFAULT_FILL_STYLE_,image:ol.format.KML.DEFAULT_IMAGE_STYLE_,text:ol.format.KML.DEFAULT_TEXT_STYLE_,stroke:ol.format.KML.DEFAULT_STROKE_STYLE_,zIndex:0}),ol.format.KML.DEFAULT_STYLE_ARRAY_=[ol.format.KML.DEFAULT_STYLE_],ol.format.KML.DEFAULT_STYLE_ARRAY_},ol.format.KML.ICON_ANCHOR_UNITS_MAP_={fraction:ol.style.IconAnchorUnits.FRACTION,pixels:ol.style.IconAnchorUnits.PIXELS,insetPixels:ol.style.IconAnchorUnits.PIXELS},ol.format.KML.createNameStyleFunction_=function(n,t){var i=null,f=[0,0],o="start",r,e,u;return n.getImage()&&(r=n.getImage().getImageSize(),r===null&&(r=ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_),r.length==2&&(e=n.getImage().getScale(),f[0]=e*r[0]/2,f[1]=-e*r[1]/2,o="left")),n.getText()!==null?(u=n.getText(),i=u.clone(),i.setFont(u.getFont()||ol.format.KML.DEFAULT_TEXT_STYLE_.getFont()),i.setScale(u.getScale()||ol.format.KML.DEFAULT_TEXT_STYLE_.getScale()),i.setFill(u.getFill()||ol.format.KML.DEFAULT_TEXT_STYLE_.getFill()),i.setStroke(u.getStroke()||ol.format.KML.DEFAULT_TEXT_STROKE_STYLE_)):i=ol.format.KML.DEFAULT_TEXT_STYLE_.clone(),i.setText(t),i.setOffsetX(f[0]),i.setOffsetY(f[1]),i.setTextAlign(o),new ol.style.Style({text:i})},ol.format.KML.createFeatureStyleFunction_=function(n,t,i,r,u){return function(){var f=u,e,o="",s;return(f&&this.getGeometry()&&(f=this.getGeometry().getType()===ol.geom.GeometryType.POINT),f&&(o=this.get("name"),f=f&&o),n)?f?(e=ol.format.KML.createNameStyleFunction_(n[0],o),n.concat(e)):n:t?(s=ol.format.KML.findStyle_(t,i,r),f)?(e=ol.format.KML.createNameStyleFunction_(s[0],o),s.concat(e)):s:f?(e=ol.format.KML.createNameStyleFunction_(i[0],o),i.concat(e)):i}},ol.format.KML.findStyle_=function(n,t,i){return Array.isArray(n)?n:typeof n=="string"?(!(n in i)&&"#"+n in i&&(n="#"+n),ol.format.KML.findStyle_(i[n],t,i)):t},ol.format.KML.readColor_=function(n){var r=ol.xml.getAllTextContent(n,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(r),t;return i?(t=i[1],[parseInt(t.substr(6,2),16),parseInt(t.substr(4,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(0,2),16)/255]):undefined},ol.format.KML.readFlatCoordinates_=function(n){for(var i=ol.xml.getAllTextContent(n,!1),r=[],t;t=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i.exec(i);){var u=parseFloat(t[1]),f=parseFloat(t[2]),e=t[3]?parseFloat(t[3]):0;r.push(u,f,e);i=i.substr(t[0].length)}return i!==""?undefined:r},ol.format.KML.readURI_=function(n){var i=ol.xml.getAllTextContent(n,!1).trim(),t=n.baseURI,r;return t&&t!="about:blank"||(t=window.location.href),t?(r=new URL(i,t),r.href):i},ol.format.KML.readVec2_=function(n){var i=n.getAttribute("xunits"),t=n.getAttribute("yunits"),r;return r=i!=="insetPixels"?t!=="insetPixels"?ol.style.IconOrigin.BOTTOM_LEFT:ol.style.IconOrigin.TOP_LEFT:t!=="insetPixels"?ol.style.IconOrigin.BOTTOM_RIGHT:ol.style.IconOrigin.TOP_RIGHT,{x:parseFloat(n.getAttribute("x")),xunits:ol.format.KML.ICON_ANCHOR_UNITS_MAP_[i],y:parseFloat(n.getAttribute("y")),yunits:ol.format.KML.ICON_ANCHOR_UNITS_MAP_[t],origin:r}},ol.format.KML.readScale_=function(n){return ol.format.XSD.readDecimal(n)},ol.format.KML.readStyleMapValue_=function(n,t){return ol.xml.pushParseAndPop(undefined,ol.format.KML.STYLE_MAP_PARSERS_,n,t)},ol.format.KML.IconStyleParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.ICON_STYLE_PARSERS_,n,t),e,o,s,c,r,g,l,a,v,y,p,nt,w,h,tt;if(i){var b=t[t.length-1],u="Icon"in i?i.Icon:{},k=!("Icon"in i)||Object.keys(u).length>0,f,d=u.href;d?f=d:k&&(f=ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_);c=ol.style.IconOrigin.BOTTOM_LEFT;r=i.hotSpot;r?(e=[r.x,r.y],o=r.xunits,s=r.yunits,c=r.origin):f===ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_?(e=ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_,o=ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS_,s=ol.format.KML.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS_):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(f)&&(e=[.5,0],o=ol.style.IconAnchorUnits.FRACTION,s=ol.style.IconAnchorUnits.FRACTION);l=u.x;a=u.y;l!==undefined&&a!==undefined&&(g=[l,a]);y=u.w;p=u.h;y!==undefined&&p!==undefined&&(v=[y,p]);w=i.heading;w!==undefined&&(nt=ol.math.toRadians(w));h=i.scale;k?(f==ol.format.KML.DEFAULT_IMAGE_STYLE_SRC_&&(v=ol.format.KML.DEFAULT_IMAGE_STYLE_SIZE_,h===undefined&&(h=ol.format.KML.DEFAULT_IMAGE_SCALE_MULTIPLIER_)),tt=new ol.style.Icon({anchor:e,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:g,offsetOrigin:ol.style.IconOrigin.BOTTOM_LEFT,rotation:nt,scale:h,size:v,src:f}),b.imageStyle=tt):b.imageStyle=ol.format.KML.DEFAULT_NO_IMAGE_STYLE_}},ol.format.KML.LabelStyleParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.LABEL_STYLE_PARSERS_,n,t),r,u;i&&(r=t[t.length-1],u=new ol.style.Text({fill:new ol.style.Fill({color:"color"in i?i.color:ol.format.KML.DEFAULT_COLOR_}),scale:i.scale}),r.textStyle=u)},ol.format.KML.LineStyleParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.LINE_STYLE_PARSERS_,n,t),r,u;i&&(r=t[t.length-1],u=new ol.style.Stroke({color:"color"in i?i.color:ol.format.KML.DEFAULT_COLOR_,width:"width"in i?i.width:1}),r.strokeStyle=u)},ol.format.KML.PolyStyleParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.POLY_STYLE_PARSERS_,n,t),r,e,u,f;i&&(r=t[t.length-1],e=new ol.style.Fill({color:"color"in i?i.color:ol.format.KML.DEFAULT_COLOR_}),r.fillStyle=e,u=i.fill,u!==undefined&&(r.fill=u),f=i.outline,f!==undefined&&(r.outline=f))},ol.format.KML.readFlatLinearRing_=function(n,t){return ol.xml.pushParseAndPop(null,ol.format.KML.FLAT_LINEAR_RING_PARSERS_,n,t)},ol.format.KML.gxCoordParser_=function(n,t){var u=t[t.length-1],r=u.flatCoordinates,f=ol.xml.getAllTextContent(n,!1),i=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(f);if(i){var e=parseFloat(i[1]),o=parseFloat(i[2]),s=parseFloat(i[3]);r.push(e,o,s,0)}else r.push(0,0,0,0)},ol.format.KML.readGxMultiTrack_=function(n,t){var r=ol.xml.pushParseAndPop([],ol.format.KML.GX_MULTITRACK_GEOMETRY_PARSERS_,n,t),i;return r?(i=new ol.geom.MultiLineString(null),i.setLineStrings(r),i):undefined},ol.format.KML.readGxTrack_=function(n,t){var u=ol.xml.pushParseAndPop({flatCoordinates:[],whens:[]},ol.format.KML.GX_TRACK_PARSERS_,n,t),r,f,i,o,e;if(!u)return undefined;for(r=u.flatCoordinates,f=u.whens,i=0,o=Math.min(r.length,f.length);i<o;++i)r[4*i+3]=f[i];return e=new ol.geom.LineString(null),e.setFlatCoordinates(ol.geom.GeometryLayout.XYZM,r),e},ol.format.KML.readIcon_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.ICON_PARSERS_,n,t);return i?i:null},ol.format.KML.readFlatCoordinatesFromNode_=function(n,t){return ol.xml.pushParseAndPop(null,ol.format.KML.GEOMETRY_FLAT_COORDINATES_PARSERS_,n,t)},ol.format.KML.readLineString_=function(n,t){var u=ol.xml.pushParseAndPop({},ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_,n,t),r=ol.format.KML.readFlatCoordinatesFromNode_(n,t),i;return r?(i=new ol.geom.LineString(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r),i.setProperties(u),i):undefined},ol.format.KML.readLinearRing_=function(n,t){var u=ol.xml.pushParseAndPop({},ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_,n,t),r=ol.format.KML.readFlatCoordinatesFromNode_(n,t),i;return r?(i=new ol.geom.Polygon(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r,[r.length]),i.setProperties(u),i):undefined},ol.format.KML.readMultiGeometry_=function(n,t){var i=ol.xml.pushParseAndPop([],ol.format.KML.MULTI_GEOMETRY_PARSERS_,n,t),r,s,f,e,u,o,l,h,c;if(!i)return null;if(i.length===0)return new ol.geom.GeometryCollection(i);for(s=!0,f=i[0].getType(),u=1,o=i.length;u<o;++u)if(e=i[u],e.getType()!=f){s=!1;break}if(s)if(f==ol.geom.GeometryType.POINT){for(c=i[0],l=c.getLayout(),h=c.getFlatCoordinates(),u=1,o=i.length;u<o;++u)e=i[u],ol.array.extend(h,e.getFlatCoordinates());r=new ol.geom.MultiPoint(null);r.setFlatCoordinates(l,h);ol.format.KML.setCommonGeometryProperties_(r,i)}else f==ol.geom.GeometryType.LINE_STRING?(r=new ol.geom.MultiLineString(null),r.setLineStrings(i),ol.format.KML.setCommonGeometryProperties_(r,i)):f==ol.geom.GeometryType.POLYGON?(r=new ol.geom.MultiPolygon(null),r.setPolygons(i),ol.format.KML.setCommonGeometryProperties_(r,i)):f==ol.geom.GeometryType.GEOMETRY_COLLECTION?r=new ol.geom.GeometryCollection(i):ol.asserts.assert(!1,37);else r=new ol.geom.GeometryCollection(i);return r},ol.format.KML.readPoint_=function(n,t){var u=ol.xml.pushParseAndPop({},ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_,n,t),r=ol.format.KML.readFlatCoordinatesFromNode_(n,t),i;return r?(i=new ol.geom.Point(null),i.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r),i.setProperties(u),i):undefined},ol.format.KML.readPolygon_=function(n,t){var s=ol.xml.pushParseAndPop({},ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_,n,t),i=ol.xml.pushParseAndPop([null],ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_,n,t);if(i&&i[0]){for(var f=new ol.geom.Polygon(null),r=i[0],e=[r.length],u=1,o=i.length;u<o;++u)ol.array.extend(r,i[u]),e.push(r.length);return f.setFlatCoordinates(ol.geom.GeometryLayout.XYZ,r,e),f.setProperties(s),f}return undefined},ol.format.KML.readStyle_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.STYLE_PARSERS_,n,t),u,f,r;if(!i)return null;u="fillStyle"in i?i.fillStyle:ol.format.KML.DEFAULT_FILL_STYLE_;f=i.fill;f===undefined||f||(u=null);r="imageStyle"in i?i.imageStyle:ol.format.KML.DEFAULT_IMAGE_STYLE_;r==ol.format.KML.DEFAULT_NO_IMAGE_STYLE_&&(r=undefined);var s="textStyle"in i?i.textStyle:ol.format.KML.DEFAULT_TEXT_STYLE_,e="strokeStyle"in i?i.strokeStyle:ol.format.KML.DEFAULT_STROKE_STYLE_,o=i.outline;return o===undefined||o||(e=null),[new ol.style.Style({fill:u,image:r,stroke:e,text:s,zIndex:undefined})]},ol.format.KML.setCommonGeometryProperties_=function(n,t){for(var c=t.length,o=new Array(t.length),s=new Array(t.length),h=new Array(t.length),r,f,e,u=f=e=!1,i=0;i<c;++i)r=t[i],o[i]=r.get("extrude"),s[i]=r.get("tessellate"),h[i]=r.get("altitudeMode"),u=u||o[i]!==undefined,f=f||s[i]!==undefined,e=e||h[i];u&&n.set("extrude",o);f&&n.set("tessellate",s);e&&n.set("altitudeMode",h)},ol.format.KML.DataParser_=function(n,t){var r=n.getAttribute("name"),i;ol.xml.parseNode(ol.format.KML.DATA_PARSERS_,n,t);i=t[t.length-1];r!==null?i[r]=i.value:i.displayName!==null&&(i[i.displayName]=i.value);delete i.value},ol.format.KML.ExtendedDataParser_=function(n,t){ol.xml.parseNode(ol.format.KML.EXTENDED_DATA_PARSERS_,n,t)},ol.format.KML.RegionParser_=function(n,t){ol.xml.parseNode(ol.format.KML.REGION_PARSERS_,n,t)},ol.format.KML.PairDataParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.PAIR_PARSERS_,n,t),r,u,f;i&&(r=i.key,r&&r=="normal"&&(u=i.styleUrl,u&&(t[t.length-1]=u),f=i.Style,f&&(t[t.length-1]=f)))},ol.format.KML.PlacemarkStyleMapParser_=function(n,t){var i=ol.format.KML.readStyleMapValue_(n,t),r;i&&(r=t[t.length-1],Array.isArray(i)?r.Style=i:typeof i=="string"?r.styleUrl=i:ol.asserts.assert(!1,38))},ol.format.KML.SchemaDataParser_=function(n,t){ol.xml.parseNode(ol.format.KML.SCHEMA_DATA_PARSERS_,n,t)},ol.format.KML.SimpleDataParser_=function(n,t){var i=n.getAttribute("name"),r,u;i!==null&&(r=ol.format.XSD.readString(n),u=t[t.length-1],u[i]=r)},ol.format.KML.LatLonAltBoxParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.LAT_LON_ALT_BOX_PARSERS_,n,t),r,u;i&&(r=t[t.length-1],u=[parseFloat(i.west),parseFloat(i.south),parseFloat(i.east),parseFloat(i.north)],r.extent=u,r.altitudeMode=i.altitudeMode,r.minAltitude=parseFloat(i.minAltitude),r.maxAltitude=parseFloat(i.maxAltitude))},ol.format.KML.LodParser_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.KML.LOD_PARSERS_,n,t),r;i&&(r=t[t.length-1],r.minLodPixels=parseFloat(i.minLodPixels),r.maxLodPixels=parseFloat(i.maxLodPixels),r.minFadeExtent=parseFloat(i.minFadeExtent),r.maxFadeExtent=parseFloat(i.maxFadeExtent))},ol.format.KML.innerBoundaryIsParser_=function(n,t){var i=ol.xml.pushParseAndPop(undefined,ol.format.KML.INNER_BOUNDARY_IS_PARSERS_,n,t),r;i&&(r=t[t.length-1],r.push(i))},ol.format.KML.outerBoundaryIsParser_=function(n,t){var i=ol.xml.pushParseAndPop(undefined,ol.format.KML.OUTER_BOUNDARY_IS_PARSERS_,n,t),r;i&&(r=t[t.length-1],r[0]=i)},ol.format.KML.LinkParser_=function(n,t){ol.xml.parseNode(ol.format.KML.LINK_PARSERS_,n,t)},ol.format.KML.whenParser_=function(n,t){var r=t[t.length-1],u=r.whens,f=ol.xml.getAllTextContent(n,!1),i=Date.parse(f);u.push(isNaN(i)?0:i)},ol.format.KML.DATA_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{displayName:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),value:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.KML.EXTENDED_DATA_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Data:ol.format.KML.DataParser_,SchemaData:ol.format.KML.SchemaDataParser_}),ol.format.KML.REGION_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{LatLonAltBox:ol.format.KML.LatLonAltBoxParser_,Lod:ol.format.KML.LodParser_}),ol.format.KML.LAT_LON_ALT_BOX_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{altitudeMode:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),minAltitude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),maxAltitude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),north:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),south:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),east:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),west:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal)}),ol.format.KML.LOD_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{minLodPixels:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),maxLodPixels:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),minFadeExtent:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),maxFadeExtent:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal)}),ol.format.KML.EXTRUDE_AND_ALTITUDE_MODE_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{extrude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean),tessellate:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean),altitudeMode:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.KML.FLAT_LINEAR_RING_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{coordinates:ol.xml.makeReplacer(ol.format.KML.readFlatCoordinates_)}),ol.format.KML.FLAT_LINEAR_RINGS_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{innerBoundaryIs:ol.format.KML.innerBoundaryIsParser_,outerBoundaryIs:ol.format.KML.outerBoundaryIsParser_}),ol.format.KML.GX_TRACK_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{when:ol.format.KML.whenParser_},ol.xml.makeStructureNS(ol.format.KML.GX_NAMESPACE_URIS_,{coord:ol.format.KML.gxCoordParser_})),ol.format.KML.GEOMETRY_FLAT_COORDINATES_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{coordinates:ol.xml.makeReplacer(ol.format.KML.readFlatCoordinates_)}),ol.format.KML.ICON_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{href:ol.xml.makeObjectPropertySetter(ol.format.KML.readURI_)},ol.xml.makeStructureNS(ol.format.KML.GX_NAMESPACE_URIS_,{x:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),y:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),w:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),h:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal)})),ol.format.KML.ICON_STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Icon:ol.xml.makeObjectPropertySetter(ol.format.KML.readIcon_),heading:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),hotSpot:ol.xml.makeObjectPropertySetter(ol.format.KML.readVec2_),scale:ol.xml.makeObjectPropertySetter(ol.format.KML.readScale_)}),ol.format.KML.INNER_BOUNDARY_IS_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{LinearRing:ol.xml.makeReplacer(ol.format.KML.readFlatLinearRing_)}),ol.format.KML.LABEL_STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{color:ol.xml.makeObjectPropertySetter(ol.format.KML.readColor_),scale:ol.xml.makeObjectPropertySetter(ol.format.KML.readScale_)}),ol.format.KML.LINE_STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{color:ol.xml.makeObjectPropertySetter(ol.format.KML.readColor_),width:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal)}),ol.format.KML.MULTI_GEOMETRY_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{LineString:ol.xml.makeArrayPusher(ol.format.KML.readLineString_),LinearRing:ol.xml.makeArrayPusher(ol.format.KML.readLinearRing_),MultiGeometry:ol.xml.makeArrayPusher(ol.format.KML.readMultiGeometry_),Point:ol.xml.makeArrayPusher(ol.format.KML.readPoint_),Polygon:ol.xml.makeArrayPusher(ol.format.KML.readPolygon_)}),ol.format.KML.GX_MULTITRACK_GEOMETRY_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.GX_NAMESPACE_URIS_,{Track:ol.xml.makeArrayPusher(ol.format.KML.readGxTrack_)}),ol.format.KML.NETWORK_LINK_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{ExtendedData:ol.format.KML.ExtendedDataParser_,Region:ol.format.KML.RegionParser_,Link:ol.format.KML.LinkParser_,address:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),description:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),open:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean),phoneNumber:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),visibility:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean)}),ol.format.KML.LINK_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{href:ol.xml.makeObjectPropertySetter(ol.format.KML.readURI_)}),ol.format.KML.OUTER_BOUNDARY_IS_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{LinearRing:ol.xml.makeReplacer(ol.format.KML.readFlatLinearRing_)}),ol.format.KML.PAIR_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Style:ol.xml.makeObjectPropertySetter(ol.format.KML.readStyle_),key:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),styleUrl:ol.xml.makeObjectPropertySetter(ol.format.KML.readURI_)}),ol.format.KML.PLACEMARK_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{ExtendedData:ol.format.KML.ExtendedDataParser_,Region:ol.format.KML.RegionParser_,MultiGeometry:ol.xml.makeObjectPropertySetter(ol.format.KML.readMultiGeometry_,"geometry"),LineString:ol.xml.makeObjectPropertySetter(ol.format.KML.readLineString_,"geometry"),LinearRing:ol.xml.makeObjectPropertySetter(ol.format.KML.readLinearRing_,"geometry"),Point:ol.xml.makeObjectPropertySetter(ol.format.KML.readPoint_,"geometry"),Polygon:ol.xml.makeObjectPropertySetter(ol.format.KML.readPolygon_,"geometry"),Style:ol.xml.makeObjectPropertySetter(ol.format.KML.readStyle_),StyleMap:ol.format.KML.PlacemarkStyleMapParser_,address:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),description:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),open:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean),phoneNumber:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),styleUrl:ol.xml.makeObjectPropertySetter(ol.format.KML.readURI_),visibility:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean)},ol.xml.makeStructureNS(ol.format.KML.GX_NAMESPACE_URIS_,{MultiTrack:ol.xml.makeObjectPropertySetter(ol.format.KML.readGxMultiTrack_,"geometry"),Track:ol.xml.makeObjectPropertySetter(ol.format.KML.readGxTrack_,"geometry")})),ol.format.KML.POLY_STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{color:ol.xml.makeObjectPropertySetter(ol.format.KML.readColor_),fill:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean),outline:ol.xml.makeObjectPropertySetter(ol.format.XSD.readBoolean)}),ol.format.KML.SCHEMA_DATA_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{SimpleData:ol.format.KML.SimpleDataParser_}),ol.format.KML.STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{IconStyle:ol.format.KML.IconStyleParser_,LabelStyle:ol.format.KML.LabelStyleParser_,LineStyle:ol.format.KML.LineStyleParser_,PolyStyle:ol.format.KML.PolyStyleParser_}),ol.format.KML.STYLE_MAP_PARSERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Pair:ol.format.KML.PairDataParser_}),ol.format.KML.prototype.readDocumentOrFolder_=function(n,t){var r=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Document:ol.xml.makeArrayExtender(this.readDocumentOrFolder_,this),Folder:ol.xml.makeArrayExtender(this.readDocumentOrFolder_,this),Placemark:ol.xml.makeArrayPusher(this.readPlacemark_,this),Style:this.readSharedStyle_.bind(this),StyleMap:this.readSharedStyleMap_.bind(this)}),i=ol.xml.pushParseAndPop([],r,n,t,this);return i?i:undefined},ol.format.KML.prototype.readPlacemark_=function(n,t){var i=ol.xml.pushParseAndPop({geometry:null},ol.format.KML.PLACEMARK_PARSERS_,n,t),r,f,e,u;if(!i)return undefined;if(r=new ol.Feature,f=n.getAttribute("id"),f!==null&&r.setId(f),e=t[0],u=i.geometry,u&&ol.format.Feature.transformWithOptions(u,!1,e),r.setGeometry(u),delete i.geometry,this.extractStyles_){var o=i.Style,s=i.styleUrl,h=ol.format.KML.createFeatureStyleFunction_(o,s,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);r.setStyle(h)}return delete i.Style,r.setProperties(i),r},ol.format.KML.prototype.readSharedStyle_=function(n,t){var r=n.getAttribute("id"),u,f,i,e;r!==null&&(u=ol.format.KML.readStyle_(n,t),u&&(i=n.baseURI,i&&i!="about:blank"||(i=window.location.href),i?(e=new URL("#"+r,i),f=e.href):f="#"+r,this.sharedStyles_[f]=u))},ol.format.KML.prototype.readSharedStyleMap_=function(n,t){var r=n.getAttribute("id"),u,f,i,e;r!==null&&(u=ol.format.KML.readStyleMapValue_(n,t),u)&&(i=n.baseURI,i&&i!="about:blank"||(i=window.location.href),i?(e=new URL("#"+r,i),f=e.href):f="#"+r,this.sharedStyles_[f]=u)},ol.format.KML.prototype.readFeature,ol.format.KML.prototype.readFeatureFromNode=function(n,t){if(!ol.array.includes(ol.format.KML.NAMESPACE_URIS_,n.namespaceURI))return null;var i=this.readPlacemark_(n,[this.getReadOptions(n,t)]);return i?i:null},ol.format.KML.prototype.readFeatures,ol.format.KML.prototype.readFeaturesFromNode=function(n,t){var i,r,f,u,e;if(!ol.array.includes(ol.format.KML.NAMESPACE_URIS_,n.namespaceURI))return[];if(r=n.localName,r=="Document"||r=="Folder")return i=this.readDocumentOrFolder_(n,[this.getReadOptions(n,t)]),i?i:[];if(r=="Placemark")return f=this.readPlacemark_(n,[this.getReadOptions(n,t)]),f?[f]:[];if(r=="kml"){for(i=[],u=n.firstElementChild;u;u=u.nextElementSibling)e=this.readFeaturesFromNode(u,t),e&&ol.array.extend(i,e);return i}return[]},ol.format.KML.prototype.readName=function(n){if(ol.xml.isDocument(n))return this.readNameFromDocument(n);if(ol.xml.isNode(n))return this.readNameFromNode(n);if(typeof n=="string"){var t=ol.xml.parse(n);return this.readNameFromDocument(t)}return undefined},ol.format.KML.prototype.readNameFromDocument=function(n){for(var i,t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE&&(i=this.readNameFromNode(t),i))return i;return undefined},ol.format.KML.prototype.readNameFromNode=function(n){for(var i,r,t=n.firstElementChild;t;t=t.nextElementSibling)if(ol.array.includes(ol.format.KML.NAMESPACE_URIS_,t.namespaceURI)&&t.localName=="name")return ol.format.XSD.readString(t);for(t=n.firstElementChild;t;t=t.nextElementSibling)if(i=t.localName,ol.array.includes(ol.format.KML.NAMESPACE_URIS_,t.namespaceURI)&&(i=="Document"||i=="Folder"||i=="Placemark"||i=="kml")&&(r=this.readNameFromNode(t),r))return r;return undefined},ol.format.KML.prototype.readNetworkLinks=function(n){var t=[],i;return ol.xml.isDocument(n)?ol.array.extend(t,this.readNetworkLinksFromDocument(n)):ol.xml.isNode(n)?ol.array.extend(t,this.readNetworkLinksFromNode(n)):typeof n=="string"&&(i=ol.xml.parse(n),ol.array.extend(t,this.readNetworkLinksFromDocument(i))),t},ol.format.KML.prototype.readNetworkLinksFromDocument=function(n){for(var i=[],t=n.firstChild;t;t=t.nextSibling)t.nodeType==Node.ELEMENT_NODE&&ol.array.extend(i,this.readNetworkLinksFromNode(t));return i},ol.format.KML.prototype.readNetworkLinksFromNode=function(n){for(var r=[],u,i,t=n.firstElementChild;t;t=t.nextElementSibling)ol.array.includes(ol.format.KML.NAMESPACE_URIS_,t.namespaceURI)&&t.localName=="NetworkLink"&&(u=ol.xml.pushParseAndPop({},ol.format.KML.NETWORK_LINK_PARSERS_,t,[]),r.push(u));for(t=n.firstElementChild;t;t=t.nextElementSibling)i=t.localName,ol.array.includes(ol.format.KML.NAMESPACE_URIS_,t.namespaceURI)&&(i=="Document"||i=="Folder"||i=="kml")&&ol.array.extend(r,this.readNetworkLinksFromNode(t));return r},ol.format.KML.prototype.readRegion=function(n){var t=[],i;return ol.xml.isDocument(n)?ol.array.extend(t,this.readRegionFromDocument(n)):ol.xml.isNode(n)?ol.array.extend(t,this.readRegionFromNode(n)):typeof n=="string"&&(i=ol.xml.parse(n),ol.array.extend(t,this.readRegionFromDocument(i))),t},ol.format.KML.prototype.readRegionFromDocument=function(n){for(var i=[],t=n.firstChild;t;t=t.nextSibling)t.nodeType==Node.ELEMENT_NODE&&ol.array.extend(i,this.readRegionFromNode(t));return i},ol.format.KML.prototype.readRegionFromNode=function(n){for(var r=[],u,i,t=n.firstElementChild;t;t=t.nextElementSibling)ol.array.includes(ol.format.KML.NAMESPACE_URIS_,t.namespaceURI)&&t.localName=="Region"&&(u=ol.xml.pushParseAndPop({},ol.format.KML.REGION_PARSERS_,t,[]),r.push(u));for(t=n.firstElementChild;t;t=t.nextElementSibling)i=t.localName,ol.array.includes(ol.format.KML.NAMESPACE_URIS_,t.namespaceURI)&&(i=="Document"||i=="Folder"||i=="kml")&&ol.array.extend(r,this.readRegionFromNode(t));return r},ol.format.KML.prototype.readProjection,ol.format.KML.writeColorTextNode_=function(n,t){for(var i=ol.color.asArray(t),e=i.length==4?i[3]:1,f=[e*255,i[2],i[1],i[0]],u,r=0;r<4;++r)u=parseInt(f[r],10).toString(16),f[r]=u.length==1?"0"+u:u;ol.format.XSD.writeStringTextNode(n,f.join(""))},ol.format.KML.writeCoordinatesTextNode_=function(n,t,i){var h=i[i.length-1],e=h.layout,c=h.stride,o,r,f,s,u;if(e==ol.geom.GeometryLayout.XY||e==ol.geom.GeometryLayout.XYM?o=2:e==ol.geom.GeometryLayout.XYZ||e==ol.geom.GeometryLayout.XYZM?o=3:ol.asserts.assert(!1,34),s=t.length,u="",s>0){for(u+=t[0],r=1;r<o;++r)u+=","+t[r];for(f=c;f<s;f+=c)for(u+=" "+t[f],r=1;r<o;++r)u+=","+t[f+r]}ol.format.XSD.writeStringTextNode(n,u)},ol.format.KML.writeDataNode_=function(n,t,i){n.setAttribute("name",t.name);var u={node:n},r=t.value;typeof r=="object"?(r!==null&&r.displayName&&ol.xml.pushSerializeAndPop(u,ol.format.KML.EXTENDEDDATA_NODE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,[r.displayName],i,["displayName"]),r!==null&&r.value&&ol.xml.pushSerializeAndPop(u,ol.format.KML.EXTENDEDDATA_NODE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,[r.value],i,["value"])):ol.xml.pushSerializeAndPop(u,ol.format.KML.EXTENDEDDATA_NODE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,[r],i,["value"])},ol.format.KML.writeDataNodeName_=function(n,t){ol.format.XSD.writeCDATASection(n,t)},ol.format.KML.writeDataNodeValue_=function(n,t){ol.format.XSD.writeStringTextNode(n,t)},ol.format.KML.writeDocument_=function(n,t,i){var r={node:n};ol.xml.pushSerializeAndPop(r,ol.format.KML.DOCUMENT_SERIALIZERS_,ol.format.KML.DOCUMENT_NODE_FACTORY_,t,i,undefined,this)},ol.format.KML.writeExtendedData_=function(n,t,i){for(var f={node:n},u=t.names,e=t.values,o=u.length,r=0;r<o;r++)ol.xml.pushSerializeAndPop(f,ol.format.KML.EXTENDEDDATA_NODE_SERIALIZERS_,ol.format.KML.DATA_NODE_FACTORY_,[{name:u[r],value:e[r]}],i)},ol.format.KML.writeIcon_=function(n,t,i){var f={node:n},e=i[i.length-1].node,r=ol.format.KML.ICON_SEQUENCE_[e.namespaceURI],u=ol.xml.makeSequence(t,r);ol.xml.pushSerializeAndPop(f,ol.format.KML.ICON_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,u,i,r);r=ol.format.KML.ICON_SEQUENCE_[ol.format.KML.GX_NAMESPACE_URIS_[0]];u=ol.xml.makeSequence(t,r);ol.xml.pushSerializeAndPop(f,ol.format.KML.ICON_SERIALIZERS_,ol.format.KML.GX_NODE_FACTORY_,u,i,r)},ol.format.KML.writeIconStyle_=function(n,t,i){var v={node:n},e={},y=t.getSrc(),r=t.getSize(),c=t.getImageSize(),o={href:y},u,f,l,s,h;r&&(o.w=r[0],o.h=r[1],u=t.getAnchor(),f=t.getOrigin(),f&&c&&f[0]!==0&&f[1]!==r[1]&&(o.x=f[0],o.y=c[1]-(f[1]+r[1])),u&&(u[0]!==r[0]/2||u[1]!==r[1]/2)&&(l={x:u[0],xunits:ol.style.IconAnchorUnits.PIXELS,y:r[1]-u[1],yunits:ol.style.IconAnchorUnits.PIXELS},e.hotSpot=l));e.Icon=o;s=t.getScale();s!==1&&(e.scale=s);h=t.getRotation();h!==0&&(e.heading=h);var p=i[i.length-1].node,a=ol.format.KML.ICON_STYLE_SEQUENCE_[p.namespaceURI],w=ol.xml.makeSequence(e,a);ol.xml.pushSerializeAndPop(v,ol.format.KML.ICON_STYLE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,w,i,a)},ol.format.KML.writeLabelStyle_=function(n,t,i){var o={node:n},u={},f=t.getFill(),r;f&&(u.color=f.getColor());r=t.getScale();r&&r!==1&&(u.scale=r);var s=i[i.length-1].node,e=ol.format.KML.LABEL_STYLE_SEQUENCE_[s.namespaceURI],h=ol.xml.makeSequence(u,e);ol.xml.pushSerializeAndPop(o,ol.format.KML.LABEL_STYLE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,h,i,e)},ol.format.KML.writeLineStyle_=function(n,t,i){var u={node:n},f={color:t.getColor(),width:t.getWidth()},e=i[i.length-1].node,r=ol.format.KML.LINE_STYLE_SEQUENCE_[e.namespaceURI],o=ol.xml.makeSequence(f,r);ol.xml.pushSerializeAndPop(u,ol.format.KML.LINE_STYLE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,o,i,r)},ol.format.KML.writeMultiGeometry_=function(n,t,i){var e={node:n},f=t.getType(),r,u;f==ol.geom.GeometryType.GEOMETRY_COLLECTION?(r=t.getGeometries(),u=ol.format.KML.GEOMETRY_NODE_FACTORY_):f==ol.geom.GeometryType.MULTI_POINT?(r=t.getPoints(),u=ol.format.KML.POINT_NODE_FACTORY_):f==ol.geom.GeometryType.MULTI_LINE_STRING?(r=t.getLineStrings(),u=ol.format.KML.LINE_STRING_NODE_FACTORY_):f==ol.geom.GeometryType.MULTI_POLYGON?(r=t.getPolygons(),u=ol.format.KML.POLYGON_NODE_FACTORY_):ol.asserts.assert(!1,39);ol.xml.pushSerializeAndPop(e,ol.format.KML.MULTI_GEOMETRY_SERIALIZERS_,u,r,i)},ol.format.KML.writeBoundaryIs_=function(n,t,i){var r={node:n};ol.xml.pushSerializeAndPop(r,ol.format.KML.BOUNDARY_IS_SERIALIZERS_,ol.format.KML.LINEAR_RING_NODE_FACTORY_,[t],i)},ol.format.KML.writePlacemark_=function(n,t,i){var o={node:n},r,s,e,a,v,h,u,c,l,p,f;t.getId()&&n.setAttribute("id",t.getId());r=t.getProperties();s={address:1,description:1,name:1,open:1,phoneNumber:1,styleUrl:1,visibility:1};s[t.getGeometryName()]=1;e=Object.keys(r||{}).sort().filter(function(n){return!s[n]});e.length>0&&(a=ol.xml.makeSequence(r,e),v={names:e,values:a},ol.xml.pushSerializeAndPop(o,ol.format.KML.PLACEMARK_SERIALIZERS_,ol.format.KML.EXTENDEDDATA_NODE_FACTORY_,[v],i));h=t.getStyleFunction();h&&(u=h.call(t,0),u&&(c=Array.isArray(u)?u[0]:u,this.writeStyles_&&(r.Style=c),l=c.getText(),l&&(r.name=l.getText())));var w=i[i.length-1].node,y=ol.format.KML.PLACEMARK_SEQUENCE_[w.namespaceURI],b=ol.xml.makeSequence(r,y);ol.xml.pushSerializeAndPop(o,ol.format.KML.PLACEMARK_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,b,i,y);p=i[0];f=t.getGeometry();f&&(f=ol.format.Feature.transformWithOptions(f,!0,p));ol.xml.pushSerializeAndPop(o,ol.format.KML.PLACEMARK_SERIALIZERS_,ol.format.KML.GEOMETRY_NODE_FACTORY_,[f],i)},ol.format.KML.writePrimitiveGeometry_=function(n,t,i){var e=t.getFlatCoordinates(),r={node:n},u;r.layout=t.getLayout();r.stride=t.getStride();u=t.getProperties();u.coordinates=e;var o=i[i.length-1].node,f=ol.format.KML.PRIMITIVE_GEOMETRY_SEQUENCE_[o.namespaceURI],s=ol.xml.makeSequence(u,f);ol.xml.pushSerializeAndPop(r,ol.format.KML.PRIMITIVE_GEOMETRY_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,s,i,f)},ol.format.KML.writePolygon_=function(n,t,i){var r=t.getLinearRings(),f=r.shift(),u={node:n};ol.xml.pushSerializeAndPop(u,ol.format.KML.POLYGON_SERIALIZERS_,ol.format.KML.INNER_BOUNDARY_NODE_FACTORY_,r,i);ol.xml.pushSerializeAndPop(u,ol.format.KML.POLYGON_SERIALIZERS_,ol.format.KML.OUTER_BOUNDARY_NODE_FACTORY_,[f],i)},ol.format.KML.writePolyStyle_=function(n,t,i){var r={node:n};ol.xml.pushSerializeAndPop(r,ol.format.KML.POLY_STYLE_SERIALIZERS_,ol.format.KML.COLOR_NODE_FACTORY_,[t.getColor()],i)},ol.format.KML.writeScaleTextNode_=function(n,t){ol.format.XSD.writeDecimalTextNode(n,Math.round(t*1e6)/1e6)},ol.format.KML.writeStyle_=function(n,t,i){var h={node:n},r={},u=t.getFill(),f=t.getStroke(),e=t.getImage(),o=t.getText();e instanceof ol.style.Icon&&(r.IconStyle=e);o&&(r.LabelStyle=o);f&&(r.LineStyle=f);u&&(r.PolyStyle=u);var c=i[i.length-1].node,s=ol.format.KML.STYLE_SEQUENCE_[c.namespaceURI],l=ol.xml.makeSequence(r,s);ol.xml.pushSerializeAndPop(h,ol.format.KML.STYLE_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,l,i,s)},ol.format.KML.writeVec2_=function(n,t){n.setAttribute("x",t.x);n.setAttribute("y",t.y);n.setAttribute("xunits",t.xunits);n.setAttribute("yunits",t.yunits)},ol.format.KML.KML_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["Document","Placemark"]),ol.format.KML.KML_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Document:ol.xml.makeChildAppender(ol.format.KML.writeDocument_),Placemark:ol.xml.makeChildAppender(ol.format.KML.writePlacemark_)}),ol.format.KML.DOCUMENT_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Placemark:ol.xml.makeChildAppender(ol.format.KML.writePlacemark_)}),ol.format.KML.EXTENDEDDATA_NODE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Data:ol.xml.makeChildAppender(ol.format.KML.writeDataNode_),value:ol.xml.makeChildAppender(ol.format.KML.writeDataNodeValue_),displayName:ol.xml.makeChildAppender(ol.format.KML.writeDataNodeName_)}),ol.format.KML.GEOMETRY_TYPE_TO_NODENAME_={Point:"Point",LineString:"LineString",LinearRing:"LinearRing",Polygon:"Polygon",MultiPoint:"MultiGeometry",MultiLineString:"MultiGeometry",MultiPolygon:"MultiGeometry",GeometryCollection:"MultiGeometry"},ol.format.KML.ICON_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["href"],ol.xml.makeStructureNS(ol.format.KML.GX_NAMESPACE_URIS_,["x","y","w","h"])),ol.format.KML.ICON_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{href:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)},ol.xml.makeStructureNS(ol.format.KML.GX_NAMESPACE_URIS_,{x:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),y:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),w:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),h:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode)})),ol.format.KML.ICON_STYLE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["scale","heading","Icon","hotSpot"]),ol.format.KML.ICON_STYLE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{Icon:ol.xml.makeChildAppender(ol.format.KML.writeIcon_),heading:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode),hotSpot:ol.xml.makeChildAppender(ol.format.KML.writeVec2_),scale:ol.xml.makeChildAppender(ol.format.KML.writeScaleTextNode_)}),ol.format.KML.LABEL_STYLE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["color","scale"]),ol.format.KML.LABEL_STYLE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{color:ol.xml.makeChildAppender(ol.format.KML.writeColorTextNode_),scale:ol.xml.makeChildAppender(ol.format.KML.writeScaleTextNode_)}),ol.format.KML.LINE_STYLE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["color","width"]),ol.format.KML.LINE_STYLE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{color:ol.xml.makeChildAppender(ol.format.KML.writeColorTextNode_),width:ol.xml.makeChildAppender(ol.format.XSD.writeDecimalTextNode)}),ol.format.KML.BOUNDARY_IS_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{LinearRing:ol.xml.makeChildAppender(ol.format.KML.writePrimitiveGeometry_)}),ol.format.KML.MULTI_GEOMETRY_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{LineString:ol.xml.makeChildAppender(ol.format.KML.writePrimitiveGeometry_),Point:ol.xml.makeChildAppender(ol.format.KML.writePrimitiveGeometry_),Polygon:ol.xml.makeChildAppender(ol.format.KML.writePolygon_),GeometryCollection:ol.xml.makeChildAppender(ol.format.KML.writeMultiGeometry_)}),ol.format.KML.PLACEMARK_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["name","open","visibility","address","phoneNumber","description","styleUrl","Style"]),ol.format.KML.PLACEMARK_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{ExtendedData:ol.xml.makeChildAppender(ol.format.KML.writeExtendedData_),MultiGeometry:ol.xml.makeChildAppender(ol.format.KML.writeMultiGeometry_),LineString:ol.xml.makeChildAppender(ol.format.KML.writePrimitiveGeometry_),LinearRing:ol.xml.makeChildAppender(ol.format.KML.writePrimitiveGeometry_),Point:ol.xml.makeChildAppender(ol.format.KML.writePrimitiveGeometry_),Polygon:ol.xml.makeChildAppender(ol.format.KML.writePolygon_),Style:ol.xml.makeChildAppender(ol.format.KML.writeStyle_),address:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),description:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),name:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),open:ol.xml.makeChildAppender(ol.format.XSD.writeBooleanTextNode),phoneNumber:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),styleUrl:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),visibility:ol.xml.makeChildAppender(ol.format.XSD.writeBooleanTextNode)}),ol.format.KML.PRIMITIVE_GEOMETRY_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["extrude","tessellate","altitudeMode","coordinates"]),ol.format.KML.PRIMITIVE_GEOMETRY_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{extrude:ol.xml.makeChildAppender(ol.format.XSD.writeBooleanTextNode),tessellate:ol.xml.makeChildAppender(ol.format.XSD.writeBooleanTextNode),altitudeMode:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode),coordinates:ol.xml.makeChildAppender(ol.format.KML.writeCoordinatesTextNode_)}),ol.format.KML.POLYGON_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{outerBoundaryIs:ol.xml.makeChildAppender(ol.format.KML.writeBoundaryIs_),innerBoundaryIs:ol.xml.makeChildAppender(ol.format.KML.writeBoundaryIs_)}),ol.format.KML.POLY_STYLE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{color:ol.xml.makeChildAppender(ol.format.KML.writeColorTextNode_)}),ol.format.KML.STYLE_SEQUENCE_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),ol.format.KML.STYLE_SERIALIZERS_=ol.xml.makeStructureNS(ol.format.KML.NAMESPACE_URIS_,{IconStyle:ol.xml.makeChildAppender(ol.format.KML.writeIconStyle_),LabelStyle:ol.xml.makeChildAppender(ol.format.KML.writeLabelStyle_),LineStyle:ol.xml.makeChildAppender(ol.format.KML.writeLineStyle_),PolyStyle:ol.xml.makeChildAppender(ol.format.KML.writePolyStyle_)}),ol.format.KML.GX_NODE_FACTORY_=function(n,t,i){return ol.xml.createElementNS(ol.format.KML.GX_NAMESPACE_URIS_[0],"gx:"+i)},ol.format.KML.DOCUMENT_NODE_FACTORY_=function(n,t){var i=t[t.length-1].node;return ol.xml.createElementNS(i.namespaceURI,"Placemark")},ol.format.KML.GEOMETRY_NODE_FACTORY_=function(n,t){if(n){var i=t[t.length-1].node;return ol.xml.createElementNS(i.namespaceURI,ol.format.KML.GEOMETRY_TYPE_TO_NODENAME_[n.getType()])}},ol.format.KML.COLOR_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("color"),ol.format.KML.DATA_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("Data"),ol.format.KML.EXTENDEDDATA_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("ExtendedData"),ol.format.KML.INNER_BOUNDARY_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("innerBoundaryIs"),ol.format.KML.POINT_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("Point"),ol.format.KML.LINE_STRING_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("LineString"),ol.format.KML.LINEAR_RING_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("LinearRing"),ol.format.KML.POLYGON_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("Polygon"),ol.format.KML.OUTER_BOUNDARY_NODE_FACTORY_=ol.xml.makeSimpleNodeFactory("outerBoundaryIs"),ol.format.KML.prototype.writeFeatures,ol.format.KML.prototype.writeFeaturesNode=function(n,t){var o,r,u,s;t=this.adaptOptions(t);var i=ol.xml.createElementNS(ol.format.KML.NAMESPACE_URIS_[4],"kml"),f="http://www.w3.org/2000/xmlns/",e="http://www.w3.org/2001/XMLSchema-instance";return ol.xml.setAttributeNS(i,f,"xmlns:gx",ol.format.KML.GX_NAMESPACE_URIS_[0]),ol.xml.setAttributeNS(i,f,"xmlns:xsi",e),ol.xml.setAttributeNS(i,e,"xsi:schemaLocation",ol.format.KML.SCHEMA_LOCATION_),o={node:i},r={},n.length>1?r.Document=n:n.length==1&&(r.Placemark=n[0]),u=ol.format.KML.KML_SEQUENCE_[i.namespaceURI],s=ol.xml.makeSequence(r,u),ol.xml.pushSerializeAndPop(o,ol.format.KML.KML_SERIALIZERS_,ol.xml.OBJECT_PROPERTY_NODE_FACTORY,s,[t],u,this),i},n.provide("ol.ext.PBF"),ol.ext.PBF=function(){},function(){(function(n){"use strict";function t(n){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(n)?n:new Uint8Array(n||0);this.pos=0;this.type=0;this.length=this.buf.length}function y(n,t,i){var e=i.buf,f,u;if((u=e[i.pos++],f=(u&112)>>4,u<128)||(u=e[i.pos++],f|=(u&127)<<3,u<128)||(u=e[i.pos++],f|=(u&127)<<10,u<128)||(u=e[i.pos++],f|=(u&127)<<17,u<128)||(u=e[i.pos++],f|=(u&127)<<24,u<128)||(u=e[i.pos++],f|=(u&1)<<31,u<128))return r(n,f,t);throw new Error("Expected varint not more than 10 bytes");}function i(n){return n.type===t.Bytes?n.readVarint()+n.pos:n.pos+1}function r(n,t,i){return i?t*4294967296+(n>>>0):(t>>>0)*4294967296+(n>>>0)}function p(n,t){var i,r;if(n>=0?(i=n%4294967296|0,r=n/4294967296|0):(i=~(-n%4294967296),r=~(-n/4294967296),i^4294967295?i=i+1|0:(i=0,r=r+1|0)),n>=0x10000000000000000||n<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10);w(i,r,t);b(r,t)}function w(n,t,i){i.buf[i.pos++]=n&127|128;n>>>=7;i.buf[i.pos++]=n&127|128;n>>>=7;i.buf[i.pos++]=n&127|128;n>>>=7;i.buf[i.pos++]=n&127|128;n>>>=7;i.buf[i.pos]=n&127}function b(n,t){var i=(n&7)<<4;(t.buf[t.pos++]|=i|((n>>>=3)?128:0),n)&&(t.buf[t.pos++]=n&127|((n>>>=7)?128:0),n)&&(t.buf[t.pos++]=n&127|((n>>>=7)?128:0),n)&&(t.buf[t.pos++]=n&127|((n>>>=7)?128:0),n)&&(t.buf[t.pos++]=n&127|((n>>>=7)?128:0),n)&&(t.buf[t.pos++]=n&127)}function h(n,t,i){var u=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.ceil(Math.log(t)/(Math.LN2*7)),r;for(i.realloc(u),r=i.pos-1;r>=n;r--)i.buf[r+u]=i.buf[r]}function k(n,t){for(var i=0;i<n.length;i++)t.writeVarint(n[i])}function d(n,t){for(var i=0;i<n.length;i++)t.writeSVarint(n[i])}function g(n,t){for(var i=0;i<n.length;i++)t.writeFloat(n[i])}function nt(n,t){for(var i=0;i<n.length;i++)t.writeDouble(n[i])}function tt(n,t){for(var i=0;i<n.length;i++)t.writeBoolean(n[i])}function it(n,t){for(var i=0;i<n.length;i++)t.writeFixed32(n[i])}function rt(n,t){for(var i=0;i<n.length;i++)t.writeSFixed32(n[i])}function ut(n,t){for(var i=0;i<n.length;i++)t.writeFixed64(n[i])}function ft(n,t){for(var i=0;i<n.length;i++)t.writeSFixed64(n[i])}function o(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16)+n[t+3]*16777216}function u(n,t,i){n[i]=t;n[i+1]=t>>>8;n[i+2]=t>>>16;n[i+3]=t>>>24}function c(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16)+(n[t+3]<<24)}function et(n,t,i){for(var h="",u=t,f,s,c;u<i;){var e=n[u],r=null,o=e>239?4:e>223?3:e>191?2:1;if(u+o>i)break;o===1?e<128&&(r=e):o===2?(f=n[u+1],(f&192)==128&&(r=(e&31)<<6|f&63,r<=127&&(r=null))):o===3?(f=n[u+1],s=n[u+2],(f&192)==128&&(s&192)==128&&(r=(e&15)<<12|(f&63)<<6|s&63,(r<=2047||r>=55296&&r<=57343)&&(r=null))):o===4&&(f=n[u+1],s=n[u+2],c=n[u+3],(f&192)==128&&(s&192)==128&&(c&192)==128&&(r=(e&15)<<18|(f&63)<<12|(s&63)<<6|c&63,(r<=65535||r>=1114112)&&(r=null)));r===null?(r=65533,o=1):r>65535&&(r-=65536,h+=String.fromCharCode(r>>>10&1023|55296),r=56320|r&1023);h+=String.fromCharCode(r);u+=o}return h}function ot(n,t,i){for(var f=0,r,u;f<t.length;f++){if(r=t.charCodeAt(f),r>55295&&r<57344)if(u)if(r<56320){n[i++]=239;n[i++]=191;n[i++]=189;u=r;continue}else r=u-55296<<10|r-56320|65536,u=null;else{r>56319||f+1===t.length?(n[i++]=239,n[i++]=191,n[i++]=189):u=r;continue}else u&&(n[i++]=239,n[i++]=191,n[i++]=189,u=null);r<128?n[i++]=r:(r<2048?n[i++]=r>>6|192:(r<65536?n[i++]=r>>12|224:(n[i++]=r>>18|240,n[i++]=r>>12&63|128),n[i++]=r>>6&63|128),n[i++]=r&63|128)}return i}var l=function(n,t,i,r,u){var f,o,l=u*8-r-1,a=(1<<l)-1,v=a>>1,e=-7,s=i?u-1:0,c=i?-1:1,h=n[t+s];for(s+=c,f=h&(1<<-e)-1,h>>=-e,e+=l;e>0;f=f*256+n[t+s],s+=c,e-=8);for(o=f&(1<<-e)-1,f>>=-e,e+=r;e>0;o=o*256+n[t+s],s+=c,e-=8);if(f===0)f=1-v;else{if(f===a)return o?NaN:(h?-1:1)*Infinity;o=o+Math.pow(2,r);f=f-v}return(h?-1:1)*o*Math.pow(2,f-r)},a=function(n,t,i,r,u,f){var e,o,s,l=f*8-u-1,a=(1<<l)-1,h=a>>1,y=u===23?Math.pow(2,-24)-Math.pow(2,-77):0,c=r?0:f-1,v=r?1:-1,p=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===Infinity?(o=isNaN(t)?1:0,e=a):(e=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-e))<1&&(e--,s*=2),t+=e+h>=1?y/s:y*Math.pow(2,1-h),t*s>=2&&(e++,s/=2),e+h>=a?(o=0,e=a):e+h>=1?(o=(t*s-1)*Math.pow(2,u),e=e+h):(o=t*Math.pow(2,h-1)*Math.pow(2,u),e=0));u>=8;n[i+c]=o&255,c+=v,o/=256,u-=8);for(e=e<<u|o,l+=u;l>0;n[i+c]=e&255,c+=v,e/=256,l-=8);n[i+c-v]|=p*128},f={read:l,write:a},v=t,e,s;t.Varint=0;t.Fixed64=1;t.Bytes=2;t.Fixed32=5;e=4294967296;s=1/e;t.prototype={destroy:function(){this.buf=null},readFields:function(n,t,i){for(i=i||this.length;this.pos<i;){var r=this.readVarint(),u=r>>3,f=this.pos;this.type=r&7;n(u,t,this);this.pos===f&&this.skip(r)}return t},readMessage:function(n,t){return this.readFields(n,t,this.readVarint()+this.pos)},readFixed32:function(){var n=o(this.buf,this.pos);return this.pos+=4,n},readSFixed32:function(){var n=c(this.buf,this.pos);return this.pos+=4,n},readFixed64:function(){var n=o(this.buf,this.pos)+o(this.buf,this.pos+4)*e;return this.pos+=8,n},readSFixed64:function(){var n=o(this.buf,this.pos)+c(this.buf,this.pos+4)*e;return this.pos+=8,n},readFloat:function(){var n=f.read(this.buf,this.pos,!0,23,4);return this.pos+=4,n},readDouble:function(){var n=f.read(this.buf,this.pos,!0,52,8);return this.pos+=8,n},readVarint:function(n){var r=this.buf,i,t;return(t=r[this.pos++],i=t&127,t<128)?i:(t=r[this.pos++],i|=(t&127)<<7,t<128)?i:(t=r[this.pos++],i|=(t&127)<<14,t<128)?i:(t=r[this.pos++],i|=(t&127)<<21,t<128)?i:(t=r[this.pos],i|=(t&15)<<28,y(i,n,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var n=this.readVarint();return n%2==1?(n+1)/-2:n/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var n=this.readVarint()+this.pos,t=et(this.buf,this.pos,n);return this.pos=n,t},readBytes:function(){var n=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,n);return this.pos=n,t},readPackedVarint:function(n,t){var r=i(this);for(n=n||[];this.pos<r;)n.push(this.readVarint(t));return n},readPackedSVarint:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readSVarint());return n},readPackedBoolean:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readBoolean());return n},readPackedFloat:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readFloat());return n},readPackedDouble:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readDouble());return n},readPackedFixed32:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readFixed32());return n},readPackedSFixed32:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readSFixed32());return n},readPackedFixed64:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readFixed64());return n},readPackedSFixed64:function(n){var t=i(this);for(n=n||[];this.pos<t;)n.push(this.readSFixed64());return n},skip:function(n){var i=n&7;if(i===t.Varint)while(this.buf[this.pos++]>127);else if(i===t.Bytes)this.pos=this.readVarint()+this.pos;else if(i===t.Fixed32)this.pos+=4;else if(i===t.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+i);},writeTag:function(n,t){this.writeVarint(n<<3|t)},realloc:function(n){for(var t=this.length||16,i;t<this.pos+n;)t*=2;t!==this.length&&(i=new Uint8Array(t),i.set(this.buf),this.buf=i,this.length=t)},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(n){this.realloc(4);u(this.buf,n,this.pos);this.pos+=4},writeSFixed32:function(n){this.realloc(4);u(this.buf,n,this.pos);this.pos+=4},writeFixed64:function(n){this.realloc(8);u(this.buf,n&-1,this.pos);u(this.buf,Math.floor(n*s),this.pos+4);this.pos+=8},writeSFixed64:function(n){this.realloc(8);u(this.buf,n&-1,this.pos);u(this.buf,Math.floor(n*s),this.pos+4);this.pos+=8},writeVarint:function(n){if(n=+n||0,n>268435455||n<0){p(n,this);return}(this.realloc(4),this.buf[this.pos++]=n&127|(n>127?128:0),n<=127)||(this.buf[this.pos++]=(n>>>=7)&127|(n>127?128:0),n<=127)||(this.buf[this.pos++]=(n>>>=7)&127|(n>127?128:0),n<=127)||(this.buf[this.pos++]=n>>>7&127)},writeSVarint:function(n){this.writeVarint(n<0?-n*2-1:n*2)},writeBoolean:function(n){this.writeVarint(Boolean(n))},writeString:function(n){var i,t;n=String(n);this.realloc(n.length*4);this.pos++;i=this.pos;this.pos=ot(this.buf,n,this.pos);t=this.pos-i;t>=128&&h(i,t,this);this.pos=i-1;this.writeVarint(t);this.pos+=t},writeFloat:function(n){this.realloc(4);f.write(this.buf,n,this.pos,!0,23,4);this.pos+=4},writeDouble:function(n){this.realloc(8);f.write(this.buf,n,this.pos,!0,52,8);this.pos+=8},writeBytes:function(n){var i=n.length,t;for(this.writeVarint(i),this.realloc(i),t=0;t<i;t++)this.buf[this.pos++]=n[t]},writeRawMessage:function(n,t){var r,i;this.pos++;r=this.pos;n(t,this);i=this.pos-r;i>=128&&h(r,i,this);this.pos=r-1;this.writeVarint(i);this.pos+=i},writeMessage:function(n,i,r){this.writeTag(n,t.Bytes);this.writeRawMessage(i,r)},writePackedVarint:function(n,t){this.writeMessage(n,k,t)},writePackedSVarint:function(n,t){this.writeMessage(n,d,t)},writePackedBoolean:function(n,t){this.writeMessage(n,tt,t)},writePackedFloat:function(n,t){this.writeMessage(n,g,t)},writePackedDouble:function(n,t){this.writeMessage(n,nt,t)},writePackedFixed32:function(n,t){this.writeMessage(n,it,t)},writePackedSFixed32:function(n,t){this.writeMessage(n,rt,t)},writePackedFixed64:function(n,t){this.writeMessage(n,ut,t)},writePackedSFixed64:function(n,t){this.writeMessage(n,ft,t)},writeBytesField:function(n,i){this.writeTag(n,t.Bytes);this.writeBytes(i)},writeFixed32Field:function(n,i){this.writeTag(n,t.Fixed32);this.writeFixed32(i)},writeSFixed32Field:function(n,i){this.writeTag(n,t.Fixed32);this.writeSFixed32(i)},writeFixed64Field:function(n,i){this.writeTag(n,t.Fixed64);this.writeFixed64(i)},writeSFixed64Field:function(n,i){this.writeTag(n,t.Fixed64);this.writeSFixed64(i)},writeVarintField:function(n,i){this.writeTag(n,t.Varint);this.writeVarint(i)},writeSVarintField:function(n,i){this.writeTag(n,t.Varint);this.writeSVarint(i)},writeStringField:function(n,i){this.writeTag(n,t.Bytes);this.writeString(i)},writeFloatField:function(n,i){this.writeTag(n,t.Fixed32);this.writeFloat(i)},writeDoubleField:function(n,i){this.writeTag(n,t.Fixed64);this.writeDouble(i)},writeBooleanField:function(n,t){this.writeVarintField(n,Boolean(t))}};n["default"]=v})(this.PBF=this.PBF||{})}.call(ol.ext),ol.ext.PBF=ol.ext.PBF.default,n.provide("ol.render.Feature"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.geom.GeometryType"),n.require("ol.geom.flat.center"),n.require("ol.geom.flat.interiorpoint"),n.require("ol.geom.flat.interpolate"),n.require("ol.geom.flat.transform"),n.require("ol.transform"),ol.render.Feature=function(n,t,i,r,u){this.extent_;this.id_=u;this.type_=n;this.flatCoordinates_=t;this.flatInteriorPoints_=null;this.flatMidpoints_=null;this.ends_=i;this.properties_=r;this.tmpTransform_=ol.transform.create()},ol.render.Feature.prototype.get=function(n){return this.properties_[n]},ol.render.Feature.prototype.getEnds=ol.render.Feature.prototype.getEndss=function(){return this.ends_},ol.render.Feature.prototype.getExtent=function(){return this.extent_||(this.extent_=this.type_===ol.geom.GeometryType.POINT?ol.extent.createOrUpdateFromCoordinate(this.flatCoordinates_):ol.extent.createOrUpdateFromFlatCoordinates(this.flatCoordinates_,0,this.flatCoordinates_.length,2)),this.extent_},ol.render.Feature.prototype.getFlatInteriorPoint=function(){if(!this.flatInteriorPoints_){var n=ol.extent.getCenter(this.getExtent());this.flatInteriorPoints_=ol.geom.flat.interiorpoint.linearRings(this.flatCoordinates_,0,this.ends_,2,n,0)}return this.flatInteriorPoints_},ol.render.Feature.prototype.getFlatInteriorPoints=function(){if(!this.flatInteriorPoints_){var n=ol.geom.flat.center.linearRingss(this.flatCoordinates_,0,this.ends_,2);this.flatInteriorPoints_=ol.geom.flat.interiorpoint.linearRingss(this.flatCoordinates_,0,this.ends_,2,n)}return this.flatInteriorPoints_},ol.render.Feature.prototype.getFlatMidpoint=function(){return this.flatMidpoints_||(this.flatMidpoints_=ol.geom.flat.interpolate.lineString(this.flatCoordinates_,0,this.flatCoordinates_.length,2,.5)),this.flatMidpoints_},ol.render.Feature.prototype.getFlatMidpoints=function(){var n,u,t,f;if(!this.flatMidpoints_){this.flatMidpoints_=[];var e=this.flatCoordinates_,i=0,r=this.ends_;for(n=0,u=r.length;n<u;++n)t=r[n],f=ol.geom.flat.interpolate.lineString(e,i,t,2,.5),ol.array.extend(this.flatMidpoints_,f),i=t}return this.flatMidpoints_},ol.render.Feature.prototype.getId=function(){return this.id_},ol.render.Feature.prototype.getOrientedFlatCoordinates=function(){return this.flatCoordinates_},ol.render.Feature.prototype.getFlatCoordinates=ol.render.Feature.prototype.getOrientedFlatCoordinates,ol.render.Feature.prototype.getGeometry=function(){return this},ol.render.Feature.prototype.getProperties=function(){return this.properties_},ol.render.Feature.prototype.getSimplifiedGeometry=ol.render.Feature.prototype.getGeometry,ol.render.Feature.prototype.getStride=function(){return 2},ol.render.Feature.prototype.getStyleFunction=ol.nullFunction,ol.render.Feature.prototype.getType=function(){return this.type_},ol.render.Feature.prototype.transform=function(n){var u=n.getExtent(),t=n.getWorldExtent(),i=ol.extent.getHeight(t)/ol.extent.getHeight(u),r=this.tmpTransform_;ol.transform.compose(r,t[0],t[3],i,-i,0,0,0);ol.geom.flat.transform.transform2D(this.flatCoordinates_,0,this.flatCoordinates_.length,2,r,this.flatCoordinates_)},n.provide("ol.format.MVT"),n.require("ol"),n.require("ol.asserts"),n.require("ol.ext.PBF"),n.require("ol.format.Feature"),n.require("ol.format.FormatType"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.geom.flat.orient"),n.require("ol.proj.Projection"),n.require("ol.proj.Units"),n.require("ol.render.Feature"),ol.format.MVT=function(n){ol.format.Feature.call(this);var t=n?n:{};this.defaultDataProjection=new ol.proj.Projection({code:"EPSG:3857",units:ol.proj.Units.TILE_PIXELS});this.featureClass_=t.featureClass?t.featureClass:ol.render.Feature;this.geometryName_=t.geometryName;this.layerName_=t.layerName?t.layerName:"layer";this.layers_=t.layers?t.layers:null;this.extent_=null},ol.inherits(ol.format.MVT,ol.format.Feature),ol.format.MVT.pbfReaders_={layers:function(n,t,i){if(n===3){var r={keys:[],values:[],features:[]},u=i.readVarint()+i.pos;i.readFields(ol.format.MVT.pbfReaders_.layer,r,u);r.length=r.features.length;r.length&&(t[r.name]=r)}},layer:function(n,t,i){if(n===15)t.version=i.readVarint();else if(n===1)t.name=i.readString();else if(n===5)t.extent=i.readVarint();else if(n===2)t.features.push(i.pos);else if(n===3)t.keys.push(i.readString());else if(n===4){for(var r=null,u=i.readVarint()+i.pos;i.pos<u;)n=i.readVarint()>>3,r=n===1?i.readString():n===2?i.readFloat():n===3?i.readDouble():n===4?i.readVarint64():n===5?i.readVarint():n===6?i.readSVarint():n===7?i.readBoolean():null;t.values.push(r)}},feature:function(n,t,i){var r,u,f;if(n==1)t.id=i.readVarint();else if(n==2)for(r=i.readVarint()+i.pos;i.pos<r;)u=t.layer.keys[i.readVarint()],f=t.layer.values[i.readVarint()],t.properties[u]=f;else n==3?t.type=i.readVarint():n==4&&(t.geometry=i.pos)}},ol.format.MVT.readRawFeature_=function(n,t,i){n.pos=t.features[i];var u=n.readVarint()+n.pos,r={layer:t,type:0,properties:{}};return n.readFields(ol.format.MVT.pbfReaders_.feature,r,u),r},ol.format.MVT.readRawGeometry_=function(n,t,i,r){var s;n.pos=t.geometry;for(var l=n.readVarint()+n.pos,e=1,o=0,h=0,c=0,u=0,f=0;n.pos<l;)o||(s=n.readVarint(),e=s&7,o=s>>3),o--,e===1||e===2?(h+=n.readSVarint(),c+=n.readSVarint(),e===1&&u>f&&(r.push(u),f=u),i.push(h,c),u+=2):e===7?u>f&&(i.push(i[f],i[f+1]),u+=2):ol.asserts.assert(!1,59);u>f&&(r.push(u),f=u)},ol.format.MVT.getGeometryType_=function(n,t){var i;return n===1?i=t===1?ol.geom.GeometryType.POINT:ol.geom.GeometryType.MULTI_POINT:n===2?i=t===1?ol.geom.GeometryType.LINE_STRING:ol.geom.GeometryType.MULTI_LINE_STRING:n===3&&(i=ol.geom.GeometryType.POLYGON),i},ol.format.MVT.prototype.createFeature_=function(n,t,i){var v=t.type,f,c,h,o,r,u,s,e,w,a,b;if(v===0)return null;if(c=t.id,h=t.properties,h[this.layerName_]=t.layer.name,o=[],r=[],ol.format.MVT.readRawGeometry_(n,t,o,r),u=ol.format.MVT.getGeometryType_(v,r.length),this.featureClass_===ol.render.Feature)f=new this.featureClass_(u,o,r,h,c);else{if(u==ol.geom.GeometryType.POLYGON){var l=[],y=0,p=0;for(e=0,w=r.length;e<w;++e)a=r[e],ol.geom.flat.orient.linearRingIsClockwise(o,y,a,2)||(l.push(r.slice(p,e)),p=e),y=a;l.length>1?(r=l,s=new ol.geom.MultiPolygon(null)):s=new ol.geom.Polygon(null)}else s=u===ol.geom.GeometryType.POINT?new ol.geom.Point(null):u===ol.geom.GeometryType.LINE_STRING?new ol.geom.LineString(null):u===ol.geom.GeometryType.POLYGON?new ol.geom.Polygon(null):u===ol.geom.GeometryType.MULTI_POINT?new ol.geom.MultiPoint(null):u===ol.geom.GeometryType.MULTI_LINE_STRING?new ol.geom.MultiLineString(null):null;s.setFlatCoordinates(ol.geom.GeometryLayout.XY,o,r);f=new this.featureClass_;this.geometryName_&&f.setGeometryName(this.geometryName_);b=ol.format.Feature.transformWithOptions(s,!1,this.adaptOptions(i));f.setGeometry(b);f.setId(c);f.setProperties(h)}return f},ol.format.MVT.prototype.getLastExtent=function(){return this.extent_},ol.format.MVT.prototype.getType=function(){return ol.format.FormatType.ARRAY_BUFFER},ol.format.MVT.prototype.readFeatures=function(n){var f=this.layers_,r=new ol.ext.PBF(n),e=r.readFields(ol.format.MVT.pbfReaders_.layers,{}),o=[],t,u,s,i,h;for(u in e)if(!f||f.indexOf(u)!=-1){for(t=e[u],i=0,h=t.length;i<h;++i)s=ol.format.MVT.readRawFeature_(r,t,i),o.push(this.createFeature_(r,s));this.extent_=t?[0,0,t.extent,t.extent]:null}return o},ol.format.MVT.prototype.readProjection=function(){return this.defaultDataProjection},ol.format.MVT.prototype.setLayers=function(n){this.layers_=n},ol.format.MVT.prototype.readFeature=function(){},ol.format.MVT.prototype.readGeometry=function(){},ol.format.MVT.prototype.writeFeature=function(){},ol.format.MVT.prototype.writeGeometry=function(){},ol.format.MVT.prototype.writeFeatures=function(){},n.provide("ol.format.OSMXML"),n.require("ol"),n.require("ol.array"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.XMLFeature"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.xml"),ol.format.OSMXML=function(){ol.format.XMLFeature.call(this);this.defaultDataProjection=ol.proj.get("EPSG:4326")},ol.inherits(ol.format.OSMXML,ol.format.XMLFeature),ol.format.OSMXML.readNode_=function(n,t){var s=t[0],f=t[t.length-1],e=n.getAttribute("id"),o=[parseFloat(n.getAttribute("lon")),parseFloat(n.getAttribute("lat"))],r,u,i;f.nodes[e]=o;r=ol.xml.pushParseAndPop({tags:{}},ol.format.OSMXML.NODE_PARSERS_,n,t);ol.obj.isEmpty(r.tags)||(u=new ol.geom.Point(o),ol.format.Feature.transformWithOptions(u,!1,s),i=new ol.Feature(u),i.setId(e),i.setProperties(r.tags),f.features.push(i))},ol.format.OSMXML.readWay_=function(n,t){var i=n.getAttribute("id"),r=ol.xml.pushParseAndPop({id:i,ndrefs:[],tags:{}},ol.format.OSMXML.WAY_PARSERS_,n,t),u=t[t.length-1];u.ways.push(r)},ol.format.OSMXML.readNd_=function(n,t){var i=t[t.length-1];i.ndrefs.push(n.getAttribute("ref"))},ol.format.OSMXML.readTag_=function(n,t){var i=t[t.length-1];i.tags[n.getAttribute("k")]=n.getAttribute("v")},ol.format.OSMXML.NAMESPACE_URIS_=[null],ol.format.OSMXML.WAY_PARSERS_=ol.xml.makeStructureNS(ol.format.OSMXML.NAMESPACE_URIS_,{nd:ol.format.OSMXML.readNd_,tag:ol.format.OSMXML.readTag_}),ol.format.OSMXML.PARSERS_=ol.xml.makeStructureNS(ol.format.OSMXML.NAMESPACE_URIS_,{node:ol.format.OSMXML.readNode_,way:ol.format.OSMXML.readWay_}),ol.format.OSMXML.NODE_PARSERS_=ol.xml.makeStructureNS(ol.format.OSMXML.NAMESPACE_URIS_,{tag:ol.format.OSMXML.readTag_}),ol.format.OSMXML.prototype.readFeatures,ol.format.OSMXML.prototype.readFeaturesFromNode=function(n,t){var h=this.getReadOptions(n,t),r,e,i,f,o,c,l,u,s;if(n.localName=="osm"){for(r=ol.xml.pushParseAndPop({nodes:{},ways:[],features:[]},ol.format.OSMXML.PARSERS_,n,[h]),e=0;e<r.ways.length;e++){for(i=r.ways[e],f=[],o=0,c=i.ndrefs.length;o<c;o++)l=r.nodes[i.ndrefs[o]],ol.array.extend(f,l);i.ndrefs[0]==i.ndrefs[i.ndrefs.length-1]?(u=new ol.geom.Polygon(null),u.setFlatCoordinates(ol.geom.GeometryLayout.XY,f,[f.length])):(u=new ol.geom.LineString(null),u.setFlatCoordinates(ol.geom.GeometryLayout.XY,f));ol.format.Feature.transformWithOptions(u,!1,h);s=new ol.Feature(u);s.setId(i.id);s.setProperties(i.tags);r.features.push(s)}if(r.features)return r.features}return[]},ol.format.OSMXML.prototype.readProjection,ol.format.OSMXML.prototype.writeFeatureNode=function(){},ol.format.OSMXML.prototype.writeFeaturesNode=function(){},ol.format.OSMXML.prototype.writeGeometryNode=function(){},n.provide("ol.format.XLink"),ol.format.XLink.NAMESPACE_URI="http://www.w3.org/1999/xlink",ol.format.XLink.readHref=function(n){return n.getAttributeNS(ol.format.XLink.NAMESPACE_URI,"href")},n.provide("ol.format.XML"),n.require("ol.xml"),ol.format.XML=function(){},ol.format.XML.prototype.read=function(n){if(ol.xml.isDocument(n))return this.readFromDocument(n);if(ol.xml.isNode(n))return this.readFromNode(n);if(typeof n=="string"){var t=ol.xml.parse(n);return this.readFromDocument(t)}return null},ol.format.XML.prototype.readFromDocument=function(){},ol.format.XML.prototype.readFromNode=function(){},n.provide("ol.format.OWS"),n.require("ol"),n.require("ol.format.XLink"),n.require("ol.format.XML"),n.require("ol.format.XSD"),n.require("ol.xml"),ol.format.OWS=function(){ol.format.XML.call(this)},ol.inherits(ol.format.OWS,ol.format.XML),ol.format.OWS.prototype.readFromDocument=function(n){for(var t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE)return this.readFromNode(t);return null},ol.format.OWS.prototype.readFromNode=function(n){var t=ol.xml.pushParseAndPop({},ol.format.OWS.PARSERS_,n,[]);return t?t:null},ol.format.OWS.readAddress_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.ADDRESS_PARSERS_,n,t)},ol.format.OWS.readAllowedValues_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.ALLOWED_VALUES_PARSERS_,n,t)},ol.format.OWS.readConstraint_=function(n,t){var i=n.getAttribute("name");return i?ol.xml.pushParseAndPop({name:i},ol.format.OWS.CONSTRAINT_PARSERS_,n,t):undefined},ol.format.OWS.readContactInfo_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.CONTACT_INFO_PARSERS_,n,t)},ol.format.OWS.readDcp_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.DCP_PARSERS_,n,t)},ol.format.OWS.readGet_=function(n,t){var i=ol.format.XLink.readHref(n);return i?ol.xml.pushParseAndPop({href:i},ol.format.OWS.REQUEST_METHOD_PARSERS_,n,t):undefined},ol.format.OWS.readHttp_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.HTTP_PARSERS_,n,t)},ol.format.OWS.readOperation_=function(n,t){var u=n.getAttribute("name"),i=ol.xml.pushParseAndPop({},ol.format.OWS.OPERATION_PARSERS_,n,t),r;if(!i)return undefined;r=t[t.length-1];r[u]=i},ol.format.OWS.readOperationsMetadata_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.OPERATIONS_METADATA_PARSERS_,n,t)},ol.format.OWS.readPhone_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.PHONE_PARSERS_,n,t)},ol.format.OWS.readServiceIdentification_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.SERVICE_IDENTIFICATION_PARSERS_,n,t)},ol.format.OWS.readServiceContact_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.SERVICE_CONTACT_PARSERS_,n,t)},ol.format.OWS.readServiceProvider_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.OWS.SERVICE_PROVIDER_PARSERS_,n,t)},ol.format.OWS.readValue_=function(n){return ol.format.XSD.readString(n)},ol.format.OWS.NAMESPACE_URIS_=[null,"http://www.opengis.net/ows/1.1"],ol.format.OWS.PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{ServiceIdentification:ol.xml.makeObjectPropertySetter(ol.format.OWS.readServiceIdentification_),ServiceProvider:ol.xml.makeObjectPropertySetter(ol.format.OWS.readServiceProvider_),OperationsMetadata:ol.xml.makeObjectPropertySetter(ol.format.OWS.readOperationsMetadata_)}),ol.format.OWS.ADDRESS_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{DeliveryPoint:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),City:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),AdministrativeArea:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),PostalCode:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Country:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ElectronicMailAddress:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.OWS.ALLOWED_VALUES_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Value:ol.xml.makeObjectPropertyPusher(ol.format.OWS.readValue_)}),ol.format.OWS.CONSTRAINT_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{AllowedValues:ol.xml.makeObjectPropertySetter(ol.format.OWS.readAllowedValues_)}),ol.format.OWS.CONTACT_INFO_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Phone:ol.xml.makeObjectPropertySetter(ol.format.OWS.readPhone_),Address:ol.xml.makeObjectPropertySetter(ol.format.OWS.readAddress_)}),ol.format.OWS.DCP_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{HTTP:ol.xml.makeObjectPropertySetter(ol.format.OWS.readHttp_)}),ol.format.OWS.HTTP_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Get:ol.xml.makeObjectPropertyPusher(ol.format.OWS.readGet_),Post:undefined}),ol.format.OWS.OPERATION_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{DCP:ol.xml.makeObjectPropertySetter(ol.format.OWS.readDcp_)}),ol.format.OWS.OPERATIONS_METADATA_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Operation:ol.format.OWS.readOperation_}),ol.format.OWS.PHONE_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Voice:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Facsimile:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.OWS.REQUEST_METHOD_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Constraint:ol.xml.makeObjectPropertyPusher(ol.format.OWS.readConstraint_)}),ol.format.OWS.SERVICE_CONTACT_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{IndividualName:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),PositionName:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ContactInfo:ol.xml.makeObjectPropertySetter(ol.format.OWS.readContactInfo_)}),ol.format.OWS.SERVICE_IDENTIFICATION_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{Abstract:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),AccessConstraints:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Fees:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ServiceTypeVersion:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ServiceType:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.OWS.SERVICE_PROVIDER_PARSERS_=ol.xml.makeStructureNS(ol.format.OWS.NAMESPACE_URIS_,{ProviderName:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ProviderSite:ol.xml.makeObjectPropertySetter(ol.format.XLink.readHref),ServiceContact:ol.xml.makeObjectPropertySetter(ol.format.OWS.readServiceContact_)}),n.provide("ol.geom.flat.flip"),ol.geom.flat.flip.flipXY=function(n,t,i,r,u,f){var e,o,s,c,h;for(u!==undefined?(e=u,o=f!==undefined?f:0):(e=[],o=0),s=t;s<i;)for(c=n[s++],e[o++]=n[s++],e[o++]=c,h=2;h<r;++h)e[o++]=n[s++];return e.length=o,e},n.provide("ol.format.Polyline"),n.require("ol"),n.require("ol.asserts"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.TextFeature"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.flip"),n.require("ol.geom.flat.inflate"),n.require("ol.proj"),ol.format.Polyline=function(n){var t=n?n:{};ol.format.TextFeature.call(this);this.defaultDataProjection=ol.proj.get("EPSG:4326");this.factor_=t.factor?t.factor:1e5;this.geometryLayout_=t.geometryLayout?t.geometryLayout:ol.geom.GeometryLayout.XY},ol.inherits(ol.format.Polyline,ol.format.TextFeature),ol.format.Polyline.encodeDeltas=function(n,t,i){for(var h=i?i:1e5,f=new Array(t),u,o,e,s,r=0;r<t;++r)f[r]=0;for(u=0,o=n.length;u<o;)for(r=0;r<t;++r,++u)e=n[u],s=e-f[r],f[r]=e,n[u]=s;return ol.format.Polyline.encodeFloats(n,h)},ol.format.Polyline.decodeDeltas=function(n,t,i){for(var s=i?i:1e5,e=new Array(t),u,f,o,r=0;r<t;++r)e[r]=0;for(u=ol.format.Polyline.decodeFloats(n,s),f=0,o=u.length;f<o;)for(r=0;r<t;++r,++f)e[r]+=u[f],u[f]=e[r];return u},ol.format.Polyline.encodeFloats=function(n,t){for(var u=t?t:1e5,i=0,r=n.length;i<r;++i)n[i]=Math.round(n[i]*u);return ol.format.Polyline.encodeSignedIntegers(n)},ol.format.Polyline.decodeFloats=function(n,t){for(var f=t?t:1e5,r=ol.format.Polyline.decodeSignedIntegers(n),i=0,u=r.length;i<u;++i)r[i]/=f;return r},ol.format.Polyline.encodeSignedIntegers=function(n){for(var i,t=0,r=n.length;t<r;++t)i=n[t],n[t]=i<0?~(i<<1):i<<1;return ol.format.Polyline.encodeUnsignedIntegers(n)},ol.format.Polyline.decodeSignedIntegers=function(n){for(var i=ol.format.Polyline.decodeUnsignedIntegers(n),r,t=0,u=i.length;t<u;++t)r=i[t],i[t]=r&1?~(r>>1):r>>1;return i},ol.format.Polyline.encodeUnsignedIntegers=function(n){for(var i="",t=0,r=n.length;t<r;++t)i+=ol.format.Polyline.encodeUnsignedInteger(n[t]);return i},ol.format.Polyline.decodeUnsignedIntegers=function(n){for(var f=[],i=0,r=0,u,t=0,e=n.length;t<e;++t)u=n.charCodeAt(t)-63,i|=(u&31)<<r,u<32?(f.push(i),i=0,r=0):r+=5;return f},ol.format.Polyline.encodeUnsignedInteger=function(n){for(var t,i="";n>=32;)t=(32|n&31)+63,i+=String.fromCharCode(t),n>>=5;return t=n+63,i+String.fromCharCode(t)},ol.format.Polyline.prototype.readFeature,ol.format.Polyline.prototype.readFeatureFromText=function(n,t){var i=this.readGeometryFromText(n,t);return new ol.Feature(i)},ol.format.Polyline.prototype.readFeatures,ol.format.Polyline.prototype.readFeaturesFromText=function(n,t){var i=this.readFeatureFromText(n,t);return[i]},ol.format.Polyline.prototype.readGeometry,ol.format.Polyline.prototype.readGeometryFromText=function(n,t){var r=ol.geom.SimpleGeometry.getStrideForLayout(this.geometryLayout_),i=ol.format.Polyline.decodeDeltas(n,r,this.factor_),u;return ol.geom.flat.flip.flipXY(i,0,i.length,r,i),u=ol.geom.flat.inflate.coordinates(i,0,i.length,r),ol.format.Feature.transformWithOptions(new ol.geom.LineString(u,this.geometryLayout_),!1,this.adaptOptions(t))},ol.format.Polyline.prototype.readProjection,ol.format.Polyline.prototype.writeFeatureText=function(n,t){var i=n.getGeometry();return i?this.writeGeometryText(i,t):(ol.asserts.assert(!1,40),"")},ol.format.Polyline.prototype.writeFeaturesText=function(n,t){return this.writeFeatureText(n[0],t)},ol.format.Polyline.prototype.writeGeometry,ol.format.Polyline.prototype.writeGeometryText=function(n,t){n=ol.format.Feature.transformWithOptions(n,!0,this.adaptOptions(t));var i=n.getFlatCoordinates(),r=n.getStride();return ol.geom.flat.flip.flipXY(i,0,i.length,r,i),ol.format.Polyline.encodeDeltas(i,r,this.factor_)},n.provide("ol.format.TopoJSON"),n.require("ol"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.JSONFeature"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.proj"),ol.format.TopoJSON=function(n){var t=n?n:{};ol.format.JSONFeature.call(this);this.layerName_=t.layerName;this.layers_=t.layers?t.layers:null;this.defaultDataProjection=ol.proj.get(t.defaultDataProjection?t.defaultDataProjection:"EPSG:4326")},ol.inherits(ol.format.TopoJSON,ol.format.JSONFeature),ol.format.TopoJSON.concatenateArcs_=function(n,t){for(var i=[],f,e,u,s,r=0,o=n.length;r<o;++r)f=n[r],r>0&&i.pop(),e=f>=0?t[f]:t[~f].slice().reverse(),i.push.apply(i,e);for(u=0,s=i.length;u<s;++u)i[u]=i[u].slice();return i},ol.format.TopoJSON.readPointGeometry_=function(n,t,i){var r=n.coordinates;return t&&i&&ol.format.TopoJSON.transformVertex_(r,t,i),new ol.geom.Point(r)},ol.format.TopoJSON.readMultiPointGeometry_=function(n,t,i){var u=n.coordinates,r,f;if(t&&i)for(r=0,f=u.length;r<f;++r)ol.format.TopoJSON.transformVertex_(u[r],t,i);return new ol.geom.MultiPoint(u)},ol.format.TopoJSON.readLineStringGeometry_=function(n,t){var i=ol.format.TopoJSON.concatenateArcs_(n.arcs,t);return new ol.geom.LineString(i)},ol.format.TopoJSON.readMultiLineStringGeometry_=function(n,t){for(var r=[],i=0,u=n.arcs.length;i<u;++i)r[i]=ol.format.TopoJSON.concatenateArcs_(n.arcs[i],t);return new ol.geom.MultiLineString(r)},ol.format.TopoJSON.readPolygonGeometry_=function(n,t){for(var r=[],i=0,u=n.arcs.length;i<u;++i)r[i]=ol.format.TopoJSON.concatenateArcs_(n.arcs[i],t);return new ol.geom.Polygon(r)},ol.format.TopoJSON.readMultiPolygonGeometry_=function(n,t){for(var e=[],u,f,i,o,r=0,s=n.arcs.length;r<s;++r){for(u=n.arcs[r],f=[],i=0,o=u.length;i<o;++i)f[i]=ol.format.TopoJSON.concatenateArcs_(u[i],t);e[r]=f}return new ol.geom.MultiPolygon(e)},ol.format.TopoJSON.readFeaturesFromGeometryCollection_=function(n,t,i,r,u,f,e){for(var s=n.geometries,h=[],o=0,c=s.length;o<c;++o)h[o]=ol.format.TopoJSON.readFeatureFromGeometry_(s[o],t,i,r,u,f,e);return h},ol.format.TopoJSON.readFeatureFromGeometry_=function(n,t,i,r,u,f,e){var c,h=n.type,l=ol.format.TopoJSON.GEOMETRY_READERS_[h],s,o;return c=h==="Point"||h==="MultiPoint"?l(n,i,r):l(n,t),s=new ol.Feature,s.setGeometry(ol.format.Feature.transformWithOptions(c,!1,e)),n.id!==undefined&&s.setId(n.id),o=n.properties,u&&(o||(o={}),o[u]=f),o&&s.setProperties(o),s},ol.format.TopoJSON.prototype.readFeatures,ol.format.TopoJSON.prototype.readFeaturesFromObject=function(n,t){var o;if(n.type=="Topology"){var r=n,u,f=null,e=null;r.transform&&(u=r.transform,f=u.scale,e=u.translate);o=r.arcs;u&&ol.format.TopoJSON.transformArcs_(o,f,e);var s=[],h=r.objects,l=this.layerName_,i,c;for(i in h)this.layers_&&this.layers_.indexOf(i)==-1||(h[i].type==="GeometryCollection"?(c=h[i],s.push.apply(s,ol.format.TopoJSON.readFeaturesFromGeometryCollection_(c,o,f,e,l,i,t))):(c=h[i],s.push(ol.format.TopoJSON.readFeatureFromGeometry_(c,o,f,e,l,i,t))));return s}return[]},ol.format.TopoJSON.transformArcs_=function(n,t,i){for(var r=0,u=n.length;r<u;++r)ol.format.TopoJSON.transformArc_(n[r],t,i)},ol.format.TopoJSON.transformArc_=function(n,t,i){for(var f=0,e=0,r,u=0,o=n.length;u<o;++u)r=n[u],f+=r[0],e+=r[1],r[0]=f,r[1]=e,ol.format.TopoJSON.transformVertex_(r,t,i)},ol.format.TopoJSON.transformVertex_=function(n,t,i){n[0]=n[0]*t[0]+i[0];n[1]=n[1]*t[1]+i[1]},ol.format.TopoJSON.prototype.readProjection,ol.format.TopoJSON.prototype.readProjectionFromObject=function(){return this.defaultDataProjection},ol.format.TopoJSON.GEOMETRY_READERS_={Point:ol.format.TopoJSON.readPointGeometry_,LineString:ol.format.TopoJSON.readLineStringGeometry_,Polygon:ol.format.TopoJSON.readPolygonGeometry_,MultiPoint:ol.format.TopoJSON.readMultiPointGeometry_,MultiLineString:ol.format.TopoJSON.readMultiLineStringGeometry_,MultiPolygon:ol.format.TopoJSON.readMultiPolygonGeometry_},ol.format.TopoJSON.prototype.writeFeatureObject=function(){},ol.format.TopoJSON.prototype.writeFeaturesObject=function(){},ol.format.TopoJSON.prototype.writeGeometryObject=function(){},ol.format.TopoJSON.prototype.readGeometryFromObject=function(){},ol.format.TopoJSON.prototype.readFeatureFromObject=function(){},n.provide("ol.format.WFS"),n.require("ol"),n.require("ol.asserts"),n.require("ol.format.GML2"),n.require("ol.format.GML3"),n.require("ol.format.GMLBase"),n.require("ol.format.filter"),n.require("ol.format.XMLFeature"),n.require("ol.format.XSD"),n.require("ol.geom.Geometry"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.xml"),ol.format.WFS=function(n){var t=n?n:{};this.featureType_=t.featureType;this.featureNS_=t.featureNS;this.gmlFormat_=t.gmlFormat?t.gmlFormat:new ol.format.GML3;this.schemaLocation_=t.schemaLocation?t.schemaLocation:ol.format.WFS.SCHEMA_LOCATIONS[ol.format.WFS.DEFAULT_VERSION];ol.format.XMLFeature.call(this)},ol.inherits(ol.format.WFS,ol.format.XMLFeature),ol.format.WFS.FEATURE_PREFIX="feature",ol.format.WFS.XMLNS="http://www.w3.org/2000/xmlns/",ol.format.WFS.OGCNS="http://www.opengis.net/ogc",ol.format.WFS.WFSNS="http://www.opengis.net/wfs",ol.format.WFS.FESNS="http://www.opengis.net/fes",ol.format.WFS.SCHEMA_LOCATIONS={"1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},ol.format.WFS.DEFAULT_VERSION="1.1.0",ol.format.WFS.prototype.getFeatureType=function(){return this.featureType_},ol.format.WFS.prototype.setFeatureType=function(n){this.featureType_=n},ol.format.WFS.prototype.readFeatures,ol.format.WFS.prototype.readFeaturesFromNode=function(n,t){var r={featureType:this.featureType_,featureNS:this.featureNS_},u,i;return ol.obj.assign(r,this.getReadOptions(n,t?t:{})),u=[r],this.gmlFormat_.FEATURE_COLLECTION_PARSERS[ol.format.GMLBase.GMLNS].featureMember=ol.xml.makeArrayPusher(ol.format.GMLBase.prototype.readFeaturesInternal),i=ol.xml.pushParseAndPop([],this.gmlFormat_.FEATURE_COLLECTION_PARSERS,n,u,this.gmlFormat_),i||(i=[]),i},ol.format.WFS.prototype.readTransactionResponse=function(n){if(ol.xml.isDocument(n))return this.readTransactionResponseFromDocument(n);if(ol.xml.isNode(n))return this.readTransactionResponseFromNode(n);if(typeof n=="string"){var t=ol.xml.parse(n);return this.readTransactionResponseFromDocument(t)}return undefined},ol.format.WFS.prototype.readFeatureCollectionMetadata=function(n){if(ol.xml.isDocument(n))return this.readFeatureCollectionMetadataFromDocument(n);if(ol.xml.isNode(n))return this.readFeatureCollectionMetadataFromNode(n);if(typeof n=="string"){var t=ol.xml.parse(n);return this.readFeatureCollectionMetadataFromDocument(t)}return undefined},ol.format.WFS.prototype.readFeatureCollectionMetadataFromDocument=function(n){for(var t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE)return this.readFeatureCollectionMetadataFromNode(t);return undefined},ol.format.WFS.FEATURE_COLLECTION_PARSERS_={"http://www.opengis.net/gml":{boundedBy:ol.xml.makeObjectPropertySetter(ol.format.GMLBase.prototype.readGeometryElement,"bounds")}},ol.format.WFS.prototype.readFeatureCollectionMetadataFromNode=function(n){var t={},i=ol.format.XSD.readNonNegativeIntegerString(n.getAttribute("numberOfFeatures"));return t.numberOfFeatures=i,ol.xml.pushParseAndPop(t,ol.format.WFS.FEATURE_COLLECTION_PARSERS_,n,[],this.gmlFormat_)},ol.format.WFS.TRANSACTION_SUMMARY_PARSERS_={"http://www.opengis.net/wfs":{totalInserted:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),totalUpdated:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),totalDeleted:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger)}},ol.format.WFS.readTransactionSummary_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WFS.TRANSACTION_SUMMARY_PARSERS_,n,t)},ol.format.WFS.OGC_FID_PARSERS_={"http://www.opengis.net/ogc":{FeatureId:ol.xml.makeArrayPusher(function(n){return n.getAttribute("fid")})}},ol.format.WFS.fidParser_=function(n,t){ol.xml.parseNode(ol.format.WFS.OGC_FID_PARSERS_,n,t)},ol.format.WFS.INSERT_RESULTS_PARSERS_={"http://www.opengis.net/wfs":{Feature:ol.format.WFS.fidParser_}},ol.format.WFS.readInsertResults_=function(n,t){return ol.xml.pushParseAndPop([],ol.format.WFS.INSERT_RESULTS_PARSERS_,n,t)},ol.format.WFS.TRANSACTION_RESPONSE_PARSERS_={"http://www.opengis.net/wfs":{TransactionSummary:ol.xml.makeObjectPropertySetter(ol.format.WFS.readTransactionSummary_,"transactionSummary"),InsertResults:ol.xml.makeObjectPropertySetter(ol.format.WFS.readInsertResults_,"insertIds")}},ol.format.WFS.prototype.readTransactionResponseFromDocument=function(n){for(var t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE)return this.readTransactionResponseFromNode(t);return undefined},ol.format.WFS.prototype.readTransactionResponseFromNode=function(n){return ol.xml.pushParseAndPop({},ol.format.WFS.TRANSACTION_RESPONSE_PARSERS_,n,[])},ol.format.WFS.QUERY_SERIALIZERS_={"http://www.opengis.net/wfs":{PropertyName:ol.xml.makeChildAppender(ol.format.XSD.writeStringTextNode)}},ol.format.WFS.writeFeature_=function(n,t,i){var r=i[i.length-1],f=r.featureType,e=r.featureNS,o=r.gmlVersion,u=ol.xml.createElementNS(e,f);n.appendChild(u);o===2?ol.format.GML2.prototype.writeFeatureElement(u,t,i):ol.format.GML3.prototype.writeFeatureElement(u,t,i)},ol.format.WFS.writeOgcFidFilter_=function(n,t){var i=ol.xml.createElementNS(ol.format.WFS.OGCNS,"Filter"),r=ol.xml.createElementNS(ol.format.WFS.OGCNS,"FeatureId");i.appendChild(r);r.setAttribute("fid",t);n.appendChild(i)},ol.format.WFS.getTypeName_=function(n,t){n=n?n:ol.format.WFS.FEATURE_PREFIX;var i=n+":";return t.indexOf(i)===0?t:i+t},ol.format.WFS.writeDelete_=function(n,t,i){var r=i[i.length-1],u;ol.asserts.assert(t.getId()!==undefined,26);var e=r.featureType,f=r.featurePrefix,o=r.featureNS,s=ol.format.WFS.getTypeName_(f,e);n.setAttribute("typeName",s);ol.xml.setAttributeNS(n,ol.format.WFS.XMLNS,"xmlns:"+f,o);u=t.getId();u!==undefined&&ol.format.WFS.writeOgcFidFilter_(n,u,i)},ol.format.WFS.writeUpdate_=function(n,t,i){var r=i[i.length-1],o,f,s,u,l,e,h;ol.asserts.assert(t.getId()!==undefined,27);var a=r.featureType,c=r.featurePrefix,v=r.featureNS,y=ol.format.WFS.getTypeName_(c,a),p=t.getGeometryName();if(n.setAttribute("typeName",y),ol.xml.setAttributeNS(n,ol.format.WFS.XMLNS,"xmlns:"+c,v),o=t.getId(),o!==undefined){for(f=t.getKeys(),s=[],u=0,l=f.length;u<l;u++)e=t.get(f[u]),e!==undefined&&(h=f[u],e instanceof ol.geom.Geometry&&(h=p),s.push({name:h,value:e}));ol.xml.pushSerializeAndPop({gmlVersion:r.gmlVersion,node:n,hasZ:r.hasZ,srsName:r.srsName},ol.format.WFS.TRANSACTION_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("Property"),s,i);ol.format.WFS.writeOgcFidFilter_(n,o,i)}},ol.format.WFS.writeProperty_=function(n,t,i){var u=ol.xml.createElementNS(ol.format.WFS.WFSNS,"Name"),f=i[i.length-1],e=f.gmlVersion,r;n.appendChild(u);ol.format.XSD.writeStringTextNode(u,t.name);t.value!==undefined&&t.value!==null&&(r=ol.xml.createElementNS(ol.format.WFS.WFSNS,"Value"),n.appendChild(r),t.value instanceof ol.geom.Geometry?e===2?ol.format.GML2.prototype.writeGeometryElement(r,t.value,i):ol.format.GML3.prototype.writeGeometryElement(r,t.value,i):ol.format.XSD.writeStringTextNode(r,t.value))},ol.format.WFS.writeNative_=function(n,t){t.vendorId&&n.setAttribute("vendorId",t.vendorId);t.safeToIgnore!==undefined&&n.setAttribute("safeToIgnore",t.safeToIgnore);t.value!==undefined&&ol.format.XSD.writeStringTextNode(n,t.value)},ol.format.WFS.TRANSACTION_SERIALIZERS_={"http://www.opengis.net/wfs":{Insert:ol.xml.makeChildAppender(ol.format.WFS.writeFeature_),Update:ol.xml.makeChildAppender(ol.format.WFS.writeUpdate_),Delete:ol.xml.makeChildAppender(ol.format.WFS.writeDelete_),Property:ol.xml.makeChildAppender(ol.format.WFS.writeProperty_),Native:ol.xml.makeChildAppender(ol.format.WFS.writeNative_)}},ol.format.WFS.writeQuery_=function(n,t,i){var r=i[i.length-1],u=r.featurePrefix,s=r.featureNS,l=r.propertyNames,h=r.srsName,c,f,e,o;c=u?ol.format.WFS.getTypeName_(u,t):t;n.setAttribute("typeName",c);h&&n.setAttribute("srsName",h);s&&ol.xml.setAttributeNS(n,ol.format.WFS.XMLNS,"xmlns:"+u,s);f=ol.obj.assign({},r);f.node=n;ol.xml.pushSerializeAndPop(f,ol.format.WFS.QUERY_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("PropertyName"),l,i);e=r.filter;e&&(o=ol.xml.createElementNS(ol.format.WFS.OGCNS,"Filter"),n.appendChild(o),ol.format.WFS.writeFilterCondition_(o,e,i))},ol.format.WFS.writeFilterCondition_=function(n,t,i){var r={node:n};ol.xml.pushSerializeAndPop(r,ol.format.WFS.GETFEATURE_SERIALIZERS_,ol.xml.makeSimpleNodeFactory(t.getTagName()),[t],i)},ol.format.WFS.writeBboxFilter_=function(n,t,i){var r=i[i.length-1];r.srsName=t.srsName;ol.format.WFS.writeOgcPropertyName_(n,t.geometryName);ol.format.GML3.prototype.writeGeometryElement(n,t.extent,i)},ol.format.WFS.writeContainsFilter_=function(n,t,i){var r=i[i.length-1];r.srsName=t.srsName;ol.format.WFS.writeOgcPropertyName_(n,t.geometryName);ol.format.GML3.prototype.writeGeometryElement(n,t.geometry,i)},ol.format.WFS.writeIntersectsFilter_=function(n,t,i){var r=i[i.length-1];r.srsName=t.srsName;ol.format.WFS.writeOgcPropertyName_(n,t.geometryName);ol.format.GML3.prototype.writeGeometryElement(n,t.geometry,i)},ol.format.WFS.writeWithinFilter_=function(n,t,i){var r=i[i.length-1];r.srsName=t.srsName;ol.format.WFS.writeOgcPropertyName_(n,t.geometryName);ol.format.GML3.prototype.writeGeometryElement(n,t.geometry,i)},ol.format.WFS.writeDuringFilter_=function(n,t){var f=ol.xml.createElementNS(ol.format.WFS.FESNS,"ValueReference"),i,r,u;ol.format.XSD.writeStringTextNode(f,t.propertyName);n.appendChild(f);i=ol.xml.createElementNS(ol.format.GMLBase.GMLNS,"TimePeriod");n.appendChild(i);r=ol.xml.createElementNS(ol.format.GMLBase.GMLNS,"begin");i.appendChild(r);ol.format.WFS.writeTimeInstant_(r,t.begin);u=ol.xml.createElementNS(ol.format.GMLBase.GMLNS,"end");i.appendChild(u);ol.format.WFS.writeTimeInstant_(u,t.end)},ol.format.WFS.writeLogicalFilter_=function(n,t,i){for(var u,e={node:n},f=t.conditions,r=0,o=f.length;r<o;++r)u=f[r],ol.xml.pushSerializeAndPop(e,ol.format.WFS.GETFEATURE_SERIALIZERS_,ol.xml.makeSimpleNodeFactory(u.getTagName()),[u],i)},ol.format.WFS.writeNotFilter_=function(n,t,i){var u={node:n},r=t.condition;ol.xml.pushSerializeAndPop(u,ol.format.WFS.GETFEATURE_SERIALIZERS_,ol.xml.makeSimpleNodeFactory(r.getTagName()),[r],i)},ol.format.WFS.writeComparisonFilter_=function(n,t){t.matchCase!==undefined&&n.setAttribute("matchCase",t.matchCase.toString());ol.format.WFS.writeOgcPropertyName_(n,t.propertyName);ol.format.WFS.writeOgcLiteral_(n,""+t.expression)},ol.format.WFS.writeIsNullFilter_=function(n,t){ol.format.WFS.writeOgcPropertyName_(n,t.propertyName)},ol.format.WFS.writeIsBetweenFilter_=function(n,t){var i,r;ol.format.WFS.writeOgcPropertyName_(n,t.propertyName);i=ol.xml.createElementNS(ol.format.WFS.OGCNS,"LowerBoundary");n.appendChild(i);ol.format.WFS.writeOgcLiteral_(i,""+t.lowerBoundary);r=ol.xml.createElementNS(ol.format.WFS.OGCNS,"UpperBoundary");n.appendChild(r);ol.format.WFS.writeOgcLiteral_(r,""+t.upperBoundary)},ol.format.WFS.writeIsLikeFilter_=function(n,t){n.setAttribute("wildCard",t.wildCard);n.setAttribute("singleChar",t.singleChar);n.setAttribute("escapeChar",t.escapeChar);t.matchCase!==undefined&&n.setAttribute("matchCase",t.matchCase.toString());ol.format.WFS.writeOgcPropertyName_(n,t.propertyName);ol.format.WFS.writeOgcLiteral_(n,""+t.pattern)},ol.format.WFS.writeOgcExpression_=function(n,t,i){var r=ol.xml.createElementNS(ol.format.WFS.OGCNS,n);ol.format.XSD.writeStringTextNode(r,i);t.appendChild(r)},ol.format.WFS.writeOgcPropertyName_=function(n,t){ol.format.WFS.writeOgcExpression_("PropertyName",n,t)},ol.format.WFS.writeOgcLiteral_=function(n,t){ol.format.WFS.writeOgcExpression_("Literal",n,t)},ol.format.WFS.writeTimeInstant_=function(n,t){var r=ol.xml.createElementNS(ol.format.GMLBase.GMLNS,"TimeInstant"),i;n.appendChild(r);i=ol.xml.createElementNS(ol.format.GMLBase.GMLNS,"timePosition");r.appendChild(i);ol.format.XSD.writeStringTextNode(i,t)},ol.format.WFS.GETFEATURE_SERIALIZERS_={"http://www.opengis.net/wfs":{Query:ol.xml.makeChildAppender(ol.format.WFS.writeQuery_)},"http://www.opengis.net/ogc":{During:ol.xml.makeChildAppender(ol.format.WFS.writeDuringFilter_),And:ol.xml.makeChildAppender(ol.format.WFS.writeLogicalFilter_),Or:ol.xml.makeChildAppender(ol.format.WFS.writeLogicalFilter_),Not:ol.xml.makeChildAppender(ol.format.WFS.writeNotFilter_),BBOX:ol.xml.makeChildAppender(ol.format.WFS.writeBboxFilter_),Contains:ol.xml.makeChildAppender(ol.format.WFS.writeContainsFilter_),Intersects:ol.xml.makeChildAppender(ol.format.WFS.writeIntersectsFilter_),Within:ol.xml.makeChildAppender(ol.format.WFS.writeWithinFilter_),PropertyIsEqualTo:ol.xml.makeChildAppender(ol.format.WFS.writeComparisonFilter_),PropertyIsNotEqualTo:ol.xml.makeChildAppender(ol.format.WFS.writeComparisonFilter_),PropertyIsLessThan:ol.xml.makeChildAppender(ol.format.WFS.writeComparisonFilter_),PropertyIsLessThanOrEqualTo:ol.xml.makeChildAppender(ol.format.WFS.writeComparisonFilter_),PropertyIsGreaterThan:ol.xml.makeChildAppender(ol.format.WFS.writeComparisonFilter_),PropertyIsGreaterThanOrEqualTo:ol.xml.makeChildAppender(ol.format.WFS.writeComparisonFilter_),PropertyIsNull:ol.xml.makeChildAppender(ol.format.WFS.writeIsNullFilter_),PropertyIsBetween:ol.xml.makeChildAppender(ol.format.WFS.writeIsBetweenFilter_),PropertyIsLike:ol.xml.makeChildAppender(ol.format.WFS.writeIsLikeFilter_)}},ol.format.WFS.writeFilter=function(n){var t=ol.xml.createElementNS(ol.format.WFS.OGCNS,"Filter");return ol.format.WFS.writeFilterCondition_(t,n,[]),t},ol.format.WFS.writeGetFeature_=function(n,t,i){var u=i[i.length-1],r=ol.obj.assign({},u);r.node=n;ol.xml.pushSerializeAndPop(r,ol.format.WFS.GETFEATURE_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("Query"),t,i)},ol.format.WFS.prototype.writeGetFeature=function(n){var t=ol.xml.createElementNS(ol.format.WFS.WFSNS,"GetFeature"),i,r,u;return t.setAttribute("service","WFS"),t.setAttribute("version","1.1.0"),n&&(n.handle&&t.setAttribute("handle",n.handle),n.outputFormat&&t.setAttribute("outputFormat",n.outputFormat),n.maxFeatures!==undefined&&t.setAttribute("maxFeatures",n.maxFeatures),n.resultType&&t.setAttribute("resultType",n.resultType),n.startIndex!==undefined&&t.setAttribute("startIndex",n.startIndex),n.count!==undefined&&t.setAttribute("count",n.count),i=n.filter,n.bbox&&(ol.asserts.assert(n.geometryName,12),r=ol.format.filter.bbox(n.geometryName,n.bbox,n.srsName),i=i?ol.format.filter.and(i,r):r)),ol.xml.setAttributeNS(t,"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.schemaLocation_),u={node:t,srsName:n.srsName,featureNS:n.featureNS?n.featureNS:this.featureNS_,featurePrefix:n.featurePrefix,geometryName:n.geometryName,filter:i,propertyNames:n.propertyNames?n.propertyNames:[]},ol.asserts.assert(Array.isArray(n.featureTypes),11),ol.format.WFS.writeGetFeature_(t,n.featureTypes,[u]),t},ol.format.WFS.prototype.writeTransaction=function(n,t,i,r){var o=[],u=ol.xml.createElementNS(ol.format.WFS.WFSNS,"Transaction"),h=r.version?r.version:ol.format.WFS.DEFAULT_VERSION,s=h==="1.0.0"?2:3,c,f,l,e;return u.setAttribute("service","WFS"),u.setAttribute("version",h),r&&(c=r.gmlOptions?r.gmlOptions:{},r.handle&&u.setAttribute("handle",r.handle)),l=ol.format.WFS.SCHEMA_LOCATIONS[h],ol.xml.setAttributeNS(u,"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",l),e=r.featurePrefix?r.featurePrefix:ol.format.WFS.FEATURE_PREFIX,n&&(f={node:u,featureNS:r.featureNS,featureType:r.featureType,featurePrefix:e,gmlVersion:s,hasZ:r.hasZ,srsName:r.srsName},ol.obj.assign(f,c),ol.xml.pushSerializeAndPop(f,ol.format.WFS.TRANSACTION_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("Insert"),n,o)),t&&(f={node:u,featureNS:r.featureNS,featureType:r.featureType,featurePrefix:e,gmlVersion:s,hasZ:r.hasZ,srsName:r.srsName},ol.obj.assign(f,c),ol.xml.pushSerializeAndPop(f,ol.format.WFS.TRANSACTION_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("Update"),t,o)),i&&ol.xml.pushSerializeAndPop({node:u,featureNS:r.featureNS,featureType:r.featureType,featurePrefix:e,gmlVersion:s,srsName:r.srsName},ol.format.WFS.TRANSACTION_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("Delete"),i,o),r.nativeElements&&ol.xml.pushSerializeAndPop({node:u,featureNS:r.featureNS,featureType:r.featureType,featurePrefix:e,gmlVersion:s,srsName:r.srsName},ol.format.WFS.TRANSACTION_SERIALIZERS_,ol.xml.makeSimpleNodeFactory("Native"),r.nativeElements,o),u},ol.format.WFS.prototype.readProjection,ol.format.WFS.prototype.readProjectionFromDocument=function(n){for(var t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(t);return null},ol.format.WFS.prototype.readProjectionFromNode=function(n){var t,i;if(n.firstElementChild&&n.firstElementChild.firstElementChild)for(n=n.firstElementChild.firstElementChild,t=n.firstElementChild;t;t=t.nextElementSibling)if(!(t.childNodes.length===0||t.childNodes.length===1&&t.firstChild.nodeType===3))return i=[{}],this.gmlFormat_.readGeometryElement(t,i),ol.proj.get(i.pop().srsName);return null},n.provide("ol.format.WKT"),n.require("ol"),n.require("ol.Feature"),n.require("ol.format.Feature"),n.require("ol.format.TextFeature"),n.require("ol.geom.GeometryCollection"),n.require("ol.geom.GeometryType"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.geom.SimpleGeometry"),ol.format.WKT=function(n){var t=n?n:{};ol.format.TextFeature.call(this);this.splitCollection_=t.splitCollection!==undefined?t.splitCollection:!1},ol.inherits(ol.format.WKT,ol.format.TextFeature),ol.format.WKT.EMPTY="EMPTY",ol.format.WKT.Z="Z",ol.format.WKT.M="M",ol.format.WKT.ZM="ZM",ol.format.WKT.encodePointGeometry_=function(n){var t=n.getCoordinates();return t.length===0?"":t.join(" ")},ol.format.WKT.encodeMultiPointGeometry_=function(n){for(var i=[],r=n.getPoints(),t=0,u=r.length;t<u;++t)i.push("("+ol.format.WKT.encodePointGeometry_(r[t])+")");return i.join(",")},ol.format.WKT.encodeGeometryCollectionGeometry_=function(n){for(var i=[],r=n.getGeometries(),t=0,u=r.length;t<u;++t)i.push(ol.format.WKT.encode_(r[t]));return i.join(",")},ol.format.WKT.encodeLineStringGeometry_=function(n){for(var i=n.getCoordinates(),r=[],t=0,u=i.length;t<u;++t)r.push(i[t].join(" "));return r.join(",")},ol.format.WKT.encodeMultiLineStringGeometry_=function(n){for(var i=[],r=n.getLineStrings(),t=0,u=r.length;t<u;++t)i.push("("+ol.format.WKT.encodeLineStringGeometry_(r[t])+")");return i.join(",")},ol.format.WKT.encodePolygonGeometry_=function(n){for(var i=[],r=n.getLinearRings(),t=0,u=r.length;t<u;++t)i.push("("+ol.format.WKT.encodeLineStringGeometry_(r[t])+")");return i.join(",")},ol.format.WKT.encodeMultiPolygonGeometry_=function(n){for(var i=[],r=n.getPolygons(),t=0,u=r.length;t<u;++t)i.push("("+ol.format.WKT.encodePolygonGeometry_(r[t])+")");return i.join(",")},ol.format.WKT.encodeGeometryLayout_=function(n){var t=n.getLayout(),i="";return(t===ol.geom.GeometryLayout.XYZ||t===ol.geom.GeometryLayout.XYZM)&&(i+=ol.format.WKT.Z),(t===ol.geom.GeometryLayout.XYM||t===ol.geom.GeometryLayout.XYZM)&&(i+=ol.format.WKT.M),i},ol.format.WKT.encode_=function(n){var t=n.getType(),u=ol.format.WKT.GeometryEncoder_[t],r=u(n),i;return(t=t.toUpperCase(),n instanceof ol.geom.SimpleGeometry&&(i=ol.format.WKT.encodeGeometryLayout_(n),i.length>0&&(t+=" "+i)),r.length===0)?t+" "+ol.format.WKT.EMPTY:t+"("+r+")"},ol.format.WKT.GeometryEncoder_={Point:ol.format.WKT.encodePointGeometry_,LineString:ol.format.WKT.encodeLineStringGeometry_,Polygon:ol.format.WKT.encodePolygonGeometry_,MultiPoint:ol.format.WKT.encodeMultiPointGeometry_,MultiLineString:ol.format.WKT.encodeMultiLineStringGeometry_,MultiPolygon:ol.format.WKT.encodeMultiPolygonGeometry_,GeometryCollection:ol.format.WKT.encodeGeometryCollectionGeometry_},ol.format.WKT.prototype.parse_=function(n){var t=new ol.format.WKT.Lexer(n),i=new ol.format.WKT.Parser(t);return i.parse()},ol.format.WKT.prototype.readFeature,ol.format.WKT.prototype.readFeatureFromText=function(n,t){var r=this.readGeometryFromText(n,t),i;return r?(i=new ol.Feature,i.setGeometry(r),i):null},ol.format.WKT.prototype.readFeatures,ol.format.WKT.prototype.readFeaturesFromText=function(n,t){var r=[],u=this.readGeometryFromText(n,t),f,e,i,o;for(r=this.splitCollection_&&u.getType()==ol.geom.GeometryType.GEOMETRY_COLLECTION?u.getGeometriesArray():[u],e=[],i=0,o=r.length;i<o;++i)f=new ol.Feature,f.setGeometry(r[i]),e.push(f);return e},ol.format.WKT.prototype.readGeometry,ol.format.WKT.prototype.readGeometryFromText=function(n,t){var i=this.parse_(n);return i?ol.format.Feature.transformWithOptions(i,!1,t):null},ol.format.WKT.prototype.writeFeature,ol.format.WKT.prototype.writeFeatureText=function(n,t){var i=n.getGeometry();return i?this.writeGeometryText(i,t):""},ol.format.WKT.prototype.writeFeatures,ol.format.WKT.prototype.writeFeaturesText=function(n,t){var r,i,u,f;if(n.length==1)return this.writeFeatureText(n[0],t);for(r=[],i=0,u=n.length;i<u;++i)r.push(n[i].getGeometry());return f=new ol.geom.GeometryCollection(r),this.writeGeometryText(f,t)},ol.format.WKT.prototype.writeGeometry,ol.format.WKT.prototype.writeGeometryText=function(n,t){return ol.format.WKT.encode_(ol.format.Feature.transformWithOptions(n,!0,t))},ol.format.WKT.TokenType_={TEXT:1,LEFT_PAREN:2,RIGHT_PAREN:3,NUMBER:4,COMMA:5,EOF:6},ol.format.WKT.Lexer=function(n){this.wkt=n;this.index_=-1},ol.format.WKT.Lexer.prototype.isAlpha_=function(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"},ol.format.WKT.Lexer.prototype.isNumeric_=function(n,t){var i=t!==undefined?t:!1;return n>="0"&&n<="9"||n=="."&&!i},ol.format.WKT.Lexer.prototype.isWhiteSpace_=function(n){return n==" "||n=="\t"||n=="\r"||n=="\n"},ol.format.WKT.Lexer.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},ol.format.WKT.Lexer.prototype.nextToken=function(){var n=this.nextChar_(),t={position:this.index_,value:n};if(n=="(")t.type=ol.format.WKT.TokenType_.LEFT_PAREN;else if(n==",")t.type=ol.format.WKT.TokenType_.COMMA;else if(n==")")t.type=ol.format.WKT.TokenType_.RIGHT_PAREN;else if(this.isNumeric_(n)||n=="-")t.type=ol.format.WKT.TokenType_.NUMBER,t.value=this.readNumber_();else if(this.isAlpha_(n))t.type=ol.format.WKT.TokenType_.TEXT,t.value=this.readText_();else{if(this.isWhiteSpace_(n))return this.nextToken();if(n==="")t.type=ol.format.WKT.TokenType_.EOF;else throw new Error("Unexpected character: "+n);}return t},ol.format.WKT.Lexer.prototype.readNumber_=function(){var n,r=this.index_,i=!1,t=!1;do n=="."?i=!0:(n=="e"||n=="E")&&(t=!0),n=this.nextChar_();while(this.isNumeric_(n,i)||!t&&(n=="e"||n=="E")||t&&(n=="-"||n=="+"));return parseFloat(this.wkt.substring(r,this.index_--))},ol.format.WKT.Lexer.prototype.readText_=function(){var n,t=this.index_;do n=this.nextChar_();while(this.isAlpha_(n));return this.wkt.substring(t,this.index_--).toUpperCase()},ol.format.WKT.Parser=function(n){this.lexer_=n;this.token_;this.layout_=ol.geom.GeometryLayout.XY},ol.format.WKT.Parser.prototype.consume_=function(){this.token_=this.lexer_.nextToken()},ol.format.WKT.Parser.prototype.isTokenType=function(n){return this.token_.type==n},ol.format.WKT.Parser.prototype.match=function(n){var t=this.isTokenType(n);return t&&this.consume_(),t},ol.format.WKT.Parser.prototype.parse=function(){this.consume_();return this.parseGeometry_()},ol.format.WKT.Parser.prototype.parseGeometryLayout_=function(){var n=ol.geom.GeometryLayout.XY,i=this.token_,t;return this.isTokenType(ol.format.WKT.TokenType_.TEXT)&&(t=i.value,t===ol.format.WKT.Z?n=ol.geom.GeometryLayout.XYZ:t===ol.format.WKT.M?n=ol.geom.GeometryLayout.XYM:t===ol.format.WKT.ZM&&(n=ol.geom.GeometryLayout.XYZM),n!==ol.geom.GeometryLayout.XY&&this.consume_()),n},ol.format.WKT.Parser.prototype.parseGeometry_=function(){var f=this.token_,n,r,t,i,u;if(this.match(ol.format.WKT.TokenType_.TEXT)){if(n=f.value,this.layout_=this.parseGeometryLayout_(),n==ol.geom.GeometryType.GEOMETRY_COLLECTION.toUpperCase())return r=this.parseGeometryCollectionText_(),new ol.geom.GeometryCollection(r);if(t=ol.format.WKT.Parser.GeometryParser_[n],i=ol.format.WKT.Parser.GeometryConstructor_[n],!t||!i)throw new Error("Invalid geometry type: "+n);return u=t.call(this),new i(u,this.layout_)}throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parseGeometryCollectionText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n=[];do n.push(this.parseGeometry_());while(this.match(ol.format.WKT.TokenType_.COMMA));if(this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parsePointText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n=this.parsePoint_();if(this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return null;throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parseLineStringText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n=this.parsePointList_();if(this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parsePolygonText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n=this.parseLineStringTextList_();if(this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parseMultiPointText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n;if(n=this.token_.type==ol.format.WKT.TokenType_.LEFT_PAREN?this.parsePointTextList_():this.parsePointList_(),this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parseMultiLineStringText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n=this.parseLineStringTextList_();if(this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parseMultiPolygonText_=function(){if(this.match(ol.format.WKT.TokenType_.LEFT_PAREN)){var n=this.parsePolygonTextList_();if(this.match(ol.format.WKT.TokenType_.RIGHT_PAREN))return n}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parsePoint_=function(){for(var r,n=[],t=this.layout_.length,i=0;i<t;++i)if(r=this.token_,this.match(ol.format.WKT.TokenType_.NUMBER))n.push(r.value);else break;if(n.length==t)return n;throw new Error(this.formatErrorMessage_());},ol.format.WKT.Parser.prototype.parsePointList_=function(){for(var n=[this.parsePoint_()];this.match(ol.format.WKT.TokenType_.COMMA);)n.push(this.parsePoint_());return n},ol.format.WKT.Parser.prototype.parsePointTextList_=function(){for(var n=[this.parsePointText_()];this.match(ol.format.WKT.TokenType_.COMMA);)n.push(this.parsePointText_());return n},ol.format.WKT.Parser.prototype.parseLineStringTextList_=function(){for(var n=[this.parseLineStringText_()];this.match(ol.format.WKT.TokenType_.COMMA);)n.push(this.parseLineStringText_());return n},ol.format.WKT.Parser.prototype.parsePolygonTextList_=function(){for(var n=[this.parsePolygonText_()];this.match(ol.format.WKT.TokenType_.COMMA);)n.push(this.parsePolygonText_());return n},ol.format.WKT.Parser.prototype.isEmptyGeometry_=function(){var n=this.isTokenType(ol.format.WKT.TokenType_.TEXT)&&this.token_.value==ol.format.WKT.EMPTY;return n&&this.consume_(),n},ol.format.WKT.Parser.prototype.formatErrorMessage_=function(){return"Unexpected `"+this.token_.value+"` at position "+this.token_.position+" in `"+this.lexer_.wkt+"`"},ol.format.WKT.Parser.GeometryConstructor_={POINT:ol.geom.Point,LINESTRING:ol.geom.LineString,POLYGON:ol.geom.Polygon,MULTIPOINT:ol.geom.MultiPoint,MULTILINESTRING:ol.geom.MultiLineString,MULTIPOLYGON:ol.geom.MultiPolygon},ol.format.WKT.Parser.GeometryParser_={POINT:ol.format.WKT.Parser.prototype.parsePointText_,LINESTRING:ol.format.WKT.Parser.prototype.parseLineStringText_,POLYGON:ol.format.WKT.Parser.prototype.parsePolygonText_,MULTIPOINT:ol.format.WKT.Parser.prototype.parseMultiPointText_,MULTILINESTRING:ol.format.WKT.Parser.prototype.parseMultiLineStringText_,MULTIPOLYGON:ol.format.WKT.Parser.prototype.parseMultiPolygonText_},n.provide("ol.format.WMSCapabilities"),n.require("ol"),n.require("ol.format.XLink"),n.require("ol.format.XML"),n.require("ol.format.XSD"),n.require("ol.xml"),ol.format.WMSCapabilities=function(){ol.format.XML.call(this);this.version=undefined},ol.inherits(ol.format.WMSCapabilities,ol.format.XML),ol.format.WMSCapabilities.prototype.read,ol.format.WMSCapabilities.prototype.readFromDocument=function(n){for(var t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE)return this.readFromNode(t);return null},ol.format.WMSCapabilities.prototype.readFromNode=function(n){this.version=n.getAttribute("version").trim();var t=ol.xml.pushParseAndPop({version:this.version},ol.format.WMSCapabilities.PARSERS_,n,[]);return t?t:null},ol.format.WMSCapabilities.readAttribution_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.ATTRIBUTION_PARSERS_,n,t)},ol.format.WMSCapabilities.readBoundingBox_=function(n){var t=[ol.format.XSD.readDecimalString(n.getAttribute("minx")),ol.format.XSD.readDecimalString(n.getAttribute("miny")),ol.format.XSD.readDecimalString(n.getAttribute("maxx")),ol.format.XSD.readDecimalString(n.getAttribute("maxy"))],i=[ol.format.XSD.readDecimalString(n.getAttribute("resx")),ol.format.XSD.readDecimalString(n.getAttribute("resy"))];return{crs:n.getAttribute("CRS"),extent:t,res:i}},ol.format.WMSCapabilities.readEXGeographicBoundingBox_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.EX_GEOGRAPHIC_BOUNDING_BOX_PARSERS_,n,t);if(!i)return undefined;var r=i.westBoundLongitude,u=i.southBoundLatitude,f=i.eastBoundLongitude,e=i.northBoundLatitude;return r===undefined||u===undefined||f===undefined||e===undefined?undefined:[r,u,f,e]},ol.format.WMSCapabilities.readCapability_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.CAPABILITY_PARSERS_,n,t)},ol.format.WMSCapabilities.readService_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.SERVICE_PARSERS_,n,t)},ol.format.WMSCapabilities.readContactInformation_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.CONTACT_INFORMATION_PARSERS_,n,t)},ol.format.WMSCapabilities.readContactPersonPrimary_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.CONTACT_PERSON_PARSERS_,n,t)},ol.format.WMSCapabilities.readContactAddress_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.CONTACT_ADDRESS_PARSERS_,n,t)},ol.format.WMSCapabilities.readException_=function(n,t){return ol.xml.pushParseAndPop([],ol.format.WMSCapabilities.EXCEPTION_PARSERS_,n,t)},ol.format.WMSCapabilities.readCapabilityLayer_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.LAYER_PARSERS_,n,t)},ol.format.WMSCapabilities.readLayer_=function(n,t){var r=t[t.length-1],i=ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.LAYER_PARSERS_,n,t),u,o,f,e,s,h,c,l;return i?(u=ol.format.XSD.readBooleanString(n.getAttribute("queryable")),u===undefined&&(u=r.queryable),i.queryable=u!==undefined?u:!1,o=ol.format.XSD.readNonNegativeIntegerString(n.getAttribute("cascaded")),o===undefined&&(o=r.cascaded),i.cascaded=o,f=ol.format.XSD.readBooleanString(n.getAttribute("opaque")),f===undefined&&(f=r.opaque),i.opaque=f!==undefined?f:!1,e=ol.format.XSD.readBooleanString(n.getAttribute("noSubsets")),e===undefined&&(e=r.noSubsets),i.noSubsets=e!==undefined?e:!1,s=ol.format.XSD.readDecimalString(n.getAttribute("fixedWidth")),s||(s=r.fixedWidth),i.fixedWidth=s,h=ol.format.XSD.readDecimalString(n.getAttribute("fixedHeight")),h||(h=r.fixedHeight),i.fixedHeight=h,c=["Style","CRS","AuthorityURL"],c.forEach(function(n){if(n in r){var t=i[n]||[];i[n]=t.concat(r[n])}}),l=["EX_GeographicBoundingBox","BoundingBox","Dimension","Attribution","MinScaleDenominator","MaxScaleDenominator"],l.forEach(function(n){if(!(n in i)){var t=r[n];i[n]=t}}),i):undefined},ol.format.WMSCapabilities.readDimension_=function(n){return{name:n.getAttribute("name"),units:n.getAttribute("units"),unitSymbol:n.getAttribute("unitSymbol"),"default":n.getAttribute("default"),multipleValues:ol.format.XSD.readBooleanString(n.getAttribute("multipleValues")),nearestValue:ol.format.XSD.readBooleanString(n.getAttribute("nearestValue")),current:ol.format.XSD.readBooleanString(n.getAttribute("current")),values:ol.format.XSD.readString(n)}},ol.format.WMSCapabilities.readFormatOnlineresource_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.FORMAT_ONLINERESOURCE_PARSERS_,n,t)},ol.format.WMSCapabilities.readRequest_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.REQUEST_PARSERS_,n,t)},ol.format.WMSCapabilities.readDCPType_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.DCPTYPE_PARSERS_,n,t)},ol.format.WMSCapabilities.readHTTP_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.HTTP_PARSERS_,n,t)},ol.format.WMSCapabilities.readOperationType_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.OPERATIONTYPE_PARSERS_,n,t)},ol.format.WMSCapabilities.readSizedFormatOnlineresource_=function(n,t){var i=ol.format.WMSCapabilities.readFormatOnlineresource_(n,t),r;return i?(r=[ol.format.XSD.readNonNegativeIntegerString(n.getAttribute("width")),ol.format.XSD.readNonNegativeIntegerString(n.getAttribute("height"))],i.size=r,i):undefined},ol.format.WMSCapabilities.readAuthorityURL_=function(n,t){var i=ol.format.WMSCapabilities.readFormatOnlineresource_(n,t);return i?(i.name=n.getAttribute("name"),i):undefined},ol.format.WMSCapabilities.readMetadataURL_=function(n,t){var i=ol.format.WMSCapabilities.readFormatOnlineresource_(n,t);return i?(i.type=n.getAttribute("type"),i):undefined},ol.format.WMSCapabilities.readStyle_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMSCapabilities.STYLE_PARSERS_,n,t)},ol.format.WMSCapabilities.readKeywordList_=function(n,t){return ol.xml.pushParseAndPop([],ol.format.WMSCapabilities.KEYWORDLIST_PARSERS_,n,t)},ol.format.WMSCapabilities.NAMESPACE_URIS_=[null,"http://www.opengis.net/wms"],ol.format.WMSCapabilities.PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Service:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readService_),Capability:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readCapability_)}),ol.format.WMSCapabilities.CAPABILITY_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Request:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readRequest_),Exception:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readException_),Layer:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readCapabilityLayer_)}),ol.format.WMSCapabilities.SERVICE_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Abstract:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),KeywordList:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readKeywordList_),OnlineResource:ol.xml.makeObjectPropertySetter(ol.format.XLink.readHref),ContactInformation:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readContactInformation_),Fees:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),AccessConstraints:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),LayerLimit:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MaxWidth:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MaxHeight:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger)}),ol.format.WMSCapabilities.CONTACT_INFORMATION_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{ContactPersonPrimary:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readContactPersonPrimary_),ContactPosition:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ContactAddress:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readContactAddress_),ContactVoiceTelephone:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ContactFacsimileTelephone:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ContactElectronicMailAddress:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.WMSCapabilities.CONTACT_PERSON_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{ContactPerson:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),ContactOrganization:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.WMSCapabilities.CONTACT_ADDRESS_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{AddressType:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Address:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),City:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),StateOrProvince:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),PostCode:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Country:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)}),ol.format.WMSCapabilities.EXCEPTION_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Format:ol.xml.makeArrayPusher(ol.format.XSD.readString)}),ol.format.WMSCapabilities.LAYER_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Abstract:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),KeywordList:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readKeywordList_),CRS:ol.xml.makeObjectPropertyPusher(ol.format.XSD.readString),EX_GeographicBoundingBox:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readEXGeographicBoundingBox_),BoundingBox:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readBoundingBox_),Dimension:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readDimension_),Attribution:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readAttribution_),AuthorityURL:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readAuthorityURL_),Identifier:ol.xml.makeObjectPropertyPusher(ol.format.XSD.readString),MetadataURL:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readMetadataURL_),DataURL:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readFormatOnlineresource_),FeatureListURL:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readFormatOnlineresource_),Style:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readStyle_),MinScaleDenominator:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),MaxScaleDenominator:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),Layer:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readLayer_)}),ol.format.WMSCapabilities.ATTRIBUTION_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),OnlineResource:ol.xml.makeObjectPropertySetter(ol.format.XLink.readHref),LogoURL:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readSizedFormatOnlineresource_)}),ol.format.WMSCapabilities.EX_GEOGRAPHIC_BOUNDING_BOX_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{westBoundLongitude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),eastBoundLongitude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),southBoundLatitude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),northBoundLatitude:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal)}),ol.format.WMSCapabilities.REQUEST_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{GetCapabilities:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readOperationType_),GetMap:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readOperationType_),GetFeatureInfo:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readOperationType_)}),ol.format.WMSCapabilities.OPERATIONTYPE_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Format:ol.xml.makeObjectPropertyPusher(ol.format.XSD.readString),DCPType:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readDCPType_)}),ol.format.WMSCapabilities.DCPTYPE_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{HTTP:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readHTTP_)}),ol.format.WMSCapabilities.HTTP_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Get:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readFormatOnlineresource_),Post:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readFormatOnlineresource_)}),ol.format.WMSCapabilities.STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Name:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Abstract:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),LegendURL:ol.xml.makeObjectPropertyPusher(ol.format.WMSCapabilities.readSizedFormatOnlineresource_),StyleSheetURL:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readFormatOnlineresource_),StyleURL:ol.xml.makeObjectPropertySetter(ol.format.WMSCapabilities.readFormatOnlineresource_)}),ol.format.WMSCapabilities.FORMAT_ONLINERESOURCE_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Format:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),OnlineResource:ol.xml.makeObjectPropertySetter(ol.format.XLink.readHref)}),ol.format.WMSCapabilities.KEYWORDLIST_PARSERS_=ol.xml.makeStructureNS(ol.format.WMSCapabilities.NAMESPACE_URIS_,{Keyword:ol.xml.makeArrayPusher(ol.format.XSD.readString)}),n.provide("ol.format.WMSGetFeatureInfo"),n.require("ol"),n.require("ol.array"),n.require("ol.format.GML2"),n.require("ol.format.XMLFeature"),n.require("ol.obj"),n.require("ol.xml"),ol.format.WMSGetFeatureInfo=function(n){var t=n?n:{};this.featureNS_="http://mapserver.gis.umn.edu/mapserver";this.gmlFormat_=new ol.format.GML2;this.layers_=t.layers?t.layers:null;ol.format.XMLFeature.call(this)},ol.inherits(ol.format.WMSGetFeatureInfo,ol.format.XMLFeature),ol.format.WMSGetFeatureInfo.featureIdentifier_="_feature",ol.format.WMSGetFeatureInfo.layerIdentifier_="_layer",ol.format.WMSGetFeatureInfo.prototype.getLayers=function(){return this.layers_},ol.format.WMSGetFeatureInfo.prototype.setLayers=function(n){this.layers_=n},ol.format.WMSGetFeatureInfo.prototype.readFeatures_=function(n,t){var f,i,u,l,r,o,s,v,h,c;if(n.setAttribute("namespaceURI",this.featureNS_),f=n.localName,i=[],n.childNodes.length===0)return i;if(f=="msGMLOutput")for(u=0,l=n.childNodes.length;u<l;u++)if(r=n.childNodes[u],r.nodeType===Node.ELEMENT_NODE){var e=t[0],y=ol.format.WMSGetFeatureInfo.layerIdentifier_,a=r.localName.replace(y,"");(!this.layers_||ol.array.includes(this.layers_,a))&&(o=a+ol.format.WMSGetFeatureInfo.featureIdentifier_,e.featureType=o,e.featureNS=this.featureNS_,s={},s[o]=ol.xml.makeArrayPusher(this.gmlFormat_.readFeatureElement,this.gmlFormat_),v=ol.xml.makeStructureNS([e.featureNS,null],s),r.setAttribute("namespaceURI",this.featureNS_),h=ol.xml.pushParseAndPop([],v,r,t,this.gmlFormat_),h&&ol.array.extend(i,h))}return f=="FeatureCollection"&&(c=ol.xml.pushParseAndPop([],this.gmlFormat_.FEATURE_COLLECTION_PARSERS,n,[{}],this.gmlFormat_),c&&(i=c)),i},ol.format.WMSGetFeatureInfo.prototype.readFeatures,ol.format.WMSGetFeatureInfo.prototype.readFeaturesFromNode=function(n,t){var i={};return t&&ol.obj.assign(i,this.getReadOptions(n,t)),this.readFeatures_(n,[i])},ol.format.WMSGetFeatureInfo.prototype.writeFeatureNode=function(){},ol.format.WMSGetFeatureInfo.prototype.writeFeaturesNode=function(){},ol.format.WMSGetFeatureInfo.prototype.writeGeometryNode=function(){},n.provide("ol.format.WMTSCapabilities"),n.require("ol"),n.require("ol.extent"),n.require("ol.format.OWS"),n.require("ol.format.XLink"),n.require("ol.format.XML"),n.require("ol.format.XSD"),n.require("ol.xml"),ol.format.WMTSCapabilities=function(){ol.format.XML.call(this);this.owsParser_=new ol.format.OWS},ol.inherits(ol.format.WMTSCapabilities,ol.format.XML),ol.format.WMTSCapabilities.prototype.read,ol.format.WMTSCapabilities.prototype.readFromDocument=function(n){for(var t=n.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE)return this.readFromNode(t);return null},ol.format.WMTSCapabilities.prototype.readFromNode=function(n){var i=n.getAttribute("version").trim(),t=this.owsParser_.readFromNode(n);return t?(t.version=i,t=ol.xml.pushParseAndPop(t,ol.format.WMTSCapabilities.PARSERS_,n,[]),t?t:null):null},ol.format.WMTSCapabilities.readContents_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.CONTENTS_PARSERS_,n,t)},ol.format.WMTSCapabilities.readLayer_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.LAYER_PARSERS_,n,t)},ol.format.WMTSCapabilities.readTileMatrixSet_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.TMS_PARSERS_,n,t)},ol.format.WMTSCapabilities.readStyle_=function(n,t){var i=ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.STYLE_PARSERS_,n,t),r;return i?(r=n.getAttribute("isDefault")==="true",i.isDefault=r,i):undefined},ol.format.WMTSCapabilities.readTileMatrixSetLink_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.TMS_LINKS_PARSERS_,n,t)},ol.format.WMTSCapabilities.readDimensions_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.DIMENSION_PARSERS_,n,t)},ol.format.WMTSCapabilities.readResourceUrl_=function(n){var i=n.getAttribute("format"),r=n.getAttribute("template"),u=n.getAttribute("resourceType"),t={};return i&&(t.format=i),r&&(t.template=r),u&&(t.resourceType=u),t},ol.format.WMTSCapabilities.readWgs84BoundingBox_=function(n,t){var i=ol.xml.pushParseAndPop([],ol.format.WMTSCapabilities.WGS84_BBOX_READERS_,n,t);return i.length!=2?undefined:ol.extent.boundingExtent(i)},ol.format.WMTSCapabilities.readLegendUrl_=function(n){var t={};return t.format=n.getAttribute("format"),t.href=ol.format.XLink.readHref(n),t},ol.format.WMTSCapabilities.readCoordinates_=function(n){var t=ol.format.XSD.readString(n).split(" "),i,r;return!t||t.length!=2?undefined:(i=+t[0],r=+t[1],isNaN(i)||isNaN(r))?undefined:[i,r]},ol.format.WMTSCapabilities.readTileMatrix_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.TM_PARSERS_,n,t)},ol.format.WMTSCapabilities.readTileMatrixLimitsList_=function(n,t){return ol.xml.pushParseAndPop([],ol.format.WMTSCapabilities.TMS_LIMITS_LIST_PARSERS_,n,t)},ol.format.WMTSCapabilities.readTileMatrixLimits_=function(n,t){return ol.xml.pushParseAndPop({},ol.format.WMTSCapabilities.TMS_LIMITS_PARSERS_,n,t)},ol.format.WMTSCapabilities.NAMESPACE_URIS_=[null,"http://www.opengis.net/wmts/1.0"],ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_=[null,"http://www.opengis.net/ows/1.1"],ol.format.WMTSCapabilities.PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{Contents:ol.xml.makeObjectPropertySetter(ol.format.WMTSCapabilities.readContents_)}),ol.format.WMTSCapabilities.CONTENTS_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{Layer:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readLayer_),TileMatrixSet:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readTileMatrixSet_)}),ol.format.WMTSCapabilities.LAYER_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{Style:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readStyle_),Format:ol.xml.makeObjectPropertyPusher(ol.format.XSD.readString),TileMatrixSetLink:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readTileMatrixSetLink_),Dimension:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readDimensions_),ResourceURL:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readResourceUrl_)},ol.xml.makeStructureNS(ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_,{Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Abstract:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),WGS84BoundingBox:ol.xml.makeObjectPropertySetter(ol.format.WMTSCapabilities.readWgs84BoundingBox_),Identifier:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)})),ol.format.WMTSCapabilities.STYLE_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{LegendURL:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readLegendUrl_)},ol.xml.makeStructureNS(ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_,{Title:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Identifier:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)})),ol.format.WMTSCapabilities.TMS_LINKS_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{TileMatrixSet:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),TileMatrixSetLimits:ol.xml.makeObjectPropertySetter(ol.format.WMTSCapabilities.readTileMatrixLimitsList_)}),ol.format.WMTSCapabilities.TMS_LIMITS_LIST_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{TileMatrixLimits:ol.xml.makeArrayPusher(ol.format.WMTSCapabilities.readTileMatrixLimits_)}),ol.format.WMTSCapabilities.TMS_LIMITS_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{TileMatrix:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),MinTileRow:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MaxTileRow:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MinTileCol:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MaxTileCol:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger)}),ol.format.WMTSCapabilities.DIMENSION_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{Default:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Value:ol.xml.makeObjectPropertyPusher(ol.format.XSD.readString)},ol.xml.makeStructureNS(ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_,{Identifier:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)})),ol.format.WMTSCapabilities.WGS84_BBOX_READERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_,{LowerCorner:ol.xml.makeArrayPusher(ol.format.WMTSCapabilities.readCoordinates_),UpperCorner:ol.xml.makeArrayPusher(ol.format.WMTSCapabilities.readCoordinates_)}),ol.format.WMTSCapabilities.TMS_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{WellKnownScaleSet:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),TileMatrix:ol.xml.makeObjectPropertyPusher(ol.format.WMTSCapabilities.readTileMatrix_)},ol.xml.makeStructureNS(ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_,{SupportedCRS:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString),Identifier:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)})),ol.format.WMTSCapabilities.TM_PARSERS_=ol.xml.makeStructureNS(ol.format.WMTSCapabilities.NAMESPACE_URIS_,{TopLeftCorner:ol.xml.makeObjectPropertySetter(ol.format.WMTSCapabilities.readCoordinates_),ScaleDenominator:ol.xml.makeObjectPropertySetter(ol.format.XSD.readDecimal),TileWidth:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),TileHeight:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MatrixWidth:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger),MatrixHeight:ol.xml.makeObjectPropertySetter(ol.format.XSD.readNonNegativeInteger)},ol.xml.makeStructureNS(ol.format.WMTSCapabilities.OWS_NAMESPACE_URIS_,{Identifier:ol.xml.makeObjectPropertySetter(ol.format.XSD.readString)})),n.provide("ol.GeolocationProperty"),ol.GeolocationProperty={ACCURACY:"accuracy",ACCURACY_GEOMETRY:"accuracyGeometry",ALTITUDE:"altitude",ALTITUDE_ACCURACY:"altitudeAccuracy",HEADING:"heading",POSITION:"position",PROJECTION:"projection",SPEED:"speed",TRACKING:"tracking",TRACKING_OPTIONS:"trackingOptions"},n.provide("ol.Geolocation"),n.require("ol"),n.require("ol.GeolocationProperty"),n.require("ol.Object"),n.require("ol.Sphere"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.geom.Polygon"),n.require("ol.has"),n.require("ol.math"),n.require("ol.proj"),n.require("ol.proj.EPSG4326"),ol.Geolocation=function(n){ol.Object.call(this);var t=n||{};this.position_=null;this.transform_=ol.proj.identityTransform;this.sphere_=new ol.Sphere(ol.proj.EPSG4326.RADIUS);this.watchId_=undefined;ol.events.listen(this,ol.Object.getChangeEventType(ol.GeolocationProperty.PROJECTION),this.handleProjectionChanged_,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.GeolocationProperty.TRACKING),this.handleTrackingChanged_,this);t.projection!==undefined&&this.setProjection(t.projection);t.trackingOptions!==undefined&&this.setTrackingOptions(t.trackingOptions);this.setTracking(t.tracking!==undefined?t.tracking:!1)},ol.inherits(ol.Geolocation,ol.Object),ol.Geolocation.prototype.disposeInternal=function(){this.setTracking(!1);ol.Object.prototype.disposeInternal.call(this)},ol.Geolocation.prototype.handleProjectionChanged_=function(){var n=this.getProjection();n&&(this.transform_=ol.proj.getTransformFromProjections(ol.proj.get("EPSG:4326"),n),this.position_&&this.set(ol.GeolocationProperty.POSITION,this.transform_(this.position_)))},ol.Geolocation.prototype.handleTrackingChanged_=function(){if(ol.has.GEOLOCATION){var n=this.getTracking();n&&this.watchId_===undefined?this.watchId_=navigator.geolocation.watchPosition(this.positionChange_.bind(this),this.positionError_.bind(this),this.getTrackingOptions()):n||this.watchId_===undefined||(navigator.geolocation.clearWatch(this.watchId_),this.watchId_=undefined)}},ol.Geolocation.prototype.positionChange_=function(n){var t=n.coords,r,i;this.set(ol.GeolocationProperty.ACCURACY,t.accuracy);this.set(ol.GeolocationProperty.ALTITUDE,t.altitude===null?undefined:t.altitude);this.set(ol.GeolocationProperty.ALTITUDE_ACCURACY,t.altitudeAccuracy===null?undefined:t.altitudeAccuracy);this.set(ol.GeolocationProperty.HEADING,t.heading===null?undefined:ol.math.toRadians(t.heading));this.position_?(this.position_[0]=t.longitude,this.position_[1]=t.latitude):this.position_=[t.longitude,t.latitude];r=this.transform_(this.position_);this.set(ol.GeolocationProperty.POSITION,r);this.set(ol.GeolocationProperty.SPEED,t.speed===null?undefined:t.speed);i=ol.geom.Polygon.circular(this.sphere_,this.position_,t.accuracy);i.applyTransform(this.transform_);this.set(ol.GeolocationProperty.ACCURACY_GEOMETRY,i);this.changed()},ol.Geolocation.prototype.positionError_=function(n){n.type=ol.events.EventType.ERROR;this.setTracking(!1);this.dispatchEvent(n)},ol.Geolocation.prototype.getAccuracy=function(){return this.get(ol.GeolocationProperty.ACCURACY)},ol.Geolocation.prototype.getAccuracyGeometry=function(){return this.get(ol.GeolocationProperty.ACCURACY_GEOMETRY)||null},ol.Geolocation.prototype.getAltitude=function(){return this.get(ol.GeolocationProperty.ALTITUDE)},ol.Geolocation.prototype.getAltitudeAccuracy=function(){return this.get(ol.GeolocationProperty.ALTITUDE_ACCURACY)},ol.Geolocation.prototype.getHeading=function(){return this.get(ol.GeolocationProperty.HEADING)},ol.Geolocation.prototype.getPosition=function(){return this.get(ol.GeolocationProperty.POSITION)},ol.Geolocation.prototype.getProjection=function(){return this.get(ol.GeolocationProperty.PROJECTION)},ol.Geolocation.prototype.getSpeed=function(){return this.get(ol.GeolocationProperty.SPEED)},ol.Geolocation.prototype.getTracking=function(){return this.get(ol.GeolocationProperty.TRACKING)},ol.Geolocation.prototype.getTrackingOptions=function(){return this.get(ol.GeolocationProperty.TRACKING_OPTIONS)},ol.Geolocation.prototype.setProjection=function(n){this.set(ol.GeolocationProperty.PROJECTION,ol.proj.get(n))},ol.Geolocation.prototype.setTracking=function(n){this.set(ol.GeolocationProperty.TRACKING,n)},ol.Geolocation.prototype.setTrackingOptions=function(n){this.set(ol.GeolocationProperty.TRACKING_OPTIONS,n)},n.provide("ol.geom.Circle"),n.require("ol"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.GeometryType"),n.require("ol.geom.SimpleGeometry"),n.require("ol.geom.flat.deflate"),ol.geom.Circle=function(n,t,i){ol.geom.SimpleGeometry.call(this);var r=t?t:0;this.setCenterAndRadius(n,r,i)},ol.inherits(ol.geom.Circle,ol.geom.SimpleGeometry),ol.geom.Circle.prototype.clone=function(){var n=new ol.geom.Circle(null);return n.setFlatCoordinates(this.layout,this.flatCoordinates.slice()),n},ol.geom.Circle.prototype.closestPointXY=function(n,t,i,r){var f=this.flatCoordinates,o=n-f[0],s=t-f[1],e=o*o+s*s,u,h;if(e<r){if(e===0)for(u=0;u<this.stride;++u)i[u]=f[u];else for(h=this.getRadius()/Math.sqrt(e),i[0]=f[0]+h*o,i[1]=f[1]+h*s,u=2;u<this.stride;++u)i[u]=f[u];return i.length=this.stride,e}return r},ol.geom.Circle.prototype.containsXY=function(n,t){var i=this.flatCoordinates,r=n-i[0],u=t-i[1];return r*r+u*u<=this.getRadiusSquared_()},ol.geom.Circle.prototype.getCenter=function(){return this.flatCoordinates.slice(0,this.stride)},ol.geom.Circle.prototype.computeExtent=function(n){var t=this.flatCoordinates,i=t[this.stride]-t[0];return ol.extent.createOrUpdate(t[0]-i,t[1]-i,t[0]+i,t[1]+i,n)},ol.geom.Circle.prototype.getRadius=function(){return Math.sqrt(this.getRadiusSquared_())},ol.geom.Circle.prototype.getRadiusSquared_=function(){var n=this.flatCoordinates[this.stride]-this.flatCoordinates[0],t=this.flatCoordinates[this.stride+1]-this.flatCoordinates[1];return n*n+t*t},ol.geom.Circle.prototype.getType=function(){return ol.geom.GeometryType.CIRCLE},ol.geom.Circle.prototype.intersectsExtent=function(n){var i=this.getExtent(),t;return ol.extent.intersects(n,i)?(t=this.getCenter(),n[0]<=t[0]&&n[2]>=t[0])?!0:n[1]<=t[1]&&n[3]>=t[1]?!0:ol.extent.forEachCorner(n,this.intersectsCoordinate,this):!1},ol.geom.Circle.prototype.setCenter=function(n){var i=this.stride,u=this.flatCoordinates[i]-this.flatCoordinates[0],r=n.slice(),t;for(r[i]=r[0]+u,t=1;t<i;++t)r[i+t]=n[t];this.setFlatCoordinates(this.layout,r)},ol.geom.Circle.prototype.setCenterAndRadius=function(n,t,i){var r,u,f,e;if(n){for(this.setLayout(i,n,0),this.flatCoordinates||(this.flatCoordinates=[]),r=this.flatCoordinates,u=ol.geom.flat.deflate.coordinate(r,0,n,this.stride),r[u++]=r[0]+t,f=1,e=this.stride;f<e;++f)r[u++]=r[f];r.length=u;this.changed()}else this.setFlatCoordinates(ol.geom.GeometryLayout.XY,null)},ol.geom.Circle.prototype.getCoordinates=function(){},ol.geom.Circle.prototype.setCoordinates=function(){},ol.geom.Circle.prototype.setFlatCoordinates=function(n,t){this.setFlatCoordinatesInternal(n,t);this.changed()},ol.geom.Circle.prototype.setRadius=function(n){this.flatCoordinates[this.stride]=this.flatCoordinates[0]+n;this.changed()},ol.geom.Circle.prototype.transform,n.provide("ol.geom.flat.geodesic"),n.require("ol.math"),n.require("ol.proj"),ol.geom.flat.geodesic.line_=function(n,t,i){for(var y=[],o=n(0),s=n(1),r=t(o),u=t(s),p=[s,o],w=[u,r],h=[1,0],b={},k=1e5,c,f,l,a,v,e;--k>0&&h.length>0;)l=h.pop(),o=p.pop(),r=w.pop(),e=l.toString(),e in b||(y.push(r[0],r[1]),b[e]=!0),a=h.pop(),s=p.pop(),u=w.pop(),v=(l+a)/2,c=n(v),f=t(c),ol.math.squaredSegmentDistance(f[0],f[1],r[0],r[1],u[0],u[1])<i?(y.push(u[0],u[1]),e=a.toString(),b[e]=!0):(h.push(a,v,v,l),w.push(u,f,f,r),p.push(s,c,c,o));return y},ol.geom.flat.geodesic.greatCircleArc=function(n,t,i,r,u,f){var a=ol.proj.get("EPSG:4326"),e=Math.cos(ol.math.toRadians(t)),o=Math.sin(ol.math.toRadians(t)),s=Math.cos(ol.math.toRadians(r)),h=Math.sin(ol.math.toRadians(r)),c=Math.cos(ol.math.toRadians(i-n)),v=Math.sin(ol.math.toRadians(i-n)),l=o*h+e*s*c;return ol.geom.flat.geodesic.line_(function(t){if(1<=l)return[i,r];var u=t*Math.acos(l),f=Math.cos(u),a=Math.sin(u),w=v*s,b=e*h-o*s*c,y=Math.atan2(w,b),p=Math.asin(o*f+e*a*Math.cos(y)),k=ol.math.toRadians(n)+Math.atan2(Math.sin(y)*a*e,f-o*Math.sin(p));return[ol.math.toDegrees(k),ol.math.toDegrees(p)]},ol.proj.getTransform(a,u),f)},ol.geom.flat.geodesic.meridian=function(n,t,i,r,u){var f=ol.proj.get("EPSG:4326");return ol.geom.flat.geodesic.line_(function(r){return[n,t+(i-t)*r]},ol.proj.getTransform(f,r),u)},ol.geom.flat.geodesic.parallel=function(n,t,i,r,u){var f=ol.proj.get("EPSG:4326");return ol.geom.flat.geodesic.line_(function(r){return[t+(i-t)*r,n]},ol.proj.getTransform(f,r),u)},n.provide("ol.geom.flat.topology"),n.require("ol.geom.flat.area"),ol.geom.flat.topology.lineStringIsClosed=function(n,t,i,r){var u=i-r;return n[t]===n[u]&&n[t+1]===n[u+1]&&(i-t)/r>3?!!ol.geom.flat.area.linearRing(n,t,i,r):!1},n.provide("ol.Graticule"),n.require("ol.coordinate"),n.require("ol.extent"),n.require("ol.geom.GeometryLayout"),n.require("ol.geom.LineString"),n.require("ol.geom.Point"),n.require("ol.geom.flat.geodesic"),n.require("ol.math"),n.require("ol.proj"),n.require("ol.render.EventType"),n.require("ol.style.Fill"),n.require("ol.style.Stroke"),n.require("ol.style.Text"),ol.Graticule=function(n){var t=n||{},i;this.map_=null;this.projection_=null;this.maxLat_=Infinity;this.maxLon_=Infinity;this.minLat_=-Infinity;this.minLon_=-Infinity;this.maxLatP_=Infinity;this.maxLonP_=Infinity;this.minLatP_=-Infinity;this.minLonP_=-Infinity;this.targetSize_=t.targetSize!==undefined?t.targetSize:100;this.maxLines_=t.maxLines!==undefined?t.maxLines:100;this.meridians_=[];this.parallels_=[];this.strokeStyle_=t.strokeStyle!==undefined?t.strokeStyle:ol.Graticule.DEFAULT_STROKE_STYLE_;this.fromLonLatTransform_=undefined;this.toLonLatTransform_=undefined;this.projectionCenterLonLat_=null;this.meridiansLabels_=null;this.parallelsLabels_=null;t.showLabels==!0&&(i=ol.coordinate.degreesToStringHDMS,this.lonLabelFormatter_=t.lonLabelFormatter==undefined?i.bind(this,"EW"):t.lonLabelFormatter,this.latLabelFormatter_=t.latLabelFormatter==undefined?i.bind(this,"NS"):t.latLabelFormatter,this.lonLabelPosition_=t.lonLabelPosition==undefined?0:t.lonLabelPosition,this.latLabelPosition_=t.latLabelPosition==undefined?1:t.latLabelPosition,this.lonLabelStyle_=t.lonLabelStyle!==undefined?t.lonLabelStyle:new ol.style.Text({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new ol.style.Fill({color:"rgba(0,0,0,1)"}),stroke:new ol.style.Stroke({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=t.latLabelStyle!==undefined?t.latLabelStyle:new ol.style.Text({font:"12px Calibri,sans-serif",textAlign:"end",fill:new ol.style.Fill({color:"rgba(0,0,0,1)"}),stroke:new ol.style.Stroke({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]);this.setMap(t.map!==undefined?t.map:null)},ol.Graticule.DEFAULT_STROKE_STYLE_=new ol.style.Stroke({color:"rgba(0,0,0,0.2)"}),ol.Graticule.intervals_=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],ol.Graticule.prototype.addMeridian_=function(n,t,i,r,u,f){var e=this.getMeridian_(n,t,i,r,f),o;return ol.extent.intersects(e.getExtent(),u)&&(this.meridiansLabels_&&(o=this.getMeridianPoint_(e,u,f),this.meridiansLabels_[f]={geom:o,text:this.lonLabelFormatter_(n)}),this.meridians_[f++]=e),f},ol.Graticule.prototype.getMeridianPoint_=function(n,t,i){var r=n.getFlatCoordinates(),f=Math.max(t[1],r[1]),e=Math.min(t[3],r[r.length-1]),o=ol.math.clamp(t[1]+Math.abs(t[1]-t[3])*this.lonLabelPosition_,f,e),s=[r[0],o],u=this.meridiansLabels_[i]!==undefined?this.meridiansLabels_[i].geom:new ol.geom.Point(null);return u.setCoordinates(s),u},ol.Graticule.prototype.addParallel_=function(n,t,i,r,u,f){var e=this.getParallel_(n,t,i,r,f),o;return ol.extent.intersects(e.getExtent(),u)&&(this.parallelsLabels_&&(o=this.getParallelPoint_(e,u,f),this.parallelsLabels_[f]={geom:o,text:this.latLabelFormatter_(n)}),this.parallels_[f++]=e),f},ol.Graticule.prototype.getParallelPoint_=function(n,t,i){var r=n.getFlatCoordinates(),f=Math.max(t[0],r[0]),e=Math.min(t[2],r[r.length-2]),o=ol.math.clamp(t[0]+Math.abs(t[0]-t[2])*this.latLabelPosition_,f,e),s=[o,r[1]],u=this.parallelsLabels_[i]!==undefined?this.parallelsLabels_[i].geom:new ol.geom.Point(null);return u.setCoordinates(s),u},ol.Graticule.prototype.createGraticule_=function(n,t,i,r){var o=this.getInterval_(i);if(o==-1){this.meridians_.length=this.parallels_.length=0;this.meridiansLabels_&&(this.meridiansLabels_.length=0);this.parallelsLabels_&&(this.parallelsLabels_.length=0);return}var b=this.toLonLatTransform_(t),c=b[0],l=b[1],a=this.maxLines_,s,u,f,e,h=[Math.max(n[0],this.minLonP_),Math.max(n[1],this.minLatP_),Math.min(n[2],this.maxLonP_),Math.min(n[3],this.maxLatP_)];h=ol.proj.transformExtent(h,this.projection_,"EPSG:4326");var v=h[3],y=h[2],p=h[1],w=h[0];for(c=Math.floor(c/o)*o,e=ol.math.clamp(c,this.minLon_,this.maxLon_),u=this.addMeridian_(e,p,v,r,n,0),s=0;e!=this.minLon_&&s++<a;)e=Math.max(e-o,this.minLon_),u=this.addMeridian_(e,p,v,r,n,u);for(e=ol.math.clamp(c,this.minLon_,this.maxLon_),s=0;e!=this.maxLon_&&s++<a;)e=Math.min(e+o,this.maxLon_),u=this.addMeridian_(e,p,v,r,n,u);for(this.meridians_.length=u,this.meridiansLabels_&&(this.meridiansLabels_.length=u),l=Math.floor(l/o)*o,f=ol.math.clamp(l,this.minLat_,this.maxLat_),u=this.addParallel_(f,w,y,r,n,0),s=0;f!=this.minLat_&&s++<a;)f=Math.max(f-o,this.minLat_),u=this.addParallel_(f,w,y,r,n,u);for(f=ol.math.clamp(l,this.minLat_,this.maxLat_),s=0;f!=this.maxLat_&&s++<a;)f=Math.min(f+o,this.maxLat_),u=this.addParallel_(f,w,y,r,n,u);this.parallels_.length=u;this.parallelsLabels_&&(this.parallelsLabels_.length=u)},ol.Graticule.prototype.getInterval_=function(n){for(var f=this.projectionCenterLonLat_[0],e=this.projectionCenterLonLat_[1],o=-1,u,h,c=Math.pow(this.targetSize_*n,2),t=[],i=[],r=0,s=ol.Graticule.intervals_.length;r<s;++r){if(u=ol.Graticule.intervals_[r]/2,t[0]=f-u,t[1]=e-u,i[0]=f+u,i[1]=e+u,this.fromLonLatTransform_(t,t),this.fromLonLatTransform_(i,i),h=Math.pow(i[0]-t[0],2)+Math.pow(i[1]-t[1],2),h<=c)break;o=ol.Graticule.intervals_[r]}return o},ol.Graticule.prototype.getMap=function(){return this.map_},ol.Graticule.prototype.getMeridian_=function(n,t,i,r,u){var e=ol.geom.flat.geodesic.meridian(n,t,i,this.projection_,r),f=this.meridians_[u]!==undefined?this.meridians_[u]:new ol.geom.LineString(null);return f.setFlatCoordinates(ol.geom.GeometryLayout.XY,e),f},ol.Graticule.prototype.getMeridians=function(){return this.meridians_},ol.Graticule.prototype.getParallel_=function(n,t,i,r,u){var e=ol.geom.flat.geodesic.parallel(n,t,i,this.projection_,r),f=this.parallels_[u]!==undefined?this.parallels_[u]:new ol.geom.LineString(null);return f.setFlatCoordinates(ol.geom.GeometryLayout.XY,e),f},ol.Graticule.prototype.getParallels=function(){return this.parallels_},ol.Graticule.prototype.handlePostCompose_=function(n){var r=n.vectorContext,e=n.frameState,l=e.extent,o=e.viewState,a=o.center,h=o.projection,s=o.resolution,c=e.pixelRatio,v=s*s/(4*c*c),y=!this.projection_||!ol.proj.equivalent(this.projection_,h),t,i,f,u;for(y&&this.updateProjectionInfo_(h),this.createGraticule_(l,a,s,v),r.setFillStrokeStyle(null,this.strokeStyle_),t=0,i=this.meridians_.length;t<i;++t)f=this.meridians_[t],r.drawGeometry(f);for(t=0,i=this.parallels_.length;t<i;++t)f=this.parallels_[t],r.drawGeometry(f);if(this.meridiansLabels_)for(t=0,i=this.meridiansLabels_.length;t<i;++t)u=this.meridiansLabels_[t],this.lonLabelStyle_.setText(u.text),r.setTextStyle(this.lonLabelStyle_),r.drawGeometry(u.geom);if(this.parallelsLabels_)for(t=0,i=this.parallelsLabels_.length;t<i;++t)u=this.parallelsLabels_[t],this.latLabelStyle_.setText(u.text),r.setTextStyle(this.latLabelStyle_),r.drawGeometry(u.geom)},ol.Graticule.prototype.updateProjectionInfo_=function(n){var r=ol.proj.get("EPSG:4326"),u=n.getExtent(),t=n.getWorldExtent(),i=ol.proj.transformExtent(t,r,n),f=t[3],e=t[2],o=t[1],s=t[0],h=i[3],c=i[2],l=i[1],a=i[0];this.maxLat_=f;this.maxLon_=e;this.minLat_=o;this.minLon_=s;this.maxLatP_=h;this.maxLonP_=c;this.minLatP_=l;this.minLonP_=a;this.fromLonLatTransform_=ol.proj.getTransform(r,n);this.toLonLatTransform_=ol.proj.getTransform(n,r);this.projectionCenterLonLat_=this.toLonLatTransform_(ol.extent.getCenter(u));this.projection_=n},ol.Graticule.prototype.setMap=function(n){if(this.map_&&(this.map_.un(ol.render.EventType.POSTCOMPOSE,this.handlePostCompose_,this),this.map_.render()),n){n.on(ol.render.EventType.POSTCOMPOSE,this.handlePostCompose_,this);n.render()}this.map_=n},n.provide("ol.Image"),n.require("ol"),n.require("ol.ImageBase"),n.require("ol.ImageState"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),ol.Image=function(n,t,i,r,u,f){ol.ImageBase.call(this,n,t,i,ol.ImageState.IDLE);this.src_=r;this.image_=new Image;u!==null&&(this.image_.crossOrigin=u);this.imageListenerKeys_=null;this.state=ol.ImageState.IDLE;this.imageLoadFunction_=f},ol.inherits(ol.Image,ol.ImageBase),ol.Image.prototype.getImage=function(){return this.image_},ol.Image.prototype.handleImageError_=function(){this.state=ol.ImageState.ERROR;this.unlistenImage_();this.changed()},ol.Image.prototype.handleImageLoad_=function(){this.resolution===undefined&&(this.resolution=ol.extent.getHeight(this.extent)/this.image_.height);this.state=ol.ImageState.LOADED;this.unlistenImage_();this.changed()},ol.Image.prototype.load=function(){(this.state==ol.ImageState.IDLE||this.state==ol.ImageState.ERROR)&&(this.state=ol.ImageState.LOADING,this.changed(),this.imageListenerKeys_=[ol.events.listenOnce(this.image_,ol.events.EventType.ERROR,this.handleImageError_,this),ol.events.listenOnce(this.image_,ol.events.EventType.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},ol.Image.prototype.setImage=function(n){this.image_=n},ol.Image.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(ol.events.unlistenByKey);this.imageListenerKeys_=null},n.provide("ol.Tile"),n.require("ol"),n.require("ol.TileState"),n.require("ol.easing"),n.require("ol.events.EventTarget"),n.require("ol.events.EventType"),ol.Tile=function(n,t,i){ol.events.EventTarget.call(this);var r=i?i:{};this.tileCoord=n;this.state=t;this.interimTile=null;this.key="";this.transition_=r.transition===undefined?250:r.transition;this.transitionStarts_={}},ol.inherits(ol.Tile,ol.events.EventTarget),ol.Tile.prototype.changed=function(){this.dispatchEvent(ol.events.EventType.CHANGE)},ol.Tile.prototype.getKey=function(){return this.key+"/"+this.tileCoord},ol.Tile.prototype.getInterimTile=function(){if(!this.interimTile)return this;var n=this.interimTile;do{if(n.getState()==ol.TileState.LOADED)return n;n=n.interimTile}while(n);return this},ol.Tile.prototype.refreshInterimChain=function(){if(this.interimTile){var n=this.interimTile,t=this;do{if(n.getState()==ol.TileState.LOADED){n.interimTile=null;break}else n.getState()==ol.TileState.LOADING?t=n:n.getState()==ol.TileState.IDLE?t.interimTile=n.interimTile:t=n;n=t.interimTile}while(n)}},ol.Tile.prototype.getTileCoord=function(){return this.tileCoord},ol.Tile.prototype.getState=function(){return this.state},ol.Tile.prototype.setState=function(n){this.state=n;this.changed()},ol.Tile.prototype.load=function(){},ol.Tile.prototype.getAlpha=function(n,t){var i,r;if(!this.transition_)return 1;if(i=this.transitionStarts_[n],i){if(i===-1)return 1}else i=t,this.transitionStarts_[n]=i;return(r=t-i+1e3/60,r>=this.transition_)?1:ol.easing.easeIn(r/this.transition_)},ol.Tile.prototype.inTransition=function(n){return this.transition_?this.transitionStarts_[n]!==-1:!1},ol.Tile.prototype.endTransition=function(n){this.transition_&&(this.transitionStarts_[n]=-1)},n.provide("ol.ImageTile"),n.require("ol"),n.require("ol.Tile"),n.require("ol.TileState"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),ol.ImageTile=function(n,t,i,r,u,f){ol.Tile.call(this,n,t,f);this.crossOrigin_=r;this.src_=i;this.image_=new Image;r!==null&&(this.image_.crossOrigin=r);this.imageListenerKeys_=null;this.tileLoadFunction_=u},ol.inherits(ol.ImageTile,ol.Tile),ol.ImageTile.prototype.disposeInternal=function(){this.state==ol.TileState.LOADING&&(this.unlistenImage_(),this.image_=ol.ImageTile.getBlankImage());this.interimTile&&this.interimTile.dispose();this.state=ol.TileState.ABORT;this.changed();ol.Tile.prototype.disposeInternal.call(this)},ol.ImageTile.prototype.getImage=function(){return this.image_},ol.ImageTile.prototype.getKey=function(){return this.src_},ol.ImageTile.prototype.handleImageError_=function(){this.state=ol.TileState.ERROR;this.unlistenImage_();this.image_=ol.ImageTile.getBlankImage();this.changed()},ol.ImageTile.prototype.handleImageLoad_=function(){this.state=this.image_.naturalWidth&&this.image_.naturalHeight?ol.TileState.LOADED:ol.TileState.EMPTY;this.unlistenImage_();this.changed()},ol.ImageTile.prototype.load=function(){this.state==ol.TileState.ERROR&&(this.state=ol.TileState.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_));this.state==ol.TileState.IDLE&&(this.state=ol.TileState.LOADING,this.changed(),this.imageListenerKeys_=[ol.events.listenOnce(this.image_,ol.events.EventType.ERROR,this.handleImageError_,this),ol.events.listenOnce(this.image_,ol.events.EventType.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},ol.ImageTile.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(ol.events.unlistenByKey);this.imageListenerKeys_=null},ol.ImageTile.getBlankImage=function(){var n=ol.dom.createCanvasContext2D(1,1);return n.fillStyle="rgba(0,0,0,0)",n.fillRect(0,0,1,1),n.canvas},n.provide("ol.interaction.DragAndDrop"),n.require("ol"),n.require("ol.functions"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.EventType"),n.require("ol.interaction.Interaction"),n.require("ol.proj"),ol.interaction.DragAndDrop=function(n){var t=n?n:{};ol.interaction.Interaction.call(this,{handleEvent:ol.interaction.DragAndDrop.handleEvent});this.formatConstructors_=t.formatConstructors?t.formatConstructors:[];this.projection_=t.projection?ol.proj.get(t.projection):null;this.dropListenKeys_=null;this.source_=t.source||null;this.target=t.target?t.target:null},ol.inherits(ol.interaction.DragAndDrop,ol.interaction.Interaction),ol.interaction.DragAndDrop.handleDrop_=function(n){for(var u=n.dataTransfer.files,i,r,t=0,f=u.length;t<f;++t)i=u.item(t),r=new FileReader,r.addEventListener(ol.events.EventType.LOAD,this.handleResult_.bind(this,i)),r.readAsText(i)},ol.interaction.DragAndDrop.handleStop_=function(n){n.stopPropagation();n.preventDefault();n.dataTransfer.dropEffect="copy"},ol.interaction.DragAndDrop.prototype.handleResult_=function(n,t){var c=t.target.result,l=this.getMap(),r=this.projection_,e,f,i,u,o,s,h;for(r||(e=l.getView(),r=e.getProjection()),f=this.formatConstructors_,i=[],u=0,o=f.length;u<o;++u)if(s=f[u],h=new s,i=this.tryReadFeatures_(h,c,{featureProjection:r}),i&&i.length>0)break;this.source_&&(this.source_.clear(),this.source_.addFeatures(i));this.dispatchEvent(new ol.interaction.DragAndDrop.Event(ol.interaction.DragAndDrop.EventType_.ADD_FEATURES,n,i,r))},ol.interaction.DragAndDrop.handleEvent=ol.functions.TRUE,ol.interaction.DragAndDrop.prototype.registerListeners_=function(){var t=this.getMap(),n;t&&(n=this.target?this.target:t.getViewport(),this.dropListenKeys_=[ol.events.listen(n,ol.events.EventType.DROP,ol.interaction.DragAndDrop.handleDrop_,this),ol.events.listen(n,ol.events.EventType.DRAGENTER,ol.interaction.DragAndDrop.handleStop_,this),ol.events.listen(n,ol.events.EventType.DRAGOVER,ol.interaction.DragAndDrop.handleStop_,this),ol.events.listen(n,ol.events.EventType.DROP,ol.interaction.DragAndDrop.handleStop_,this)])},ol.interaction.DragAndDrop.prototype.setActive=function(n){ol.interaction.Interaction.prototype.setActive.call(this,n);n?this.registerListeners_():this.unregisterListeners_()},ol.interaction.DragAndDrop.prototype.setMap=function(n){this.unregisterListeners_();ol.interaction.Interaction.prototype.setMap.call(this,n);this.getActive()&&this.registerListeners_()},ol.interaction.DragAndDrop.prototype.tryReadFeatures_=function(n,t,i){try{return n.readFeatures(t,i)}catch(r){return null}},ol.interaction.DragAndDrop.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(ol.events.unlistenByKey),this.dropListenKeys_=null)},ol.interaction.DragAndDrop.EventType_={ADD_FEATURES:"addfeatures"},ol.interaction.DragAndDrop.Event=function(n,t,i,r){ol.events.Event.call(this,n);this.features=i;this.file=t;this.projection=r},ol.inherits(ol.interaction.DragAndDrop.Event,ol.events.Event),n.provide("ol.interaction.DragRotateAndZoom"),n.require("ol"),n.require("ol.RotationConstraint"),n.require("ol.ViewHint"),n.require("ol.events.condition"),n.require("ol.interaction.Interaction"),n.require("ol.interaction.Pointer"),ol.interaction.DragRotateAndZoom=function(n){var t=n?n:{};ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.DragRotateAndZoom.handleDownEvent_,handleDragEvent:ol.interaction.DragRotateAndZoom.handleDragEvent_,handleUpEvent:ol.interaction.DragRotateAndZoom.handleUpEvent_});this.condition_=t.condition?t.condition:ol.events.condition.shiftKeyOnly;this.lastAngle_=undefined;this.lastMagnitude_=undefined;this.lastScaleDelta_=0;this.duration_=t.duration!==undefined?t.duration:400},ol.inherits(ol.interaction.DragRotateAndZoom,ol.interaction.Pointer),ol.interaction.DragRotateAndZoom.handleDragEvent_=function(n){var h,c;if(ol.events.condition.mouseOnly(n)){var f=n.map,e=f.getSize(),o=n.pixel,i=o[0]-e[0]/2,r=e[1]/2-o[1],s=Math.atan2(r,i),u=Math.sqrt(i*i+r*r),t=f.getView();t.getConstraints().rotation!==ol.RotationConstraint.disable&&this.lastAngle_!==undefined&&(h=s-this.lastAngle_,ol.interaction.Interaction.rotateWithoutConstraints(t,t.getRotation()-h));this.lastAngle_=s;this.lastMagnitude_!==undefined&&(c=this.lastMagnitude_*(t.getResolution()/u),ol.interaction.Interaction.zoomWithoutConstraints(t,c));this.lastMagnitude_!==undefined&&(this.lastScaleDelta_=this.lastMagnitude_/u);this.lastMagnitude_=u}},ol.interaction.DragRotateAndZoom.handleUpEvent_=function(n){var i,t,r;return ol.events.condition.mouseOnly(n)?(i=n.map,t=i.getView(),t.setHint(ol.ViewHint.INTERACTING,-1),r=this.lastScaleDelta_-1,ol.interaction.Interaction.rotate(t,t.getRotation()),ol.interaction.Interaction.zoom(t,t.getResolution(),undefined,this.duration_,r),this.lastScaleDelta_=0,!1):!0},ol.interaction.DragRotateAndZoom.handleDownEvent_=function(n){return ol.events.condition.mouseOnly(n)?this.condition_(n)?(n.map.getView().setHint(ol.ViewHint.INTERACTING,1),this.lastAngle_=undefined,this.lastMagnitude_=undefined,!0):!1:!1},n.provide("ol.interaction.DrawEventType"),ol.interaction.DrawEventType={DRAWSTART:"drawstart",DRAWEND:"drawend"},n.provide("ol.layer.Vector"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.layer.Layer"),n.require("ol.layer.VectorRenderType"),n.require("ol.obj"),n.require("ol.style.Style"),ol.layer.Vector=function(n){var t=n?n:{},i=ol.obj.assign({},t);delete i.style;delete i.renderBuffer;delete i.updateWhileAnimating;delete i.updateWhileInteracting;ol.layer.Layer.call(this,i);this.declutter_=t.declutter!==undefined?t.declutter:!1;this.renderBuffer_=t.renderBuffer!==undefined?t.renderBuffer:100;this.style_=null;this.styleFunction_=undefined;this.setStyle(t.style);this.updateWhileAnimating_=t.updateWhileAnimating!==undefined?t.updateWhileAnimating:!1;this.updateWhileInteracting_=t.updateWhileInteracting!==undefined?t.updateWhileInteracting:!1;this.renderMode_=t.renderMode||ol.layer.VectorRenderType.VECTOR;this.type=ol.LayerType.VECTOR},ol.inherits(ol.layer.Vector,ol.layer.Layer),ol.layer.Vector.prototype.getDeclutter=function(){return this.declutter_},ol.layer.Vector.prototype.setDeclutter=function(n){this.declutter_=n},ol.layer.Vector.prototype.getRenderBuffer=function(){return this.renderBuffer_},ol.layer.Vector.prototype.getRenderOrder=function(){return this.get(ol.layer.Vector.Property_.RENDER_ORDER)},ol.layer.Vector.prototype.getSource,ol.layer.Vector.prototype.getStyle=function(){return this.style_},ol.layer.Vector.prototype.getStyleFunction=function(){return this.styleFunction_},ol.layer.Vector.prototype.getUpdateWhileAnimating=function(){return this.updateWhileAnimating_},ol.layer.Vector.prototype.getUpdateWhileInteracting=function(){return this.updateWhileInteracting_},ol.layer.Vector.prototype.setRenderOrder=function(n){this.set(ol.layer.Vector.Property_.RENDER_ORDER,n)},ol.layer.Vector.prototype.setStyle=function(n){this.style_=n!==undefined?n:ol.style.Style.defaultFunction;this.styleFunction_=n===null?undefined:ol.style.Style.createFunction(this.style_);this.changed()},ol.layer.Vector.prototype.getRenderMode=function(){return this.renderMode_},ol.layer.Vector.Property_={RENDER_ORDER:"renderOrder"},n.provide("ol.loadingstrategy"),ol.loadingstrategy.all=function(){return[[-Infinity,-Infinity,Infinity,Infinity]]},ol.loadingstrategy.bbox=function(n){return[n]},ol.loadingstrategy.tile=function(n){return function(t,i){var f=n.getZForResolution(i),u=n.getTileRangeForExtentAndZ(t,f),e=[],r=[f,0,0];for(r[1]=u.minX;r[1]<=u.maxX;++r[1])for(r[2]=u.minY;r[2]<=u.maxY;++r[2])e.push(n.getTileCoordExtent(r));return e}},n.provide("ol.source.Source"),n.require("ol"),n.require("ol.Attribution"),n.require("ol.Object"),n.require("ol.proj"),n.require("ol.source.State"),ol.source.Source=function(n){ol.Object.call(this);this.projection_=ol.proj.get(n.projection);this.attributions_=null;this.attributions2_=this.adaptAttributions_(n.attributions);this.logo_=n.logo;this.state_=n.state!==undefined?n.state:ol.source.State.READY;this.wrapX_=n.wrapX!==undefined?n.wrapX:!1},ol.inherits(ol.source.Source,ol.Object),ol.source.Source.prototype.adaptAttributions_=function(n){if(!n)return null;if(n instanceof ol.Attribution)return this.attributions_=[n],function(){return[n.getHTML()]};if(Array.isArray(n)){if(n[0]instanceof ol.Attribution){this.attributions_=n;var t=n.map(function(n){return n.getHTML()});return function(){return t}}return this.attributions_=n.map(function(n){return new ol.Attribution({html:n})}),function(){return n}}return typeof n=="function"?n:(this.attributions_=[new ol.Attribution({html:n})],function(){return[n]})},ol.source.Source.prototype.forEachFeatureAtCoordinate=ol.nullFunction,ol.source.Source.prototype.getAttributions=function(){return this.attributions_},ol.source.Source.prototype.getAttributions2=function(){return this.attributions2_},ol.source.Source.prototype.getLogo=function(){return this.logo_},ol.source.Source.prototype.getProjection=function(){return this.projection_},ol.source.Source.prototype.getResolutions=function(){},ol.source.Source.prototype.getState=function(){return this.state_},ol.source.Source.prototype.getWrapX=function(){return this.wrapX_},ol.source.Source.prototype.refresh=function(){this.changed()},ol.source.Source.prototype.setAttributions=function(n){this.attributions2_=this.adaptAttributions_(n);this.changed()},ol.source.Source.prototype.setLogo=function(n){this.logo_=n},ol.source.Source.prototype.setState=function(n){this.state_=n;this.changed()},n.provide("ol.source.VectorEventType"),ol.source.VectorEventType={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},n.provide("ol.structs.RBush"),n.require("ol"),n.require("ol.ext.rbush"),n.require("ol.extent"),n.require("ol.obj"),ol.structs.RBush=function(n){this.rbush_=ol.ext.rbush(n);this.items_={}},ol.structs.RBush.prototype.insert=function(n,t){var i={minX:n[0],minY:n[1],maxX:n[2],maxY:n[3],value:t};this.rbush_.insert(i);this.items_[ol.getUid(t)]=i},ol.structs.RBush.prototype.load=function(n,t){for(var u=new Array(t.length),i=0,o=t.length;i<o;i++){var r=n[i],f=t[i],e={minX:r[0],minY:r[1],maxX:r[2],maxY:r[3],value:f};u[i]=e;this.items_[ol.getUid(f)]=e}this.rbush_.load(u)},ol.structs.RBush.prototype.remove=function(n){var t=ol.getUid(n),i=this.items_[t];return delete this.items_[t],this.rbush_.remove(i)!==null},ol.structs.RBush.prototype.update=function(n,t){var i=this.items_[ol.getUid(t)],r=[i.minX,i.minY,i.maxX,i.maxY];ol.extent.equals(r,n)||(this.remove(t),this.insert(n,t))},ol.structs.RBush.prototype.getAll=function(){var n=this.rbush_.all();return n.map(function(n){return n.value})},ol.structs.RBush.prototype.getInExtent=function(n){var t={minX:n[0],minY:n[1],maxX:n[2],maxY:n[3]},i=this.rbush_.search(t);return i.map(function(n){return n.value})},ol.structs.RBush.prototype.forEach=function(n,t){return this.forEach_(this.getAll(),n,t)},ol.structs.RBush.prototype.forEachInExtent=function(n,t,i){return this.forEach_(this.getInExtent(n),t,i)},ol.structs.RBush.prototype.forEach_=function(n,t,i){for(var r,u=0,f=n.length;u<f;u++)if(r=t.call(i,n[u]),r)return r;return r},ol.structs.RBush.prototype.isEmpty=function(){return ol.obj.isEmpty(this.items_)},ol.structs.RBush.prototype.clear=function(){this.rbush_.clear();this.items_={}},ol.structs.RBush.prototype.getExtent=function(n){var t=this.rbush_.data;return ol.extent.createOrUpdate(t.minX,t.minY,t.maxX,t.maxY,n)},ol.structs.RBush.prototype.concat=function(n){this.rbush_.load(n.rbush_.all());for(var t in n.items_)this.items_[t|0]=n.items_[t|0]},n.provide("ol.source.Vector"),n.require("ol"),n.require("ol.Collection"),n.require("ol.CollectionEventType"),n.require("ol.ObjectEventType"),n.require("ol.array"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.featureloader"),n.require("ol.functions"),n.require("ol.loadingstrategy"),n.require("ol.obj"),n.require("ol.source.Source"),n.require("ol.source.State"),n.require("ol.source.VectorEventType"),n.require("ol.structs.RBush"),ol.source.Vector=function(n){var t=n||{},u,i,r;ol.source.Source.call(this,{attributions:t.attributions,logo:t.logo,projection:undefined,state:ol.source.State.READY,wrapX:t.wrapX!==undefined?t.wrapX:!0});this.loader_=ol.nullFunction;this.format_=t.format;this.overlaps_=t.overlaps==undefined?!0:t.overlaps;this.url_=t.url;t.loader!==undefined?this.loader_=t.loader:this.url_!==undefined&&(ol.asserts.assert(this.format_,7),this.loader_=ol.featureloader.xhr(this.url_,this.format_));this.strategy_=t.strategy!==undefined?t.strategy:ol.loadingstrategy.all;u=t.useSpatialIndex!==undefined?t.useSpatialIndex:!0;this.featuresRtree_=u?new ol.structs.RBush:null;this.loadedExtentsRtree_=new ol.structs.RBush;this.nullGeometryFeatures_={};this.idIndex_={};this.undefIdIndex_={};this.featureChangeKeys_={};this.featuresCollection_=null;t.features instanceof ol.Collection?(i=t.features,r=i.getArray()):Array.isArray(t.features)&&(r=t.features);u||i!==undefined||(i=new ol.Collection(r));r!==undefined&&this.addFeaturesInternal(r);i!==undefined&&this.bindFeaturesCollection_(i)},ol.inherits(ol.source.Vector,ol.source.Source),ol.source.Vector.prototype.addFeature=function(n){this.addFeatureInternal(n);this.changed()},ol.source.Vector.prototype.addFeatureInternal=function(n){var t=ol.getUid(n).toString(),i,r;this.addToIndex_(t,n)&&(this.setupChangeEvents_(t,n),i=n.getGeometry(),i?(r=i.getExtent(),this.featuresRtree_&&this.featuresRtree_.insert(r,n)):this.nullGeometryFeatures_[t]=n,this.dispatchEvent(new ol.source.Vector.Event(ol.source.VectorEventType.ADDFEATURE,n)))},ol.source.Vector.prototype.setupChangeEvents_=function(n,t){this.featureChangeKeys_[n]=[ol.events.listen(t,ol.events.EventType.CHANGE,this.handleFeatureChange_,this),ol.events.listen(t,ol.ObjectEventType.PROPERTYCHANGE,this.handleFeatureChange_,this)]},ol.source.Vector.prototype.addToIndex_=function(n,t){var r=!0,i=t.getId();return i!==undefined?i.toString()in this.idIndex_?r=!1:this.idIndex_[i.toString()]=t:(ol.asserts.assert(!(n in this.undefIdIndex_),30),this.undefIdIndex_[n]=t),r},ol.source.Vector.prototype.addFeatures=function(n){this.addFeaturesInternal(n);this.changed()},ol.source.Vector.prototype.addFeaturesInternal=function(n){for(var u,i,o=[],f=[],s=[],e,h,t=0,r=n.length;t<r;t++)i=n[t],u=ol.getUid(i).toString(),this.addToIndex_(u,i)&&f.push(i);for(t=0,r=f.length;t<r;t++)i=f[t],u=ol.getUid(i).toString(),this.setupChangeEvents_(u,i),e=i.getGeometry(),e?(h=e.getExtent(),o.push(h),s.push(i)):this.nullGeometryFeatures_[u]=i;for(this.featuresRtree_&&this.featuresRtree_.load(o,s),t=0,r=f.length;t<r;t++)this.dispatchEvent(new ol.source.Vector.Event(ol.source.VectorEventType.ADDFEATURE,f[t]))},ol.source.Vector.prototype.bindFeaturesCollection_=function(n){var t=!1;ol.events.listen(this,ol.source.VectorEventType.ADDFEATURE,function(i){t||(t=!0,n.push(i.feature),t=!1)});ol.events.listen(this,ol.source.VectorEventType.REMOVEFEATURE,function(i){t||(t=!0,n.remove(i.feature),t=!1)});ol.events.listen(n,ol.CollectionEventType.ADD,function(n){t||(t=!0,this.addFeature(n.element),t=!1)},this);ol.events.listen(n,ol.CollectionEventType.REMOVE,function(n){t||(t=!0,this.removeFeature(n.element),t=!1)},this);this.featuresCollection_=n},ol.source.Vector.prototype.clear=function(n){var t,i,r,u;if(n){for(t in this.featureChangeKeys_)i=this.featureChangeKeys_[t],i.forEach(ol.events.unlistenByKey);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.undefIdIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(this.removeFeatureInternal,this);for(r in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[r])}this.featuresCollection_&&this.featuresCollection_.clear();this.featuresRtree_&&this.featuresRtree_.clear();this.loadedExtentsRtree_.clear();this.nullGeometryFeatures_={};u=new ol.source.Vector.Event(ol.source.VectorEventType.CLEAR);this.dispatchEvent(u);this.changed()},ol.source.Vector.prototype.forEachFeature=function(n,t){return this.featuresRtree_?this.featuresRtree_.forEach(n,t):this.featuresCollection_?this.featuresCollection_.forEach(n,t):void 0},ol.source.Vector.prototype.forEachFeatureAtCoordinateDirect=function(n,t,i){var r=[n[0],n[1],n[0],n[1]];return this.forEachFeatureInExtent(r,function(r){var u=r.getGeometry();return u.intersectsCoordinate(n)?t.call(i,r):undefined})},ol.source.Vector.prototype.forEachFeatureInExtent=function(n,t,i){return this.featuresRtree_?this.featuresRtree_.forEachInExtent(n,t,i):this.featuresCollection_?this.featuresCollection_.forEach(t,i):void 0},ol.source.Vector.prototype.forEachFeatureIntersectingExtent=function(n,t,i){return this.forEachFeatureInExtent(n,function(r){var f=r.getGeometry(),u;if(f.intersectsExtent(n)&&(u=t.call(i,r),u))return u})},ol.source.Vector.prototype.getFeaturesCollection=function(){return this.featuresCollection_},ol.source.Vector.prototype.getFeatures=function(){var n;return this.featuresCollection_?n=this.featuresCollection_.getArray():this.featuresRtree_&&(n=this.featuresRtree_.getAll(),ol.obj.isEmpty(this.nullGeometryFeatures_)||ol.array.extend(n,ol.obj.getValues(this.nullGeometryFeatures_))),n},ol.source.Vector.prototype.getFeaturesAtCoordinate=function(n){var t=[];return this.forEachFeatureAtCoordinateDirect(n,function(n){t.push(n)}),t},ol.source.Vector.prototype.getFeaturesInExtent=function(n){return this.featuresRtree_.getInExtent(n)},ol.source.Vector.prototype.getClosestFeatureToCoordinate=function(n,t){var u=n[0],f=n[1],e=null,o=[NaN,NaN],i=Infinity,r=[-Infinity,-Infinity,Infinity,Infinity],s=t?t:ol.functions.TRUE;return this.featuresRtree_.forEachInExtent(r,function(n){var h,c,t;s(n)&&(h=n.getGeometry(),c=i,i=h.closestPointXY(u,f,o,i),i<c&&(e=n,t=Math.sqrt(i),r[0]=u-t,r[1]=f-t,r[2]=u+t,r[3]=f+t))}),e},ol.source.Vector.prototype.getExtent=function(n){return this.featuresRtree_.getExtent(n)},ol.source.Vector.prototype.getFeatureById=function(n){var t=this.idIndex_[n.toString()];return t!==undefined?t:null},ol.source.Vector.prototype.getFormat=function(){return this.format_},ol.source.Vector.prototype.getOverlaps=function(){return this.overlaps_},ol.source.Vector.prototype.getResolutions=function(){},ol.source.Vector.prototype.getUrl=function(){return this.url_},ol.source.Vector.prototype.handleFeatureChange_=function(n){var t=n.target,i=ol.getUid(t).toString(),e=t.getGeometry(),u,f,r;e?(u=e.getExtent(),i in this.nullGeometryFeatures_?(delete this.nullGeometryFeatures_[i],this.featuresRtree_&&this.featuresRtree_.insert(u,t)):this.featuresRtree_&&this.featuresRtree_.update(u,t)):i in this.nullGeometryFeatures_||(this.featuresRtree_&&this.featuresRtree_.remove(t),this.nullGeometryFeatures_[i]=t);f=t.getId();f!==undefined?(r=f.toString(),i in this.undefIdIndex_?(delete this.undefIdIndex_[i],this.idIndex_[r]=t):this.idIndex_[r]!==t&&(this.removeFromIdIndex_(t),this.idIndex_[r]=t)):i in this.undefIdIndex_||(this.removeFromIdIndex_(t),this.undefIdIndex_[i]=t);this.changed();this.dispatchEvent(new ol.source.Vector.Event(ol.source.VectorEventType.CHANGEFEATURE,t))},ol.source.Vector.prototype.isEmpty=function(){return this.featuresRtree_.isEmpty()&&ol.obj.isEmpty(this.nullGeometryFeatures_)},ol.source.Vector.prototype.loadFeatures=function(n,t,i){for(var f=this.loadedExtentsRtree_,e=this.strategy_(n,t),r,s,u=0,o=e.length;u<o;++u)r=e[u],s=f.forEachInExtent(r,function(n){return ol.extent.containsExtent(n.extent,r)}),s||(this.loader_.call(this,r,t,i),f.insert(r,{extent:r.slice()}))},ol.source.Vector.prototype.removeLoadedExtent=function(n){var i=this.loadedExtentsRtree_,t;i.forEachInExtent(n,function(i){if(ol.extent.equals(i.extent,n))return t=i,!0});t&&i.remove(t)},ol.source.Vector.prototype.removeFeature=function(n){var t=ol.getUid(n).toString();t in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[t]:this.featuresRtree_&&this.featuresRtree_.remove(n);this.removeFeatureInternal(n);this.changed()},ol.source.Vector.prototype.removeFeatureInternal=function(n){var t=ol.getUid(n).toString(),i;this.featureChangeKeys_[t].forEach(ol.events.unlistenByKey);delete this.featureChangeKeys_[t];i=n.getId();i!==undefined?delete this.idIndex_[i.toString()]:delete this.undefIdIndex_[t];this.dispatchEvent(new ol.source.Vector.Event(ol.source.VectorEventType.REMOVEFEATURE,n))},ol.source.Vector.prototype.removeFromIdIndex_=function(n){var t=!1;for(var i in this.idIndex_)if(this.idIndex_[i]===n){delete this.idIndex_[i];t=!0;break}return t},ol.source.Vector.prototype.setLoader=function(n){this.loader_=n},ol.source.Vector.Event=function(n,t){ol.events.Event.call(this,n);this.feature=t},ol.inherits(ol.source.Vector.Event,ol.events.Event),n.provide("ol.interaction.Draw"),n.require("ol"),n.require("ol.Feature"),n.require("ol.MapBrowserEventType"),n.require("ol.Object"),n.require("ol.coordinate"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.condition"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.geom.Circle"),n.require("ol.geom.GeometryType"),n.require("ol.geom.LineString"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.interaction.DrawEventType"),n.require("ol.interaction.Pointer"),n.require("ol.interaction.Property"),n.require("ol.layer.Vector"),n.require("ol.source.Vector"),n.require("ol.style.Style"),ol.interaction.Draw=function(n){var t,r,i;ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.Draw.handleDownEvent_,handleEvent:ol.interaction.Draw.handleEvent,handleUpEvent:ol.interaction.Draw.handleUpEvent_});this.shouldHandle_=!1;this.downPx_=null;this.freehand_=!1;this.source_=n.source?n.source:null;this.features_=n.features?n.features:null;this.snapTolerance_=n.snapTolerance?n.snapTolerance:12;this.type_=n.type;this.mode_=ol.interaction.Draw.getMode_(this.type_);this.stopClick_=!!n.stopClick;this.minPoints_=n.minPoints?n.minPoints:this.mode_===ol.interaction.Draw.Mode_.POLYGON?3:2;this.maxPoints_=n.maxPoints?n.maxPoints:Infinity;this.finishCondition_=n.finishCondition?n.finishCondition:ol.functions.TRUE;t=n.geometryFunction;t||(this.type_===ol.geom.GeometryType.CIRCLE?t=function(n,t){var i=t?t:new ol.geom.Circle([NaN,NaN]),r=ol.coordinate.squaredDistance(n[0],n[1]);return i.setCenterAndRadius(n[0],Math.sqrt(r)),i}:(i=this.mode_,i===ol.interaction.Draw.Mode_.POINT?r=ol.geom.Point:i===ol.interaction.Draw.Mode_.LINE_STRING?r=ol.geom.LineString:i===ol.interaction.Draw.Mode_.POLYGON&&(r=ol.geom.Polygon),t=function(n,t){var u=t;return u?i===ol.interaction.Draw.Mode_.POLYGON?n[0].length?u.setCoordinates([n[0].concat([n[0][0]])]):u.setCoordinates([]):u.setCoordinates(n):u=new r(n),u}));this.geometryFunction_=t;this.finishCoordinate_=null;this.sketchFeature_=null;this.sketchPoint_=null;this.sketchCoords_=null;this.sketchLine_=null;this.sketchLineCoords_=null;this.squaredClickTolerance_=n.clickTolerance?n.clickTolerance*n.clickTolerance:36;this.overlay_=new ol.layer.Vector({source:new ol.source.Vector({useSpatialIndex:!1,wrapX:n.wrapX?n.wrapX:!1}),style:n.style?n.style:ol.interaction.Draw.getDefaultStyleFunction()});this.geometryName_=n.geometryName;this.condition_=n.condition?n.condition:ol.events.condition.noModifierKeys;this.freehandCondition_;this.freehandCondition_=n.freehand?ol.events.condition.always:n.freehandCondition?n.freehandCondition:ol.events.condition.shiftKeyOnly;ol.events.listen(this,ol.Object.getChangeEventType(ol.interaction.Property.ACTIVE),this.updateState_,this)},ol.inherits(ol.interaction.Draw,ol.interaction.Pointer),ol.interaction.Draw.getDefaultStyleFunction=function(){var n=ol.style.Style.createDefaultEditing();return function(t){return n[t.getGeometry().getType()]}},ol.interaction.Draw.prototype.setMap=function(n){ol.interaction.Pointer.prototype.setMap.call(this,n);this.updateState_()},ol.interaction.Draw.handleEvent=function(n){this.freehand_=this.mode_!==ol.interaction.Draw.Mode_.POINT&&this.freehandCondition_(n);var t=!0;return this.freehand_&&n.type===ol.MapBrowserEventType.POINTERDRAG&&this.sketchFeature_!==null?(this.addToDrawing_(n),t=!1):this.freehand_&&n.type===ol.MapBrowserEventType.POINTERDOWN?t=!1:n.type===ol.MapBrowserEventType.POINTERMOVE?t=this.handlePointerMove_(n):n.type===ol.MapBrowserEventType.DBLCLICK&&(t=!1),ol.interaction.Pointer.handleEvent.call(this,n)&&t},ol.interaction.Draw.handleDownEvent_=function(n){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=n.pixel,this.finishCoordinate_||this.startDrawing_(n),!0):this.condition_(n)?(this.downPx_=n.pixel,!0):!1},ol.interaction.Draw.handleUpEvent_=function(n){var t=!0,i;return this.handlePointerMove_(n),i=this.mode_===ol.interaction.Draw.Mode_.CIRCLE,this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(n)?this.finishCondition_(n)&&this.finishDrawing():this.addToDrawing_(n):(this.startDrawing_(n),this.mode_===ol.interaction.Draw.Mode_.POINT&&this.finishDrawing()),t=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!t&&this.stopClick_&&n.stopPropagation(),t},ol.interaction.Draw.prototype.handlePointerMove_=function(n){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var t=this.downPx_,i=n.pixel,r=t[0]-i[0],u=t[1]-i[1],f=r*r+u*u;this.shouldHandle_=this.freehand_?f>this.squaredClickTolerance_:f<=this.squaredClickTolerance_}return this.finishCoordinate_?this.modifyDrawing_(n):this.createOrUpdateSketchPoint_(n),!0},ol.interaction.Draw.prototype.atFinish_=function(n){var u=!1,t,i,f,r,e;if(this.sketchFeature_&&(t=!1,i=[this.finishCoordinate_],this.mode_===ol.interaction.Draw.Mode_.LINE_STRING?t=this.sketchCoords_.length>this.minPoints_:this.mode_===ol.interaction.Draw.Mode_.POLYGON&&(t=this.sketchCoords_[0].length>this.minPoints_,i=[this.sketchCoords_[0][0],this.sketchCoords_[0][this.sketchCoords_[0].length-2]]),t))for(f=n.map,r=0,e=i.length;r<e;r++){var o=i[r],s=f.getPixelFromCoordinate(o),h=n.pixel,c=h[0]-s[0],l=h[1]-s[1],a=this.freehand_?1:this.snapTolerance_;if(u=Math.sqrt(c*c+l*l)<=a,u){this.finishCoordinate_=o;break}}return u},ol.interaction.Draw.prototype.createOrUpdateSketchPoint_=function(n){var t=n.coordinate.slice(),i;this.sketchPoint_?(i=this.sketchPoint_.getGeometry(),i.setCoordinates(t)):(this.sketchPoint_=new ol.Feature(new ol.geom.Point(t)),this.updateSketchFeatures_())},ol.interaction.Draw.prototype.startDrawing_=function(n){var t=n.coordinate,i;this.finishCoordinate_=t;this.mode_===ol.interaction.Draw.Mode_.POINT?this.sketchCoords_=t.slice():this.mode_===ol.interaction.Draw.Mode_.POLYGON?(this.sketchCoords_=[[t.slice(),t.slice()]],this.sketchLineCoords_=this.sketchCoords_[0]):(this.sketchCoords_=[t.slice(),t.slice()],this.mode_===ol.interaction.Draw.Mode_.CIRCLE&&(this.sketchLineCoords_=this.sketchCoords_));this.sketchLineCoords_&&(this.sketchLine_=new ol.Feature(new ol.geom.LineString(this.sketchLineCoords_)));i=this.geometryFunction_(this.sketchCoords_);this.sketchFeature_=new ol.Feature;this.geometryName_&&this.sketchFeature_.setGeometryName(this.geometryName_);this.sketchFeature_.setGeometry(i);this.updateSketchFeatures_();this.dispatchEvent(new ol.interaction.Draw.Event(ol.interaction.DrawEventType.DRAWSTART,this.sketchFeature_))},ol.interaction.Draw.prototype.modifyDrawing_=function(n){var r=n.coordinate,f=this.sketchFeature_.getGeometry(),t,i,o,u,e;this.mode_===ol.interaction.Draw.Mode_.POINT?i=this.sketchCoords_:this.mode_===ol.interaction.Draw.Mode_.POLYGON?(t=this.sketchCoords_[0],i=t[t.length-1],this.atFinish_(n)&&(r=this.finishCoordinate_.slice())):(t=this.sketchCoords_,i=t[t.length-1]);i[0]=r[0];i[1]=r[1];this.geometryFunction_(this.sketchCoords_,f);this.sketchPoint_&&(o=this.sketchPoint_.getGeometry(),o.setCoordinates(r));f instanceof ol.geom.Polygon&&this.mode_!==ol.interaction.Draw.Mode_.POLYGON?(this.sketchLine_||(this.sketchLine_=new ol.Feature(new ol.geom.LineString(null))),e=f.getLinearRing(0),u=this.sketchLine_.getGeometry(),u.setFlatCoordinates(e.getLayout(),e.getFlatCoordinates())):this.sketchLineCoords_&&(u=this.sketchLine_.getGeometry(),u.setCoordinates(this.sketchLineCoords_));this.updateSketchFeatures_()},ol.interaction.Draw.prototype.addToDrawing_=function(n){var r=n.coordinate,u=this.sketchFeature_.getGeometry(),i,t;this.mode_===ol.interaction.Draw.Mode_.LINE_STRING?(this.finishCoordinate_=r.slice(),t=this.sketchCoords_,t.length>=this.maxPoints_&&(this.freehand_?t.pop():i=!0),t.push(r.slice()),this.geometryFunction_(t,u)):this.mode_===ol.interaction.Draw.Mode_.POLYGON&&(t=this.sketchCoords_[0],t.length>=this.maxPoints_&&(this.freehand_?t.pop():i=!0),t.push(r.slice()),i&&(this.finishCoordinate_=t[0]),this.geometryFunction_(this.sketchCoords_,u));this.updateSketchFeatures_();i&&this.finishDrawing()},ol.interaction.Draw.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t=this.sketchFeature_.getGeometry(),n,i;this.mode_===ol.interaction.Draw.Mode_.LINE_STRING?(n=this.sketchCoords_,n.splice(-2,1),this.geometryFunction_(n,t),n.length>=2&&(this.finishCoordinate_=n[n.length-2].slice())):this.mode_===ol.interaction.Draw.Mode_.POLYGON&&(n=this.sketchCoords_[0],n.splice(-2,1),i=this.sketchLine_.getGeometry(),i.setCoordinates(n),this.geometryFunction_(this.sketchCoords_,t));n.length===0&&(this.finishCoordinate_=null);this.updateSketchFeatures_()}},ol.interaction.Draw.prototype.finishDrawing=function(){var t=this.abortDrawing_(),n=this.sketchCoords_,i=t.getGeometry();this.mode_===ol.interaction.Draw.Mode_.LINE_STRING?(n.pop(),this.geometryFunction_(n,i)):this.mode_===ol.interaction.Draw.Mode_.POLYGON&&(n[0].pop(),this.geometryFunction_(n,i),n=i.getCoordinates());this.type_===ol.geom.GeometryType.MULTI_POINT?t.setGeometry(new ol.geom.MultiPoint([n])):this.type_===ol.geom.GeometryType.MULTI_LINE_STRING?t.setGeometry(new ol.geom.MultiLineString([n])):this.type_===ol.geom.GeometryType.MULTI_POLYGON&&t.setGeometry(new ol.geom.MultiPolygon([n]));this.dispatchEvent(new ol.interaction.Draw.Event(ol.interaction.DrawEventType.DRAWEND,t));this.features_&&this.features_.push(t);this.source_&&this.source_.addFeature(t)},ol.interaction.Draw.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var n=this.sketchFeature_;return n&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),n},ol.interaction.Draw.prototype.extend=function(n){var i=n.getGeometry(),r=i,t;this.sketchFeature_=n;this.sketchCoords_=r.getCoordinates();t=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=t.slice();this.sketchCoords_.push(t.slice());this.updateSketchFeatures_();this.dispatchEvent(new ol.interaction.Draw.Event(ol.interaction.DrawEventType.DRAWSTART,this.sketchFeature_))},ol.interaction.Draw.prototype.shouldStopEvent=ol.functions.FALSE,ol.interaction.Draw.prototype.updateSketchFeatures_=function(){var n=[],t;this.sketchFeature_&&n.push(this.sketchFeature_);this.sketchLine_&&n.push(this.sketchLine_);this.sketchPoint_&&n.push(this.sketchPoint_);t=this.overlay_.getSource();t.clear(!0);t.addFeatures(n)},ol.interaction.Draw.prototype.updateState_=function(){var n=this.getMap(),t=this.getActive();n&&t||this.abortDrawing_();this.overlay_.setMap(t?n:null)},ol.interaction.Draw.createRegularPolygon=function(n,t){return function(i,r){var u=i[0],f=i[1],o=Math.sqrt(ol.coordinate.squaredDistance(u,f)),e=r?r:ol.geom.Polygon.fromCircle(new ol.geom.Circle(u),n),s=t?t:Math.atan((f[1]-u[1])/(f[0]-u[0]));return ol.geom.Polygon.makeRegular(e,u,o,s),e}},ol.interaction.Draw.createBox=function(){return function(n,t){var i=ol.extent.boundingExtent(n),r=t||new ol.geom.Polygon(null);return r.setCoordinates([[ol.extent.getBottomLeft(i),ol.extent.getBottomRight(i),ol.extent.getTopRight(i),ol.extent.getTopLeft(i),ol.extent.getBottomLeft(i)]]),r}},ol.interaction.Draw.getMode_=function(n){var t;return n===ol.geom.GeometryType.POINT||n===ol.geom.GeometryType.MULTI_POINT?t=ol.interaction.Draw.Mode_.POINT:n===ol.geom.GeometryType.LINE_STRING||n===ol.geom.GeometryType.MULTI_LINE_STRING?t=ol.interaction.Draw.Mode_.LINE_STRING:n===ol.geom.GeometryType.POLYGON||n===ol.geom.GeometryType.MULTI_POLYGON?t=ol.interaction.Draw.Mode_.POLYGON:n===ol.geom.GeometryType.CIRCLE&&(t=ol.interaction.Draw.Mode_.CIRCLE),t},ol.interaction.Draw.Mode_={POINT:"Point",LINE_STRING:"LineString",POLYGON:"Polygon",CIRCLE:"Circle"},ol.interaction.Draw.Event=function(n,t){ol.events.Event.call(this,n);this.feature=t},ol.inherits(ol.interaction.Draw.Event,ol.events.Event),n.provide("ol.interaction.ExtentEventType"),ol.interaction.ExtentEventType={EXTENTCHANGED:"extentchanged"},n.provide("ol.interaction.Extent"),n.require("ol"),n.require("ol.Feature"),n.require("ol.MapBrowserEventType"),n.require("ol.MapBrowserPointerEvent"),n.require("ol.coordinate"),n.require("ol.events.Event"),n.require("ol.extent"),n.require("ol.geom.GeometryType"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.interaction.ExtentEventType"),n.require("ol.interaction.Pointer"),n.require("ol.layer.Vector"),n.require("ol.source.Vector"),n.require("ol.style.Style"),ol.interaction.Extent=function(n){var t=n||{};this.extent_=null;this.pointerHandler_=null;this.pixelTolerance_=t.pixelTolerance!==undefined?t.pixelTolerance:10;this.snappedToVertex_=!1;this.extentFeature_=null;this.vertexFeature_=null;n||(n={});ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.Extent.handleDownEvent_,handleDragEvent:ol.interaction.Extent.handleDragEvent_,handleEvent:ol.interaction.Extent.handleEvent_,handleUpEvent:ol.interaction.Extent.handleUpEvent_});this.extentOverlay_=new ol.layer.Vector({source:new ol.source.Vector({useSpatialIndex:!1,wrapX:!!n.wrapX}),style:n.boxStyle?n.boxStyle:ol.interaction.Extent.getDefaultExtentStyleFunction_(),updateWhileAnimating:!0,updateWhileInteracting:!0});this.vertexOverlay_=new ol.layer.Vector({source:new ol.source.Vector({useSpatialIndex:!1,wrapX:!!n.wrapX}),style:n.pointerStyle?n.pointerStyle:ol.interaction.Extent.getDefaultPointerStyleFunction_(),updateWhileAnimating:!0,updateWhileInteracting:!0});n.extent&&this.setExtent(n.extent)},ol.inherits(ol.interaction.Extent,ol.interaction.Pointer),ol.interaction.Extent.handleEvent_=function(n){return(n instanceof ol.MapBrowserPointerEvent)?(n.type!=ol.MapBrowserEventType.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(n),ol.interaction.Pointer.handleEvent.call(this,n),!1):!0},ol.interaction.Extent.handleDownEvent_=function(n){var e=n.pixel,o=n.map,t=this.getExtent(),i=this.snapToVertex_(e,o),r=function(n){var i=null,r=null;return(n[0]==t[0]?i=t[2]:n[0]==t[2]&&(i=t[0]),n[1]==t[1]?r=t[3]:n[1]==t[3]&&(r=t[1]),i!==null&&r!==null)?[i,r]:null},u,f;return i&&t?(u=i[0]==t[0]||i[0]==t[2]?i[0]:null,f=i[1]==t[1]||i[1]==t[3]?i[1]:null,u!==null&&f!==null?this.pointerHandler_=ol.interaction.Extent.getPointHandler_(r(i)):u!==null?this.pointerHandler_=ol.interaction.Extent.getEdgeHandler_(r([u,t[1]]),r([u,t[3]])):f!==null&&(this.pointerHandler_=ol.interaction.Extent.getEdgeHandler_(r([t[0],f]),r([t[2],f])))):(i=o.getCoordinateFromPixel(e),this.setExtent([i[0],i[1],i[0],i[1]]),this.pointerHandler_=ol.interaction.Extent.getPointHandler_(i)),!0},ol.interaction.Extent.handleDragEvent_=function(n){if(this.pointerHandler_){var t=n.coordinate;this.setExtent(this.pointerHandler_(t));this.createOrUpdatePointerFeature_(t)}return!0},ol.interaction.Extent.handleUpEvent_=function(){this.pointerHandler_=null;var n=this.getExtent();return n&&ol.extent.getArea(n)!==0||this.setExtent(null),!1},ol.interaction.Extent.getDefaultExtentStyleFunction_=function(){var n=ol.style.Style.createDefaultEditing();return function(){return n[ol.geom.GeometryType.POLYGON]}},ol.interaction.Extent.getDefaultPointerStyleFunction_=function(){var n=ol.style.Style.createDefaultEditing();return function(){return n[ol.geom.GeometryType.POINT]}},ol.interaction.Extent.getPointHandler_=function(n){return function(t){return ol.extent.boundingExtent([n,t])}},ol.interaction.Extent.getEdgeHandler_=function(n,t){return n[0]==t[0]?function(i){return ol.extent.boundingExtent([n,[i[0],t[1]]])}:n[1]==t[1]?function(i){return ol.extent.boundingExtent([n,[t[0],i[1]]])}:null},ol.interaction.Extent.getSegments_=function(n){return[[[n[0],n[1]],[n[0],n[3]]],[[n[0],n[3]],[n[2],n[3]]],[[n[2],n[3]],[n[2],n[1]]],[[n[2],n[1]],[n[0],n[1]]]]},ol.interaction.Extent.prototype.snapToVertex_=function(n,t){var r=t.getCoordinateFromPixel(n),c=function(n,t){return ol.coordinate.squaredDistanceToSegment(r,n)-ol.coordinate.squaredDistanceToSegment(r,t)},o=this.getExtent(),u;if(o){u=ol.interaction.Extent.getSegments_(o);u.sort(c);var i=u[0],f=ol.coordinate.closestOnSegment(r,i),e=t.getPixelFromCoordinate(f);if(ol.coordinate.distance(n,e)<=this.pixelTolerance_){var l=t.getPixelFromCoordinate(i[0]),a=t.getPixelFromCoordinate(i[1]),s=ol.coordinate.squaredDistance(e,l),h=ol.coordinate.squaredDistance(e,a),v=Math.sqrt(Math.min(s,h));return this.snappedToVertex_=v<=this.pixelTolerance_,this.snappedToVertex_&&(f=s>h?i[1]:i[0]),f}}return null},ol.interaction.Extent.prototype.handlePointerMove_=function(n){var i=n.pixel,r=n.map,t=this.snapToVertex_(i,r);t||(t=r.getCoordinateFromPixel(i));this.createOrUpdatePointerFeature_(t)},ol.interaction.Extent.prototype.createOrUpdateExtentFeature_=function(n){var t=this.extentFeature_;return t?n?t.setGeometry(ol.geom.Polygon.fromExtent(n)):t.setGeometry(undefined):(t=n?new ol.Feature(ol.geom.Polygon.fromExtent(n)):new ol.Feature({}),this.extentFeature_=t,this.extentOverlay_.getSource().addFeature(t)),t},ol.interaction.Extent.prototype.createOrUpdatePointerFeature_=function(n){var t=this.vertexFeature_,i;return t?(i=t.getGeometry(),i.setCoordinates(n)):(t=new ol.Feature(new ol.geom.Point(n)),this.vertexFeature_=t,this.vertexOverlay_.getSource().addFeature(t)),t},ol.interaction.Extent.prototype.setMap=function(n){this.extentOverlay_.setMap(n);this.vertexOverlay_.setMap(n);ol.interaction.Pointer.prototype.setMap.call(this,n)},ol.interaction.Extent.prototype.getExtent=function(){return this.extent_},ol.interaction.Extent.prototype.setExtent=function(n){this.extent_=n?n:null;this.createOrUpdateExtentFeature_(n);this.dispatchEvent(new ol.interaction.Extent.Event(this.extent_))},ol.interaction.Extent.Event=function(n){ol.events.Event.call(this,ol.interaction.ExtentEventType.EXTENTCHANGED);this.extent=n},ol.inherits(ol.interaction.Extent.Event,ol.events.Event),n.provide("ol.interaction.ModifyEventType"),ol.interaction.ModifyEventType={MODIFYSTART:"modifystart",MODIFYEND:"modifyend"},n.provide("ol.interaction.Modify"),n.require("ol"),n.require("ol.Collection"),n.require("ol.CollectionEventType"),n.require("ol.Feature"),n.require("ol.MapBrowserEventType"),n.require("ol.MapBrowserPointerEvent"),n.require("ol.array"),n.require("ol.coordinate"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.EventType"),n.require("ol.events.condition"),n.require("ol.extent"),n.require("ol.geom.GeometryType"),n.require("ol.geom.Point"),n.require("ol.interaction.ModifyEventType"),n.require("ol.interaction.Pointer"),n.require("ol.layer.Vector"),n.require("ol.source.Vector"),n.require("ol.source.VectorEventType"),n.require("ol.structs.RBush"),n.require("ol.style.Style"),ol.interaction.Modify=function(n){ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.Modify.handleDownEvent_,handleDragEvent:ol.interaction.Modify.handleDragEvent_,handleEvent:ol.interaction.Modify.handleEvent,handleUpEvent:ol.interaction.Modify.handleUpEvent_});this.condition_=n.condition?n.condition:ol.events.condition.primaryAction;this.defaultDeleteCondition_=function(n){return ol.events.condition.altKeyOnly(n)&&ol.events.condition.singleClick(n)};this.deleteCondition_=n.deleteCondition?n.deleteCondition:this.defaultDeleteCondition_;this.insertVertexCondition_=n.insertVertexCondition?n.insertVertexCondition:ol.events.condition.always;this.vertexFeature_=null;this.vertexSegments_=null;this.lastPixel_=[0,0];this.ignoreNextSingleClick_=!1;this.modified_=!1;this.rBush_=new ol.structs.RBush;this.pixelTolerance_=n.pixelTolerance!==undefined?n.pixelTolerance:10;this.snappedToVertex_=!1;this.changingFeature_=!1;this.dragSegments_=[];this.overlay_=new ol.layer.Vector({source:new ol.source.Vector({useSpatialIndex:!1,wrapX:!!n.wrapX}),style:n.style?n.style:ol.interaction.Modify.getDefaultStyleFunction(),updateWhileAnimating:!0,updateWhileInteracting:!0});this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_};this.source_=null;var t;if(n.source?(this.source_=n.source,t=new ol.Collection(this.source_.getFeatures()),ol.events.listen(this.source_,ol.source.VectorEventType.ADDFEATURE,this.handleSourceAdd_,this),ol.events.listen(this.source_,ol.source.VectorEventType.REMOVEFEATURE,this.handleSourceRemove_,this)):t=n.features,!t)throw new Error("The modify interaction requires features or a source");this.features_=t;this.features_.forEach(this.addFeature_,this);ol.events.listen(this.features_,ol.CollectionEventType.ADD,this.handleFeatureAdd_,this);ol.events.listen(this.features_,ol.CollectionEventType.REMOVE,this.handleFeatureRemove_,this);this.lastPointerEvent_=null},ol.inherits(ol.interaction.Modify,ol.interaction.Pointer),ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CENTER_INDEX=0,ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX=1,ol.interaction.Modify.prototype.addFeature_=function(n){var t=n.getGeometry(),i;t&&t.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[t.getType()].call(this,n,t);i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i);ol.events.listen(n,ol.events.EventType.CHANGE,this.handleFeatureChange_,this)},ol.interaction.Modify.prototype.willModifyFeatures_=function(n){this.modified_||(this.modified_=!0,this.dispatchEvent(new ol.interaction.Modify.Event(ol.interaction.ModifyEventType.MODIFYSTART,this.features_,n)))},ol.interaction.Modify.prototype.removeFeature_=function(n){this.removeFeatureSegmentData_(n);this.vertexFeature_&&this.features_.getLength()===0&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null);ol.events.unlisten(n,ol.events.EventType.CHANGE,this.handleFeatureChange_,this)},ol.interaction.Modify.prototype.removeFeatureSegmentData_=function(n){var r=this.rBush_,i=[],t;for(r.forEach(function(t){n===t.feature&&i.push(t)}),t=i.length-1;t>=0;--t)r.remove(i[t])},ol.interaction.Modify.prototype.setActive=function(n){this.vertexFeature_&&!n&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null);ol.interaction.Pointer.prototype.setActive.call(this,n)},ol.interaction.Modify.prototype.setMap=function(n){this.overlay_.setMap(n);ol.interaction.Pointer.prototype.setMap.call(this,n)},ol.interaction.Modify.prototype.handleSourceAdd_=function(n){n.feature&&this.features_.push(n.feature)},ol.interaction.Modify.prototype.handleSourceRemove_=function(n){n.feature&&this.features_.remove(n.feature)},ol.interaction.Modify.prototype.handleFeatureAdd_=function(n){this.addFeature_(n.element)},ol.interaction.Modify.prototype.handleFeatureChange_=function(n){if(!this.changingFeature_){var t=n.target;this.removeFeature_(t);this.addFeature_(t)}},ol.interaction.Modify.prototype.handleFeatureRemove_=function(n){var t=n.element;this.removeFeature_(t)},ol.interaction.Modify.prototype.writePointGeometry_=function(n,t){var i=t.getCoordinates(),r={feature:n,geometry:t,segment:[i,i]};this.rBush_.insert(t.getExtent(),r)},ol.interaction.Modify.prototype.writeMultiPointGeometry_=function(n,t){for(var u=t.getCoordinates(),r,e,i=0,f=u.length;i<f;++i)r=u[i],e={feature:n,geometry:t,depth:[i],index:i,segment:[r,r]},this.rBush_.insert(t.getExtent(),e)},ol.interaction.Modify.prototype.writeLineStringGeometry_=function(n,t){for(var u=t.getCoordinates(),r,e,i=0,f=u.length-1;i<f;++i)r=u.slice(i,i+2),e={feature:n,geometry:t,index:i,segment:r},this.rBush_.insert(ol.extent.boundingExtent(r),e)},ol.interaction.Modify.prototype.writeMultiLineStringGeometry_=function(n,t){for(var e=t.getCoordinates(),u,i,o,f,h,r=0,s=e.length;r<s;++r)for(u=e[r],i=0,o=u.length-1;i<o;++i)f=u.slice(i,i+2),h={feature:n,geometry:t,depth:[r],index:i,segment:f},this.rBush_.insert(ol.extent.boundingExtent(f),h)},ol.interaction.Modify.prototype.writePolygonGeometry_=function(n,t){for(var e=t.getCoordinates(),u,i,o,f,h,r=0,s=e.length;r<s;++r)for(u=e[r],i=0,o=u.length-1;i<o;++i)f=u.slice(i,i+2),h={feature:n,geometry:t,depth:[r],index:i,segment:f},this.rBush_.insert(ol.extent.boundingExtent(f),h)},ol.interaction.Modify.prototype.writeMultiPolygonGeometry_=function(n,t){for(var s=t.getCoordinates(),f,i,h,r,c,e,o,a,u=0,l=s.length;u<l;++u)for(e=s[u],r=0,c=e.length;r<c;++r)for(f=e[r],i=0,h=f.length-1;i<h;++i)o=f.slice(i,i+2),a={feature:n,geometry:t,depth:[r,u],index:i,segment:o},this.rBush_.insert(ol.extent.boundingExtent(o),a)},ol.interaction.Modify.prototype.writeCircleGeometry_=function(n,t){var i=t.getCenter(),r={feature:n,geometry:t,index:ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CENTER_INDEX,segment:[i,i]},u={feature:n,geometry:t,index:ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX,segment:[i,i]},f=[r,u];r.featureSegments=u.featureSegments=f;this.rBush_.insert(ol.extent.createOrUpdateFromCoordinate(i),r);this.rBush_.insert(t.getExtent(),u)},ol.interaction.Modify.prototype.writeGeometryCollectionGeometry_=function(n,t){for(var r=t.getGeometriesArray(),i=0;i<r.length;++i)this.SEGMENT_WRITERS_[r[i].getType()].call(this,n,r[i])},ol.interaction.Modify.prototype.createOrUpdateVertexFeature_=function(n){var t=this.vertexFeature_,i;return t?(i=t.getGeometry(),i.setCoordinates(n)):(t=new ol.Feature(new ol.geom.Point(n)),this.vertexFeature_=t,this.overlay_.getSource().addFeature(t)),t},ol.interaction.Modify.compareIndexes_=function(n,t){return n.index-t.index},ol.interaction.Modify.handleDownEvent_=function(n){var l,s,e,a,y,o;if(!this.condition_(n))return!1;if(this.handlePointerAtPixel_(n.pixel,n.map),l=n.map.getCoordinateFromPixel(n.pixel),this.dragSegments_.length=0,this.modified_=!1,s=this.vertexFeature_,s){var f=[],p=s.getGeometry(),u=p.getCoordinates(),w=ol.extent.boundingExtent([u]),h=this.rBush_.getInExtent(w),r={};for(h.sort(ol.interaction.Modify.compareIndexes_),e=0,a=h.length;e<a;++e){var t=h[e],c=t.segment,i=ol.getUid(t.feature),v=t.depth;if(v&&(i+="-"+v.join("-")),r[i]||(r[i]=new Array(2)),t.geometry.getType()===ol.geom.GeometryType.CIRCLE&&t.index===ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX)y=ol.interaction.Modify.closestOnSegmentData_(l,t),ol.coordinate.equals(y,u)&&!r[i][0]&&(this.dragSegments_.push([t,0]),r[i][0]=t);else if(ol.coordinate.equals(c[0],u)&&!r[i][0])this.dragSegments_.push([t,0]),r[i][0]=t;else if(ol.coordinate.equals(c[1],u)&&!r[i][1]){if((t.geometry.getType()===ol.geom.GeometryType.LINE_STRING||t.geometry.getType()===ol.geom.GeometryType.MULTI_LINE_STRING)&&r[i][0]&&r[i][0].index===0)continue;this.dragSegments_.push([t,1]);r[i][1]=t}else this.insertVertexCondition_(n)&&ol.getUid(c)in this.vertexSegments_&&!r[i][0]&&!r[i][1]&&f.push([t,u])}for(f.length&&this.willModifyFeatures_(n),o=f.length-1;o>=0;--o)this.insertVertex_.apply(this,f[o])}return!!this.vertexFeature_},ol.interaction.Modify.handleDragEvent_=function(n){var t,o,h;for(this.ignoreNextSingleClick_=!1,this.willModifyFeatures_(n),t=n.coordinate,o=0,h=this.dragSegments_.length;o<h;++o){for(var c=this.dragSegments_[o],f=c[0],s=f.depth,r=f.geometry,i,u=f.segment,e=c[1];t.length<r.getStride();)t.push(u[e][t.length]);switch(r.getType()){case ol.geom.GeometryType.POINT:i=t;u[0]=u[1]=t;break;case ol.geom.GeometryType.MULTI_POINT:i=r.getCoordinates();i[f.index]=t;u[0]=u[1]=t;break;case ol.geom.GeometryType.LINE_STRING:i=r.getCoordinates();i[f.index+e]=t;u[e]=t;break;case ol.geom.GeometryType.MULTI_LINE_STRING:i=r.getCoordinates();i[s[0]][f.index+e]=t;u[e]=t;break;case ol.geom.GeometryType.POLYGON:i=r.getCoordinates();i[s[0]][f.index+e]=t;u[e]=t;break;case ol.geom.GeometryType.MULTI_POLYGON:i=r.getCoordinates();i[s[1]][s[0]][f.index+e]=t;u[e]=t;break;case ol.geom.GeometryType.CIRCLE:u[0]=u[1]=t;f.index===ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CENTER_INDEX?(this.changingFeature_=!0,r.setCenter(t),this.changingFeature_=!1):(this.changingFeature_=!0,r.setRadius(ol.coordinate.distance(r.getCenter(),t)),this.changingFeature_=!1)}i&&this.setGeometryCoordinates_(r,i)}this.createOrUpdateVertexFeature_(t)},ol.interaction.Modify.handleUpEvent_=function(n){for(var t,i,r=this.dragSegments_.length-1;r>=0;--r)if(t=this.dragSegments_[r][0],i=t.geometry,i.getType()===ol.geom.GeometryType.CIRCLE){var u=i.getCenter(),f=t.featureSegments[0],e=t.featureSegments[1];f.segment[0]=f.segment[1]=u;e.segment[0]=e.segment[1]=u;this.rBush_.update(ol.extent.createOrUpdateFromCoordinate(u),f);this.rBush_.update(i.getExtent(),e)}else this.rBush_.update(ol.extent.boundingExtent(t.segment),t);return this.modified_&&(this.dispatchEvent(new ol.interaction.Modify.Event(ol.interaction.ModifyEventType.MODIFYEND,this.features_,n)),this.modified_=!1),!1},ol.interaction.Modify.handleEvent=function(n){if(!(n instanceof ol.MapBrowserPointerEvent))return!0;this.lastPointerEvent_=n;var t;return n.map.getView().getInteracting()||n.type!=ol.MapBrowserEventType.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(n),this.vertexFeature_&&this.deleteCondition_(n)&&(t=n.type==ol.MapBrowserEventType.SINGLECLICK&&this.ignoreNextSingleClick_?!0:this.removePoint()),n.type==ol.MapBrowserEventType.SINGLECLICK&&(this.ignoreNextSingleClick_=!1),ol.interaction.Pointer.handleEvent.call(this,n)&&!t},ol.interaction.Modify.prototype.handlePointerMove_=function(n){this.lastPixel_=n.pixel;this.handlePointerAtPixel_(n.pixel,n.map)},ol.interaction.Modify.prototype.handlePointerAtPixel_=function(n,t){var f=t.getCoordinateFromPixel(n),p=function(n,t){return ol.interaction.Modify.pointDistanceToSegmentDataSquared_(f,n)-ol.interaction.Modify.pointDistanceToSegmentDataSquared_(f,t)},w=ol.extent.buffer(ol.extent.createOrUpdateFromCoordinate(f),t.getView().getResolution()*this.pixelTolerance_),b=this.rBush_,u=b.getInExtent(w),s,r,h,y;if(u.length>0){u.sort(p);var e=u[0],i=e.segment,o=ol.interaction.Modify.closestOnSegmentData_(f,e),c=t.getPixelFromCoordinate(o),l=ol.coordinate.distance(n,c);if(l<=this.pixelTolerance_){if(s={},e.geometry.getType()===ol.geom.GeometryType.CIRCLE&&e.index===ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(o);else{var k=t.getPixelFromCoordinate(i[0]),d=t.getPixelFromCoordinate(i[1]),a=ol.coordinate.squaredDistance(c,k),v=ol.coordinate.squaredDistance(c,d);for(l=Math.sqrt(Math.min(a,v)),this.snappedToVertex_=l<=this.pixelTolerance_,this.snappedToVertex_&&(o=a>v?i[1]:i[0]),this.createOrUpdateVertexFeature_(o),h=1,y=u.length;h<y;++h)if(r=u[h].segment,ol.coordinate.equals(i[0],r[0])&&ol.coordinate.equals(i[1],r[1])||ol.coordinate.equals(i[0],r[1])&&ol.coordinate.equals(i[1],r[0]))s[ol.getUid(r)]=!0;else break}s[ol.getUid(i)]=!0;this.vertexSegments_=s;return}}this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null)},ol.interaction.Modify.pointDistanceToSegmentDataSquared_=function(n,t){var u=t.geometry,i,f,r;return u.getType()===ol.geom.GeometryType.CIRCLE&&(i=u,t.index===ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX)?(f=ol.coordinate.squaredDistance(i.getCenter(),n),r=Math.sqrt(f)-i.getRadius(),r*r):ol.coordinate.squaredDistanceToSegment(n,t.segment)},ol.interaction.Modify.closestOnSegmentData_=function(n,t){var i=t.geometry;return i.getType()===ol.geom.GeometryType.CIRCLE&&t.index===ol.interaction.Modify.MODIFY_SEGMENT_CIRCLE_CIRCUMFERENCE_INDEX?i.getClosestPoint(n):ol.coordinate.closestOnSegment(n,t.segment)},ol.interaction.Modify.prototype.insertVertex_=function(n,t){for(var h=n.segment,c=n.feature,i=n.geometry,u=n.depth,f=n.index,r,e,o,s;t.length<i.getStride();)t.push(0);switch(i.getType()){case ol.geom.GeometryType.MULTI_LINE_STRING:r=i.getCoordinates();r[u[0]].splice(f+1,0,t);break;case ol.geom.GeometryType.POLYGON:r=i.getCoordinates();r[u[0]].splice(f+1,0,t);break;case ol.geom.GeometryType.MULTI_POLYGON:r=i.getCoordinates();r[u[1]][u[0]].splice(f+1,0,t);break;case ol.geom.GeometryType.LINE_STRING:r=i.getCoordinates();r.splice(f+1,0,t);break;default:return}this.setGeometryCoordinates_(i,r);e=this.rBush_;e.remove(n);this.updateSegmentIndices_(i,f,u,1);o={segment:[h[0],t],feature:c,geometry:i,depth:u,index:f};e.insert(ol.extent.boundingExtent(o.segment),o);this.dragSegments_.push([o,1]);s={segment:[t,h[1]],feature:c,geometry:i,depth:u,index:f+1};e.insert(ol.extent.boundingExtent(s.segment),s);this.dragSegments_.push([s,0]);this.ignoreNextSingleClick_=!0},ol.interaction.Modify.prototype.removePoint=function(){if(this.lastPointerEvent_&&this.lastPointerEvent_.type!=ol.MapBrowserEventType.POINTERDRAG){var n=this.lastPointerEvent_;return this.willModifyFeatures_(n),this.removeVertex_(),this.dispatchEvent(new ol.interaction.Modify.Event(ol.interaction.ModifyEventType.MODIFYEND,this.features_,n)),this.modified_=!1,!0}return!1},ol.interaction.Modify.prototype.removeVertex_=function(){for(var y=this.dragSegments_,r={},o=!1,t,f,l,h,u,e,c,s,n,i,v,p,a=y.length-1;a>=0;--a)l=y[a],n=l[0],i=ol.getUid(n.feature),n.depth&&(i+="-"+n.depth.join("-")),i in r||(r[i]={}),l[1]===0?(r[i].right=n,r[i].index=n.index):l[1]==1&&(r[i].left=n,r[i].index=n.index+1);for(i in r){s=r[i].right;e=r[i].left;u=r[i].index;c=u-1;n=e!==undefined?e:s;c<0&&(c=0);h=n.geometry;f=h.getCoordinates();t=f;o=!1;switch(h.getType()){case ol.geom.GeometryType.MULTI_LINE_STRING:f[n.depth[0]].length>2&&(f[n.depth[0]].splice(u,1),o=!0);break;case ol.geom.GeometryType.LINE_STRING:f.length>2&&(f.splice(u,1),o=!0);break;case ol.geom.GeometryType.MULTI_POLYGON:t=t[n.depth[1]];case ol.geom.GeometryType.POLYGON:t=t[n.depth[0]];t.length>4&&(u==t.length-1&&(u=0),t.splice(u,1),o=!0,u===0&&(t.pop(),t.push(t[0]),c=t.length-1))}o&&(this.setGeometryCoordinates_(h,f),v=[],e!==undefined&&(this.rBush_.remove(e),v.push(e.segment[0])),s!==undefined&&(this.rBush_.remove(s),v.push(s.segment[1])),e!==undefined&&s!==undefined&&(p={depth:n.depth,feature:n.feature,geometry:n.geometry,index:c,segment:v},this.rBush_.insert(ol.extent.boundingExtent(p.segment),p)),this.updateSegmentIndices_(h,u,n.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),y.length=0)}return o},ol.interaction.Modify.prototype.setGeometryCoordinates_=function(n,t){this.changingFeature_=!0;n.setCoordinates(t);this.changingFeature_=!1},ol.interaction.Modify.prototype.updateSegmentIndices_=function(n,t,i,r){this.rBush_.forEachInExtent(n.getExtent(),function(u){u.geometry===n&&(i===undefined||u.depth===undefined||ol.array.equals(u.depth,i))&&u.index>t&&(u.index+=r)})},ol.interaction.Modify.getDefaultStyleFunction=function(){var n=ol.style.Style.createDefaultEditing();return function(){return n[ol.geom.GeometryType.POINT]}},ol.interaction.Modify.Event=function(n,t,i){ol.events.Event.call(this,n);this.features=t;this.mapBrowserEvent=i},ol.inherits(ol.interaction.Modify.Event,ol.events.Event),n.provide("ol.interaction.Select"),n.require("ol"),n.require("ol.CollectionEventType"),n.require("ol.array"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.condition"),n.require("ol.functions"),n.require("ol.geom.GeometryType"),n.require("ol.interaction.Interaction"),n.require("ol.layer.Vector"),n.require("ol.obj"),n.require("ol.source.Vector"),n.require("ol.style.Style"),ol.interaction.Select=function(n){var t,u,i,f,r;ol.interaction.Interaction.call(this,{handleEvent:ol.interaction.Select.handleEvent});t=n?n:{};this.condition_=t.condition?t.condition:ol.events.condition.singleClick;this.addCondition_=t.addCondition?t.addCondition:ol.events.condition.never;this.removeCondition_=t.removeCondition?t.removeCondition:ol.events.condition.never;this.toggleCondition_=t.toggleCondition?t.toggleCondition:ol.events.condition.shiftKeyOnly;this.multi_=t.multi?t.multi:!1;this.filter_=t.filter?t.filter:ol.functions.TRUE;this.hitTolerance_=t.hitTolerance?t.hitTolerance:0;u=new ol.layer.Vector({source:new ol.source.Vector({useSpatialIndex:!1,features:t.features,wrapX:t.wrapX}),style:t.style?t.style:ol.interaction.Select.getDefaultStyleFunction(),updateWhileAnimating:!0,updateWhileInteracting:!0});this.featureOverlay_=u;t.layers?typeof t.layers=="function"?i=t.layers:(f=t.layers,i=function(n){return ol.array.includes(f,n)}):i=ol.functions.TRUE;this.layerFilter_=i;this.featureLayerAssociation_={};r=this.featureOverlay_.getSource().getFeaturesCollection();ol.events.listen(r,ol.CollectionEventType.ADD,this.addFeature_,this);ol.events.listen(r,ol.CollectionEventType.REMOVE,this.removeFeature_,this)},ol.inherits(ol.interaction.Select,ol.interaction.Interaction),ol.interaction.Select.prototype.addFeatureLayerAssociation_=function(n,t){var i=ol.getUid(n);this.featureLayerAssociation_[i]=t},ol.interaction.Select.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},ol.interaction.Select.prototype.getHitTolerance=function(){return this.hitTolerance_},ol.interaction.Select.prototype.getLayer=function(n){var t=ol.getUid(n);return this.featureLayerAssociation_[t]},ol.interaction.Select.handleEvent=function(n){var u,f,s,e;if(!this.condition_(n))return!0;var h=this.addCondition_(n),c=this.removeCondition_(n),o=this.toggleCondition_(n),a=!h&&!c&&!o,l=n.map,i=this.featureOverlay_.getSource().getFeaturesCollection(),r=[],t=[];if(a){for(ol.obj.clear(this.featureLayerAssociation_),l.forEachFeatureAtPixel(n.pixel,function(n,i){if(this.filter_(n,i))return t.push(n),this.addFeatureLayerAssociation_(n,i),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_}),u=i.getLength()-1;u>=0;--u)f=i.item(u),s=t.indexOf(f),s>-1?t.splice(s,1):(i.remove(f),r.push(f));t.length!==0&&i.extend(t)}else{for(l.forEachFeatureAtPixel(n.pixel,function(n,u){if(this.filter_(n,u))return(h||o)&&!ol.array.includes(i.getArray(),n)?(t.push(n),this.addFeatureLayerAssociation_(n,u)):(c||o)&&ol.array.includes(i.getArray(),n)&&(r.push(n),this.removeFeatureLayerAssociation_(n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_}),e=r.length-1;e>=0;--e)i.remove(r[e]);i.extend(t)}return(t.length>0||r.length>0)&&this.dispatchEvent(new ol.interaction.Select.Event(ol.interaction.Select.EventType_.SELECT,t,r,n)),ol.events.condition.pointerMove(n)},ol.interaction.Select.prototype.setHitTolerance=function(n){this.hitTolerance_=n},ol.interaction.Select.prototype.setMap=function(n){var t=this.getMap(),i=this.featureOverlay_.getSource().getFeaturesCollection();t&&i.forEach(t.unskipFeature,t);ol.interaction.Interaction.prototype.setMap.call(this,n);this.featureOverlay_.setMap(n);n&&i.forEach(n.skipFeature,n)},ol.interaction.Select.getDefaultStyleFunction=function(){var n=ol.style.Style.createDefaultEditing();return ol.array.extend(n[ol.geom.GeometryType.POLYGON],n[ol.geom.GeometryType.LINE_STRING]),ol.array.extend(n[ol.geom.GeometryType.GEOMETRY_COLLECTION],n[ol.geom.GeometryType.LINE_STRING]),function(t){return t.getGeometry()?n[t.getGeometry().getType()]:null}},ol.interaction.Select.prototype.addFeature_=function(n){var t=this.getMap();t&&t.skipFeature(n.element)},ol.interaction.Select.prototype.removeFeature_=function(n){var t=this.getMap();t&&t.unskipFeature(n.element)},ol.interaction.Select.prototype.removeFeatureLayerAssociation_=function(n){var t=ol.getUid(n);delete this.featureLayerAssociation_[t]},ol.interaction.Select.Event=function(n,t,i,r){ol.events.Event.call(this,n);this.selected=t;this.deselected=i;this.mapBrowserEvent=r},ol.inherits(ol.interaction.Select.Event,ol.events.Event),ol.interaction.Select.EventType_={SELECT:"select"},n.provide("ol.interaction.Snap"),n.require("ol"),n.require("ol.Collection"),n.require("ol.CollectionEventType"),n.require("ol.coordinate"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.geom.GeometryType"),n.require("ol.geom.Polygon"),n.require("ol.interaction.Pointer"),n.require("ol.obj"),n.require("ol.source.Vector"),n.require("ol.source.VectorEventType"),n.require("ol.structs.RBush"),ol.interaction.Snap=function(n){ol.interaction.Pointer.call(this,{handleEvent:ol.interaction.Snap.handleEvent_,handleDownEvent:ol.functions.TRUE,handleUpEvent:ol.interaction.Snap.handleUpEvent_});var t=n?n:{};this.source_=t.source?t.source:null;this.vertex_=t.vertex!==undefined?t.vertex:!0;this.edge_=t.edge!==undefined?t.edge:!0;this.features_=t.features?t.features:null;this.featuresListenerKeys_=[];this.featureChangeListenerKeys_={};this.indexedFeaturesExtents_={};this.pendingFeatures_={};this.pixelCoordinate_=null;this.pixelTolerance_=t.pixelTolerance!==undefined?t.pixelTolerance:10;this.sortByDistance_=ol.interaction.Snap.sortByDistance.bind(this);this.rBush_=new ol.structs.RBush;this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}},ol.inherits(ol.interaction.Snap,ol.interaction.Pointer),ol.interaction.Snap.prototype.addFeature=function(n,t){var f=t!==undefined?t:!0,u=ol.getUid(n),i=n.getGeometry(),r;i&&(r=this.SEGMENT_WRITERS_[i.getType()],r&&(this.indexedFeaturesExtents_[u]=i.getExtent(ol.extent.createEmpty()),r.call(this,n,i)));f&&(this.featureChangeListenerKeys_[u]=ol.events.listen(n,ol.events.EventType.CHANGE,this.handleFeatureChange_,this))},ol.interaction.Snap.prototype.forEachFeatureAdd_=function(n){this.addFeature(n)},ol.interaction.Snap.prototype.forEachFeatureRemove_=function(n){this.removeFeature(n)},ol.interaction.Snap.prototype.getFeatures_=function(){var n;return this.features_?n=this.features_:this.source_&&(n=this.source_.getFeatures()),n},ol.interaction.Snap.prototype.handleFeatureAdd_=function(n){var t;n instanceof ol.source.Vector.Event?t=n.feature:n instanceof ol.Collection.Event&&(t=n.element);this.addFeature(t)},ol.interaction.Snap.prototype.handleFeatureRemove_=function(n){var t;n instanceof ol.source.Vector.Event?t=n.feature:n instanceof ol.Collection.Event&&(t=n.element);this.removeFeature(t)},ol.interaction.Snap.prototype.handleFeatureChange_=function(n){var t=n.target,i;this.handlingDownUpSequence?(i=ol.getUid(t),i in this.pendingFeatures_||(this.pendingFeatures_[i]=t)):this.updateFeature_(t)},ol.interaction.Snap.prototype.removeFeature=function(n,t){var o=t!==undefined?t:!0,u=ol.getUid(n),e=this.indexedFeaturesExtents_[u],f,i,r;if(e)for(f=this.rBush_,r=[],f.forEachInExtent(e,function(t){n===t.feature&&r.push(t)}),i=r.length-1;i>=0;--i)f.remove(r[i]);o&&(ol.events.unlistenByKey(this.featureChangeListenerKeys_[u]),delete this.featureChangeListenerKeys_[u])},ol.interaction.Snap.prototype.setMap=function(n){var r=this.getMap(),t=this.featuresListenerKeys_,i=this.getFeatures_();r&&(t.forEach(ol.events.unlistenByKey),t.length=0,i.forEach(this.forEachFeatureRemove_,this));ol.interaction.Pointer.prototype.setMap.call(this,n);n&&(this.features_?t.push(ol.events.listen(this.features_,ol.CollectionEventType.ADD,this.handleFeatureAdd_,this),ol.events.listen(this.features_,ol.CollectionEventType.REMOVE,this.handleFeatureRemove_,this)):this.source_&&t.push(ol.events.listen(this.source_,ol.source.VectorEventType.ADDFEATURE,this.handleFeatureAdd_,this),ol.events.listen(this.source_,ol.source.VectorEventType.REMOVEFEATURE,this.handleFeatureRemove_,this)),i.forEach(this.forEachFeatureAdd_,this))},ol.interaction.Snap.prototype.shouldStopEvent=ol.functions.FALSE,ol.interaction.Snap.prototype.snapTo=function(n,t,i){var p=i.getCoordinateFromPixel([n[0]-this.pixelTolerance_,n[1]+this.pixelTolerance_]),w=i.getCoordinateFromPixel([n[0]+this.pixelTolerance_,n[1]-this.pixelTolerance_]),b=ol.extent.boundingExtent([p,w]),f=this.rBush_.getInExtent(b),u,y;this.vertex_&&!this.edge_&&(f=f.filter(function(n){return n.feature.getGeometry().getType()!==ol.geom.GeometryType.CIRCLE}));var h=!1,c=!1,e=null,r=null,l,a,v,o,s;return f.length>0&&(this.pixelCoordinate_=t,f.sort(this.sortByDistance_),u=f[0].segment,y=f[0].feature.getGeometry().getType()===ol.geom.GeometryType.CIRCLE,this.vertex_&&!this.edge_?(a=i.getPixelFromCoordinate(u[0]),v=i.getPixelFromCoordinate(u[1]),o=ol.coordinate.squaredDistance(n,a),s=ol.coordinate.squaredDistance(n,v),l=Math.sqrt(Math.min(o,s)),h=l<=this.pixelTolerance_,h&&(c=!0,e=o>s?u[1]:u[0],r=i.getPixelFromCoordinate(e))):this.edge_&&(e=y?ol.coordinate.closestOnCircle(t,f[0].feature.getGeometry()):ol.coordinate.closestOnSegment(t,u),r=i.getPixelFromCoordinate(e),ol.coordinate.distance(n,r)<=this.pixelTolerance_&&(c=!0,this.vertex_&&!y&&(a=i.getPixelFromCoordinate(u[0]),v=i.getPixelFromCoordinate(u[1]),o=ol.coordinate.squaredDistance(r,a),s=ol.coordinate.squaredDistance(r,v),l=Math.sqrt(Math.min(o,s)),h=l<=this.pixelTolerance_,h&&(e=o>s?u[1]:u[0],r=i.getPixelFromCoordinate(e))))),c&&(r=[Math.round(r[0]),Math.round(r[1])])),{snapped:c,vertex:e,vertexPixel:r}},ol.interaction.Snap.prototype.updateFeature_=function(n){this.removeFeature(n,!1);this.addFeature(n,!1)},ol.interaction.Snap.prototype.writeCircleGeometry_=function(n,t){for(var o=ol.geom.Polygon.fromCircle(t),u=o.getCoordinates()[0],r,e,i=0,f=u.length-1;i<f;++i)r=u.slice(i,i+2),e={feature:n,segment:r},this.rBush_.insert(ol.extent.boundingExtent(r),e)},ol.interaction.Snap.prototype.writeGeometryCollectionGeometry_=function(n,t){for(var r=t.getGeometriesArray(),u,i=0;i<r.length;++i)u=this.SEGMENT_WRITERS_[r[i].getType()],u&&u.call(this,n,r[i])},ol.interaction.Snap.prototype.writeLineStringGeometry_=function(n,t){for(var u=t.getCoordinates(),r,e,i=0,f=u.length-1;i<f;++i)r=u.slice(i,i+2),e={feature:n,segment:r},this.rBush_.insert(ol.extent.boundingExtent(r),e)},ol.interaction.Snap.prototype.writeMultiLineStringGeometry_=function(n,t){for(var e=t.getCoordinates(),u,i,o,f,h,r=0,s=e.length;r<s;++r)for(u=e[r],i=0,o=u.length-1;i<o;++i)f=u.slice(i,i+2),h={feature:n,segment:f},this.rBush_.insert(ol.extent.boundingExtent(f),h)},ol.interaction.Snap.prototype.writeMultiPointGeometry_=function(n,t){for(var u=t.getCoordinates(),r,e,i=0,f=u.length;i<f;++i)r=u[i],e={feature:n,segment:[r,r]},this.rBush_.insert(t.getExtent(),e)},ol.interaction.Snap.prototype.writeMultiPolygonGeometry_=function(n,t){for(var s=t.getCoordinates(),f,i,h,r,c,e,o,a,u=0,l=s.length;u<l;++u)for(e=s[u],r=0,c=e.length;r<c;++r)for(f=e[r],i=0,h=f.length-1;i<h;++i)o=f.slice(i,i+2),a={feature:n,segment:o},this.rBush_.insert(ol.extent.boundingExtent(o),a)},ol.interaction.Snap.prototype.writePointGeometry_=function(n,t){var i=t.getCoordinates(),r={feature:n,segment:[i,i]};this.rBush_.insert(t.getExtent(),r)},ol.interaction.Snap.prototype.writePolygonGeometry_=function(n,t){for(var e=t.getCoordinates(),u,i,o,f,h,r=0,s=e.length;r<s;++r)for(u=e[r],i=0,o=u.length-1;i<o;++i)f=u.slice(i,i+2),h={feature:n,segment:f},this.rBush_.insert(ol.extent.boundingExtent(f),h)},ol.interaction.Snap.handleEvent_=function(n){var t=this.snapTo(n.pixel,n.coordinate,n.map);return t.snapped&&(n.coordinate=t.vertex.slice(0,2),n.pixel=t.vertexPixel),ol.interaction.Pointer.handleEvent.call(this,n)},ol.interaction.Snap.handleUpEvent_=function(){var n=ol.obj.getValues(this.pendingFeatures_);return n.length&&(n.forEach(this.updateFeature_,this),this.pendingFeatures_={}),!1},ol.interaction.Snap.sortByDistance=function(n,t){return ol.coordinate.squaredDistanceToSegment(this.pixelCoordinate_,n.segment)-ol.coordinate.squaredDistanceToSegment(this.pixelCoordinate_,t.segment)},n.provide("ol.interaction.TranslateEventType"),ol.interaction.TranslateEventType={TRANSLATESTART:"translatestart",TRANSLATING:"translating",TRANSLATEEND:"translateend"},n.provide("ol.interaction.Translate"),n.require("ol"),n.require("ol.Collection"),n.require("ol.Object"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.functions"),n.require("ol.array"),n.require("ol.interaction.Pointer"),n.require("ol.interaction.Property"),n.require("ol.interaction.TranslateEventType"),ol.interaction.Translate=function(n){var t,i,r;ol.interaction.Pointer.call(this,{handleDownEvent:ol.interaction.Translate.handleDownEvent_,handleDragEvent:ol.interaction.Translate.handleDragEvent_,handleMoveEvent:ol.interaction.Translate.handleMoveEvent_,handleUpEvent:ol.interaction.Translate.handleUpEvent_});t=n?n:{};this.lastCoordinate_=null;this.features_=t.features!==undefined?t.features:null;t.layers?typeof t.layers=="function"?i=t.layers:(r=t.layers,i=function(n){return ol.array.includes(r,n)}):i=ol.functions.TRUE;this.layerFilter_=i;this.hitTolerance_=t.hitTolerance?t.hitTolerance:0;this.lastFeature_=null;ol.events.listen(this,ol.Object.getChangeEventType(ol.interaction.Property.ACTIVE),this.handleActiveChanged_,this)},ol.inherits(ol.interaction.Translate,ol.interaction.Pointer),ol.interaction.Translate.handleDownEvent_=function(n){if(this.lastFeature_=this.featuresAtPixel_(n.pixel,n.map),!this.lastCoordinate_&&this.lastFeature_){this.lastCoordinate_=n.coordinate;ol.interaction.Translate.handleMoveEvent_.call(this,n);var t=this.features_||new ol.Collection([this.lastFeature_]);return this.dispatchEvent(new ol.interaction.Translate.Event(ol.interaction.TranslateEventType.TRANSLATESTART,t,n.coordinate)),!0}return!1},ol.interaction.Translate.handleUpEvent_=function(n){if(this.lastCoordinate_){this.lastCoordinate_=null;ol.interaction.Translate.handleMoveEvent_.call(this,n);var t=this.features_||new ol.Collection([this.lastFeature_]);return this.dispatchEvent(new ol.interaction.Translate.Event(ol.interaction.TranslateEventType.TRANSLATEEND,t,n.coordinate)),!0}return!1},ol.interaction.Translate.handleDragEvent_=function(n){if(this.lastCoordinate_){var t=n.coordinate,r=t[0]-this.lastCoordinate_[0],u=t[1]-this.lastCoordinate_[1],i=this.features_||new ol.Collection([this.lastFeature_]);i.forEach(function(n){var t=n.getGeometry();t.translate(r,u);n.setGeometry(t)});this.lastCoordinate_=t;this.dispatchEvent(new ol.interaction.Translate.Event(ol.interaction.TranslateEventType.TRANSLATING,i,t))}},ol.interaction.Translate.handleMoveEvent_=function(n){var t=n.map.getViewport();this.featuresAtPixel_(n.pixel,n.map)?(t.classList.remove(this.lastCoordinate_?"ol-grab":"ol-grabbing"),t.classList.add(this.lastCoordinate_?"ol-grabbing":"ol-grab")):t.classList.remove("ol-grab","ol-grabbing")},ol.interaction.Translate.prototype.featuresAtPixel_=function(n,t){return t.forEachFeatureAtPixel(n,function(n){if(!this.features_||ol.array.includes(this.features_.getArray(),n))return n}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})},ol.interaction.Translate.prototype.getHitTolerance=function(){return this.hitTolerance_},ol.interaction.Translate.prototype.setHitTolerance=function(n){this.hitTolerance_=n},ol.interaction.Translate.prototype.setMap=function(n){var t=this.getMap();ol.interaction.Pointer.prototype.setMap.call(this,n);this.updateState_(t)},ol.interaction.Translate.prototype.handleActiveChanged_=function(){this.updateState_(null)},ol.interaction.Translate.prototype.updateState_=function(n){var t=this.getMap(),r=this.getActive(),i;t&&r||(t=t||n,t&&(i=t.getViewport(),i.classList.remove("ol-grab","ol-grabbing")))},ol.interaction.Translate.Event=function(n,t,i){ol.events.Event.call(this,n);this.features=t;this.coordinate=i},ol.inherits(ol.interaction.Translate.Event,ol.events.Event),n.provide("ol.layer.Heatmap"),n.require("ol.events"),n.require("ol"),n.require("ol.Object"),n.require("ol.dom"),n.require("ol.layer.Vector"),n.require("ol.math"),n.require("ol.obj"),n.require("ol.render.EventType"),n.require("ol.style.Icon"),n.require("ol.style.Style"),ol.layer.Heatmap=function(n){var t=n?n:{},i=ol.obj.assign({},t),r,u;delete i.gradient;delete i.radius;delete i.blur;delete i.shadow;delete i.weight;ol.layer.Vector.call(this,i);this.gradient_=null;this.shadow_=t.shadow!==undefined?t.shadow:250;this.circleImage_=undefined;this.styleCache_=null;ol.events.listen(this,ol.Object.getChangeEventType(ol.layer.Heatmap.Property_.GRADIENT),this.handleGradientChanged_,this);this.setGradient(t.gradient?t.gradient:ol.layer.Heatmap.DEFAULT_GRADIENT);this.setBlur(t.blur!==undefined?t.blur:15);this.setRadius(t.radius!==undefined?t.radius:8);ol.events.listen(this,ol.Object.getChangeEventType(ol.layer.Heatmap.Property_.BLUR),this.handleStyleChanged_,this);ol.events.listen(this,ol.Object.getChangeEventType(ol.layer.Heatmap.Property_.RADIUS),this.handleStyleChanged_,this);this.handleStyleChanged_();r=t.weight?t.weight:"weight";u=typeof r=="string"?function(n){return n.get(r)}:r;this.setStyle(function(n){var i=u(n),r=i!==undefined?ol.math.clamp(i,0,1):1,f=255*r|0,t=this.styleCache_[f];return t||(t=[new ol.style.Style({image:new ol.style.Icon({opacity:r,src:this.circleImage_})})],this.styleCache_[f]=t),t}.bind(this));this.setRenderOrder(null);ol.events.listen(this,ol.render.EventType.RENDER,this.handleRender_,this)},ol.inherits(ol.layer.Heatmap,ol.layer.Vector),ol.layer.Heatmap.DEFAULT_GRADIENT=["#00f","#0ff","#0f0","#ff0","#f00"],ol.layer.Heatmap.createGradient_=function(n){for(var t=1,i=256,r=ol.dom.createCanvasContext2D(t,i),f=r.createLinearGradient(0,0,t,i),e=1/(n.length-1),u=0,o=n.length;u<o;++u)f.addColorStop(u*e,n[u]);return r.fillStyle=f,r.fillRect(0,0,t,i),r.getImageData(0,0,t,i).data},ol.layer.Heatmap.prototype.createCircle_=function(){var i=this.getRadius(),r=this.getBlur(),u=i+r+1,f=2*u,n=ol.dom.createCanvasContext2D(f,f),t;return n.shadowOffsetX=n.shadowOffsetY=this.shadow_,n.shadowBlur=r,n.shadowColor="#000",n.beginPath(),t=u-this.shadow_,n.arc(t,t,i,0,Math.PI*2,!0),n.fill(),n.canvas.toDataURL()},ol.layer.Heatmap.prototype.getBlur=function(){return this.get(ol.layer.Heatmap.Property_.BLUR)},ol.layer.Heatmap.prototype.getGradient=function(){return this.get(ol.layer.Heatmap.Property_.GRADIENT)},ol.layer.Heatmap.prototype.getRadius=function(){return this.get(ol.layer.Heatmap.Property_.RADIUS)},ol.layer.Heatmap.prototype.handleGradientChanged_=function(){this.gradient_=ol.layer.Heatmap.createGradient_(this.getGradient())},ol.layer.Heatmap.prototype.handleStyleChanged_=function(){this.circleImage_=this.createCircle_();this.styleCache_=new Array(256);this.changed()},ol.layer.Heatmap.prototype.handleRender_=function(n){for(var u=n.context,f=u.canvas,e=u.getImageData(0,0,f.width,f.height),i=e.data,r,t=0,o=i.length;t<o;t+=4)r=i[t+3]*4,r&&(i[t]=this.gradient_[r],i[t+1]=this.gradient_[r+1],i[t+2]=this.gradient_[r+2]);u.putImageData(e,0,0)},ol.layer.Heatmap.prototype.setBlur=function(n){this.set(ol.layer.Heatmap.Property_.BLUR,n)},ol.layer.Heatmap.prototype.setGradient=function(n){this.set(ol.layer.Heatmap.Property_.GRADIENT,n)},ol.layer.Heatmap.prototype.setRadius=function(n){this.set(ol.layer.Heatmap.Property_.RADIUS,n)},ol.layer.Heatmap.Property_={BLUR:"blur",GRADIENT:"gradient",RADIUS:"radius"},n.provide("ol.layer.Image"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.layer.Layer"),ol.layer.Image=function(n){var t=n?n:{};ol.layer.Layer.call(this,t);this.type=ol.LayerType.IMAGE},ol.inherits(ol.layer.Image,ol.layer.Layer),ol.layer.Image.prototype.getSource,n.provide("ol.layer.TileProperty"),ol.layer.TileProperty={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"},n.provide("ol.layer.Tile"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.layer.Layer"),n.require("ol.layer.TileProperty"),n.require("ol.obj"),ol.layer.Tile=function(n){var t=n?n:{},i=ol.obj.assign({},t);delete i.preload;delete i.useInterimTilesOnError;ol.layer.Layer.call(this,i);this.setPreload(t.preload!==undefined?t.preload:0);this.setUseInterimTilesOnError(t.useInterimTilesOnError!==undefined?t.useInterimTilesOnError:!0);this.type=ol.LayerType.TILE},ol.inherits(ol.layer.Tile,ol.layer.Layer),ol.layer.Tile.prototype.getPreload=function(){return this.get(ol.layer.TileProperty.PRELOAD)},ol.layer.Tile.prototype.getSource,ol.layer.Tile.prototype.setPreload=function(n){this.set(ol.layer.TileProperty.PRELOAD,n)},ol.layer.Tile.prototype.getUseInterimTilesOnError=function(){return this.get(ol.layer.TileProperty.USE_INTERIM_TILES_ON_ERROR)},ol.layer.Tile.prototype.setUseInterimTilesOnError=function(n){this.set(ol.layer.TileProperty.USE_INTERIM_TILES_ON_ERROR,n)},n.provide("ol.layer.VectorTile"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.asserts"),n.require("ol.layer.TileProperty"),n.require("ol.layer.Vector"),n.require("ol.layer.VectorTileRenderType"),n.require("ol.obj"),ol.layer.VectorTile=function(n){var t=n?n:{},i=t.renderMode||ol.layer.VectorTileRenderType.HYBRID,r;ol.asserts.assert(i==undefined||i==ol.layer.VectorTileRenderType.IMAGE||i==ol.layer.VectorTileRenderType.HYBRID||i==ol.layer.VectorTileRenderType.VECTOR,28);t.declutter&&i==ol.layer.VectorTileRenderType.IMAGE&&(i=ol.layer.VectorTileRenderType.HYBRID);t.renderMode=i;r=ol.obj.assign({},t);delete r.preload;delete r.useInterimTilesOnError;ol.layer.Vector.call(this,r);this.setPreload(t.preload?t.preload:0);this.setUseInterimTilesOnError(t.useInterimTilesOnError?t.useInterimTilesOnError:!0);this.type=ol.LayerType.VECTOR_TILE},ol.inherits(ol.layer.VectorTile,ol.layer.Vector),ol.layer.VectorTile.prototype.getPreload=function(){return this.get(ol.layer.TileProperty.PRELOAD)},ol.layer.VectorTile.prototype.getUseInterimTilesOnError=function(){return this.get(ol.layer.TileProperty.USE_INTERIM_TILES_ON_ERROR)},ol.layer.VectorTile.prototype.setPreload=function(n){this.set(ol.layer.TileProperty.PRELOAD,n)},ol.layer.VectorTile.prototype.setUseInterimTilesOnError=function(n){this.set(ol.layer.TileProperty.USE_INTERIM_TILES_ON_ERROR,n)},ol.layer.VectorTile.prototype.getSource,n.provide("ol.webgl.Shader"),n.require("ol.functions"),ol.webgl.Shader=function(n){this.source_=n},ol.webgl.Shader.prototype.getType=function(){},ol.webgl.Shader.prototype.getSource=function(){return this.source_},ol.webgl.Shader.prototype.isAnimated=ol.functions.FALSE,n.provide("ol.webgl.Fragment"),n.require("ol"),n.require("ol.webgl"),n.require("ol.webgl.Shader"),ol.webgl.Fragment=function(n){ol.webgl.Shader.call(this,n)},ol.inherits(ol.webgl.Fragment,ol.webgl.Shader),ol.webgl.Fragment.prototype.getType=function(){return ol.webgl.FRAGMENT_SHADER},n.provide("ol.webgl.Vertex"),n.require("ol"),n.require("ol.webgl"),n.require("ol.webgl.Shader"),ol.webgl.Vertex=function(n){ol.webgl.Shader.call(this,n)},ol.inherits(ol.webgl.Vertex,ol.webgl.Shader),ol.webgl.Vertex.prototype.getType=function(){return ol.webgl.VERTEX_SHADER},n.provide("ol.render.webgl.circlereplay.defaultshader"),n.require("ol"),n.require("ol.webgl.Fragment"),n.require("ol.webgl.Vertex"),ol.render.webgl.circlereplay.defaultshader.fragment=new ol.webgl.Fragment(ol.DEBUG_WEBGL?"precision mediump float;\nvarying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_fillColor;\nuniform vec4 u_strokeColor;\nuniform vec2 u_size;\n\nvoid main(void) {\n  vec2 windowCenter = vec2((v_center.x + 1.0) / 2.0 * u_size.x * v_pixelRatio,\n      (v_center.y + 1.0) / 2.0 * u_size.y * v_pixelRatio);\n  vec2 windowOffset = vec2((v_offset.x + 1.0) / 2.0 * u_size.x * v_pixelRatio,\n      (v_offset.y + 1.0) / 2.0 * u_size.y * v_pixelRatio);\n  float radius = length(windowCenter - windowOffset);\n  float dist = length(windowCenter - gl_FragCoord.xy);\n  if (dist > radius + v_halfWidth) {\n    if (u_strokeColor.a == 0.0) {\n      gl_FragColor = u_fillColor;\n    } else {\n      gl_FragColor = u_strokeColor;\n    }\n    gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n  } else if (u_fillColor.a == 0.0) {\n    // Hooray, no fill, just stroke. We can use real antialiasing.\n    gl_FragColor = u_strokeColor;\n    if (dist < radius - v_halfWidth) {\n      gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n    }\n  } else {\n    gl_FragColor = u_fillColor;\n    float strokeDist = radius - v_halfWidth;\n    float antialias = 2.0 * v_pixelRatio;\n    if (dist > strokeDist) {\n      gl_FragColor = u_strokeColor;\n    } else if (dist >= strokeDist - antialias) {\n      float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n      gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n    }\n  }\n  gl_FragColor.a = gl_FragColor.a * u_opacity;\n  if (gl_FragColor.a <= 0.0) {\n    discard;\n  }\n}\n":"precision mediump float;varying vec2 a;varying vec2 b;varying float c;varying float d;uniform float m;uniform vec4 n;uniform vec4 o;uniform vec2 p;void main(void){vec2 windowCenter=vec2((a.x+1.0)/2.0*p.x*d,(a.y+1.0)/2.0*p.y*d);vec2 windowOffset=vec2((b.x+1.0)/2.0*p.x*d,(b.y+1.0)/2.0*p.y*d);float radius=length(windowCenter-windowOffset);float dist=length(windowCenter-gl_FragCoord.xy);if(dist>radius+c){if(o.a==0.0){gl_FragColor=n;}else{gl_FragColor=o;}gl_FragColor.a=gl_FragColor.a-(dist-(radius+c));}else if(n.a==0.0){gl_FragColor=o;if(dist<radius-c){gl_FragColor.a=gl_FragColor.a-(radius-c-dist);}} else{gl_FragColor=n;float strokeDist=radius-c;float antialias=2.0*d;if(dist>strokeDist){gl_FragColor=o;}else if(dist>=strokeDist-antialias){float step=smoothstep(strokeDist-antialias,strokeDist,dist);gl_FragColor=mix(n,o,step);}} gl_FragColor.a=gl_FragColor.a*m;if(gl_FragColor.a<=0.0){discard;}}"),ol.render.webgl.circlereplay.defaultshader.vertex=new ol.webgl.Vertex(ol.DEBUG_WEBGL?"varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n  mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n  v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n  v_pixelRatio = u_pixelRatio;\n  float lineWidth = u_lineWidth * u_pixelRatio;\n  v_halfWidth = lineWidth / 2.0;\n  if (lineWidth == 0.0) {\n    lineWidth = 2.0 * u_pixelRatio;\n  }\n  vec2 offset;\n  // Radius with anitaliasing (roughly).\n  float radius = a_radius + 3.0 * u_pixelRatio;\n  // Until we get gl_VertexID in WebGL, we store an instruction.\n  if (a_instruction == 0.0) {\n    // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n    // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n    offset = vec2(-1.0, 1.0);\n  } else if (a_instruction == 1.0) {\n    offset = vec2(-1.0, -1.0);\n  } else if (a_instruction == 2.0) {\n    offset = vec2(1.0, -1.0);\n  } else {\n    offset = vec2(1.0, 1.0);\n  }\n\n  gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n      offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n  v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n      0.0, 1.0)).xy;\n\n  if (distance(v_center, v_offset) > 20000.0) {\n    gl_Position = vec4(v_center, 0.0, 1.0);\n  }\n}\n\n\n":"varying vec2 a;varying vec2 b;varying float c;varying float d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;uniform float k;uniform float l;void main(void){mat4 offsetMatrix=i*j;a=vec4(h*vec4(e,0.0,1.0)).xy;d=l;float lineWidth=k*l;c=lineWidth/2.0;if(lineWidth==0.0){lineWidth=2.0*l;}vec2 offset;float radius=g+3.0*l;//Until we get gl_VertexID in WebGL,we store an instruction.if(f==0.0){//Offsetting the edges of the triangle by lineWidth/2 is necessary,however//we should also leave some space for the antialiasing,thus we offset by lineWidth.offset=vec2(-1.0,1.0);}else if(f==1.0){offset=vec2(-1.0,-1.0);}else if(f==2.0){offset=vec2(1.0,-1.0);}else{offset=vec2(1.0,1.0);}gl_Position=h*vec4(e+offset*radius,0.0,1.0)+offsetMatrix*vec4(offset*lineWidth,0.0,0.0);b=vec4(h*vec4(e.x+g,e.y,0.0,1.0)).xy;if(distance(a,b)>20000.0){gl_Position=vec4(a,0.0,1.0);}}"),n.provide("ol.render.webgl.circlereplay.defaultshader.Locations"),n.require("ol"),ol.render.webgl.circlereplay.defaultshader.Locations=function(n,t){this.u_projectionMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_projectionMatrix":"h");this.u_offsetScaleMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetScaleMatrix":"i");this.u_offsetRotateMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetRotateMatrix":"j");this.u_lineWidth=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_lineWidth":"k");this.u_pixelRatio=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_pixelRatio":"l");this.u_opacity=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_opacity":"m");this.u_fillColor=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_fillColor":"n");this.u_strokeColor=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_strokeColor":"o");this.u_size=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_size":"p");this.a_position=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_position":"e");this.a_instruction=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_instruction":"f");this.a_radius=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_radius":"g")},n.provide("ol.vec.Mat4"),ol.vec.Mat4.create=function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},ol.vec.Mat4.fromTransform=function(n,t){return n[0]=t[0],n[1]=t[1],n[4]=t[2],n[5]=t[3],n[12]=t[4],n[13]=t[5],n},n.provide("ol.render.webgl.Replay"),n.require("ol"),n.require("ol.extent"),n.require("ol.render.VectorContext"),n.require("ol.transform"),n.require("ol.vec.Mat4"),n.require("ol.webgl"),ol.render.webgl.Replay=function(n,t){ol.render.VectorContext.call(this);this.tolerance=n;this.maxExtent=t;this.origin=ol.extent.getCenter(t);this.projectionMatrix_=ol.transform.create();this.offsetRotateMatrix_=ol.transform.create();this.offsetScaleMatrix_=ol.transform.create();this.tmpMat4_=ol.vec.Mat4.create();this.indices=[];this.indicesBuffer=null;this.startIndices=[];this.startIndicesFeature=[];this.vertices=[];this.verticesBuffer=null;this.lineStringReplay=undefined},ol.inherits(ol.render.webgl.Replay,ol.render.VectorContext),ol.render.webgl.Replay.prototype.getDeleteResourcesFunction=function(){},ol.render.webgl.Replay.prototype.finish=function(){},ol.render.webgl.Replay.prototype.setUpProgram=function(){},ol.render.webgl.Replay.prototype.shutDownProgram=function(){},ol.render.webgl.Replay.prototype.drawReplay=function(){},ol.render.webgl.Replay.prototype.drawHitDetectionReplayOneByOne=function(){},ol.render.webgl.Replay.prototype.drawHitDetectionReplay=function(n,t,i,r,u,f){return u?this.drawHitDetectionReplayOneByOne(n,t,i,r,f):this.drawHitDetectionReplayAll(n,t,i,r)},ol.render.webgl.Replay.prototype.drawHitDetectionReplayAll=function(n,t,i,r){n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT);this.drawReplay(n,t,i,!0);var u=r(null);return u?u:undefined},ol.render.webgl.Replay.prototype.replay=function(n,t,i,r,u,f,e,o,s,h,c){var l=n.getGL(),w,b,k,d,g,nt,tt,it,a,v,y,p,rt;return this.lineStringReplay&&(w=l.isEnabled(l.STENCIL_TEST),b=l.getParameter(l.STENCIL_FUNC),k=l.getParameter(l.STENCIL_VALUE_MASK),d=l.getParameter(l.STENCIL_REF),g=l.getParameter(l.STENCIL_WRITEMASK),nt=l.getParameter(l.STENCIL_FAIL),tt=l.getParameter(l.STENCIL_PASS_DEPTH_PASS),it=l.getParameter(l.STENCIL_PASS_DEPTH_FAIL),l.enable(l.STENCIL_TEST),l.clear(l.STENCIL_BUFFER_BIT),l.stencilMask(255),l.stencilFunc(l.ALWAYS,1,255),l.stencilOp(l.KEEP,l.KEEP,l.REPLACE),this.lineStringReplay.replay(n,t,i,r,u,f,e,o,s,h,c),l.stencilMask(0),l.stencilFunc(l.NOTEQUAL,1,255)),n.bindBuffer(ol.webgl.ARRAY_BUFFER,this.verticesBuffer),n.bindBuffer(ol.webgl.ELEMENT_ARRAY_BUFFER,this.indicesBuffer),a=this.setUpProgram(l,n,u,f),v=ol.transform.reset(this.projectionMatrix_),ol.transform.scale(v,2/(i*u[0]),2/(i*u[1])),ol.transform.rotate(v,-r),ol.transform.translate(v,-(t[0]-this.origin[0]),-(t[1]-this.origin[1])),y=ol.transform.reset(this.offsetScaleMatrix_),ol.transform.scale(y,2/u[0],2/u[1]),p=ol.transform.reset(this.offsetRotateMatrix_),r!==0&&ol.transform.rotate(p,-r),l.uniformMatrix4fv(a.u_projectionMatrix,!1,ol.vec.Mat4.fromTransform(this.tmpMat4_,v)),l.uniformMatrix4fv(a.u_offsetScaleMatrix,!1,ol.vec.Mat4.fromTransform(this.tmpMat4_,y)),l.uniformMatrix4fv(a.u_offsetRotateMatrix,!1,ol.vec.Mat4.fromTransform(this.tmpMat4_,p)),l.uniform1f(a.u_opacity,e),s===undefined?this.drawReplay(l,n,o,!1):rt=this.drawHitDetectionReplay(l,n,o,s,h,c),this.shutDownProgram(l,a),this.lineStringReplay&&(w||l.disable(l.STENCIL_TEST),l.clear(l.STENCIL_BUFFER_BIT),l.stencilFunc(b,d,k),l.stencilMask(g),l.stencilOp(nt,it,tt)),rt},ol.render.webgl.Replay.prototype.drawElements=function(n,t,i,r){var u=t.hasOESElementIndexUint?ol.webgl.UNSIGNED_INT:ol.webgl.UNSIGNED_SHORT,f=t.hasOESElementIndexUint?4:2,e=r-i,o=i*f;n.drawElements(ol.webgl.TRIANGLES,e,u,o)},n.provide("ol.render.webgl"),ol.render.webgl.defaultFont="10px sans-serif",ol.render.webgl.defaultFillStyle=[0,0,0,1],ol.render.webgl.defaultLineCap="round",ol.render.webgl.defaultLineDash=[],ol.render.webgl.defaultLineDashOffset=0,ol.render.webgl.defaultLineJoin="round",ol.render.webgl.defaultMiterLimit=10,ol.render.webgl.defaultStrokeStyle=[0,0,0,1],ol.render.webgl.defaultTextAlign=.5,ol.render.webgl.defaultTextBaseline=.5,ol.render.webgl.defaultLineWidth=1,ol.render.webgl.triangleIsCounterClockwise=function(n,t,i,r,u,f){var e=(i-n)*(f-t)-(u-n)*(r-t);return e<=ol.render.webgl.EPSILON&&e>=-ol.render.webgl.EPSILON?undefined:e>0},ol.render.webgl.EPSILON=Number.EPSILON||22204460492503131e-32,n.provide("ol.webgl.Buffer"),n.require("ol.webgl"),ol.webgl.Buffer=function(n,t){this.arr_=n!==undefined?n:[];this.usage_=t!==undefined?t:ol.webgl.Buffer.Usage_.STATIC_DRAW},ol.webgl.Buffer.prototype.getArray=function(){return this.arr_},ol.webgl.Buffer.prototype.getUsage=function(){return this.usage_},ol.webgl.Buffer.Usage_={STATIC_DRAW:ol.webgl.STATIC_DRAW,STREAM_DRAW:ol.webgl.STREAM_DRAW,DYNAMIC_DRAW:ol.webgl.DYNAMIC_DRAW},n.provide("ol.render.webgl.CircleReplay"),n.require("ol"),n.require("ol.array"),n.require("ol.color"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.geom.flat.transform"),n.require("ol.render.webgl.circlereplay.defaultshader"),n.require("ol.render.webgl.circlereplay.defaultshader.Locations"),n.require("ol.render.webgl.Replay"),n.require("ol.render.webgl"),n.require("ol.webgl"),n.require("ol.webgl.Buffer"),ol.render.webgl.CircleReplay=function(n,t){ol.render.webgl.Replay.call(this,n,t);this.defaultLocations_=null;this.styles_=[];this.styleIndices_=[];this.radius_=0;this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:undefined,lineWidth:undefined,changed:!1}},ol.inherits(ol.render.webgl.CircleReplay,ol.render.webgl.Replay),ol.render.webgl.CircleReplay.prototype.drawCoordinates_=function(n,t,i,r){for(var u=this.vertices.length,o=this.indices.length,e=u/4,f=t,s=i;f<s;f+=r)this.vertices[u++]=n[f],this.vertices[u++]=n[f+1],this.vertices[u++]=0,this.vertices[u++]=this.radius_,this.vertices[u++]=n[f],this.vertices[u++]=n[f+1],this.vertices[u++]=1,this.vertices[u++]=this.radius_,this.vertices[u++]=n[f],this.vertices[u++]=n[f+1],this.vertices[u++]=2,this.vertices[u++]=this.radius_,this.vertices[u++]=n[f],this.vertices[u++]=n[f+1],this.vertices[u++]=3,this.vertices[u++]=this.radius_,this.indices[o++]=e,this.indices[o++]=e+1,this.indices[o++]=e+2,this.indices[o++]=e+2,this.indices[o++]=e+3,this.indices[o++]=e,e+=4},ol.render.webgl.CircleReplay.prototype.drawCircle=function(n,t){var u=n.getRadius(),f=n.getStride(),i,r;u?(this.startIndices.push(this.indices.length),this.startIndicesFeature.push(t),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.radius_=u,i=n.getFlatCoordinates(),i=ol.geom.flat.transform.translate(i,0,2,f,-this.origin[0],-this.origin[1]),this.drawCoordinates_(i,0,2,f)):this.state_.changed&&(this.styles_.pop(),this.styles_.length&&(r=this.styles_[this.styles_.length-1],this.state_.fillColor=r[0],this.state_.strokeColor=r[1],this.state_.lineWidth=r[2],this.state_.changed=!1))},ol.render.webgl.CircleReplay.prototype.finish=function(){this.verticesBuffer=new ol.webgl.Buffer(this.vertices);this.indicesBuffer=new ol.webgl.Buffer(this.indices);this.startIndices.push(this.indices.length);this.styleIndices_.length===0&&this.styles_.length>0&&(this.styles_=[]);this.vertices=null;this.indices=null},ol.render.webgl.CircleReplay.prototype.getDeleteResourcesFunction=function(n){var t=this.verticesBuffer,i=this.indicesBuffer;return function(){n.deleteBuffer(t);n.deleteBuffer(i)}},ol.render.webgl.CircleReplay.prototype.setUpProgram=function(n,t,i,r){var e,o,f,u;return e=ol.render.webgl.circlereplay.defaultshader.fragment,o=ol.render.webgl.circlereplay.defaultshader.vertex,f=t.getProgram(e,o),this.defaultLocations_?u=this.defaultLocations_:(u=new ol.render.webgl.circlereplay.defaultshader.Locations(n,f),this.defaultLocations_=u),t.useProgram(f),n.enableVertexAttribArray(u.a_position),n.vertexAttribPointer(u.a_position,2,ol.webgl.FLOAT,!1,16,0),n.enableVertexAttribArray(u.a_instruction),n.vertexAttribPointer(u.a_instruction,1,ol.webgl.FLOAT,!1,16,8),n.enableVertexAttribArray(u.a_radius),n.vertexAttribPointer(u.a_radius,1,ol.webgl.FLOAT,!1,16,12),n.uniform2fv(u.u_size,i),n.uniform1f(u.u_pixelRatio,r),u},ol.render.webgl.CircleReplay.prototype.shutDownProgram=function(n,t){n.disableVertexAttribArray(t.a_position);n.disableVertexAttribArray(t.a_instruction);n.disableVertexAttribArray(t.a_radius)},ol.render.webgl.CircleReplay.prototype.drawReplay=function(n,t,i){if(ol.obj.isEmpty(i))for(var f,u,e=this.startIndices[this.startIndices.length-1],r=this.styleIndices_.length-1;r>=0;--r)f=this.styleIndices_[r],u=this.styles_[r],this.setFillStyle_(n,u[0]),this.setStrokeStyle_(n,u[1],u[2]),this.drawElements(n,t,f,e),e=f;else this.drawReplaySkipping_(n,t,i)},ol.render.webgl.CircleReplay.prototype.drawHitDetectionReplayOneByOne=function(n,t,i,r,u){var e,h,c,s,a,o,v,f,l;for(f=this.startIndices.length-2,c=this.startIndices[f+1],e=this.styleIndices_.length-1;e>=0;--e)for(s=this.styles_[e],this.setFillStyle_(n,s[0]),this.setStrokeStyle_(n,s[1],s[2]),a=this.styleIndices_[e];f>=0&&this.startIndices[f]>=a;){if(h=this.startIndices[f],o=this.startIndicesFeature[f],v=ol.getUid(o).toString(),i[v]===undefined&&o.getGeometry()&&(u===undefined||ol.extent.intersects(u,o.getGeometry().getExtent()))&&(n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),this.drawElements(n,t,h,c),l=r(o),l))return l;f--;c=h}return undefined},ol.render.webgl.CircleReplay.prototype.drawReplaySkipping_=function(n,t,i){var e,r,u,o,s,c,l,f,h;for(f=this.startIndices.length-2,u=r=this.startIndices[f+1],e=this.styleIndices_.length-1;e>=0;--e){for(o=this.styles_[e],this.setFillStyle_(n,o[0]),this.setStrokeStyle_(n,o[1],o[2]),s=this.styleIndices_[e];f>=0&&this.startIndices[f]>=s;)h=this.startIndices[f],c=this.startIndicesFeature[f],l=ol.getUid(c).toString(),i[l]&&(r!==u&&this.drawElements(n,t,r,u),u=h),f--,r=h;r!==u&&this.drawElements(n,t,r,u);r=u=s}},ol.render.webgl.CircleReplay.prototype.setFillStyle_=function(n,t){n.uniform4fv(this.defaultLocations_.u_fillColor,t)},ol.render.webgl.CircleReplay.prototype.setStrokeStyle_=function(n,t,i){n.uniform4fv(this.defaultLocations_.u_strokeColor,t);n.uniform1f(this.defaultLocations_.u_lineWidth,i)},ol.render.webgl.CircleReplay.prototype.setFillStrokeStyle=function(n,t){var i,r,f,e,u;t?(f=t.getLineDash(),this.state_.lineDash=f?f:ol.render.webgl.defaultLineDash,e=t.getLineDashOffset(),this.state_.lineDashOffset=e?e:ol.render.webgl.defaultLineDashOffset,i=t.getColor(),i=i instanceof CanvasGradient||i instanceof CanvasPattern?ol.render.webgl.defaultStrokeStyle:ol.color.asArray(i).map(function(n,t){return t!=3?n/255:n})||ol.render.webgl.defaultStrokeStyle,r=t.getWidth(),r=r!==undefined?r:ol.render.webgl.defaultLineWidth):(i=[0,0,0,0],r=0);u=n?n.getColor():[0,0,0,0];u=u instanceof CanvasGradient||u instanceof CanvasPattern?ol.render.webgl.defaultFillStyle:ol.color.asArray(u).map(function(n,t){return t!=3?n/255:n})||ol.render.webgl.defaultFillStyle;this.state_.strokeColor&&ol.array.equals(this.state_.strokeColor,i)&&this.state_.fillColor&&ol.array.equals(this.state_.fillColor,u)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=u,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([u,i,r]))},n.provide("ol.render.webgl.texturereplay.defaultshader"),n.require("ol"),n.require("ol.webgl.Fragment"),n.require("ol.webgl.Vertex"),ol.render.webgl.texturereplay.defaultshader.fragment=new ol.webgl.Fragment(ol.DEBUG_WEBGL?"precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n  vec4 texColor = texture2D(u_image, v_texCoord);\n  gl_FragColor.rgb = texColor.rgb;\n  float alpha = texColor.a * v_opacity * u_opacity;\n  if (alpha == 0.0) {\n    discard;\n  }\n  gl_FragColor.a = alpha;\n}\n":"precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"),ol.render.webgl.texturereplay.defaultshader.vertex=new ol.webgl.Vertex(ol.DEBUG_WEBGL?"varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n  mat4 offsetMatrix = u_offsetScaleMatrix;\n  if (a_rotateWithView == 1.0) {\n    offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n  }\n  vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n  gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n  v_texCoord = a_texCoord;\n  v_opacity = a_opacity;\n}\n\n\n":"varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.0,0.0);gl_Position=h*vec4(c,0.0,1.0)+offsets;a=d;b=f;}"),n.provide("ol.render.webgl.texturereplay.defaultshader.Locations"),n.require("ol"),ol.render.webgl.texturereplay.defaultshader.Locations=function(n,t){this.u_projectionMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_projectionMatrix":"h");this.u_offsetScaleMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetScaleMatrix":"i");this.u_offsetRotateMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetRotateMatrix":"j");this.u_opacity=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_opacity":"k");this.u_image=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_image":"l");this.a_position=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_position":"c");this.a_texCoord=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_texCoord":"d");this.a_offsets=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_offsets":"e");this.a_opacity=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_opacity":"f");this.a_rotateWithView=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_rotateWithView":"g")},n.provide("ol.webgl.ContextEventType"),ol.webgl.ContextEventType={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"},n.provide("ol.webgl.Context"),n.require("ol"),n.require("ol.Disposable"),n.require("ol.array"),n.require("ol.events"),n.require("ol.obj"),n.require("ol.webgl"),n.require("ol.webgl.ContextEventType"),ol.webgl.Context=function(n,t){this.canvas_=n;this.gl_=t;this.bufferCache_={};this.shaderCache_={};this.programCache_={};this.currentProgram_=null;this.hitDetectionFramebuffer_=null;this.hitDetectionTexture_=null;this.hitDetectionRenderbuffer_=null;this.hasOESElementIndexUint=ol.array.includes(ol.WEBGL_EXTENSIONS,"OES_element_index_uint");this.hasOESElementIndexUint&&t.getExtension("OES_element_index_uint");ol.events.listen(this.canvas_,ol.webgl.ContextEventType.LOST,this.handleWebGLContextLost,this);ol.events.listen(this.canvas_,ol.webgl.ContextEventType.RESTORED,this.handleWebGLContextRestored,this)},ol.inherits(ol.webgl.Context,ol.Disposable),ol.webgl.Context.prototype.bindBuffer=function(n,t){var i=this.getGL(),r=t.getArray(),u=String(ol.getUid(t)),o,f,e;u in this.bufferCache_?(o=this.bufferCache_[u],i.bindBuffer(n,o.buffer)):(f=i.createBuffer(),i.bindBuffer(n,f),n==ol.webgl.ARRAY_BUFFER?e=new Float32Array(r):n==ol.webgl.ELEMENT_ARRAY_BUFFER&&(e=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(n,e,t.getUsage()),this.bufferCache_[u]={buf:t,buffer:f})},ol.webgl.Context.prototype.deleteBuffer=function(n){var t=this.getGL(),i=String(ol.getUid(n)),r=this.bufferCache_[i];t.isContextLost()||t.deleteBuffer(r.buffer);delete this.bufferCache_[i]},ol.webgl.Context.prototype.disposeInternal=function(){var n,t;if(ol.events.unlistenAll(this.canvas_),n=this.getGL(),!n.isContextLost()){for(t in this.bufferCache_)n.deleteBuffer(this.bufferCache_[t].buffer);for(t in this.programCache_)n.deleteProgram(this.programCache_[t]);for(t in this.shaderCache_)n.deleteShader(this.shaderCache_[t]);n.deleteFramebuffer(this.hitDetectionFramebuffer_);n.deleteRenderbuffer(this.hitDetectionRenderbuffer_);n.deleteTexture(this.hitDetectionTexture_)}},ol.webgl.Context.prototype.getCanvas=function(){return this.canvas_},ol.webgl.Context.prototype.getGL=function(){return this.gl_},ol.webgl.Context.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},ol.webgl.Context.prototype.getShader=function(n){var r=String(ol.getUid(n)),i,t;return r in this.shaderCache_?this.shaderCache_[r]:(i=this.getGL(),t=i.createShader(n.getType()),i.shaderSource(t,n.getSource()),i.compileShader(t),this.shaderCache_[r]=t,t)},ol.webgl.Context.prototype.getProgram=function(n,t){var u=ol.getUid(n)+"/"+ol.getUid(t),r,i;return u in this.programCache_?this.programCache_[u]:(r=this.getGL(),i=r.createProgram(),r.attachShader(i,this.getShader(n)),r.attachShader(i,this.getShader(t)),r.linkProgram(i),this.programCache_[u]=i,i)},ol.webgl.Context.prototype.handleWebGLContextLost=function(){ol.obj.clear(this.bufferCache_);ol.obj.clear(this.shaderCache_);ol.obj.clear(this.programCache_);this.currentProgram_=null;this.hitDetectionFramebuffer_=null;this.hitDetectionTexture_=null;this.hitDetectionRenderbuffer_=null},ol.webgl.Context.prototype.handleWebGLContextRestored=function(){},ol.webgl.Context.prototype.initHitDetectionFramebuffer_=function(){var n=this.gl_,r=n.createFramebuffer(),i,t;n.bindFramebuffer(n.FRAMEBUFFER,r);i=ol.webgl.Context.createEmptyTexture(n,1,1);t=n.createRenderbuffer();n.bindRenderbuffer(n.RENDERBUFFER,t);n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,1,1);n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,i,0);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t);n.bindTexture(n.TEXTURE_2D,null);n.bindRenderbuffer(n.RENDERBUFFER,null);n.bindFramebuffer(n.FRAMEBUFFER,null);this.hitDetectionFramebuffer_=r;this.hitDetectionTexture_=i;this.hitDetectionRenderbuffer_=t},ol.webgl.Context.prototype.useProgram=function(n){if(n==this.currentProgram_)return!1;var t=this.getGL();return t.useProgram(n),this.currentProgram_=n,!0},ol.webgl.Context.createTexture_=function(n,t,i){var r=n.createTexture();return n.bindTexture(n.TEXTURE_2D,r),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),t!==undefined&&n.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_WRAP_S,t),i!==undefined&&n.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_WRAP_T,i),r},ol.webgl.Context.createEmptyTexture=function(n,t,i,r,u){var f=ol.webgl.Context.createTexture_(n,r,u);return n.texImage2D(n.TEXTURE_2D,0,n.RGBA,t,i,0,n.RGBA,n.UNSIGNED_BYTE,null),f},ol.webgl.Context.createTexture=function(n,t,i,r){var u=ol.webgl.Context.createTexture_(n,i,r);return n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,t),u},n.provide("ol.render.webgl.TextureReplay"),n.require("ol"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.render.webgl.texturereplay.defaultshader"),n.require("ol.render.webgl.texturereplay.defaultshader.Locations"),n.require("ol.render.webgl.Replay"),n.require("ol.webgl"),n.require("ol.webgl.Context"),ol.render.webgl.TextureReplay=function(n,t){ol.render.webgl.Replay.call(this,n,t);this.anchorX=undefined;this.anchorY=undefined;this.groupIndices=[];this.hitDetectionGroupIndices=[];this.height=undefined;this.imageHeight=undefined;this.imageWidth=undefined;this.defaultLocations=null;this.opacity=undefined;this.originX=undefined;this.originY=undefined;this.rotateWithView=undefined;this.rotation=undefined;this.scale=undefined;this.width=undefined},ol.inherits(ol.render.webgl.TextureReplay,ol.render.webgl.Replay),ol.render.webgl.TextureReplay.prototype.getDeleteResourcesFunction=function(n){var r=this.verticesBuffer,u=this.indicesBuffer,t=this.getTextures(!0),i=n.getGL();return function(){if(!i.isContextLost())for(var f=0,e=t.length;f<e;++f)i.deleteTexture(t[f]);n.deleteBuffer(r);n.deleteBuffer(u)}},ol.render.webgl.TextureReplay.prototype.drawCoordinates=function(n,t,i,r){for(var p=this.anchorX,w=this.anchorY,b=this.height,k=this.imageHeight,d=this.imageWidth,g=this.opacity,nt=this.originX,tt=this.originY,it=this.rotateWithView?1:0,ut=-this.rotation,o=this.scale,rt=this.width,s=Math.cos(ut),h=Math.sin(ut),l=this.indices.length,u=this.vertices.length,c,f,e,v,y,a=t;a<i;a+=r)v=n[a]-this.origin[0],y=n[a+1]-this.origin[1],c=u/8,f=-o*p,e=-o*(b-w),this.vertices[u++]=v,this.vertices[u++]=y,this.vertices[u++]=f*s-e*h,this.vertices[u++]=f*h+e*s,this.vertices[u++]=nt/d,this.vertices[u++]=(tt+b)/k,this.vertices[u++]=g,this.vertices[u++]=it,f=o*(rt-p),e=-o*(b-w),this.vertices[u++]=v,this.vertices[u++]=y,this.vertices[u++]=f*s-e*h,this.vertices[u++]=f*h+e*s,this.vertices[u++]=(nt+rt)/d,this.vertices[u++]=(tt+b)/k,this.vertices[u++]=g,this.vertices[u++]=it,f=o*(rt-p),e=o*w,this.vertices[u++]=v,this.vertices[u++]=y,this.vertices[u++]=f*s-e*h,this.vertices[u++]=f*h+e*s,this.vertices[u++]=(nt+rt)/d,this.vertices[u++]=tt/k,this.vertices[u++]=g,this.vertices[u++]=it,f=-o*p,e=o*w,this.vertices[u++]=v,this.vertices[u++]=y,this.vertices[u++]=f*s-e*h,this.vertices[u++]=f*h+e*s,this.vertices[u++]=nt/d,this.vertices[u++]=tt/k,this.vertices[u++]=g,this.vertices[u++]=it,this.indices[l++]=c,this.indices[l++]=c+1,this.indices[l++]=c+2,this.indices[l++]=c,this.indices[l++]=c+2,this.indices[l++]=c+3;return u},ol.render.webgl.TextureReplay.prototype.createTextures=function(n,t,i,r){for(var f,o,e,s=t.length,u=0;u<s;++u)o=t[u],e=ol.getUid(o).toString(),e in i?f=i[e]:(f=ol.webgl.Context.createTexture(r,o,ol.webgl.CLAMP_TO_EDGE,ol.webgl.CLAMP_TO_EDGE),i[e]=f),n[u]=f},ol.render.webgl.TextureReplay.prototype.setUpProgram=function(n,t){var u=ol.render.webgl.texturereplay.defaultshader.fragment,f=ol.render.webgl.texturereplay.defaultshader.vertex,r=t.getProgram(u,f),i;return this.defaultLocations?i=this.defaultLocations:(i=new ol.render.webgl.texturereplay.defaultshader.Locations(n,r),this.defaultLocations=i),t.useProgram(r),n.enableVertexAttribArray(i.a_position),n.vertexAttribPointer(i.a_position,2,ol.webgl.FLOAT,!1,32,0),n.enableVertexAttribArray(i.a_offsets),n.vertexAttribPointer(i.a_offsets,2,ol.webgl.FLOAT,!1,32,8),n.enableVertexAttribArray(i.a_texCoord),n.vertexAttribPointer(i.a_texCoord,2,ol.webgl.FLOAT,!1,32,16),n.enableVertexAttribArray(i.a_opacity),n.vertexAttribPointer(i.a_opacity,1,ol.webgl.FLOAT,!1,32,24),n.enableVertexAttribArray(i.a_rotateWithView),n.vertexAttribPointer(i.a_rotateWithView,1,ol.webgl.FLOAT,!1,32,28),i},ol.render.webgl.TextureReplay.prototype.shutDownProgram=function(n,t){n.disableVertexAttribArray(t.a_position);n.disableVertexAttribArray(t.a_offsets);n.disableVertexAttribArray(t.a_texCoord);n.disableVertexAttribArray(t.a_opacity);n.disableVertexAttribArray(t.a_rotateWithView)},ol.render.webgl.TextureReplay.prototype.drawReplay=function(n,t,i,r){var f=r?this.getHitDetectionTextures():this.getTextures(),s=r?this.hitDetectionGroupIndices:this.groupIndices,u,h,e,o;if(ol.obj.isEmpty(i))for(u=0,h=f.length,e=0;u<h;++u)n.bindTexture(ol.webgl.TEXTURE_2D,f[u]),o=s[u],this.drawElements(n,t,e,o),e=o;else this.drawReplaySkipping(n,t,i,f,s)},ol.render.webgl.TextureReplay.prototype.drawReplaySkipping=function(n,t,i,r,u){for(var f=0,a,v,e=0,c=r.length;e<c;++e){n.bindTexture(ol.webgl.TEXTURE_2D,r[e]);for(var l=e>0?u[e-1]:0,h=u[e],o=l,s=l;f<this.startIndices.length&&this.startIndices[f]<=h;)a=this.startIndicesFeature[f],v=ol.getUid(a).toString(),i[v]!==undefined?(o!==s&&this.drawElements(n,t,o,s),o=f===this.startIndices.length-1?h:this.startIndices[f+1],s=o):s=f===this.startIndices.length-1?h:this.startIndices[f+1],f++;o!==s&&this.drawElements(n,t,o,s)}},ol.render.webgl.TextureReplay.prototype.drawHitDetectionReplayOneByOne=function(n,t,i,r,u){for(var l,s,h,e,a,o=this.startIndices.length-1,v=this.getHitDetectionTextures(),c,f=v.length-1;f>=0;--f)for(n.bindTexture(ol.webgl.TEXTURE_2D,v[f]),l=f>0?this.hitDetectionGroupIndices[f-1]:0,h=this.hitDetectionGroupIndices[f];o>=0&&this.startIndices[o]>=l;){if(s=this.startIndices[o],e=this.startIndicesFeature[o],a=ol.getUid(e).toString(),i[a]===undefined&&e.getGeometry()&&(u===undefined||ol.extent.intersects(u,e.getGeometry().getExtent()))&&(n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),this.drawElements(n,t,s,h),c=r(e),c))return c;h=s;o--}return undefined},ol.render.webgl.TextureReplay.prototype.finish=function(){this.anchorX=undefined;this.anchorY=undefined;this.height=undefined;this.imageHeight=undefined;this.imageWidth=undefined;this.indices=null;this.opacity=undefined;this.originX=undefined;this.originY=undefined;this.rotateWithView=undefined;this.rotation=undefined;this.scale=undefined;this.vertices=null;this.width=undefined},ol.render.webgl.TextureReplay.prototype.getTextures=function(){},ol.render.webgl.TextureReplay.prototype.getHitDetectionTextures=function(){},n.provide("ol.render.webgl.ImageReplay"),n.require("ol"),n.require("ol.render.webgl.TextureReplay"),n.require("ol.webgl.Buffer"),ol.render.webgl.ImageReplay=function(n,t){ol.render.webgl.TextureReplay.call(this,n,t);this.images_=[];this.hitDetectionImages_=[];this.textures_=[];this.hitDetectionTextures_=[]},ol.inherits(ol.render.webgl.ImageReplay,ol.render.webgl.TextureReplay),ol.render.webgl.ImageReplay.prototype.drawMultiPoint=function(n,t){this.startIndices.push(this.indices.length);this.startIndicesFeature.push(t);var i=n.getFlatCoordinates(),r=n.getStride();this.drawCoordinates(i,0,i.length,r)},ol.render.webgl.ImageReplay.prototype.drawPoint=function(n,t){this.startIndices.push(this.indices.length);this.startIndicesFeature.push(t);var i=n.getFlatCoordinates(),r=n.getStride();this.drawCoordinates(i,0,i.length,r)},ol.render.webgl.ImageReplay.prototype.finish=function(n){var i=n.getGL(),r,t;this.groupIndices.push(this.indices.length);this.hitDetectionGroupIndices.push(this.indices.length);this.verticesBuffer=new ol.webgl.Buffer(this.vertices);r=this.indices;this.indicesBuffer=new ol.webgl.Buffer(r);t={};this.createTextures(this.textures_,this.images_,t,i);this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,t,i);this.images_=null;this.hitDetectionImages_=null;ol.render.webgl.TextureReplay.prototype.finish.call(this,n)},ol.render.webgl.ImageReplay.prototype.setImageStyle=function(n){var u=n.getAnchor(),i=n.getImage(1),f=n.getImageSize(),r=n.getHitDetectionImage(1),s=n.getOpacity(),e=n.getOrigin(),h=n.getRotateWithView(),c=n.getRotation(),o=n.getSize(),l=n.getScale(),t;this.images_.length===0?this.images_.push(i):(t=this.images_[this.images_.length-1],ol.getUid(t)!=ol.getUid(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)));this.hitDetectionImages_.length===0?this.hitDetectionImages_.push(r):(t=this.hitDetectionImages_[this.hitDetectionImages_.length-1],ol.getUid(t)!=ol.getUid(r)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(r)));this.anchorX=u[0];this.anchorY=u[1];this.height=o[1];this.imageHeight=f[1];this.imageWidth=f[0];this.opacity=s;this.originX=e[0];this.originY=e[1];this.rotation=c;this.rotateWithView=h;this.scale=l;this.width=o[0]},ol.render.webgl.ImageReplay.prototype.getTextures=function(n){return n?this.textures_.concat(this.hitDetectionTextures_):this.textures_},ol.render.webgl.ImageReplay.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},n.provide("ol.render.webgl.linestringreplay.defaultshader"),n.require("ol"),n.require("ol.webgl.Fragment"),n.require("ol.webgl.Vertex"),ol.render.webgl.linestringreplay.defaultshader.fragment=new ol.webgl.Fragment(ol.DEBUG_WEBGL?"precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n  if (v_round > 0.0) {\n    vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n        (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n    if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n      discard;\n    }\n  }\n  gl_FragColor = u_color;\n  float alpha = u_color.a * u_opacity;\n  if (alpha == 0.0) {\n    discard;\n  }\n  gl_FragColor.a = alpha;\n}\n":"precision mediump float;varying float a;varying vec2 aVertex;varying float c;uniform float m;uniform vec4 n;uniform vec2 o;uniform float p;void main(void){if(a>0.0){vec2 windowCoords=vec2((aVertex.x+1.0)/2.0*o.x*p,(aVertex.y+1.0)/2.0*o.y*p);if(length(windowCoords-gl_FragCoord.xy)>c*p){discard;}} gl_FragColor=n;float alpha=n.a*m;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"),ol.render.webgl.linestringreplay.defaultshader.vertex=new ol.webgl.Vertex(ol.DEBUG_WEBGL?"varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n  float epsilon = 0.000000000001;\n  return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n  vec2 dirVect = nextP - a_position;\n  vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n  offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n  float halfWidth = u_lineWidth / 2.0;\n  vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n  vec2 normal = vec2(-tangent.y, tangent.x);\n  vec2 dirVect = a_nextPos - a_position;\n  vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n  float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n  offset = normal * direction * miterLength;\n  round = 0.0;\n  if (isRound) {\n    round = 1.0;\n  } else if (miterLength > u_miterLimit + u_lineWidth) {\n    offset = halfWidth * tmpNormal * direction;\n  }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n  bool degenerate = false;\n  vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n  vec2 normal = vec2(-tangent.y, tangent.x);\n  vec2 dirVect = a_lastPos - a_position;\n  vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n  vec2 longOffset, shortOffset, longVertex;\n  vec4 shortProjVertex;\n  float halfWidth = u_lineWidth / 2.0;\n  if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n    longOffset = tmpNormal * direction * halfWidth;\n    shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n    longVertex = a_nextPos;\n    shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n  } else {\n    shortOffset = tmpNormal * direction * halfWidth;\n    longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n    longVertex = a_lastPos;\n    shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n  }\n  //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n  vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n  vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n  vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n  vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n  float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n  float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n  float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n  float epsilon = 0.000000000001;\n  if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n    shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n    shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n    offset = shortProjVertex.xy;\n    degenerate = true;\n  } else {\n    float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n    offset = normal * direction * miterLength;\n  }\n  return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n    in float turnDir, in float direction) {\n  round = 0.0;\n  vec2 dirVect = a_position - nextP;\n  vec2 firstNormal = normalize(dirVect);\n  vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n  vec2 hypotenuse = normalize(firstNormal - secondNormal);\n  vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n  float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n  offset = normal * length;\n  if (isRound) {\n    round = 1.0;\n  }\n}\n\nvoid main(void) {\n  bool degenerate = false;\n  float direction = float(sign(a_direction));\n  mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n  vec2 offset;\n  vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n  bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n  v_round = 0.0;\n  v_halfWidth = u_lineWidth / 2.0;\n  v_roundVertex = projPos.xy;\n\n  if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n    alongNormal(offset, a_nextPos, 1.0, direction);\n  } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n    alongNormal(offset, a_lastPos, -1.0, direction);\n  } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n    miterUp(offset, v_round, round, direction);\n  } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n    degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n  } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n    squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n  } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n    squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n  }\n  if (!degenerate) {\n    vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n    gl_Position = projPos + offsets;\n  } else {\n    gl_Position = vec4(offset, 0.0, 1.0);\n  }\n}\n\n\n":"varying float a;varying vec2 aVertex;varying float c;attribute vec2 d;attribute vec2 e;attribute vec2 f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;uniform float k;uniform float l;bool nearlyEquals(in float value,in float ref){float epsilon=0.000000000001;return value>=ref-epsilon&&value<=ref+epsilon;}void alongNormal(out vec2 offset,in vec2 nextP,in float turnDir,in float direction){vec2 dirVect=nextP-e;vec2 normal=normalize(vec2(-turnDir*dirVect.y,turnDir*dirVect.x));offset=k/2.0*normal*direction;}void miterUp(out vec2 offset,out float round,in bool isRound,in float direction){float halfWidth=k/2.0;vec2 tangent=normalize(normalize(f-e)+normalize(e-d));vec2 normal=vec2(-tangent.y,tangent.x);vec2 dirVect=f-e;vec2 tmpNormal=normalize(vec2(-dirVect.y,dirVect.x));float miterLength=abs(halfWidth/dot(normal,tmpNormal));offset=normal*direction*miterLength;round=0.0;if(isRound){round=1.0;}else if(miterLength>l+k){offset=halfWidth*tmpNormal*direction;}} bool miterDown(out vec2 offset,in vec4 projPos,in mat4 offsetMatrix,in float direction){bool degenerate=false;vec2 tangent=normalize(normalize(f-e)+normalize(e-d));vec2 normal=vec2(-tangent.y,tangent.x);vec2 dirVect=d-e;vec2 tmpNormal=normalize(vec2(-dirVect.y,dirVect.x));vec2 longOffset,shortOffset,longVertex;vec4 shortProjVertex;float halfWidth=k/2.0;if(length(f-e)>length(d-e)){longOffset=tmpNormal*direction*halfWidth;shortOffset=normalize(vec2(dirVect.y,-dirVect.x))*direction*halfWidth;longVertex=f;shortProjVertex=h*vec4(d,0.0,1.0);}else{shortOffset=tmpNormal*direction*halfWidth;longOffset=normalize(vec2(dirVect.y,-dirVect.x))*direction*halfWidth;longVertex=d;shortProjVertex=h*vec4(f,0.0,1.0);}vec4 p1=h*vec4(longVertex,0.0,1.0)+offsetMatrix*vec4(longOffset,0.0,0.0);vec4 p2=projPos+offsetMatrix*vec4(longOffset,0.0,0.0);vec4 p3=shortProjVertex+offsetMatrix*vec4(-shortOffset,0.0,0.0);vec4 p4=shortProjVertex+offsetMatrix*vec4(shortOffset,0.0,0.0);float denom=(p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y);float firstU=((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x))/denom;float secondU=((p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x))/denom;float epsilon=0.000000000001;if(firstU>epsilon&&firstU<1.0-epsilon&&secondU>epsilon&&secondU<1.0-epsilon){shortProjVertex.x=p1.x+firstU*(p2.x-p1.x);shortProjVertex.y=p1.y+firstU*(p2.y-p1.y);offset=shortProjVertex.xy;degenerate=true;}else{float miterLength=abs(halfWidth/dot(normal,tmpNormal));offset=normal*direction*miterLength;}return degenerate;}void squareCap(out vec2 offset,out float round,in bool isRound,in vec2 nextP,in float turnDir,in float direction){round=0.0;vec2 dirVect=e-nextP;vec2 firstNormal=normalize(dirVect);vec2 secondNormal=vec2(turnDir*firstNormal.y*direction,-turnDir*firstNormal.x*direction);vec2 hypotenuse=normalize(firstNormal-secondNormal);vec2 normal=vec2(turnDir*hypotenuse.y*direction,-turnDir*hypotenuse.x*direction);float length=sqrt(c*c*2.0);offset=normal*length;if(isRound){round=1.0;}} void main(void){bool degenerate=false;float direction=float(sign(g));mat4 offsetMatrix=i*j;vec2 offset;vec4 projPos=h*vec4(e,0.0,1.0);bool round=nearlyEquals(mod(g,2.0),0.0);a=0.0;c=k/2.0;aVertex=projPos.xy;if(nearlyEquals(mod(g,3.0),0.0)||nearlyEquals(mod(g,17.0),0.0)){alongNormal(offset,f,1.0,direction);}else if(nearlyEquals(mod(g,5.0),0.0)||nearlyEquals(mod(g,13.0),0.0)){alongNormal(offset,d,-1.0,direction);}else if(nearlyEquals(mod(g,23.0),0.0)){miterUp(offset,a,round,direction);}else if(nearlyEquals(mod(g,19.0),0.0)){degenerate=miterDown(offset,projPos,offsetMatrix,direction);}else if(nearlyEquals(mod(g,7.0),0.0)){squareCap(offset,a,round,f,1.0,direction);}else if(nearlyEquals(mod(g,11.0),0.0)){squareCap(offset,a,round,d,-1.0,direction);}if(!degenerate){vec4 offsets=offsetMatrix*vec4(offset,0.0,0.0);gl_Position=projPos+offsets;}else{gl_Position=vec4(offset,0.0,1.0);}}"),n.provide("ol.render.webgl.linestringreplay.defaultshader.Locations"),n.require("ol"),ol.render.webgl.linestringreplay.defaultshader.Locations=function(n,t){this.u_projectionMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_projectionMatrix":"h");this.u_offsetScaleMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetScaleMatrix":"i");this.u_offsetRotateMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetRotateMatrix":"j");this.u_lineWidth=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_lineWidth":"k");this.u_miterLimit=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_miterLimit":"l");this.u_opacity=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_opacity":"m");this.u_color=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_color":"n");this.u_size=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_size":"o");this.u_pixelRatio=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_pixelRatio":"p");this.a_lastPos=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_lastPos":"d");this.a_position=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_position":"e");this.a_nextPos=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_nextPos":"f");this.a_direction=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_direction":"g")},n.provide("ol.render.webgl.LineStringReplay"),n.require("ol"),n.require("ol.array"),n.require("ol.color"),n.require("ol.extent"),n.require("ol.geom.flat.orient"),n.require("ol.geom.flat.transform"),n.require("ol.geom.flat.topology"),n.require("ol.obj"),n.require("ol.render.webgl"),n.require("ol.render.webgl.Replay"),n.require("ol.render.webgl.linestringreplay.defaultshader"),n.require("ol.render.webgl.linestringreplay.defaultshader.Locations"),n.require("ol.webgl"),n.require("ol.webgl.Buffer"),ol.render.webgl.LineStringReplay=function(n,t){ol.render.webgl.Replay.call(this,n,t);this.defaultLocations_=null;this.styles_=[];this.styleIndices_=[];this.state_={strokeColor:null,lineCap:undefined,lineDash:null,lineDashOffset:undefined,lineJoin:undefined,lineWidth:undefined,miterLimit:undefined,changed:!1}},ol.inherits(ol.render.webgl.LineStringReplay,ol.render.webgl.Replay),ol.render.webgl.LineStringReplay.prototype.drawCoordinates_=function(n,t,i,r){for(var f=this.vertices.length,u=this.indices.length,p=this.state_.lineJoin==="bevel"?0:this.state_.lineJoin==="miter"?1:2,y=this.state_.lineCap==="butt"?0:this.state_.lineCap==="square"?1:2,w=ol.geom.flat.topology.lineStringIsClosed(n,t,i,r),k,a,e,c=u,v=1,h,o,s,l=t,b=i;l<b;l+=r){if(e=f/7,h=o,o=s||[n[l],n[l+1]],l===t){if(s=[n[l+r],n[l+r+1]],i-t==r*2&&ol.array.equals(o,s))break;if(w)h=[n[i-r*2],n[i-r*2+1]],k=s;else{y&&(f=this.addVertices_([0,0],o,s,v*ol.render.webgl.LineStringReplay.Instruction_.BEGIN_LINE_CAP*y,f),f=this.addVertices_([0,0],o,s,-v*ol.render.webgl.LineStringReplay.Instruction_.BEGIN_LINE_CAP*y,f),this.indices[u++]=e+2,this.indices[u++]=e,this.indices[u++]=e+1,this.indices[u++]=e+1,this.indices[u++]=e+3,this.indices[u++]=e+2);f=this.addVertices_([0,0],o,s,v*ol.render.webgl.LineStringReplay.Instruction_.BEGIN_LINE*(y||1),f);f=this.addVertices_([0,0],o,s,-v*ol.render.webgl.LineStringReplay.Instruction_.BEGIN_LINE*(y||1),f);c=f/7-1;continue}}else if(l===i-r)if(w){s=k;break}else{h=h||[0,0];f=this.addVertices_(h,o,[0,0],v*ol.render.webgl.LineStringReplay.Instruction_.END_LINE*(y||1),f);f=this.addVertices_(h,o,[0,0],-v*ol.render.webgl.LineStringReplay.Instruction_.END_LINE*(y||1),f);this.indices[u++]=e;this.indices[u++]=c-1;this.indices[u++]=c;this.indices[u++]=c;this.indices[u++]=e+1;this.indices[u++]=e;y&&(f=this.addVertices_(h,o,[0,0],v*ol.render.webgl.LineStringReplay.Instruction_.END_LINE_CAP*y,f),f=this.addVertices_(h,o,[0,0],-v*ol.render.webgl.LineStringReplay.Instruction_.END_LINE_CAP*y,f),this.indices[u++]=e+2,this.indices[u++]=e,this.indices[u++]=e+1,this.indices[u++]=e+1,this.indices[u++]=e+3,this.indices[u++]=e+2);break}else s=[n[l+r],n[l+r+1]];a=ol.render.webgl.triangleIsCounterClockwise(h[0],h[1],o[0],o[1],s[0],s[1])?-1:1;f=this.addVertices_(h,o,s,a*ol.render.webgl.LineStringReplay.Instruction_.BEVEL_FIRST*(p||1),f);f=this.addVertices_(h,o,s,a*ol.render.webgl.LineStringReplay.Instruction_.BEVEL_SECOND*(p||1),f);f=this.addVertices_(h,o,s,-a*ol.render.webgl.LineStringReplay.Instruction_.MITER_BOTTOM*(p||1),f);l>t&&(this.indices[u++]=e,this.indices[u++]=c-1,this.indices[u++]=c,this.indices[u++]=e+2,this.indices[u++]=e,this.indices[u++]=v*a>0?c:c-1);this.indices[u++]=e;this.indices[u++]=e+2;this.indices[u++]=e+1;c=e+2;v=a;p&&(f=this.addVertices_(h,o,s,a*ol.render.webgl.LineStringReplay.Instruction_.MITER_TOP*p,f),this.indices[u++]=e+1,this.indices[u++]=e+3,this.indices[u++]=e)}w&&(e=e||f/7,a=ol.geom.flat.orient.linearRingIsClockwise([h[0],h[1],o[0],o[1],s[0],s[1]],0,6,2)?1:-1,f=this.addVertices_(h,o,s,a*ol.render.webgl.LineStringReplay.Instruction_.BEVEL_FIRST*(p||1),f),f=this.addVertices_(h,o,s,-a*ol.render.webgl.LineStringReplay.Instruction_.MITER_BOTTOM*(p||1),f),this.indices[u++]=e,this.indices[u++]=c-1,this.indices[u++]=c,this.indices[u++]=e+1,this.indices[u++]=e,this.indices[u++]=v*a>0?c:c-1)},ol.render.webgl.LineStringReplay.prototype.addVertices_=function(n,t,i,r,u){return this.vertices[u++]=n[0],this.vertices[u++]=n[1],this.vertices[u++]=t[0],this.vertices[u++]=t[1],this.vertices[u++]=i[0],this.vertices[u++]=i[1],this.vertices[u++]=r,u},ol.render.webgl.LineStringReplay.prototype.isValid_=function(n,t,i,r){var u=i-t,f,e;return u<r*2?!1:u===r*2?(f=[n[t],n[t+1]],e=[n[t+r],n[t+r+1]],!ol.array.equals(f,e)):!0},ol.render.webgl.LineStringReplay.prototype.drawLineString=function(n,t){var i=n.getFlatCoordinates(),r=n.getStride();this.isValid_(i,0,i.length,r)&&(i=ol.geom.flat.transform.translate(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(t),this.drawCoordinates_(i,0,i.length,r))},ol.render.webgl.LineStringReplay.prototype.drawMultiLineString=function(n,t){var f=this.indices.length,i=n.getEnds(),e,u,r,s,o;if(i.unshift(0),e=n.getFlatCoordinates(),u=n.getStride(),i.length>1)for(r=1,s=i.length;r<s;++r)this.isValid_(e,i[r-1],i[r],u)&&(o=ol.geom.flat.transform.translate(e,i[r-1],i[r],u,-this.origin[0],-this.origin[1]),this.drawCoordinates_(o,0,o.length,u));this.indices.length>f&&(this.startIndices.push(f),this.startIndicesFeature.push(t),this.state_.changed&&(this.styleIndices_.push(f),this.state_.changed=!1))},ol.render.webgl.LineStringReplay.prototype.drawPolygonCoordinates=function(n,t,i){if(ol.geom.flat.topology.lineStringIsClosed(n,0,n.length,i)||(n.push(n[0]),n.push(n[1])),this.drawCoordinates_(n,0,n.length,i),t.length)for(var r=0,u=t.length;r<u;++r)ol.geom.flat.topology.lineStringIsClosed(t[r],0,t[r].length,i)||(t[r].push(t[r][0]),t[r].push(t[r][1])),this.drawCoordinates_(t[r],0,t[r].length,i)},ol.render.webgl.LineStringReplay.prototype.setPolygonStyle=function(n,t){var i=t===undefined?this.indices.length:t;this.startIndices.push(i);this.startIndicesFeature.push(n);this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1)},ol.render.webgl.LineStringReplay.prototype.getCurrentIndex=function(){return this.indices.length},ol.render.webgl.LineStringReplay.prototype.finish=function(){this.verticesBuffer=new ol.webgl.Buffer(this.vertices);this.indicesBuffer=new ol.webgl.Buffer(this.indices);this.startIndices.push(this.indices.length);this.styleIndices_.length===0&&this.styles_.length>0&&(this.styles_=[]);this.vertices=null;this.indices=null},ol.render.webgl.LineStringReplay.prototype.getDeleteResourcesFunction=function(n){var t=this.verticesBuffer,i=this.indicesBuffer;return function(){n.deleteBuffer(t);n.deleteBuffer(i)}},ol.render.webgl.LineStringReplay.prototype.setUpProgram=function(n,t,i,r){var e,o,f,u;return e=ol.render.webgl.linestringreplay.defaultshader.fragment,o=ol.render.webgl.linestringreplay.defaultshader.vertex,f=t.getProgram(e,o),this.defaultLocations_?u=this.defaultLocations_:(u=new ol.render.webgl.linestringreplay.defaultshader.Locations(n,f),this.defaultLocations_=u),t.useProgram(f),n.enableVertexAttribArray(u.a_lastPos),n.vertexAttribPointer(u.a_lastPos,2,ol.webgl.FLOAT,!1,28,0),n.enableVertexAttribArray(u.a_position),n.vertexAttribPointer(u.a_position,2,ol.webgl.FLOAT,!1,28,8),n.enableVertexAttribArray(u.a_nextPos),n.vertexAttribPointer(u.a_nextPos,2,ol.webgl.FLOAT,!1,28,16),n.enableVertexAttribArray(u.a_direction),n.vertexAttribPointer(u.a_direction,1,ol.webgl.FLOAT,!1,28,24),n.uniform2fv(u.u_size,i),n.uniform1f(u.u_pixelRatio,r),u},ol.render.webgl.LineStringReplay.prototype.shutDownProgram=function(n,t){n.disableVertexAttribArray(t.a_lastPos);n.disableVertexAttribArray(t.a_position);n.disableVertexAttribArray(t.a_nextPos);n.disableVertexAttribArray(t.a_direction)},ol.render.webgl.LineStringReplay.prototype.drawReplay=function(n,t,i,r){var s=n.getParameter(n.DEPTH_FUNC),h=n.getParameter(n.DEPTH_WRITEMASK),u,e,o,f;if(r||(n.enable(n.DEPTH_TEST),n.depthMask(!0),n.depthFunc(n.NOTEQUAL)),ol.obj.isEmpty(i))for(o=this.startIndices[this.startIndices.length-1],u=this.styleIndices_.length-1;u>=0;--u)e=this.styleIndices_[u],f=this.styles_[u],this.setStrokeStyle_(n,f[0],f[1],f[2]),this.drawElements(n,t,e,o),n.clear(n.DEPTH_BUFFER_BIT),o=e;else this.drawReplaySkipping_(n,t,i);r||(n.disable(n.DEPTH_TEST),n.clear(n.DEPTH_BUFFER_BIT),n.depthMask(h),n.depthFunc(s))},ol.render.webgl.LineStringReplay.prototype.drawReplaySkipping_=function(n,t,i){var e,r,u,o,s,c,l,f,h;for(f=this.startIndices.length-2,u=r=this.startIndices[f+1],e=this.styleIndices_.length-1;e>=0;--e){for(o=this.styles_[e],this.setStrokeStyle_(n,o[0],o[1],o[2]),s=this.styleIndices_[e];f>=0&&this.startIndices[f]>=s;)h=this.startIndices[f],c=this.startIndicesFeature[f],l=ol.getUid(c).toString(),i[l]&&(r!==u&&(this.drawElements(n,t,r,u),n.clear(n.DEPTH_BUFFER_BIT)),u=h),f--,r=h;r!==u&&(this.drawElements(n,t,r,u),n.clear(n.DEPTH_BUFFER_BIT));r=u=s}},ol.render.webgl.LineStringReplay.prototype.drawHitDetectionReplayOneByOne=function(n,t,i,r,u){var e,h,c,s,a,o,v,f,l;for(f=this.startIndices.length-2,c=this.startIndices[f+1],e=this.styleIndices_.length-1;e>=0;--e)for(s=this.styles_[e],this.setStrokeStyle_(n,s[0],s[1],s[2]),a=this.styleIndices_[e];f>=0&&this.startIndices[f]>=a;){if(h=this.startIndices[f],o=this.startIndicesFeature[f],v=ol.getUid(o).toString(),i[v]===undefined&&o.getGeometry()&&(u===undefined||ol.extent.intersects(u,o.getGeometry().getExtent()))&&(n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),this.drawElements(n,t,h,c),l=r(o),l))return l;f--;c=h}return undefined},ol.render.webgl.LineStringReplay.prototype.setStrokeStyle_=function(n,t,i,r){n.uniform4fv(this.defaultLocations_.u_color,t);n.uniform1f(this.defaultLocations_.u_lineWidth,i);n.uniform1f(this.defaultLocations_.u_miterLimit,r)},ol.render.webgl.LineStringReplay.prototype.setFillStrokeStyle=function(n,t){var s=t.getLineCap(),f,e,o,i,r,u;this.state_.lineCap=s!==undefined?s:ol.render.webgl.defaultLineCap;f=t.getLineDash();this.state_.lineDash=f?f:ol.render.webgl.defaultLineDash;e=t.getLineDashOffset();this.state_.lineDashOffset=e?e:ol.render.webgl.defaultLineDashOffset;o=t.getLineJoin();this.state_.lineJoin=o!==undefined?o:ol.render.webgl.defaultLineJoin;i=t.getColor();i=i instanceof CanvasGradient||i instanceof CanvasPattern?ol.render.webgl.defaultStrokeStyle:ol.color.asArray(i).map(function(n,t){return t!=3?n/255:n})||ol.render.webgl.defaultStrokeStyle;r=t.getWidth();r=r!==undefined?r:ol.render.webgl.defaultLineWidth;u=t.getMiterLimit();u=u!==undefined?u:ol.render.webgl.defaultMiterLimit;this.state_.strokeColor&&ol.array.equals(this.state_.strokeColor,i)&&this.state_.lineWidth===r&&this.state_.miterLimit===u||(this.state_.changed=!0,this.state_.strokeColor=i,this.state_.lineWidth=r,this.state_.miterLimit=u,this.styles_.push([i,r,u]))},ol.render.webgl.LineStringReplay.Instruction_={ROUND:2,BEGIN_LINE:3,END_LINE:5,BEGIN_LINE_CAP:7,END_LINE_CAP:11,BEVEL_FIRST:13,BEVEL_SECOND:17,MITER_BOTTOM:19,MITER_TOP:23},n.provide("ol.render.webgl.polygonreplay.defaultshader"),n.require("ol"),n.require("ol.webgl.Fragment"),n.require("ol.webgl.Vertex"),ol.render.webgl.polygonreplay.defaultshader.fragment=new ol.webgl.Fragment(ol.DEBUG_WEBGL?"precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n  gl_FragColor = u_color;\n  float alpha = u_color.a * u_opacity;\n  if (alpha == 0.0) {\n    discard;\n  }\n  gl_FragColor.a = alpha;\n}\n":"precision mediump float;uniform vec4 e;uniform float f;void main(void){gl_FragColor=e;float alpha=e.a*f;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"),ol.render.webgl.polygonreplay.defaultshader.vertex=new ol.webgl.Vertex(ol.DEBUG_WEBGL?"\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n  gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n":"attribute vec2 a;uniform mat4 b;uniform mat4 c;uniform mat4 d;void main(void){gl_Position=b*vec4(a,0.0,1.0);}"),n.provide("ol.render.webgl.polygonreplay.defaultshader.Locations"),n.require("ol"),ol.render.webgl.polygonreplay.defaultshader.Locations=function(n,t){this.u_projectionMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_projectionMatrix":"b");this.u_offsetScaleMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetScaleMatrix":"c");this.u_offsetRotateMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_offsetRotateMatrix":"d");this.u_color=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_color":"e");this.u_opacity=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_opacity":"f");this.a_position=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_position":"a")},n.provide("ol.structs.LinkedList"),ol.structs.LinkedList=function(n){this.first_=undefined;this.last_=undefined;this.head_=undefined;this.circular_=n===undefined?!0:n;this.length_=0},ol.structs.LinkedList.prototype.insertItem=function(n){var t={prev:undefined,next:undefined,data:n},i=this.head_,r;i?(r=i.next,t.prev=i,t.next=r,i.next=t,r&&(r.prev=t),i===this.last_&&(this.last_=t)):(this.first_=t,this.last_=t,this.circular_&&(t.next=t,t.prev=t));this.head_=t;this.length_++},ol.structs.LinkedList.prototype.removeItem=function(){var t=this.head_,i,n;t&&(i=t.next,n=t.prev,i&&(i.prev=n),n&&(n.next=i),this.head_=i||n,this.first_===this.last_?(this.head_=undefined,this.first_=undefined,this.last_=undefined):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=n?this.head_.prev:this.head_),this.length_--)},ol.structs.LinkedList.prototype.firstItem=function(){return(this.head_=this.first_,this.head_)?this.head_.data:undefined},ol.structs.LinkedList.prototype.lastItem=function(){return(this.head_=this.last_,this.head_)?this.head_.data:undefined},ol.structs.LinkedList.prototype.nextItem=function(){return this.head_&&this.head_.next?(this.head_=this.head_.next,this.head_.data):undefined},ol.structs.LinkedList.prototype.getNextItem=function(){return this.head_&&this.head_.next?this.head_.next.data:undefined},ol.structs.LinkedList.prototype.prevItem=function(){return this.head_&&this.head_.prev?(this.head_=this.head_.prev,this.head_.data):undefined},ol.structs.LinkedList.prototype.getPrevItem=function(){return this.head_&&this.head_.prev?this.head_.prev.data:undefined},ol.structs.LinkedList.prototype.getCurrItem=function(){return this.head_?this.head_.data:undefined},ol.structs.LinkedList.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},ol.structs.LinkedList.prototype.concat=function(n){if(n.head_){if(this.head_){var t=this.head_.next;this.head_.next=n.first_;n.first_.prev=this.head_;t.prev=n.last_;n.last_.next=t;this.length_+=n.length_}else this.head_=n.head_,this.first_=n.first_,this.last_=n.last_,this.length_=n.length_;n.head_=undefined;n.first_=undefined;n.last_=undefined;n.length_=0}},ol.structs.LinkedList.prototype.getLength=function(){return this.length_},n.provide("ol.render.webgl.PolygonReplay"),n.require("ol"),n.require("ol.array"),n.require("ol.color"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.geom.flat.contains"),n.require("ol.geom.flat.orient"),n.require("ol.geom.flat.transform"),n.require("ol.render.webgl.polygonreplay.defaultshader"),n.require("ol.render.webgl.polygonreplay.defaultshader.Locations"),n.require("ol.render.webgl.LineStringReplay"),n.require("ol.render.webgl.Replay"),n.require("ol.render.webgl"),n.require("ol.style.Stroke"),n.require("ol.structs.LinkedList"),n.require("ol.structs.RBush"),n.require("ol.webgl"),n.require("ol.webgl.Buffer"),ol.render.webgl.PolygonReplay=function(n,t){ol.render.webgl.Replay.call(this,n,t);this.lineStringReplay=new ol.render.webgl.LineStringReplay(n,t);this.defaultLocations_=null;this.styles_=[];this.styleIndices_=[];this.state_={fillColor:null,changed:!1}},ol.inherits(ol.render.webgl.PolygonReplay,ol.render.webgl.Replay),ol.render.webgl.PolygonReplay.prototype.drawCoordinates_=function(n,t,i){var o=new ol.structs.LinkedList,f=new ol.structs.RBush,c,r,l,e,u;if(this.processFlatCoordinates_(n,i,o,f,!0),c=this.getMaxCoords_(o),t.length){for(e=[],r=0,l=t.length;r<l;++r)u={list:new ol.structs.LinkedList,maxCoords:undefined,rtree:new ol.structs.RBush},e.push(u),this.processFlatCoordinates_(t[r],i,u.list,u.rtree,!1),this.classifyPoints_(u.list,u.rtree,!0),u.maxCoords=this.getMaxCoords_(u.list);for(e.sort(function(n,t){return t.maxCoords[0]===n.maxCoords[0]?n.maxCoords[1]-t.maxCoords[1]:t.maxCoords[0]-n.maxCoords[0]}),r=0;r<e.length;++r){var s=e[r].list,a=s.firstItem(),h=a,v;do{if(this.getIntersections_(h,f).length){v=!0;break}h=s.nextItem()}while(a!==h);v||this.bridgeHole_(s,e[r].maxCoords[0],o,c[0],f)&&(f.concat(e[r].rtree),this.classifyPoints_(o,f,!1))}}else this.classifyPoints_(o,f,!1);this.triangulate_(o,f)},ol.render.webgl.PolygonReplay.prototype.processFlatCoordinates_=function(n,t,i,r,u){var y=ol.geom.flat.orient.linearRingIsClockwise(n,0,n.length,t),o,l,a=this.vertices.length/2,s,e,f,h=[],c=[],v;if(u===y){for(s=this.createPoint_(n[0],n[1],a++),e=s,o=t,l=n.length;o<l;o+=t)f=this.createPoint_(n[o],n[o+1],a++),c.push(this.insertItem_(e,f,i)),h.push([Math.min(e.x,f.x),Math.min(e.y,f.y),Math.max(e.x,f.x),Math.max(e.y,f.y)]),e=f;c.push(this.insertItem_(f,s,i));h.push([Math.min(e.x,f.x),Math.min(e.y,f.y),Math.max(e.x,f.x),Math.max(e.y,f.y)])}else{for(v=n.length-t,s=this.createPoint_(n[v],n[v+1],a++),e=s,o=v-t,l=0;o>=l;o-=t)f=this.createPoint_(n[o],n[o+1],a++),c.push(this.insertItem_(e,f,i)),h.push([Math.min(e.x,f.x),Math.min(e.y,f.y),Math.max(e.x,f.x),Math.max(e.y,f.y)]),e=f;c.push(this.insertItem_(f,s,i));h.push([Math.min(e.x,f.x),Math.min(e.y,f.y),Math.max(e.x,f.x),Math.max(e.y,f.y)])}r.load(h,c)},ol.render.webgl.PolygonReplay.prototype.getMaxCoords_=function(n){var r=n.firstItem(),t=r,i=[t.p0.x,t.p0.y];do t=n.nextItem(),t.p0.x>i[0]&&(i=[t.p0.x,t.p0.y]);while(t!==r);return i},ol.render.webgl.PolygonReplay.prototype.classifyPoints_=function(n,t,i){var f=n.firstItem(),r=f,u=n.nextItem(),o=!1,e;do e=i?ol.render.webgl.triangleIsCounterClockwise(u.p1.x,u.p1.y,r.p1.x,r.p1.y,r.p0.x,r.p0.y):ol.render.webgl.triangleIsCounterClockwise(r.p0.x,r.p0.y,r.p1.x,r.p1.y,u.p1.x,u.p1.y),e===undefined?(this.removeItem_(r,u,n,t),o=!0,u===f&&(f=n.getNextItem()),u=r,n.prevItem()):r.p1.reflex!==e&&(r.p1.reflex=e,o=!0),r=u,u=n.nextItem();while(r!==f);return o},ol.render.webgl.PolygonReplay.prototype.bridgeHole_=function(n,t,i,r,u){for(var f=n.firstItem(),v,y,c,p,k,d;f.p1.x!==t;)f=n.nextItem();for(var e=f.p1,w={x:r,y:e.y,i:-1},l=Infinity,h,g,nt=this.getIntersections_({p0:e,p1:w},u,!0),o=0,a=nt.length;o<a;++o){var s=nt[o],b=this.calculateIntersection_(e,w,s.p0,s.p1,!0),tt=Math.abs(e.x-b[0]);tt<l&&ol.render.webgl.triangleIsCounterClockwise(e.x,e.y,s.p0.x,s.p0.y,s.p1.x,s.p1.y)!==undefined&&(l=tt,g={x:b[0],y:b[1],i:-1},f=s)}if(l===Infinity)return!1;if(h=f.p1,l>0&&(v=this.getPointsInTriangle_(e,g,f.p1,u),v.length))for(y=Infinity,o=0,a=v.length;o<a;++o)c=v[o],p=Math.atan2(e.y-c.y,w.x-c.x),(p<y||p===y&&c.x<h.x)&&(y=p,h=c);for(f=i.firstItem();f.p1.x!==h.x||f.p1.y!==h.y;)f=i.nextItem();return k={x:e.x,y:e.y,i:e.i,reflex:undefined},d={x:f.p1.x,y:f.p1.y,i:f.p1.i,reflex:undefined},n.getNextItem().p0=k,this.insertItem_(e,f.p1,n,u),this.insertItem_(d,k,n,u),f.p1=d,n.setFirstItem(),i.concat(n),!0},ol.render.webgl.PolygonReplay.prototype.triangulate_=function(n,t){for(var i=!1,r=this.isSimple_(n,t),u;n.getLength()>3;)if(r){if(!this.clipEars_(n,t,r,i)&&!this.classifyPoints_(n,t,i)&&!this.resolveSelfIntersections_(n,t,!0))break}else if(!this.clipEars_(n,t,r,i)&&!this.classifyPoints_(n,t,i)&&!this.resolveSelfIntersections_(n,t))if(r=this.isSimple_(n,t),r)i=!this.isClockwise_(n),this.classifyPoints_(n,t,i);else{this.splitPolygon_(n,t);break}n.getLength()===3&&(u=this.indices.length,this.indices[u++]=n.getPrevItem().p0.i,this.indices[u++]=n.getCurrItem().p0.i,this.indices[u++]=n.getNextItem().p0.i)},ol.render.webgl.PolygonReplay.prototype.clipEars_=function(n,t,i,r){var a=this.indices.length,c=n.firstItem(),s=n.getPrevItem(),h=c,l=n.nextItem(),o=n.getNextItem(),u,e,f,v=!1,y;do u=h.p0,e=h.p1,f=l.p1,e.reflex===!1&&(y=i?this.getPointsInTriangle_(u,e,f,t,!0).length===0:r?this.diagonalIsInside_(o.p1,f,e,u,s.p0):this.diagonalIsInside_(s.p0,u,e,f,o.p1),(i||this.getIntersections_({p0:u,p1:f},t).length===0)&&y&&(i||u.reflex===!1||f.reflex===!1||ol.geom.flat.orient.linearRingIsClockwise([s.p0.x,s.p0.y,u.x,u.y,e.x,e.y,f.x,f.y,o.p1.x,o.p1.y],0,10,2)===!r)&&(this.indices[a++]=u.i,this.indices[a++]=e.i,this.indices[a++]=f.i,this.removeItem_(h,l,n,t),l===c&&(c=o),v=!0)),s=n.getPrevItem(),h=n.getCurrItem(),l=n.nextItem(),o=n.getNextItem();while(h!==c&&n.getLength()>3);return v},ol.render.webgl.PolygonReplay.prototype.resolveSelfIntersections_=function(n,t,i){var s=n.firstItem(),e,f;n.nextItem();var r=s,u=n.nextItem(),l=!1;do{if(e=this.calculateIntersection_(r.p0,r.p1,u.p0,u.p1,i),e){var o=!1,a=this.vertices.length,c=this.indices.length,v=a/2,h=n.prevItem();if(n.removeItem(),t.remove(h),o=h===s,i?(e[0]===r.p0.x&&e[1]===r.p0.y?(n.prevItem(),f=r.p0,u.p0=f,t.remove(r),o=o||r===s):(f=u.p1,r.p1=f,t.remove(u),o=o||u===s),n.removeItem()):(f=this.createPoint_(e[0],e[1],v),r.p1=f,u.p0=f,t.update([Math.min(r.p0.x,r.p1.x),Math.min(r.p0.y,r.p1.y),Math.max(r.p0.x,r.p1.x),Math.max(r.p0.y,r.p1.y)],r),t.update([Math.min(u.p0.x,u.p1.x),Math.min(u.p0.y,u.p1.y),Math.max(u.p0.x,u.p1.x),Math.max(u.p0.y,u.p1.y)],u)),this.indices[c++]=h.p0.i,this.indices[c++]=h.p1.i,this.indices[c++]=f.i,l=!0,o)break}r=n.getPrevItem();u=n.nextItem()}while(r!==s);return l},ol.render.webgl.PolygonReplay.prototype.isSimple_=function(n,t){var r=n.firstItem(),i=r;do{if(this.getIntersections_(i,t).length)return!1;i=n.nextItem()}while(i!==r);return!0},ol.render.webgl.PolygonReplay.prototype.isClockwise_=function(n){var r=n.getLength()*2,i=new Array(r),u=n.firstItem(),t=u,f=0;do i[f++]=t.p0.x,i[f++]=t.p0.y,t=n.nextItem();while(t!==u);return ol.geom.flat.orient.linearRingIsClockwise(i,0,r,2)},ol.render.webgl.PolygonReplay.prototype.splitPolygon_=function(n,t){var h=n.firstItem(),i=h,s,f;do{if(s=this.getIntersections_(i,t),s.length){var u=s[0],l=this.vertices.length/2,c=this.calculateIntersection_(i.p0,i.p1,u.p0,u.p1),r=this.createPoint_(c[0],c[1],l),e=new ol.structs.LinkedList,o=new ol.structs.RBush;for(this.insertItem_(r,i.p1,e,o),i.p1=r,t.update([Math.min(i.p0.x,r.x),Math.min(i.p0.y,r.y),Math.max(i.p0.x,r.x),Math.max(i.p0.y,r.y)],i),f=n.nextItem();f!==u;)this.insertItem_(f.p0,f.p1,e,o),t.remove(f),n.removeItem(),f=n.getCurrItem();this.insertItem_(u.p0,r,e,o);u.p0=r;t.update([Math.min(u.p1.x,r.x),Math.min(u.p1.y,r.y),Math.max(u.p1.x,r.x),Math.max(u.p1.y,r.y)],u);this.classifyPoints_(n,t,!1);this.triangulate_(n,t);this.classifyPoints_(e,o,!1);this.triangulate_(e,o);break}i=n.nextItem()}while(i!==h)},ol.render.webgl.PolygonReplay.prototype.createPoint_=function(n,t,i){var r=this.vertices.length;return this.vertices[r++]=n,this.vertices[r++]=t,{x:n,y:t,i:i,reflex:undefined}},ol.render.webgl.PolygonReplay.prototype.insertItem_=function(n,t,i,r){var u={p0:n,p1:t};return i.insertItem(u),r&&r.insert([Math.min(n.x,t.x),Math.min(n.y,t.y),Math.max(n.x,t.x),Math.max(n.y,t.y)],u),u},ol.render.webgl.PolygonReplay.prototype.removeItem_=function(n,t,i,r){i.getCurrItem()===t&&(i.removeItem(),n.p1=t.p1,r.remove(t),r.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n))},ol.render.webgl.PolygonReplay.prototype.getPointsInTriangle_=function(n,t,i,r,u){for(var c,f,o=[],s=r.getInExtent([Math.min(n.x,t.x,i.x),Math.min(n.y,t.y,i.y),Math.max(n.x,t.x,i.x),Math.max(n.y,t.y,i.y)]),e=0,h=s.length;e<h;++e)for(c in s[e])f=s[e][c],typeof f=="object"&&(!u||f.reflex)&&(f.x!==n.x||f.y!==n.y)&&(f.x!==t.x||f.y!==t.y)&&(f.x!==i.x||f.y!==i.y)&&o.indexOf(f)===-1&&ol.geom.flat.contains.linearRingContainsXY([n.x,n.y,t.x,t.y,i.x,i.y],0,6,2,f.x,f.y)&&o.push(f);return o},ol.render.webgl.PolygonReplay.prototype.getIntersections_=function(n,t,i){for(var u=n.p0,f=n.p1,o=t.getInExtent([Math.min(u.x,f.x),Math.min(u.y,f.y),Math.max(u.x,f.x),Math.max(u.y,f.y)]),s=[],r,e=0,h=o.length;e<h;++e)r=o[e],n!==r&&(i||r.p0!==f||r.p1!==u)&&this.calculateIntersection_(u,f,r.p0,r.p1,i)&&s.push(r);return s},ol.render.webgl.PolygonReplay.prototype.calculateIntersection_=function(n,t,i,r,u){var o=(r.y-i.y)*(t.x-n.x)-(r.x-i.x)*(t.y-n.y),f,e;return o!==0&&(f=((r.x-i.x)*(n.y-i.y)-(r.y-i.y)*(n.x-i.x))/o,e=((t.x-n.x)*(n.y-i.y)-(t.y-n.y)*(n.x-i.x))/o,!u&&f>ol.render.webgl.EPSILON&&f<1-ol.render.webgl.EPSILON&&e>ol.render.webgl.EPSILON&&e<1-ol.render.webgl.EPSILON||u&&f>=0&&f<=1&&e>=0&&e<=1)?[n.x+f*(t.x-n.x),n.y+f*(t.y-n.y)]:undefined},ol.render.webgl.PolygonReplay.prototype.diagonalIsInside_=function(n,t,i,r,u){if(t.reflex===undefined||r.reflex===undefined)return!1;var f=(i.x-r.x)*(t.y-r.y)>(i.y-r.y)*(t.x-r.x),e=(u.x-r.x)*(t.y-r.y)<(u.y-r.y)*(t.x-r.x),o=(n.x-t.x)*(r.y-t.y)>(n.y-t.y)*(r.x-t.x),s=(i.x-t.x)*(r.y-t.y)<(i.y-t.y)*(r.x-t.x),h=r.reflex?e||f:e&&f,c=t.reflex?s||o:s&&o;return h&&c},ol.render.webgl.PolygonReplay.prototype.drawMultiPolygon=function(n,t){for(var h=n.getEndss(),u=n.getStride(),s=this.indices.length,c=this.lineStringReplay.getCurrentIndex(),l=n.getFlatCoordinates(),r,v,y=0,i,e,o,p,f=0,a=h.length;f<a;++f){if(i=h[f],i.length>0&&(e=ol.geom.flat.transform.translate(l,y,i[0],u,-this.origin[0],-this.origin[1]),e.length)){for(o=[],r=1,v=i.length;r<v;++r)i[r]!==i[r-1]&&(p=ol.geom.flat.transform.translate(l,i[r-1],i[r],u,-this.origin[0],-this.origin[1]),o.push(p));this.lineStringReplay.drawPolygonCoordinates(e,o,u);this.drawCoordinates_(e,o,u)}y=i[i.length-1]}this.indices.length>s&&(this.startIndices.push(s),this.startIndicesFeature.push(t),this.state_.changed&&(this.styleIndices_.push(s),this.state_.changed=!1));this.lineStringReplay.getCurrentIndex()>c&&this.lineStringReplay.setPolygonStyle(t,c)},ol.render.webgl.PolygonReplay.prototype.drawPolygon=function(n,t){var i=n.getEnds(),u=n.getStride(),o,f,e,r,s,h;if(i.length>0&&(o=n.getFlatCoordinates().map(Number),f=ol.geom.flat.transform.translate(o,0,i[0],u,-this.origin[0],-this.origin[1]),f.length)){for(e=[],r=1,s=i.length;r<s;++r)i[r]!==i[r-1]&&(h=ol.geom.flat.transform.translate(o,i[r-1],i[r],u,-this.origin[0],-this.origin[1]),e.push(h));this.startIndices.push(this.indices.length);this.startIndicesFeature.push(t);this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1);this.lineStringReplay.setPolygonStyle(t);this.lineStringReplay.drawPolygonCoordinates(f,e,u);this.drawCoordinates_(f,e,u)}},ol.render.webgl.PolygonReplay.prototype.finish=function(n){this.verticesBuffer=new ol.webgl.Buffer(this.vertices);this.indicesBuffer=new ol.webgl.Buffer(this.indices);this.startIndices.push(this.indices.length);this.lineStringReplay.finish(n);this.styleIndices_.length===0&&this.styles_.length>0&&(this.styles_=[]);this.vertices=null;this.indices=null},ol.render.webgl.PolygonReplay.prototype.getDeleteResourcesFunction=function(n){var t=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(n);return function(){n.deleteBuffer(t);n.deleteBuffer(i);r()}},ol.render.webgl.PolygonReplay.prototype.setUpProgram=function(n,t){var u,f,r,i;return u=ol.render.webgl.polygonreplay.defaultshader.fragment,f=ol.render.webgl.polygonreplay.defaultshader.vertex,r=t.getProgram(u,f),this.defaultLocations_?i=this.defaultLocations_:(i=new ol.render.webgl.polygonreplay.defaultshader.Locations(n,r),this.defaultLocations_=i),t.useProgram(r),n.enableVertexAttribArray(i.a_position),n.vertexAttribPointer(i.a_position,2,ol.webgl.FLOAT,!1,8,0),i},ol.render.webgl.PolygonReplay.prototype.shutDownProgram=function(n,t){n.disableVertexAttribArray(t.a_position)},ol.render.webgl.PolygonReplay.prototype.drawReplay=function(n,t,i,r){var s=n.getParameter(n.DEPTH_FUNC),h=n.getParameter(n.DEPTH_WRITEMASK),u,f,e,o;if(r||(n.enable(n.DEPTH_TEST),n.depthMask(!0),n.depthFunc(n.NOTEQUAL)),ol.obj.isEmpty(i))for(e=this.startIndices[this.startIndices.length-1],u=this.styleIndices_.length-1;u>=0;--u)f=this.styleIndices_[u],o=this.styles_[u],this.setFillStyle_(n,o),this.drawElements(n,t,f,e),e=f;else this.drawReplaySkipping_(n,t,i);r||(n.disable(n.DEPTH_TEST),n.clear(n.DEPTH_BUFFER_BIT),n.depthMask(h),n.depthFunc(s))},ol.render.webgl.PolygonReplay.prototype.drawHitDetectionReplayOneByOne=function(n,t,i,r,u){var e,s,h,l,a,o,v,f,c;for(f=this.startIndices.length-2,h=this.startIndices[f+1],e=this.styleIndices_.length-1;e>=0;--e)for(l=this.styles_[e],this.setFillStyle_(n,l),a=this.styleIndices_[e];f>=0&&this.startIndices[f]>=a;){if(s=this.startIndices[f],o=this.startIndicesFeature[f],v=ol.getUid(o).toString(),i[v]===undefined&&o.getGeometry()&&(u===undefined||ol.extent.intersects(u,o.getGeometry().getExtent()))&&(n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),this.drawElements(n,t,s,h),c=r(o),c))return c;f--;h=s}return undefined},ol.render.webgl.PolygonReplay.prototype.drawReplaySkipping_=function(n,t,i){var e,r,u,h,o,c,l,f,s;for(f=this.startIndices.length-2,u=r=this.startIndices[f+1],e=this.styleIndices_.length-1;e>=0;--e){for(h=this.styles_[e],this.setFillStyle_(n,h),o=this.styleIndices_[e];f>=0&&this.startIndices[f]>=o;)s=this.startIndices[f],c=this.startIndicesFeature[f],l=ol.getUid(c).toString(),i[l]&&(r!==u&&(this.drawElements(n,t,r,u),n.clear(n.DEPTH_BUFFER_BIT)),u=s),f--,r=s;r!==u&&(this.drawElements(n,t,r,u),n.clear(n.DEPTH_BUFFER_BIT));r=u=o}},ol.render.webgl.PolygonReplay.prototype.setFillStyle_=function(n,t){n.uniform4fv(this.defaultLocations_.u_color,t)},ol.render.webgl.PolygonReplay.prototype.setFillStrokeStyle=function(n,t){var i=n?n.getColor():[0,0,0,0],r;i=i instanceof CanvasGradient||i instanceof CanvasPattern?ol.render.webgl.defaultFillStyle:ol.color.asArray(i).map(function(n,t){return t!=3?n/255:n})||ol.render.webgl.defaultFillStyle;this.state_.fillColor&&ol.array.equals(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i));t?this.lineStringReplay.setFillStrokeStyle(null,t):(r=new ol.style.Stroke({color:[0,0,0,0],lineWidth:0}),this.lineStringReplay.setFillStrokeStyle(null,r))},n.provide("ol.style.Atlas"),n.require("ol.dom"),ol.style.Atlas=function(n,t){this.space_=t;this.emptyBlocks_=[{x:0,y:0,width:n,height:n}];this.entries_={};this.context_=ol.dom.createCanvasContext2D(n,n);this.canvas_=this.context_.canvas},ol.style.Atlas.prototype.get=function(n){return this.entries_[n]||null},ol.style.Atlas.prototype.add=function(n,t,i,r,u){for(var f,o,e=0,s=this.emptyBlocks_.length;e<s;++e)if(f=this.emptyBlocks_[e],f.width>=t+this.space_&&f.height>=i+this.space_)return o={offsetX:f.x+this.space_,offsetY:f.y+this.space_,image:this.canvas_},this.entries_[n]=o,r.call(u,this.context_,f.x+this.space_,f.y+this.space_),this.split_(e,f,t+this.space_,i+this.space_),o;return null},ol.style.Atlas.prototype.split_=function(n,t,i,r){var e=t.width-i,o=t.height-r,u,f;e>o?(u={x:t.x+i,y:t.y,width:t.width-i,height:t.height},f={x:t.x,y:t.y+r,width:i,height:t.height-r},this.updateBlocks_(n,u,f)):(u={x:t.x+i,y:t.y,width:t.width-i,height:r},f={x:t.x,y:t.y+r,width:t.width,height:t.height-r},this.updateBlocks_(n,u,f))},ol.style.Atlas.prototype.updateBlocks_=function(n,t,i){var r=[n,1];t.width>0&&t.height>0&&r.push(t);i.width>0&&i.height>0&&r.push(i);this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)},n.provide("ol.style.AtlasManager"),n.require("ol"),n.require("ol.style.Atlas"),ol.style.AtlasManager=function(n){var t=n||{};this.currentSize_=t.initialSize!==undefined?t.initialSize:ol.INITIAL_ATLAS_SIZE;this.maxSize_=t.maxSize!==undefined?t.maxSize:ol.MAX_ATLAS_SIZE!=-1?ol.MAX_ATLAS_SIZE:ol.WEBGL_MAX_TEXTURE_SIZE!==undefined?ol.WEBGL_MAX_TEXTURE_SIZE:2048;this.space_=t.space!==undefined?t.space:1;this.atlases_=[new ol.style.Atlas(this.currentSize_,this.space_)];this.currentHitSize_=this.currentSize_;this.hitAtlases_=[new ol.style.Atlas(this.currentHitSize_,this.space_)]},ol.style.AtlasManager.prototype.getInfo=function(n){var t=this.getInfo_(this.atlases_,n),i;return t?(i=this.getInfo_(this.hitAtlases_,n),this.mergeInfos_(t,i)):null},ol.style.AtlasManager.prototype.getInfo_=function(n,t){for(var u,r,i=0,f=n.length;i<f;++i)if(u=n[i],r=u.get(t),r)return r;return null},ol.style.AtlasManager.prototype.mergeInfos_=function(n,t){return{offsetX:n.offsetX,offsetY:n.offsetY,image:n.image,hitImage:t.image}},ol.style.AtlasManager.prototype.add=function(n,t,i,r,u,f){var e,o,s;return t+this.space_>this.maxSize_||i+this.space_>this.maxSize_?null:(e=this.add_(!1,n,t,i,r,f),!e)?null:(o=u!==undefined?u:ol.nullFunction,s=this.add_(!0,n,t,i,o,f),this.mergeInfos_(e,s))},ol.style.AtlasManager.prototype.add_=function(n,t,i,r,u,f){for(var l=n?this.hitAtlases_:this.atlases_,s,h,o,e=0,c=l.length;e<c;++e){if(s=l[e],h=s.add(t,i,r,u,f),h)return h;h||e!==c-1||(n?(o=Math.min(this.currentHitSize_*2,this.maxSize_),this.currentHitSize_=o):(o=Math.min(this.currentSize_*2,this.maxSize_),this.currentSize_=o),s=new ol.style.Atlas(o,this.space_),l.push(s),++c)}return null},n.provide("ol.render.webgl.TextReplay"),n.require("ol"),n.require("ol.colorlike"),n.require("ol.dom"),n.require("ol.geom.GeometryType"),n.require("ol.has"),n.require("ol.render.replay"),n.require("ol.render.webgl"),n.require("ol.render.webgl.TextureReplay"),n.require("ol.style.AtlasManager"),n.require("ol.webgl.Buffer"),ol.render.webgl.TextReplay=function(n,t){ol.render.webgl.TextureReplay.call(this,n,t);this.images_=[];this.textures_=[];this.measureCanvas_=ol.dom.createCanvasContext2D(0,0).canvas;this.state_={strokeColor:null,lineCap:undefined,lineDash:null,lineDashOffset:undefined,lineJoin:undefined,lineWidth:0,miterLimit:undefined,fillColor:null,font:undefined,scale:undefined};this.text_="";this.textAlign_=undefined;this.textBaseline_=undefined;this.offsetX_=undefined;this.offsetY_=undefined;this.atlases_={};this.currAtlas_=undefined;this.scale=1;this.opacity=1},ol.inherits(ol.render.webgl.TextReplay,ol.render.webgl.TextureReplay),ol.render.webgl.TextReplay.prototype.drawText=function(n,t){var e,k;if(this.text_){var i=null,h=2,a=2;switch(n.getType()){case ol.geom.GeometryType.POINT:case ol.geom.GeometryType.MULTI_POINT:i=n.getFlatCoordinates();h=i.length;a=n.getStride();break;case ol.geom.GeometryType.CIRCLE:i=n.getCenter();break;case ol.geom.GeometryType.LINE_STRING:i=n.getFlatMidpoint();break;case ol.geom.GeometryType.MULTI_LINE_STRING:i=n.getFlatMidpoints();h=i.length;break;case ol.geom.GeometryType.POLYGON:i=n.getFlatInteriorPoint();break;case ol.geom.GeometryType.MULTI_POLYGON:i=n.getFlatInteriorPoints();h=i.length}this.startIndices.push(this.indices.length);this.startIndicesFeature.push(t);for(var o=this.currAtlas_,c=this.text_.split("\n"),v=this.getTextSize_(c),r,p,l,w,u,f,d=Math.round(v[0]*this.textAlign_-this.offsetX_),g=Math.round(v[1]*this.textBaseline_-this.offsetY_),b=this.state_.lineWidth/2*this.state_.scale,s=0,y=c.length;s<y;++s)for(l=0,w=o.height*s,u=c[s].split(""),r=0,p=u.length;r<p;++r)f=o.atlas.getInfo(u[r]),f&&(e=f.image,this.anchorX=d-l,this.anchorY=g-w,this.originX=r===0?f.offsetX-b:f.offsetX,this.originY=f.offsetY,this.height=o.height,this.width=r===0||r===u.length-1?o.width[u[r]]+b:o.width[u[r]],this.imageHeight=e.height,this.imageWidth=e.width,this.images_.length===0?this.images_.push(e):(k=this.images_[this.images_.length-1],ol.getUid(k)!=ol.getUid(e)&&(this.groupIndices.push(this.indices.length),this.images_.push(e))),this.drawText_(i,0,h,a)),l+=this.width}},ol.render.webgl.TextReplay.prototype.getTextSize_=function(n){var i=this,t=this.currAtlas_,r=n.length*t.height,u=n.map(function(n){for(var f=0,r,u=0,e=n.length;u<e;++u)r=n[u],t.width[r]||i.addCharToAtlas_(r),f+=t.width[r]?t.width[r]:0;return f}).reduce(function(n,t){return Math.max(n,t)});return[u,r]},ol.render.webgl.TextReplay.prototype.drawText_=function(n,t,i,r){for(var u=t,f=i;u<f;u+=r)this.drawCoordinates(n,t,i,r)},ol.render.webgl.TextReplay.prototype.addCharToAtlas_=function(n){var r,f;if(n.length===1){var i=this.currAtlas_,t=this.state_,u=this.measureCanvas_.getContext("2d");u.font=t.font;r=Math.ceil(u.measureText(n).width*t.scale);f=i.atlas.add(n,r,i.height,function(i,r,u){i.font=t.font;i.fillStyle=t.fillColor;i.strokeStyle=t.strokeColor;i.lineWidth=t.lineWidth;i.lineCap=t.lineCap;i.lineJoin=t.lineJoin;i.miterLimit=t.miterLimit;i.textAlign="left";i.textBaseline="top";ol.has.CANVAS_LINE_DASH&&t.lineDash&&(i.setLineDash(t.lineDash),i.lineDashOffset=t.lineDashOffset);t.scale!==1&&i.setTransform(t.scale,0,0,t.scale,0,0);t.strokeColor&&i.strokeText(n,r,u);t.fillColor&&i.fillText(n,r,u)});f&&(i.width[n]=r)}},ol.render.webgl.TextReplay.prototype.finish=function(n){var i=n.getGL(),t;this.groupIndices.push(this.indices.length);this.hitDetectionGroupIndices=this.groupIndices;this.verticesBuffer=new ol.webgl.Buffer(this.vertices);this.indicesBuffer=new ol.webgl.Buffer(this.indices);t={};this.createTextures(this.textures_,this.images_,t,i);this.state_={strokeColor:null,lineCap:undefined,lineDash:null,lineDashOffset:undefined,lineJoin:undefined,lineWidth:0,miterLimit:undefined,fillColor:null,font:undefined,scale:undefined};this.text_="";this.textAlign_=undefined;this.textBaseline_=undefined;this.offsetX_=undefined;this.offsetY_=undefined;this.images_=null;this.atlases_={};this.currAtlas_=undefined;ol.render.webgl.TextureReplay.prototype.finish.call(this,n)},ol.render.webgl.TextReplay.prototype.setTextStyle=function(n){var t=this.state_,r=n.getFill(),i=n.getStroke(),u,f,e,o,s;n&&n.getText()&&(r||i)?(r?(u=r.getColor(),t.fillColor=ol.colorlike.asColorLike(u?u:ol.render.webgl.defaultFillStyle)):t.fillColor=null,i?(f=i.getColor(),t.strokeColor=ol.colorlike.asColorLike(f?f:ol.render.webgl.defaultStrokeStyle),t.lineWidth=i.getWidth()||ol.render.webgl.defaultLineWidth,t.lineCap=i.getLineCap()||ol.render.webgl.defaultLineCap,t.lineDashOffset=i.getLineDashOffset()||ol.render.webgl.defaultLineDashOffset,t.lineJoin=i.getLineJoin()||ol.render.webgl.defaultLineJoin,t.miterLimit=i.getMiterLimit()||ol.render.webgl.defaultMiterLimit,e=i.getLineDash(),t.lineDash=e?e.slice():ol.render.webgl.defaultLineDash):(t.strokeColor=null,t.lineWidth=0),t.font=n.getFont()||ol.render.webgl.defaultFont,t.scale=n.getScale()||1,this.text_=n.getText(),o=ol.render.replay.TEXT_ALIGN[n.getTextAlign()],s=ol.render.replay.TEXT_ALIGN[n.getTextBaseline()],this.textAlign_=o===undefined?ol.render.webgl.defaultTextAlign:o,this.textBaseline_=s===undefined?ol.render.webgl.defaultTextBaseline:s,this.offsetX_=n.getOffsetX()||0,this.offsetY_=n.getOffsetY()||0,this.rotateWithView=!!n.getRotateWithView(),this.rotation=n.getRotation()||0,this.currAtlas_=this.getAtlas_(t)):this.text_=""},ol.render.webgl.TextReplay.prototype.getAtlas_=function(n){var i=[],t,r,u,f;for(t in n)(n[t]||n[t]===0)&&(Array.isArray(n[t])?i=i.concat(n[t]):i.push(n[t]));return r=this.calculateHash_(i),this.atlases_[r]||(u=this.measureCanvas_.getContext("2d"),u.font=n.font,f=Math.ceil((u.measureText("M").width*1.5+n.lineWidth/2)*n.scale),this.atlases_[r]={atlas:new ol.style.AtlasManager({space:n.lineWidth+1}),width:{},height:f}),this.atlases_[r]},ol.render.webgl.TextReplay.prototype.calculateHash_=function(n){for(var r="",t=0,i=n.length;t<i;++t)r+=n[t];return r},ol.render.webgl.TextReplay.prototype.getTextures=function(){return this.textures_},ol.render.webgl.TextReplay.prototype.getHitDetectionTextures=function(){return this.textures_},n.provide("ol.render.webgl.ReplayGroup"),n.require("ol"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.render.replay"),n.require("ol.render.ReplayGroup"),n.require("ol.render.webgl.CircleReplay"),n.require("ol.render.webgl.ImageReplay"),n.require("ol.render.webgl.LineStringReplay"),n.require("ol.render.webgl.PolygonReplay"),n.require("ol.render.webgl.TextReplay"),ol.render.webgl.ReplayGroup=function(n,t,i){ol.render.ReplayGroup.call(this);this.maxExtent_=t;this.tolerance_=n;this.renderBuffer_=i;this.replaysByZIndex_={}},ol.inherits(ol.render.webgl.ReplayGroup,ol.render.ReplayGroup),ol.render.webgl.ReplayGroup.prototype.addDeclutter=function(){},ol.render.webgl.ReplayGroup.prototype.getDeleteResourcesFunction=function(n){var t=[],r,i,u;for(r in this.replaysByZIndex_){i=this.replaysByZIndex_[r];for(u in i)t.push(i[u].getDeleteResourcesFunction(n))}return function(){for(var r=t.length,i,n=0;n<r;n++)i=t[n].apply(this,arguments);return i}},ol.render.webgl.ReplayGroup.prototype.finish=function(n){var i,t,r;for(i in this.replaysByZIndex_){t=this.replaysByZIndex_[i];for(r in t)t[r].finish(n)}},ol.render.webgl.ReplayGroup.prototype.getReplay=function(n,t){var u=n!==undefined?n.toString():"0",i=this.replaysByZIndex_[u],r,f;return i===undefined&&(i={},this.replaysByZIndex_[u]=i),r=i[t],r===undefined&&(f=ol.render.webgl.ReplayGroup.BATCH_CONSTRUCTORS_[t],r=new f(this.tolerance_,this.maxExtent_),i[t]=r),r},ol.render.webgl.ReplayGroup.prototype.isEmpty=function(){return ol.obj.isEmpty(this.replaysByZIndex_)},ol.render.webgl.ReplayGroup.prototype.replay=function(n,t,i,r,u,f,e,o){var c=Object.keys(this.replaysByZIndex_).map(Number),s,a,h,v,y,l;for(c.sort(ol.array.numberSafeCompareFunction),s=0,a=c.length;s<a;++s)for(y=this.replaysByZIndex_[c[s].toString()],h=0,v=ol.render.replay.ORDER.length;h<v;++h)l=y[ol.render.replay.ORDER[h]],l!==undefined&&l.replay(n,t,i,r,u,f,e,o,undefined,!1)},ol.render.webgl.ReplayGroup.prototype.replayHitDetection_=function(n,t,i,r,u,f,e,o,s,h,c){var v=Object.keys(this.replaysByZIndex_).map(Number),l,w,a,b,y,p;for(v.sort(function(n,t){return t-n}),l=0,w=v.length;l<w;++l)for(b=this.replaysByZIndex_[v[l].toString()],a=ol.render.replay.ORDER.length-1;a>=0;--a)if(y=b[ol.render.replay.ORDER[a]],y!==undefined&&(p=y.replay(n,t,i,r,u,f,e,o,s,h,c),p))return p;return undefined},ol.render.webgl.ReplayGroup.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u,f,e,o,s,h){var c=t.getGL(),l;return c.bindFramebuffer(c.FRAMEBUFFER,t.getHitDetectionFramebuffer()),this.renderBuffer_!==undefined&&(l=ol.extent.buffer(ol.extent.createOrUpdateFromCoordinate(n),r*this.renderBuffer_)),this.replayHitDetection_(t,n,r,u,ol.render.webgl.ReplayGroup.HIT_DETECTION_SIZE_,e,o,s,function(n){var i=new Uint8Array(4),t;return c.readPixels(0,0,1,1,c.RGBA,c.UNSIGNED_BYTE,i),i[3]>0&&(t=h(n),t)?t:void 0},!0,l)},ol.render.webgl.ReplayGroup.prototype.hasFeatureAtCoordinate=function(n,t,i,r,u,f,e,o,s){var h=t.getGL(),c;return h.bindFramebuffer(h.FRAMEBUFFER,t.getHitDetectionFramebuffer()),c=this.replayHitDetection_(t,n,r,u,ol.render.webgl.ReplayGroup.HIT_DETECTION_SIZE_,e,o,s,function(){var n=new Uint8Array(4);return h.readPixels(0,0,1,1,h.RGBA,h.UNSIGNED_BYTE,n),n[3]>0},!1),c!==undefined},ol.render.webgl.ReplayGroup.HIT_DETECTION_SIZE_=[1,1],ol.render.webgl.ReplayGroup.BATCH_CONSTRUCTORS_={Circle:ol.render.webgl.CircleReplay,Image:ol.render.webgl.ImageReplay,LineString:ol.render.webgl.LineStringReplay,Polygon:ol.render.webgl.PolygonReplay,Text:ol.render.webgl.TextReplay},n.provide("ol.render.webgl.Immediate"),n.require("ol"),n.require("ol.extent"),n.require("ol.geom.GeometryType"),n.require("ol.render.ReplayType"),n.require("ol.render.VectorContext"),n.require("ol.render.webgl.ReplayGroup"),ol.render.webgl.Immediate=function(n,t,i,r,u,f,e){ol.render.VectorContext.call(this);this.context_=n;this.center_=t;this.extent_=f;this.pixelRatio_=e;this.size_=u;this.rotation_=r;this.resolution_=i;this.imageStyle_=null;this.fillStyle_=null;this.strokeStyle_=null;this.textStyle_=null},ol.inherits(ol.render.webgl.Immediate,ol.render.VectorContext),ol.render.webgl.Immediate.prototype.drawText_=function(n,t){var r=this.context_,i=n.getReplay(0,ol.render.ReplayType.TEXT);i.setTextStyle(this.textStyle_);i.drawText(t,null);i.finish(r);var u;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},u,!1);i.getDeleteResourcesFunction(r)()},ol.render.webgl.Immediate.prototype.setStyle=function(n){this.setFillStrokeStyle(n.getFill(),n.getStroke());this.setImageStyle(n.getImage());this.setTextStyle(n.getText())},ol.render.webgl.Immediate.prototype.drawGeometry=function(n){var t=n.getType();switch(t){case ol.geom.GeometryType.POINT:this.drawPoint(n,null);break;case ol.geom.GeometryType.LINE_STRING:this.drawLineString(n,null);break;case ol.geom.GeometryType.POLYGON:this.drawPolygon(n,null);break;case ol.geom.GeometryType.MULTI_POINT:this.drawMultiPoint(n,null);break;case ol.geom.GeometryType.MULTI_LINE_STRING:this.drawMultiLineString(n,null);break;case ol.geom.GeometryType.MULTI_POLYGON:this.drawMultiPolygon(n,null);break;case ol.geom.GeometryType.GEOMETRY_COLLECTION:this.drawGeometryCollection(n,null);break;case ol.geom.GeometryType.CIRCLE:this.drawCircle(n,null)}},ol.render.webgl.Immediate.prototype.drawFeature=function(n,t){var i=t.getGeometryFunction()(n);i&&ol.extent.intersects(this.extent_,i.getExtent())&&(this.setStyle(t),this.drawGeometry(i))},ol.render.webgl.Immediate.prototype.drawGeometryCollection=function(n){for(var i=n.getGeometriesArray(),t=0,r=i.length;t<r;++t)this.drawGeometry(i[t])},ol.render.webgl.Immediate.prototype.drawPoint=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.IMAGE);i.setImageStyle(this.imageStyle_);i.drawPoint(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.drawMultiPoint=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.IMAGE);i.setImageStyle(this.imageStyle_);i.drawMultiPoint(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.drawLineString=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.LINE_STRING);i.setFillStrokeStyle(null,this.strokeStyle_);i.drawLineString(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.drawMultiLineString=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.LINE_STRING);i.setFillStrokeStyle(null,this.strokeStyle_);i.drawMultiLineString(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.drawPolygon=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.POLYGON);i.setFillStrokeStyle(this.fillStyle_,this.strokeStyle_);i.drawPolygon(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.drawMultiPolygon=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.POLYGON);i.setFillStrokeStyle(this.fillStyle_,this.strokeStyle_);i.drawMultiPolygon(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.drawCircle=function(n,t){var r=this.context_,u=new ol.render.webgl.ReplayGroup(1,this.extent_),i=u.getReplay(0,ol.render.ReplayType.CIRCLE);i.setFillStrokeStyle(this.fillStyle_,this.strokeStyle_);i.drawCircle(n,t);i.finish(r);var f;i.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},f,!1);i.getDeleteResourcesFunction(r)();this.textStyle_&&this.drawText_(u,n)},ol.render.webgl.Immediate.prototype.setImageStyle=function(n){this.imageStyle_=n},ol.render.webgl.Immediate.prototype.setFillStrokeStyle=function(n,t){this.fillStyle_=n;this.strokeStyle_=t},ol.render.webgl.Immediate.prototype.setTextStyle=function(n){this.textStyle_=n},n.provide("ol.renderer.webgl.defaultmapshader"),n.require("ol"),n.require("ol.webgl.Fragment"),n.require("ol.webgl.Vertex"),ol.renderer.webgl.defaultmapshader.fragment=new ol.webgl.Fragment(ol.DEBUG_WEBGL?"precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n  vec4 texColor = texture2D(u_texture, v_texCoord);\n  gl_FragColor.rgb = texColor.rgb;\n  gl_FragColor.a = texColor.a * u_opacity;\n}\n":"precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}"),ol.renderer.webgl.defaultmapshader.vertex=new ol.webgl.Vertex(ol.DEBUG_WEBGL?"varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n  gl_Position = u_projectionMatrix * vec4(a_position, 0., 1.);\n  v_texCoord = (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n":"varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}"),n.provide("ol.renderer.webgl.defaultmapshader.Locations"),n.require("ol"),ol.renderer.webgl.defaultmapshader.Locations=function(n,t){this.u_texCoordMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_texCoordMatrix":"d");this.u_projectionMatrix=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_projectionMatrix":"e");this.u_opacity=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_opacity":"f");this.u_texture=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_texture":"g");this.a_position=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_position":"b");this.a_texCoord=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_texCoord":"c")},n.provide("ol.renderer.webgl.Layer"),n.require("ol"),n.require("ol.render.Event"),n.require("ol.render.EventType"),n.require("ol.render.webgl.Immediate"),n.require("ol.renderer.Layer"),n.require("ol.renderer.webgl.defaultmapshader"),n.require("ol.renderer.webgl.defaultmapshader.Locations"),n.require("ol.transform"),n.require("ol.vec.Mat4"),n.require("ol.webgl"),n.require("ol.webgl.Buffer"),n.require("ol.webgl.Context"),ol.renderer.webgl.Layer=function(n,t){ol.renderer.Layer.call(this,t);this.mapRenderer=n;this.arrayBuffer_=new ol.webgl.Buffer([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]);this.texture=null;this.framebuffer=null;this.framebufferDimension=undefined;this.texCoordMatrix=ol.transform.create();this.projectionMatrix=ol.transform.create();this.tmpMat4_=ol.vec.Mat4.create();this.defaultLocations_=null},ol.inherits(ol.renderer.webgl.Layer,ol.renderer.Layer),ol.renderer.webgl.Layer.prototype.bindFramebuffer=function(n,t){var i=this.mapRenderer.getGL(),f,r,u;this.framebufferDimension===undefined||this.framebufferDimension!=t?(f=function(n,t,i){n.isContextLost()||(n.deleteFramebuffer(t),n.deleteTexture(i))}.bind(null,i,this.framebuffer,this.texture),n.postRenderFunctions.push(f),r=ol.webgl.Context.createEmptyTexture(i,t,t),u=i.createFramebuffer(),i.bindFramebuffer(ol.webgl.FRAMEBUFFER,u),i.framebufferTexture2D(ol.webgl.FRAMEBUFFER,ol.webgl.COLOR_ATTACHMENT0,ol.webgl.TEXTURE_2D,r,0),this.texture=r,this.framebuffer=u,this.framebufferDimension=t):i.bindFramebuffer(ol.webgl.FRAMEBUFFER,this.framebuffer)},ol.renderer.webgl.Layer.prototype.composeFrame=function(n,t,i){this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE,i,n);i.bindBuffer(ol.webgl.ARRAY_BUFFER,this.arrayBuffer_);var r=i.getGL(),e=ol.renderer.webgl.defaultmapshader.fragment,o=ol.renderer.webgl.defaultmapshader.vertex,f=i.getProgram(e,o),u;this.defaultLocations_?u=this.defaultLocations_:(u=new ol.renderer.webgl.defaultmapshader.Locations(r,f),this.defaultLocations_=u);i.useProgram(f)&&(r.enableVertexAttribArray(u.a_position),r.vertexAttribPointer(u.a_position,2,ol.webgl.FLOAT,!1,16,0),r.enableVertexAttribArray(u.a_texCoord),r.vertexAttribPointer(u.a_texCoord,2,ol.webgl.FLOAT,!1,16,8),r.uniform1i(u.u_texture,0));r.uniformMatrix4fv(u.u_texCoordMatrix,!1,ol.vec.Mat4.fromTransform(this.tmpMat4_,this.getTexCoordMatrix()));r.uniformMatrix4fv(u.u_projectionMatrix,!1,ol.vec.Mat4.fromTransform(this.tmpMat4_,this.getProjectionMatrix()));r.uniform1f(u.u_opacity,t.opacity);r.bindTexture(ol.webgl.TEXTURE_2D,this.getTexture());r.drawArrays(ol.webgl.TRIANGLE_STRIP,0,4);this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE,i,n)},ol.renderer.webgl.Layer.prototype.dispatchComposeEvent_=function(n,t,i){var u=this.getLayer();if(u.hasListener(n)){var r=i.viewState,f=r.resolution,e=i.pixelRatio,o=i.extent,s=r.center,h=r.rotation,c=i.size,l=new ol.render.webgl.Immediate(t,s,f,h,c,o,e),a=new ol.render.Event(n,l,i,null,t);u.dispatchEvent(a)}},ol.renderer.webgl.Layer.prototype.getTexCoordMatrix=function(){return this.texCoordMatrix},ol.renderer.webgl.Layer.prototype.getTexture=function(){return this.texture},ol.renderer.webgl.Layer.prototype.getProjectionMatrix=function(){return this.projectionMatrix},ol.renderer.webgl.Layer.prototype.handleWebGLContextLost=function(){this.texture=null;this.framebuffer=null;this.framebufferDimension=undefined},ol.renderer.webgl.Layer.prototype.prepareFrame=function(){},ol.renderer.webgl.Layer.prototype.forEachLayerAtPixel=function(){},n.provide("ol.renderer.webgl.ImageLayer"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.ViewHint"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.functions"),n.require("ol.renderer.Type"),n.require("ol.renderer.webgl.Layer"),n.require("ol.transform"),n.require("ol.webgl"),n.require("ol.webgl.Context"),ol.renderer.webgl.ImageLayer=function(n,t){ol.renderer.webgl.Layer.call(this,n,t);this.image_=null;this.hitCanvasContext_=null;this.hitTransformationMatrix_=null},ol.inherits(ol.renderer.webgl.ImageLayer,ol.renderer.webgl.Layer),ol.renderer.webgl.ImageLayer.handles=function(n,t){return n===ol.renderer.Type.WEBGL&&t.getType()===ol.LayerType.IMAGE},ol.renderer.webgl.ImageLayer.create=function(n,t){return new ol.renderer.webgl.ImageLayer(n,t)},ol.renderer.webgl.ImageLayer.prototype.createTexture_=function(n){var t=n.getImage(),i=this.mapRenderer.getGL();return ol.webgl.Context.createTexture(i,t,ol.webgl.CLAMP_TO_EDGE,ol.webgl.CLAMP_TO_EDGE)},ol.renderer.webgl.ImageLayer.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u){var f=this.getLayer(),e=f.getSource(),o=t.viewState.resolution,s=t.viewState.rotation,h=t.skippedFeatureUids;return e.forEachFeatureAtCoordinate(n,o,s,i,h,function(n){return r.call(u,n,f)})},ol.renderer.webgl.ImageLayer.prototype.prepareFrame=function(n,t){var b=this.mapRenderer.getGL(),l=n.pixelRatio,u=n.viewState,k=u.center,a=u.resolution,d=u.rotation,i=this.image_,v=this.texture,g=this.getLayer(),o=g.getSource(),y=n.viewHints,f=n.extent,s,h,r,p,w,c,e;return t.extent!==undefined&&(f=ol.extent.getIntersection(f,t.extent)),y[ol.ViewHint.ANIMATING]||y[ol.ViewHint.INTERACTING]||ol.extent.isEmpty(f)||(s=u.projection,ol.ENABLE_RASTER_REPROJECTION||(h=o.getProjection(),h&&(s=h)),r=o.getImage(f,a,l,s),r&&(p=this.loadImage(r),p&&(i=r,v=this.createTexture_(r),this.texture&&(w=function(n,t){n.isContextLost()||n.deleteTexture(t)}.bind(null,b,this.texture),n.postRenderFunctions.push(w))))),i&&(c=this.mapRenderer.getContext().getCanvas(),this.updateProjectionMatrix_(c.width,c.height,l,k,a,d,i.getExtent()),this.hitTransformationMatrix_=null,e=this.texCoordMatrix,ol.transform.reset(e),ol.transform.scale(e,1,-1),ol.transform.translate(e,0,-1),this.image_=i,this.texture=v,this.updateLogos(n,o)),!!i},ol.renderer.webgl.ImageLayer.prototype.updateProjectionMatrix_=function(n,t,i,r,u,f,e){var s=n*u,h=t*u,o=this.projectionMatrix;ol.transform.reset(o);ol.transform.scale(o,i*2/s,i*2/h);ol.transform.rotate(o,-f);ol.transform.translate(o,e[0]-r[0],e[1]-r[1]);ol.transform.scale(o,(e[2]-e[0])/2,(e[3]-e[1])/2);ol.transform.translate(o,1,1)},ol.renderer.webgl.ImageLayer.prototype.hasFeatureAtCoordinate=function(n,t){var i=this.forEachFeatureAtCoordinate(n,t,0,ol.functions.TRUE,this);return i!==undefined},ol.renderer.webgl.ImageLayer.prototype.forEachLayerAtPixel=function(n,t,i,r){var o,s,f,u,e;return!this.image_||!this.image_.getImage()?undefined:this.getLayer().getSource().forEachFeatureAtCoordinate!==ol.nullFunction?(o=ol.transform.apply(t.pixelToCoordinateTransform,n.slice()),s=this.forEachFeatureAtCoordinate(o,t,0,ol.functions.TRUE,this),s?i.call(r,this.getLayer(),null):undefined):(f=[this.image_.getImage().width,this.image_.getImage().height],this.hitTransformationMatrix_||(this.hitTransformationMatrix_=this.getHitTransformationMatrix_(t.size,f)),u=ol.transform.apply(this.hitTransformationMatrix_,n.slice()),u[0]<0||u[0]>f[0]||u[1]<0||u[1]>f[1])?undefined:(this.hitCanvasContext_||(this.hitCanvasContext_=ol.dom.createCanvasContext2D(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),u[0],u[1],1,1,0,0,1,1),e=this.hitCanvasContext_.getImageData(0,0,1,1).data,e[3]>0?i.call(r,this.getLayer(),e):undefined)},ol.renderer.webgl.ImageLayer.prototype.getHitTransformationMatrix_=function(n,t){var r=ol.transform.create(),u,i;return ol.transform.translate(r,-1,-1),ol.transform.scale(r,2/n[0],2/n[1]),ol.transform.translate(r,0,n[1]),ol.transform.scale(r,1,-1),u=ol.transform.invert(this.projectionMatrix.slice()),i=ol.transform.create(),ol.transform.translate(i,0,t[1]),ol.transform.scale(i,1,-1),ol.transform.scale(i,t[0]/2,t[1]/2),ol.transform.translate(i,1,1),ol.transform.multiply(i,u),ol.transform.multiply(i,r),i},n.provide("ol.renderer.webgl.Map"),n.require("ol"),n.require("ol.array"),n.require("ol.css"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.has"),n.require("ol.layer.Layer"),n.require("ol.render.Event"),n.require("ol.render.EventType"),n.require("ol.render.webgl.Immediate"),n.require("ol.renderer.Map"),n.require("ol.renderer.Type"),n.require("ol.source.State"),n.require("ol.structs.LRUCache"),n.require("ol.structs.PriorityQueue"),n.require("ol.webgl"),n.require("ol.webgl.Context"),n.require("ol.webgl.ContextEventType"),ol.renderer.webgl.Map=function(n,t){ol.renderer.Map.call(this,n,t);this.canvas_=document.createElement("CANVAS");this.canvas_.style.width="100%";this.canvas_.style.height="100%";this.canvas_.style.display="block";this.canvas_.className=ol.css.CLASS_UNSELECTABLE;n.insertBefore(this.canvas_,n.childNodes[0]||null);this.clipTileCanvasWidth_=0;this.clipTileCanvasHeight_=0;this.clipTileContext_=ol.dom.createCanvasContext2D();this.renderedVisible_=!0;this.gl_=ol.webgl.getContext(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0});this.context_=new ol.webgl.Context(this.canvas_,this.gl_);ol.events.listen(this.canvas_,ol.webgl.ContextEventType.LOST,this.handleWebGLContextLost,this);ol.events.listen(this.canvas_,ol.webgl.ContextEventType.RESTORED,this.handleWebGLContextRestored,this);this.textureCache_=new ol.structs.LRUCache;this.focus_=null;this.tileTextureQueue_=new ol.structs.PriorityQueue(function(n){var t=n[1],i=n[2],r=t[0]-this.focus_[0],u=t[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+u*u)/i}.bind(this),function(n){return n[0].getKey()});this.loadNextTileTexture_=function(){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var n=this.tileTextureQueue_.dequeue(),t=n[0],i=n[3],r=n[4];this.bindTileTexture(t,i,r,ol.webgl.LINEAR,ol.webgl.LINEAR)}return!1}.bind(this);this.textureCacheFrameMarkerCount_=0;this.initializeGL_()},ol.inherits(ol.renderer.webgl.Map,ol.renderer.Map),ol.renderer.webgl.Map.handles=function(n){return ol.has.WEBGL&&n===ol.renderer.Type.WEBGL},ol.renderer.webgl.Map.create=function(n,t){return new ol.renderer.webgl.Map(n,t)},ol.renderer.webgl.Map.prototype.bindTileTexture=function(n,t,i,r,u){var f=this.getGL(),s=n.getKey(),e,h,o,c;this.textureCache_.containsKey(s)?(e=this.textureCache_.get(s),f.bindTexture(ol.webgl.TEXTURE_2D,e.texture),e.magFilter!=r&&(f.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_MAG_FILTER,r),e.magFilter=r),e.minFilter!=u&&(f.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_MIN_FILTER,u),e.minFilter=u)):(h=f.createTexture(),f.bindTexture(ol.webgl.TEXTURE_2D,h),i>0?(o=this.clipTileContext_.canvas,c=this.clipTileContext_,this.clipTileCanvasWidth_!==t[0]||this.clipTileCanvasHeight_!==t[1]?(o.width=t[0],o.height=t[1],this.clipTileCanvasWidth_=t[0],this.clipTileCanvasHeight_=t[1]):c.clearRect(0,0,t[0],t[1]),c.drawImage(n.getImage(),i,i,t[0],t[1],0,0,t[0],t[1]),f.texImage2D(ol.webgl.TEXTURE_2D,0,ol.webgl.RGBA,ol.webgl.RGBA,ol.webgl.UNSIGNED_BYTE,o)):f.texImage2D(ol.webgl.TEXTURE_2D,0,ol.webgl.RGBA,ol.webgl.RGBA,ol.webgl.UNSIGNED_BYTE,n.getImage()),f.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_MAG_FILTER,r),f.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_MIN_FILTER,u),f.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_WRAP_S,ol.webgl.CLAMP_TO_EDGE),f.texParameteri(ol.webgl.TEXTURE_2D,ol.webgl.TEXTURE_WRAP_T,ol.webgl.CLAMP_TO_EDGE),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:u}))},ol.renderer.webgl.Map.prototype.dispatchComposeEvent_=function(n,t){var r=this.getMap();if(r.hasListener(n)){var u=this.context_,f=t.extent,e=t.size,i=t.viewState,o=t.pixelRatio,s=i.resolution,h=i.center,c=i.rotation,l=new ol.render.webgl.Immediate(u,h,s,c,e,f,o),a=new ol.render.Event(n,l,t,null,u);r.dispatchEvent(a)}},ol.renderer.webgl.Map.prototype.disposeInternal=function(){var n=this.getGL();n.isContextLost()||this.textureCache_.forEach(function(t){t&&n.deleteTexture(t.texture)});this.context_.dispose();ol.renderer.Map.prototype.disposeInternal.call(this)},ol.renderer.webgl.Map.prototype.expireCache_=function(n,t){for(var r=this.getGL(),i;this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK;){if(i=this.textureCache_.peekLast(),i)r.deleteTexture(i.texture);else if(+this.textureCache_.peekLastKey()==t.index)break;else--this.textureCacheFrameMarkerCount_;this.textureCache_.pop()}},ol.renderer.webgl.Map.prototype.getContext=function(){return this.context_},ol.renderer.webgl.Map.prototype.getGL=function(){return this.gl_},ol.renderer.webgl.Map.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},ol.renderer.webgl.Map.prototype.getType=function(){return ol.renderer.Type.WEBGL},ol.renderer.webgl.Map.prototype.handleWebGLContextLost=function(n){var t,i,r;n.preventDefault();this.textureCache_.clear();this.textureCacheFrameMarkerCount_=0;t=this.getLayerRenderers();for(i in t)r=t[i],r.handleWebGLContextLost()},ol.renderer.webgl.Map.prototype.handleWebGLContextRestored=function(){this.initializeGL_();this.getMap().render()},ol.renderer.webgl.Map.prototype.initializeGL_=function(){var n=this.gl_;n.activeTexture(ol.webgl.TEXTURE0);n.blendFuncSeparate(ol.webgl.SRC_ALPHA,ol.webgl.ONE_MINUS_SRC_ALPHA,ol.webgl.ONE,ol.webgl.ONE_MINUS_SRC_ALPHA);n.disable(ol.webgl.CULL_FACE);n.disable(ol.webgl.DEPTH_TEST);n.disable(ol.webgl.SCISSOR_TEST);n.disable(ol.webgl.STENCIL_TEST)},ol.renderer.webgl.Map.prototype.isTileTextureLoaded=function(n){return this.textureCache_.containsKey(n.getKey())},ol.renderer.webgl.Map.prototype.renderFrame=function(n){var c=this.getContext(),r=this.getGL(),u,f,l,i,e,o,t,s,h;if(r.isContextLost())return!1;if(!n)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;for(this.focus_=n.focus,this.textureCache_.set((-n.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchComposeEvent_(ol.render.EventType.PRECOMPOSE,n),u=[],f=n.layerStatesArray,ol.array.stableSort(f,ol.renderer.Map.sortByZIndex),l=n.viewState.resolution,i=0,e=f.length;i<e;++i)t=f[i],ol.layer.Layer.visibleAtResolution(t,l)&&t.sourceState==ol.source.State.READY&&(o=this.getLayerRenderer(t.layer),o.prepareFrame(n,t,c)&&u.push(t));for(s=n.size[0]*n.pixelRatio,h=n.size[1]*n.pixelRatio,(this.canvas_.width!=s||this.canvas_.height!=h)&&(this.canvas_.width=s,this.canvas_.height=h),r.bindFramebuffer(ol.webgl.FRAMEBUFFER,null),r.clearColor(0,0,0,0),r.clear(ol.webgl.COLOR_BUFFER_BIT),r.enable(ol.webgl.BLEND),r.viewport(0,0,this.canvas_.width,this.canvas_.height),i=0,e=u.length;i<e;++i)t=u[i],o=this.getLayerRenderer(t.layer),o.composeFrame(n,t,c);this.renderedVisible_||(this.canvas_.style.display="",this.renderedVisible_=!0);this.calculateMatrices2D(n);this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK&&n.postRenderFunctions.push(this.expireCache_.bind(this));this.tileTextureQueue_.isEmpty()||(n.postRenderFunctions.push(this.loadNextTileTexture_),n.animate=!0);this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE,n);this.scheduleRemoveUnusedLayerRenderers(n);this.scheduleExpireIconCache(n)},ol.renderer.webgl.Map.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u,f,e){var s,h,c,a;if(this.getGL().isContextLost())return!1;for(var v=t.viewState,l=t.layerStatesArray,y=l.length,o=y-1;o>=0;--o)if(h=l[o],c=h.layer,ol.layer.Layer.visibleAtResolution(h,v.resolution)&&f.call(e,c)&&(a=this.getLayerRenderer(c),s=a.forEachFeatureAtCoordinate(n,t,i,r,u),s))return s;return undefined},ol.renderer.webgl.Map.prototype.hasFeatureAtCoordinate=function(n,t,i,r,u){var e=!1,o,s,c;if(this.getGL().isContextLost())return!1;for(var l=t.viewState,h=t.layerStatesArray,a=h.length,f=a-1;f>=0;--f)if(o=h[f],s=o.layer,ol.layer.Layer.visibleAtResolution(o,l.resolution)&&r.call(u,s)&&(c=this.getLayerRenderer(s),e=c.hasFeatureAtCoordinate(n,t),e))return!0;return e},ol.renderer.webgl.Map.prototype.forEachLayerAtPixel=function(n,t,i,r,u){var o,s,c;if(this.getGL().isContextLost())return!1;for(var l=t.viewState,e,h=t.layerStatesArray,a=h.length,f=a-1;f>=0;--f)if(o=h[f],s=o.layer,ol.layer.Layer.visibleAtResolution(o,l.resolution)&&u.call(r,s)&&(c=this.getLayerRenderer(s),e=c.forEachLayerAtPixel(n,t,i,r),e))return e;return undefined},n.provide("ol.renderer.webgl.tilelayershader"),n.require("ol"),n.require("ol.webgl.Fragment"),n.require("ol.webgl.Vertex"),ol.renderer.webgl.tilelayershader.fragment=new ol.webgl.Fragment(ol.DEBUG_WEBGL?"precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n  gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n":"precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}"),ol.renderer.webgl.tilelayershader.vertex=new ol.webgl.Vertex(ol.DEBUG_WEBGL?"varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n  gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n  v_texCoord = a_texCoord;\n}\n\n\n":"varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}"),n.provide("ol.renderer.webgl.tilelayershader.Locations"),n.require("ol"),ol.renderer.webgl.tilelayershader.Locations=function(n,t){this.u_tileOffset=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_tileOffset":"d");this.u_texture=n.getUniformLocation(t,ol.DEBUG_WEBGL?"u_texture":"e");this.a_position=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_position":"b");this.a_texCoord=n.getAttribLocation(t,ol.DEBUG_WEBGL?"a_texCoord":"c")},n.provide("ol.renderer.webgl.TileLayer"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.TileRange"),n.require("ol.TileState"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.renderer.Type"),n.require("ol.renderer.webgl.Layer"),n.require("ol.renderer.webgl.tilelayershader"),n.require("ol.renderer.webgl.tilelayershader.Locations"),n.require("ol.size"),n.require("ol.transform"),n.require("ol.webgl"),n.require("ol.webgl.Buffer"),ol.renderer.webgl.TileLayer=function(n,t){ol.renderer.webgl.Layer.call(this,n,t);this.fragmentShader_=ol.renderer.webgl.tilelayershader.fragment;this.vertexShader_=ol.renderer.webgl.tilelayershader.vertex;this.locations_=null;this.renderArrayBuffer_=new ol.webgl.Buffer([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]);this.renderedTileRange_=null;this.renderedFramebufferExtent_=null;this.renderedRevision_=-1;this.tmpSize_=[0,0]},ol.inherits(ol.renderer.webgl.TileLayer,ol.renderer.webgl.Layer),ol.renderer.webgl.TileLayer.handles=function(n,t){return n===ol.renderer.Type.WEBGL&&t.getType()===ol.LayerType.TILE},ol.renderer.webgl.TileLayer.create=function(n,t){return new ol.renderer.webgl.TileLayer(n,t)},ol.renderer.webgl.TileLayer.prototype.disposeInternal=function(){var n=this.mapRenderer.getContext();n.deleteBuffer(this.renderArrayBuffer_);ol.renderer.webgl.Layer.prototype.disposeInternal.call(this)},ol.renderer.webgl.TileLayer.prototype.createLoadedTileFinder=function(n,t,i){var r=this.mapRenderer;return function(u,f){function e(n){var t=r.isTileTextureLoaded(n);return t&&(i[u]||(i[u]={}),i[u][n.tileCoord.toString()]=n),t}return n.forEachLoadedTile(t,u,f,e)}},ol.renderer.webgl.TileLayer.prototype.handleWebGLContextLost=function(){ol.renderer.webgl.Layer.prototype.handleWebGLContextLost.call(this);this.locations_=null},ol.renderer.webgl.TileLayer.prototype.prepareFrame=function(n,t,i){var nt=this.mapRenderer,f=i.getGL(),a=n.viewState,y=a.projection,ot=this.getLayer(),e=ot.getSource(),o=e.getTileGridForProjection(y),s=o.getZForResolution(a.resolution),g=o.getResolution(s),v=e.getTilePixelSize(s,n.pixelRatio,y),p=v[0]/ol.size.toSize(o.getTileSize(s),this.tmpSize_)[0],st=g/p,vt=e.getTilePixelRatio(p)*e.getGutter(y),yt=a.center,pt=n.extent,h=o.getTileRangeForExtentAndZ(pt,s),r,ht,b,ft,k,et,fi,ei,lt,at,d;if(this.renderedTileRange_&&this.renderedTileRange_.equals(h)&&this.renderedRevision_==e.getRevision())r=this.renderedFramebufferExtent_;else{var wt=h.getSize(),oi=Math.max(wt[0]*v[0],wt[1]*v[1]),tt=ol.math.roundUpToPowerOfTwo(oi),w=st*tt,bt=o.getOrigin(s),kt=bt[0]+h.minX*v[0]*st,dt=bt[1]+h.minY*v[1]*st;r=[kt,dt,kt+w,dt+w];this.bindFramebuffer(n,tt);f.viewport(0,0,tt,tt);f.clearColor(0,0,0,0);f.clear(ol.webgl.COLOR_BUFFER_BIT);f.disable(ol.webgl.BLEND);ht=i.getProgram(this.fragmentShader_,this.vertexShader_);i.useProgram(ht);this.locations_||(this.locations_=new ol.renderer.webgl.tilelayershader.Locations(f,ht));i.bindBuffer(ol.webgl.ARRAY_BUFFER,this.renderArrayBuffer_);f.enableVertexAttribArray(this.locations_.a_position);f.vertexAttribPointer(this.locations_.a_position,2,ol.webgl.FLOAT,!1,16,0);f.enableVertexAttribArray(this.locations_.a_texCoord);f.vertexAttribPointer(this.locations_.a_texCoord,2,ol.webgl.FLOAT,!1,16,8);f.uniform1i(this.locations_.u_texture,0);b={};b[s]={};for(var gt=this.createLoadedTileFinder(e,y,b),ni=ot.getUseInterimTilesOnError(),ti=!0,it=ol.extent.createEmpty(),ii=new ol.TileRange(0,0,0,0),ct,ri,ui,u,l,ut,c,rt=h.minX;rt<=h.maxX;++rt)for(ut=h.minY;ut<=h.maxY;++ut)if(u=e.getTile(s,rt,ut,p,y),t.extent===undefined||(c=o.getTileCoordExtent(u.tileCoord,it),ol.extent.intersects(c,t.extent))){if(l=u.getState(),ri=l==ol.TileState.LOADED||l==ol.TileState.EMPTY||l==ol.TileState.ERROR&&!ni,ri||(u=u.getInterimTile()),l=u.getState(),l==ol.TileState.LOADED){if(nt.isTileTextureLoaded(u)){b[s][u.tileCoord.toString()]=u;continue}}else if(l==ol.TileState.EMPTY||l==ol.TileState.ERROR&&!ni)continue;ti=!1;ui=o.forEachTileCoordParentTileRange(u.tileCoord,gt,null,ii,it);ui||(ct=o.getTileCoordChildTileRange(u.tileCoord,ii,it),ct&&gt(s+1,ct))}for(ft=Object.keys(b).map(Number),ft.sort(ol.array.numberSafeCompareFunction),k=new Float32Array(4),et=0,fi=ft.length;et<fi;++et){lt=b[ft[et]];for(ei in lt)u=lt[ei],c=o.getTileCoordExtent(u.tileCoord,it),k[0]=2*(c[2]-c[0])/w,k[1]=2*(c[3]-c[1])/w,k[2]=2*(c[0]-r[0])/w-1,k[3]=2*(c[1]-r[1])/w-1,f.uniform4fv(this.locations_.u_tileOffset,k),nt.bindTileTexture(u,v,vt*p,ol.webgl.LINEAR,ol.webgl.LINEAR),f.drawArrays(ol.webgl.TRIANGLE_STRIP,0,4)}ti?(this.renderedTileRange_=h,this.renderedFramebufferExtent_=r,this.renderedRevision_=e.getRevision()):(this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,n.animate=!0)}return this.updateUsedTiles(n.usedTiles,e,s,h),at=nt.getTileTextureQueue(),this.manageTilePyramid(n,e,o,p,y,pt,s,ot.getPreload(),function(n){n.getState()!=ol.TileState.LOADED||nt.isTileTextureLoaded(n)||at.isKeyQueued(n.getKey())||at.enqueue([n,o.getTileCoordCenter(n.tileCoord),o.getResolution(n.tileCoord[0]),v,vt*p])},this),this.scheduleExpireCache(n,e),this.updateLogos(n,e),d=this.texCoordMatrix,ol.transform.reset(d),ol.transform.translate(d,(Math.round(yt[0]/g)*g-r[0])/(r[2]-r[0]),(Math.round(yt[1]/g)*g-r[1])/(r[3]-r[1])),a.rotation!==0&&ol.transform.rotate(d,a.rotation),ol.transform.scale(d,n.size[0]*a.resolution/(r[2]-r[0]),n.size[1]*a.resolution/(r[3]-r[1])),ol.transform.translate(d,-.5,-.5),!0},ol.renderer.webgl.TileLayer.prototype.forEachLayerAtPixel=function(n,t,i,r){var f;if(!this.framebuffer)return undefined;var s=[n[0]/t.size[0],(t.size[1]-n[1])/t.size[1]],e=ol.transform.apply(this.texCoordMatrix,s.slice()),o=[e[0]*this.framebufferDimension,e[1]*this.framebufferDimension],u=this.mapRenderer.getContext().getGL();return u.bindFramebuffer(u.FRAMEBUFFER,this.framebuffer),f=new Uint8Array(4),u.readPixels(o[0],o[1],1,1,u.RGBA,u.UNSIGNED_BYTE,f),f[3]>0?i.call(r,this.getLayer(),f):undefined},n.provide("ol.renderer.webgl.VectorLayer"),n.require("ol"),n.require("ol.LayerType"),n.require("ol.ViewHint"),n.require("ol.extent"),n.require("ol.render.webgl.ReplayGroup"),n.require("ol.renderer.Type"),n.require("ol.renderer.vector"),n.require("ol.renderer.webgl.Layer"),n.require("ol.transform"),ol.renderer.webgl.VectorLayer=function(n,t){ol.renderer.webgl.Layer.call(this,n,t);this.dirty_=!1;this.renderedRevision_=-1;this.renderedResolution_=NaN;this.renderedExtent_=ol.extent.createEmpty();this.renderedRenderOrder_=null;this.replayGroup_=null;this.layerState_=null},ol.inherits(ol.renderer.webgl.VectorLayer,ol.renderer.webgl.Layer),ol.renderer.webgl.VectorLayer.handles=function(n,t){return n===ol.renderer.Type.WEBGL&&t.getType()===ol.LayerType.VECTOR},ol.renderer.webgl.VectorLayer.create=function(n,t){return new ol.renderer.webgl.VectorLayer(n,t)},ol.renderer.webgl.VectorLayer.prototype.composeFrame=function(n,t,i){this.layerState_=t;var u=n.viewState,f=this.replayGroup_,e=n.size,o=n.pixelRatio,r=this.mapRenderer.getGL();f&&!f.isEmpty()&&(r.enable(r.SCISSOR_TEST),r.scissor(0,0,e[0]*o,e[1]*o),f.replay(i,u.center,u.resolution,u.rotation,e,o,t.opacity,t.managed?n.skippedFeatureUids:{}),r.disable(r.SCISSOR_TEST))},ol.renderer.webgl.VectorLayer.prototype.disposeInternal=function(){var n=this.replayGroup_,t;n&&(t=this.mapRenderer.getContext(),n.getDeleteResourcesFunction(t)(),this.replayGroup_=null);ol.renderer.webgl.Layer.prototype.disposeInternal.call(this)},ol.renderer.webgl.VectorLayer.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u){if(this.replayGroup_&&this.layerState_){var o=this.mapRenderer.getContext(),f=t.viewState,s=this.getLayer(),h=this.layerState_,e={};return this.replayGroup_.forEachFeatureAtCoordinate(n,o,f.center,f.resolution,f.rotation,t.size,t.pixelRatio,h.opacity,{},function(n){var t=ol.getUid(n).toString();if(!(t in e))return e[t]=!0,r.call(u,n,s)})}return undefined},ol.renderer.webgl.VectorLayer.prototype.hasFeatureAtCoordinate=function(n,t){if(this.replayGroup_&&this.layerState_){var r=this.mapRenderer.getContext(),i=t.viewState,u=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(n,r,i.center,i.resolution,i.rotation,t.size,t.pixelRatio,u.opacity,t.skippedFeatureUids)}return!1},ol.renderer.webgl.VectorLayer.prototype.forEachLayerAtPixel=function(n,t,i,r){var u=ol.transform.apply(t.pixelToCoordinateTransform,n.slice()),f=this.hasFeatureAtCoordinate(u,t);return f?i.call(r,this.getLayer(),null):undefined},ol.renderer.webgl.VectorLayer.prototype.handleStyleImageChange_=function(){this.renderIfReadyAndVisible()},ol.renderer.webgl.VectorLayer.prototype.prepareFrame=function(n,t,i){var r=this.getLayer(),o=r.getSource(),f,s,c,h;this.updateLogos(n,o);var y=n.viewHints[ol.ViewHint.ANIMATING],p=n.viewHints[ol.ViewHint.INTERACTING],w=r.getUpdateWhileAnimating(),b=r.getUpdateWhileInteracting();if(!this.dirty_&&!w&&y||!b&&p)return!0;var k=n.extent,l=n.viewState,d=l.projection,u=l.resolution,a=n.pixelRatio,v=r.getRevision(),g=r.getRenderBuffer(),e=r.getRenderOrder();return(e===undefined&&(e=ol.renderer.vector.defaultOrder),f=ol.extent.buffer(k,g*u),!this.dirty_&&this.renderedResolution_==u&&this.renderedRevision_==v&&this.renderedRenderOrder_==e&&ol.extent.containsExtent(this.renderedExtent_,f))?!0:(this.replayGroup_&&n.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1,s=new ol.render.webgl.ReplayGroup(ol.renderer.vector.getTolerance(u,a),f,r.getRenderBuffer()),o.loadFeatures(f,u,d),c=function(n){var i,t=n.getStyleFunction(),f;t?i=t.call(n,u):(t=r.getStyleFunction(),t&&(i=t(n,u)));i&&(f=this.renderFeature(n,u,a,i,s),this.dirty_=this.dirty_||f)},e?(h=[],o.forEachFeatureInExtent(f,function(n){h.push(n)},this),h.sort(e),h.forEach(c,this)):o.forEachFeatureInExtent(f,c,this),s.finish(i),this.renderedResolution_=u,this.renderedRevision_=v,this.renderedRenderOrder_=e,this.renderedExtent_=f,this.replayGroup_=s,!0)},ol.renderer.webgl.VectorLayer.prototype.renderFeature=function(n,t,i,r,u){var f,e,o;if(!r)return!1;if(f=!1,Array.isArray(r))for(e=r.length-1,o=0;e>=o;--e)f=ol.renderer.vector.renderFeature(u,n,r[e],ol.renderer.vector.getSquaredTolerance(t,i),this.handleStyleImageChange_,this)||f;else f=ol.renderer.vector.renderFeature(u,n,r,ol.renderer.vector.getSquaredTolerance(t,i),this.handleStyleImageChange_,this)||f;return f},n.provide("ol.Map"),n.require("ol"),n.require("ol.PluggableMap"),n.require("ol.PluginType"),n.require("ol.control"),n.require("ol.interaction"),n.require("ol.obj"),n.require("ol.plugins"),n.require("ol.renderer.canvas.ImageLayer"),n.require("ol.renderer.canvas.Map"),n.require("ol.renderer.canvas.TileLayer"),n.require("ol.renderer.canvas.VectorLayer"),n.require("ol.renderer.canvas.VectorTileLayer"),n.require("ol.renderer.webgl.ImageLayer"),n.require("ol.renderer.webgl.Map"),n.require("ol.renderer.webgl.TileLayer"),n.require("ol.renderer.webgl.VectorLayer"),ol.ENABLE_CANVAS&&(ol.plugins.register(ol.PluginType.MAP_RENDERER,ol.renderer.canvas.Map),ol.plugins.registerMultiple(ol.PluginType.LAYER_RENDERER,[ol.renderer.canvas.ImageLayer,ol.renderer.canvas.TileLayer,ol.renderer.canvas.VectorLayer,ol.renderer.canvas.VectorTileLayer])),ol.ENABLE_WEBGL&&(ol.plugins.register(ol.PluginType.MAP_RENDERER,ol.renderer.webgl.Map),ol.plugins.registerMultiple(ol.PluginType.LAYER_RENDERER,[ol.renderer.webgl.ImageLayer,ol.renderer.webgl.TileLayer,ol.renderer.webgl.VectorLayer])),ol.Map=function(n){n=ol.obj.assign({},n);n.controls||(n.controls=ol.control.defaults());n.interactions||(n.interactions=ol.interaction.defaults());ol.PluggableMap.call(this,n)},ol.inherits(ol.Map,ol.PluggableMap),n.provide("ol.net"),n.require("ol"),ol.net.jsonp=function(n,t,i,r){function e(){delete window[f];u.parentNode.removeChild(u)}var u=document.createElement("script"),f="olc_"+ol.getUid(t),o;u.async=!0;u.src=n+(n.indexOf("?")==-1?"?":"&")+(r||"callback")+"="+f;o=setTimeout(function(){e();i&&i()},1e4);window[f]=function(n){clearTimeout(o);e();t(n)};document.getElementsByTagName("head")[0].appendChild(u)},n.provide("ol.proj.common"),n.require("ol.proj"),ol.proj.common.add=ol.proj.addCommon,n.provide("ol.render"),n.require("ol.has"),n.require("ol.transform"),n.require("ol.render.canvas.Immediate"),ol.render.toContext=function(n,t){var i=n.canvas,f=t?t:{},r=f.pixelRatio||ol.has.DEVICE_PIXEL_RATIO,u=f.size,e,o;return u&&(i.width=u[0]*r,i.height=u[1]*r,i.style.width=u[0]+"px",i.style.height=u[1]+"px"),e=[0,0,i.width,i.height],o=ol.transform.scale(ol.transform.create(),r,r),new ol.render.canvas.Immediate(n,r,e,o,0)},n.provide("ol.reproj"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.proj"),ol.reproj.calculateSourceResolution=function(n,t,i,r){var s=ol.proj.transform(i,t,n),u=ol.proj.getPointResolution(t,r,i),h=t.getMetersPerUnit(),e,o,f;return h!==undefined&&(u*=h),e=n.getMetersPerUnit(),e!==undefined&&(u/=e),o=n.getExtent(),(!o||ol.extent.containsCoordinate(o,s))&&(f=ol.proj.getPointResolution(n,u,s)/u,isFinite(f)&&f>0&&(u/=f)),u},ol.reproj.enlargeClipPoint_=function(n,t,i,r){var u=i-n,f=r-t,e=Math.sqrt(u*u+f*f);return[Math.round(i+u/e),Math.round(r+f/e)]},ol.reproj.render=function(n,t,i,r,u,f,e,o,s,h,c){var l=ol.dom.createCanvasContext2D(Math.round(i*n),Math.round(i*t)),v,a;if(s.length===0)return l.canvas;l.scale(i,i);v=ol.extent.createEmpty();s.forEach(function(n){ol.extent.extend(v,n.extent)});var w=ol.extent.getWidth(v),b=ol.extent.getHeight(v),p=ol.dom.createCanvasContext2D(Math.round(i*w/r),Math.round(i*b/r)),y=i/r;return s.forEach(function(n){var t=n.extent[0]-v[0],i=-(n.extent[3]-v[3]),r=ol.extent.getWidth(n.extent),u=ol.extent.getHeight(n.extent);p.drawImage(n.image,h,h,n.image.width-2*h,n.image.height-2*h,t*y,i*y,r*y,u*y)}),a=ol.extent.getTopLeft(e),o.getTriangles().forEach(function(n){var t=n.source,u=n.target,ut=t[0][0],ft=t[0][1],h=t[1][0],c=t[1][1],y=t[2][0],w=t[2][1],o=(u[0][0]-a[0])/f,s=-(u[0][1]-a[1])/f,b=(u[1][0]-a[0])/f,k=-(u[1][1]-a[1])/f,d=(u[2][0]-a[0])/f,g=-(u[2][1]-a[1])/f,nt=ut,tt=ft,et,e;if(ut=0,ft=0,h-=nt,c-=tt,y-=nt,w-=tt,et=[[h,c,0,0,b-o],[y,w,0,0,d-o],[0,0,h,c,k-s],[0,0,y,w,g-s]],e=ol.math.solveLinearSystem(et),e){l.save();l.beginPath();var it=(o+b+d)/3,rt=(s+k+g)/3,ot=ol.reproj.enlargeClipPoint_(it,rt,o,s),st=ol.reproj.enlargeClipPoint_(it,rt,b,k),ht=ol.reproj.enlargeClipPoint_(it,rt,d,g);l.moveTo(st[0],st[1]);l.lineTo(ot[0],ot[1]);l.lineTo(ht[0],ht[1]);l.clip();l.transform(e[0],e[2],e[1],e[3],o,s);l.translate(v[0]-nt,v[3]-tt);l.scale(r/i,-r/i);l.drawImage(p.canvas,0,0);l.restore()}}),c&&(l.save(),l.strokeStyle="black",l.lineWidth=1,o.getTriangles().forEach(function(n){var t=n.target,i=(t[0][0]-a[0])/f,r=-(t[0][1]-a[1])/f,u=(t[1][0]-a[0])/f,e=-(t[1][1]-a[1])/f,o=(t[2][0]-a[0])/f,s=-(t[2][1]-a[1])/f;l.beginPath();l.moveTo(u,e);l.lineTo(i,r);l.lineTo(o,s);l.closePath();l.stroke()}),l.restore()),l.canvas},n.provide("ol.reproj.Triangulation"),n.require("ol"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.proj"),ol.reproj.Triangulation=function(n,t,i,r,u){var e,o,f;this.sourceProj_=n;this.targetProj_=t;e={};o=ol.proj.getTransform(this.targetProj_,this.sourceProj_);this.transformInv_=function(n){var t=n[0]+"/"+n[1];return e[t]||(e[t]=o(n)),e[t]};this.maxSourceExtent_=r;this.errorThresholdSquared_=u*u;this.triangles_=[];this.wrapsXInSource_=!1;this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&ol.extent.getWidth(r)==ol.extent.getWidth(this.sourceProj_.getExtent());this.sourceWorldWidth_=this.sourceProj_.getExtent()?ol.extent.getWidth(this.sourceProj_.getExtent()):null;this.targetWorldWidth_=this.targetProj_.getExtent()?ol.extent.getWidth(this.targetProj_.getExtent()):null;var s=ol.extent.getTopLeft(i),h=ol.extent.getTopRight(i),c=ol.extent.getBottomRight(i),l=ol.extent.getBottomLeft(i),a=this.transformInv_(s),v=this.transformInv_(h),y=this.transformInv_(c),p=this.transformInv_(l);this.addQuad_(s,h,c,l,a,v,y,p,ol.RASTER_REPROJECTION_MAX_SUBDIVISION);this.wrapsXInSource_&&(f=Infinity,this.triangles_.forEach(function(n){f=Math.min(f,n.source[0][0],n.source[1][0],n.source[2][0])}),this.triangles_.forEach(function(n){var t,i,r;Math.max(n.source[0][0],n.source[1][0],n.source[2][0])-f>this.sourceWorldWidth_/2&&(t=[[n.source[0][0],n.source[0][1]],[n.source[1][0],n.source[1][1]],[n.source[2][0],n.source[2][1]]],t[0][0]-f>this.sourceWorldWidth_/2&&(t[0][0]-=this.sourceWorldWidth_),t[1][0]-f>this.sourceWorldWidth_/2&&(t[1][0]-=this.sourceWorldWidth_),t[2][0]-f>this.sourceWorldWidth_/2&&(t[2][0]-=this.sourceWorldWidth_),i=Math.min(t[0][0],t[1][0],t[2][0]),r=Math.max(t[0][0],t[1][0],t[2][0]),r-i<this.sourceWorldWidth_/2&&(n.source=t))},this));e={}},ol.reproj.Triangulation.prototype.addTriangle_=function(n,t,i,r,u,f){this.triangles_.push({source:[r,u,f],target:[n,t,i]})},ol.reproj.Triangulation.prototype.addQuad_=function(n,t,i,r,u,f,e,o,s){var g=ol.extent.boundingExtent([u,f,e,o]),c=this.sourceWorldWidth_?ol.extent.getWidth(g)/this.sourceWorldWidth_:null,v=this.sourceWorldWidth_,y=this.sourceProj_.canWrapX()&&c>.5&&c<1,h=!1,nt,tt,it,l,a,rt,p,ut;if(s>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(nt=ol.extent.boundingExtent([n,t,i,r]),tt=ol.extent.getWidth(nt)/this.targetWorldWidth_,h|=tt>ol.RASTER_REPROJECTION_MAX_TRIANGLE_WIDTH),!y&&this.sourceProj_.isGlobal()&&c&&(h|=c>ol.RASTER_REPROJECTION_MAX_TRIANGLE_WIDTH)),h||!this.maxSourceExtent_||ol.extent.intersects(g,this.maxSourceExtent_)){if(!h&&(!isFinite(u[0])||!isFinite(u[1])||!isFinite(f[0])||!isFinite(f[1])||!isFinite(e[0])||!isFinite(e[1])||!isFinite(o[0])||!isFinite(o[1])))if(s>0)h=!0;else return;if(s>0&&(h||(it=[(n[0]+i[0])/2,(n[1]+i[1])/2],l=this.transformInv_(it),y?(rt=(ol.math.modulo(u[0],v)+ol.math.modulo(e[0],v))/2,a=rt-ol.math.modulo(l[0],v)):a=(u[0]+e[0])/2-l[0],p=(u[1]+e[1])/2-l[1],ut=a*a+p*p,h=ut>this.errorThresholdSquared_),h)){if(Math.abs(n[0]-i[0])<=Math.abs(n[1]-i[1])){var w=[(t[0]+i[0])/2,(t[1]+i[1])/2],ft=this.transformInv_(w),b=[(r[0]+n[0])/2,(r[1]+n[1])/2],et=this.transformInv_(b);this.addQuad_(n,t,w,b,u,f,ft,et,s-1);this.addQuad_(b,w,i,r,et,ft,e,o,s-1)}else{var k=[(n[0]+t[0])/2,(n[1]+t[1])/2],ot=this.transformInv_(k),d=[(i[0]+r[0])/2,(i[1]+r[1])/2],st=this.transformInv_(d);this.addQuad_(n,k,d,r,u,ot,st,o,s-1);this.addQuad_(k,t,i,d,ot,f,e,st,s-1)}return}if(y){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(n,i,r,u,e,o);this.addTriangle_(n,t,i,u,f,e)}},ol.reproj.Triangulation.prototype.calculateSourceExtent=function(){var n=ol.extent.createEmpty();return this.triangles_.forEach(function(t){var i=t.source;ol.extent.extendCoordinate(n,i[0]);ol.extent.extendCoordinate(n,i[1]);ol.extent.extendCoordinate(n,i[2])}),n},ol.reproj.Triangulation.prototype.getTriangles=function(){return this.triangles_},n.provide("ol.reproj.Image"),n.require("ol"),n.require("ol.ImageBase"),n.require("ol.ImageState"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.reproj"),n.require("ol.reproj.Triangulation"),ol.reproj.Image=function(n,t,i,r,u,f){var c,e;this.targetProj_=t;this.maxSourceExtent_=n.getExtent();var o=t.getExtent(),s=o?ol.extent.getIntersection(i,o):i,l=ol.extent.getCenter(s),h=ol.reproj.calculateSourceResolution(n,t,l,r),a=ol.DEFAULT_RASTER_REPROJECTION_ERROR_THRESHOLD;this.triangulation_=new ol.reproj.Triangulation(n,t,s,this.maxSourceExtent_,h*a);this.targetResolution_=r;this.targetExtent_=i;c=this.triangulation_.calculateSourceExtent();this.sourceImage_=f(c,h,u);this.sourcePixelRatio_=this.sourceImage_?this.sourceImage_.getPixelRatio():1;this.canvas_=null;this.sourceListenerKey_=null;e=ol.ImageState.LOADED;this.sourceImage_&&(e=ol.ImageState.IDLE);ol.ImageBase.call(this,i,r,this.sourcePixelRatio_,e)},ol.inherits(ol.reproj.Image,ol.ImageBase),ol.reproj.Image.prototype.disposeInternal=function(){this.state==ol.ImageState.LOADING&&this.unlistenSource_();ol.ImageBase.prototype.disposeInternal.call(this)},ol.reproj.Image.prototype.getImage=function(){return this.canvas_},ol.reproj.Image.prototype.getProjection=function(){return this.targetProj_},ol.reproj.Image.prototype.reproject_=function(){var n=this.sourceImage_.getState(),t,i;n==ol.ImageState.LOADED&&(t=ol.extent.getWidth(this.targetExtent_)/this.targetResolution_,i=ol.extent.getHeight(this.targetExtent_)/this.targetResolution_,this.canvas_=ol.reproj.render(t,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0));this.state=n;this.changed()},ol.reproj.Image.prototype.load=function(){if(this.state==ol.ImageState.IDLE){this.state=ol.ImageState.LOADING;this.changed();var n=this.sourceImage_.getState();n==ol.ImageState.LOADED||n==ol.ImageState.ERROR?this.reproject_():(this.sourceListenerKey_=ol.events.listen(this.sourceImage_,ol.events.EventType.CHANGE,function(){var n=this.sourceImage_.getState();(n==ol.ImageState.LOADED||n==ol.ImageState.ERROR)&&(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},ol.reproj.Image.prototype.unlistenSource_=function(){ol.events.unlistenByKey(this.sourceListenerKey_);this.sourceListenerKey_=null},n.provide("ol.reproj.Tile"),n.require("ol"),n.require("ol.Tile"),n.require("ol.TileState"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.reproj"),n.require("ol.reproj.Triangulation"),ol.reproj.Tile=function(n,t,i,r,u,f,e,o,s,h,c){var y,tt,a,v,w,b,d;ol.Tile.call(this,u,ol.TileState.IDLE);this.renderEdges_=c!==undefined?c:!1;this.pixelRatio_=e;this.gutter_=o;this.canvas_=null;this.sourceTileGrid_=t;this.targetTileGrid_=r;this.wrappedTileCoord_=f?f:u;this.sourceTiles_=[];this.sourcesListenerKeys_=null;this.sourceZ_=0;var g=r.getTileCoordExtent(this.wrappedTileCoord_),nt=this.targetTileGrid_.getExtent(),l=this.sourceTileGrid_.getExtent(),k=nt?ol.extent.getIntersection(g,nt):g;if(ol.extent.getArea(k)===0){this.state=ol.TileState.EMPTY;return}y=n.getExtent();y&&(l=l?ol.extent.getIntersection(l,y):y);var it=r.getResolution(this.wrappedTileCoord_[0]),rt=ol.extent.getCenter(k),p=ol.reproj.calculateSourceResolution(n,i,rt,it);if(!isFinite(p)||p<=0){this.state=ol.TileState.EMPTY;return}if(tt=h!==undefined?h:ol.DEFAULT_RASTER_REPROJECTION_ERROR_THRESHOLD,this.triangulation_=new ol.reproj.Triangulation(n,i,k,l,p*tt),this.triangulation_.getTriangles().length===0){this.state=ol.TileState.EMPTY;return}if(this.sourceZ_=t.getZForResolution(p),a=this.triangulation_.calculateSourceExtent(),l&&(n.canWrapX()?(a[1]=ol.math.clamp(a[1],l[1],l[3]),a[3]=ol.math.clamp(a[3],l[1],l[3])):a=ol.extent.getIntersection(a,l)),ol.extent.getArea(a)){for(v=t.getTileRangeForExtentAndZ(a,this.sourceZ_),w=v.minX;w<=v.maxX;w++)for(b=v.minY;b<=v.maxY;b++)d=s(this.sourceZ_,w,b,e),d&&this.sourceTiles_.push(d);this.sourceTiles_.length===0&&(this.state=ol.TileState.EMPTY)}else this.state=ol.TileState.EMPTY},ol.inherits(ol.reproj.Tile,ol.Tile),ol.reproj.Tile.prototype.disposeInternal=function(){this.state==ol.TileState.LOADING&&this.unlistenSources_();ol.Tile.prototype.disposeInternal.call(this)},ol.reproj.Tile.prototype.getImage=function(){return this.canvas_},ol.reproj.Tile.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(n){n&&n.getState()==ol.TileState.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(n.tileCoord),image:n.getImage()})},this),this.sourceTiles_.length=0,t.length===0)this.state=ol.TileState.ERROR;else{var i=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(i),r=typeof n=="number"?n:n[0],u=typeof n=="number"?n:n[1],f=this.targetTileGrid_.getResolution(i),e=this.sourceTileGrid_.getResolution(this.sourceZ_),o=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=ol.reproj.render(r,u,this.pixelRatio_,e,this.sourceTileGrid_.getExtent(),f,o,this.triangulation_,t,this.gutter_,this.renderEdges_);this.state=ol.TileState.LOADED}this.changed()},ol.reproj.Tile.prototype.load=function(){if(this.state==ol.TileState.IDLE){this.state=ol.TileState.LOADING;this.changed();var n=0;this.sourcesListenerKeys_=[];this.sourceTiles_.forEach(function(t){var r=t.getState(),i;(r==ol.TileState.IDLE||r==ol.TileState.LOADING)&&(n++,i=ol.events.listen(t,ol.events.EventType.CHANGE,function(){var r=t.getState();(r==ol.TileState.LOADED||r==ol.TileState.ERROR||r==ol.TileState.EMPTY)&&(ol.events.unlistenByKey(i),n--,n===0&&(this.unlistenSources_(),this.reproject_()))},this),this.sourcesListenerKeys_.push(i))},this);this.sourceTiles_.forEach(function(n){var t=n.getState();t==ol.TileState.IDLE&&n.load()});n===0&&setTimeout(this.reproject_.bind(this),0)}},ol.reproj.Tile.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(ol.events.unlistenByKey);this.sourcesListenerKeys_=null},n.provide("ol.TileUrlFunction"),n.require("ol.asserts"),n.require("ol.math"),n.require("ol.tilecoord"),ol.TileUrlFunction.createFromTemplate=function(n,t){var i=/\{z\}/g,r=/\{x\}/g,u=/\{y\}/g,f=/\{-y\}/g;return function(e){return e?n.replace(i,e[0].toString()).replace(r,e[1].toString()).replace(u,function(){var n=-e[2]-1;return n.toString()}).replace(f,function(){var r=e[0],n=t.getFullTileRange(r),i;return ol.asserts.assert(n,55),i=n.getHeight()+e[2],i.toString()}):undefined}},ol.TileUrlFunction.createFromTemplates=function(n,t){for(var r=n.length,u=new Array(r),i=0;i<r;++i)u[i]=ol.TileUrlFunction.createFromTemplate(n[i],t);return ol.TileUrlFunction.createFromTileUrlFunctions(u)},ol.TileUrlFunction.createFromTileUrlFunctions=function(n){return n.length===1?n[0]:function(t,i,r){if(t){var u=ol.tilecoord.hash(t),f=ol.math.modulo(u,n.length);return n[f](t,i,r)}return undefined}},ol.TileUrlFunction.nullTileUrlFunction=function(){return undefined},ol.TileUrlFunction.expandUrl=function(n){var i=[],t=/\{([a-z])-([a-z])\}/.exec(n),f,e,r,o,u;if(t){for(f=t[1].charCodeAt(0),e=t[2].charCodeAt(0),r=f;r<=e;++r)i.push(n.replace(t[0],String.fromCharCode(r)));return i}if(t=t=/\{(\d+)-(\d+)\}/.exec(n),t){for(o=parseInt(t[2],10),u=parseInt(t[1],10);u<=o;u++)i.push(n.replace(t[0],u.toString()));return i}return i.push(n),i},n.provide("ol.TileCache"),n.require("ol"),n.require("ol.structs.LRUCache"),n.require("ol.tilecoord"),ol.TileCache=function(n){ol.structs.LRUCache.call(this,n)},ol.inherits(ol.TileCache,ol.structs.LRUCache),ol.TileCache.prototype.expireCache=function(n){for(var t,i;this.canExpireCache();)if(t=this.peekLast(),i=t.tileCoord[0].toString(),i in n&&n[i].contains(t.tileCoord))break;else this.pop().dispose()},ol.TileCache.prototype.pruneExceptNewestZ=function(){if(this.getCount()!==0){var n=this.peekFirstKey(),t=ol.tilecoord.fromKey(n),i=t[0];this.forEach(function(n){n.tileCoord[0]!==i&&(this.remove(ol.tilecoord.getKey(n.tileCoord)),n.dispose())},this)}},n.provide("ol.source.Tile"),n.require("ol"),n.require("ol.TileCache"),n.require("ol.TileState"),n.require("ol.events.Event"),n.require("ol.proj"),n.require("ol.size"),n.require("ol.source.Source"),n.require("ol.tilecoord"),n.require("ol.tilegrid"),ol.source.Tile=function(n){ol.source.Source.call(this,{attributions:n.attributions,extent:n.extent,logo:n.logo,projection:n.projection,state:n.state,wrapX:n.wrapX});this.opaque_=n.opaque!==undefined?n.opaque:!1;this.tilePixelRatio_=n.tilePixelRatio!==undefined?n.tilePixelRatio:1;this.tileGrid=n.tileGrid!==undefined?n.tileGrid:null;this.tileCache=new ol.TileCache(n.cacheSize);this.tmpSize=[0,0];this.key_="";this.tileOptions={transition:n.transition}},ol.inherits(ol.source.Tile,ol.source.Source),ol.source.Tile.prototype.canExpireCache=function(){return this.tileCache.canExpireCache()},ol.source.Tile.prototype.expireCache=function(n,t){var i=this.getTileCacheForProjection(n);i&&i.expireCache(t)},ol.source.Tile.prototype.forEachLoadedTile=function(n,t,i,r){var o=this.getTileCacheForProjection(n),s,h,c,u,f,e;if(!o)return!1;for(s=!0,f=i.minX;f<=i.maxX;++f)for(e=i.minY;e<=i.maxY;++e)c=ol.tilecoord.getKeyZXY(t,f,e),u=!1,o.containsKey(c)&&(h=o.get(c),u=h.getState()===ol.TileState.LOADED,u&&(u=r(h)!==!1)),u||(s=!1);return s},ol.source.Tile.prototype.getGutter=function(){return 0},ol.source.Tile.prototype.getKey=function(){return this.key_},ol.source.Tile.prototype.setKey=function(n){this.key_!==n&&(this.key_=n,this.changed())},ol.source.Tile.prototype.getOpaque=function(){return this.opaque_},ol.source.Tile.prototype.getResolutions=function(){return this.tileGrid.getResolutions()},ol.source.Tile.prototype.getTile=function(){},ol.source.Tile.prototype.getTileGrid=function(){return this.tileGrid},ol.source.Tile.prototype.getTileGridForProjection=function(n){return this.tileGrid?this.tileGrid:ol.tilegrid.getForProjection(n)},ol.source.Tile.prototype.getTileCacheForProjection=function(n){var t=this.getProjection();return t&&!ol.proj.equivalent(t,n)?null:this.tileCache},ol.source.Tile.prototype.getTilePixelRatio=function(){return this.tilePixelRatio_},ol.source.Tile.prototype.getTilePixelSize=function(n,t,i){var f=this.getTileGridForProjection(i),r=this.getTilePixelRatio(t),u=ol.size.toSize(f.getTileSize(n),this.tmpSize);return r==1?u:ol.size.scale(u,r,this.tmpSize)},ol.source.Tile.prototype.getTileCoordForTileUrlFunction=function(n,t){var i=t!==undefined?t:this.getProjection(),r=this.getTileGridForProjection(i);return this.getWrapX()&&i.isGlobal()&&(n=ol.tilegrid.wrapX(r,n,i)),ol.tilecoord.withinExtentAndZ(n,r)?n:null},ol.source.Tile.prototype.refresh=function(){this.tileCache.clear();this.changed()},ol.source.Tile.prototype.useTile=ol.nullFunction,ol.source.Tile.Event=function(n,t){ol.events.Event.call(this,n);this.tile=t},ol.inherits(ol.source.Tile.Event,ol.events.Event),n.provide("ol.source.TileEventType"),ol.source.TileEventType={TILELOADSTART:"tileloadstart",TILELOADEND:"tileloadend",TILELOADERROR:"tileloaderror"},n.provide("ol.source.UrlTile"),n.require("ol"),n.require("ol.TileState"),n.require("ol.TileUrlFunction"),n.require("ol.source.Tile"),n.require("ol.source.TileEventType"),n.require("ol.tilecoord"),ol.source.UrlTile=function(n){ol.source.Tile.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,extent:n.extent,logo:n.logo,opaque:n.opaque,projection:n.projection,state:n.state,tileGrid:n.tileGrid,tilePixelRatio:n.tilePixelRatio,wrapX:n.wrapX,transition:n.transition});this.tileLoadFunction=n.tileLoadFunction;this.tileUrlFunction=this.fixedTileUrlFunction?this.fixedTileUrlFunction.bind(this):ol.TileUrlFunction.nullTileUrlFunction;this.urls=null;n.urls?this.setUrls(n.urls):n.url&&this.setUrl(n.url);n.tileUrlFunction&&this.setTileUrlFunction(n.tileUrlFunction);this.tileLoadingKeys_={}},ol.inherits(ol.source.UrlTile,ol.source.Tile),ol.source.UrlTile.prototype.fixedTileUrlFunction,ol.source.UrlTile.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},ol.source.UrlTile.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},ol.source.UrlTile.prototype.getUrls=function(){return this.urls},ol.source.UrlTile.prototype.handleTileChange=function(n){var r=n.target,u=ol.getUid(r),t=r.getState(),i;t==ol.TileState.LOADING?(this.tileLoadingKeys_[u]=!0,i=ol.source.TileEventType.TILELOADSTART):u in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[u],i=t==ol.TileState.ERROR?ol.source.TileEventType.TILELOADERROR:t==ol.TileState.LOADED||t==ol.TileState.ABORT?ol.source.TileEventType.TILELOADEND:undefined);i!=undefined&&this.dispatchEvent(new ol.source.Tile.Event(i,r))},ol.source.UrlTile.prototype.setTileLoadFunction=function(n){this.tileCache.clear();this.tileLoadFunction=n;this.changed()},ol.source.UrlTile.prototype.setTileUrlFunction=function(n,t){this.tileUrlFunction=n;this.tileCache.pruneExceptNewestZ();typeof t!="undefined"?this.setKey(t):this.changed()},ol.source.UrlTile.prototype.setUrl=function(n){var t=this.urls=ol.TileUrlFunction.expandUrl(n);this.setTileUrlFunction(this.fixedTileUrlFunction?this.fixedTileUrlFunction.bind(this):ol.TileUrlFunction.createFromTemplates(t,this.tileGrid),n)},ol.source.UrlTile.prototype.setUrls=function(n){this.urls=n;var t=n.join("\n");this.setTileUrlFunction(this.fixedTileUrlFunction?this.fixedTileUrlFunction.bind(this):ol.TileUrlFunction.createFromTemplates(n,this.tileGrid),t)},ol.source.UrlTile.prototype.useTile=function(n,t,i){var r=ol.tilecoord.getKeyZXY(n,t,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},n.provide("ol.source.TileImage"),n.require("ol"),n.require("ol.ImageTile"),n.require("ol.TileCache"),n.require("ol.TileState"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.proj"),n.require("ol.reproj.Tile"),n.require("ol.source.UrlTile"),n.require("ol.tilecoord"),n.require("ol.tilegrid"),ol.source.TileImage=function(n){ol.source.UrlTile.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,extent:n.extent,logo:n.logo,opaque:n.opaque,projection:n.projection,state:n.state,tileGrid:n.tileGrid,tileLoadFunction:n.tileLoadFunction?n.tileLoadFunction:ol.source.TileImage.defaultTileLoadFunction,tilePixelRatio:n.tilePixelRatio,tileUrlFunction:n.tileUrlFunction,url:n.url,urls:n.urls,wrapX:n.wrapX,transition:n.transition});this.crossOrigin=n.crossOrigin!==undefined?n.crossOrigin:null;this.tileClass=n.tileClass!==undefined?n.tileClass:ol.ImageTile;this.tileCacheForProjection={};this.tileGridForProjection={};this.reprojectionErrorThreshold_=n.reprojectionErrorThreshold;this.renderReprojectionEdges_=!1},ol.inherits(ol.source.TileImage,ol.source.UrlTile),ol.source.TileImage.prototype.canExpireCache=function(){if(!ol.ENABLE_RASTER_REPROJECTION)return ol.source.UrlTile.prototype.canExpireCache.call(this);if(this.tileCache.canExpireCache())return!0;for(var n in this.tileCacheForProjection)if(this.tileCacheForProjection[n].canExpireCache())return!0;return!1},ol.source.TileImage.prototype.expireCache=function(n,t){var i,u,r;if(!ol.ENABLE_RASTER_REPROJECTION){ol.source.UrlTile.prototype.expireCache.call(this,n,t);return}i=this.getTileCacheForProjection(n);this.tileCache.expireCache(this.tileCache==i?t:{});for(u in this.tileCacheForProjection)r=this.tileCacheForProjection[u],r.expireCache(r==i?t:{})},ol.source.TileImage.prototype.getGutter=function(n){return ol.ENABLE_RASTER_REPROJECTION&&this.getProjection()&&n&&!ol.proj.equivalent(this.getProjection(),n)?0:this.getGutterInternal()},ol.source.TileImage.prototype.getGutterInternal=function(){return 0},ol.source.TileImage.prototype.getOpaque=function(n){return ol.ENABLE_RASTER_REPROJECTION&&this.getProjection()&&n&&!ol.proj.equivalent(this.getProjection(),n)?!1:ol.source.UrlTile.prototype.getOpaque.call(this,n)},ol.source.TileImage.prototype.getTileGridForProjection=function(n){var i,t;return ol.ENABLE_RASTER_REPROJECTION?(i=this.getProjection(),this.tileGrid&&(!i||ol.proj.equivalent(i,n))?this.tileGrid:(t=ol.getUid(n).toString(),t in this.tileGridForProjection||(this.tileGridForProjection[t]=ol.tilegrid.getForProjection(n)),this.tileGridForProjection[t])):ol.source.UrlTile.prototype.getTileGridForProjection.call(this,n)},ol.source.TileImage.prototype.getTileCacheForProjection=function(n){var i,t;return ol.ENABLE_RASTER_REPROJECTION?(i=this.getProjection(),!i||ol.proj.equivalent(i,n)?this.tileCache:(t=ol.getUid(n).toString(),t in this.tileCacheForProjection||(this.tileCacheForProjection[t]=new ol.TileCache(this.tileCache.highWaterMark)),this.tileCacheForProjection[t])):ol.source.UrlTile.prototype.getTileCacheForProjection.call(this,n)},ol.source.TileImage.prototype.createTile_=function(n,t,i,r,u,f){var s=[n,t,i],h=this.getTileCoordForTileUrlFunction(s,u),e=h?this.tileUrlFunction(h,r,u):undefined,o=new this.tileClass(s,e!==undefined?ol.TileState.IDLE:ol.TileState.EMPTY,e!==undefined?e:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return o.key=f,ol.events.listen(o,ol.events.EventType.CHANGE,this.handleTileChange,this),o},ol.source.TileImage.prototype.getTile=function(n,t,i,r,u){var f=this.getProjection(),l;if(ol.ENABLE_RASTER_REPROJECTION&&f&&u&&!ol.proj.equivalent(f,u)){var s=this.getTileCacheForProjection(u),c=[n,t,i],e,h=ol.tilecoord.getKey(c);if(s.containsKey(h)&&(e=s.get(h)),l=this.getKey(),e&&e.key==l)return e;var a=this.getTileGridForProjection(f),v=this.getTileGridForProjection(u),y=this.getTileCoordForTileUrlFunction(c,u),o=new ol.reproj.Tile(f,a,u,v,c,y,this.getTilePixelRatio(r),this.getGutterInternal(),function(n,t,i,r){return this.getTileInternal(n,t,i,r,f)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return o.key=l,e?(o.interimTile=e,o.refreshInterimChain(),s.replace(h,o)):s.set(h,o),o}return this.getTileInternal(n,t,i,r,f||u)},ol.source.TileImage.prototype.getTileInternal=function(n,t,i,r,u){var f=null,e=ol.tilecoord.getKeyZXY(n,t,i),s=this.getKey(),o;return this.tileCache.containsKey(e)?(f=this.tileCache.get(e),f.key!=s&&(o=f,f=this.createTile_(n,t,i,r,u,s),f.interimTile=o.getState()==ol.TileState.IDLE?o.interimTile:o,f.refreshInterimChain(),this.tileCache.replace(e,f))):(f=this.createTile_(n,t,i,r,u,s),this.tileCache.set(e,f)),f},ol.source.TileImage.prototype.setRenderReprojectionEdges=function(n){if(ol.ENABLE_RASTER_REPROJECTION&&this.renderReprojectionEdges_!=n){this.renderReprojectionEdges_=n;for(var t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}},ol.source.TileImage.prototype.setTileGridForProjection=function(n,t){var i,r;ol.ENABLE_RASTER_REPROJECTION&&(i=ol.proj.get(n),i&&(r=ol.getUid(i).toString(),r in this.tileGridForProjection||(this.tileGridForProjection[r]=t)))},ol.source.TileImage.defaultTileLoadFunction=function(n,t){n.getImage().src=t},n.provide("ol.source.BingMaps"),n.require("ol"),n.require("ol.TileUrlFunction"),n.require("ol.extent"),n.require("ol.net"),n.require("ol.proj"),n.require("ol.source.State"),n.require("ol.source.TileImage"),n.require("ol.tilecoord"),n.require("ol.tilegrid"),ol.source.BingMaps=function(n){this.hidpi_=n.hidpi!==undefined?n.hidpi:!1;ol.source.TileImage.call(this,{cacheSize:n.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:ol.proj.get("EPSG:3857"),reprojectionErrorThreshold:n.reprojectionErrorThreshold,state:ol.source.State.LOADING,tileLoadFunction:n.tileLoadFunction,tilePixelRatio:this.hidpi_?2:1,wrapX:n.wrapX!==undefined?n.wrapX:!0,transition:n.transition});this.culture_=n.culture!==undefined?n.culture:"en-us";this.maxZoom_=n.maxZoom!==undefined?n.maxZoom:-1;this.apiKey_=n.key;this.imagerySet_=n.imagerySet;var t="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_;ol.net.jsonp(t,this.handleImageryMetadataResponse.bind(this),undefined,"jsonp")},ol.inherits(ol.source.BingMaps,ol.source.TileImage),ol.source.BingMaps.TOS_ATTRIBUTION='<a class="ol-attribution-bing-tos" href="https://www.microsoft.com/maps/product/terms.html">Terms of Use<\/a>',ol.source.BingMaps.prototype.getApiKey=function(){return this.apiKey_},ol.source.BingMaps.prototype.getImagerySet=function(){return this.imagerySet_},ol.source.BingMaps.prototype.handleImageryMetadataResponse=function(n){var i,r,u,f;if(n.statusCode!=200||n.statusDescription!="OK"||n.authenticationResultCode!="ValidCredentials"||n.resourceSets.length!=1||n.resourceSets[0].resources.length!=1){this.setState(ol.source.State.ERROR);return}i=n.brandLogoUri;i.indexOf("https")==-1&&(i=i.replace("http","https"));var t=n.resourceSets[0].resources[0],e=this.maxZoom_==-1?t.zoomMax:this.maxZoom_,o=this.getProjection(),s=ol.tilegrid.extentFromProjection(o),h=t.imageWidth==t.imageHeight?t.imageWidth:[t.imageWidth,t.imageHeight],c=ol.tilegrid.createXYZ({extent:s,minZoom:t.zoomMin,maxZoom:e,tileSize:h/(this.hidpi_?2:1)});this.tileGrid=c;r=this.culture_;u=this.hidpi_;this.tileUrlFunction=ol.TileUrlFunction.createFromTileUrlFunctions(t.imageUrlSubdomains.map(function(n){var i=[0,0,0],f=t.imageUrl.replace("{subdomain}",n).replace("{culture}",r);return function(n){if(n){ol.tilecoord.createOrUpdate(n[0],n[1],-n[2]-1,i);var t=f;return u&&(t+="&dpi=d1&device=mobile"),t.replace("{quadkey}",ol.tilecoord.quadKey(i))}return undefined}}));t.imageryProviders&&(f=ol.proj.getTransformFromProjections(ol.proj.get("EPSG:4326"),this.getProjection()),this.setAttributions(function(n){var i=[],r=n.viewState.zoom;return t.imageryProviders.map(function(t){for(var u,s=!1,h=t.coverageAreas,o=0,c=h.length;o<c;++o)if(u=h[o],r>=u.zoomMin&&r<=u.zoomMax){var e=u.bbox,l=[e[1],e[0],e[3],e[2]],a=ol.extent.applyTransform(l,f);if(ol.extent.intersects(a,n.extent)){s=!0;break}}s&&i.push(t.attribution)}),i.push(ol.source.BingMaps.TOS_ATTRIBUTION),i}));this.setLogo(i);this.setState(ol.source.State.READY)},n.provide("ol.source.XYZ"),n.require("ol"),n.require("ol.source.TileImage"),n.require("ol.tilegrid"),ol.source.XYZ=function(n){var t=n||{},i=t.projection!==undefined?t.projection:"EPSG:3857",r=t.tileGrid!==undefined?t.tileGrid:ol.tilegrid.createXYZ({extent:ol.tilegrid.extentFromProjection(i),maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});ol.source.TileImage.call(this,{attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,logo:t.logo,opaque:t.opaque,projection:i,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:r,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:t.wrapX!==undefined?t.wrapX:!0,transition:t.transition})},ol.inherits(ol.source.XYZ,ol.source.TileImage),n.provide("ol.source.CartoDB"),n.require("ol"),n.require("ol.obj"),n.require("ol.source.State"),n.require("ol.source.XYZ"),ol.source.CartoDB=function(n){this.account_=n.account;this.mapId_=n.map||"";this.config_=n.config||{};this.templateCache_={};ol.source.XYZ.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,crossOrigin:n.crossOrigin,logo:n.logo,maxZoom:n.maxZoom!==undefined?n.maxZoom:18,minZoom:n.minZoom,projection:n.projection,state:ol.source.State.LOADING,wrapX:n.wrapX});this.initializeMap_()},ol.inherits(ol.source.CartoDB,ol.source.XYZ),ol.source.CartoDB.prototype.getConfig=function(){return this.config_},ol.source.CartoDB.prototype.updateConfig=function(n){ol.obj.assign(this.config_,n);this.initializeMap_()},ol.source.CartoDB.prototype.setConfig=function(n){this.config_=n||{};this.initializeMap_()},ol.source.CartoDB.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_),i,n;if(this.templateCache_[t]){this.applyTemplate_(this.templateCache_[t]);return}i="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(i+="/named/"+this.mapId_);n=new XMLHttpRequest;n.addEventListener("load",this.handleInitResponse_.bind(this,t));n.addEventListener("error",this.handleInitError_.bind(this));n.open("POST",i);n.setRequestHeader("Content-type","application/json");n.send(JSON.stringify(this.config_))},ol.source.CartoDB.prototype.handleInitResponse_=function(n,t){var i=t.target,r;if(!i.status||i.status>=200&&i.status<300){try{r=JSON.parse(i.responseText)}catch(u){this.setState(ol.source.State.ERROR);return}this.applyTemplate_(r);this.templateCache_[n]=r;this.setState(ol.source.State.READY)}else this.setState(ol.source.State.ERROR)},ol.source.CartoDB.prototype.handleInitError_=function(){this.setState(ol.source.State.ERROR)},ol.source.CartoDB.prototype.applyTemplate_=function(n){var t="https://"+n.cdn_url.https+"/"+this.account_+"/api/v1/map/"+n.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(t)},n.provide("ol.source.Cluster"),n.require("ol"),n.require("ol.asserts"),n.require("ol.Feature"),n.require("ol.coordinate"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.geom.Point"),n.require("ol.source.Vector"),ol.source.Cluster=function(n){ol.source.Vector.call(this,{attributions:n.attributions,extent:n.extent,logo:n.logo,projection:n.projection,wrapX:n.wrapX});this.resolution=undefined;this.distance=n.distance!==undefined?n.distance:20;this.features=[];this.geometryFunction=n.geometryFunction||function(n){var t=n.getGeometry();return ol.asserts.assert(t instanceof ol.geom.Point,10),t};this.source=n.source;this.source.on(ol.events.EventType.CHANGE,ol.source.Cluster.prototype.refresh,this)},ol.inherits(ol.source.Cluster,ol.source.Vector),ol.source.Cluster.prototype.getDistance=function(){return this.distance},ol.source.Cluster.prototype.getSource=function(){return this.source},ol.source.Cluster.prototype.loadFeatures=function(n,t,i){this.source.loadFeatures(n,t,i);t!==this.resolution&&(this.clear(),this.resolution=t,this.cluster(),this.addFeatures(this.features))},ol.source.Cluster.prototype.setDistance=function(n){this.distance=n;this.refresh()},ol.source.Cluster.prototype.refresh=function(){this.clear();this.cluster();this.addFeatures(this.features);ol.source.Vector.prototype.refresh.call(this)},ol.source.Cluster.prototype.cluster=function(){var t,o,u,f,s,i;if(this.resolution!==undefined){this.features.length=0;var n=ol.extent.createEmpty(),h=this.distance*this.resolution,e=this.source.getFeatures(),r={};for(t=0,o=e.length;t<o;t++)u=e[t],ol.getUid(u).toString()in r||(f=this.geometryFunction(u),f&&(s=f.getCoordinates(),ol.extent.createOrUpdateFromCoordinate(s,n),ol.extent.buffer(n,h,n),i=this.source.getFeaturesInExtent(n),i=i.filter(function(n){var t=ol.getUid(n).toString();return t in r?!1:(r[t]=!0,!0)}),this.features.push(this.createCluster(i))))}},ol.source.Cluster.prototype.createCluster=function(n){for(var r,u,i=[0,0],t=n.length-1;t>=0;--t)r=this.geometryFunction(n[t]),r?ol.coordinate.add(i,r.getCoordinates()):n.splice(t,1);return ol.coordinate.scale(i,1/n.length),u=new ol.Feature(new ol.geom.Point(i)),u.set("features",n),u},n.provide("ol.source.Image"),n.require("ol"),n.require("ol.ImageState"),n.require("ol.array"),n.require("ol.events.Event"),n.require("ol.extent"),n.require("ol.proj"),n.require("ol.reproj.Image"),n.require("ol.source.Source"),ol.source.Image=function(n){ol.source.Source.call(this,{attributions:n.attributions,extent:n.extent,logo:n.logo,projection:n.projection,state:n.state});this.resolutions_=n.resolutions!==undefined?n.resolutions:null;this.reprojectedImage_=null;this.reprojectedRevision_=0},ol.inherits(ol.source.Image,ol.source.Source),ol.source.Image.prototype.getResolutions=function(){return this.resolutions_},ol.source.Image.prototype.findNearestResolution=function(n){if(this.resolutions_){var t=ol.array.linearFindNearest(this.resolutions_,n,0);n=this.resolutions_[t]}return n},ol.source.Image.prototype.getImage=function(n,t,i,r){var u=this.getProjection();if(ol.ENABLE_RASTER_REPROJECTION&&u&&r&&!ol.proj.equivalent(u,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&ol.proj.equivalent(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==t&&ol.extent.equals(this.reprojectedImage_.getExtent(),n))return this.reprojectedImage_;this.reprojectedImage_.dispose();this.reprojectedImage_=null}return this.reprojectedImage_=new ol.reproj.Image(u,r,n,t,i,function(n,t,i){return this.getImageInternal(n,t,i,u)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return u&&(r=u),this.getImageInternal(n,t,i,r)},ol.source.Image.prototype.getImageInternal=function(){},ol.source.Image.prototype.handleImageChange=function(n){var t=n.target;switch(t.getState()){case ol.ImageState.LOADING:this.dispatchEvent(new ol.source.Image.Event(ol.source.Image.EventType_.IMAGELOADSTART,t));break;case ol.ImageState.LOADED:this.dispatchEvent(new ol.source.Image.Event(ol.source.Image.EventType_.IMAGELOADEND,t));break;case ol.ImageState.ERROR:this.dispatchEvent(new ol.source.Image.Event(ol.source.Image.EventType_.IMAGELOADERROR,t))}},ol.source.Image.defaultImageLoadFunction=function(n,t){n.getImage().src=t},ol.source.Image.Event=function(n,t){ol.events.Event.call(this,n);this.image=t},ol.inherits(ol.source.Image.Event,ol.events.Event),ol.source.Image.EventType_={IMAGELOADSTART:"imageloadstart",IMAGELOADEND:"imageloadend",IMAGELOADERROR:"imageloaderror"},n.provide("ol.uri"),ol.uri.appendParams=function(n,t){var i=[],r;return Object.keys(t).forEach(function(n){t[n]!==null&&t[n]!==undefined&&i.push(n+"="+encodeURIComponent(t[n]))}),r=i.join("&"),n=n.replace(/[?&]$/,""),n=n.indexOf("?")===-1?n+"?":n+"&",n+r},n.provide("ol.source.ImageArcGISRest"),n.require("ol"),n.require("ol.Image"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.source.Image"),n.require("ol.uri"),ol.source.ImageArcGISRest=function(n){var t=n||{};ol.source.Image.call(this,{attributions:t.attributions,logo:t.logo,projection:t.projection,resolutions:t.resolutions});this.crossOrigin_=t.crossOrigin!==undefined?t.crossOrigin:null;this.hidpi_=t.hidpi!==undefined?t.hidpi:!0;this.url_=t.url;this.imageLoadFunction_=t.imageLoadFunction!==undefined?t.imageLoadFunction:ol.source.Image.defaultImageLoadFunction;this.params_=t.params||{};this.image_=null;this.imageSize_=[0,0];this.renderedRevision_=0;this.ratio_=t.ratio!==undefined?t.ratio:1.5},ol.inherits(ol.source.ImageArcGISRest,ol.source.Image),ol.source.ImageArcGISRest.prototype.getParams=function(){return this.params_},ol.source.ImageArcGISRest.prototype.getImageInternal=function(n,t,i,r){var u,s,e,o,h,c,v;if(this.url_===undefined)return null;if(t=this.findNearestResolution(t),i=this.hidpi_?i:1,u=this.image_,u&&this.renderedRevision_==this.getRevision()&&u.getResolution()==t&&u.getPixelRatio()==i&&ol.extent.containsExtent(u.getExtent(),n))return u;s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};ol.obj.assign(s,this.params_);n=n.slice();e=(n[0]+n[2])/2;o=(n[1]+n[3])/2;this.ratio_!=1&&(h=this.ratio_*ol.extent.getWidth(n)/2,c=this.ratio_*ol.extent.getHeight(n)/2,n[0]=e-h,n[1]=o-c,n[2]=e+h,n[3]=o+c);var f=t/i,l=Math.ceil(ol.extent.getWidth(n)/f),a=Math.ceil(ol.extent.getHeight(n)/f);return n[0]=e-f*l/2,n[2]=e+f*l/2,n[1]=o-f*a/2,n[3]=o+f*a/2,this.imageSize_[0]=l,this.imageSize_[1]=a,v=this.getRequestUrl_(n,this.imageSize_,i,r,s),this.image_=new ol.Image(n,t,i,v,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),ol.events.listen(this.image_,ol.events.EventType.CHANGE,this.handleImageChange,this),this.image_},ol.source.ImageArcGISRest.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},ol.source.ImageArcGISRest.prototype.getRequestUrl_=function(n,t,i,r,u){var o=r.getCode().split(":").pop(),f,e;return u.SIZE=t[0]+","+t[1],u.BBOX=n.join(","),u.BBOXSR=o,u.IMAGESR=o,u.DPI=Math.round(90*i),f=this.url_,e=f.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),e==f&&ol.asserts.assert(!1,50),ol.uri.appendParams(e,u)},ol.source.ImageArcGISRest.prototype.getUrl=function(){return this.url_},ol.source.ImageArcGISRest.prototype.setImageLoadFunction=function(n){this.image_=null;this.imageLoadFunction_=n;this.changed()},ol.source.ImageArcGISRest.prototype.setUrl=function(n){n!=this.url_&&(this.url_=n,this.image_=null,this.changed())},ol.source.ImageArcGISRest.prototype.updateParams=function(n){ol.obj.assign(this.params_,n);this.image_=null;this.changed()},n.provide("ol.source.ImageCanvas"),n.require("ol"),n.require("ol.ImageCanvas"),n.require("ol.extent"),n.require("ol.source.Image"),ol.source.ImageCanvas=function(n){ol.source.Image.call(this,{attributions:n.attributions,logo:n.logo,projection:n.projection,resolutions:n.resolutions,state:n.state});this.canvasFunction_=n.canvasFunction;this.canvas_=null;this.renderedRevision_=0;this.ratio_=n.ratio!==undefined?n.ratio:1.5},ol.inherits(ol.source.ImageCanvas,ol.source.Image),ol.source.ImageCanvas.prototype.getImageInternal=function(n,t,i,r){var u;if(t=this.findNearestResolution(t),u=this.canvas_,u&&this.renderedRevision_==this.getRevision()&&u.getResolution()==t&&u.getPixelRatio()==i&&ol.extent.containsExtent(u.getExtent(),n))return u;n=n.slice();ol.extent.scaleFromCenter(n,this.ratio_);var e=ol.extent.getWidth(n)/t,o=ol.extent.getHeight(n)/t,s=[e*i,o*i],f=this.canvasFunction_(n,t,i,s,r);return f&&(u=new ol.ImageCanvas(n,t,i,f)),this.canvas_=u,this.renderedRevision_=this.getRevision(),u},n.provide("ol.source.ImageMapGuide"),n.require("ol"),n.require("ol.Image"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.source.Image"),n.require("ol.uri"),ol.source.ImageMapGuide=function(n){ol.source.Image.call(this,{projection:n.projection,resolutions:n.resolutions});this.crossOrigin_=n.crossOrigin!==undefined?n.crossOrigin:null;this.displayDpi_=n.displayDpi!==undefined?n.displayDpi:96;this.params_=n.params||{};this.url_=n.url;this.imageLoadFunction_=n.imageLoadFunction!==undefined?n.imageLoadFunction:ol.source.Image.defaultImageLoadFunction;this.hidpi_=n.hidpi!==undefined?n.hidpi:!0;this.metersPerUnit_=n.metersPerUnit!==undefined?n.metersPerUnit:1;this.ratio_=n.ratio!==undefined?n.ratio:1;this.useOverlay_=n.useOverlay!==undefined?n.useOverlay:!1;this.image_=null;this.renderedRevision_=0},ol.inherits(ol.source.ImageMapGuide,ol.source.Image),ol.source.ImageMapGuide.prototype.getParams=function(){return this.params_},ol.source.ImageMapGuide.prototype.getImageInternal=function(n,t,i,r){var u,f;if(t=this.findNearestResolution(t),i=this.hidpi_?i:1,u=this.image_,u&&this.renderedRevision_==this.getRevision()&&u.getResolution()==t&&u.getPixelRatio()==i&&ol.extent.containsExtent(u.getExtent(),n))return u;this.ratio_!=1&&(n=n.slice(),ol.extent.scaleFromCenter(n,this.ratio_));var e=ol.extent.getWidth(n)/t,o=ol.extent.getHeight(n)/t,s=[e*i,o*i];return this.url_!==undefined?(f=this.getUrl(this.url_,this.params_,n,s,r),u=new ol.Image(n,t,i,f,this.crossOrigin_,this.imageLoadFunction_),ol.events.listen(u,ol.events.EventType.CHANGE,this.handleImageChange,this)):u=null,this.image_=u,this.renderedRevision_=this.getRevision(),u},ol.source.ImageMapGuide.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},ol.source.ImageMapGuide.getScale=function(n,t,i,r){var u=ol.extent.getWidth(n),f=ol.extent.getHeight(n),e=t[0],o=t[1],s=.0254/r;return o*u>e*f?u*i/(e*s):f*i/(o*s)},ol.source.ImageMapGuide.prototype.updateParams=function(n){ol.obj.assign(this.params_,n);this.changed()},ol.source.ImageMapGuide.prototype.getUrl=function(n,t,i,r){var e=ol.source.ImageMapGuide.getScale(i,r,this.metersPerUnit_,this.displayDpi_),u=ol.extent.getCenter(i),f={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol.source.ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:e,SETVIEWCENTERX:u[0],SETVIEWCENTERY:u[1]};return ol.obj.assign(f,t),ol.uri.appendParams(n,f)},ol.source.ImageMapGuide.prototype.setImageLoadFunction=function(n){this.image_=null;this.imageLoadFunction_=n;this.changed()},n.provide("ol.source.ImageStatic"),n.require("ol"),n.require("ol.Image"),n.require("ol.ImageState"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.proj"),n.require("ol.source.Image"),ol.source.ImageStatic=function(n){var t=n.imageExtent,i=n.crossOrigin!==undefined?n.crossOrigin:null,r=n.imageLoadFunction!==undefined?n.imageLoadFunction:ol.source.Image.defaultImageLoadFunction;ol.source.Image.call(this,{attributions:n.attributions,logo:n.logo,projection:ol.proj.get(n.projection)});this.image_=new ol.Image(t,undefined,1,n.url,i,r);this.imageSize_=n.imageSize?n.imageSize:null;ol.events.listen(this.image_,ol.events.EventType.CHANGE,this.handleImageChange,this)},ol.inherits(ol.source.ImageStatic,ol.source.Image),ol.source.ImageStatic.prototype.getImageInternal=function(n){return ol.extent.intersects(n,this.image_.getExtent())?this.image_:null},ol.source.ImageStatic.prototype.handleImageChange=function(n){var f,i,r,t,s,e,o,u;this.image_.getState()==ol.ImageState.LOADED&&(f=this.image_.getExtent(),i=this.image_.getImage(),this.imageSize_?(r=this.imageSize_[0],t=this.imageSize_[1]):(r=i.width,t=i.height),s=ol.extent.getHeight(f)/t,e=Math.ceil(ol.extent.getWidth(f)/s),e!=r&&(o=ol.dom.createCanvasContext2D(e,t),u=o.canvas,o.drawImage(i,0,0,r,t,0,0,u.width,u.height),this.image_.setImage(u)));ol.source.Image.prototype.handleImageChange.call(this,n)},n.provide("ol.source.ImageVector"),n.require("ol"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.ext.rbush"),n.require("ol.extent"),n.require("ol.render.canvas.ReplayGroup"),n.require("ol.renderer.vector"),n.require("ol.source.ImageCanvas"),n.require("ol.style.Style"),n.require("ol.transform"),ol.source.ImageVector=function(n){this.source_=n.source;this.transform_=ol.transform.create();this.canvasContext_=ol.dom.createCanvasContext2D();this.canvasSize_=[0,0];this.declutterTree_=ol.ext.rbush(9);this.renderBuffer_=n.renderBuffer==undefined?100:n.renderBuffer;this.replayGroup_=null;ol.source.ImageCanvas.call(this,{attributions:n.attributions,canvasFunction:this.canvasFunctionInternal_.bind(this),logo:n.logo,projection:n.projection,ratio:n.ratio,resolutions:n.resolutions,state:this.source_.getState()});this.style_=null;this.styleFunction_=undefined;this.setStyle(n.style);ol.events.listen(this.source_,ol.events.EventType.CHANGE,this.handleSourceChange_,this)},ol.inherits(ol.source.ImageVector,ol.source.ImageCanvas),ol.source.ImageVector.prototype.canvasFunctionInternal_=function(n,t,i,r,u){var f=new ol.render.canvas.ReplayGroup(ol.renderer.vector.getTolerance(t,i),n,t,i,this.source_.getOverlaps(),this.declutterTree_,this.renderBuffer_),e,o;return(this.source_.loadFeatures(n,t,u),e=!1,this.source_.forEachFeatureInExtent(n,function(n){e=e||this.renderFeature_(n,t,i,f)},this),f.finish(),e)?null:(this.canvasSize_[0]!=r[0]||this.canvasSize_[1]!=r[1]?(this.canvasContext_.canvas.width=r[0],this.canvasContext_.canvas.height=r[1],this.canvasSize_[0]=r[0],this.canvasSize_[1]=r[1]):this.canvasContext_.clearRect(0,0,r[0],r[1]),this.declutterTree_.clear(),o=this.getTransform_(ol.extent.getCenter(n),t,i,r),f.replay(this.canvasContext_,o,0,{}),this.replayGroup_=f,this.canvasContext_.canvas)},ol.source.ImageVector.prototype.forEachFeatureAtCoordinate=function(n,t,i,r,u,f){if(this.replayGroup_){var e={};return this.replayGroup_.forEachFeatureAtCoordinate(n,t,0,r,u,function(n){var t=ol.getUid(n).toString();if(!(t in e))return e[t]=!0,f(n)},null)}return undefined},ol.source.ImageVector.prototype.getSource=function(){return this.source_},ol.source.ImageVector.prototype.getStyle=function(){return this.style_},ol.source.ImageVector.prototype.getStyleFunction=function(){return this.styleFunction_},ol.source.ImageVector.prototype.getTransform_=function(n,t,i,r){var f=r[0]/2,e=r[1]/2,u=i/t,o=-u,s=-n[0],h=-n[1];return ol.transform.compose(this.transform_,f,e,u,o,0,s,h)},ol.source.ImageVector.prototype.handleImageChange_=function(){this.changed()},ol.source.ImageVector.prototype.handleSourceChange_=function(){this.setState(this.source_.getState())},ol.source.ImageVector.prototype.renderFeature_=function(n,t,i,r){var u,o=n.getStyleFunction(),f,s,e;if(o?u=o.call(n,t):this.styleFunction_&&(u=this.styleFunction_(n,t)),!u)return!1;for(e=!1,Array.isArray(u)||(u=[u]),f=0,s=u.length;f<s;++f)e=ol.renderer.vector.renderFeature(r,n,u[f],ol.renderer.vector.getSquaredTolerance(t,i),this.handleImageChange_,this)||e;return e},ol.source.ImageVector.prototype.setStyle=function(n){this.style_=n!==undefined?n:ol.style.Style.defaultFunction;this.styleFunction_=n?ol.style.Style.createFunction(this.style_):undefined;this.changed()},n.provide("ol.source.WMSServerType"),ol.source.WMSServerType={CARMENTA_SERVER:"carmentaserver",GEOSERVER:"geoserver",MAPSERVER:"mapserver",QGIS:"qgis"},n.provide("ol.source.ImageWMS"),n.require("ol"),n.require("ol.Image"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.reproj"),n.require("ol.source.Image"),n.require("ol.source.WMSServerType"),n.require("ol.string"),n.require("ol.uri"),ol.source.ImageWMS=function(n){var t=n||{};ol.source.Image.call(this,{attributions:t.attributions,logo:t.logo,projection:t.projection,resolutions:t.resolutions});this.crossOrigin_=t.crossOrigin!==undefined?t.crossOrigin:null;this.url_=t.url;this.imageLoadFunction_=t.imageLoadFunction!==undefined?t.imageLoadFunction:ol.source.Image.defaultImageLoadFunction;this.params_=t.params||{};this.v13_=!0;this.updateV13_();this.serverType_=t.serverType;this.hidpi_=t.hidpi!==undefined?t.hidpi:!0;this.image_=null;this.imageSize_=[0,0];this.renderedRevision_=0;this.ratio_=t.ratio!==undefined?t.ratio:1.5},ol.inherits(ol.source.ImageWMS,ol.source.Image),ol.source.ImageWMS.GETFEATUREINFO_IMAGE_SIZE_=[101,101],ol.source.ImageWMS.prototype.getGetFeatureInfoUrl=function(n,t,i,r){var f,u,o,e,s,h;return this.url_===undefined?undefined:(f=ol.proj.get(i),u=this.getProjection(),u&&u!==f&&(t=ol.reproj.calculateSourceResolution(u,f,n,t),n=ol.proj.transform(n,f,u)),o=ol.extent.getForViewAndSize(n,t,0,ol.source.ImageWMS.GETFEATUREINFO_IMAGE_SIZE_),e={SERVICE:"WMS",VERSION:ol.DEFAULT_WMS_VERSION,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS},ol.obj.assign(e,this.params_,r),s=Math.floor((n[0]-o[0])/t),h=Math.floor((o[3]-n[1])/t),e[this.v13_?"I":"X"]=s,e[this.v13_?"J":"Y"]=h,this.getRequestUrl_(o,ol.source.ImageWMS.GETFEATUREINFO_IMAGE_SIZE_,1,u||f,e))},ol.source.ImageWMS.prototype.getParams=function(){return this.params_},ol.source.ImageWMS.prototype.getImageInternal=function(n,t,i,r){var o,h;if(this.url_===undefined)return null;t=this.findNearestResolution(t);i==1||this.hidpi_&&this.serverType_!==undefined||(i=1);var u=t/i,s=ol.extent.getCenter(n),c=Math.ceil(ol.extent.getWidth(n)/u),l=Math.ceil(ol.extent.getHeight(n)/u),a=ol.extent.getForViewAndSize(s,u,0,[c,l]),v=Math.ceil(this.ratio_*ol.extent.getWidth(n)/u),y=Math.ceil(this.ratio_*ol.extent.getHeight(n)/u),e=ol.extent.getForViewAndSize(s,u,0,[v,y]),f=this.image_;return f&&this.renderedRevision_==this.getRevision()&&f.getResolution()==t&&f.getPixelRatio()==i&&ol.extent.containsExtent(f.getExtent(),a)?f:(o={SERVICE:"WMS",VERSION:ol.DEFAULT_WMS_VERSION,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0},ol.obj.assign(o,this.params_),this.imageSize_[0]=Math.round(ol.extent.getWidth(e)/u),this.imageSize_[1]=Math.round(ol.extent.getHeight(e)/u),h=this.getRequestUrl_(e,this.imageSize_,i,r,o),this.image_=new ol.Image(e,t,i,h,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),ol.events.listen(this.image_,ol.events.EventType.CHANGE,this.handleImageChange,this),this.image_)},ol.source.ImageWMS.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},ol.source.ImageWMS.prototype.getRequestUrl_=function(n,t,i,r,u){var f,e,o;if(ol.asserts.assert(this.url_!==undefined,9),u[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(u.STYLES=""),i!=1)switch(this.serverType_){case ol.source.WMSServerType.GEOSERVER:f=90*i+.5|0;"FORMAT_OPTIONS"in u?u.FORMAT_OPTIONS+=";dpi:"+f:u.FORMAT_OPTIONS="dpi:"+f;break;case ol.source.WMSServerType.MAPSERVER:u.MAP_RESOLUTION=90*i;break;case ol.source.WMSServerType.CARMENTA_SERVER:case ol.source.WMSServerType.QGIS:u.DPI=90*i;break;default:ol.asserts.assert(!1,8)}return u.WIDTH=t[0],u.HEIGHT=t[1],e=r.getAxisOrientation(),o=this.v13_&&e.substr(0,2)=="ne"?[n[1],n[0],n[3],n[2]]:n,u.BBOX=o.join(","),ol.uri.appendParams(this.url_,u)},ol.source.ImageWMS.prototype.getUrl=function(){return this.url_},ol.source.ImageWMS.prototype.setImageLoadFunction=function(n){this.image_=null;this.imageLoadFunction_=n;this.changed()},ol.source.ImageWMS.prototype.setUrl=function(n){n!=this.url_&&(this.url_=n,this.image_=null,this.changed())},ol.source.ImageWMS.prototype.updateParams=function(n){ol.obj.assign(this.params_,n);this.updateV13_();this.image_=null;this.changed()},ol.source.ImageWMS.prototype.updateV13_=function(){var n=this.params_.VERSION||ol.DEFAULT_WMS_VERSION;this.v13_=ol.string.compareVersions(n,"1.3")>=0},n.provide("ol.source.OSM"),n.require("ol"),n.require("ol.source.XYZ"),ol.source.OSM=function(n){var t=n||{},i,r,u;i=t.attributions!==undefined?t.attributions:[ol.source.OSM.ATTRIBUTION];r=t.crossOrigin!==undefined?t.crossOrigin:"anonymous";u=t.url!==undefined?t.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";ol.source.XYZ.call(this,{attributions:i,cacheSize:t.cacheSize,crossOrigin:r,opaque:t.opaque!==undefined?t.opaque:!0,maxZoom:t.maxZoom!==undefined?t.maxZoom:19,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,url:u,wrapX:t.wrapX})},ol.inherits(ol.source.OSM,ol.source.XYZ),ol.source.OSM.ATTRIBUTION='&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap<\/a> contributors.',n.provide("ol.ext.pixelworks.Processor"),ol.ext.pixelworks.Processor=function(){},function(){(function(n){"use strict";function e(n,t,u){if(i)return new ImageData(n,t,u);var f=r.createImageData(t,u);return f.data.set(n),f}function u(n){function i(n,i,r){return t?new ImageData(n,i,r):{data:n,width:i,height:r}}var t=!0;try{new ImageData(10,10)}catch(r){t=!1}return function(t){var l=t.buffers,y=t.meta,w=t.imageOps,b=t.width,k=t.height,s=l.length,p=l[0].byteLength,e,r,a,v,o,u,f,h,c;if(w){for(a=new Array(s),r=0;r<s;++r)a[r]=i(new Uint8ClampedArray(l[r]),b,k);e=n(a,y).data}else{for(e=new Uint8ClampedArray(p),v=new Array(s),o=new Array(s),r=0;r<s;++r)v[r]=new Uint8ClampedArray(l[r]),o[r]=[0,0,0,0];for(u=0;u<p;u+=4){for(f=0;f<s;++f)h=v[f],o[f][0]=h[u],o[f][1]=h[u+1],o[f][2]=h[u+2],o[f][3]=h[u+3];c=n(o,y);e[u]=c[0];e[u+1]=c[1];e[u+2]=c[2];e[u+3]=c[3]}}return e.buffer}}function c(n,t){var r=Object.keys(n.lib||{}).map(function(t){return"var "+t+" = "+n.lib[t].toString()+";"}),f=r.concat(["var __minion__ = ("+u.toString()+")(",n.operation.toString(),");",'self.addEventListener("message", function(event) {',"  var buffer = __minion__(event.data);","  self.postMessage({buffer: buffer, meta: event.data.meta}, [buffer]);","});"]),e=new Blob(f,{type:"text/javascript"}),o=URL.createObjectURL(e),i=new Worker(o);return i.addEventListener("message",t),i}function l(n,t){var i=u(n.operation);return{postMessage:function(n){setTimeout(function(){t({data:{buffer:i(n),meta:n.meta}})},0)}}}function t(n){var r,i,t;if(this._imageOps=!!n.imageOps,r=n.threads===0?0:this._imageOps?1:n.threads||1,i=[],r)for(t=0;t<r;++t)i[t]=c(n,this._onWorkerMessage.bind(this,t));else i[0]=l(n,this._onWorkerMessage.bind(this,0));this._workers=i;this._queue=[];this._maxQueueLength=n.queue||Infinity;this._running=0;this._dataLookup={};this._job=null}var i=!0,r;try{new ImageData(10,10)}catch(y){i=!1}r=document.createElement("canvas").getContext("2d");var o=e,s={newImageData:o},h=s.newImageData;t.prototype.process=function(n,t,i){this._enqueue({inputs:n,meta:t,callback:i});this._dispatch()};t.prototype.destroy=function(){for(var n in this)this[n]=null;this._destroyed=!0};t.prototype._enqueue=function(n){for(this._queue.push(n);this._queue.length>this._maxQueueLength;)this._queue.shift().callback(null,null)};t.prototype._dispatch=function(){var c,f,t,e,u,o,l;if(this._running===0&&this._queue.length>0){var n=this._job=this._queue.shift(),s=n.inputs[0].width,h=n.inputs[0].height,i=n.inputs.map(function(n){return n.data.buffer}),r=this._workers.length;if(this._running=r,r===1)this._workers[0].postMessage({buffers:i,meta:n.meta,imageOps:this._imageOps,width:s,height:h},i);else for(c=n.inputs[0].data.length,f=4*Math.ceil(c/4/r),t=0;t<r;++t){for(e=t*f,u=[],o=0,l=i.length;o<l;++o)u.push(i[t].slice(e,e+f));this._workers[t].postMessage({buffers:u,meta:n.meta,imageOps:this._imageOps,width:s,height:h},u)}}};t.prototype._onWorkerMessage=function(n,t){this._destroyed||(this._dataLookup[n]=t.data,--this._running,this._running===0&&this._resolveJob())};t.prototype._resolveJob=function(){var t=this._job,f=this._workers.length,i,r,u,e,n,o,s;if(f===1)i=new Uint8ClampedArray(this._dataLookup[0].buffer),r=this._dataLookup[0].meta;else for(u=t.inputs[0].data.length,i=new Uint8ClampedArray(u),r=new Array(u),e=4*Math.ceil(u/4/f),n=0;n<f;++n)o=this._dataLookup[n].buffer,s=n*e,i.set(new Uint8ClampedArray(o),s),r[n]=this._dataLookup[n].meta;this._job=null;this._dataLookup={};t.callback(null,h(i,t.inputs[0].width,t.inputs[0].height),r);this._dispatch()};var a=t,f=a,v={Processor:f};n["default"]=v;n.Processor=f})(this.pixelworks=this.pixelworks||{})}.call(ol.ext),n.provide("ol.source.RasterOperationType"),ol.source.RasterOperationType={PIXEL:"pixel",IMAGE:"image"},n.provide("ol.source.Raster"),n.require("ol"),n.require("ol.ImageCanvas"),n.require("ol.TileQueue"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.events.Event"),n.require("ol.events.EventType"),n.require("ol.ext.pixelworks.Processor"),n.require("ol.extent"),n.require("ol.layer.Image"),n.require("ol.layer.Tile"),n.require("ol.obj"),n.require("ol.renderer.canvas.ImageLayer"),n.require("ol.renderer.canvas.TileLayer"),n.require("ol.source.Image"),n.require("ol.source.RasterOperationType"),n.require("ol.source.State"),n.require("ol.source.Tile"),n.require("ol.transform"),ol.source.Raster=function(n){var r,f,t,u,i,e;for(this.worker_=null,this.operationType_=n.operationType!==undefined?n.operationType:ol.source.RasterOperationType.PIXEL,this.threads_=n.threads!==undefined?n.threads:1,this.renderers_=ol.source.Raster.createRenderers_(n.sources),r=0,f=this.renderers_.length;r<f;++r)ol.events.listen(this.renderers_[r],ol.events.EventType.CHANGE,this.changed,this);for(this.tileQueue_=new ol.TileQueue(function(){return 1},this.changed.bind(this)),t=ol.source.Raster.getLayerStatesArray_(this.renderers_),u={},i=0,e=t.length;i<e;++i)u[ol.getUid(t[i].layer)]=t[i];this.requestedFrameState_;this.renderedImageCanvas_=null;this.renderedRevision_;this.frameState_={animate:!1,coordinateToPixelTransform:ol.transform.create(),extent:null,focus:null,index:0,layerStates:u,layerStatesArray:t,logos:{},pixelRatio:1,pixelToCoordinateTransform:ol.transform.create(),postRenderFunctions:[],size:[0,0],skippedFeatureUids:{},tileQueue:this.tileQueue_,time:Date.now(),usedTiles:{},viewState:{rotation:0},viewHints:[],wantedTiles:{}};ol.source.Image.call(this,{});n.operation!==undefined&&this.setOperation(n.operation,n.lib)},ol.inherits(ol.source.Raster,ol.source.Image),ol.source.Raster.prototype.setOperation=function(n,t){this.worker_=new ol.ext.pixelworks.Processor({operation:n,imageOps:this.operationType_===ol.source.RasterOperationType.IMAGE,queue:1,lib:t,threads:this.threads_});this.changed()},ol.source.Raster.prototype.updateFrameState_=function(n,t,i){var r=ol.obj.assign({},this.frameState_),f,u;return r.viewState=ol.obj.assign({},r.viewState),f=ol.extent.getCenter(n),r.extent=n.slice(),r.focus=f,r.size[0]=Math.round(ol.extent.getWidth(n)/t),r.size[1]=Math.round(ol.extent.getHeight(n)/t),r.time=Date.now(),r.animate=!1,u=r.viewState,u.center=f,u.projection=i,u.resolution=t,r},ol.source.Raster.prototype.allSourcesReady_=function(){for(var t=!0,i,n=0,r=this.renderers_.length;n<r;++n)if(i=this.renderers_[n].getLayer().getSource(),i.getState()!==ol.source.State.READY){t=!1;break}return t},ol.source.Raster.prototype.getImage=function(n,t,i,r){var u,f,e;return this.allSourcesReady_()?(u=this.updateFrameState_(n,t,r),this.requestedFrameState_=u,this.renderedImageCanvas_&&(f=this.renderedImageCanvas_.getResolution(),e=this.renderedImageCanvas_.getExtent(),t===f&&ol.extent.equals(n,e)||(this.renderedImageCanvas_=null)),this.renderedImageCanvas_&&this.getRevision()===this.renderedRevision_||this.processSources_(),u.tileQueue.loadMoreTiles(16,16),u.animate&&requestAnimationFrame(this.changed.bind(this)),this.renderedImageCanvas_):null},ol.source.Raster.prototype.processSources_=function(){for(var i,r,t=this.requestedFrameState_,u=this.renderers_.length,f=new Array(u),n=0;n<u;++n)if(i=ol.source.Raster.getImageData_(this.renderers_[n],t,t.layerStatesArray[n]),i)f[n]=i;else return;r={};this.dispatchEvent(new ol.source.Raster.Event(ol.source.Raster.EventType_.BEFOREOPERATIONS,t,r));this.worker_.process(f,r,this.onWorkerComplete_.bind(this,t))},ol.source.Raster.prototype.onWorkerComplete_=function(n,t,i,r){var u,f,e,o,s;!t&&i&&(u=n.extent,f=n.viewState.resolution,f===this.requestedFrameState_.viewState.resolution&&ol.extent.equals(u,this.requestedFrameState_.extent))&&(this.renderedImageCanvas_?e=this.renderedImageCanvas_.getImage().getContext("2d"):(o=Math.round(ol.extent.getWidth(u)/f),s=Math.round(ol.extent.getHeight(u)/f),e=ol.dom.createCanvasContext2D(o,s),this.renderedImageCanvas_=new ol.ImageCanvas(u,f,1,e.canvas)),e.putImageData(i,0,0),this.changed(),this.renderedRevision_=this.getRevision(),this.dispatchEvent(new ol.source.Raster.Event(ol.source.Raster.EventType_.AFTEROPERATIONS,n,r)))},ol.source.Raster.getImageData_=function(n,t,i){var r,u,f;return n.prepareFrame(t,i)?(r=t.size[0],u=t.size[1],ol.source.Raster.context_?(f=ol.source.Raster.context_.canvas,f.width!==r||f.height!==u?ol.source.Raster.context_=ol.dom.createCanvasContext2D(r,u):ol.source.Raster.context_.clearRect(0,0,r,u)):ol.source.Raster.context_=ol.dom.createCanvasContext2D(r,u),n.composeFrame(t,i,ol.source.Raster.context_),ol.source.Raster.context_.getImageData(0,0,r,u)):null},ol.source.Raster.context_=null,ol.source.Raster.getLayerStatesArray_=function(n){return n.map(function(n){return n.getLayer().getLayerState()})},ol.source.Raster.createRenderers_=function(n){for(var i=n.length,r=new Array(i),t=0;t<i;++t)r[t]=ol.source.Raster.createRenderer_(n[t]);return r},ol.source.Raster.createRenderer_=function(n){var t=null;return n instanceof ol.source.Tile?t=ol.source.Raster.createTileRenderer_(n):n instanceof ol.source.Image&&(t=ol.source.Raster.createImageRenderer_(n)),t},ol.source.Raster.createImageRenderer_=function(n){var t=new ol.layer.Image({source:n});return new ol.renderer.canvas.ImageLayer(t)},ol.source.Raster.createTileRenderer_=function(n){var t=new ol.layer.Tile({source:n});return new ol.renderer.canvas.TileLayer(t)},ol.source.Raster.Event=function(n,t,i){ol.events.Event.call(this,n);this.extent=t.extent;this.resolution=t.viewState.resolution/t.pixelRatio;this.data=i},ol.inherits(ol.source.Raster.Event,ol.events.Event),ol.source.Raster.prototype.getImageInternal=function(){return null},ol.source.Raster.EventType_={BEFOREOPERATIONS:"beforeoperations",AFTEROPERATIONS:"afteroperations"},n.provide("ol.source.Stamen"),n.require("ol"),n.require("ol.source.OSM"),n.require("ol.source.XYZ"),ol.source.Stamen=function(n){var t=n.layer.indexOf("-"),u=t==-1?n.layer:n.layer.slice(0,t),i=ol.source.Stamen.ProviderConfig[u],r=ol.source.Stamen.LayerConfig[n.layer],f=n.url!==undefined?n.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+n.layer+"/{z}/{x}/{y}."+r.extension;ol.source.XYZ.call(this,{attributions:ol.source.Stamen.ATTRIBUTIONS,cacheSize:n.cacheSize,crossOrigin:"anonymous",maxZoom:n.maxZoom!=undefined?n.maxZoom:i.maxZoom,minZoom:n.minZoom!=undefined?n.minZoom:i.minZoom,opaque:r.opaque,reprojectionErrorThreshold:n.reprojectionErrorThreshold,tileLoadFunction:n.tileLoadFunction,url:f,wrapX:n.wrapX})},ol.inherits(ol.source.Stamen,ol.source.XYZ),ol.source.Stamen.ATTRIBUTIONS=['Map tiles by <a href="https://stamen.com/">Stamen Design<\/a>, under <a href="https://creativecommons.org/licenses/by/3.0/">CC BY 3.0<\/a>.',ol.source.OSM.ATTRIBUTION],ol.source.Stamen.LayerConfig={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},ol.source.Stamen.ProviderConfig={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},n.provide("ol.source.TileArcGISRest"),n.require("ol"),n.require("ol.extent"),n.require("ol.math"),n.require("ol.obj"),n.require("ol.size"),n.require("ol.source.TileImage"),n.require("ol.tilecoord"),n.require("ol.uri"),ol.source.TileArcGISRest=function(n){var t=n||{};ol.source.TileImage.call(this,{attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,logo:t.logo,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:t.wrapX!==undefined?t.wrapX:!0,transition:t.transition});this.params_=t.params||{};this.tmpExtent_=ol.extent.createEmpty();this.setKey(this.getKeyForParams_())},ol.inherits(ol.source.TileArcGISRest,ol.source.TileImage),ol.source.TileArcGISRest.prototype.getKeyForParams_=function(){var i=0,n=[];for(var t in this.params_)n[i++]=t+"-"+this.params_[t];return n.join("/")},ol.source.TileArcGISRest.prototype.getParams=function(){return this.params_},ol.source.TileArcGISRest.prototype.getRequestUrl_=function(n,t,i,r,u,f){var e=this.urls,o,s,h,c;return e?(o=u.getCode().split(":").pop(),f.SIZE=t[0]+","+t[1],f.BBOX=i.join(","),f.BBOXSR=o,f.IMAGESR=o,f.DPI=Math.round(f.DPI?f.DPI*r:90*r),e.length==1?s=e[0]:(h=ol.math.modulo(ol.tilecoord.hash(n),e.length),s=e[h]),c=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),ol.uri.appendParams(c,f)):undefined},ol.source.TileArcGISRest.prototype.getTilePixelRatio=function(n){return n},ol.source.TileArcGISRest.prototype.fixedTileUrlFunction=function(n,t,i){var r=this.getTileGrid(),e,u,f;return(r||(r=this.getTileGridForProjection(i)),r.getResolutions().length<=n[0])?undefined:(e=r.getTileCoordExtent(n,this.tmpExtent_),u=ol.size.toSize(r.getTileSize(n[0]),this.tmpSize),t!=1&&(u=ol.size.scale(u,t,this.tmpSize)),f={F:"image",FORMAT:"PNG32",TRANSPARENT:!0},ol.obj.assign(f,this.params_),this.getRequestUrl_(n,u,e,t,i,f))},ol.source.TileArcGISRest.prototype.updateParams=function(n){ol.obj.assign(this.params_,n);this.setKey(this.getKeyForParams_())},n.provide("ol.source.TileDebug"),n.require("ol"),n.require("ol.Tile"),n.require("ol.TileState"),n.require("ol.dom"),n.require("ol.size"),n.require("ol.source.Tile"),n.require("ol.tilecoord"),ol.source.TileDebug=function(n){ol.source.Tile.call(this,{opaque:!1,projection:n.projection,tileGrid:n.tileGrid,wrapX:n.wrapX!==undefined?n.wrapX:!0})},ol.inherits(ol.source.TileDebug,ol.source.Tile),ol.source.TileDebug.prototype.getTile=function(n,t,i){var r=ol.tilecoord.getKeyZXY(n,t,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var o=ol.size.toSize(this.tileGrid.getTileSize(n)),u=[n,t,i],f=this.getTileCoordForTileUrlFunction(u),s=f?this.getTileCoordForTileUrlFunction(f).toString():"",e=new ol.source.TileDebug.Tile_(u,o,s);return this.tileCache.set(r,e),e},ol.source.TileDebug.Tile_=function(n,t,i){ol.Tile.call(this,n,ol.TileState.LOADED);this.tileSize_=t;this.text_=i;this.canvas_=null},ol.inherits(ol.source.TileDebug.Tile_,ol.Tile),ol.source.TileDebug.Tile_.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,n=ol.dom.createCanvasContext2D(t[0],t[1]);return n.strokeStyle="black",n.strokeRect(.5,.5,t[0]+.5,t[1]+.5),n.fillStyle="black",n.textAlign="center",n.textBaseline="middle",n.font="24px sans-serif",n.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=n.canvas,n.canvas},ol.source.TileDebug.Tile_.prototype.load=function(){},n.provide("ol.source.TileJSON"),n.require("ol"),n.require("ol.TileUrlFunction"),n.require("ol.asserts"),n.require("ol.extent"),n.require("ol.net"),n.require("ol.proj"),n.require("ol.source.State"),n.require("ol.source.TileImage"),n.require("ol.tilegrid"),ol.source.TileJSON=function(n){if(this.tileJSON_=null,ol.source.TileImage.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,crossOrigin:n.crossOrigin,projection:ol.proj.get("EPSG:3857"),reprojectionErrorThreshold:n.reprojectionErrorThreshold,state:ol.source.State.LOADING,tileLoadFunction:n.tileLoadFunction,wrapX:n.wrapX!==undefined?n.wrapX:!0,transition:n.transition}),n.url)if(n.jsonp)ol.net.jsonp(n.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this));t.addEventListener("error",this.onXHRError_.bind(this));t.open("GET",n.url);t.send()}else n.tileJSON?this.handleTileJSONResponse(n.tileJSON):ol.asserts.assert(!1,51)},ol.inherits(ol.source.TileJSON,ol.source.TileImage),ol.source.TileJSON.prototype.onXHRLoad_=function(n){var t=n.target,i;if(!t.status||t.status>=200&&t.status<300){try{i=JSON.parse(t.responseText)}catch(r){this.handleTileJSONError();return}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},ol.source.TileJSON.prototype.onXHRError_=function(){this.handleTileJSONError()},ol.source.TileJSON.prototype.getTileJSON=function(){return this.tileJSON_},ol.source.TileJSON.prototype.handleTileJSONResponse=function(n){var i=ol.proj.get("EPSG:4326"),r=this.getProjection(),t,u,e;n.bounds!==undefined&&(u=ol.proj.getTransformFromProjections(i,r),t=ol.extent.applyTransform(n.bounds,u));var o=n.minzoom||0,s=n.maxzoom||22,f=ol.tilegrid.createXYZ({extent:ol.tilegrid.extentFromProjection(r),maxZoom:s,minZoom:o});this.tileGrid=f;this.tileUrlFunction=ol.TileUrlFunction.createFromTemplates(n.tiles,f);n.attribution===undefined||this.getAttributions2()||(e=t!==undefined?t:i.getExtent(),this.setAttributions(function(t){return ol.extent.intersects(e,t.extent)?[n.attribution]:null}));this.tileJSON_=n;this.setState(ol.source.State.READY)},ol.source.TileJSON.prototype.handleTileJSONError=function(){this.setState(ol.source.State.ERROR)},n.provide("ol.source.TileUTFGrid"),n.require("ol"),n.require("ol.Tile"),n.require("ol.TileState"),n.require("ol.TileUrlFunction"),n.require("ol.asserts"),n.require("ol.events"),n.require("ol.events.EventType"),n.require("ol.extent"),n.require("ol.net"),n.require("ol.proj"),n.require("ol.source.State"),n.require("ol.source.Tile"),n.require("ol.tilecoord"),n.require("ol.tilegrid"),ol.source.TileUTFGrid=function(n){if(ol.source.Tile.call(this,{projection:ol.proj.get("EPSG:3857"),state:ol.source.State.LOADING}),this.preemptive_=n.preemptive!==undefined?n.preemptive:!0,this.tileUrlFunction_=ol.TileUrlFunction.nullTileUrlFunction,this.template_=undefined,this.jsonp_=n.jsonp||!1,n.url)if(this.jsonp_)ol.net.jsonp(n.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this));t.addEventListener("error",this.onXHRError_.bind(this));t.open("GET",n.url);t.send()}else n.tileJSON?this.handleTileJSONResponse(n.tileJSON):ol.asserts.assert(!1,51)},ol.inherits(ol.source.TileUTFGrid,ol.source.Tile),ol.source.TileUTFGrid.prototype.onXHRLoad_=function(n){var t=n.target,i;if(!t.status||t.status>=200&&t.status<300){try{i=JSON.parse(t.responseText)}catch(r){this.handleTileJSONError();return}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},ol.source.TileUTFGrid.prototype.onXHRError_=function(){this.handleTileJSONError()},ol.source.TileUTFGrid.prototype.getTemplate=function(){return this.template_},ol.source.TileUTFGrid.prototype.forDataAtCoordinateAndResolution=function(n,t,i,r,u){if(this.tileGrid){var f=this.tileGrid.getTileCoordForCoordAndResolution(n,t),e=this.getTile(f[0],f[1],f[2],1,this.getProjection());e.forDataAtCoordinate(n,i,r,u)}else u===!0?setTimeout(function(){i.call(r,null)},0):i.call(r,null)},ol.source.TileUTFGrid.prototype.handleTileJSONError=function(){this.setState(ol.source.State.ERROR)},ol.source.TileUTFGrid.prototype.handleTileJSONResponse=function(n){var r=ol.proj.get("EPSG:4326"),u=this.getProjection(),t,f,i,o;n.bounds!==undefined&&(f=ol.proj.getTransformFromProjections(r,u),t=ol.extent.applyTransform(n.bounds,f));var s=n.minzoom||0,h=n.maxzoom||22,e=ol.tilegrid.createXYZ({extent:ol.tilegrid.extentFromProjection(u),maxZoom:h,minZoom:s});if(this.tileGrid=e,this.template_=n.template,i=n.grids,!i){this.setState(ol.source.State.ERROR);return}this.tileUrlFunction_=ol.TileUrlFunction.createFromTemplates(i,e);n.attribution!==undefined&&(o=t!==undefined?t:r.getExtent(),this.setAttributions(function(t){return ol.extent.intersects(o,t.extent)?[n.attribution]:null}));this.setState(ol.source.State.READY)},ol.source.TileUTFGrid.prototype.getTile=function(n,t,i,r,u){var f=ol.tilecoord.getKeyZXY(n,t,i);if(this.tileCache.containsKey(f))return this.tileCache.get(f);var e=[n,t,i],h=this.getTileCoordForTileUrlFunction(e,u),o=this.tileUrlFunction_(h,r,u),s=new ol.source.TileUTFGrid.Tile_(e,o!==undefined?ol.TileState.IDLE:ol.TileState.EMPTY,o!==undefined?o:"",this.tileGrid.getTileCoordExtent(e),this.preemptive_,this.jsonp_);return this.tileCache.set(f,s),s},ol.source.TileUTFGrid.prototype.useTile=function(n,t,i){var r=ol.tilecoord.getKeyZXY(n,t,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},ol.source.TileUTFGrid.Tile_=function(n,t,i,r,u,f){ol.Tile.call(this,n,t);this.src_=i;this.extent_=r;this.preemptive_=u;this.grid_=null;this.keys_=null;this.data_=null;this.jsonp_=f},ol.inherits(ol.source.TileUTFGrid.Tile_,ol.Tile),ol.source.TileUTFGrid.Tile_.prototype.getImage=function(){return null},ol.source.TileUTFGrid.Tile_.prototype.getData=function(n){var t,u,i;if(!this.grid_||!this.keys_)return null;var f=(n[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),e=(n[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-e)*this.grid_.length)];return typeof r!="string"?null:(t=r.charCodeAt(Math.floor(f*r.length)),t>=93&&t--,t>=35&&t--,t-=32,u=null,t in this.keys_&&(i=this.keys_[t],u=this.data_&&i in this.data_?this.data_[i]:i),u)},ol.source.TileUTFGrid.Tile_.prototype.forDataAtCoordinate=function(n,t,i,r){this.state==ol.TileState.IDLE&&r===!0?(ol.events.listenOnce(this,ol.events.EventType.CHANGE,function(){t.call(i,this.getData(n))},this),this.loadInternal_()):r===!0?setTimeout(function(){t.call(i,this.getData(n))}.bind(this),0):t.call(i,this.getData(n))},ol.source.TileUTFGrid.Tile_.prototype.getKey=function(){return this.src_},ol.source.TileUTFGrid.Tile_.prototype.handleError_=function(){this.state=ol.TileState.ERROR;this.changed()},ol.source.TileUTFGrid.Tile_.prototype.handleLoad_=function(n){this.grid_=n.grid;this.keys_=n.keys;this.data_=n.data;this.state=ol.TileState.EMPTY;this.changed()},ol.source.TileUTFGrid.Tile_.prototype.loadInternal_=function(){if(this.state==ol.TileState.IDLE)if(this.state=ol.TileState.LOADING,this.jsonp_)ol.net.jsonp(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var n=new XMLHttpRequest;n.addEventListener("load",this.onXHRLoad_.bind(this));n.addEventListener("error",this.onXHRError_.bind(this));n.open("GET",this.src_);n.send()}},ol.source.TileUTFGrid.Tile_.prototype.onXHRLoad_=function(n){var t=n.target,i;if(!t.status||t.status>=200&&t.status<300){try{i=JSON.parse(t.responseText)}catch(r){this.handleError_();return}this.handleLoad_(i)}else this.handleError_()},ol.source.TileUTFGrid.Tile_.prototype.onXHRError_=function(){this.handleError_()},ol.source.TileUTFGrid.Tile_.prototype.load=function(){this.preemptive_&&this.loadInternal_()},n.provide("ol.source.TileWMS"),n.require("ol"),n.require("ol.asserts"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.math"),n.require("ol.proj"),n.require("ol.reproj"),n.require("ol.size"),n.require("ol.source.TileImage"),n.require("ol.source.WMSServerType"),n.require("ol.tilecoord"),n.require("ol.string"),n.require("ol.uri"),ol.source.TileWMS=function(n){var t=n||{},i=t.params||{},r="TRANSPARENT"in i?i.TRANSPARENT:!0;ol.source.TileImage.call(this,{attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,logo:t.logo,opaque:!r,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:t.wrapX!==undefined?t.wrapX:!0,transition:t.transition});this.gutter_=t.gutter!==undefined?t.gutter:0;this.params_=i;this.v13_=!0;this.serverType_=t.serverType;this.hidpi_=t.hidpi!==undefined?t.hidpi:!0;this.tmpExtent_=ol.extent.createEmpty();this.updateV13_();this.setKey(this.getKeyForParams_())},ol.inherits(ol.source.TileWMS,ol.source.TileImage),ol.source.TileWMS.prototype.getGetFeatureInfoUrl=function(n,t,i,r){var e=ol.proj.get(i),o=this.getProjection(),f=this.getTileGrid(),s,c,v,y;if(f||(f=this.getTileGridForProjection(e)),s=f.getTileCoordForCoordAndResolution(n,t),f.getResolutions().length<=s[0])return undefined;var h=f.getResolution(s[0]),u=f.getTileCoordExtent(s,this.tmpExtent_),l=ol.size.toSize(f.getTileSize(s[0]),this.tmpSize),a=this.gutter_;return a!==0&&(l=ol.size.buffer(l,a,this.tmpSize),u=ol.extent.buffer(u,h*a,u)),o&&o!==e&&(h=ol.reproj.calculateSourceResolution(o,e,n,h),u=ol.proj.transformExtent(u,e,o),n=ol.proj.transform(n,e,o)),c={SERVICE:"WMS",VERSION:ol.DEFAULT_WMS_VERSION,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS},ol.obj.assign(c,this.params_,r),v=Math.floor((n[0]-u[0])/h),y=Math.floor((u[3]-n[1])/h),c[this.v13_?"I":"X"]=v,c[this.v13_?"J":"Y"]=y,this.getRequestUrl_(s,l,u,1,o||e,c)},ol.source.TileWMS.prototype.getGutterInternal=function(){return this.gutter_},ol.source.TileWMS.prototype.getParams=function(){return this.params_},ol.source.TileWMS.prototype.getRequestUrl_=function(n,t,i,r,u,f){var o=this.urls,h,l,e,s,c,a;if(!o)return undefined;if(f.WIDTH=t[0],f.HEIGHT=t[1],f[this.v13_?"CRS":"SRS"]=u.getCode(),"STYLES"in this.params_||(f.STYLES=""),r!=1)switch(this.serverType_){case ol.source.WMSServerType.GEOSERVER:h=90*r+.5|0;"FORMAT_OPTIONS"in f?f.FORMAT_OPTIONS+=";dpi:"+h:f.FORMAT_OPTIONS="dpi:"+h;break;case ol.source.WMSServerType.MAPSERVER:f.MAP_RESOLUTION=90*r;break;case ol.source.WMSServerType.CARMENTA_SERVER:case ol.source.WMSServerType.QGIS:f.DPI=90*r;break;default:ol.asserts.assert(!1,52)}return l=u.getAxisOrientation(),e=i,this.v13_&&l.substr(0,2)=="ne"&&(s=i[0],e[0]=i[1],e[1]=s,s=i[2],e[2]=i[3],e[3]=s),f.BBOX=e.join(","),o.length==1?c=o[0]:(a=ol.math.modulo(ol.tilecoord.hash(n),o.length),c=o[a]),ol.uri.appendParams(c,f)},ol.source.TileWMS.prototype.getTilePixelRatio=function(n){return!this.hidpi_||this.serverType_===undefined?1:n},ol.source.TileWMS.prototype.getKeyForParams_=function(){var i=0,n=[];for(var t in this.params_)n[i++]=t+"-"+this.params_[t];return n.join("/")},ol.source.TileWMS.prototype.fixedTileUrlFunction=function(n,t,i){var r=this.getTileGrid(),o;if(r||(r=this.getTileGridForProjection(i)),r.getResolutions().length<=n[0])return undefined;t==1||this.hidpi_&&this.serverType_!==undefined||(t=1);var s=r.getResolution(n[0]),f=r.getTileCoordExtent(n,this.tmpExtent_),u=ol.size.toSize(r.getTileSize(n[0]),this.tmpSize),e=this.gutter_;return e!==0&&(u=ol.size.buffer(u,e,this.tmpSize),f=ol.extent.buffer(f,s*e,f)),t!=1&&(u=ol.size.scale(u,t,this.tmpSize)),o={SERVICE:"WMS",VERSION:ol.DEFAULT_WMS_VERSION,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0},ol.obj.assign(o,this.params_),this.getRequestUrl_(n,u,f,t,i,o)},ol.source.TileWMS.prototype.updateParams=function(n){ol.obj.assign(this.params_,n);this.updateV13_();this.setKey(this.getKeyForParams_())},ol.source.TileWMS.prototype.updateV13_=function(){var n=this.params_.VERSION||ol.DEFAULT_WMS_VERSION;this.v13_=ol.string.compareVersions(n,"1.3")>=0},n.provide("ol.VectorImageTile"),n.require("ol"),n.require("ol.Tile"),n.require("ol.TileState"),n.require("ol.dom"),n.require("ol.events"),n.require("ol.extent"),n.require("ol.events.EventType"),n.require("ol.featureloader"),ol.VectorImageTile=function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){if(ol.Tile.call(this,n,t,y),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=h,this.tileKeys=[],this.sourceRevision_=i,this.wrappedTileCoord=f,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],f){var w=s.getTileCoordExtent(f),p=s.getResolution(n[0]),b=o.getZForResolution(p);o.forEachTileCoord(w,b,function(n){var i=ol.extent.getIntersection(w,o.getTileCoordExtent(n)),y=o.getExtent(),f,t,s;y&&(i=ol.extent.getIntersection(i,y));ol.extent.getWidth(i)/p>=.5&&ol.extent.getHeight(i)/p>=.5&&(f=n.toString(),t=h[f],t||(s=e(n,c,l),t=h[f]=new a(n,s==undefined?ol.TileState.EMPTY:ol.TileState.IDLE,s==undefined?"":s,r,u),this.sourceTileListenerKeys_.push(ol.events.listen(t,ol.events.EventType.CHANGE,v))),t.consumers++,this.tileKeys.push(f))}.bind(this))}},ol.inherits(ol.VectorImageTile,ol.Tile),ol.VectorImageTile.prototype.disposeInternal=function(){for(var i,t,n=0,r=this.tileKeys.length;n<r;++n)i=this.tileKeys[n],t=this.getTile(i),t.consumers--,t.consumers==0&&(delete this.sourceTiles_[i],t.dispose());this.tileKeys.length=0;this.sourceTiles_=null;this.loadListenerKeys_.forEach(ol.events.unlistenByKey);this.loadListenerKeys_.length=0;this.interimTile&&this.interimTile.dispose();this.state=ol.TileState.ABORT;this.changed();this.sourceTileListenerKeys_.forEach(ol.events.unlistenByKey);this.sourceTileListenerKeys_.length=0;ol.Tile.prototype.disposeInternal.call(this)},ol.VectorImageTile.prototype.getContext=function(n){var t=ol.getUid(n).toString();return t in this.context_||(this.context_[t]=ol.dom.createCanvasContext2D()),this.context_[t]},ol.VectorImageTile.prototype.getImage=function(n){return this.getReplayState(n).renderedTileRevision==-1?null:this.getContext(n).canvas},ol.VectorImageTile.prototype.getReplayState=function(n){var t=ol.getUid(n).toString();return t in this.replayState_||(this.replayState_[t]={dirty:!1,renderedRenderOrder:null,renderedRevision:-1,renderedTileRevision:-1}),this.replayState_[t]},ol.VectorImageTile.prototype.getKey=function(){return this.tileKeys.join("/")+"-"+this.sourceRevision_},ol.VectorImageTile.prototype.getTile=function(n){return this.sourceTiles_[n]},ol.VectorImageTile.prototype.load=function(){var n=0,t={};this.state==ol.TileState.IDLE&&this.setState(ol.TileState.LOADING);this.state==ol.TileState.LOADING&&this.tileKeys.forEach(function(i){var r=this.getTile(i),u;r.state==ol.TileState.IDLE&&(r.setLoader(this.loader_),r.load());r.state==ol.TileState.LOADING&&(u=ol.events.listen(r,ol.events.EventType.CHANGE,function(){var i=r.getState(),u;(i==ol.TileState.LOADED||i==ol.TileState.ERROR)&&(u=ol.getUid(r),i==ol.TileState.ERROR?t[u]=!0:(--n,delete t[u]),n-Object.keys(t).length==0&&this.finishLoading_())}.bind(this)),this.loadListenerKeys_.push(u),++n)}.bind(this));n-Object.keys(t).length==0&&setTimeout(this.finishLoading_.bind(this),0)},ol.VectorImageTile.prototype.finishLoading_=function(){for(var i,n=this.tileKeys.length,r=0,t=n-1;t>=0;--t)i=this.getTile(this.tileKeys[t]).getState(),i!=ol.TileState.LOADED&&--n,i==ol.TileState.EMPTY&&++r;n==this.tileKeys.length?(this.loadListenerKeys_.forEach(ol.events.unlistenByKey),this.loadListenerKeys_.length=0,this.setState(ol.TileState.LOADED)):this.setState(r==this.tileKeys.length?ol.TileState.EMPTY:ol.TileState.ERROR)},ol.VectorImageTile.defaultLoadFunction=function(n,t){var i=ol.featureloader.loadFeaturesXhr(t,n.getFormat(),n.onLoad.bind(n),n.onError.bind(n));n.setLoader(i)},n.provide("ol.VectorTile"),n.require("ol"),n.require("ol.Tile"),n.require("ol.TileState"),ol.VectorTile=function(n,t,i,r,u,f){ol.Tile.call(this,n,t,f);this.consumers=0;this.extent_=null;this.format_=r;this.features_=null;this.loader_;this.projection_;this.replayGroups_={};this.tileLoadFunction_=u;this.url_=i},ol.inherits(ol.VectorTile,ol.Tile),ol.VectorTile.prototype.disposeInternal=function(){this.features_=null;this.replayGroups_={};this.state=ol.TileState.ABORT;this.changed();ol.Tile.prototype.disposeInternal.call(this)},ol.VectorTile.prototype.getExtent=function(){return this.extent_||ol.VectorTile.DEFAULT_EXTENT},ol.VectorTile.prototype.getFormat=function(){return this.format_},ol.VectorTile.prototype.getFeatures=function(){return this.features_},ol.VectorTile.prototype.getKey=function(){return this.url_},ol.VectorTile.prototype.getProjection=function(){return this.projection_},ol.VectorTile.prototype.getReplayGroup=function(n,t){return this.replayGroups_[ol.getUid(n)+","+t]},ol.VectorTile.prototype.load=function(){this.state==ol.TileState.IDLE&&(this.setState(ol.TileState.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},ol.VectorTile.prototype.onLoad=function(n,t,i){this.setProjection(t);this.setFeatures(n);this.setExtent(i)},ol.VectorTile.prototype.onError=function(){this.setState(ol.TileState.ERROR)},ol.VectorTile.prototype.setExtent=function(n){this.extent_=n},ol.VectorTile.prototype.setFeatures=function(n){this.features_=n;this.setState(ol.TileState.LOADED)},ol.VectorTile.prototype.setProjection=function(n){this.projection_=n},ol.VectorTile.prototype.setReplayGroup=function(n,t,i){this.replayGroups_[ol.getUid(n)+","+t]=i},ol.VectorTile.prototype.setLoader=function(n){this.loader_=n},ol.VectorTile.DEFAULT_EXTENT=[0,0,4096,4096],n.provide("ol.source.VectorTile"),n.require("ol"),n.require("ol.TileState"),n.require("ol.VectorImageTile"),n.require("ol.VectorTile"),n.require("ol.size"),n.require("ol.source.UrlTile"),n.require("ol.tilecoord"),n.require("ol.tilegrid"),ol.source.VectorTile=function(n){var t=n.projection||"EPSG:3857",i=n.extent||ol.tilegrid.extentFromProjection(t),r=n.tileGrid||ol.tilegrid.createXYZ({extent:i,maxZoom:n.maxZoom||22,minZoom:n.minZoom,tileSize:n.tileSize||512});ol.source.UrlTile.call(this,{attributions:n.attributions,cacheSize:n.cacheSize!==undefined?n.cacheSize:128,extent:i,logo:n.logo,opaque:!1,projection:t,state:n.state,tileGrid:r,tileLoadFunction:n.tileLoadFunction?n.tileLoadFunction:ol.VectorImageTile.defaultLoadFunction,tileUrlFunction:n.tileUrlFunction,url:n.url,urls:n.urls,wrapX:n.wrapX===undefined?!0:n.wrapX,transition:n.transition});this.format_=n.format?n.format:null;this.sourceTiles_={};this.overlaps_=n.overlaps==undefined?!0:n.overlaps;this.tileClass=n.tileClass?n.tileClass:ol.VectorTile;this.tileGrids_={}},ol.inherits(ol.source.VectorTile,ol.source.UrlTile),ol.source.VectorTile.prototype.getOverlaps=function(){return this.overlaps_},ol.source.VectorTile.prototype.clear=function(){this.tileCache.clear();this.sourceTiles_={}},ol.source.VectorTile.prototype.getTile=function(n,t,i,r,u){var f=ol.tilecoord.getKeyZXY(n,t,i);if(this.tileCache.containsKey(f))return this.tileCache.get(f);var e=[n,t,i],o=this.getTileCoordForTileUrlFunction(e,u),s=new ol.VectorImageTile(e,o!==null?ol.TileState.IDLE:ol.TileState.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,o,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(u),this.sourceTiles_,r,u,this.tileClass,this.handleTileChange.bind(this),this.tileOptions);return this.tileCache.set(f,s),s},ol.source.VectorTile.prototype.getTileGridForProjection=function(n){var r=n.getCode(),i=this.tileGrids_[r],t;return i||(t=this.tileGrid,i=this.tileGrids_[r]=ol.tilegrid.createForProjection(n,undefined,t?t.getTileSize(t.getMinZoom()):undefined)),i},ol.source.VectorTile.prototype.getTilePixelRatio=function(n){return n},ol.source.VectorTile.prototype.getTilePixelSize=function(n,t,i){var r=ol.size.toSize(this.getTileGridForProjection(i).getTileSize(n));return[Math.round(r[0]*t),Math.round(r[1]*t)]},n.provide("ol.source.WMTSRequestEncoding"),ol.source.WMTSRequestEncoding={KVP:"KVP",REST:"REST"},n.provide("ol.tilegrid.WMTS"),n.require("ol"),n.require("ol.array"),n.require("ol.proj"),n.require("ol.tilegrid.TileGrid"),ol.tilegrid.WMTS=function(n){this.matrixIds_=n.matrixIds;ol.tilegrid.TileGrid.call(this,{extent:n.extent,origin:n.origin,origins:n.origins,resolutions:n.resolutions,tileSize:n.tileSize,tileSizes:n.tileSizes,sizes:n.sizes})},ol.inherits(ol.tilegrid.WMTS,ol.tilegrid.TileGrid),ol.tilegrid.WMTS.prototype.getMatrixId=function(n){return this.matrixIds_[n]},ol.tilegrid.WMTS.prototype.getMatrixIds=function(){return this.matrixIds_},ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet=function(n,t,i){var o=[],s=[],r=[],h=[],c=[],l=i!==undefined?i:[],u="TileMatrix",a="Identifier",f="ScaleDenominator",e="TopLeftCorner",p="TileWidth",w="TileHeight",v=n["SupportedCRS"],y=ol.proj.get(v.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||ol.proj.get(v),b=y.getMetersPerUnit(),k=y.getAxisOrientation().substr(0,2)=="ne";return n[u].sort(function(n,t){return t[f]-n[f]}),n[u].forEach(function(n){var i;if(i=l.length>0?ol.array.find(l,function(t){return n[a]==t[u]}):!0,i){s.push(n[a]);var y=n[f]*.00028/b,t=n[p],v=n[w];k?r.push([n[e][1],n[e][0]]):r.push(n[e]);o.push(y);h.push(t==v?t:[t,v]);c.push([n.MatrixWidth,-n.MatrixHeight])}}),new ol.tilegrid.WMTS({extent:t,origins:r,resolutions:o,matrixIds:s,tileSizes:h,sizes:c})},n.provide("ol.source.WMTS"),n.require("ol"),n.require("ol.TileUrlFunction"),n.require("ol.array"),n.require("ol.extent"),n.require("ol.obj"),n.require("ol.proj"),n.require("ol.source.TileImage"),n.require("ol.source.WMTSRequestEncoding"),n.require("ol.tilegrid.WMTS"),n.require("ol.uri"),ol.source.WMTS=function(n){var t,f,e;this.version_=n.version!==undefined?n.version:"1.0.0";this.format_=n.format!==undefined?n.format:"image/jpeg";this.dimensions_=n.dimensions!==undefined?n.dimensions:{};this.layer_=n.layer;this.matrixSet_=n.matrixSet;this.style_=n.style;t=n.urls;t===undefined&&n.url!==undefined&&(t=ol.TileUrlFunction.expandUrl(n.url));this.requestEncoding_=n.requestEncoding!==undefined?n.requestEncoding:ol.source.WMTSRequestEncoding.KVP;var r=this.requestEncoding_,u=n.tileGrid,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};r==ol.source.WMTSRequestEncoding.KVP&&ol.obj.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_});f=this.dimensions_;this.createFromWMTSTemplate_=function(n){return n=r==ol.source.WMTSRequestEncoding.KVP?ol.uri.appendParams(n,i):n.replace(/\{(\w+?)\}/g,function(n,t){return t.toLowerCase()in i?i[t.toLowerCase()]:n}),function(t){var i,e;return t?(i={TileMatrix:u.getMatrixId(t[0]),TileCol:t[1],TileRow:-t[2]-1},ol.obj.assign(i,f),e=n,r==ol.source.WMTSRequestEncoding.KVP?ol.uri.appendParams(e,i):e.replace(/\{(\w+?)\}/g,function(n,t){return i[t]})):undefined}};e=t&&t.length>0?ol.TileUrlFunction.createFromTileUrlFunctions(t.map(this.createFromWMTSTemplate_)):ol.TileUrlFunction.nullTileUrlFunction;ol.source.TileImage.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,crossOrigin:n.crossOrigin,logo:n.logo,projection:n.projection,reprojectionErrorThreshold:n.reprojectionErrorThreshold,tileClass:n.tileClass,tileGrid:u,tileLoadFunction:n.tileLoadFunction,tilePixelRatio:n.tilePixelRatio,tileUrlFunction:e,urls:t,wrapX:n.wrapX!==undefined?n.wrapX:!1,transition:n.transition});this.setKey(this.getKeyForDimensions_())},ol.inherits(ol.source.WMTS,ol.source.TileImage),ol.source.WMTS.prototype.setUrls=function(n){this.urls=n;var t=n.join("\n");this.setTileUrlFunction(this.fixedTileUrlFunction?this.fixedTileUrlFunction.bind(this):ol.TileUrlFunction.createFromTileUrlFunctions(n.map(this.createFromWMTSTemplate_.bind(this))),t)},ol.source.WMTS.prototype.getDimensions=function(){return this.dimensions_},ol.source.WMTS.prototype.getFormat=function(){return this.format_},ol.source.WMTS.prototype.getLayer=function(){return this.layer_},ol.source.WMTS.prototype.getMatrixSet=function(){return this.matrixSet_},ol.source.WMTS.prototype.getRequestEncoding=function(){return this.requestEncoding_},ol.source.WMTS.prototype.getStyle=function(){return this.style_},ol.source.WMTS.prototype.getVersion=function(){return this.version_},ol.source.WMTS.prototype.getKeyForDimensions_=function(){var i=0,n=[];for(var t in this.dimensions_)n[i++]=t+"-"+this.dimensions_[t];return n.join("/")},ol.source.WMTS.prototype.updateDimensions=function(n){ol.obj.assign(this.dimensions_,n);this.setKey(this.getKeyForDimensions_())},ol.source.WMTS.optionsFromCapabilities=function(n,t){var ft=n.Contents.Layer,i=ol.array.find(ft,function(n){return n.Identifier==t.layer}),d,r,v,g,c,nt,y,l,s,a,it,w,b,o,f,rt,ut,k;if(i===null)return null;d=n.Contents.TileMatrixSet;r=i.TileMatrixSetLink.length>1?"projection"in t?ol.array.findIndex(i.TileMatrixSetLink,function(n){var f=ol.array.find(d,function(t){return t.Identifier==n.TileMatrixSet}),i=f.SupportedCRS,r=ol.proj.get(i.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||ol.proj.get(i),u=ol.proj.get(t.projection);return r&&u?ol.proj.equivalent(r,u):i==t.projection}):ol.array.findIndex(i.TileMatrixSetLink,function(n){return n.TileMatrixSet==t.matrixSet}):0;r<0&&(r=0);v=i.TileMatrixSetLink[r].TileMatrixSet;g=i.TileMatrixSetLink[r].TileMatrixSetLimits;c=i.Format[0];"format"in t&&(c=t.format);r=ol.array.findIndex(i.Style,function(n){return"style"in t?n.Title==t.style:n.isDefault});r<0&&(r=0);nt=i.Style[r].Identifier;y={};"Dimension"in i&&i.Dimension.forEach(function(n){var i=n.Identifier,t=n.Default;t===undefined&&(t=n.Value[0]);y[i]=t});var et=n.Contents.TileMatrixSet,tt=ol.array.find(et,function(n){return n.Identifier==v}),e,p=tt.SupportedCRS;p&&(e=ol.proj.get(p.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||ol.proj.get(p));"projection"in t&&(l=ol.proj.get(t.projection),l&&(!e||ol.proj.equivalent(l,e))&&(e=l));s=i.WGS84BoundingBox;s!==undefined&&(w=ol.proj.get("EPSG:4326").getExtent(),it=s[0]==w[0]&&s[2]==w[2],a=ol.proj.transformExtent(s,"EPSG:4326",e),b=e.getExtent(),b&&(ol.extent.containsExtent(b,a)||(a=undefined)));var ot=ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet(tt,a,g),h=[],u=t.requestEncoding;if(u=u!==undefined?u:"","OperationsMetadata"in n&&"GetTile"in n.OperationsMetadata)for(o=n.OperationsMetadata.GetTile.DCP.HTTP.Get,f=0,rt=o.length;f<rt;++f)if(o[f].Constraint)if(ut=ol.array.find(o[f].Constraint,function(n){return n.name=="GetEncoding"}),k=ut.AllowedValues.Value,u===""&&(u=k[0]),u===ol.source.WMTSRequestEncoding.KVP)ol.array.includes(k,ol.source.WMTSRequestEncoding.KVP)&&h.push(o[f].href);else break;else o[f].href&&(u=ol.source.WMTSRequestEncoding.KVP,h.push(o[f].href));return h.length===0&&(u=ol.source.WMTSRequestEncoding.REST,i.ResourceURL.forEach(function(n){n.resourceType==="tile"&&(c=n.format,h.push(n.template))})),{urls:h,layer:t.layer,matrixSet:v,format:c,projection:e,requestEncoding:u,tileGrid:ot,style:nt,dimensions:y,wrapX:it,crossOrigin:t.crossOrigin}},n.provide("ol.source.Zoomify"),n.require("ol"),n.require("ol.ImageTile"),n.require("ol.TileState"),n.require("ol.TileUrlFunction"),n.require("ol.asserts"),n.require("ol.dom"),n.require("ol.extent"),n.require("ol.size"),n.require("ol.source.TileImage"),n.require("ol.tilegrid.TileGrid"),ol.source.Zoomify=function(n){function nt(n){return function(t){if(t){var i=t[0],u=t[1],f=-t[2]-1,e=u+f*r[i][0],o=l.getTileSize(i),s=(e+c[i])/o|0,h={z:i,x:u,y:f,tileIndex:e,TileGroup:"TileGroup"+s};return n.replace(/\{(\w+?)\}/g,function(n,t){return h[t]})}return undefined}}var t=n||{},e=t.size,g=t.tierSizeCalculation!==undefined?t.tierSizeCalculation:ol.source.Zoomify.TierSizeCalculation_.DEFAULT,a=e[0],v=e[1],y=t.extent||[0,-e[1],e[0],0],r=[],p=t.tileSize||ol.DEFAULT_TILE_SIZE,i=p,o,s,h,c,u,w,l,f,b,k,d;switch(g){case ol.source.Zoomify.TierSizeCalculation_.DEFAULT:while(a>i||v>i)r.push([Math.ceil(a/i),Math.ceil(v/i)]),i+=i;break;case ol.source.Zoomify.TierSizeCalculation_.TRUNCATED:for(o=a,s=v;o>i||s>i;)r.push([Math.ceil(o/i),Math.ceil(s/i)]),o>>=1,s>>=1;break;default:ol.asserts.assert(!1,53)}for(r.push([1,1]),r.reverse(),h=[1],c=[0],u=1,w=r.length;u<w;u++)h.push(1<<u),c.push(r[u-1][0]*r[u-1][1]+c[u-1]);h.reverse();l=new ol.tilegrid.TileGrid({tileSize:p,extent:y,origin:ol.extent.getTopLeft(y),resolutions:h});f=t.url;f&&f.indexOf("{TileGroup}")==-1&&f.indexOf("{tileIndex}")==-1&&(f+="{TileGroup}/{z}-{x}-{y}.jpg");b=ol.TileUrlFunction.expandUrl(f);k=ol.TileUrlFunction.createFromTileUrlFunctions(b.map(nt));d=ol.source.Zoomify.Tile_.bind(null,l);ol.source.TileImage.call(this,{attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,logo:t.logo,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:d,tileGrid:l,tileUrlFunction:k,transition:t.transition})},ol.inherits(ol.source.Zoomify,ol.source.TileImage),ol.source.Zoomify.Tile_=function(n,t,i,r,u,f,e){ol.ImageTile.call(this,t,i,r,u,f,e);this.zoomifyImage_=null;this.tileSize_=ol.size.toSize(n.getTileSize(t[0]))},ol.inherits(ol.source.Zoomify.Tile_,ol.ImageTile),ol.source.Zoomify.Tile_.prototype.getImage=function(){var n,t,i;return this.zoomifyImage_?this.zoomifyImage_:(n=ol.ImageTile.prototype.getImage.call(this),this.state==ol.TileState.LOADED?(t=this.tileSize_,n.width==t[0]&&n.height==t[1]?(this.zoomifyImage_=n,n):(i=ol.dom.createCanvasContext2D(t[0],t[1]),i.drawImage(n,0,0),this.zoomifyImage_=i.canvas,i.canvas)):n)},ol.source.Zoomify.TierSizeCalculation_={DEFAULT:"default",TRUNCATED:"truncated"},n.addDependency("demos/editor/equationeditor.js",["goog.demos.editor.EquationEditor"],["goog.ui.equation.EquationEditorDialog"]),n.addDependency("demos/editor/helloworld.js",["goog.demos.editor.HelloWorld"],["goog.dom","goog.dom.TagName","goog.editor.Plugin"]),n.addDependency("demos/editor/helloworlddialog.js",["goog.demos.editor.HelloWorldDialog","goog.demos.editor.HelloWorldDialog.OkEvent"],["goog.dom.TagName","goog.events.Event","goog.string","goog.ui.editor.AbstractDialog","goog.ui.editor.AbstractDialog.Builder","goog.ui.editor.AbstractDialog.EventType"]),n.addDependency("demos/editor/helloworlddialogplugin.js",["goog.demos.editor.HelloWorldDialogPlugin","goog.demos.editor.HelloWorldDialogPlugin.Command"],["goog.demos.editor.HelloWorldDialog","goog.dom.TagName","goog.editor.plugins.AbstractDialogPlugin","goog.editor.range","goog.functions","goog.ui.editor.AbstractDialog.EventType"]),n.require("ol"),n.require("ol.AssertionError"),n.require("ol.Attribution"),n.require("ol.CanvasMap"),n.require("ol.Collection"),n.require("ol.DeviceOrientation"),n.require("ol.Feature"),n.require("ol.Geolocation"),n.require("ol.Graticule"),n.require("ol.Image"),n.require("ol.ImageTile"),n.require("ol.Kinetic"),n.require("ol.Map"),n.require("ol.MapBrowserEvent"),n.require("ol.MapEvent"),n.require("ol.Object"),n.require("ol.Observable"),n.require("ol.Overlay"),n.require("ol.PluggableMap"),n.require("ol.Sphere"),n.require("ol.Tile"),n.require("ol.VectorTile"),n.require("ol.View"),n.require("ol.color"),n.require("ol.colorlike"),n.require("ol.control"),n.require("ol.control.Attribution"),n.require("ol.control.Control"),n.require("ol.control.FullScreen"),n.require("ol.control.MousePosition"),n.require("ol.control.OverviewMap"),n.require("ol.control.Rotate"),n.require("ol.control.ScaleLine"),n.require("ol.control.Zoom"),n.require("ol.control.ZoomSlider"),n.require("ol.control.ZoomToExtent"),n.require("ol.coordinate"),n.require("ol.easing"),n.require("ol.events.Event"),n.require("ol.events.condition"),n.require("ol.extent"),n.require("ol.featureloader"),n.require("ol.format.EsriJSON"),n.require("ol.format.Feature"),n.require("ol.format.GML"),n.require("ol.format.GML2"),n.require("ol.format.GML3"),n.require("ol.format.GMLBase"),n.require("ol.format.GPX"),n.require("ol.format.GeoJSON"),n.require("ol.format.IGC"),n.require("ol.format.KML"),n.require("ol.format.MVT"),n.require("ol.format.OSMXML"),n.require("ol.format.Polyline"),n.require("ol.format.TopoJSON"),n.require("ol.format.WFS"),n.require("ol.format.WKT"),n.require("ol.format.WMSCapabilities"),n.require("ol.format.WMSGetFeatureInfo"),n.require("ol.format.WMTSCapabilities"),n.require("ol.format.filter"),n.require("ol.format.filter.And"),n.require("ol.format.filter.Bbox"),n.require("ol.format.filter.Comparison"),n.require("ol.format.filter.ComparisonBinary"),n.require("ol.format.filter.Contains"),n.require("ol.format.filter.During"),n.require("ol.format.filter.EqualTo"),n.require("ol.format.filter.Filter"),n.require("ol.format.filter.GreaterThan"),n.require("ol.format.filter.GreaterThanOrEqualTo"),n.require("ol.format.filter.Intersects"),n.require("ol.format.filter.IsBetween"),n.require("ol.format.filter.IsLike"),n.require("ol.format.filter.IsNull"),n.require("ol.format.filter.LessThan"),n.require("ol.format.filter.LessThanOrEqualTo"),n.require("ol.format.filter.Not"),n.require("ol.format.filter.NotEqualTo"),n.require("ol.format.filter.Or"),n.require("ol.format.filter.Spatial"),n.require("ol.format.filter.Within"),n.require("ol.geom.Circle"),n.require("ol.geom.Geometry"),n.require("ol.geom.GeometryCollection"),n.require("ol.geom.LineString"),n.require("ol.geom.LinearRing"),n.require("ol.geom.MultiLineString"),n.require("ol.geom.MultiPoint"),n.require("ol.geom.MultiPolygon"),n.require("ol.geom.Point"),n.require("ol.geom.Polygon"),n.require("ol.geom.SimpleGeometry"),n.require("ol.has"),n.require("ol.interaction"),n.require("ol.interaction.DoubleClickZoom"),n.require("ol.interaction.DragAndDrop"),n.require("ol.interaction.DragBox"),n.require("ol.interaction.DragPan"),n.require("ol.interaction.DragRotate"),n.require("ol.interaction.DragRotateAndZoom"),n.require("ol.interaction.DragZoom"),n.require("ol.interaction.Draw"),n.require("ol.interaction.Extent"),n.require("ol.interaction.Interaction"),n.require("ol.interaction.KeyboardPan"),n.require("ol.interaction.KeyboardZoom"),n.require("ol.interaction.Modify"),n.require("ol.interaction.MouseWheelZoom"),n.require("ol.interaction.PinchRotate"),n.require("ol.interaction.PinchZoom"),n.require("ol.interaction.Pointer"),n.require("ol.interaction.Select"),n.require("ol.interaction.Snap"),n.require("ol.interaction.Translate"),n.require("ol.layer.Base"),n.require("ol.layer.Group"),n.require("ol.layer.Heatmap"),n.require("ol.layer.Image"),n.require("ol.layer.Layer"),n.require("ol.layer.Tile"),n.require("ol.layer.Vector"),n.require("ol.layer.VectorTile"),n.require("ol.loadingstrategy"),n.require("ol.proj"),n.require("ol.proj.Projection"),n.require("ol.proj.Units"),n.require("ol.proj.common"),n.require("ol.render"),n.require("ol.render.Event"),n.require("ol.render.Feature"),n.require("ol.render.VectorContext"),n.require("ol.render.canvas.Immediate"),n.require("ol.render.webgl.Immediate"),n.require("ol.renderer.canvas.ImageLayer"),n.require("ol.renderer.canvas.Map"),n.require("ol.renderer.canvas.TileLayer"),n.require("ol.renderer.canvas.VectorLayer"),n.require("ol.renderer.canvas.VectorTileLayer"),n.require("ol.renderer.webgl.ImageLayer"),n.require("ol.renderer.webgl.Map"),n.require("ol.renderer.webgl.TileLayer"),n.require("ol.renderer.webgl.VectorLayer"),n.require("ol.size"),n.require("ol.source.BingMaps"),n.require("ol.source.CartoDB"),n.require("ol.source.Cluster"),n.require("ol.source.Image"),n.require("ol.source.ImageArcGISRest"),n.require("ol.source.ImageCanvas"),n.require("ol.source.ImageMapGuide"),n.require("ol.source.ImageStatic"),n.require("ol.source.ImageVector"),n.require("ol.source.ImageWMS"),n.require("ol.source.OSM"),n.require("ol.source.Raster"),n.require("ol.source.Source"),n.require("ol.source.Stamen"),n.require("ol.source.Tile"),n.require("ol.source.TileArcGISRest"),n.require("ol.source.TileDebug"),n.require("ol.source.TileImage"),n.require("ol.source.TileJSON"),n.require("ol.source.TileUTFGrid"),n.require("ol.source.TileWMS"),n.require("ol.source.UrlTile"),n.require("ol.source.Vector"),n.require("ol.source.VectorTile"),n.require("ol.source.WMTS"),n.require("ol.source.XYZ"),n.require("ol.source.Zoomify"),n.require("ol.style"),n.require("ol.style.AtlasManager"),n.require("ol.style.Circle"),n.require("ol.style.Fill"),n.require("ol.style.Icon"),n.require("ol.style.IconImageCache"),n.require("ol.style.Image"),n.require("ol.style.RegularShape"),n.require("ol.style.Stroke"),n.require("ol.style.Style"),n.require("ol.style.Text"),n.require("ol.tilegrid"),n.require("ol.tilegrid.TileGrid"),n.require("ol.tilegrid.WMTS"),n.require("ol.webgl.Context"),n.require("ol.xml"),n.exportProperty(ol.AssertionError.prototype,"code",ol.AssertionError.prototype.code),n.exportSymbol("ol.Attribution",ol.Attribution,t),n.exportProperty(ol.Attribution.prototype,"getHTML",ol.Attribution.prototype.getHTML),n.exportSymbol("ol.CanvasMap",ol.CanvasMap,t),n.exportSymbol("ol.Collection",ol.Collection,t),n.exportProperty(ol.Collection.prototype,"clear",ol.Collection.prototype.clear),n.exportProperty(ol.Collection.prototype,"extend",ol.Collection.prototype.extend),n.exportProperty(ol.Collection.prototype,"forEach",ol.Collection.prototype.forEach),n.exportProperty(ol.Collection.prototype,"getArray",ol.Collection.prototype.getArray),n.exportProperty(ol.Collection.prototype,"item",ol.Collection.prototype.item),n.exportProperty(ol.Collection.prototype,"getLength",ol.Collection.prototype.getLength),n.exportProperty(ol.Collection.prototype,"insertAt",ol.Collection.prototype.insertAt),n.exportProperty(ol.Collection.prototype,"pop",ol.Collection.prototype.pop),n.exportProperty(ol.Collection.prototype,"push",ol.Collection.prototype.push),n.exportProperty(ol.Collection.prototype,"remove",ol.Collection.prototype.remove),n.exportProperty(ol.Collection.prototype,"removeAt",ol.Collection.prototype.removeAt),n.exportProperty(ol.Collection.prototype,"setAt",ol.Collection.prototype.setAt),n.exportProperty(ol.Collection.Event.prototype,"element",ol.Collection.Event.prototype.element),n.exportSymbol("ol.color.asArray",ol.color.asArray,t),n.exportSymbol("ol.color.asString",ol.color.asString,t),n.exportSymbol("ol.colorlike.asColorLike",ol.colorlike.asColorLike,t),n.exportSymbol("ol.control.defaults",ol.control.defaults,t),n.exportSymbol("ol.coordinate.add",ol.coordinate.add,t),n.exportSymbol("ol.coordinate.createStringXY",ol.coordinate.createStringXY,t),n.exportSymbol("ol.coordinate.format",ol.coordinate.format,t),n.exportSymbol("ol.coordinate.rotate",ol.coordinate.rotate,t),n.exportSymbol("ol.coordinate.toStringHDMS",ol.coordinate.toStringHDMS,t),n.exportSymbol("ol.coordinate.toStringXY",ol.coordinate.toStringXY,t),n.exportSymbol("ol.DeviceOrientation",ol.DeviceOrientation,t),n.exportProperty(ol.DeviceOrientation.prototype,"getAlpha",ol.DeviceOrientation.prototype.getAlpha),n.exportProperty(ol.DeviceOrientation.prototype,"getBeta",ol.DeviceOrientation.prototype.getBeta),n.exportProperty(ol.DeviceOrientation.prototype,"getGamma",ol.DeviceOrientation.prototype.getGamma),n.exportProperty(ol.DeviceOrientation.prototype,"getHeading",ol.DeviceOrientation.prototype.getHeading),n.exportProperty(ol.DeviceOrientation.prototype,"getTracking",ol.DeviceOrientation.prototype.getTracking),n.exportProperty(ol.DeviceOrientation.prototype,"setTracking",ol.DeviceOrientation.prototype.setTracking),n.exportSymbol("ol.easing.easeIn",ol.easing.easeIn,t),n.exportSymbol("ol.easing.easeOut",ol.easing.easeOut,t),n.exportSymbol("ol.easing.inAndOut",ol.easing.inAndOut,t),n.exportSymbol("ol.easing.linear",ol.easing.linear,t),n.exportSymbol("ol.easing.upAndDown",ol.easing.upAndDown,t),n.exportSymbol("ol.extent.boundingExtent",ol.extent.boundingExtent,t),n.exportSymbol("ol.extent.buffer",ol.extent.buffer,t),n.exportSymbol("ol.extent.containsCoordinate",ol.extent.containsCoordinate,t),n.exportSymbol("ol.extent.containsExtent",ol.extent.containsExtent,t),n.exportSymbol("ol.extent.containsXY",ol.extent.containsXY,t),n.exportSymbol("ol.extent.createEmpty",ol.extent.createEmpty,t),n.exportSymbol("ol.extent.equals",ol.extent.equals,t),n.exportSymbol("ol.extent.extend",ol.extent.extend,t),n.exportSymbol("ol.extent.getArea",ol.extent.getArea,t),n.exportSymbol("ol.extent.getBottomLeft",ol.extent.getBottomLeft,t),n.exportSymbol("ol.extent.getBottomRight",ol.extent.getBottomRight,t),n.exportSymbol("ol.extent.getCenter",ol.extent.getCenter,t),n.exportSymbol("ol.extent.getHeight",ol.extent.getHeight,t),n.exportSymbol("ol.extent.getIntersection",ol.extent.getIntersection,t),n.exportSymbol("ol.extent.getSize",ol.extent.getSize,t),n.exportSymbol("ol.extent.getTopLeft",ol.extent.getTopLeft,t),n.exportSymbol("ol.extent.getTopRight",ol.extent.getTopRight,t),n.exportSymbol("ol.extent.getWidth",ol.extent.getWidth,t),n.exportSymbol("ol.extent.intersects",ol.extent.intersects,t),n.exportSymbol("ol.extent.isEmpty",ol.extent.isEmpty,t),n.exportSymbol("ol.extent.applyTransform",ol.extent.applyTransform,t),n.exportSymbol("ol.Feature",ol.Feature,t),n.exportProperty(ol.Feature.prototype,"clone",ol.Feature.prototype.clone),n.exportProperty(ol.Feature.prototype,"getGeometry",ol.Feature.prototype.getGeometry),n.exportProperty(ol.Feature.prototype,"getId",ol.Feature.prototype.getId),n.exportProperty(ol.Feature.prototype,"getGeometryName",ol.Feature.prototype.getGeometryName),n.exportProperty(ol.Feature.prototype,"getStyle",ol.Feature.prototype.getStyle),n.exportProperty(ol.Feature.prototype,"getStyleFunction",ol.Feature.prototype.getStyleFunction),n.exportProperty(ol.Feature.prototype,"setGeometry",ol.Feature.prototype.setGeometry),n.exportProperty(ol.Feature.prototype,"setStyle",ol.Feature.prototype.setStyle),n.exportProperty(ol.Feature.prototype,"setId",ol.Feature.prototype.setId),n.exportProperty(ol.Feature.prototype,"setGeometryName",ol.Feature.prototype.setGeometryName),n.exportSymbol("ol.featureloader.xhr",ol.featureloader.xhr,t),n.exportSymbol("ol.Geolocation",ol.Geolocation,t),n.exportProperty(ol.Geolocation.prototype,"getAccuracy",ol.Geolocation.prototype.getAccuracy),n.exportProperty(ol.Geolocation.prototype,"getAccuracyGeometry",ol.Geolocation.prototype.getAccuracyGeometry),n.exportProperty(ol.Geolocation.prototype,"getAltitude",ol.Geolocation.prototype.getAltitude),n.exportProperty(ol.Geolocation.prototype,"getAltitudeAccuracy",ol.Geolocation.prototype.getAltitudeAccuracy),n.exportProperty(ol.Geolocation.prototype,"getHeading",ol.Geolocation.prototype.getHeading),n.exportProperty(ol.Geolocation.prototype,"getPosition",ol.Geolocation.prototype.getPosition),n.exportProperty(ol.Geolocation.prototype,"getProjection",ol.Geolocation.prototype.getProjection),n.exportProperty(ol.Geolocation.prototype,"getSpeed",ol.Geolocation.prototype.getSpeed),n.exportProperty(ol.Geolocation.prototype,"getTracking",ol.Geolocation.prototype.getTracking),n.exportProperty(ol.Geolocation.prototype,"getTrackingOptions",ol.Geolocation.prototype.getTrackingOptions),n.exportProperty(ol.Geolocation.prototype,"setProjection",ol.Geolocation.prototype.setProjection),n.exportProperty(ol.Geolocation.prototype,"setTracking",ol.Geolocation.prototype.setTracking),n.exportProperty(ol.Geolocation.prototype,"setTrackingOptions",ol.Geolocation.prototype.setTrackingOptions),n.exportSymbol("ol.Graticule",ol.Graticule,t),n.exportProperty(ol.Graticule.prototype,"getMap",ol.Graticule.prototype.getMap),n.exportProperty(ol.Graticule.prototype,"getMeridians",ol.Graticule.prototype.getMeridians),n.exportProperty(ol.Graticule.prototype,"getParallels",ol.Graticule.prototype.getParallels),n.exportProperty(ol.Graticule.prototype,"setMap",ol.Graticule.prototype.setMap),n.exportSymbol("ol.has.DEVICE_PIXEL_RATIO",ol.has.DEVICE_PIXEL_RATIO,t),n.exportSymbol("ol.has.CANVAS",ol.has.CANVAS,t),n.exportSymbol("ol.has.DEVICE_ORIENTATION",ol.has.DEVICE_ORIENTATION,t),n.exportSymbol("ol.has.GEOLOCATION",ol.has.GEOLOCATION,t),n.exportSymbol("ol.has.TOUCH",ol.has.TOUCH,t),n.exportSymbol("ol.has.WEBGL",ol.has.WEBGL,t),n.exportProperty(ol.Image.prototype,"getImage",ol.Image.prototype.getImage),n.exportProperty(ol.Image.prototype,"load",ol.Image.prototype.load),n.exportProperty(ol.ImageTile.prototype,"getImage",ol.ImageTile.prototype.getImage),n.exportSymbol("ol.inherits",ol.inherits,t),n.exportSymbol("ol.interaction.defaults",ol.interaction.defaults,t),n.exportSymbol("ol.Kinetic",ol.Kinetic,t),n.exportSymbol("ol.loadingstrategy.all",ol.loadingstrategy.all,t),n.exportSymbol("ol.loadingstrategy.bbox",ol.loadingstrategy.bbox,t),n.exportSymbol("ol.loadingstrategy.tile",ol.loadingstrategy.tile,t),n.exportSymbol("ol.Map",ol.Map,t),n.exportProperty(ol.MapBrowserEvent.prototype,"originalEvent",ol.MapBrowserEvent.prototype.originalEvent),n.exportProperty(ol.MapBrowserEvent.prototype,"pixel",ol.MapBrowserEvent.prototype.pixel),n.exportProperty(ol.MapBrowserEvent.prototype,"coordinate",ol.MapBrowserEvent.prototype.coordinate),n.exportProperty(ol.MapBrowserEvent.prototype,"dragging",ol.MapBrowserEvent.prototype.dragging),n.exportProperty(ol.MapEvent.prototype,"map",ol.MapEvent.prototype.map),n.exportProperty(ol.MapEvent.prototype,"frameState",ol.MapEvent.prototype.frameState),n.exportSymbol("ol.Object",ol.Object,t),n.exportProperty(ol.Object.prototype,"get",ol.Object.prototype.get),n.exportProperty(ol.Object.prototype,"getKeys",ol.Object.prototype.getKeys),n.exportProperty(ol.Object.prototype,"getProperties",ol.Object.prototype.getProperties),n.exportProperty(ol.Object.prototype,"set",ol.Object.prototype.set),n.exportProperty(ol.Object.prototype,"setProperties",ol.Object.prototype.setProperties),n.exportProperty(ol.Object.prototype,"unset",ol.Object.prototype.unset),n.exportProperty(ol.Object.Event.prototype,"key",ol.Object.Event.prototype.key),n.exportProperty(ol.Object.Event.prototype,"oldValue",ol.Object.Event.prototype.oldValue),n.exportSymbol("ol.Observable",ol.Observable,t),n.exportSymbol("ol.Observable.unByKey",ol.Observable.unByKey,t),n.exportProperty(ol.Observable.prototype,"changed",ol.Observable.prototype.changed),n.exportProperty(ol.Observable.prototype,"dispatchEvent",ol.Observable.prototype.dispatchEvent),n.exportProperty(ol.Observable.prototype,"getRevision",ol.Observable.prototype.getRevision),n.exportProperty(ol.Observable.prototype,"on",ol.Observable.prototype.on),n.exportProperty(ol.Observable.prototype,"once",ol.Observable.prototype.once),n.exportProperty(ol.Observable.prototype,"un",ol.Observable.prototype.un),n.exportSymbol("ol.Overlay",ol.Overlay,t),n.exportProperty(ol.Overlay.prototype,"getElement",ol.Overlay.prototype.getElement),n.exportProperty(ol.Overlay.prototype,"getId",ol.Overlay.prototype.getId),n.exportProperty(ol.Overlay.prototype,"getMap",ol.Overlay.prototype.getMap),n.exportProperty(ol.Overlay.prototype,"getOffset",ol.Overlay.prototype.getOffset),n.exportProperty(ol.Overlay.prototype,"getPosition",ol.Overlay.prototype.getPosition),n.exportProperty(ol.Overlay.prototype,"getPositioning",ol.Overlay.prototype.getPositioning),n.exportProperty(ol.Overlay.prototype,"setElement",ol.Overlay.prototype.setElement),n.exportProperty(ol.Overlay.prototype,"setMap",ol.Overlay.prototype.setMap),n.exportProperty(ol.Overlay.prototype,"setOffset",ol.Overlay.prototype.setOffset),n.exportProperty(ol.Overlay.prototype,"setPosition",ol.Overlay.prototype.setPosition),n.exportProperty(ol.Overlay.prototype,"setPositioning",ol.Overlay.prototype.setPositioning),n.exportSymbol("ol.PluggableMap",ol.PluggableMap,t),n.exportProperty(ol.PluggableMap.prototype,"addControl",ol.PluggableMap.prototype.addControl),n.exportProperty(ol.PluggableMap.prototype,"addInteraction",ol.PluggableMap.prototype.addInteraction),n.exportProperty(ol.PluggableMap.prototype,"addLayer",ol.PluggableMap.prototype.addLayer),n.exportProperty(ol.PluggableMap.prototype,"addOverlay",ol.PluggableMap.prototype.addOverlay),n.exportProperty(ol.PluggableMap.prototype,"forEachFeatureAtPixel",ol.PluggableMap.prototype.forEachFeatureAtPixel),n.exportProperty(ol.PluggableMap.prototype,"getFeaturesAtPixel",ol.PluggableMap.prototype.getFeaturesAtPixel),n.exportProperty(ol.PluggableMap.prototype,"forEachLayerAtPixel",ol.PluggableMap.prototype.forEachLayerAtPixel),n.exportProperty(ol.PluggableMap.prototype,"hasFeatureAtPixel",ol.PluggableMap.prototype.hasFeatureAtPixel),n.exportProperty(ol.PluggableMap.prototype,"getEventCoordinate",ol.PluggableMap.prototype.getEventCoordinate),n.exportProperty(ol.PluggableMap.prototype,"getEventPixel",ol.PluggableMap.prototype.getEventPixel),n.exportProperty(ol.PluggableMap.prototype,"getTarget",ol.PluggableMap.prototype.getTarget),n.exportProperty(ol.PluggableMap.prototype,"getTargetElement",ol.PluggableMap.prototype.getTargetElement),n.exportProperty(ol.PluggableMap.prototype,"getCoordinateFromPixel",ol.PluggableMap.prototype.getCoordinateFromPixel),n.exportProperty(ol.PluggableMap.prototype,"getControls",ol.PluggableMap.prototype.getControls),n.exportProperty(ol.PluggableMap.prototype,"getOverlays",ol.PluggableMap.prototype.getOverlays),n.exportProperty(ol.PluggableMap.prototype,"getOverlayById",ol.PluggableMap.prototype.getOverlayById),n.exportProperty(ol.PluggableMap.prototype,"getInteractions",ol.PluggableMap.prototype.getInteractions),n.exportProperty(ol.PluggableMap.prototype,"getLayerGroup",ol.PluggableMap.prototype.getLayerGroup),n.exportProperty(ol.PluggableMap.prototype,"getLayers",ol.PluggableMap.prototype.getLayers),n.exportProperty(ol.PluggableMap.prototype,"getPixelFromCoordinate",ol.PluggableMap.prototype.getPixelFromCoordinate),n.exportProperty(ol.PluggableMap.prototype,"getSize",ol.PluggableMap.prototype.getSize),n.exportProperty(ol.PluggableMap.prototype,"getView",ol.PluggableMap.prototype.getView),n.exportProperty(ol.PluggableMap.prototype,"getViewport",ol.PluggableMap.prototype.getViewport),n.exportProperty(ol.PluggableMap.prototype,"renderSync",ol.PluggableMap.prototype.renderSync),n.exportProperty(ol.PluggableMap.prototype,"render",ol.PluggableMap.prototype.render),n.exportProperty(ol.PluggableMap.prototype,"removeControl",ol.PluggableMap.prototype.removeControl),n.exportProperty(ol.PluggableMap.prototype,"removeInteraction",ol.PluggableMap.prototype.removeInteraction),n.exportProperty(ol.PluggableMap.prototype,"removeLayer",ol.PluggableMap.prototype.removeLayer),n.exportProperty(ol.PluggableMap.prototype,"removeOverlay",ol.PluggableMap.prototype.removeOverlay),n.exportProperty(ol.PluggableMap.prototype,"setLayerGroup",ol.PluggableMap.prototype.setLayerGroup),n.exportProperty(ol.PluggableMap.prototype,"setSize",ol.PluggableMap.prototype.setSize),n.exportProperty(ol.PluggableMap.prototype,"setTarget",ol.PluggableMap.prototype.setTarget),n.exportProperty(ol.PluggableMap.prototype,"setView",ol.PluggableMap.prototype.setView),n.exportProperty(ol.PluggableMap.prototype,"updateSize",ol.PluggableMap.prototype.updateSize),n.exportSymbol("ol.proj.METERS_PER_UNIT",ol.proj.METERS_PER_UNIT,t),n.exportSymbol("ol.proj.setProj4",ol.proj.setProj4,t),n.exportSymbol("ol.proj.getPointResolution",ol.proj.getPointResolution,t),n.exportSymbol("ol.proj.addEquivalentProjections",ol.proj.addEquivalentProjections,t),n.exportSymbol("ol.proj.addProjection",ol.proj.addProjection,t),n.exportSymbol("ol.proj.addCoordinateTransforms",ol.proj.addCoordinateTransforms,t),n.exportSymbol("ol.proj.fromLonLat",ol.proj.fromLonLat,t),n.exportSymbol("ol.proj.toLonLat",ol.proj.toLonLat,t),n.exportSymbol("ol.proj.get",ol.proj.get,t),n.exportSymbol("ol.proj.equivalent",ol.proj.equivalent,t),n.exportSymbol("ol.proj.getTransform",ol.proj.getTransform,t),n.exportSymbol("ol.proj.transform",ol.proj.transform,t),n.exportSymbol("ol.proj.transformExtent",ol.proj.transformExtent,t),n.exportSymbol("ol.render.toContext",ol.render.toContext,t),n.exportSymbol("ol.size.toSize",ol.size.toSize,t),n.exportSymbol("ol.Sphere",ol.Sphere,t),n.exportProperty(ol.Sphere.prototype,"geodesicArea",ol.Sphere.prototype.geodesicArea),n.exportProperty(ol.Sphere.prototype,"haversineDistance",ol.Sphere.prototype.haversineDistance),n.exportSymbol("ol.Sphere.getLength",ol.Sphere.getLength,t),n.exportSymbol("ol.Sphere.getArea",ol.Sphere.getArea,t),n.exportSymbol("ol.style.iconImageCache",ol.style.iconImageCache,t),n.exportProperty(ol.Tile.prototype,"getTileCoord",ol.Tile.prototype.getTileCoord),n.exportProperty(ol.Tile.prototype,"load",ol.Tile.prototype.load),n.exportSymbol("ol.tilegrid.createXYZ",ol.tilegrid.createXYZ,t),n.exportProperty(ol.VectorTile.prototype,"getExtent",ol.VectorTile.prototype.getExtent),n.exportProperty(ol.VectorTile.prototype,"getFormat",ol.VectorTile.prototype.getFormat),n.exportProperty(ol.VectorTile.prototype,"getFeatures",ol.VectorTile.prototype.getFeatures),n.exportProperty(ol.VectorTile.prototype,"getProjection",ol.VectorTile.prototype.getProjection),n.exportProperty(ol.VectorTile.prototype,"setExtent",ol.VectorTile.prototype.setExtent),n.exportProperty(ol.VectorTile.prototype,"setFeatures",ol.VectorTile.prototype.setFeatures),n.exportProperty(ol.VectorTile.prototype,"setProjection",ol.VectorTile.prototype.setProjection),n.exportProperty(ol.VectorTile.prototype,"setLoader",ol.VectorTile.prototype.setLoader),n.exportSymbol("ol.View",ol.View,t),n.exportProperty(ol.View.prototype,"animate",ol.View.prototype.animate),n.exportProperty(ol.View.prototype,"getAnimating",ol.View.prototype.getAnimating),n.exportProperty(ol.View.prototype,"getInteracting",ol.View.prototype.getInteracting),n.exportProperty(ol.View.prototype,"cancelAnimations",ol.View.prototype.cancelAnimations),n.exportProperty(ol.View.prototype,"constrainCenter",ol.View.prototype.constrainCenter),n.exportProperty(ol.View.prototype,"constrainResolution",ol.View.prototype.constrainResolution),n.exportProperty(ol.View.prototype,"constrainRotation",ol.View.prototype.constrainRotation),n.exportProperty(ol.View.prototype,"getCenter",ol.View.prototype.getCenter),n.exportProperty(ol.View.prototype,"calculateExtent",ol.View.prototype.calculateExtent),n.exportProperty(ol.View.prototype,"getMaxResolution",ol.View.prototype.getMaxResolution),n.exportProperty(ol.View.prototype,"getMinResolution",ol.View.prototype.getMinResolution),n.exportProperty(ol.View.prototype,"getMaxZoom",ol.View.prototype.getMaxZoom),n.exportProperty(ol.View.prototype,"setMaxZoom",ol.View.prototype.setMaxZoom),n.exportProperty(ol.View.prototype,"getMinZoom",ol.View.prototype.getMinZoom),n.exportProperty(ol.View.prototype,"setMinZoom",ol.View.prototype.setMinZoom),n.exportProperty(ol.View.prototype,"getProjection",ol.View.prototype.getProjection),n.exportProperty(ol.View.prototype,"getResolution",ol.View.prototype.getResolution),n.exportProperty(ol.View.prototype,"getResolutions",ol.View.prototype.getResolutions),n.exportProperty(ol.View.prototype,"getResolutionForExtent",ol.View.prototype.getResolutionForExtent),n.exportProperty(ol.View.prototype,"getRotation",ol.View.prototype.getRotation),n.exportProperty(ol.View.prototype,"getZoom",ol.View.prototype.getZoom),n.exportProperty(ol.View.prototype,"getZoomForResolution",ol.View.prototype.getZoomForResolution),n.exportProperty(ol.View.prototype,"getResolutionForZoom",ol.View.prototype.getResolutionForZoom),n.exportProperty(ol.View.prototype,"fit",ol.View.prototype.fit),n.exportProperty(ol.View.prototype,"centerOn",ol.View.prototype.centerOn),n.exportProperty(ol.View.prototype,"rotate",ol.View.prototype.rotate),n.exportProperty(ol.View.prototype,"setCenter",ol.View.prototype.setCenter),n.exportProperty(ol.View.prototype,"setResolution",ol.View.prototype.setResolution),n.exportProperty(ol.View.prototype,"setRotation",ol.View.prototype.setRotation),n.exportProperty(ol.View.prototype,"setZoom",ol.View.prototype.setZoom),n.exportSymbol("ol.xml.getAllTextContent",ol.xml.getAllTextContent,t),n.exportSymbol("ol.xml.parse",ol.xml.parse,t),n.exportProperty(ol.webgl.Context.prototype,"getGL",ol.webgl.Context.prototype.getGL),n.exportProperty(ol.webgl.Context.prototype,"useProgram",ol.webgl.Context.prototype.useProgram),n.exportSymbol("ol.tilegrid.TileGrid",ol.tilegrid.TileGrid,t),n.exportProperty(ol.tilegrid.TileGrid.prototype,"forEachTileCoord",ol.tilegrid.TileGrid.prototype.forEachTileCoord),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getMaxZoom",ol.tilegrid.TileGrid.prototype.getMaxZoom),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getMinZoom",ol.tilegrid.TileGrid.prototype.getMinZoom),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getOrigin",ol.tilegrid.TileGrid.prototype.getOrigin),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getResolution",ol.tilegrid.TileGrid.prototype.getResolution),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getResolutions",ol.tilegrid.TileGrid.prototype.getResolutions),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getTileCoordExtent",ol.tilegrid.TileGrid.prototype.getTileCoordExtent),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getTileCoordForCoordAndResolution",ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getTileCoordForCoordAndZ",ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndZ),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getTileSize",ol.tilegrid.TileGrid.prototype.getTileSize),n.exportProperty(ol.tilegrid.TileGrid.prototype,"getZForResolution",ol.tilegrid.TileGrid.prototype.getZForResolution),n.exportSymbol("ol.tilegrid.WMTS",ol.tilegrid.WMTS,t),n.exportProperty(ol.tilegrid.WMTS.prototype,"getMatrixIds",ol.tilegrid.WMTS.prototype.getMatrixIds),n.exportSymbol("ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet",ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet,t),n.exportSymbol("ol.style.AtlasManager",ol.style.AtlasManager,t),n.exportSymbol("ol.style.Circle",ol.style.Circle,t),n.exportProperty(ol.style.Circle.prototype,"setRadius",ol.style.Circle.prototype.setRadius),n.exportSymbol("ol.style.Fill",ol.style.Fill,t),n.exportProperty(ol.style.Fill.prototype,"clone",ol.style.Fill.prototype.clone),n.exportProperty(ol.style.Fill.prototype,"getColor",ol.style.Fill.prototype.getColor),n.exportProperty(ol.style.Fill.prototype,"setColor",ol.style.Fill.prototype.setColor),n.exportSymbol("ol.style.Icon",ol.style.Icon,t),n.exportProperty(ol.style.Icon.prototype,"clone",ol.style.Icon.prototype.clone),n.exportProperty(ol.style.Icon.prototype,"getAnchor",ol.style.Icon.prototype.getAnchor),n.exportProperty(ol.style.Icon.prototype,"getColor",ol.style.Icon.prototype.getColor),n.exportProperty(ol.style.Icon.prototype,"getImage",ol.style.Icon.prototype.getImage),n.exportProperty(ol.style.Icon.prototype,"getOrigin",ol.style.Icon.prototype.getOrigin),n.exportProperty(ol.style.Icon.prototype,"getSrc",ol.style.Icon.prototype.getSrc),n.exportProperty(ol.style.Icon.prototype,"getSize",ol.style.Icon.prototype.getSize),n.exportProperty(ol.style.Icon.prototype,"load",ol.style.Icon.prototype.load),n.exportProperty(ol.style.IconImageCache.prototype,"setSize",ol.style.IconImageCache.prototype.setSize),n.exportSymbol("ol.style.Image",ol.style.Image,t),n.exportProperty(ol.style.Image.prototype,"getOpacity",ol.style.Image.prototype.getOpacity),n.exportProperty(ol.style.Image.prototype,"getRotateWithView",ol.style.Image.prototype.getRotateWithView),n.exportProperty(ol.style.Image.prototype,"getRotation",ol.style.Image.prototype.getRotation),n.exportProperty(ol.style.Image.prototype,"getScale",ol.style.Image.prototype.getScale),n.exportProperty(ol.style.Image.prototype,"getSnapToPixel",ol.style.Image.prototype.getSnapToPixel),n.exportProperty(ol.style.Image.prototype,"setOpacity",ol.style.Image.prototype.setOpacity),n.exportProperty(ol.style.Image.prototype,"setRotation",ol.style.Image.prototype.setRotation),n.exportProperty(ol.style.Image.prototype,"setScale",ol.style.Image.prototype.setScale),n.exportSymbol("ol.style.RegularShape",ol.style.RegularShape,t),n.exportProperty(ol.style.RegularShape.prototype,"clone",ol.style.RegularShape.prototype.clone),n.exportProperty(ol.style.RegularShape.prototype,"getAnchor",ol.style.RegularShape.prototype.getAnchor),n.exportProperty(ol.style.RegularShape.prototype,"getAngle",ol.style.RegularShape.prototype.getAngle),n.exportProperty(ol.style.RegularShape.prototype,"getFill",ol.style.RegularShape.prototype.getFill),n.exportProperty(ol.style.RegularShape.prototype,"getImage",ol.style.RegularShape.prototype.getImage),n.exportProperty(ol.style.RegularShape.prototype,"getOrigin",ol.style.RegularShape.prototype.getOrigin),n.exportProperty(ol.style.RegularShape.prototype,"getPoints",ol.style.RegularShape.prototype.getPoints),n.exportProperty(ol.style.RegularShape.prototype,"getRadius",ol.style.RegularShape.prototype.getRadius),n.exportProperty(ol.style.RegularShape.prototype,"getRadius2",ol.style.RegularShape.prototype.getRadius2),n.exportProperty(ol.style.RegularShape.prototype,"getSize",ol.style.RegularShape.prototype.getSize),n.exportProperty(ol.style.RegularShape.prototype,"getStroke",ol.style.RegularShape.prototype.getStroke),n.exportSymbol("ol.style.Stroke",ol.style.Stroke,t),n.exportProperty(ol.style.Stroke.prototype,"clone",ol.style.Stroke.prototype.clone),n.exportProperty(ol.style.Stroke.prototype,"getColor",ol.style.Stroke.prototype.getColor),n.exportProperty(ol.style.Stroke.prototype,"getLineCap",ol.style.Stroke.prototype.getLineCap),n.exportProperty(ol.style.Stroke.prototype,"getLineDash",ol.style.Stroke.prototype.getLineDash),n.exportProperty(ol.style.Stroke.prototype,"getLineDashOffset",ol.style.Stroke.prototype.getLineDashOffset),n.exportProperty(ol.style.Stroke.prototype,"getLineJoin",ol.style.Stroke.prototype.getLineJoin),n.exportProperty(ol.style.Stroke.prototype,"getMiterLimit",ol.style.Stroke.prototype.getMiterLimit),n.exportProperty(ol.style.Stroke.prototype,"getWidth",ol.style.Stroke.prototype.getWidth),n.exportProperty(ol.style.Stroke.prototype,"setColor",ol.style.Stroke.prototype.setColor),n.exportProperty(ol.style.Stroke.prototype,"setLineCap",ol.style.Stroke.prototype.setLineCap),n.exportProperty(ol.style.Stroke.prototype,"setLineDash",ol.style.Stroke.prototype.setLineDash),n.exportProperty(ol.style.Stroke.prototype,"setLineDashOffset",ol.style.Stroke.prototype.setLineDashOffset),n.exportProperty(ol.style.Stroke.prototype,"setLineJoin",ol.style.Stroke.prototype.setLineJoin),n.exportProperty(ol.style.Stroke.prototype,"setMiterLimit",ol.style.Stroke.prototype.setMiterLimit),n.exportProperty(ol.style.Stroke.prototype,"setWidth",ol.style.Stroke.prototype.setWidth),n.exportSymbol("ol.style.Style",ol.style.Style,t),n.exportProperty(ol.style.Style.prototype,"clone",ol.style.Style.prototype.clone),n.exportProperty(ol.style.Style.prototype,"getRenderer",ol.style.Style.prototype.getRenderer),n.exportProperty(ol.style.Style.prototype,"setRenderer",ol.style.Style.prototype.setRenderer),n.exportProperty(ol.style.Style.prototype,"getGeometry",ol.style.Style.prototype.getGeometry),n.exportProperty(ol.style.Style.prototype,"getGeometryFunction",ol.style.Style.prototype.getGeometryFunction),n.exportProperty(ol.style.Style.prototype,"getFill",ol.style.Style.prototype.getFill),n.exportProperty(ol.style.Style.prototype,"setFill",ol.style.Style.prototype.setFill),n.exportProperty(ol.style.Style.prototype,"getImage",ol.style.Style.prototype.getImage),n.exportProperty(ol.style.Style.prototype,"setImage",ol.style.Style.prototype.setImage),n.exportProperty(ol.style.Style.prototype,"getStroke",ol.style.Style.prototype.getStroke),n.exportProperty(ol.style.Style.prototype,"setStroke",ol.style.Style.prototype.setStroke),n.exportProperty(ol.style.Style.prototype,"getText",ol.style.Style.prototype.getText),n.exportProperty(ol.style.Style.prototype,"setText",ol.style.Style.prototype.setText),n.exportProperty(ol.style.Style.prototype,"getZIndex",ol.style.Style.prototype.getZIndex),n.exportProperty(ol.style.Style.prototype,"setGeometry",ol.style.Style.prototype.setGeometry),n.exportProperty(ol.style.Style.prototype,"setZIndex",ol.style.Style.prototype.setZIndex),n.exportSymbol("ol.style.Text",ol.style.Text,t),n.exportProperty(ol.style.Text.prototype,"clone",ol.style.Text.prototype.clone),n.exportProperty(ol.style.Text.prototype,"getOverflow",ol.style.Text.prototype.getOverflow),n.exportProperty(ol.style.Text.prototype,"getFont",ol.style.Text.prototype.getFont),n.exportProperty(ol.style.Text.prototype,"getMaxAngle",ol.style.Text.prototype.getMaxAngle),n.exportProperty(ol.style.Text.prototype,"getPlacement",ol.style.Text.prototype.getPlacement),n.exportProperty(ol.style.Text.prototype,"getOffsetX",ol.style.Text.prototype.getOffsetX),n.exportProperty(ol.style.Text.prototype,"getOffsetY",ol.style.Text.prototype.getOffsetY),n.exportProperty(ol.style.Text.prototype,"getFill",ol.style.Text.prototype.getFill),n.exportProperty(ol.style.Text.prototype,"getRotateWithView",ol.style.Text.prototype.getRotateWithView),n.exportProperty(ol.style.Text.prototype,"getRotation",ol.style.Text.prototype.getRotation),n.exportProperty(ol.style.Text.prototype,"getScale",ol.style.Text.prototype.getScale),n.exportProperty(ol.style.Text.prototype,"getStroke",ol.style.Text.prototype.getStroke),n.exportProperty(ol.style.Text.prototype,"getText",ol.style.Text.prototype.getText),n.exportProperty(ol.style.Text.prototype,"getTextAlign",ol.style.Text.prototype.getTextAlign),n.exportProperty(ol.style.Text.prototype,"getTextBaseline",ol.style.Text.prototype.getTextBaseline),n.exportProperty(ol.style.Text.prototype,"getBackgroundFill",ol.style.Text.prototype.getBackgroundFill),n.exportProperty(ol.style.Text.prototype,"getBackgroundStroke",ol.style.Text.prototype.getBackgroundStroke),n.exportProperty(ol.style.Text.prototype,"getPadding",ol.style.Text.prototype.getPadding),n.exportProperty(ol.style.Text.prototype,"setOverflow",ol.style.Text.prototype.setOverflow),n.exportProperty(ol.style.Text.prototype,"setFont",ol.style.Text.prototype.setFont),n.exportProperty(ol.style.Text.prototype,"setMaxAngle",ol.style.Text.prototype.setMaxAngle),n.exportProperty(ol.style.Text.prototype,"setOffsetX",ol.style.Text.prototype.setOffsetX),n.exportProperty(ol.style.Text.prototype,"setOffsetY",ol.style.Text.prototype.setOffsetY),n.exportProperty(ol.style.Text.prototype,"setPlacement",ol.style.Text.prototype.setPlacement),n.exportProperty(ol.style.Text.prototype,"setFill",ol.style.Text.prototype.setFill),n.exportProperty(ol.style.Text.prototype,"setRotation",ol.style.Text.prototype.setRotation),n.exportProperty(ol.style.Text.prototype,"setScale",ol.style.Text.prototype.setScale),n.exportProperty(ol.style.Text.prototype,"setStroke",ol.style.Text.prototype.setStroke),n.exportProperty(ol.style.Text.prototype,"setText",ol.style.Text.prototype.setText),n.exportProperty(ol.style.Text.prototype,"setTextAlign",ol.style.Text.prototype.setTextAlign),n.exportProperty(ol.style.Text.prototype,"setTextBaseline",ol.style.Text.prototype.setTextBaseline),n.exportProperty(ol.style.Text.prototype,"setBackgroundFill",ol.style.Text.prototype.setBackgroundFill),n.exportProperty(ol.style.Text.prototype,"setBackgroundStroke",ol.style.Text.prototype.setBackgroundStroke),n.exportProperty(ol.style.Text.prototype,"setPadding",ol.style.Text.prototype.setPadding),n.exportSymbol("ol.source.BingMaps",ol.source.BingMaps,t),n.exportSymbol("ol.source.BingMaps.TOS_ATTRIBUTION",ol.source.BingMaps.TOS_ATTRIBUTION,t),n.exportProperty(ol.source.BingMaps.prototype,"getApiKey",ol.source.BingMaps.prototype.getApiKey),n.exportProperty(ol.source.BingMaps.prototype,"getImagerySet",ol.source.BingMaps.prototype.getImagerySet),n.exportSymbol("ol.source.CartoDB",ol.source.CartoDB,t),n.exportProperty(ol.source.CartoDB.prototype,"getConfig",ol.source.CartoDB.prototype.getConfig),n.exportProperty(ol.source.CartoDB.prototype,"updateConfig",ol.source.CartoDB.prototype.updateConfig),n.exportProperty(ol.source.CartoDB.prototype,"setConfig",ol.source.CartoDB.prototype.setConfig),n.exportSymbol("ol.source.Cluster",ol.source.Cluster,t),n.exportProperty(ol.source.Cluster.prototype,"getDistance",ol.source.Cluster.prototype.getDistance),n.exportProperty(ol.source.Cluster.prototype,"getSource",ol.source.Cluster.prototype.getSource),n.exportProperty(ol.source.Cluster.prototype,"setDistance",ol.source.Cluster.prototype.setDistance),n.exportSymbol("ol.source.Image",ol.source.Image,t),n.exportProperty(ol.source.Image.Event.prototype,"image",ol.source.Image.Event.prototype.image),n.exportSymbol("ol.source.ImageArcGISRest",ol.source.ImageArcGISRest,t),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getParams",ol.source.ImageArcGISRest.prototype.getParams),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getImageLoadFunction",ol.source.ImageArcGISRest.prototype.getImageLoadFunction),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getUrl",ol.source.ImageArcGISRest.prototype.getUrl),n.exportProperty(ol.source.ImageArcGISRest.prototype,"setImageLoadFunction",ol.source.ImageArcGISRest.prototype.setImageLoadFunction),n.exportProperty(ol.source.ImageArcGISRest.prototype,"setUrl",ol.source.ImageArcGISRest.prototype.setUrl),n.exportProperty(ol.source.ImageArcGISRest.prototype,"updateParams",ol.source.ImageArcGISRest.prototype.updateParams),n.exportSymbol("ol.source.ImageCanvas",ol.source.ImageCanvas,t),n.exportSymbol("ol.source.ImageMapGuide",ol.source.ImageMapGuide,t),n.exportProperty(ol.source.ImageMapGuide.prototype,"getParams",ol.source.ImageMapGuide.prototype.getParams),n.exportProperty(ol.source.ImageMapGuide.prototype,"getImageLoadFunction",ol.source.ImageMapGuide.prototype.getImageLoadFunction),n.exportProperty(ol.source.ImageMapGuide.prototype,"updateParams",ol.source.ImageMapGuide.prototype.updateParams),n.exportProperty(ol.source.ImageMapGuide.prototype,"setImageLoadFunction",ol.source.ImageMapGuide.prototype.setImageLoadFunction),n.exportSymbol("ol.source.ImageStatic",ol.source.ImageStatic,t),n.exportSymbol("ol.source.ImageVector",ol.source.ImageVector,t),n.exportProperty(ol.source.ImageVector.prototype,"getSource",ol.source.ImageVector.prototype.getSource),n.exportProperty(ol.source.ImageVector.prototype,"getStyle",ol.source.ImageVector.prototype.getStyle),n.exportProperty(ol.source.ImageVector.prototype,"getStyleFunction",ol.source.ImageVector.prototype.getStyleFunction),n.exportProperty(ol.source.ImageVector.prototype,"setStyle",ol.source.ImageVector.prototype.setStyle),n.exportSymbol("ol.source.ImageWMS",ol.source.ImageWMS,t),n.exportProperty(ol.source.ImageWMS.prototype,"getGetFeatureInfoUrl",ol.source.ImageWMS.prototype.getGetFeatureInfoUrl),n.exportProperty(ol.source.ImageWMS.prototype,"getParams",ol.source.ImageWMS.prototype.getParams),n.exportProperty(ol.source.ImageWMS.prototype,"getImageLoadFunction",ol.source.ImageWMS.prototype.getImageLoadFunction),n.exportProperty(ol.source.ImageWMS.prototype,"getUrl",ol.source.ImageWMS.prototype.getUrl),n.exportProperty(ol.source.ImageWMS.prototype,"setImageLoadFunction",ol.source.ImageWMS.prototype.setImageLoadFunction),n.exportProperty(ol.source.ImageWMS.prototype,"setUrl",ol.source.ImageWMS.prototype.setUrl),n.exportProperty(ol.source.ImageWMS.prototype,"updateParams",ol.source.ImageWMS.prototype.updateParams),n.exportSymbol("ol.source.OSM",ol.source.OSM,t),n.exportSymbol("ol.source.OSM.ATTRIBUTION",ol.source.OSM.ATTRIBUTION,t),n.exportSymbol("ol.source.Raster",ol.source.Raster,t),n.exportProperty(ol.source.Raster.prototype,"setOperation",ol.source.Raster.prototype.setOperation),n.exportProperty(ol.source.Raster.Event.prototype,"extent",ol.source.Raster.Event.prototype.extent),n.exportProperty(ol.source.Raster.Event.prototype,"resolution",ol.source.Raster.Event.prototype.resolution),n.exportProperty(ol.source.Raster.Event.prototype,"data",ol.source.Raster.Event.prototype.data),n.exportSymbol("ol.source.Source",ol.source.Source,t),n.exportProperty(ol.source.Source.prototype,"getAttributions",ol.source.Source.prototype.getAttributions),n.exportProperty(ol.source.Source.prototype,"getLogo",ol.source.Source.prototype.getLogo),n.exportProperty(ol.source.Source.prototype,"getProjection",ol.source.Source.prototype.getProjection),n.exportProperty(ol.source.Source.prototype,"getState",ol.source.Source.prototype.getState),n.exportProperty(ol.source.Source.prototype,"refresh",ol.source.Source.prototype.refresh),n.exportProperty(ol.source.Source.prototype,"setAttributions",ol.source.Source.prototype.setAttributions),n.exportSymbol("ol.source.Stamen",ol.source.Stamen,t),n.exportSymbol("ol.source.Tile",ol.source.Tile,t),n.exportProperty(ol.source.Tile.prototype,"getTileGrid",ol.source.Tile.prototype.getTileGrid),n.exportProperty(ol.source.Tile.Event.prototype,"tile",ol.source.Tile.Event.prototype.tile),n.exportSymbol("ol.source.TileArcGISRest",ol.source.TileArcGISRest,t),n.exportProperty(ol.source.TileArcGISRest.prototype,"getParams",ol.source.TileArcGISRest.prototype.getParams),n.exportProperty(ol.source.TileArcGISRest.prototype,"updateParams",ol.source.TileArcGISRest.prototype.updateParams),n.exportSymbol("ol.source.TileDebug",ol.source.TileDebug,t),n.exportSymbol("ol.source.TileImage",ol.source.TileImage,t),n.exportProperty(ol.source.TileImage.prototype,"setRenderReprojectionEdges",ol.source.TileImage.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.TileImage.prototype,"setTileGridForProjection",ol.source.TileImage.prototype.setTileGridForProjection),n.exportSymbol("ol.source.TileJSON",ol.source.TileJSON,t),n.exportProperty(ol.source.TileJSON.prototype,"getTileJSON",ol.source.TileJSON.prototype.getTileJSON),n.exportSymbol("ol.source.TileUTFGrid",ol.source.TileUTFGrid,t),n.exportProperty(ol.source.TileUTFGrid.prototype,"getTemplate",ol.source.TileUTFGrid.prototype.getTemplate),n.exportProperty(ol.source.TileUTFGrid.prototype,"forDataAtCoordinateAndResolution",ol.source.TileUTFGrid.prototype.forDataAtCoordinateAndResolution),n.exportSymbol("ol.source.TileWMS",ol.source.TileWMS,t),n.exportProperty(ol.source.TileWMS.prototype,"getGetFeatureInfoUrl",ol.source.TileWMS.prototype.getGetFeatureInfoUrl),n.exportProperty(ol.source.TileWMS.prototype,"getParams",ol.source.TileWMS.prototype.getParams),n.exportProperty(ol.source.TileWMS.prototype,"updateParams",ol.source.TileWMS.prototype.updateParams),n.exportProperty(ol.source.UrlTile.prototype,"getTileLoadFunction",ol.source.UrlTile.prototype.getTileLoadFunction),n.exportProperty(ol.source.UrlTile.prototype,"getTileUrlFunction",ol.source.UrlTile.prototype.getTileUrlFunction),n.exportProperty(ol.source.UrlTile.prototype,"getUrls",ol.source.UrlTile.prototype.getUrls),n.exportProperty(ol.source.UrlTile.prototype,"setTileLoadFunction",ol.source.UrlTile.prototype.setTileLoadFunction),n.exportProperty(ol.source.UrlTile.prototype,"setTileUrlFunction",ol.source.UrlTile.prototype.setTileUrlFunction),n.exportProperty(ol.source.UrlTile.prototype,"setUrl",ol.source.UrlTile.prototype.setUrl),n.exportProperty(ol.source.UrlTile.prototype,"setUrls",ol.source.UrlTile.prototype.setUrls),n.exportSymbol("ol.source.Vector",ol.source.Vector,t),n.exportProperty(ol.source.Vector.prototype,"addFeature",ol.source.Vector.prototype.addFeature),n.exportProperty(ol.source.Vector.prototype,"addFeatures",ol.source.Vector.prototype.addFeatures),n.exportProperty(ol.source.Vector.prototype,"clear",ol.source.Vector.prototype.clear),n.exportProperty(ol.source.Vector.prototype,"forEachFeature",ol.source.Vector.prototype.forEachFeature),n.exportProperty(ol.source.Vector.prototype,"forEachFeatureInExtent",ol.source.Vector.prototype.forEachFeatureInExtent),n.exportProperty(ol.source.Vector.prototype,"forEachFeatureIntersectingExtent",ol.source.Vector.prototype.forEachFeatureIntersectingExtent),n.exportProperty(ol.source.Vector.prototype,"getFeaturesCollection",ol.source.Vector.prototype.getFeaturesCollection),n.exportProperty(ol.source.Vector.prototype,"getFeatures",ol.source.Vector.prototype.getFeatures),n.exportProperty(ol.source.Vector.prototype,"getFeaturesAtCoordinate",ol.source.Vector.prototype.getFeaturesAtCoordinate),n.exportProperty(ol.source.Vector.prototype,"getFeaturesInExtent",ol.source.Vector.prototype.getFeaturesInExtent),n.exportProperty(ol.source.Vector.prototype,"getClosestFeatureToCoordinate",ol.source.Vector.prototype.getClosestFeatureToCoordinate),n.exportProperty(ol.source.Vector.prototype,"getExtent",ol.source.Vector.prototype.getExtent),n.exportProperty(ol.source.Vector.prototype,"getFeatureById",ol.source.Vector.prototype.getFeatureById),n.exportProperty(ol.source.Vector.prototype,"getFormat",ol.source.Vector.prototype.getFormat),n.exportProperty(ol.source.Vector.prototype,"getUrl",ol.source.Vector.prototype.getUrl),n.exportProperty(ol.source.Vector.prototype,"removeLoadedExtent",ol.source.Vector.prototype.removeLoadedExtent),n.exportProperty(ol.source.Vector.prototype,"removeFeature",ol.source.Vector.prototype.removeFeature),n.exportProperty(ol.source.Vector.prototype,"setLoader",ol.source.Vector.prototype.setLoader),n.exportProperty(ol.source.Vector.Event.prototype,"feature",ol.source.Vector.Event.prototype.feature),n.exportSymbol("ol.source.VectorTile",ol.source.VectorTile,t),n.exportProperty(ol.source.VectorTile.prototype,"clear",ol.source.VectorTile.prototype.clear),n.exportSymbol("ol.source.WMTS",ol.source.WMTS,t),n.exportProperty(ol.source.WMTS.prototype,"getDimensions",ol.source.WMTS.prototype.getDimensions),n.exportProperty(ol.source.WMTS.prototype,"getFormat",ol.source.WMTS.prototype.getFormat),n.exportProperty(ol.source.WMTS.prototype,"getLayer",ol.source.WMTS.prototype.getLayer),n.exportProperty(ol.source.WMTS.prototype,"getMatrixSet",ol.source.WMTS.prototype.getMatrixSet),n.exportProperty(ol.source.WMTS.prototype,"getRequestEncoding",ol.source.WMTS.prototype.getRequestEncoding),n.exportProperty(ol.source.WMTS.prototype,"getStyle",ol.source.WMTS.prototype.getStyle),n.exportProperty(ol.source.WMTS.prototype,"getVersion",ol.source.WMTS.prototype.getVersion),n.exportProperty(ol.source.WMTS.prototype,"updateDimensions",ol.source.WMTS.prototype.updateDimensions),n.exportSymbol("ol.source.WMTS.optionsFromCapabilities",ol.source.WMTS.optionsFromCapabilities,t),n.exportSymbol("ol.source.XYZ",ol.source.XYZ,t),n.exportSymbol("ol.source.Zoomify",ol.source.Zoomify,t),n.exportSymbol("ol.renderer.webgl.ImageLayer",ol.renderer.webgl.ImageLayer,t),n.exportSymbol("ol.renderer.webgl.Map",ol.renderer.webgl.Map,t),n.exportSymbol("ol.renderer.webgl.TileLayer",ol.renderer.webgl.TileLayer,t),n.exportSymbol("ol.renderer.webgl.VectorLayer",ol.renderer.webgl.VectorLayer,t),n.exportSymbol("ol.renderer.canvas.ImageLayer",ol.renderer.canvas.ImageLayer,t),n.exportSymbol("ol.renderer.canvas.Map",ol.renderer.canvas.Map,t),n.exportSymbol("ol.renderer.canvas.TileLayer",ol.renderer.canvas.TileLayer,t),n.exportSymbol("ol.renderer.canvas.VectorLayer",ol.renderer.canvas.VectorLayer,t),n.exportSymbol("ol.renderer.canvas.VectorTileLayer",ol.renderer.canvas.VectorTileLayer,t),n.exportProperty(ol.render.Event.prototype,"vectorContext",ol.render.Event.prototype.vectorContext),n.exportProperty(ol.render.Event.prototype,"frameState",ol.render.Event.prototype.frameState),n.exportProperty(ol.render.Event.prototype,"context",ol.render.Event.prototype.context),n.exportProperty(ol.render.Event.prototype,"glContext",ol.render.Event.prototype.glContext),n.exportProperty(ol.render.Feature.prototype,"get",ol.render.Feature.prototype.get),n.exportProperty(ol.render.Feature.prototype,"getExtent",ol.render.Feature.prototype.getExtent),n.exportProperty(ol.render.Feature.prototype,"getId",ol.render.Feature.prototype.getId),n.exportProperty(ol.render.Feature.prototype,"getGeometry",ol.render.Feature.prototype.getGeometry),n.exportProperty(ol.render.Feature.prototype,"getProperties",ol.render.Feature.prototype.getProperties),n.exportProperty(ol.render.Feature.prototype,"getType",ol.render.Feature.prototype.getType),n.exportSymbol("ol.render.VectorContext",ol.render.VectorContext,t),n.exportProperty(ol.render.webgl.Immediate.prototype,"setStyle",ol.render.webgl.Immediate.prototype.setStyle),n.exportProperty(ol.render.webgl.Immediate.prototype,"drawGeometry",ol.render.webgl.Immediate.prototype.drawGeometry),n.exportProperty(ol.render.webgl.Immediate.prototype,"drawFeature",ol.render.webgl.Immediate.prototype.drawFeature),n.exportProperty(ol.render.canvas.Immediate.prototype,"drawCircle",ol.render.canvas.Immediate.prototype.drawCircle),n.exportProperty(ol.render.canvas.Immediate.prototype,"setStyle",ol.render.canvas.Immediate.prototype.setStyle),n.exportProperty(ol.render.canvas.Immediate.prototype,"drawGeometry",ol.render.canvas.Immediate.prototype.drawGeometry),n.exportProperty(ol.render.canvas.Immediate.prototype,"drawFeature",ol.render.canvas.Immediate.prototype.drawFeature),n.exportSymbol("ol.proj.common.add",ol.proj.common.add,t),n.exportSymbol("ol.proj.Projection",ol.proj.Projection,t),n.exportProperty(ol.proj.Projection.prototype,"getCode",ol.proj.Projection.prototype.getCode),n.exportProperty(ol.proj.Projection.prototype,"getExtent",ol.proj.Projection.prototype.getExtent),n.exportProperty(ol.proj.Projection.prototype,"getUnits",ol.proj.Projection.prototype.getUnits),n.exportProperty(ol.proj.Projection.prototype,"getMetersPerUnit",ol.proj.Projection.prototype.getMetersPerUnit),n.exportProperty(ol.proj.Projection.prototype,"getWorldExtent",ol.proj.Projection.prototype.getWorldExtent),n.exportProperty(ol.proj.Projection.prototype,"getAxisOrientation",ol.proj.Projection.prototype.getAxisOrientation),n.exportProperty(ol.proj.Projection.prototype,"isGlobal",ol.proj.Projection.prototype.isGlobal),n.exportProperty(ol.proj.Projection.prototype,"setGlobal",ol.proj.Projection.prototype.setGlobal),n.exportProperty(ol.proj.Projection.prototype,"setExtent",ol.proj.Projection.prototype.setExtent),n.exportProperty(ol.proj.Projection.prototype,"setWorldExtent",ol.proj.Projection.prototype.setWorldExtent),n.exportProperty(ol.proj.Projection.prototype,"setGetPointResolution",ol.proj.Projection.prototype.setGetPointResolution),n.exportSymbol("ol.proj.Units.METERS_PER_UNIT",ol.proj.Units.METERS_PER_UNIT,t),n.exportSymbol("ol.layer.Base",ol.layer.Base,t),n.exportProperty(ol.layer.Base.prototype,"getExtent",ol.layer.Base.prototype.getExtent),n.exportProperty(ol.layer.Base.prototype,"getMaxResolution",ol.layer.Base.prototype.getMaxResolution),n.exportProperty(ol.layer.Base.prototype,"getMinResolution",ol.layer.Base.prototype.getMinResolution),n.exportProperty(ol.layer.Base.prototype,"getOpacity",ol.layer.Base.prototype.getOpacity),n.exportProperty(ol.layer.Base.prototype,"getVisible",ol.layer.Base.prototype.getVisible),n.exportProperty(ol.layer.Base.prototype,"getZIndex",ol.layer.Base.prototype.getZIndex),n.exportProperty(ol.layer.Base.prototype,"setExtent",ol.layer.Base.prototype.setExtent),n.exportProperty(ol.layer.Base.prototype,"setMaxResolution",ol.layer.Base.prototype.setMaxResolution),n.exportProperty(ol.layer.Base.prototype,"setMinResolution",ol.layer.Base.prototype.setMinResolution),n.exportProperty(ol.layer.Base.prototype,"setOpacity",ol.layer.Base.prototype.setOpacity),n.exportProperty(ol.layer.Base.prototype,"setVisible",ol.layer.Base.prototype.setVisible),n.exportProperty(ol.layer.Base.prototype,"setZIndex",ol.layer.Base.prototype.setZIndex),n.exportSymbol("ol.layer.Group",ol.layer.Group,t),n.exportProperty(ol.layer.Group.prototype,"getLayers",ol.layer.Group.prototype.getLayers),n.exportProperty(ol.layer.Group.prototype,"setLayers",ol.layer.Group.prototype.setLayers),n.exportSymbol("ol.layer.Heatmap",ol.layer.Heatmap,t),n.exportProperty(ol.layer.Heatmap.prototype,"getBlur",ol.layer.Heatmap.prototype.getBlur),n.exportProperty(ol.layer.Heatmap.prototype,"getGradient",ol.layer.Heatmap.prototype.getGradient),n.exportProperty(ol.layer.Heatmap.prototype,"getRadius",ol.layer.Heatmap.prototype.getRadius),n.exportProperty(ol.layer.Heatmap.prototype,"setBlur",ol.layer.Heatmap.prototype.setBlur),n.exportProperty(ol.layer.Heatmap.prototype,"setGradient",ol.layer.Heatmap.prototype.setGradient),n.exportProperty(ol.layer.Heatmap.prototype,"setRadius",ol.layer.Heatmap.prototype.setRadius),n.exportSymbol("ol.layer.Image",ol.layer.Image,t),n.exportProperty(ol.layer.Image.prototype,"getSource",ol.layer.Image.prototype.getSource),n.exportSymbol("ol.layer.Layer",ol.layer.Layer,t),n.exportProperty(ol.layer.Layer.prototype,"getSource",ol.layer.Layer.prototype.getSource),n.exportProperty(ol.layer.Layer.prototype,"setMap",ol.layer.Layer.prototype.setMap),n.exportProperty(ol.layer.Layer.prototype,"setSource",ol.layer.Layer.prototype.setSource),n.exportSymbol("ol.layer.Tile",ol.layer.Tile,t),n.exportProperty(ol.layer.Tile.prototype,"getPreload",ol.layer.Tile.prototype.getPreload),n.exportProperty(ol.layer.Tile.prototype,"getSource",ol.layer.Tile.prototype.getSource),n.exportProperty(ol.layer.Tile.prototype,"setPreload",ol.layer.Tile.prototype.setPreload),n.exportProperty(ol.layer.Tile.prototype,"getUseInterimTilesOnError",ol.layer.Tile.prototype.getUseInterimTilesOnError),n.exportProperty(ol.layer.Tile.prototype,"setUseInterimTilesOnError",ol.layer.Tile.prototype.setUseInterimTilesOnError),n.exportSymbol("ol.layer.Vector",ol.layer.Vector,t),n.exportProperty(ol.layer.Vector.prototype,"getSource",ol.layer.Vector.prototype.getSource),n.exportProperty(ol.layer.Vector.prototype,"getStyle",ol.layer.Vector.prototype.getStyle),n.exportProperty(ol.layer.Vector.prototype,"getStyleFunction",ol.layer.Vector.prototype.getStyleFunction),n.exportProperty(ol.layer.Vector.prototype,"setStyle",ol.layer.Vector.prototype.setStyle),n.exportSymbol("ol.layer.VectorTile",ol.layer.VectorTile,t),n.exportProperty(ol.layer.VectorTile.prototype,"getPreload",ol.layer.VectorTile.prototype.getPreload),n.exportProperty(ol.layer.VectorTile.prototype,"getUseInterimTilesOnError",ol.layer.VectorTile.prototype.getUseInterimTilesOnError),n.exportProperty(ol.layer.VectorTile.prototype,"setPreload",ol.layer.VectorTile.prototype.setPreload),n.exportProperty(ol.layer.VectorTile.prototype,"setUseInterimTilesOnError",ol.layer.VectorTile.prototype.setUseInterimTilesOnError),n.exportProperty(ol.layer.VectorTile.prototype,"getSource",ol.layer.VectorTile.prototype.getSource),n.exportSymbol("ol.interaction.DoubleClickZoom",ol.interaction.DoubleClickZoom,t),n.exportSymbol("ol.interaction.DoubleClickZoom.handleEvent",ol.interaction.DoubleClickZoom.handleEvent,t),n.exportSymbol("ol.interaction.DragAndDrop",ol.interaction.DragAndDrop,t),n.exportSymbol("ol.interaction.DragAndDrop.handleEvent",ol.interaction.DragAndDrop.handleEvent,t),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"features",ol.interaction.DragAndDrop.Event.prototype.features),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"file",ol.interaction.DragAndDrop.Event.prototype.file),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"projection",ol.interaction.DragAndDrop.Event.prototype.projection),n.exportSymbol("ol.interaction.DragBox",ol.interaction.DragBox,t),n.exportProperty(ol.interaction.DragBox.prototype,"getGeometry",ol.interaction.DragBox.prototype.getGeometry),n.exportProperty(ol.interaction.DragBox.Event.prototype,"coordinate",ol.interaction.DragBox.Event.prototype.coordinate),n.exportProperty(ol.interaction.DragBox.Event.prototype,"mapBrowserEvent",ol.interaction.DragBox.Event.prototype.mapBrowserEvent),n.exportSymbol("ol.interaction.DragPan",ol.interaction.DragPan,t),n.exportSymbol("ol.interaction.DragRotate",ol.interaction.DragRotate,t),n.exportSymbol("ol.interaction.DragRotateAndZoom",ol.interaction.DragRotateAndZoom,t),n.exportSymbol("ol.interaction.DragZoom",ol.interaction.DragZoom,t),n.exportSymbol("ol.interaction.Draw",ol.interaction.Draw,t),n.exportSymbol("ol.interaction.Draw.handleEvent",ol.interaction.Draw.handleEvent,t),n.exportProperty(ol.interaction.Draw.prototype,"removeLastPoint",ol.interaction.Draw.prototype.removeLastPoint),n.exportProperty(ol.interaction.Draw.prototype,"finishDrawing",ol.interaction.Draw.prototype.finishDrawing),n.exportProperty(ol.interaction.Draw.prototype,"extend",ol.interaction.Draw.prototype.extend),n.exportSymbol("ol.interaction.Draw.createRegularPolygon",ol.interaction.Draw.createRegularPolygon,t),n.exportSymbol("ol.interaction.Draw.createBox",ol.interaction.Draw.createBox,t),n.exportProperty(ol.interaction.Draw.Event.prototype,"feature",ol.interaction.Draw.Event.prototype.feature),n.exportSymbol("ol.interaction.Extent",ol.interaction.Extent,t),n.exportProperty(ol.interaction.Extent.prototype,"getExtent",ol.interaction.Extent.prototype.getExtent),n.exportProperty(ol.interaction.Extent.prototype,"setExtent",ol.interaction.Extent.prototype.setExtent),n.exportProperty(ol.interaction.Extent.Event.prototype,"extent",ol.interaction.Extent.Event.prototype.extent),n.exportSymbol("ol.interaction.Interaction",ol.interaction.Interaction,t),n.exportProperty(ol.interaction.Interaction.prototype,"getActive",ol.interaction.Interaction.prototype.getActive),n.exportProperty(ol.interaction.Interaction.prototype,"getMap",ol.interaction.Interaction.prototype.getMap),n.exportProperty(ol.interaction.Interaction.prototype,"setActive",ol.interaction.Interaction.prototype.setActive),n.exportSymbol("ol.interaction.KeyboardPan",ol.interaction.KeyboardPan,t),n.exportSymbol("ol.interaction.KeyboardPan.handleEvent",ol.interaction.KeyboardPan.handleEvent,t),n.exportSymbol("ol.interaction.KeyboardZoom",ol.interaction.KeyboardZoom,t),n.exportSymbol("ol.interaction.KeyboardZoom.handleEvent",ol.interaction.KeyboardZoom.handleEvent,t),n.exportSymbol("ol.interaction.Modify",ol.interaction.Modify,t),n.exportSymbol("ol.interaction.Modify.handleEvent",ol.interaction.Modify.handleEvent,t),n.exportProperty(ol.interaction.Modify.prototype,"removePoint",ol.interaction.Modify.prototype.removePoint),n.exportProperty(ol.interaction.Modify.Event.prototype,"features",ol.interaction.Modify.Event.prototype.features),n.exportProperty(ol.interaction.Modify.Event.prototype,"mapBrowserEvent",ol.interaction.Modify.Event.prototype.mapBrowserEvent),n.exportSymbol("ol.interaction.MouseWheelZoom",ol.interaction.MouseWheelZoom,t),n.exportSymbol("ol.interaction.MouseWheelZoom.handleEvent",ol.interaction.MouseWheelZoom.handleEvent,t),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"setMouseAnchor",ol.interaction.MouseWheelZoom.prototype.setMouseAnchor),n.exportSymbol("ol.interaction.PinchRotate",ol.interaction.PinchRotate,t),n.exportSymbol("ol.interaction.PinchZoom",ol.interaction.PinchZoom,t),n.exportSymbol("ol.interaction.Pointer",ol.interaction.Pointer,t),n.exportSymbol("ol.interaction.Pointer.handleEvent",ol.interaction.Pointer.handleEvent,t),n.exportSymbol("ol.interaction.Select",ol.interaction.Select,t),n.exportProperty(ol.interaction.Select.prototype,"getFeatures",ol.interaction.Select.prototype.getFeatures),n.exportProperty(ol.interaction.Select.prototype,"getHitTolerance",ol.interaction.Select.prototype.getHitTolerance),n.exportProperty(ol.interaction.Select.prototype,"getLayer",ol.interaction.Select.prototype.getLayer),n.exportSymbol("ol.interaction.Select.handleEvent",ol.interaction.Select.handleEvent,t),n.exportProperty(ol.interaction.Select.prototype,"setHitTolerance",ol.interaction.Select.prototype.setHitTolerance),n.exportProperty(ol.interaction.Select.prototype,"setMap",ol.interaction.Select.prototype.setMap),n.exportProperty(ol.interaction.Select.Event.prototype,"selected",ol.interaction.Select.Event.prototype.selected),n.exportProperty(ol.interaction.Select.Event.prototype,"deselected",ol.interaction.Select.Event.prototype.deselected),n.exportProperty(ol.interaction.Select.Event.prototype,"mapBrowserEvent",ol.interaction.Select.Event.prototype.mapBrowserEvent),n.exportSymbol("ol.interaction.Snap",ol.interaction.Snap,t),n.exportProperty(ol.interaction.Snap.prototype,"addFeature",ol.interaction.Snap.prototype.addFeature),n.exportProperty(ol.interaction.Snap.prototype,"removeFeature",ol.interaction.Snap.prototype.removeFeature),n.exportSymbol("ol.interaction.Translate",ol.interaction.Translate,t),n.exportProperty(ol.interaction.Translate.prototype,"getHitTolerance",ol.interaction.Translate.prototype.getHitTolerance),n.exportProperty(ol.interaction.Translate.prototype,"setHitTolerance",ol.interaction.Translate.prototype.setHitTolerance),n.exportProperty(ol.interaction.Translate.Event.prototype,"features",ol.interaction.Translate.Event.prototype.features),n.exportProperty(ol.interaction.Translate.Event.prototype,"coordinate",ol.interaction.Translate.Event.prototype.coordinate),n.exportSymbol("ol.geom.Circle",ol.geom.Circle,t),n.exportProperty(ol.geom.Circle.prototype,"clone",ol.geom.Circle.prototype.clone),n.exportProperty(ol.geom.Circle.prototype,"getCenter",ol.geom.Circle.prototype.getCenter),n.exportProperty(ol.geom.Circle.prototype,"getRadius",ol.geom.Circle.prototype.getRadius),n.exportProperty(ol.geom.Circle.prototype,"getType",ol.geom.Circle.prototype.getType),n.exportProperty(ol.geom.Circle.prototype,"intersectsExtent",ol.geom.Circle.prototype.intersectsExtent),n.exportProperty(ol.geom.Circle.prototype,"setCenter",ol.geom.Circle.prototype.setCenter),n.exportProperty(ol.geom.Circle.prototype,"setCenterAndRadius",ol.geom.Circle.prototype.setCenterAndRadius),n.exportProperty(ol.geom.Circle.prototype,"setRadius",ol.geom.Circle.prototype.setRadius),n.exportProperty(ol.geom.Circle.prototype,"transform",ol.geom.Circle.prototype.transform),n.exportSymbol("ol.geom.Geometry",ol.geom.Geometry,t),n.exportProperty(ol.geom.Geometry.prototype,"getClosestPoint",ol.geom.Geometry.prototype.getClosestPoint),n.exportProperty(ol.geom.Geometry.prototype,"intersectsCoordinate",ol.geom.Geometry.prototype.intersectsCoordinate),n.exportProperty(ol.geom.Geometry.prototype,"getExtent",ol.geom.Geometry.prototype.getExtent),n.exportProperty(ol.geom.Geometry.prototype,"rotate",ol.geom.Geometry.prototype.rotate),n.exportProperty(ol.geom.Geometry.prototype,"scale",ol.geom.Geometry.prototype.scale),n.exportProperty(ol.geom.Geometry.prototype,"simplify",ol.geom.Geometry.prototype.simplify),n.exportProperty(ol.geom.Geometry.prototype,"transform",ol.geom.Geometry.prototype.transform),n.exportSymbol("ol.geom.GeometryCollection",ol.geom.GeometryCollection,t),n.exportProperty(ol.geom.GeometryCollection.prototype,"clone",ol.geom.GeometryCollection.prototype.clone),n.exportProperty(ol.geom.GeometryCollection.prototype,"getGeometries",ol.geom.GeometryCollection.prototype.getGeometries),n.exportProperty(ol.geom.GeometryCollection.prototype,"getType",ol.geom.GeometryCollection.prototype.getType),n.exportProperty(ol.geom.GeometryCollection.prototype,"intersectsExtent",ol.geom.GeometryCollection.prototype.intersectsExtent),n.exportProperty(ol.geom.GeometryCollection.prototype,"setGeometries",ol.geom.GeometryCollection.prototype.setGeometries),n.exportProperty(ol.geom.GeometryCollection.prototype,"applyTransform",ol.geom.GeometryCollection.prototype.applyTransform),n.exportProperty(ol.geom.GeometryCollection.prototype,"translate",ol.geom.GeometryCollection.prototype.translate),n.exportSymbol("ol.geom.LinearRing",ol.geom.LinearRing,t),n.exportProperty(ol.geom.LinearRing.prototype,"clone",ol.geom.LinearRing.prototype.clone),n.exportProperty(ol.geom.LinearRing.prototype,"getArea",ol.geom.LinearRing.prototype.getArea),n.exportProperty(ol.geom.LinearRing.prototype,"getCoordinates",ol.geom.LinearRing.prototype.getCoordinates),n.exportProperty(ol.geom.LinearRing.prototype,"getType",ol.geom.LinearRing.prototype.getType),n.exportProperty(ol.geom.LinearRing.prototype,"setCoordinates",ol.geom.LinearRing.prototype.setCoordinates),n.exportSymbol("ol.geom.LineString",ol.geom.LineString,t),n.exportProperty(ol.geom.LineString.prototype,"appendCoordinate",ol.geom.LineString.prototype.appendCoordinate),n.exportProperty(ol.geom.LineString.prototype,"clone",ol.geom.LineString.prototype.clone),n.exportProperty(ol.geom.LineString.prototype,"forEachSegment",ol.geom.LineString.prototype.forEachSegment),n.exportProperty(ol.geom.LineString.prototype,"getCoordinateAtM",ol.geom.LineString.prototype.getCoordinateAtM),n.exportProperty(ol.geom.LineString.prototype,"getCoordinates",ol.geom.LineString.prototype.getCoordinates),n.exportProperty(ol.geom.LineString.prototype,"getCoordinateAt",ol.geom.LineString.prototype.getCoordinateAt),n.exportProperty(ol.geom.LineString.prototype,"getLength",ol.geom.LineString.prototype.getLength),n.exportProperty(ol.geom.LineString.prototype,"getType",ol.geom.LineString.prototype.getType),n.exportProperty(ol.geom.LineString.prototype,"intersectsExtent",ol.geom.LineString.prototype.intersectsExtent),n.exportProperty(ol.geom.LineString.prototype,"setCoordinates",ol.geom.LineString.prototype.setCoordinates),n.exportSymbol("ol.geom.MultiLineString",ol.geom.MultiLineString,t),n.exportProperty(ol.geom.MultiLineString.prototype,"appendLineString",ol.geom.MultiLineString.prototype.appendLineString),n.exportProperty(ol.geom.MultiLineString.prototype,"clone",ol.geom.MultiLineString.prototype.clone),n.exportProperty(ol.geom.MultiLineString.prototype,"getCoordinateAtM",ol.geom.MultiLineString.prototype.getCoordinateAtM),n.exportProperty(ol.geom.MultiLineString.prototype,"getCoordinates",ol.geom.MultiLineString.prototype.getCoordinates),n.exportProperty(ol.geom.MultiLineString.prototype,"getLineString",ol.geom.MultiLineString.prototype.getLineString),n.exportProperty(ol.geom.MultiLineString.prototype,"getLineStrings",ol.geom.MultiLineString.prototype.getLineStrings),n.exportProperty(ol.geom.MultiLineString.prototype,"getType",ol.geom.MultiLineString.prototype.getType),n.exportProperty(ol.geom.MultiLineString.prototype,"intersectsExtent",ol.geom.MultiLineString.prototype.intersectsExtent),n.exportProperty(ol.geom.MultiLineString.prototype,"setCoordinates",ol.geom.MultiLineString.prototype.setCoordinates),n.exportSymbol("ol.geom.MultiPoint",ol.geom.MultiPoint,t),n.exportProperty(ol.geom.MultiPoint.prototype,"appendPoint",ol.geom.MultiPoint.prototype.appendPoint),n.exportProperty(ol.geom.MultiPoint.prototype,"clone",ol.geom.MultiPoint.prototype.clone),n.exportProperty(ol.geom.MultiPoint.prototype,"getCoordinates",ol.geom.MultiPoint.prototype.getCoordinates),n.exportProperty(ol.geom.MultiPoint.prototype,"getPoint",ol.geom.MultiPoint.prototype.getPoint),n.exportProperty(ol.geom.MultiPoint.prototype,"getPoints",ol.geom.MultiPoint.prototype.getPoints),n.exportProperty(ol.geom.MultiPoint.prototype,"getType",ol.geom.MultiPoint.prototype.getType),n.exportProperty(ol.geom.MultiPoint.prototype,"intersectsExtent",ol.geom.MultiPoint.prototype.intersectsExtent),n.exportProperty(ol.geom.MultiPoint.prototype,"setCoordinates",ol.geom.MultiPoint.prototype.setCoordinates),n.exportSymbol("ol.geom.MultiPolygon",ol.geom.MultiPolygon,t),n.exportProperty(ol.geom.MultiPolygon.prototype,"appendPolygon",ol.geom.MultiPolygon.prototype.appendPolygon),n.exportProperty(ol.geom.MultiPolygon.prototype,"clone",ol.geom.MultiPolygon.prototype.clone),n.exportProperty(ol.geom.MultiPolygon.prototype,"getArea",ol.geom.MultiPolygon.prototype.getArea),n.exportProperty(ol.geom.MultiPolygon.prototype,"getCoordinates",ol.geom.MultiPolygon.prototype.getCoordinates),n.exportProperty(ol.geom.MultiPolygon.prototype,"getInteriorPoints",ol.geom.MultiPolygon.prototype.getInteriorPoints),n.exportProperty(ol.geom.MultiPolygon.prototype,"getPolygon",ol.geom.MultiPolygon.prototype.getPolygon),n.exportProperty(ol.geom.MultiPolygon.prototype,"getPolygons",ol.geom.MultiPolygon.prototype.getPolygons),n.exportProperty(ol.geom.MultiPolygon.prototype,"getType",ol.geom.MultiPolygon.prototype.getType),n.exportProperty(ol.geom.MultiPolygon.prototype,"intersectsExtent",ol.geom.MultiPolygon.prototype.intersectsExtent),n.exportProperty(ol.geom.MultiPolygon.prototype,"setCoordinates",ol.geom.MultiPolygon.prototype.setCoordinates),n.exportSymbol("ol.geom.Point",ol.geom.Point,t),n.exportProperty(ol.geom.Point.prototype,"clone",ol.geom.Point.prototype.clone),n.exportProperty(ol.geom.Point.prototype,"getCoordinates",ol.geom.Point.prototype.getCoordinates),n.exportProperty(ol.geom.Point.prototype,"getType",ol.geom.Point.prototype.getType),n.exportProperty(ol.geom.Point.prototype,"intersectsExtent",ol.geom.Point.prototype.intersectsExtent),n.exportProperty(ol.geom.Point.prototype,"setCoordinates",ol.geom.Point.prototype.setCoordinates),n.exportSymbol("ol.geom.Polygon",ol.geom.Polygon,t),n.exportProperty(ol.geom.Polygon.prototype,"appendLinearRing",ol.geom.Polygon.prototype.appendLinearRing),n.exportProperty(ol.geom.Polygon.prototype,"clone",ol.geom.Polygon.prototype.clone),n.exportProperty(ol.geom.Polygon.prototype,"getArea",ol.geom.Polygon.prototype.getArea),n.exportProperty(ol.geom.Polygon.prototype,"getCoordinates",ol.geom.Polygon.prototype.getCoordinates),n.exportProperty(ol.geom.Polygon.prototype,"getInteriorPoint",ol.geom.Polygon.prototype.getInteriorPoint),n.exportProperty(ol.geom.Polygon.prototype,"getLinearRingCount",ol.geom.Polygon.prototype.getLinearRingCount),n.exportProperty(ol.geom.Polygon.prototype,"getLinearRing",ol.geom.Polygon.prototype.getLinearRing),n.exportProperty(ol.geom.Polygon.prototype,"getLinearRings",ol.geom.Polygon.prototype.getLinearRings),n.exportProperty(ol.geom.Polygon.prototype,"getType",ol.geom.Polygon.prototype.getType),n.exportProperty(ol.geom.Polygon.prototype,"intersectsExtent",ol.geom.Polygon.prototype.intersectsExtent),n.exportProperty(ol.geom.Polygon.prototype,"setCoordinates",ol.geom.Polygon.prototype.setCoordinates),n.exportSymbol("ol.geom.Polygon.circular",ol.geom.Polygon.circular,t),n.exportSymbol("ol.geom.Polygon.fromExtent",ol.geom.Polygon.fromExtent,t),n.exportSymbol("ol.geom.Polygon.fromCircle",ol.geom.Polygon.fromCircle,t),n.exportSymbol("ol.geom.SimpleGeometry",ol.geom.SimpleGeometry,t),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getFirstCoordinate",ol.geom.SimpleGeometry.prototype.getFirstCoordinate),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getLastCoordinate",ol.geom.SimpleGeometry.prototype.getLastCoordinate),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getLayout",ol.geom.SimpleGeometry.prototype.getLayout),n.exportProperty(ol.geom.SimpleGeometry.prototype,"applyTransform",ol.geom.SimpleGeometry.prototype.applyTransform),n.exportProperty(ol.geom.SimpleGeometry.prototype,"translate",ol.geom.SimpleGeometry.prototype.translate),n.exportSymbol("ol.format.EsriJSON",ol.format.EsriJSON,t),n.exportProperty(ol.format.EsriJSON.prototype,"readFeature",ol.format.EsriJSON.prototype.readFeature),n.exportProperty(ol.format.EsriJSON.prototype,"readFeatures",ol.format.EsriJSON.prototype.readFeatures),n.exportProperty(ol.format.EsriJSON.prototype,"readGeometry",ol.format.EsriJSON.prototype.readGeometry),n.exportProperty(ol.format.EsriJSON.prototype,"readProjection",ol.format.EsriJSON.prototype.readProjection),n.exportProperty(ol.format.EsriJSON.prototype,"writeGeometry",ol.format.EsriJSON.prototype.writeGeometry),n.exportProperty(ol.format.EsriJSON.prototype,"writeGeometryObject",ol.format.EsriJSON.prototype.writeGeometryObject),n.exportProperty(ol.format.EsriJSON.prototype,"writeFeature",ol.format.EsriJSON.prototype.writeFeature),n.exportProperty(ol.format.EsriJSON.prototype,"writeFeatureObject",ol.format.EsriJSON.prototype.writeFeatureObject),n.exportProperty(ol.format.EsriJSON.prototype,"writeFeatures",ol.format.EsriJSON.prototype.writeFeatures),n.exportProperty(ol.format.EsriJSON.prototype,"writeFeaturesObject",ol.format.EsriJSON.prototype.writeFeaturesObject),n.exportSymbol("ol.format.Feature",ol.format.Feature,t),n.exportSymbol("ol.format.filter.and",ol.format.filter.and,t),n.exportSymbol("ol.format.filter.or",ol.format.filter.or,t),n.exportSymbol("ol.format.filter.not",ol.format.filter.not,t),n.exportSymbol("ol.format.filter.bbox",ol.format.filter.bbox,t),n.exportSymbol("ol.format.filter.contains",ol.format.filter.contains,t),n.exportSymbol("ol.format.filter.intersects",ol.format.filter.intersects,t),n.exportSymbol("ol.format.filter.within",ol.format.filter.within,t),n.exportSymbol("ol.format.filter.equalTo",ol.format.filter.equalTo,t),n.exportSymbol("ol.format.filter.notEqualTo",ol.format.filter.notEqualTo,t),n.exportSymbol("ol.format.filter.lessThan",ol.format.filter.lessThan,t),n.exportSymbol("ol.format.filter.lessThanOrEqualTo",ol.format.filter.lessThanOrEqualTo,t),n.exportSymbol("ol.format.filter.greaterThan",ol.format.filter.greaterThan,t),n.exportSymbol("ol.format.filter.greaterThanOrEqualTo",ol.format.filter.greaterThanOrEqualTo,t),n.exportSymbol("ol.format.filter.isNull",ol.format.filter.isNull,t),n.exportSymbol("ol.format.filter.between",ol.format.filter.between,t),n.exportSymbol("ol.format.filter.like",ol.format.filter.like,t),n.exportSymbol("ol.format.filter.during",ol.format.filter.during,t),n.exportSymbol("ol.format.GeoJSON",ol.format.GeoJSON,t),n.exportProperty(ol.format.GeoJSON.prototype,"readFeature",ol.format.GeoJSON.prototype.readFeature),n.exportProperty(ol.format.GeoJSON.prototype,"readFeatures",ol.format.GeoJSON.prototype.readFeatures),n.exportProperty(ol.format.GeoJSON.prototype,"readGeometry",ol.format.GeoJSON.prototype.readGeometry),n.exportProperty(ol.format.GeoJSON.prototype,"readProjection",ol.format.GeoJSON.prototype.readProjection),n.exportProperty(ol.format.GeoJSON.prototype,"writeFeature",ol.format.GeoJSON.prototype.writeFeature),n.exportProperty(ol.format.GeoJSON.prototype,"writeFeatureObject",ol.format.GeoJSON.prototype.writeFeatureObject),n.exportProperty(ol.format.GeoJSON.prototype,"writeFeatures",ol.format.GeoJSON.prototype.writeFeatures),n.exportProperty(ol.format.GeoJSON.prototype,"writeFeaturesObject",ol.format.GeoJSON.prototype.writeFeaturesObject),n.exportProperty(ol.format.GeoJSON.prototype,"writeGeometry",ol.format.GeoJSON.prototype.writeGeometry),n.exportProperty(ol.format.GeoJSON.prototype,"writeGeometryObject",ol.format.GeoJSON.prototype.writeGeometryObject),n.exportSymbol("ol.format.GML",ol.format.GML,t),n.exportProperty(ol.format.GML.prototype,"writeFeatures",ol.format.GML.prototype.writeFeatures),n.exportProperty(ol.format.GML.prototype,"writeFeaturesNode",ol.format.GML.prototype.writeFeaturesNode),n.exportSymbol("ol.format.GML2",ol.format.GML2,t),n.exportSymbol("ol.format.GML3",ol.format.GML3,t),n.exportProperty(ol.format.GML3.prototype,"writeGeometryNode",ol.format.GML3.prototype.writeGeometryNode),n.exportProperty(ol.format.GML3.prototype,"writeFeatures",ol.format.GML3.prototype.writeFeatures),n.exportProperty(ol.format.GML3.prototype,"writeFeaturesNode",ol.format.GML3.prototype.writeFeaturesNode),n.exportProperty(ol.format.GMLBase.prototype,"readFeatures",ol.format.GMLBase.prototype.readFeatures),n.exportSymbol("ol.format.GPX",ol.format.GPX,t),n.exportProperty(ol.format.GPX.prototype,"readFeature",ol.format.GPX.prototype.readFeature),n.exportProperty(ol.format.GPX.prototype,"readFeatures",ol.format.GPX.prototype.readFeatures),n.exportProperty(ol.format.GPX.prototype,"readProjection",ol.format.GPX.prototype.readProjection),n.exportProperty(ol.format.GPX.prototype,"writeFeatures",ol.format.GPX.prototype.writeFeatures),n.exportProperty(ol.format.GPX.prototype,"writeFeaturesNode",ol.format.GPX.prototype.writeFeaturesNode),n.exportSymbol("ol.format.IGC",ol.format.IGC,t),n.exportProperty(ol.format.IGC.prototype,"readFeature",ol.format.IGC.prototype.readFeature),n.exportProperty(ol.format.IGC.prototype,"readFeatures",ol.format.IGC.prototype.readFeatures),n.exportProperty(ol.format.IGC.prototype,"readProjection",ol.format.IGC.prototype.readProjection),n.exportSymbol("ol.format.KML",ol.format.KML,t),n.exportProperty(ol.format.KML.prototype,"readFeature",ol.format.KML.prototype.readFeature),n.exportProperty(ol.format.KML.prototype,"readFeatures",ol.format.KML.prototype.readFeatures),n.exportProperty(ol.format.KML.prototype,"readName",ol.format.KML.prototype.readName),n.exportProperty(ol.format.KML.prototype,"readNetworkLinks",ol.format.KML.prototype.readNetworkLinks),n.exportProperty(ol.format.KML.prototype,"readRegion",ol.format.KML.prototype.readRegion),n.exportProperty(ol.format.KML.prototype,"readRegionFromNode",ol.format.KML.prototype.readRegionFromNode),n.exportProperty(ol.format.KML.prototype,"readProjection",ol.format.KML.prototype.readProjection),n.exportProperty(ol.format.KML.prototype,"writeFeatures",ol.format.KML.prototype.writeFeatures),n.exportProperty(ol.format.KML.prototype,"writeFeaturesNode",ol.format.KML.prototype.writeFeaturesNode),n.exportSymbol("ol.format.MVT",ol.format.MVT,t),n.exportProperty(ol.format.MVT.prototype,"getLastExtent",ol.format.MVT.prototype.getLastExtent),n.exportProperty(ol.format.MVT.prototype,"readFeatures",ol.format.MVT.prototype.readFeatures),n.exportProperty(ol.format.MVT.prototype,"readProjection",ol.format.MVT.prototype.readProjection),n.exportProperty(ol.format.MVT.prototype,"setLayers",ol.format.MVT.prototype.setLayers),n.exportSymbol("ol.format.OSMXML",ol.format.OSMXML,t),n.exportProperty(ol.format.OSMXML.prototype,"readFeatures",ol.format.OSMXML.prototype.readFeatures),n.exportProperty(ol.format.OSMXML.prototype,"readProjection",ol.format.OSMXML.prototype.readProjection),n.exportSymbol("ol.format.Polyline",ol.format.Polyline,t),n.exportSymbol("ol.format.Polyline.encodeDeltas",ol.format.Polyline.encodeDeltas,t),n.exportSymbol("ol.format.Polyline.decodeDeltas",ol.format.Polyline.decodeDeltas,t),n.exportSymbol("ol.format.Polyline.encodeFloats",ol.format.Polyline.encodeFloats,t),n.exportSymbol("ol.format.Polyline.decodeFloats",ol.format.Polyline.decodeFloats,t),n.exportProperty(ol.format.Polyline.prototype,"readFeature",ol.format.Polyline.prototype.readFeature),n.exportProperty(ol.format.Polyline.prototype,"readFeatures",ol.format.Polyline.prototype.readFeatures),n.exportProperty(ol.format.Polyline.prototype,"readGeometry",ol.format.Polyline.prototype.readGeometry),n.exportProperty(ol.format.Polyline.prototype,"readProjection",ol.format.Polyline.prototype.readProjection),n.exportProperty(ol.format.Polyline.prototype,"writeGeometry",ol.format.Polyline.prototype.writeGeometry),n.exportSymbol("ol.format.TopoJSON",ol.format.TopoJSON,t),n.exportProperty(ol.format.TopoJSON.prototype,"readFeatures",ol.format.TopoJSON.prototype.readFeatures),n.exportProperty(ol.format.TopoJSON.prototype,"readProjection",ol.format.TopoJSON.prototype.readProjection),n.exportSymbol("ol.format.WFS",ol.format.WFS,t),n.exportProperty(ol.format.WFS.prototype,"readFeatures",ol.format.WFS.prototype.readFeatures),n.exportProperty(ol.format.WFS.prototype,"readTransactionResponse",ol.format.WFS.prototype.readTransactionResponse),n.exportProperty(ol.format.WFS.prototype,"readFeatureCollectionMetadata",ol.format.WFS.prototype.readFeatureCollectionMetadata),n.exportSymbol("ol.format.WFS.writeFilter",ol.format.WFS.writeFilter,t),n.exportProperty(ol.format.WFS.prototype,"writeGetFeature",ol.format.WFS.prototype.writeGetFeature),n.exportProperty(ol.format.WFS.prototype,"writeTransaction",ol.format.WFS.prototype.writeTransaction),n.exportProperty(ol.format.WFS.prototype,"readProjection",ol.format.WFS.prototype.readProjection),n.exportSymbol("ol.format.WKT",ol.format.WKT,t),n.exportProperty(ol.format.WKT.prototype,"readFeature",ol.format.WKT.prototype.readFeature),n.exportProperty(ol.format.WKT.prototype,"readFeatures",ol.format.WKT.prototype.readFeatures),n.exportProperty(ol.format.WKT.prototype,"readGeometry",ol.format.WKT.prototype.readGeometry),n.exportProperty(ol.format.WKT.prototype,"writeFeature",ol.format.WKT.prototype.writeFeature),n.exportProperty(ol.format.WKT.prototype,"writeFeatures",ol.format.WKT.prototype.writeFeatures),n.exportProperty(ol.format.WKT.prototype,"writeGeometry",ol.format.WKT.prototype.writeGeometry),n.exportSymbol("ol.format.WMSCapabilities",ol.format.WMSCapabilities,t),n.exportProperty(ol.format.WMSCapabilities.prototype,"read",ol.format.WMSCapabilities.prototype.read),n.exportSymbol("ol.format.WMSGetFeatureInfo",ol.format.WMSGetFeatureInfo,t),n.exportProperty(ol.format.WMSGetFeatureInfo.prototype,"readFeatures",ol.format.WMSGetFeatureInfo.prototype.readFeatures),n.exportSymbol("ol.format.WMTSCapabilities",ol.format.WMTSCapabilities,t),n.exportProperty(ol.format.WMTSCapabilities.prototype,"read",ol.format.WMTSCapabilities.prototype.read),n.exportSymbol("ol.format.filter.And",ol.format.filter.And,t),n.exportSymbol("ol.format.filter.Bbox",ol.format.filter.Bbox,t),n.exportSymbol("ol.format.filter.Comparison",ol.format.filter.Comparison,t),n.exportSymbol("ol.format.filter.ComparisonBinary",ol.format.filter.ComparisonBinary,t),n.exportSymbol("ol.format.filter.Contains",ol.format.filter.Contains,t),n.exportSymbol("ol.format.filter.During",ol.format.filter.During,t),n.exportSymbol("ol.format.filter.EqualTo",ol.format.filter.EqualTo,t),n.exportSymbol("ol.format.filter.Filter",ol.format.filter.Filter,t),n.exportSymbol("ol.format.filter.GreaterThan",ol.format.filter.GreaterThan,t),n.exportSymbol("ol.format.filter.GreaterThanOrEqualTo",ol.format.filter.GreaterThanOrEqualTo,t),n.exportSymbol("ol.format.filter.Intersects",ol.format.filter.Intersects,t),n.exportSymbol("ol.format.filter.IsBetween",ol.format.filter.IsBetween,t),n.exportSymbol("ol.format.filter.IsLike",ol.format.filter.IsLike,t),n.exportSymbol("ol.format.filter.IsNull",ol.format.filter.IsNull,t),n.exportSymbol("ol.format.filter.LessThan",ol.format.filter.LessThan,t),n.exportSymbol("ol.format.filter.LessThanOrEqualTo",ol.format.filter.LessThanOrEqualTo,t),n.exportSymbol("ol.format.filter.Not",ol.format.filter.Not,t),n.exportSymbol("ol.format.filter.NotEqualTo",ol.format.filter.NotEqualTo,t),n.exportSymbol("ol.format.filter.Or",ol.format.filter.Or,t),n.exportSymbol("ol.format.filter.Spatial",ol.format.filter.Spatial,t),n.exportSymbol("ol.format.filter.Within",ol.format.filter.Within,t),n.exportSymbol("ol.events.condition.altKeyOnly",ol.events.condition.altKeyOnly,t),n.exportSymbol("ol.events.condition.altShiftKeysOnly",ol.events.condition.altShiftKeysOnly,t),n.exportSymbol("ol.events.condition.always",ol.events.condition.always,t),n.exportSymbol("ol.events.condition.click",ol.events.condition.click,t),n.exportSymbol("ol.events.condition.never",ol.events.condition.never,t),n.exportSymbol("ol.events.condition.pointerMove",ol.events.condition.pointerMove,t),n.exportSymbol("ol.events.condition.singleClick",ol.events.condition.singleClick,t),n.exportSymbol("ol.events.condition.doubleClick",ol.events.condition.doubleClick,t),n.exportSymbol("ol.events.condition.noModifierKeys",ol.events.condition.noModifierKeys,t),n.exportSymbol("ol.events.condition.platformModifierKeyOnly",ol.events.condition.platformModifierKeyOnly,t),n.exportSymbol("ol.events.condition.shiftKeyOnly",ol.events.condition.shiftKeyOnly,t),n.exportSymbol("ol.events.condition.targetNotEditable",ol.events.condition.targetNotEditable,t),n.exportSymbol("ol.events.condition.mouseOnly",ol.events.condition.mouseOnly,t),n.exportSymbol("ol.events.condition.primaryAction",ol.events.condition.primaryAction,t),n.exportProperty(ol.events.Event.prototype,"type",ol.events.Event.prototype.type),n.exportProperty(ol.events.Event.prototype,"target",ol.events.Event.prototype.target),n.exportProperty(ol.events.Event.prototype,"preventDefault",ol.events.Event.prototype.preventDefault),n.exportProperty(ol.events.Event.prototype,"stopPropagation",ol.events.Event.prototype.stopPropagation),n.exportSymbol("ol.control.Attribution",ol.control.Attribution,t),n.exportSymbol("ol.control.Attribution.render",ol.control.Attribution.render,t),n.exportProperty(ol.control.Attribution.prototype,"getCollapsible",ol.control.Attribution.prototype.getCollapsible),n.exportProperty(ol.control.Attribution.prototype,"setCollapsible",ol.control.Attribution.prototype.setCollapsible),n.exportProperty(ol.control.Attribution.prototype,"setCollapsed",ol.control.Attribution.prototype.setCollapsed),n.exportProperty(ol.control.Attribution.prototype,"getCollapsed",ol.control.Attribution.prototype.getCollapsed),n.exportSymbol("ol.control.Control",ol.control.Control,t),n.exportProperty(ol.control.Control.prototype,"getMap",ol.control.Control.prototype.getMap),n.exportProperty(ol.control.Control.prototype,"setMap",ol.control.Control.prototype.setMap),n.exportProperty(ol.control.Control.prototype,"setTarget",ol.control.Control.prototype.setTarget),n.exportSymbol("ol.control.FullScreen",ol.control.FullScreen,t),n.exportSymbol("ol.control.MousePosition",ol.control.MousePosition,t),n.exportSymbol("ol.control.MousePosition.render",ol.control.MousePosition.render,t),n.exportProperty(ol.control.MousePosition.prototype,"getCoordinateFormat",ol.control.MousePosition.prototype.getCoordinateFormat),n.exportProperty(ol.control.MousePosition.prototype,"getProjection",ol.control.MousePosition.prototype.getProjection),n.exportProperty(ol.control.MousePosition.prototype,"setCoordinateFormat",ol.control.MousePosition.prototype.setCoordinateFormat),n.exportProperty(ol.control.MousePosition.prototype,"setProjection",ol.control.MousePosition.prototype.setProjection),n.exportSymbol("ol.control.OverviewMap",ol.control.OverviewMap,t),n.exportSymbol("ol.control.OverviewMap.render",ol.control.OverviewMap.render,t),n.exportProperty(ol.control.OverviewMap.prototype,"getCollapsible",ol.control.OverviewMap.prototype.getCollapsible),n.exportProperty(ol.control.OverviewMap.prototype,"setCollapsible",ol.control.OverviewMap.prototype.setCollapsible),n.exportProperty(ol.control.OverviewMap.prototype,"setCollapsed",ol.control.OverviewMap.prototype.setCollapsed),n.exportProperty(ol.control.OverviewMap.prototype,"getCollapsed",ol.control.OverviewMap.prototype.getCollapsed),n.exportProperty(ol.control.OverviewMap.prototype,"getOverviewMap",ol.control.OverviewMap.prototype.getOverviewMap),n.exportSymbol("ol.control.Rotate",ol.control.Rotate,t),n.exportSymbol("ol.control.Rotate.render",ol.control.Rotate.render,t),n.exportSymbol("ol.control.ScaleLine",ol.control.ScaleLine,t),n.exportProperty(ol.control.ScaleLine.prototype,"getUnits",ol.control.ScaleLine.prototype.getUnits),n.exportSymbol("ol.control.ScaleLine.render",ol.control.ScaleLine.render,t),n.exportProperty(ol.control.ScaleLine.prototype,"setUnits",ol.control.ScaleLine.prototype.setUnits),n.exportSymbol("ol.control.Zoom",ol.control.Zoom,t),n.exportSymbol("ol.control.ZoomSlider",ol.control.ZoomSlider,t),n.exportSymbol("ol.control.ZoomSlider.render",ol.control.ZoomSlider.render,t),n.exportSymbol("ol.control.ZoomToExtent",ol.control.ZoomToExtent,t),n.exportProperty(ol.Object.prototype,"changed",ol.Object.prototype.changed),n.exportProperty(ol.Object.prototype,"dispatchEvent",ol.Object.prototype.dispatchEvent),n.exportProperty(ol.Object.prototype,"getRevision",ol.Object.prototype.getRevision),n.exportProperty(ol.Object.prototype,"on",ol.Object.prototype.on),n.exportProperty(ol.Object.prototype,"once",ol.Object.prototype.once),n.exportProperty(ol.Object.prototype,"un",ol.Object.prototype.un),n.exportProperty(ol.PluggableMap.prototype,"get",ol.PluggableMap.prototype.get),n.exportProperty(ol.PluggableMap.prototype,"getKeys",ol.PluggableMap.prototype.getKeys),n.exportProperty(ol.PluggableMap.prototype,"getProperties",ol.PluggableMap.prototype.getProperties),n.exportProperty(ol.PluggableMap.prototype,"set",ol.PluggableMap.prototype.set),n.exportProperty(ol.PluggableMap.prototype,"setProperties",ol.PluggableMap.prototype.setProperties),n.exportProperty(ol.PluggableMap.prototype,"unset",ol.PluggableMap.prototype.unset),n.exportProperty(ol.PluggableMap.prototype,"changed",ol.PluggableMap.prototype.changed),n.exportProperty(ol.PluggableMap.prototype,"dispatchEvent",ol.PluggableMap.prototype.dispatchEvent),n.exportProperty(ol.PluggableMap.prototype,"getRevision",ol.PluggableMap.prototype.getRevision),n.exportProperty(ol.PluggableMap.prototype,"on",ol.PluggableMap.prototype.on),n.exportProperty(ol.PluggableMap.prototype,"once",ol.PluggableMap.prototype.once),n.exportProperty(ol.PluggableMap.prototype,"un",ol.PluggableMap.prototype.un),n.exportProperty(ol.CanvasMap.prototype,"addControl",ol.CanvasMap.prototype.addControl),n.exportProperty(ol.CanvasMap.prototype,"addInteraction",ol.CanvasMap.prototype.addInteraction),n.exportProperty(ol.CanvasMap.prototype,"addLayer",ol.CanvasMap.prototype.addLayer),n.exportProperty(ol.CanvasMap.prototype,"addOverlay",ol.CanvasMap.prototype.addOverlay),n.exportProperty(ol.CanvasMap.prototype,"forEachFeatureAtPixel",ol.CanvasMap.prototype.forEachFeatureAtPixel),n.exportProperty(ol.CanvasMap.prototype,"getFeaturesAtPixel",ol.CanvasMap.prototype.getFeaturesAtPixel),n.exportProperty(ol.CanvasMap.prototype,"forEachLayerAtPixel",ol.CanvasMap.prototype.forEachLayerAtPixel),n.exportProperty(ol.CanvasMap.prototype,"hasFeatureAtPixel",ol.CanvasMap.prototype.hasFeatureAtPixel),n.exportProperty(ol.CanvasMap.prototype,"getEventCoordinate",ol.CanvasMap.prototype.getEventCoordinate),n.exportProperty(ol.CanvasMap.prototype,"getEventPixel",ol.CanvasMap.prototype.getEventPixel),n.exportProperty(ol.CanvasMap.prototype,"getTarget",ol.CanvasMap.prototype.getTarget),n.exportProperty(ol.CanvasMap.prototype,"getTargetElement",ol.CanvasMap.prototype.getTargetElement),n.exportProperty(ol.CanvasMap.prototype,"getCoordinateFromPixel",ol.CanvasMap.prototype.getCoordinateFromPixel),n.exportProperty(ol.CanvasMap.prototype,"getControls",ol.CanvasMap.prototype.getControls),n.exportProperty(ol.CanvasMap.prototype,"getOverlays",ol.CanvasMap.prototype.getOverlays),n.exportProperty(ol.CanvasMap.prototype,"getOverlayById",ol.CanvasMap.prototype.getOverlayById),n.exportProperty(ol.CanvasMap.prototype,"getInteractions",ol.CanvasMap.prototype.getInteractions),n.exportProperty(ol.CanvasMap.prototype,"getLayerGroup",ol.CanvasMap.prototype.getLayerGroup),n.exportProperty(ol.CanvasMap.prototype,"getLayers",ol.CanvasMap.prototype.getLayers),n.exportProperty(ol.CanvasMap.prototype,"getPixelFromCoordinate",ol.CanvasMap.prototype.getPixelFromCoordinate),n.exportProperty(ol.CanvasMap.prototype,"getSize",ol.CanvasMap.prototype.getSize),n.exportProperty(ol.CanvasMap.prototype,"getView",ol.CanvasMap.prototype.getView),n.exportProperty(ol.CanvasMap.prototype,"getViewport",ol.CanvasMap.prototype.getViewport),n.exportProperty(ol.CanvasMap.prototype,"renderSync",ol.CanvasMap.prototype.renderSync),n.exportProperty(ol.CanvasMap.prototype,"render",ol.CanvasMap.prototype.render),n.exportProperty(ol.CanvasMap.prototype,"removeControl",ol.CanvasMap.prototype.removeControl),n.exportProperty(ol.CanvasMap.prototype,"removeInteraction",ol.CanvasMap.prototype.removeInteraction),n.exportProperty(ol.CanvasMap.prototype,"removeLayer",ol.CanvasMap.prototype.removeLayer),n.exportProperty(ol.CanvasMap.prototype,"removeOverlay",ol.CanvasMap.prototype.removeOverlay),n.exportProperty(ol.CanvasMap.prototype,"setLayerGroup",ol.CanvasMap.prototype.setLayerGroup),n.exportProperty(ol.CanvasMap.prototype,"setSize",ol.CanvasMap.prototype.setSize),n.exportProperty(ol.CanvasMap.prototype,"setTarget",ol.CanvasMap.prototype.setTarget),n.exportProperty(ol.CanvasMap.prototype,"setView",ol.CanvasMap.prototype.setView),n.exportProperty(ol.CanvasMap.prototype,"updateSize",ol.CanvasMap.prototype.updateSize),n.exportProperty(ol.CanvasMap.prototype,"get",ol.CanvasMap.prototype.get),n.exportProperty(ol.CanvasMap.prototype,"getKeys",ol.CanvasMap.prototype.getKeys),n.exportProperty(ol.CanvasMap.prototype,"getProperties",ol.CanvasMap.prototype.getProperties),n.exportProperty(ol.CanvasMap.prototype,"set",ol.CanvasMap.prototype.set),n.exportProperty(ol.CanvasMap.prototype,"setProperties",ol.CanvasMap.prototype.setProperties),n.exportProperty(ol.CanvasMap.prototype,"unset",ol.CanvasMap.prototype.unset),n.exportProperty(ol.CanvasMap.prototype,"changed",ol.CanvasMap.prototype.changed),n.exportProperty(ol.CanvasMap.prototype,"dispatchEvent",ol.CanvasMap.prototype.dispatchEvent),n.exportProperty(ol.CanvasMap.prototype,"getRevision",ol.CanvasMap.prototype.getRevision),n.exportProperty(ol.CanvasMap.prototype,"on",ol.CanvasMap.prototype.on),n.exportProperty(ol.CanvasMap.prototype,"once",ol.CanvasMap.prototype.once),n.exportProperty(ol.CanvasMap.prototype,"un",ol.CanvasMap.prototype.un),n.exportProperty(ol.Collection.prototype,"get",ol.Collection.prototype.get),n.exportProperty(ol.Collection.prototype,"getKeys",ol.Collection.prototype.getKeys),n.exportProperty(ol.Collection.prototype,"getProperties",ol.Collection.prototype.getProperties),n.exportProperty(ol.Collection.prototype,"set",ol.Collection.prototype.set),n.exportProperty(ol.Collection.prototype,"setProperties",ol.Collection.prototype.setProperties),n.exportProperty(ol.Collection.prototype,"unset",ol.Collection.prototype.unset),n.exportProperty(ol.Collection.prototype,"changed",ol.Collection.prototype.changed),n.exportProperty(ol.Collection.prototype,"dispatchEvent",ol.Collection.prototype.dispatchEvent),n.exportProperty(ol.Collection.prototype,"getRevision",ol.Collection.prototype.getRevision),n.exportProperty(ol.Collection.prototype,"on",ol.Collection.prototype.on),n.exportProperty(ol.Collection.prototype,"once",ol.Collection.prototype.once),n.exportProperty(ol.Collection.prototype,"un",ol.Collection.prototype.un),n.exportProperty(ol.Collection.Event.prototype,"type",ol.Collection.Event.prototype.type),n.exportProperty(ol.Collection.Event.prototype,"target",ol.Collection.Event.prototype.target),n.exportProperty(ol.Collection.Event.prototype,"preventDefault",ol.Collection.Event.prototype.preventDefault),n.exportProperty(ol.Collection.Event.prototype,"stopPropagation",ol.Collection.Event.prototype.stopPropagation),n.exportProperty(ol.DeviceOrientation.prototype,"get",ol.DeviceOrientation.prototype.get),n.exportProperty(ol.DeviceOrientation.prototype,"getKeys",ol.DeviceOrientation.prototype.getKeys),n.exportProperty(ol.DeviceOrientation.prototype,"getProperties",ol.DeviceOrientation.prototype.getProperties),n.exportProperty(ol.DeviceOrientation.prototype,"set",ol.DeviceOrientation.prototype.set),n.exportProperty(ol.DeviceOrientation.prototype,"setProperties",ol.DeviceOrientation.prototype.setProperties),n.exportProperty(ol.DeviceOrientation.prototype,"unset",ol.DeviceOrientation.prototype.unset),n.exportProperty(ol.DeviceOrientation.prototype,"changed",ol.DeviceOrientation.prototype.changed),n.exportProperty(ol.DeviceOrientation.prototype,"dispatchEvent",ol.DeviceOrientation.prototype.dispatchEvent),n.exportProperty(ol.DeviceOrientation.prototype,"getRevision",ol.DeviceOrientation.prototype.getRevision),n.exportProperty(ol.DeviceOrientation.prototype,"on",ol.DeviceOrientation.prototype.on),n.exportProperty(ol.DeviceOrientation.prototype,"once",ol.DeviceOrientation.prototype.once),n.exportProperty(ol.DeviceOrientation.prototype,"un",ol.DeviceOrientation.prototype.un),n.exportProperty(ol.Feature.prototype,"get",ol.Feature.prototype.get),n.exportProperty(ol.Feature.prototype,"getKeys",ol.Feature.prototype.getKeys),n.exportProperty(ol.Feature.prototype,"getProperties",ol.Feature.prototype.getProperties),n.exportProperty(ol.Feature.prototype,"set",ol.Feature.prototype.set),n.exportProperty(ol.Feature.prototype,"setProperties",ol.Feature.prototype.setProperties),n.exportProperty(ol.Feature.prototype,"unset",ol.Feature.prototype.unset),n.exportProperty(ol.Feature.prototype,"changed",ol.Feature.prototype.changed),n.exportProperty(ol.Feature.prototype,"dispatchEvent",ol.Feature.prototype.dispatchEvent),n.exportProperty(ol.Feature.prototype,"getRevision",ol.Feature.prototype.getRevision),n.exportProperty(ol.Feature.prototype,"on",ol.Feature.prototype.on),n.exportProperty(ol.Feature.prototype,"once",ol.Feature.prototype.once),n.exportProperty(ol.Feature.prototype,"un",ol.Feature.prototype.un),n.exportProperty(ol.Geolocation.prototype,"get",ol.Geolocation.prototype.get),n.exportProperty(ol.Geolocation.prototype,"getKeys",ol.Geolocation.prototype.getKeys),n.exportProperty(ol.Geolocation.prototype,"getProperties",ol.Geolocation.prototype.getProperties),n.exportProperty(ol.Geolocation.prototype,"set",ol.Geolocation.prototype.set),n.exportProperty(ol.Geolocation.prototype,"setProperties",ol.Geolocation.prototype.setProperties),n.exportProperty(ol.Geolocation.prototype,"unset",ol.Geolocation.prototype.unset),n.exportProperty(ol.Geolocation.prototype,"changed",ol.Geolocation.prototype.changed),n.exportProperty(ol.Geolocation.prototype,"dispatchEvent",ol.Geolocation.prototype.dispatchEvent),n.exportProperty(ol.Geolocation.prototype,"getRevision",ol.Geolocation.prototype.getRevision),n.exportProperty(ol.Geolocation.prototype,"on",ol.Geolocation.prototype.on),n.exportProperty(ol.Geolocation.prototype,"once",ol.Geolocation.prototype.once),n.exportProperty(ol.Geolocation.prototype,"un",ol.Geolocation.prototype.un),n.exportProperty(ol.ImageTile.prototype,"getTileCoord",ol.ImageTile.prototype.getTileCoord),n.exportProperty(ol.ImageTile.prototype,"load",ol.ImageTile.prototype.load),n.exportProperty(ol.Map.prototype,"addControl",ol.Map.prototype.addControl),n.exportProperty(ol.Map.prototype,"addInteraction",ol.Map.prototype.addInteraction),n.exportProperty(ol.Map.prototype,"addLayer",ol.Map.prototype.addLayer),n.exportProperty(ol.Map.prototype,"addOverlay",ol.Map.prototype.addOverlay),n.exportProperty(ol.Map.prototype,"forEachFeatureAtPixel",ol.Map.prototype.forEachFeatureAtPixel),n.exportProperty(ol.Map.prototype,"getFeaturesAtPixel",ol.Map.prototype.getFeaturesAtPixel),n.exportProperty(ol.Map.prototype,"forEachLayerAtPixel",ol.Map.prototype.forEachLayerAtPixel),n.exportProperty(ol.Map.prototype,"hasFeatureAtPixel",ol.Map.prototype.hasFeatureAtPixel),n.exportProperty(ol.Map.prototype,"getEventCoordinate",ol.Map.prototype.getEventCoordinate),n.exportProperty(ol.Map.prototype,"getEventPixel",ol.Map.prototype.getEventPixel),n.exportProperty(ol.Map.prototype,"getTarget",ol.Map.prototype.getTarget),n.exportProperty(ol.Map.prototype,"getTargetElement",ol.Map.prototype.getTargetElement),n.exportProperty(ol.Map.prototype,"getCoordinateFromPixel",ol.Map.prototype.getCoordinateFromPixel),n.exportProperty(ol.Map.prototype,"getControls",ol.Map.prototype.getControls),n.exportProperty(ol.Map.prototype,"getOverlays",ol.Map.prototype.getOverlays),n.exportProperty(ol.Map.prototype,"getOverlayById",ol.Map.prototype.getOverlayById),n.exportProperty(ol.Map.prototype,"getInteractions",ol.Map.prototype.getInteractions),n.exportProperty(ol.Map.prototype,"getLayerGroup",ol.Map.prototype.getLayerGroup),n.exportProperty(ol.Map.prototype,"getLayers",ol.Map.prototype.getLayers),n.exportProperty(ol.Map.prototype,"getPixelFromCoordinate",ol.Map.prototype.getPixelFromCoordinate),n.exportProperty(ol.Map.prototype,"getSize",ol.Map.prototype.getSize),n.exportProperty(ol.Map.prototype,"getView",ol.Map.prototype.getView),n.exportProperty(ol.Map.prototype,"getViewport",ol.Map.prototype.getViewport),n.exportProperty(ol.Map.prototype,"renderSync",ol.Map.prototype.renderSync),n.exportProperty(ol.Map.prototype,"render",ol.Map.prototype.render),n.exportProperty(ol.Map.prototype,"removeControl",ol.Map.prototype.removeControl),n.exportProperty(ol.Map.prototype,"removeInteraction",ol.Map.prototype.removeInteraction),n.exportProperty(ol.Map.prototype,"removeLayer",ol.Map.prototype.removeLayer),n.exportProperty(ol.Map.prototype,"removeOverlay",ol.Map.prototype.removeOverlay),n.exportProperty(ol.Map.prototype,"setLayerGroup",ol.Map.prototype.setLayerGroup),n.exportProperty(ol.Map.prototype,"setSize",ol.Map.prototype.setSize),n.exportProperty(ol.Map.prototype,"setTarget",ol.Map.prototype.setTarget),n.exportProperty(ol.Map.prototype,"setView",ol.Map.prototype.setView),n.exportProperty(ol.Map.prototype,"updateSize",ol.Map.prototype.updateSize),n.exportProperty(ol.Map.prototype,"get",ol.Map.prototype.get),n.exportProperty(ol.Map.prototype,"getKeys",ol.Map.prototype.getKeys),n.exportProperty(ol.Map.prototype,"getProperties",ol.Map.prototype.getProperties),n.exportProperty(ol.Map.prototype,"set",ol.Map.prototype.set),n.exportProperty(ol.Map.prototype,"setProperties",ol.Map.prototype.setProperties),n.exportProperty(ol.Map.prototype,"unset",ol.Map.prototype.unset),n.exportProperty(ol.Map.prototype,"changed",ol.Map.prototype.changed),n.exportProperty(ol.Map.prototype,"dispatchEvent",ol.Map.prototype.dispatchEvent),n.exportProperty(ol.Map.prototype,"getRevision",ol.Map.prototype.getRevision),n.exportProperty(ol.Map.prototype,"on",ol.Map.prototype.on),n.exportProperty(ol.Map.prototype,"once",ol.Map.prototype.once),n.exportProperty(ol.Map.prototype,"un",ol.Map.prototype.un),n.exportProperty(ol.MapEvent.prototype,"type",ol.MapEvent.prototype.type),n.exportProperty(ol.MapEvent.prototype,"target",ol.MapEvent.prototype.target),n.exportProperty(ol.MapEvent.prototype,"preventDefault",ol.MapEvent.prototype.preventDefault),n.exportProperty(ol.MapEvent.prototype,"stopPropagation",ol.MapEvent.prototype.stopPropagation),n.exportProperty(ol.MapBrowserEvent.prototype,"map",ol.MapBrowserEvent.prototype.map),n.exportProperty(ol.MapBrowserEvent.prototype,"frameState",ol.MapBrowserEvent.prototype.frameState),n.exportProperty(ol.MapBrowserEvent.prototype,"type",ol.MapBrowserEvent.prototype.type),n.exportProperty(ol.MapBrowserEvent.prototype,"target",ol.MapBrowserEvent.prototype.target),n.exportProperty(ol.MapBrowserEvent.prototype,"preventDefault",ol.MapBrowserEvent.prototype.preventDefault),n.exportProperty(ol.MapBrowserEvent.prototype,"stopPropagation",ol.MapBrowserEvent.prototype.stopPropagation),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"originalEvent",ol.MapBrowserPointerEvent.prototype.originalEvent),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"pixel",ol.MapBrowserPointerEvent.prototype.pixel),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"coordinate",ol.MapBrowserPointerEvent.prototype.coordinate),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"dragging",ol.MapBrowserPointerEvent.prototype.dragging),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"preventDefault",ol.MapBrowserPointerEvent.prototype.preventDefault),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"stopPropagation",ol.MapBrowserPointerEvent.prototype.stopPropagation),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"map",ol.MapBrowserPointerEvent.prototype.map),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"frameState",ol.MapBrowserPointerEvent.prototype.frameState),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"type",ol.MapBrowserPointerEvent.prototype.type),n.exportProperty(ol.MapBrowserPointerEvent.prototype,"target",ol.MapBrowserPointerEvent.prototype.target),n.exportProperty(ol.Object.Event.prototype,"type",ol.Object.Event.prototype.type),n.exportProperty(ol.Object.Event.prototype,"target",ol.Object.Event.prototype.target),n.exportProperty(ol.Object.Event.prototype,"preventDefault",ol.Object.Event.prototype.preventDefault),n.exportProperty(ol.Object.Event.prototype,"stopPropagation",ol.Object.Event.prototype.stopPropagation),n.exportProperty(ol.Overlay.prototype,"get",ol.Overlay.prototype.get),n.exportProperty(ol.Overlay.prototype,"getKeys",ol.Overlay.prototype.getKeys),n.exportProperty(ol.Overlay.prototype,"getProperties",ol.Overlay.prototype.getProperties),n.exportProperty(ol.Overlay.prototype,"set",ol.Overlay.prototype.set),n.exportProperty(ol.Overlay.prototype,"setProperties",ol.Overlay.prototype.setProperties),n.exportProperty(ol.Overlay.prototype,"unset",ol.Overlay.prototype.unset),n.exportProperty(ol.Overlay.prototype,"changed",ol.Overlay.prototype.changed),n.exportProperty(ol.Overlay.prototype,"dispatchEvent",ol.Overlay.prototype.dispatchEvent),n.exportProperty(ol.Overlay.prototype,"getRevision",ol.Overlay.prototype.getRevision),n.exportProperty(ol.Overlay.prototype,"on",ol.Overlay.prototype.on),n.exportProperty(ol.Overlay.prototype,"once",ol.Overlay.prototype.once),n.exportProperty(ol.Overlay.prototype,"un",ol.Overlay.prototype.un),n.exportProperty(ol.VectorImageTile.prototype,"getTileCoord",ol.VectorImageTile.prototype.getTileCoord),n.exportProperty(ol.VectorImageTile.prototype,"load",ol.VectorImageTile.prototype.load),n.exportProperty(ol.VectorTile.prototype,"getTileCoord",ol.VectorTile.prototype.getTileCoord),n.exportProperty(ol.VectorTile.prototype,"load",ol.VectorTile.prototype.load),n.exportProperty(ol.View.prototype,"get",ol.View.prototype.get),n.exportProperty(ol.View.prototype,"getKeys",ol.View.prototype.getKeys),n.exportProperty(ol.View.prototype,"getProperties",ol.View.prototype.getProperties),n.exportProperty(ol.View.prototype,"set",ol.View.prototype.set),n.exportProperty(ol.View.prototype,"setProperties",ol.View.prototype.setProperties),n.exportProperty(ol.View.prototype,"unset",ol.View.prototype.unset),n.exportProperty(ol.View.prototype,"changed",ol.View.prototype.changed),n.exportProperty(ol.View.prototype,"dispatchEvent",ol.View.prototype.dispatchEvent),n.exportProperty(ol.View.prototype,"getRevision",ol.View.prototype.getRevision),n.exportProperty(ol.View.prototype,"on",ol.View.prototype.on),n.exportProperty(ol.View.prototype,"once",ol.View.prototype.once),n.exportProperty(ol.View.prototype,"un",ol.View.prototype.un),n.exportProperty(ol.tilegrid.WMTS.prototype,"forEachTileCoord",ol.tilegrid.WMTS.prototype.forEachTileCoord),n.exportProperty(ol.tilegrid.WMTS.prototype,"getMaxZoom",ol.tilegrid.WMTS.prototype.getMaxZoom),n.exportProperty(ol.tilegrid.WMTS.prototype,"getMinZoom",ol.tilegrid.WMTS.prototype.getMinZoom),n.exportProperty(ol.tilegrid.WMTS.prototype,"getOrigin",ol.tilegrid.WMTS.prototype.getOrigin),n.exportProperty(ol.tilegrid.WMTS.prototype,"getResolution",ol.tilegrid.WMTS.prototype.getResolution),n.exportProperty(ol.tilegrid.WMTS.prototype,"getResolutions",ol.tilegrid.WMTS.prototype.getResolutions),n.exportProperty(ol.tilegrid.WMTS.prototype,"getTileCoordExtent",ol.tilegrid.WMTS.prototype.getTileCoordExtent),n.exportProperty(ol.tilegrid.WMTS.prototype,"getTileCoordForCoordAndResolution",ol.tilegrid.WMTS.prototype.getTileCoordForCoordAndResolution),n.exportProperty(ol.tilegrid.WMTS.prototype,"getTileCoordForCoordAndZ",ol.tilegrid.WMTS.prototype.getTileCoordForCoordAndZ),n.exportProperty(ol.tilegrid.WMTS.prototype,"getTileSize",ol.tilegrid.WMTS.prototype.getTileSize),n.exportProperty(ol.tilegrid.WMTS.prototype,"getZForResolution",ol.tilegrid.WMTS.prototype.getZForResolution),n.exportProperty(ol.style.RegularShape.prototype,"getOpacity",ol.style.RegularShape.prototype.getOpacity),n.exportProperty(ol.style.RegularShape.prototype,"getRotateWithView",ol.style.RegularShape.prototype.getRotateWithView),n.exportProperty(ol.style.RegularShape.prototype,"getRotation",ol.style.RegularShape.prototype.getRotation),n.exportProperty(ol.style.RegularShape.prototype,"getScale",ol.style.RegularShape.prototype.getScale),n.exportProperty(ol.style.RegularShape.prototype,"getSnapToPixel",ol.style.RegularShape.prototype.getSnapToPixel),n.exportProperty(ol.style.RegularShape.prototype,"setOpacity",ol.style.RegularShape.prototype.setOpacity),n.exportProperty(ol.style.RegularShape.prototype,"setRotation",ol.style.RegularShape.prototype.setRotation),n.exportProperty(ol.style.RegularShape.prototype,"setScale",ol.style.RegularShape.prototype.setScale),n.exportProperty(ol.style.Circle.prototype,"clone",ol.style.Circle.prototype.clone),n.exportProperty(ol.style.Circle.prototype,"getAngle",ol.style.Circle.prototype.getAngle),n.exportProperty(ol.style.Circle.prototype,"getFill",ol.style.Circle.prototype.getFill),n.exportProperty(ol.style.Circle.prototype,"getPoints",ol.style.Circle.prototype.getPoints),n.exportProperty(ol.style.Circle.prototype,"getRadius",ol.style.Circle.prototype.getRadius),n.exportProperty(ol.style.Circle.prototype,"getRadius2",ol.style.Circle.prototype.getRadius2),n.exportProperty(ol.style.Circle.prototype,"getStroke",ol.style.Circle.prototype.getStroke),n.exportProperty(ol.style.Circle.prototype,"getOpacity",ol.style.Circle.prototype.getOpacity),n.exportProperty(ol.style.Circle.prototype,"getRotateWithView",ol.style.Circle.prototype.getRotateWithView),n.exportProperty(ol.style.Circle.prototype,"getRotation",ol.style.Circle.prototype.getRotation),n.exportProperty(ol.style.Circle.prototype,"getScale",ol.style.Circle.prototype.getScale),n.exportProperty(ol.style.Circle.prototype,"getSnapToPixel",ol.style.Circle.prototype.getSnapToPixel),n.exportProperty(ol.style.Circle.prototype,"setOpacity",ol.style.Circle.prototype.setOpacity),n.exportProperty(ol.style.Circle.prototype,"setRotation",ol.style.Circle.prototype.setRotation),n.exportProperty(ol.style.Circle.prototype,"setScale",ol.style.Circle.prototype.setScale),n.exportProperty(ol.style.Icon.prototype,"getOpacity",ol.style.Icon.prototype.getOpacity),n.exportProperty(ol.style.Icon.prototype,"getRotateWithView",ol.style.Icon.prototype.getRotateWithView),n.exportProperty(ol.style.Icon.prototype,"getRotation",ol.style.Icon.prototype.getRotation),n.exportProperty(ol.style.Icon.prototype,"getScale",ol.style.Icon.prototype.getScale),n.exportProperty(ol.style.Icon.prototype,"getSnapToPixel",ol.style.Icon.prototype.getSnapToPixel),n.exportProperty(ol.style.Icon.prototype,"setOpacity",ol.style.Icon.prototype.setOpacity),n.exportProperty(ol.style.Icon.prototype,"setRotation",ol.style.Icon.prototype.setRotation),n.exportProperty(ol.style.Icon.prototype,"setScale",ol.style.Icon.prototype.setScale),n.exportProperty(ol.source.Source.prototype,"get",ol.source.Source.prototype.get),n.exportProperty(ol.source.Source.prototype,"getKeys",ol.source.Source.prototype.getKeys),n.exportProperty(ol.source.Source.prototype,"getProperties",ol.source.Source.prototype.getProperties),n.exportProperty(ol.source.Source.prototype,"set",ol.source.Source.prototype.set),n.exportProperty(ol.source.Source.prototype,"setProperties",ol.source.Source.prototype.setProperties),n.exportProperty(ol.source.Source.prototype,"unset",ol.source.Source.prototype.unset),n.exportProperty(ol.source.Source.prototype,"changed",ol.source.Source.prototype.changed),n.exportProperty(ol.source.Source.prototype,"dispatchEvent",ol.source.Source.prototype.dispatchEvent),n.exportProperty(ol.source.Source.prototype,"getRevision",ol.source.Source.prototype.getRevision),n.exportProperty(ol.source.Source.prototype,"on",ol.source.Source.prototype.on),n.exportProperty(ol.source.Source.prototype,"once",ol.source.Source.prototype.once),n.exportProperty(ol.source.Source.prototype,"un",ol.source.Source.prototype.un),n.exportProperty(ol.source.Tile.prototype,"getAttributions",ol.source.Tile.prototype.getAttributions),n.exportProperty(ol.source.Tile.prototype,"getLogo",ol.source.Tile.prototype.getLogo),n.exportProperty(ol.source.Tile.prototype,"getProjection",ol.source.Tile.prototype.getProjection),n.exportProperty(ol.source.Tile.prototype,"getState",ol.source.Tile.prototype.getState),n.exportProperty(ol.source.Tile.prototype,"refresh",ol.source.Tile.prototype.refresh),n.exportProperty(ol.source.Tile.prototype,"setAttributions",ol.source.Tile.prototype.setAttributions),n.exportProperty(ol.source.Tile.prototype,"get",ol.source.Tile.prototype.get),n.exportProperty(ol.source.Tile.prototype,"getKeys",ol.source.Tile.prototype.getKeys),n.exportProperty(ol.source.Tile.prototype,"getProperties",ol.source.Tile.prototype.getProperties),n.exportProperty(ol.source.Tile.prototype,"set",ol.source.Tile.prototype.set),n.exportProperty(ol.source.Tile.prototype,"setProperties",ol.source.Tile.prototype.setProperties),n.exportProperty(ol.source.Tile.prototype,"unset",ol.source.Tile.prototype.unset),n.exportProperty(ol.source.Tile.prototype,"changed",ol.source.Tile.prototype.changed),n.exportProperty(ol.source.Tile.prototype,"dispatchEvent",ol.source.Tile.prototype.dispatchEvent),n.exportProperty(ol.source.Tile.prototype,"getRevision",ol.source.Tile.prototype.getRevision),n.exportProperty(ol.source.Tile.prototype,"on",ol.source.Tile.prototype.on),n.exportProperty(ol.source.Tile.prototype,"once",ol.source.Tile.prototype.once),n.exportProperty(ol.source.Tile.prototype,"un",ol.source.Tile.prototype.un),n.exportProperty(ol.source.UrlTile.prototype,"getTileGrid",ol.source.UrlTile.prototype.getTileGrid),n.exportProperty(ol.source.UrlTile.prototype,"refresh",ol.source.UrlTile.prototype.refresh),n.exportProperty(ol.source.UrlTile.prototype,"getAttributions",ol.source.UrlTile.prototype.getAttributions),n.exportProperty(ol.source.UrlTile.prototype,"getLogo",ol.source.UrlTile.prototype.getLogo),n.exportProperty(ol.source.UrlTile.prototype,"getProjection",ol.source.UrlTile.prototype.getProjection),n.exportProperty(ol.source.UrlTile.prototype,"getState",ol.source.UrlTile.prototype.getState),n.exportProperty(ol.source.UrlTile.prototype,"setAttributions",ol.source.UrlTile.prototype.setAttributions),n.exportProperty(ol.source.UrlTile.prototype,"get",ol.source.UrlTile.prototype.get),n.exportProperty(ol.source.UrlTile.prototype,"getKeys",ol.source.UrlTile.prototype.getKeys),n.exportProperty(ol.source.UrlTile.prototype,"getProperties",ol.source.UrlTile.prototype.getProperties),n.exportProperty(ol.source.UrlTile.prototype,"set",ol.source.UrlTile.prototype.set),n.exportProperty(ol.source.UrlTile.prototype,"setProperties",ol.source.UrlTile.prototype.setProperties),n.exportProperty(ol.source.UrlTile.prototype,"unset",ol.source.UrlTile.prototype.unset),n.exportProperty(ol.source.UrlTile.prototype,"changed",ol.source.UrlTile.prototype.changed),n.exportProperty(ol.source.UrlTile.prototype,"dispatchEvent",ol.source.UrlTile.prototype.dispatchEvent),n.exportProperty(ol.source.UrlTile.prototype,"getRevision",ol.source.UrlTile.prototype.getRevision),n.exportProperty(ol.source.UrlTile.prototype,"on",ol.source.UrlTile.prototype.on),n.exportProperty(ol.source.UrlTile.prototype,"once",ol.source.UrlTile.prototype.once),n.exportProperty(ol.source.UrlTile.prototype,"un",ol.source.UrlTile.prototype.un),n.exportProperty(ol.source.TileImage.prototype,"getTileLoadFunction",ol.source.TileImage.prototype.getTileLoadFunction),n.exportProperty(ol.source.TileImage.prototype,"getTileUrlFunction",ol.source.TileImage.prototype.getTileUrlFunction),n.exportProperty(ol.source.TileImage.prototype,"getUrls",ol.source.TileImage.prototype.getUrls),n.exportProperty(ol.source.TileImage.prototype,"setTileLoadFunction",ol.source.TileImage.prototype.setTileLoadFunction),n.exportProperty(ol.source.TileImage.prototype,"setTileUrlFunction",ol.source.TileImage.prototype.setTileUrlFunction),n.exportProperty(ol.source.TileImage.prototype,"setUrl",ol.source.TileImage.prototype.setUrl),n.exportProperty(ol.source.TileImage.prototype,"setUrls",ol.source.TileImage.prototype.setUrls),n.exportProperty(ol.source.TileImage.prototype,"getTileGrid",ol.source.TileImage.prototype.getTileGrid),n.exportProperty(ol.source.TileImage.prototype,"refresh",ol.source.TileImage.prototype.refresh),n.exportProperty(ol.source.TileImage.prototype,"getAttributions",ol.source.TileImage.prototype.getAttributions),n.exportProperty(ol.source.TileImage.prototype,"getLogo",ol.source.TileImage.prototype.getLogo),n.exportProperty(ol.source.TileImage.prototype,"getProjection",ol.source.TileImage.prototype.getProjection),n.exportProperty(ol.source.TileImage.prototype,"getState",ol.source.TileImage.prototype.getState),n.exportProperty(ol.source.TileImage.prototype,"setAttributions",ol.source.TileImage.prototype.setAttributions),n.exportProperty(ol.source.TileImage.prototype,"get",ol.source.TileImage.prototype.get),n.exportProperty(ol.source.TileImage.prototype,"getKeys",ol.source.TileImage.prototype.getKeys),n.exportProperty(ol.source.TileImage.prototype,"getProperties",ol.source.TileImage.prototype.getProperties),n.exportProperty(ol.source.TileImage.prototype,"set",ol.source.TileImage.prototype.set),n.exportProperty(ol.source.TileImage.prototype,"setProperties",ol.source.TileImage.prototype.setProperties),n.exportProperty(ol.source.TileImage.prototype,"unset",ol.source.TileImage.prototype.unset),n.exportProperty(ol.source.TileImage.prototype,"changed",ol.source.TileImage.prototype.changed),n.exportProperty(ol.source.TileImage.prototype,"dispatchEvent",ol.source.TileImage.prototype.dispatchEvent),n.exportProperty(ol.source.TileImage.prototype,"getRevision",ol.source.TileImage.prototype.getRevision),n.exportProperty(ol.source.TileImage.prototype,"on",ol.source.TileImage.prototype.on),n.exportProperty(ol.source.TileImage.prototype,"once",ol.source.TileImage.prototype.once),n.exportProperty(ol.source.TileImage.prototype,"un",ol.source.TileImage.prototype.un),n.exportProperty(ol.source.BingMaps.prototype,"setRenderReprojectionEdges",ol.source.BingMaps.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.BingMaps.prototype,"setTileGridForProjection",ol.source.BingMaps.prototype.setTileGridForProjection),n.exportProperty(ol.source.BingMaps.prototype,"getTileLoadFunction",ol.source.BingMaps.prototype.getTileLoadFunction),n.exportProperty(ol.source.BingMaps.prototype,"getTileUrlFunction",ol.source.BingMaps.prototype.getTileUrlFunction),n.exportProperty(ol.source.BingMaps.prototype,"getUrls",ol.source.BingMaps.prototype.getUrls),n.exportProperty(ol.source.BingMaps.prototype,"setTileLoadFunction",ol.source.BingMaps.prototype.setTileLoadFunction),n.exportProperty(ol.source.BingMaps.prototype,"setTileUrlFunction",ol.source.BingMaps.prototype.setTileUrlFunction),n.exportProperty(ol.source.BingMaps.prototype,"setUrl",ol.source.BingMaps.prototype.setUrl),n.exportProperty(ol.source.BingMaps.prototype,"setUrls",ol.source.BingMaps.prototype.setUrls),n.exportProperty(ol.source.BingMaps.prototype,"getTileGrid",ol.source.BingMaps.prototype.getTileGrid),n.exportProperty(ol.source.BingMaps.prototype,"refresh",ol.source.BingMaps.prototype.refresh),n.exportProperty(ol.source.BingMaps.prototype,"getAttributions",ol.source.BingMaps.prototype.getAttributions),n.exportProperty(ol.source.BingMaps.prototype,"getLogo",ol.source.BingMaps.prototype.getLogo),n.exportProperty(ol.source.BingMaps.prototype,"getProjection",ol.source.BingMaps.prototype.getProjection),n.exportProperty(ol.source.BingMaps.prototype,"getState",ol.source.BingMaps.prototype.getState),n.exportProperty(ol.source.BingMaps.prototype,"setAttributions",ol.source.BingMaps.prototype.setAttributions),n.exportProperty(ol.source.BingMaps.prototype,"get",ol.source.BingMaps.prototype.get),n.exportProperty(ol.source.BingMaps.prototype,"getKeys",ol.source.BingMaps.prototype.getKeys),n.exportProperty(ol.source.BingMaps.prototype,"getProperties",ol.source.BingMaps.prototype.getProperties),n.exportProperty(ol.source.BingMaps.prototype,"set",ol.source.BingMaps.prototype.set),n.exportProperty(ol.source.BingMaps.prototype,"setProperties",ol.source.BingMaps.prototype.setProperties),n.exportProperty(ol.source.BingMaps.prototype,"unset",ol.source.BingMaps.prototype.unset),n.exportProperty(ol.source.BingMaps.prototype,"changed",ol.source.BingMaps.prototype.changed),n.exportProperty(ol.source.BingMaps.prototype,"dispatchEvent",ol.source.BingMaps.prototype.dispatchEvent),n.exportProperty(ol.source.BingMaps.prototype,"getRevision",ol.source.BingMaps.prototype.getRevision),n.exportProperty(ol.source.BingMaps.prototype,"on",ol.source.BingMaps.prototype.on),n.exportProperty(ol.source.BingMaps.prototype,"once",ol.source.BingMaps.prototype.once),n.exportProperty(ol.source.BingMaps.prototype,"un",ol.source.BingMaps.prototype.un),n.exportProperty(ol.source.XYZ.prototype,"setRenderReprojectionEdges",ol.source.XYZ.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.XYZ.prototype,"setTileGridForProjection",ol.source.XYZ.prototype.setTileGridForProjection),n.exportProperty(ol.source.XYZ.prototype,"getTileLoadFunction",ol.source.XYZ.prototype.getTileLoadFunction),n.exportProperty(ol.source.XYZ.prototype,"getTileUrlFunction",ol.source.XYZ.prototype.getTileUrlFunction),n.exportProperty(ol.source.XYZ.prototype,"getUrls",ol.source.XYZ.prototype.getUrls),n.exportProperty(ol.source.XYZ.prototype,"setTileLoadFunction",ol.source.XYZ.prototype.setTileLoadFunction),n.exportProperty(ol.source.XYZ.prototype,"setTileUrlFunction",ol.source.XYZ.prototype.setTileUrlFunction),n.exportProperty(ol.source.XYZ.prototype,"setUrl",ol.source.XYZ.prototype.setUrl),n.exportProperty(ol.source.XYZ.prototype,"setUrls",ol.source.XYZ.prototype.setUrls),n.exportProperty(ol.source.XYZ.prototype,"getTileGrid",ol.source.XYZ.prototype.getTileGrid),n.exportProperty(ol.source.XYZ.prototype,"refresh",ol.source.XYZ.prototype.refresh),n.exportProperty(ol.source.XYZ.prototype,"getAttributions",ol.source.XYZ.prototype.getAttributions),n.exportProperty(ol.source.XYZ.prototype,"getLogo",ol.source.XYZ.prototype.getLogo),n.exportProperty(ol.source.XYZ.prototype,"getProjection",ol.source.XYZ.prototype.getProjection),n.exportProperty(ol.source.XYZ.prototype,"getState",ol.source.XYZ.prototype.getState),n.exportProperty(ol.source.XYZ.prototype,"setAttributions",ol.source.XYZ.prototype.setAttributions),n.exportProperty(ol.source.XYZ.prototype,"get",ol.source.XYZ.prototype.get),n.exportProperty(ol.source.XYZ.prototype,"getKeys",ol.source.XYZ.prototype.getKeys),n.exportProperty(ol.source.XYZ.prototype,"getProperties",ol.source.XYZ.prototype.getProperties),n.exportProperty(ol.source.XYZ.prototype,"set",ol.source.XYZ.prototype.set),n.exportProperty(ol.source.XYZ.prototype,"setProperties",ol.source.XYZ.prototype.setProperties),n.exportProperty(ol.source.XYZ.prototype,"unset",ol.source.XYZ.prototype.unset),n.exportProperty(ol.source.XYZ.prototype,"changed",ol.source.XYZ.prototype.changed),n.exportProperty(ol.source.XYZ.prototype,"dispatchEvent",ol.source.XYZ.prototype.dispatchEvent),n.exportProperty(ol.source.XYZ.prototype,"getRevision",ol.source.XYZ.prototype.getRevision),n.exportProperty(ol.source.XYZ.prototype,"on",ol.source.XYZ.prototype.on),n.exportProperty(ol.source.XYZ.prototype,"once",ol.source.XYZ.prototype.once),n.exportProperty(ol.source.XYZ.prototype,"un",ol.source.XYZ.prototype.un),n.exportProperty(ol.source.CartoDB.prototype,"setRenderReprojectionEdges",ol.source.CartoDB.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.CartoDB.prototype,"setTileGridForProjection",ol.source.CartoDB.prototype.setTileGridForProjection),n.exportProperty(ol.source.CartoDB.prototype,"getTileLoadFunction",ol.source.CartoDB.prototype.getTileLoadFunction),n.exportProperty(ol.source.CartoDB.prototype,"getTileUrlFunction",ol.source.CartoDB.prototype.getTileUrlFunction),n.exportProperty(ol.source.CartoDB.prototype,"getUrls",ol.source.CartoDB.prototype.getUrls),n.exportProperty(ol.source.CartoDB.prototype,"setTileLoadFunction",ol.source.CartoDB.prototype.setTileLoadFunction),n.exportProperty(ol.source.CartoDB.prototype,"setTileUrlFunction",ol.source.CartoDB.prototype.setTileUrlFunction),n.exportProperty(ol.source.CartoDB.prototype,"setUrl",ol.source.CartoDB.prototype.setUrl),n.exportProperty(ol.source.CartoDB.prototype,"setUrls",ol.source.CartoDB.prototype.setUrls),n.exportProperty(ol.source.CartoDB.prototype,"getTileGrid",ol.source.CartoDB.prototype.getTileGrid),n.exportProperty(ol.source.CartoDB.prototype,"refresh",ol.source.CartoDB.prototype.refresh),n.exportProperty(ol.source.CartoDB.prototype,"getAttributions",ol.source.CartoDB.prototype.getAttributions),n.exportProperty(ol.source.CartoDB.prototype,"getLogo",ol.source.CartoDB.prototype.getLogo),n.exportProperty(ol.source.CartoDB.prototype,"getProjection",ol.source.CartoDB.prototype.getProjection),n.exportProperty(ol.source.CartoDB.prototype,"getState",ol.source.CartoDB.prototype.getState),n.exportProperty(ol.source.CartoDB.prototype,"setAttributions",ol.source.CartoDB.prototype.setAttributions),n.exportProperty(ol.source.CartoDB.prototype,"get",ol.source.CartoDB.prototype.get),n.exportProperty(ol.source.CartoDB.prototype,"getKeys",ol.source.CartoDB.prototype.getKeys),n.exportProperty(ol.source.CartoDB.prototype,"getProperties",ol.source.CartoDB.prototype.getProperties),n.exportProperty(ol.source.CartoDB.prototype,"set",ol.source.CartoDB.prototype.set),n.exportProperty(ol.source.CartoDB.prototype,"setProperties",ol.source.CartoDB.prototype.setProperties),n.exportProperty(ol.source.CartoDB.prototype,"unset",ol.source.CartoDB.prototype.unset),n.exportProperty(ol.source.CartoDB.prototype,"changed",ol.source.CartoDB.prototype.changed),n.exportProperty(ol.source.CartoDB.prototype,"dispatchEvent",ol.source.CartoDB.prototype.dispatchEvent),n.exportProperty(ol.source.CartoDB.prototype,"getRevision",ol.source.CartoDB.prototype.getRevision),n.exportProperty(ol.source.CartoDB.prototype,"on",ol.source.CartoDB.prototype.on),n.exportProperty(ol.source.CartoDB.prototype,"once",ol.source.CartoDB.prototype.once),n.exportProperty(ol.source.CartoDB.prototype,"un",ol.source.CartoDB.prototype.un),n.exportProperty(ol.source.Vector.prototype,"getAttributions",ol.source.Vector.prototype.getAttributions),n.exportProperty(ol.source.Vector.prototype,"getLogo",ol.source.Vector.prototype.getLogo),n.exportProperty(ol.source.Vector.prototype,"getProjection",ol.source.Vector.prototype.getProjection),n.exportProperty(ol.source.Vector.prototype,"getState",ol.source.Vector.prototype.getState),n.exportProperty(ol.source.Vector.prototype,"refresh",ol.source.Vector.prototype.refresh),n.exportProperty(ol.source.Vector.prototype,"setAttributions",ol.source.Vector.prototype.setAttributions),n.exportProperty(ol.source.Vector.prototype,"get",ol.source.Vector.prototype.get),n.exportProperty(ol.source.Vector.prototype,"getKeys",ol.source.Vector.prototype.getKeys),n.exportProperty(ol.source.Vector.prototype,"getProperties",ol.source.Vector.prototype.getProperties),n.exportProperty(ol.source.Vector.prototype,"set",ol.source.Vector.prototype.set),n.exportProperty(ol.source.Vector.prototype,"setProperties",ol.source.Vector.prototype.setProperties),n.exportProperty(ol.source.Vector.prototype,"unset",ol.source.Vector.prototype.unset),n.exportProperty(ol.source.Vector.prototype,"changed",ol.source.Vector.prototype.changed),n.exportProperty(ol.source.Vector.prototype,"dispatchEvent",ol.source.Vector.prototype.dispatchEvent),n.exportProperty(ol.source.Vector.prototype,"getRevision",ol.source.Vector.prototype.getRevision),n.exportProperty(ol.source.Vector.prototype,"on",ol.source.Vector.prototype.on),n.exportProperty(ol.source.Vector.prototype,"once",ol.source.Vector.prototype.once),n.exportProperty(ol.source.Vector.prototype,"un",ol.source.Vector.prototype.un),n.exportProperty(ol.source.Cluster.prototype,"addFeature",ol.source.Cluster.prototype.addFeature),n.exportProperty(ol.source.Cluster.prototype,"addFeatures",ol.source.Cluster.prototype.addFeatures),n.exportProperty(ol.source.Cluster.prototype,"clear",ol.source.Cluster.prototype.clear),n.exportProperty(ol.source.Cluster.prototype,"forEachFeature",ol.source.Cluster.prototype.forEachFeature),n.exportProperty(ol.source.Cluster.prototype,"forEachFeatureInExtent",ol.source.Cluster.prototype.forEachFeatureInExtent),n.exportProperty(ol.source.Cluster.prototype,"forEachFeatureIntersectingExtent",ol.source.Cluster.prototype.forEachFeatureIntersectingExtent),n.exportProperty(ol.source.Cluster.prototype,"getFeaturesCollection",ol.source.Cluster.prototype.getFeaturesCollection),n.exportProperty(ol.source.Cluster.prototype,"getFeatures",ol.source.Cluster.prototype.getFeatures),n.exportProperty(ol.source.Cluster.prototype,"getFeaturesAtCoordinate",ol.source.Cluster.prototype.getFeaturesAtCoordinate),n.exportProperty(ol.source.Cluster.prototype,"getFeaturesInExtent",ol.source.Cluster.prototype.getFeaturesInExtent),n.exportProperty(ol.source.Cluster.prototype,"getClosestFeatureToCoordinate",ol.source.Cluster.prototype.getClosestFeatureToCoordinate),n.exportProperty(ol.source.Cluster.prototype,"getExtent",ol.source.Cluster.prototype.getExtent),n.exportProperty(ol.source.Cluster.prototype,"getFeatureById",ol.source.Cluster.prototype.getFeatureById),n.exportProperty(ol.source.Cluster.prototype,"getFormat",ol.source.Cluster.prototype.getFormat),n.exportProperty(ol.source.Cluster.prototype,"getUrl",ol.source.Cluster.prototype.getUrl),n.exportProperty(ol.source.Cluster.prototype,"removeLoadedExtent",ol.source.Cluster.prototype.removeLoadedExtent),n.exportProperty(ol.source.Cluster.prototype,"removeFeature",ol.source.Cluster.prototype.removeFeature),n.exportProperty(ol.source.Cluster.prototype,"setLoader",ol.source.Cluster.prototype.setLoader),n.exportProperty(ol.source.Cluster.prototype,"getAttributions",ol.source.Cluster.prototype.getAttributions),n.exportProperty(ol.source.Cluster.prototype,"getLogo",ol.source.Cluster.prototype.getLogo),n.exportProperty(ol.source.Cluster.prototype,"getProjection",ol.source.Cluster.prototype.getProjection),n.exportProperty(ol.source.Cluster.prototype,"getState",ol.source.Cluster.prototype.getState),n.exportProperty(ol.source.Cluster.prototype,"refresh",ol.source.Cluster.prototype.refresh),n.exportProperty(ol.source.Cluster.prototype,"setAttributions",ol.source.Cluster.prototype.setAttributions),n.exportProperty(ol.source.Cluster.prototype,"get",ol.source.Cluster.prototype.get),n.exportProperty(ol.source.Cluster.prototype,"getKeys",ol.source.Cluster.prototype.getKeys),n.exportProperty(ol.source.Cluster.prototype,"getProperties",ol.source.Cluster.prototype.getProperties),n.exportProperty(ol.source.Cluster.prototype,"set",ol.source.Cluster.prototype.set),n.exportProperty(ol.source.Cluster.prototype,"setProperties",ol.source.Cluster.prototype.setProperties),n.exportProperty(ol.source.Cluster.prototype,"unset",ol.source.Cluster.prototype.unset),n.exportProperty(ol.source.Cluster.prototype,"changed",ol.source.Cluster.prototype.changed),n.exportProperty(ol.source.Cluster.prototype,"dispatchEvent",ol.source.Cluster.prototype.dispatchEvent),n.exportProperty(ol.source.Cluster.prototype,"getRevision",ol.source.Cluster.prototype.getRevision),n.exportProperty(ol.source.Cluster.prototype,"on",ol.source.Cluster.prototype.on),n.exportProperty(ol.source.Cluster.prototype,"once",ol.source.Cluster.prototype.once),n.exportProperty(ol.source.Cluster.prototype,"un",ol.source.Cluster.prototype.un),n.exportProperty(ol.source.Image.prototype,"getAttributions",ol.source.Image.prototype.getAttributions),n.exportProperty(ol.source.Image.prototype,"getLogo",ol.source.Image.prototype.getLogo),n.exportProperty(ol.source.Image.prototype,"getProjection",ol.source.Image.prototype.getProjection),n.exportProperty(ol.source.Image.prototype,"getState",ol.source.Image.prototype.getState),n.exportProperty(ol.source.Image.prototype,"refresh",ol.source.Image.prototype.refresh),n.exportProperty(ol.source.Image.prototype,"setAttributions",ol.source.Image.prototype.setAttributions),n.exportProperty(ol.source.Image.prototype,"get",ol.source.Image.prototype.get),n.exportProperty(ol.source.Image.prototype,"getKeys",ol.source.Image.prototype.getKeys),n.exportProperty(ol.source.Image.prototype,"getProperties",ol.source.Image.prototype.getProperties),n.exportProperty(ol.source.Image.prototype,"set",ol.source.Image.prototype.set),n.exportProperty(ol.source.Image.prototype,"setProperties",ol.source.Image.prototype.setProperties),n.exportProperty(ol.source.Image.prototype,"unset",ol.source.Image.prototype.unset),n.exportProperty(ol.source.Image.prototype,"changed",ol.source.Image.prototype.changed),n.exportProperty(ol.source.Image.prototype,"dispatchEvent",ol.source.Image.prototype.dispatchEvent),n.exportProperty(ol.source.Image.prototype,"getRevision",ol.source.Image.prototype.getRevision),n.exportProperty(ol.source.Image.prototype,"on",ol.source.Image.prototype.on),n.exportProperty(ol.source.Image.prototype,"once",ol.source.Image.prototype.once),n.exportProperty(ol.source.Image.prototype,"un",ol.source.Image.prototype.un),n.exportProperty(ol.source.Image.Event.prototype,"type",ol.source.Image.Event.prototype.type),n.exportProperty(ol.source.Image.Event.prototype,"target",ol.source.Image.Event.prototype.target),n.exportProperty(ol.source.Image.Event.prototype,"preventDefault",ol.source.Image.Event.prototype.preventDefault),n.exportProperty(ol.source.Image.Event.prototype,"stopPropagation",ol.source.Image.Event.prototype.stopPropagation),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getAttributions",ol.source.ImageArcGISRest.prototype.getAttributions),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getLogo",ol.source.ImageArcGISRest.prototype.getLogo),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getProjection",ol.source.ImageArcGISRest.prototype.getProjection),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getState",ol.source.ImageArcGISRest.prototype.getState),n.exportProperty(ol.source.ImageArcGISRest.prototype,"refresh",ol.source.ImageArcGISRest.prototype.refresh),n.exportProperty(ol.source.ImageArcGISRest.prototype,"setAttributions",ol.source.ImageArcGISRest.prototype.setAttributions),n.exportProperty(ol.source.ImageArcGISRest.prototype,"get",ol.source.ImageArcGISRest.prototype.get),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getKeys",ol.source.ImageArcGISRest.prototype.getKeys),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getProperties",ol.source.ImageArcGISRest.prototype.getProperties),n.exportProperty(ol.source.ImageArcGISRest.prototype,"set",ol.source.ImageArcGISRest.prototype.set),n.exportProperty(ol.source.ImageArcGISRest.prototype,"setProperties",ol.source.ImageArcGISRest.prototype.setProperties),n.exportProperty(ol.source.ImageArcGISRest.prototype,"unset",ol.source.ImageArcGISRest.prototype.unset),n.exportProperty(ol.source.ImageArcGISRest.prototype,"changed",ol.source.ImageArcGISRest.prototype.changed),n.exportProperty(ol.source.ImageArcGISRest.prototype,"dispatchEvent",ol.source.ImageArcGISRest.prototype.dispatchEvent),n.exportProperty(ol.source.ImageArcGISRest.prototype,"getRevision",ol.source.ImageArcGISRest.prototype.getRevision),n.exportProperty(ol.source.ImageArcGISRest.prototype,"on",ol.source.ImageArcGISRest.prototype.on),n.exportProperty(ol.source.ImageArcGISRest.prototype,"once",ol.source.ImageArcGISRest.prototype.once),n.exportProperty(ol.source.ImageArcGISRest.prototype,"un",ol.source.ImageArcGISRest.prototype.un),n.exportProperty(ol.source.ImageCanvas.prototype,"getAttributions",ol.source.ImageCanvas.prototype.getAttributions),n.exportProperty(ol.source.ImageCanvas.prototype,"getLogo",ol.source.ImageCanvas.prototype.getLogo),n.exportProperty(ol.source.ImageCanvas.prototype,"getProjection",ol.source.ImageCanvas.prototype.getProjection),n.exportProperty(ol.source.ImageCanvas.prototype,"getState",ol.source.ImageCanvas.prototype.getState),n.exportProperty(ol.source.ImageCanvas.prototype,"refresh",ol.source.ImageCanvas.prototype.refresh),n.exportProperty(ol.source.ImageCanvas.prototype,"setAttributions",ol.source.ImageCanvas.prototype.setAttributions),n.exportProperty(ol.source.ImageCanvas.prototype,"get",ol.source.ImageCanvas.prototype.get),n.exportProperty(ol.source.ImageCanvas.prototype,"getKeys",ol.source.ImageCanvas.prototype.getKeys),n.exportProperty(ol.source.ImageCanvas.prototype,"getProperties",ol.source.ImageCanvas.prototype.getProperties),n.exportProperty(ol.source.ImageCanvas.prototype,"set",ol.source.ImageCanvas.prototype.set),n.exportProperty(ol.source.ImageCanvas.prototype,"setProperties",ol.source.ImageCanvas.prototype.setProperties),n.exportProperty(ol.source.ImageCanvas.prototype,"unset",ol.source.ImageCanvas.prototype.unset),n.exportProperty(ol.source.ImageCanvas.prototype,"changed",ol.source.ImageCanvas.prototype.changed),n.exportProperty(ol.source.ImageCanvas.prototype,"dispatchEvent",ol.source.ImageCanvas.prototype.dispatchEvent),n.exportProperty(ol.source.ImageCanvas.prototype,"getRevision",ol.source.ImageCanvas.prototype.getRevision),n.exportProperty(ol.source.ImageCanvas.prototype,"on",ol.source.ImageCanvas.prototype.on),n.exportProperty(ol.source.ImageCanvas.prototype,"once",ol.source.ImageCanvas.prototype.once),n.exportProperty(ol.source.ImageCanvas.prototype,"un",ol.source.ImageCanvas.prototype.un),n.exportProperty(ol.source.ImageMapGuide.prototype,"getAttributions",ol.source.ImageMapGuide.prototype.getAttributions),n.exportProperty(ol.source.ImageMapGuide.prototype,"getLogo",ol.source.ImageMapGuide.prototype.getLogo),n.exportProperty(ol.source.ImageMapGuide.prototype,"getProjection",ol.source.ImageMapGuide.prototype.getProjection),n.exportProperty(ol.source.ImageMapGuide.prototype,"getState",ol.source.ImageMapGuide.prototype.getState),n.exportProperty(ol.source.ImageMapGuide.prototype,"refresh",ol.source.ImageMapGuide.prototype.refresh),n.exportProperty(ol.source.ImageMapGuide.prototype,"setAttributions",ol.source.ImageMapGuide.prototype.setAttributions),n.exportProperty(ol.source.ImageMapGuide.prototype,"get",ol.source.ImageMapGuide.prototype.get),n.exportProperty(ol.source.ImageMapGuide.prototype,"getKeys",ol.source.ImageMapGuide.prototype.getKeys),n.exportProperty(ol.source.ImageMapGuide.prototype,"getProperties",ol.source.ImageMapGuide.prototype.getProperties),n.exportProperty(ol.source.ImageMapGuide.prototype,"set",ol.source.ImageMapGuide.prototype.set),n.exportProperty(ol.source.ImageMapGuide.prototype,"setProperties",ol.source.ImageMapGuide.prototype.setProperties),n.exportProperty(ol.source.ImageMapGuide.prototype,"unset",ol.source.ImageMapGuide.prototype.unset),n.exportProperty(ol.source.ImageMapGuide.prototype,"changed",ol.source.ImageMapGuide.prototype.changed),n.exportProperty(ol.source.ImageMapGuide.prototype,"dispatchEvent",ol.source.ImageMapGuide.prototype.dispatchEvent),n.exportProperty(ol.source.ImageMapGuide.prototype,"getRevision",ol.source.ImageMapGuide.prototype.getRevision),n.exportProperty(ol.source.ImageMapGuide.prototype,"on",ol.source.ImageMapGuide.prototype.on),n.exportProperty(ol.source.ImageMapGuide.prototype,"once",ol.source.ImageMapGuide.prototype.once),n.exportProperty(ol.source.ImageMapGuide.prototype,"un",ol.source.ImageMapGuide.prototype.un),n.exportProperty(ol.source.ImageStatic.prototype,"getAttributions",ol.source.ImageStatic.prototype.getAttributions),n.exportProperty(ol.source.ImageStatic.prototype,"getLogo",ol.source.ImageStatic.prototype.getLogo),n.exportProperty(ol.source.ImageStatic.prototype,"getProjection",ol.source.ImageStatic.prototype.getProjection),n.exportProperty(ol.source.ImageStatic.prototype,"getState",ol.source.ImageStatic.prototype.getState),n.exportProperty(ol.source.ImageStatic.prototype,"refresh",ol.source.ImageStatic.prototype.refresh),n.exportProperty(ol.source.ImageStatic.prototype,"setAttributions",ol.source.ImageStatic.prototype.setAttributions),n.exportProperty(ol.source.ImageStatic.prototype,"get",ol.source.ImageStatic.prototype.get),n.exportProperty(ol.source.ImageStatic.prototype,"getKeys",ol.source.ImageStatic.prototype.getKeys),n.exportProperty(ol.source.ImageStatic.prototype,"getProperties",ol.source.ImageStatic.prototype.getProperties),n.exportProperty(ol.source.ImageStatic.prototype,"set",ol.source.ImageStatic.prototype.set),n.exportProperty(ol.source.ImageStatic.prototype,"setProperties",ol.source.ImageStatic.prototype.setProperties),n.exportProperty(ol.source.ImageStatic.prototype,"unset",ol.source.ImageStatic.prototype.unset),n.exportProperty(ol.source.ImageStatic.prototype,"changed",ol.source.ImageStatic.prototype.changed),n.exportProperty(ol.source.ImageStatic.prototype,"dispatchEvent",ol.source.ImageStatic.prototype.dispatchEvent),n.exportProperty(ol.source.ImageStatic.prototype,"getRevision",ol.source.ImageStatic.prototype.getRevision),n.exportProperty(ol.source.ImageStatic.prototype,"on",ol.source.ImageStatic.prototype.on),n.exportProperty(ol.source.ImageStatic.prototype,"once",ol.source.ImageStatic.prototype.once),n.exportProperty(ol.source.ImageStatic.prototype,"un",ol.source.ImageStatic.prototype.un),n.exportProperty(ol.source.ImageVector.prototype,"getAttributions",ol.source.ImageVector.prototype.getAttributions),n.exportProperty(ol.source.ImageVector.prototype,"getLogo",ol.source.ImageVector.prototype.getLogo),n.exportProperty(ol.source.ImageVector.prototype,"getProjection",ol.source.ImageVector.prototype.getProjection),n.exportProperty(ol.source.ImageVector.prototype,"getState",ol.source.ImageVector.prototype.getState),n.exportProperty(ol.source.ImageVector.prototype,"refresh",ol.source.ImageVector.prototype.refresh),n.exportProperty(ol.source.ImageVector.prototype,"setAttributions",ol.source.ImageVector.prototype.setAttributions),n.exportProperty(ol.source.ImageVector.prototype,"get",ol.source.ImageVector.prototype.get),n.exportProperty(ol.source.ImageVector.prototype,"getKeys",ol.source.ImageVector.prototype.getKeys),n.exportProperty(ol.source.ImageVector.prototype,"getProperties",ol.source.ImageVector.prototype.getProperties),n.exportProperty(ol.source.ImageVector.prototype,"set",ol.source.ImageVector.prototype.set),n.exportProperty(ol.source.ImageVector.prototype,"setProperties",ol.source.ImageVector.prototype.setProperties),n.exportProperty(ol.source.ImageVector.prototype,"unset",ol.source.ImageVector.prototype.unset),n.exportProperty(ol.source.ImageVector.prototype,"changed",ol.source.ImageVector.prototype.changed),n.exportProperty(ol.source.ImageVector.prototype,"dispatchEvent",ol.source.ImageVector.prototype.dispatchEvent),n.exportProperty(ol.source.ImageVector.prototype,"getRevision",ol.source.ImageVector.prototype.getRevision),n.exportProperty(ol.source.ImageVector.prototype,"on",ol.source.ImageVector.prototype.on),n.exportProperty(ol.source.ImageVector.prototype,"once",ol.source.ImageVector.prototype.once),n.exportProperty(ol.source.ImageVector.prototype,"un",ol.source.ImageVector.prototype.un),n.exportProperty(ol.source.ImageWMS.prototype,"getAttributions",ol.source.ImageWMS.prototype.getAttributions),n.exportProperty(ol.source.ImageWMS.prototype,"getLogo",ol.source.ImageWMS.prototype.getLogo),n.exportProperty(ol.source.ImageWMS.prototype,"getProjection",ol.source.ImageWMS.prototype.getProjection),n.exportProperty(ol.source.ImageWMS.prototype,"getState",ol.source.ImageWMS.prototype.getState),n.exportProperty(ol.source.ImageWMS.prototype,"refresh",ol.source.ImageWMS.prototype.refresh),n.exportProperty(ol.source.ImageWMS.prototype,"setAttributions",ol.source.ImageWMS.prototype.setAttributions),n.exportProperty(ol.source.ImageWMS.prototype,"get",ol.source.ImageWMS.prototype.get),n.exportProperty(ol.source.ImageWMS.prototype,"getKeys",ol.source.ImageWMS.prototype.getKeys),n.exportProperty(ol.source.ImageWMS.prototype,"getProperties",ol.source.ImageWMS.prototype.getProperties),n.exportProperty(ol.source.ImageWMS.prototype,"set",ol.source.ImageWMS.prototype.set),n.exportProperty(ol.source.ImageWMS.prototype,"setProperties",ol.source.ImageWMS.prototype.setProperties),n.exportProperty(ol.source.ImageWMS.prototype,"unset",ol.source.ImageWMS.prototype.unset),n.exportProperty(ol.source.ImageWMS.prototype,"changed",ol.source.ImageWMS.prototype.changed),n.exportProperty(ol.source.ImageWMS.prototype,"dispatchEvent",ol.source.ImageWMS.prototype.dispatchEvent),n.exportProperty(ol.source.ImageWMS.prototype,"getRevision",ol.source.ImageWMS.prototype.getRevision),n.exportProperty(ol.source.ImageWMS.prototype,"on",ol.source.ImageWMS.prototype.on),n.exportProperty(ol.source.ImageWMS.prototype,"once",ol.source.ImageWMS.prototype.once),n.exportProperty(ol.source.ImageWMS.prototype,"un",ol.source.ImageWMS.prototype.un),n.exportProperty(ol.source.OSM.prototype,"setRenderReprojectionEdges",ol.source.OSM.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.OSM.prototype,"setTileGridForProjection",ol.source.OSM.prototype.setTileGridForProjection),n.exportProperty(ol.source.OSM.prototype,"getTileLoadFunction",ol.source.OSM.prototype.getTileLoadFunction),n.exportProperty(ol.source.OSM.prototype,"getTileUrlFunction",ol.source.OSM.prototype.getTileUrlFunction),n.exportProperty(ol.source.OSM.prototype,"getUrls",ol.source.OSM.prototype.getUrls),n.exportProperty(ol.source.OSM.prototype,"setTileLoadFunction",ol.source.OSM.prototype.setTileLoadFunction),n.exportProperty(ol.source.OSM.prototype,"setTileUrlFunction",ol.source.OSM.prototype.setTileUrlFunction),n.exportProperty(ol.source.OSM.prototype,"setUrl",ol.source.OSM.prototype.setUrl),n.exportProperty(ol.source.OSM.prototype,"setUrls",ol.source.OSM.prototype.setUrls),n.exportProperty(ol.source.OSM.prototype,"getTileGrid",ol.source.OSM.prototype.getTileGrid),n.exportProperty(ol.source.OSM.prototype,"refresh",ol.source.OSM.prototype.refresh),n.exportProperty(ol.source.OSM.prototype,"getAttributions",ol.source.OSM.prototype.getAttributions),n.exportProperty(ol.source.OSM.prototype,"getLogo",ol.source.OSM.prototype.getLogo),n.exportProperty(ol.source.OSM.prototype,"getProjection",ol.source.OSM.prototype.getProjection),n.exportProperty(ol.source.OSM.prototype,"getState",ol.source.OSM.prototype.getState),n.exportProperty(ol.source.OSM.prototype,"setAttributions",ol.source.OSM.prototype.setAttributions),n.exportProperty(ol.source.OSM.prototype,"get",ol.source.OSM.prototype.get),n.exportProperty(ol.source.OSM.prototype,"getKeys",ol.source.OSM.prototype.getKeys),n.exportProperty(ol.source.OSM.prototype,"getProperties",ol.source.OSM.prototype.getProperties),n.exportProperty(ol.source.OSM.prototype,"set",ol.source.OSM.prototype.set),n.exportProperty(ol.source.OSM.prototype,"setProperties",ol.source.OSM.prototype.setProperties),n.exportProperty(ol.source.OSM.prototype,"unset",ol.source.OSM.prototype.unset),n.exportProperty(ol.source.OSM.prototype,"changed",ol.source.OSM.prototype.changed),n.exportProperty(ol.source.OSM.prototype,"dispatchEvent",ol.source.OSM.prototype.dispatchEvent),n.exportProperty(ol.source.OSM.prototype,"getRevision",ol.source.OSM.prototype.getRevision),n.exportProperty(ol.source.OSM.prototype,"on",ol.source.OSM.prototype.on),n.exportProperty(ol.source.OSM.prototype,"once",ol.source.OSM.prototype.once),n.exportProperty(ol.source.OSM.prototype,"un",ol.source.OSM.prototype.un),n.exportProperty(ol.source.Raster.prototype,"getAttributions",ol.source.Raster.prototype.getAttributions),n.exportProperty(ol.source.Raster.prototype,"getLogo",ol.source.Raster.prototype.getLogo),n.exportProperty(ol.source.Raster.prototype,"getProjection",ol.source.Raster.prototype.getProjection),n.exportProperty(ol.source.Raster.prototype,"getState",ol.source.Raster.prototype.getState),n.exportProperty(ol.source.Raster.prototype,"refresh",ol.source.Raster.prototype.refresh),n.exportProperty(ol.source.Raster.prototype,"setAttributions",ol.source.Raster.prototype.setAttributions),n.exportProperty(ol.source.Raster.prototype,"get",ol.source.Raster.prototype.get),n.exportProperty(ol.source.Raster.prototype,"getKeys",ol.source.Raster.prototype.getKeys),n.exportProperty(ol.source.Raster.prototype,"getProperties",ol.source.Raster.prototype.getProperties),n.exportProperty(ol.source.Raster.prototype,"set",ol.source.Raster.prototype.set),n.exportProperty(ol.source.Raster.prototype,"setProperties",ol.source.Raster.prototype.setProperties),n.exportProperty(ol.source.Raster.prototype,"unset",ol.source.Raster.prototype.unset),n.exportProperty(ol.source.Raster.prototype,"changed",ol.source.Raster.prototype.changed),n.exportProperty(ol.source.Raster.prototype,"dispatchEvent",ol.source.Raster.prototype.dispatchEvent),n.exportProperty(ol.source.Raster.prototype,"getRevision",ol.source.Raster.prototype.getRevision),n.exportProperty(ol.source.Raster.prototype,"on",ol.source.Raster.prototype.on),n.exportProperty(ol.source.Raster.prototype,"once",ol.source.Raster.prototype.once),n.exportProperty(ol.source.Raster.prototype,"un",ol.source.Raster.prototype.un),n.exportProperty(ol.source.Raster.Event.prototype,"type",ol.source.Raster.Event.prototype.type),n.exportProperty(ol.source.Raster.Event.prototype,"target",ol.source.Raster.Event.prototype.target),n.exportProperty(ol.source.Raster.Event.prototype,"preventDefault",ol.source.Raster.Event.prototype.preventDefault),n.exportProperty(ol.source.Raster.Event.prototype,"stopPropagation",ol.source.Raster.Event.prototype.stopPropagation),n.exportProperty(ol.source.Stamen.prototype,"setRenderReprojectionEdges",ol.source.Stamen.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.Stamen.prototype,"setTileGridForProjection",ol.source.Stamen.prototype.setTileGridForProjection),n.exportProperty(ol.source.Stamen.prototype,"getTileLoadFunction",ol.source.Stamen.prototype.getTileLoadFunction),n.exportProperty(ol.source.Stamen.prototype,"getTileUrlFunction",ol.source.Stamen.prototype.getTileUrlFunction),n.exportProperty(ol.source.Stamen.prototype,"getUrls",ol.source.Stamen.prototype.getUrls),n.exportProperty(ol.source.Stamen.prototype,"setTileLoadFunction",ol.source.Stamen.prototype.setTileLoadFunction),n.exportProperty(ol.source.Stamen.prototype,"setTileUrlFunction",ol.source.Stamen.prototype.setTileUrlFunction),n.exportProperty(ol.source.Stamen.prototype,"setUrl",ol.source.Stamen.prototype.setUrl),n.exportProperty(ol.source.Stamen.prototype,"setUrls",ol.source.Stamen.prototype.setUrls),n.exportProperty(ol.source.Stamen.prototype,"getTileGrid",ol.source.Stamen.prototype.getTileGrid),n.exportProperty(ol.source.Stamen.prototype,"refresh",ol.source.Stamen.prototype.refresh),n.exportProperty(ol.source.Stamen.prototype,"getAttributions",ol.source.Stamen.prototype.getAttributions),n.exportProperty(ol.source.Stamen.prototype,"getLogo",ol.source.Stamen.prototype.getLogo),n.exportProperty(ol.source.Stamen.prototype,"getProjection",ol.source.Stamen.prototype.getProjection),n.exportProperty(ol.source.Stamen.prototype,"getState",ol.source.Stamen.prototype.getState),n.exportProperty(ol.source.Stamen.prototype,"setAttributions",ol.source.Stamen.prototype.setAttributions),n.exportProperty(ol.source.Stamen.prototype,"get",ol.source.Stamen.prototype.get),n.exportProperty(ol.source.Stamen.prototype,"getKeys",ol.source.Stamen.prototype.getKeys),n.exportProperty(ol.source.Stamen.prototype,"getProperties",ol.source.Stamen.prototype.getProperties),n.exportProperty(ol.source.Stamen.prototype,"set",ol.source.Stamen.prototype.set),n.exportProperty(ol.source.Stamen.prototype,"setProperties",ol.source.Stamen.prototype.setProperties),n.exportProperty(ol.source.Stamen.prototype,"unset",ol.source.Stamen.prototype.unset),n.exportProperty(ol.source.Stamen.prototype,"changed",ol.source.Stamen.prototype.changed),n.exportProperty(ol.source.Stamen.prototype,"dispatchEvent",ol.source.Stamen.prototype.dispatchEvent),n.exportProperty(ol.source.Stamen.prototype,"getRevision",ol.source.Stamen.prototype.getRevision),n.exportProperty(ol.source.Stamen.prototype,"on",ol.source.Stamen.prototype.on),n.exportProperty(ol.source.Stamen.prototype,"once",ol.source.Stamen.prototype.once),n.exportProperty(ol.source.Stamen.prototype,"un",ol.source.Stamen.prototype.un),n.exportProperty(ol.source.Tile.Event.prototype,"type",ol.source.Tile.Event.prototype.type),n.exportProperty(ol.source.Tile.Event.prototype,"target",ol.source.Tile.Event.prototype.target),n.exportProperty(ol.source.Tile.Event.prototype,"preventDefault",ol.source.Tile.Event.prototype.preventDefault),n.exportProperty(ol.source.Tile.Event.prototype,"stopPropagation",ol.source.Tile.Event.prototype.stopPropagation),n.exportProperty(ol.source.TileArcGISRest.prototype,"setRenderReprojectionEdges",ol.source.TileArcGISRest.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.TileArcGISRest.prototype,"setTileGridForProjection",ol.source.TileArcGISRest.prototype.setTileGridForProjection),n.exportProperty(ol.source.TileArcGISRest.prototype,"getTileLoadFunction",ol.source.TileArcGISRest.prototype.getTileLoadFunction),n.exportProperty(ol.source.TileArcGISRest.prototype,"getTileUrlFunction",ol.source.TileArcGISRest.prototype.getTileUrlFunction),n.exportProperty(ol.source.TileArcGISRest.prototype,"getUrls",ol.source.TileArcGISRest.prototype.getUrls),n.exportProperty(ol.source.TileArcGISRest.prototype,"setTileLoadFunction",ol.source.TileArcGISRest.prototype.setTileLoadFunction),n.exportProperty(ol.source.TileArcGISRest.prototype,"setTileUrlFunction",ol.source.TileArcGISRest.prototype.setTileUrlFunction),n.exportProperty(ol.source.TileArcGISRest.prototype,"setUrl",ol.source.TileArcGISRest.prototype.setUrl),n.exportProperty(ol.source.TileArcGISRest.prototype,"setUrls",ol.source.TileArcGISRest.prototype.setUrls),n.exportProperty(ol.source.TileArcGISRest.prototype,"getTileGrid",ol.source.TileArcGISRest.prototype.getTileGrid),n.exportProperty(ol.source.TileArcGISRest.prototype,"refresh",ol.source.TileArcGISRest.prototype.refresh),n.exportProperty(ol.source.TileArcGISRest.prototype,"getAttributions",ol.source.TileArcGISRest.prototype.getAttributions),n.exportProperty(ol.source.TileArcGISRest.prototype,"getLogo",ol.source.TileArcGISRest.prototype.getLogo),n.exportProperty(ol.source.TileArcGISRest.prototype,"getProjection",ol.source.TileArcGISRest.prototype.getProjection),n.exportProperty(ol.source.TileArcGISRest.prototype,"getState",ol.source.TileArcGISRest.prototype.getState),n.exportProperty(ol.source.TileArcGISRest.prototype,"setAttributions",ol.source.TileArcGISRest.prototype.setAttributions),n.exportProperty(ol.source.TileArcGISRest.prototype,"get",ol.source.TileArcGISRest.prototype.get),n.exportProperty(ol.source.TileArcGISRest.prototype,"getKeys",ol.source.TileArcGISRest.prototype.getKeys),n.exportProperty(ol.source.TileArcGISRest.prototype,"getProperties",ol.source.TileArcGISRest.prototype.getProperties),n.exportProperty(ol.source.TileArcGISRest.prototype,"set",ol.source.TileArcGISRest.prototype.set),n.exportProperty(ol.source.TileArcGISRest.prototype,"setProperties",ol.source.TileArcGISRest.prototype.setProperties),n.exportProperty(ol.source.TileArcGISRest.prototype,"unset",ol.source.TileArcGISRest.prototype.unset),n.exportProperty(ol.source.TileArcGISRest.prototype,"changed",ol.source.TileArcGISRest.prototype.changed),n.exportProperty(ol.source.TileArcGISRest.prototype,"dispatchEvent",ol.source.TileArcGISRest.prototype.dispatchEvent),n.exportProperty(ol.source.TileArcGISRest.prototype,"getRevision",ol.source.TileArcGISRest.prototype.getRevision),n.exportProperty(ol.source.TileArcGISRest.prototype,"on",ol.source.TileArcGISRest.prototype.on),n.exportProperty(ol.source.TileArcGISRest.prototype,"once",ol.source.TileArcGISRest.prototype.once),n.exportProperty(ol.source.TileArcGISRest.prototype,"un",ol.source.TileArcGISRest.prototype.un),n.exportProperty(ol.source.TileDebug.prototype,"getTileGrid",ol.source.TileDebug.prototype.getTileGrid),n.exportProperty(ol.source.TileDebug.prototype,"refresh",ol.source.TileDebug.prototype.refresh),n.exportProperty(ol.source.TileDebug.prototype,"getAttributions",ol.source.TileDebug.prototype.getAttributions),n.exportProperty(ol.source.TileDebug.prototype,"getLogo",ol.source.TileDebug.prototype.getLogo),n.exportProperty(ol.source.TileDebug.prototype,"getProjection",ol.source.TileDebug.prototype.getProjection),n.exportProperty(ol.source.TileDebug.prototype,"getState",ol.source.TileDebug.prototype.getState),n.exportProperty(ol.source.TileDebug.prototype,"setAttributions",ol.source.TileDebug.prototype.setAttributions),n.exportProperty(ol.source.TileDebug.prototype,"get",ol.source.TileDebug.prototype.get),n.exportProperty(ol.source.TileDebug.prototype,"getKeys",ol.source.TileDebug.prototype.getKeys),n.exportProperty(ol.source.TileDebug.prototype,"getProperties",ol.source.TileDebug.prototype.getProperties),n.exportProperty(ol.source.TileDebug.prototype,"set",ol.source.TileDebug.prototype.set),n.exportProperty(ol.source.TileDebug.prototype,"setProperties",ol.source.TileDebug.prototype.setProperties),n.exportProperty(ol.source.TileDebug.prototype,"unset",ol.source.TileDebug.prototype.unset),n.exportProperty(ol.source.TileDebug.prototype,"changed",ol.source.TileDebug.prototype.changed),n.exportProperty(ol.source.TileDebug.prototype,"dispatchEvent",ol.source.TileDebug.prototype.dispatchEvent),n.exportProperty(ol.source.TileDebug.prototype,"getRevision",ol.source.TileDebug.prototype.getRevision),n.exportProperty(ol.source.TileDebug.prototype,"on",ol.source.TileDebug.prototype.on),n.exportProperty(ol.source.TileDebug.prototype,"once",ol.source.TileDebug.prototype.once),n.exportProperty(ol.source.TileDebug.prototype,"un",ol.source.TileDebug.prototype.un),n.exportProperty(ol.source.TileJSON.prototype,"setRenderReprojectionEdges",ol.source.TileJSON.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.TileJSON.prototype,"setTileGridForProjection",ol.source.TileJSON.prototype.setTileGridForProjection),n.exportProperty(ol.source.TileJSON.prototype,"getTileLoadFunction",ol.source.TileJSON.prototype.getTileLoadFunction),n.exportProperty(ol.source.TileJSON.prototype,"getTileUrlFunction",ol.source.TileJSON.prototype.getTileUrlFunction),n.exportProperty(ol.source.TileJSON.prototype,"getUrls",ol.source.TileJSON.prototype.getUrls),n.exportProperty(ol.source.TileJSON.prototype,"setTileLoadFunction",ol.source.TileJSON.prototype.setTileLoadFunction),n.exportProperty(ol.source.TileJSON.prototype,"setTileUrlFunction",ol.source.TileJSON.prototype.setTileUrlFunction),n.exportProperty(ol.source.TileJSON.prototype,"setUrl",ol.source.TileJSON.prototype.setUrl),n.exportProperty(ol.source.TileJSON.prototype,"setUrls",ol.source.TileJSON.prototype.setUrls),n.exportProperty(ol.source.TileJSON.prototype,"getTileGrid",ol.source.TileJSON.prototype.getTileGrid),n.exportProperty(ol.source.TileJSON.prototype,"refresh",ol.source.TileJSON.prototype.refresh),n.exportProperty(ol.source.TileJSON.prototype,"getAttributions",ol.source.TileJSON.prototype.getAttributions),n.exportProperty(ol.source.TileJSON.prototype,"getLogo",ol.source.TileJSON.prototype.getLogo),n.exportProperty(ol.source.TileJSON.prototype,"getProjection",ol.source.TileJSON.prototype.getProjection),n.exportProperty(ol.source.TileJSON.prototype,"getState",ol.source.TileJSON.prototype.getState),n.exportProperty(ol.source.TileJSON.prototype,"setAttributions",ol.source.TileJSON.prototype.setAttributions),n.exportProperty(ol.source.TileJSON.prototype,"get",ol.source.TileJSON.prototype.get),n.exportProperty(ol.source.TileJSON.prototype,"getKeys",ol.source.TileJSON.prototype.getKeys),n.exportProperty(ol.source.TileJSON.prototype,"getProperties",ol.source.TileJSON.prototype.getProperties),n.exportProperty(ol.source.TileJSON.prototype,"set",ol.source.TileJSON.prototype.set),n.exportProperty(ol.source.TileJSON.prototype,"setProperties",ol.source.TileJSON.prototype.setProperties),n.exportProperty(ol.source.TileJSON.prototype,"unset",ol.source.TileJSON.prototype.unset),n.exportProperty(ol.source.TileJSON.prototype,"changed",ol.source.TileJSON.prototype.changed),n.exportProperty(ol.source.TileJSON.prototype,"dispatchEvent",ol.source.TileJSON.prototype.dispatchEvent),n.exportProperty(ol.source.TileJSON.prototype,"getRevision",ol.source.TileJSON.prototype.getRevision),n.exportProperty(ol.source.TileJSON.prototype,"on",ol.source.TileJSON.prototype.on),n.exportProperty(ol.source.TileJSON.prototype,"once",ol.source.TileJSON.prototype.once),n.exportProperty(ol.source.TileJSON.prototype,"un",ol.source.TileJSON.prototype.un),n.exportProperty(ol.source.TileUTFGrid.prototype,"getTileGrid",ol.source.TileUTFGrid.prototype.getTileGrid),n.exportProperty(ol.source.TileUTFGrid.prototype,"refresh",ol.source.TileUTFGrid.prototype.refresh),n.exportProperty(ol.source.TileUTFGrid.prototype,"getAttributions",ol.source.TileUTFGrid.prototype.getAttributions),n.exportProperty(ol.source.TileUTFGrid.prototype,"getLogo",ol.source.TileUTFGrid.prototype.getLogo),n.exportProperty(ol.source.TileUTFGrid.prototype,"getProjection",ol.source.TileUTFGrid.prototype.getProjection),n.exportProperty(ol.source.TileUTFGrid.prototype,"getState",ol.source.TileUTFGrid.prototype.getState),n.exportProperty(ol.source.TileUTFGrid.prototype,"setAttributions",ol.source.TileUTFGrid.prototype.setAttributions),n.exportProperty(ol.source.TileUTFGrid.prototype,"get",ol.source.TileUTFGrid.prototype.get),n.exportProperty(ol.source.TileUTFGrid.prototype,"getKeys",ol.source.TileUTFGrid.prototype.getKeys),n.exportProperty(ol.source.TileUTFGrid.prototype,"getProperties",ol.source.TileUTFGrid.prototype.getProperties),n.exportProperty(ol.source.TileUTFGrid.prototype,"set",ol.source.TileUTFGrid.prototype.set),n.exportProperty(ol.source.TileUTFGrid.prototype,"setProperties",ol.source.TileUTFGrid.prototype.setProperties),n.exportProperty(ol.source.TileUTFGrid.prototype,"unset",ol.source.TileUTFGrid.prototype.unset),n.exportProperty(ol.source.TileUTFGrid.prototype,"changed",ol.source.TileUTFGrid.prototype.changed),n.exportProperty(ol.source.TileUTFGrid.prototype,"dispatchEvent",ol.source.TileUTFGrid.prototype.dispatchEvent),n.exportProperty(ol.source.TileUTFGrid.prototype,"getRevision",ol.source.TileUTFGrid.prototype.getRevision),n.exportProperty(ol.source.TileUTFGrid.prototype,"on",ol.source.TileUTFGrid.prototype.on),n.exportProperty(ol.source.TileUTFGrid.prototype,"once",ol.source.TileUTFGrid.prototype.once),n.exportProperty(ol.source.TileUTFGrid.prototype,"un",ol.source.TileUTFGrid.prototype.un),n.exportProperty(ol.source.TileWMS.prototype,"setRenderReprojectionEdges",ol.source.TileWMS.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.TileWMS.prototype,"setTileGridForProjection",ol.source.TileWMS.prototype.setTileGridForProjection),n.exportProperty(ol.source.TileWMS.prototype,"getTileLoadFunction",ol.source.TileWMS.prototype.getTileLoadFunction),n.exportProperty(ol.source.TileWMS.prototype,"getTileUrlFunction",ol.source.TileWMS.prototype.getTileUrlFunction),n.exportProperty(ol.source.TileWMS.prototype,"getUrls",ol.source.TileWMS.prototype.getUrls),n.exportProperty(ol.source.TileWMS.prototype,"setTileLoadFunction",ol.source.TileWMS.prototype.setTileLoadFunction),n.exportProperty(ol.source.TileWMS.prototype,"setTileUrlFunction",ol.source.TileWMS.prototype.setTileUrlFunction),n.exportProperty(ol.source.TileWMS.prototype,"setUrl",ol.source.TileWMS.prototype.setUrl),n.exportProperty(ol.source.TileWMS.prototype,"setUrls",ol.source.TileWMS.prototype.setUrls),n.exportProperty(ol.source.TileWMS.prototype,"getTileGrid",ol.source.TileWMS.prototype.getTileGrid),n.exportProperty(ol.source.TileWMS.prototype,"refresh",ol.source.TileWMS.prototype.refresh),n.exportProperty(ol.source.TileWMS.prototype,"getAttributions",ol.source.TileWMS.prototype.getAttributions),n.exportProperty(ol.source.TileWMS.prototype,"getLogo",ol.source.TileWMS.prototype.getLogo),n.exportProperty(ol.source.TileWMS.prototype,"getProjection",ol.source.TileWMS.prototype.getProjection),n.exportProperty(ol.source.TileWMS.prototype,"getState",ol.source.TileWMS.prototype.getState),n.exportProperty(ol.source.TileWMS.prototype,"setAttributions",ol.source.TileWMS.prototype.setAttributions),n.exportProperty(ol.source.TileWMS.prototype,"get",ol.source.TileWMS.prototype.get),n.exportProperty(ol.source.TileWMS.prototype,"getKeys",ol.source.TileWMS.prototype.getKeys),n.exportProperty(ol.source.TileWMS.prototype,"getProperties",ol.source.TileWMS.prototype.getProperties),n.exportProperty(ol.source.TileWMS.prototype,"set",ol.source.TileWMS.prototype.set),n.exportProperty(ol.source.TileWMS.prototype,"setProperties",ol.source.TileWMS.prototype.setProperties),n.exportProperty(ol.source.TileWMS.prototype,"unset",ol.source.TileWMS.prototype.unset),n.exportProperty(ol.source.TileWMS.prototype,"changed",ol.source.TileWMS.prototype.changed),n.exportProperty(ol.source.TileWMS.prototype,"dispatchEvent",ol.source.TileWMS.prototype.dispatchEvent),n.exportProperty(ol.source.TileWMS.prototype,"getRevision",ol.source.TileWMS.prototype.getRevision),n.exportProperty(ol.source.TileWMS.prototype,"on",ol.source.TileWMS.prototype.on),n.exportProperty(ol.source.TileWMS.prototype,"once",ol.source.TileWMS.prototype.once),n.exportProperty(ol.source.TileWMS.prototype,"un",ol.source.TileWMS.prototype.un),n.exportProperty(ol.source.Vector.Event.prototype,"type",ol.source.Vector.Event.prototype.type),n.exportProperty(ol.source.Vector.Event.prototype,"target",ol.source.Vector.Event.prototype.target),n.exportProperty(ol.source.Vector.Event.prototype,"preventDefault",ol.source.Vector.Event.prototype.preventDefault),n.exportProperty(ol.source.Vector.Event.prototype,"stopPropagation",ol.source.Vector.Event.prototype.stopPropagation),n.exportProperty(ol.source.VectorTile.prototype,"getTileLoadFunction",ol.source.VectorTile.prototype.getTileLoadFunction),n.exportProperty(ol.source.VectorTile.prototype,"getTileUrlFunction",ol.source.VectorTile.prototype.getTileUrlFunction),n.exportProperty(ol.source.VectorTile.prototype,"getUrls",ol.source.VectorTile.prototype.getUrls),n.exportProperty(ol.source.VectorTile.prototype,"setTileLoadFunction",ol.source.VectorTile.prototype.setTileLoadFunction),n.exportProperty(ol.source.VectorTile.prototype,"setTileUrlFunction",ol.source.VectorTile.prototype.setTileUrlFunction),n.exportProperty(ol.source.VectorTile.prototype,"setUrl",ol.source.VectorTile.prototype.setUrl),n.exportProperty(ol.source.VectorTile.prototype,"setUrls",ol.source.VectorTile.prototype.setUrls),n.exportProperty(ol.source.VectorTile.prototype,"getTileGrid",ol.source.VectorTile.prototype.getTileGrid),n.exportProperty(ol.source.VectorTile.prototype,"refresh",ol.source.VectorTile.prototype.refresh),n.exportProperty(ol.source.VectorTile.prototype,"getAttributions",ol.source.VectorTile.prototype.getAttributions),n.exportProperty(ol.source.VectorTile.prototype,"getLogo",ol.source.VectorTile.prototype.getLogo),n.exportProperty(ol.source.VectorTile.prototype,"getProjection",ol.source.VectorTile.prototype.getProjection),n.exportProperty(ol.source.VectorTile.prototype,"getState",ol.source.VectorTile.prototype.getState),n.exportProperty(ol.source.VectorTile.prototype,"setAttributions",ol.source.VectorTile.prototype.setAttributions),n.exportProperty(ol.source.VectorTile.prototype,"get",ol.source.VectorTile.prototype.get),n.exportProperty(ol.source.VectorTile.prototype,"getKeys",ol.source.VectorTile.prototype.getKeys),n.exportProperty(ol.source.VectorTile.prototype,"getProperties",ol.source.VectorTile.prototype.getProperties),n.exportProperty(ol.source.VectorTile.prototype,"set",ol.source.VectorTile.prototype.set),n.exportProperty(ol.source.VectorTile.prototype,"setProperties",ol.source.VectorTile.prototype.setProperties),n.exportProperty(ol.source.VectorTile.prototype,"unset",ol.source.VectorTile.prototype.unset),n.exportProperty(ol.source.VectorTile.prototype,"changed",ol.source.VectorTile.prototype.changed),n.exportProperty(ol.source.VectorTile.prototype,"dispatchEvent",ol.source.VectorTile.prototype.dispatchEvent),n.exportProperty(ol.source.VectorTile.prototype,"getRevision",ol.source.VectorTile.prototype.getRevision),n.exportProperty(ol.source.VectorTile.prototype,"on",ol.source.VectorTile.prototype.on),n.exportProperty(ol.source.VectorTile.prototype,"once",ol.source.VectorTile.prototype.once),n.exportProperty(ol.source.VectorTile.prototype,"un",ol.source.VectorTile.prototype.un),n.exportProperty(ol.source.WMTS.prototype,"setRenderReprojectionEdges",ol.source.WMTS.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.WMTS.prototype,"setTileGridForProjection",ol.source.WMTS.prototype.setTileGridForProjection),n.exportProperty(ol.source.WMTS.prototype,"getTileLoadFunction",ol.source.WMTS.prototype.getTileLoadFunction),n.exportProperty(ol.source.WMTS.prototype,"getTileUrlFunction",ol.source.WMTS.prototype.getTileUrlFunction),n.exportProperty(ol.source.WMTS.prototype,"getUrls",ol.source.WMTS.prototype.getUrls),n.exportProperty(ol.source.WMTS.prototype,"setTileLoadFunction",ol.source.WMTS.prototype.setTileLoadFunction),n.exportProperty(ol.source.WMTS.prototype,"setTileUrlFunction",ol.source.WMTS.prototype.setTileUrlFunction),n.exportProperty(ol.source.WMTS.prototype,"setUrl",ol.source.WMTS.prototype.setUrl),n.exportProperty(ol.source.WMTS.prototype,"setUrls",ol.source.WMTS.prototype.setUrls),n.exportProperty(ol.source.WMTS.prototype,"getTileGrid",ol.source.WMTS.prototype.getTileGrid),n.exportProperty(ol.source.WMTS.prototype,"refresh",ol.source.WMTS.prototype.refresh),n.exportProperty(ol.source.WMTS.prototype,"getAttributions",ol.source.WMTS.prototype.getAttributions),n.exportProperty(ol.source.WMTS.prototype,"getLogo",ol.source.WMTS.prototype.getLogo),n.exportProperty(ol.source.WMTS.prototype,"getProjection",ol.source.WMTS.prototype.getProjection),n.exportProperty(ol.source.WMTS.prototype,"getState",ol.source.WMTS.prototype.getState),n.exportProperty(ol.source.WMTS.prototype,"setAttributions",ol.source.WMTS.prototype.setAttributions),n.exportProperty(ol.source.WMTS.prototype,"get",ol.source.WMTS.prototype.get),n.exportProperty(ol.source.WMTS.prototype,"getKeys",ol.source.WMTS.prototype.getKeys),n.exportProperty(ol.source.WMTS.prototype,"getProperties",ol.source.WMTS.prototype.getProperties),n.exportProperty(ol.source.WMTS.prototype,"set",ol.source.WMTS.prototype.set),n.exportProperty(ol.source.WMTS.prototype,"setProperties",ol.source.WMTS.prototype.setProperties),n.exportProperty(ol.source.WMTS.prototype,"unset",ol.source.WMTS.prototype.unset),n.exportProperty(ol.source.WMTS.prototype,"changed",ol.source.WMTS.prototype.changed),n.exportProperty(ol.source.WMTS.prototype,"dispatchEvent",ol.source.WMTS.prototype.dispatchEvent),n.exportProperty(ol.source.WMTS.prototype,"getRevision",ol.source.WMTS.prototype.getRevision),n.exportProperty(ol.source.WMTS.prototype,"on",ol.source.WMTS.prototype.on),n.exportProperty(ol.source.WMTS.prototype,"once",ol.source.WMTS.prototype.once),n.exportProperty(ol.source.WMTS.prototype,"un",ol.source.WMTS.prototype.un),n.exportProperty(ol.source.Zoomify.prototype,"setRenderReprojectionEdges",ol.source.Zoomify.prototype.setRenderReprojectionEdges),n.exportProperty(ol.source.Zoomify.prototype,"setTileGridForProjection",ol.source.Zoomify.prototype.setTileGridForProjection),n.exportProperty(ol.source.Zoomify.prototype,"getTileLoadFunction",ol.source.Zoomify.prototype.getTileLoadFunction),n.exportProperty(ol.source.Zoomify.prototype,"getTileUrlFunction",ol.source.Zoomify.prototype.getTileUrlFunction),n.exportProperty(ol.source.Zoomify.prototype,"getUrls",ol.source.Zoomify.prototype.getUrls),n.exportProperty(ol.source.Zoomify.prototype,"setTileLoadFunction",ol.source.Zoomify.prototype.setTileLoadFunction),n.exportProperty(ol.source.Zoomify.prototype,"setTileUrlFunction",ol.source.Zoomify.prototype.setTileUrlFunction),n.exportProperty(ol.source.Zoomify.prototype,"setUrl",ol.source.Zoomify.prototype.setUrl),n.exportProperty(ol.source.Zoomify.prototype,"setUrls",ol.source.Zoomify.prototype.setUrls),n.exportProperty(ol.source.Zoomify.prototype,"getTileGrid",ol.source.Zoomify.prototype.getTileGrid),n.exportProperty(ol.source.Zoomify.prototype,"refresh",ol.source.Zoomify.prototype.refresh),n.exportProperty(ol.source.Zoomify.prototype,"getAttributions",ol.source.Zoomify.prototype.getAttributions),n.exportProperty(ol.source.Zoomify.prototype,"getLogo",ol.source.Zoomify.prototype.getLogo),n.exportProperty(ol.source.Zoomify.prototype,"getProjection",ol.source.Zoomify.prototype.getProjection),n.exportProperty(ol.source.Zoomify.prototype,"getState",ol.source.Zoomify.prototype.getState),n.exportProperty(ol.source.Zoomify.prototype,"setAttributions",ol.source.Zoomify.prototype.setAttributions),n.exportProperty(ol.source.Zoomify.prototype,"get",ol.source.Zoomify.prototype.get),n.exportProperty(ol.source.Zoomify.prototype,"getKeys",ol.source.Zoomify.prototype.getKeys),n.exportProperty(ol.source.Zoomify.prototype,"getProperties",ol.source.Zoomify.prototype.getProperties),n.exportProperty(ol.source.Zoomify.prototype,"set",ol.source.Zoomify.prototype.set),n.exportProperty(ol.source.Zoomify.prototype,"setProperties",ol.source.Zoomify.prototype.setProperties),n.exportProperty(ol.source.Zoomify.prototype,"unset",ol.source.Zoomify.prototype.unset),n.exportProperty(ol.source.Zoomify.prototype,"changed",ol.source.Zoomify.prototype.changed),n.exportProperty(ol.source.Zoomify.prototype,"dispatchEvent",ol.source.Zoomify.prototype.dispatchEvent),n.exportProperty(ol.source.Zoomify.prototype,"getRevision",ol.source.Zoomify.prototype.getRevision),n.exportProperty(ol.source.Zoomify.prototype,"on",ol.source.Zoomify.prototype.on),n.exportProperty(ol.source.Zoomify.prototype,"once",ol.source.Zoomify.prototype.once),n.exportProperty(ol.source.Zoomify.prototype,"un",ol.source.Zoomify.prototype.un),n.exportProperty(ol.reproj.Tile.prototype,"getTileCoord",ol.reproj.Tile.prototype.getTileCoord),n.exportProperty(ol.reproj.Tile.prototype,"load",ol.reproj.Tile.prototype.load),n.exportProperty(ol.renderer.Layer.prototype,"changed",ol.renderer.Layer.prototype.changed),n.exportProperty(ol.renderer.Layer.prototype,"dispatchEvent",ol.renderer.Layer.prototype.dispatchEvent),n.exportProperty(ol.renderer.Layer.prototype,"getRevision",ol.renderer.Layer.prototype.getRevision),n.exportProperty(ol.renderer.Layer.prototype,"on",ol.renderer.Layer.prototype.on),n.exportProperty(ol.renderer.Layer.prototype,"once",ol.renderer.Layer.prototype.once),n.exportProperty(ol.renderer.Layer.prototype,"un",ol.renderer.Layer.prototype.un),n.exportProperty(ol.renderer.webgl.Layer.prototype,"changed",ol.renderer.webgl.Layer.prototype.changed),n.exportProperty(ol.renderer.webgl.Layer.prototype,"dispatchEvent",ol.renderer.webgl.Layer.prototype.dispatchEvent),n.exportProperty(ol.renderer.webgl.Layer.prototype,"getRevision",ol.renderer.webgl.Layer.prototype.getRevision),n.exportProperty(ol.renderer.webgl.Layer.prototype,"on",ol.renderer.webgl.Layer.prototype.on),n.exportProperty(ol.renderer.webgl.Layer.prototype,"once",ol.renderer.webgl.Layer.prototype.once),n.exportProperty(ol.renderer.webgl.Layer.prototype,"un",ol.renderer.webgl.Layer.prototype.un),n.exportProperty(ol.renderer.webgl.ImageLayer.prototype,"changed",ol.renderer.webgl.ImageLayer.prototype.changed),n.exportProperty(ol.renderer.webgl.ImageLayer.prototype,"dispatchEvent",ol.renderer.webgl.ImageLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.webgl.ImageLayer.prototype,"getRevision",ol.renderer.webgl.ImageLayer.prototype.getRevision),n.exportProperty(ol.renderer.webgl.ImageLayer.prototype,"on",ol.renderer.webgl.ImageLayer.prototype.on),n.exportProperty(ol.renderer.webgl.ImageLayer.prototype,"once",ol.renderer.webgl.ImageLayer.prototype.once),n.exportProperty(ol.renderer.webgl.ImageLayer.prototype,"un",ol.renderer.webgl.ImageLayer.prototype.un),n.exportProperty(ol.renderer.webgl.TileLayer.prototype,"changed",ol.renderer.webgl.TileLayer.prototype.changed),n.exportProperty(ol.renderer.webgl.TileLayer.prototype,"dispatchEvent",ol.renderer.webgl.TileLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.webgl.TileLayer.prototype,"getRevision",ol.renderer.webgl.TileLayer.prototype.getRevision),n.exportProperty(ol.renderer.webgl.TileLayer.prototype,"on",ol.renderer.webgl.TileLayer.prototype.on),n.exportProperty(ol.renderer.webgl.TileLayer.prototype,"once",ol.renderer.webgl.TileLayer.prototype.once),n.exportProperty(ol.renderer.webgl.TileLayer.prototype,"un",ol.renderer.webgl.TileLayer.prototype.un),n.exportProperty(ol.renderer.webgl.VectorLayer.prototype,"changed",ol.renderer.webgl.VectorLayer.prototype.changed),n.exportProperty(ol.renderer.webgl.VectorLayer.prototype,"dispatchEvent",ol.renderer.webgl.VectorLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.webgl.VectorLayer.prototype,"getRevision",ol.renderer.webgl.VectorLayer.prototype.getRevision),n.exportProperty(ol.renderer.webgl.VectorLayer.prototype,"on",ol.renderer.webgl.VectorLayer.prototype.on),n.exportProperty(ol.renderer.webgl.VectorLayer.prototype,"once",ol.renderer.webgl.VectorLayer.prototype.once),n.exportProperty(ol.renderer.webgl.VectorLayer.prototype,"un",ol.renderer.webgl.VectorLayer.prototype.un),n.exportProperty(ol.renderer.canvas.Layer.prototype,"changed",ol.renderer.canvas.Layer.prototype.changed),n.exportProperty(ol.renderer.canvas.Layer.prototype,"dispatchEvent",ol.renderer.canvas.Layer.prototype.dispatchEvent),n.exportProperty(ol.renderer.canvas.Layer.prototype,"getRevision",ol.renderer.canvas.Layer.prototype.getRevision),n.exportProperty(ol.renderer.canvas.Layer.prototype,"on",ol.renderer.canvas.Layer.prototype.on),n.exportProperty(ol.renderer.canvas.Layer.prototype,"once",ol.renderer.canvas.Layer.prototype.once),n.exportProperty(ol.renderer.canvas.Layer.prototype,"un",ol.renderer.canvas.Layer.prototype.un),n.exportProperty(ol.renderer.canvas.IntermediateCanvas.prototype,"changed",ol.renderer.canvas.IntermediateCanvas.prototype.changed),n.exportProperty(ol.renderer.canvas.IntermediateCanvas.prototype,"dispatchEvent",ol.renderer.canvas.IntermediateCanvas.prototype.dispatchEvent),n.exportProperty(ol.renderer.canvas.IntermediateCanvas.prototype,"getRevision",ol.renderer.canvas.IntermediateCanvas.prototype.getRevision),n.exportProperty(ol.renderer.canvas.IntermediateCanvas.prototype,"on",ol.renderer.canvas.IntermediateCanvas.prototype.on),n.exportProperty(ol.renderer.canvas.IntermediateCanvas.prototype,"once",ol.renderer.canvas.IntermediateCanvas.prototype.once),n.exportProperty(ol.renderer.canvas.IntermediateCanvas.prototype,"un",ol.renderer.canvas.IntermediateCanvas.prototype.un),n.exportProperty(ol.renderer.canvas.ImageLayer.prototype,"changed",ol.renderer.canvas.ImageLayer.prototype.changed),n.exportProperty(ol.renderer.canvas.ImageLayer.prototype,"dispatchEvent",ol.renderer.canvas.ImageLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.canvas.ImageLayer.prototype,"getRevision",ol.renderer.canvas.ImageLayer.prototype.getRevision),n.exportProperty(ol.renderer.canvas.ImageLayer.prototype,"on",ol.renderer.canvas.ImageLayer.prototype.on),n.exportProperty(ol.renderer.canvas.ImageLayer.prototype,"once",ol.renderer.canvas.ImageLayer.prototype.once),n.exportProperty(ol.renderer.canvas.ImageLayer.prototype,"un",ol.renderer.canvas.ImageLayer.prototype.un),n.exportProperty(ol.renderer.canvas.TileLayer.prototype,"changed",ol.renderer.canvas.TileLayer.prototype.changed),n.exportProperty(ol.renderer.canvas.TileLayer.prototype,"dispatchEvent",ol.renderer.canvas.TileLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.canvas.TileLayer.prototype,"getRevision",ol.renderer.canvas.TileLayer.prototype.getRevision),n.exportProperty(ol.renderer.canvas.TileLayer.prototype,"on",ol.renderer.canvas.TileLayer.prototype.on),n.exportProperty(ol.renderer.canvas.TileLayer.prototype,"once",ol.renderer.canvas.TileLayer.prototype.once),n.exportProperty(ol.renderer.canvas.TileLayer.prototype,"un",ol.renderer.canvas.TileLayer.prototype.un),n.exportProperty(ol.renderer.canvas.VectorLayer.prototype,"changed",ol.renderer.canvas.VectorLayer.prototype.changed),n.exportProperty(ol.renderer.canvas.VectorLayer.prototype,"dispatchEvent",ol.renderer.canvas.VectorLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.canvas.VectorLayer.prototype,"getRevision",ol.renderer.canvas.VectorLayer.prototype.getRevision),n.exportProperty(ol.renderer.canvas.VectorLayer.prototype,"on",ol.renderer.canvas.VectorLayer.prototype.on),n.exportProperty(ol.renderer.canvas.VectorLayer.prototype,"once",ol.renderer.canvas.VectorLayer.prototype.once),n.exportProperty(ol.renderer.canvas.VectorLayer.prototype,"un",ol.renderer.canvas.VectorLayer.prototype.un),n.exportProperty(ol.renderer.canvas.VectorTileLayer.prototype,"changed",ol.renderer.canvas.VectorTileLayer.prototype.changed),n.exportProperty(ol.renderer.canvas.VectorTileLayer.prototype,"dispatchEvent",ol.renderer.canvas.VectorTileLayer.prototype.dispatchEvent),n.exportProperty(ol.renderer.canvas.VectorTileLayer.prototype,"getRevision",ol.renderer.canvas.VectorTileLayer.prototype.getRevision),n.exportProperty(ol.renderer.canvas.VectorTileLayer.prototype,"on",ol.renderer.canvas.VectorTileLayer.prototype.on),n.exportProperty(ol.renderer.canvas.VectorTileLayer.prototype,"once",ol.renderer.canvas.VectorTileLayer.prototype.once),n.exportProperty(ol.renderer.canvas.VectorTileLayer.prototype,"un",ol.renderer.canvas.VectorTileLayer.prototype.un),n.exportProperty(ol.render.Event.prototype,"type",ol.render.Event.prototype.type),n.exportProperty(ol.render.Event.prototype,"target",ol.render.Event.prototype.target),n.exportProperty(ol.render.Event.prototype,"preventDefault",ol.render.Event.prototype.preventDefault),n.exportProperty(ol.render.Event.prototype,"stopPropagation",ol.render.Event.prototype.stopPropagation),n.exportProperty(ol.pointer.PointerEvent.prototype,"type",ol.pointer.PointerEvent.prototype.type),n.exportProperty(ol.pointer.PointerEvent.prototype,"target",ol.pointer.PointerEvent.prototype.target),n.exportProperty(ol.pointer.PointerEvent.prototype,"preventDefault",ol.pointer.PointerEvent.prototype.preventDefault),n.exportProperty(ol.pointer.PointerEvent.prototype,"stopPropagation",ol.pointer.PointerEvent.prototype.stopPropagation),n.exportProperty(ol.layer.Base.prototype,"get",ol.layer.Base.prototype.get),n.exportProperty(ol.layer.Base.prototype,"getKeys",ol.layer.Base.prototype.getKeys),n.exportProperty(ol.layer.Base.prototype,"getProperties",ol.layer.Base.prototype.getProperties),n.exportProperty(ol.layer.Base.prototype,"set",ol.layer.Base.prototype.set),n.exportProperty(ol.layer.Base.prototype,"setProperties",ol.layer.Base.prototype.setProperties),n.exportProperty(ol.layer.Base.prototype,"unset",ol.layer.Base.prototype.unset),n.exportProperty(ol.layer.Base.prototype,"changed",ol.layer.Base.prototype.changed),n.exportProperty(ol.layer.Base.prototype,"dispatchEvent",ol.layer.Base.prototype.dispatchEvent),n.exportProperty(ol.layer.Base.prototype,"getRevision",ol.layer.Base.prototype.getRevision),n.exportProperty(ol.layer.Base.prototype,"on",ol.layer.Base.prototype.on),n.exportProperty(ol.layer.Base.prototype,"once",ol.layer.Base.prototype.once),n.exportProperty(ol.layer.Base.prototype,"un",ol.layer.Base.prototype.un),n.exportProperty(ol.layer.Group.prototype,"getExtent",ol.layer.Group.prototype.getExtent),n.exportProperty(ol.layer.Group.prototype,"getMaxResolution",ol.layer.Group.prototype.getMaxResolution),n.exportProperty(ol.layer.Group.prototype,"getMinResolution",ol.layer.Group.prototype.getMinResolution),n.exportProperty(ol.layer.Group.prototype,"getOpacity",ol.layer.Group.prototype.getOpacity),n.exportProperty(ol.layer.Group.prototype,"getVisible",ol.layer.Group.prototype.getVisible),n.exportProperty(ol.layer.Group.prototype,"getZIndex",ol.layer.Group.prototype.getZIndex),n.exportProperty(ol.layer.Group.prototype,"setExtent",ol.layer.Group.prototype.setExtent),n.exportProperty(ol.layer.Group.prototype,"setMaxResolution",ol.layer.Group.prototype.setMaxResolution),n.exportProperty(ol.layer.Group.prototype,"setMinResolution",ol.layer.Group.prototype.setMinResolution),n.exportProperty(ol.layer.Group.prototype,"setOpacity",ol.layer.Group.prototype.setOpacity),n.exportProperty(ol.layer.Group.prototype,"setVisible",ol.layer.Group.prototype.setVisible),n.exportProperty(ol.layer.Group.prototype,"setZIndex",ol.layer.Group.prototype.setZIndex),n.exportProperty(ol.layer.Group.prototype,"get",ol.layer.Group.prototype.get),n.exportProperty(ol.layer.Group.prototype,"getKeys",ol.layer.Group.prototype.getKeys),n.exportProperty(ol.layer.Group.prototype,"getProperties",ol.layer.Group.prototype.getProperties),n.exportProperty(ol.layer.Group.prototype,"set",ol.layer.Group.prototype.set),n.exportProperty(ol.layer.Group.prototype,"setProperties",ol.layer.Group.prototype.setProperties),n.exportProperty(ol.layer.Group.prototype,"unset",ol.layer.Group.prototype.unset),n.exportProperty(ol.layer.Group.prototype,"changed",ol.layer.Group.prototype.changed),n.exportProperty(ol.layer.Group.prototype,"dispatchEvent",ol.layer.Group.prototype.dispatchEvent),n.exportProperty(ol.layer.Group.prototype,"getRevision",ol.layer.Group.prototype.getRevision),n.exportProperty(ol.layer.Group.prototype,"on",ol.layer.Group.prototype.on),n.exportProperty(ol.layer.Group.prototype,"once",ol.layer.Group.prototype.once),n.exportProperty(ol.layer.Group.prototype,"un",ol.layer.Group.prototype.un),n.exportProperty(ol.layer.Layer.prototype,"getExtent",ol.layer.Layer.prototype.getExtent),n.exportProperty(ol.layer.Layer.prototype,"getMaxResolution",ol.layer.Layer.prototype.getMaxResolution),n.exportProperty(ol.layer.Layer.prototype,"getMinResolution",ol.layer.Layer.prototype.getMinResolution),n.exportProperty(ol.layer.Layer.prototype,"getOpacity",ol.layer.Layer.prototype.getOpacity),n.exportProperty(ol.layer.Layer.prototype,"getVisible",ol.layer.Layer.prototype.getVisible),n.exportProperty(ol.layer.Layer.prototype,"getZIndex",ol.layer.Layer.prototype.getZIndex),n.exportProperty(ol.layer.Layer.prototype,"setExtent",ol.layer.Layer.prototype.setExtent),n.exportProperty(ol.layer.Layer.prototype,"setMaxResolution",ol.layer.Layer.prototype.setMaxResolution),n.exportProperty(ol.layer.Layer.prototype,"setMinResolution",ol.layer.Layer.prototype.setMinResolution),n.exportProperty(ol.layer.Layer.prototype,"setOpacity",ol.layer.Layer.prototype.setOpacity),n.exportProperty(ol.layer.Layer.prototype,"setVisible",ol.layer.Layer.prototype.setVisible),n.exportProperty(ol.layer.Layer.prototype,"setZIndex",ol.layer.Layer.prototype.setZIndex),n.exportProperty(ol.layer.Layer.prototype,"get",ol.layer.Layer.prototype.get),n.exportProperty(ol.layer.Layer.prototype,"getKeys",ol.layer.Layer.prototype.getKeys),n.exportProperty(ol.layer.Layer.prototype,"getProperties",ol.layer.Layer.prototype.getProperties),n.exportProperty(ol.layer.Layer.prototype,"set",ol.layer.Layer.prototype.set),n.exportProperty(ol.layer.Layer.prototype,"setProperties",ol.layer.Layer.prototype.setProperties),n.exportProperty(ol.layer.Layer.prototype,"unset",ol.layer.Layer.prototype.unset),n.exportProperty(ol.layer.Layer.prototype,"changed",ol.layer.Layer.prototype.changed),n.exportProperty(ol.layer.Layer.prototype,"dispatchEvent",ol.layer.Layer.prototype.dispatchEvent),n.exportProperty(ol.layer.Layer.prototype,"getRevision",ol.layer.Layer.prototype.getRevision),n.exportProperty(ol.layer.Layer.prototype,"on",ol.layer.Layer.prototype.on),n.exportProperty(ol.layer.Layer.prototype,"once",ol.layer.Layer.prototype.once),n.exportProperty(ol.layer.Layer.prototype,"un",ol.layer.Layer.prototype.un),n.exportProperty(ol.layer.Vector.prototype,"setMap",ol.layer.Vector.prototype.setMap),n.exportProperty(ol.layer.Vector.prototype,"setSource",ol.layer.Vector.prototype.setSource),n.exportProperty(ol.layer.Vector.prototype,"getExtent",ol.layer.Vector.prototype.getExtent),n.exportProperty(ol.layer.Vector.prototype,"getMaxResolution",ol.layer.Vector.prototype.getMaxResolution),n.exportProperty(ol.layer.Vector.prototype,"getMinResolution",ol.layer.Vector.prototype.getMinResolution),n.exportProperty(ol.layer.Vector.prototype,"getOpacity",ol.layer.Vector.prototype.getOpacity),n.exportProperty(ol.layer.Vector.prototype,"getVisible",ol.layer.Vector.prototype.getVisible),n.exportProperty(ol.layer.Vector.prototype,"getZIndex",ol.layer.Vector.prototype.getZIndex),n.exportProperty(ol.layer.Vector.prototype,"setExtent",ol.layer.Vector.prototype.setExtent),n.exportProperty(ol.layer.Vector.prototype,"setMaxResolution",ol.layer.Vector.prototype.setMaxResolution),n.exportProperty(ol.layer.Vector.prototype,"setMinResolution",ol.layer.Vector.prototype.setMinResolution),n.exportProperty(ol.layer.Vector.prototype,"setOpacity",ol.layer.Vector.prototype.setOpacity),n.exportProperty(ol.layer.Vector.prototype,"setVisible",ol.layer.Vector.prototype.setVisible),n.exportProperty(ol.layer.Vector.prototype,"setZIndex",ol.layer.Vector.prototype.setZIndex),n.exportProperty(ol.layer.Vector.prototype,"get",ol.layer.Vector.prototype.get),n.exportProperty(ol.layer.Vector.prototype,"getKeys",ol.layer.Vector.prototype.getKeys),n.exportProperty(ol.layer.Vector.prototype,"getProperties",ol.layer.Vector.prototype.getProperties),n.exportProperty(ol.layer.Vector.prototype,"set",ol.layer.Vector.prototype.set),n.exportProperty(ol.layer.Vector.prototype,"setProperties",ol.layer.Vector.prototype.setProperties),n.exportProperty(ol.layer.Vector.prototype,"unset",ol.layer.Vector.prototype.unset),n.exportProperty(ol.layer.Vector.prototype,"changed",ol.layer.Vector.prototype.changed),n.exportProperty(ol.layer.Vector.prototype,"dispatchEvent",ol.layer.Vector.prototype.dispatchEvent),n.exportProperty(ol.layer.Vector.prototype,"getRevision",ol.layer.Vector.prototype.getRevision),n.exportProperty(ol.layer.Vector.prototype,"on",ol.layer.Vector.prototype.on),n.exportProperty(ol.layer.Vector.prototype,"once",ol.layer.Vector.prototype.once),n.exportProperty(ol.layer.Vector.prototype,"un",ol.layer.Vector.prototype.un),n.exportProperty(ol.layer.Heatmap.prototype,"getSource",ol.layer.Heatmap.prototype.getSource),n.exportProperty(ol.layer.Heatmap.prototype,"getStyle",ol.layer.Heatmap.prototype.getStyle),n.exportProperty(ol.layer.Heatmap.prototype,"getStyleFunction",ol.layer.Heatmap.prototype.getStyleFunction),n.exportProperty(ol.layer.Heatmap.prototype,"setStyle",ol.layer.Heatmap.prototype.setStyle),n.exportProperty(ol.layer.Heatmap.prototype,"setMap",ol.layer.Heatmap.prototype.setMap),n.exportProperty(ol.layer.Heatmap.prototype,"setSource",ol.layer.Heatmap.prototype.setSource),n.exportProperty(ol.layer.Heatmap.prototype,"getExtent",ol.layer.Heatmap.prototype.getExtent),n.exportProperty(ol.layer.Heatmap.prototype,"getMaxResolution",ol.layer.Heatmap.prototype.getMaxResolution),n.exportProperty(ol.layer.Heatmap.prototype,"getMinResolution",ol.layer.Heatmap.prototype.getMinResolution),n.exportProperty(ol.layer.Heatmap.prototype,"getOpacity",ol.layer.Heatmap.prototype.getOpacity),n.exportProperty(ol.layer.Heatmap.prototype,"getVisible",ol.layer.Heatmap.prototype.getVisible),n.exportProperty(ol.layer.Heatmap.prototype,"getZIndex",ol.layer.Heatmap.prototype.getZIndex),n.exportProperty(ol.layer.Heatmap.prototype,"setExtent",ol.layer.Heatmap.prototype.setExtent),n.exportProperty(ol.layer.Heatmap.prototype,"setMaxResolution",ol.layer.Heatmap.prototype.setMaxResolution),n.exportProperty(ol.layer.Heatmap.prototype,"setMinResolution",ol.layer.Heatmap.prototype.setMinResolution),n.exportProperty(ol.layer.Heatmap.prototype,"setOpacity",ol.layer.Heatmap.prototype.setOpacity),n.exportProperty(ol.layer.Heatmap.prototype,"setVisible",ol.layer.Heatmap.prototype.setVisible),n.exportProperty(ol.layer.Heatmap.prototype,"setZIndex",ol.layer.Heatmap.prototype.setZIndex),n.exportProperty(ol.layer.Heatmap.prototype,"get",ol.layer.Heatmap.prototype.get),n.exportProperty(ol.layer.Heatmap.prototype,"getKeys",ol.layer.Heatmap.prototype.getKeys),n.exportProperty(ol.layer.Heatmap.prototype,"getProperties",ol.layer.Heatmap.prototype.getProperties),n.exportProperty(ol.layer.Heatmap.prototype,"set",ol.layer.Heatmap.prototype.set),n.exportProperty(ol.layer.Heatmap.prototype,"setProperties",ol.layer.Heatmap.prototype.setProperties),n.exportProperty(ol.layer.Heatmap.prototype,"unset",ol.layer.Heatmap.prototype.unset),n.exportProperty(ol.layer.Heatmap.prototype,"changed",ol.layer.Heatmap.prototype.changed),n.exportProperty(ol.layer.Heatmap.prototype,"dispatchEvent",ol.layer.Heatmap.prototype.dispatchEvent),n.exportProperty(ol.layer.Heatmap.prototype,"getRevision",ol.layer.Heatmap.prototype.getRevision),n.exportProperty(ol.layer.Heatmap.prototype,"on",ol.layer.Heatmap.prototype.on),n.exportProperty(ol.layer.Heatmap.prototype,"once",ol.layer.Heatmap.prototype.once),n.exportProperty(ol.layer.Heatmap.prototype,"un",ol.layer.Heatmap.prototype.un),n.exportProperty(ol.layer.Image.prototype,"setMap",ol.layer.Image.prototype.setMap),n.exportProperty(ol.layer.Image.prototype,"setSource",ol.layer.Image.prototype.setSource),n.exportProperty(ol.layer.Image.prototype,"getExtent",ol.layer.Image.prototype.getExtent),n.exportProperty(ol.layer.Image.prototype,"getMaxResolution",ol.layer.Image.prototype.getMaxResolution),n.exportProperty(ol.layer.Image.prototype,"getMinResolution",ol.layer.Image.prototype.getMinResolution),n.exportProperty(ol.layer.Image.prototype,"getOpacity",ol.layer.Image.prototype.getOpacity),n.exportProperty(ol.layer.Image.prototype,"getVisible",ol.layer.Image.prototype.getVisible),n.exportProperty(ol.layer.Image.prototype,"getZIndex",ol.layer.Image.prototype.getZIndex),n.exportProperty(ol.layer.Image.prototype,"setExtent",ol.layer.Image.prototype.setExtent),n.exportProperty(ol.layer.Image.prototype,"setMaxResolution",ol.layer.Image.prototype.setMaxResolution),n.exportProperty(ol.layer.Image.prototype,"setMinResolution",ol.layer.Image.prototype.setMinResolution),n.exportProperty(ol.layer.Image.prototype,"setOpacity",ol.layer.Image.prototype.setOpacity),n.exportProperty(ol.layer.Image.prototype,"setVisible",ol.layer.Image.prototype.setVisible),n.exportProperty(ol.layer.Image.prototype,"setZIndex",ol.layer.Image.prototype.setZIndex),n.exportProperty(ol.layer.Image.prototype,"get",ol.layer.Image.prototype.get),n.exportProperty(ol.layer.Image.prototype,"getKeys",ol.layer.Image.prototype.getKeys),n.exportProperty(ol.layer.Image.prototype,"getProperties",ol.layer.Image.prototype.getProperties),n.exportProperty(ol.layer.Image.prototype,"set",ol.layer.Image.prototype.set),n.exportProperty(ol.layer.Image.prototype,"setProperties",ol.layer.Image.prototype.setProperties),n.exportProperty(ol.layer.Image.prototype,"unset",ol.layer.Image.prototype.unset),n.exportProperty(ol.layer.Image.prototype,"changed",ol.layer.Image.prototype.changed),n.exportProperty(ol.layer.Image.prototype,"dispatchEvent",ol.layer.Image.prototype.dispatchEvent),n.exportProperty(ol.layer.Image.prototype,"getRevision",ol.layer.Image.prototype.getRevision),n.exportProperty(ol.layer.Image.prototype,"on",ol.layer.Image.prototype.on),n.exportProperty(ol.layer.Image.prototype,"once",ol.layer.Image.prototype.once),n.exportProperty(ol.layer.Image.prototype,"un",ol.layer.Image.prototype.un),n.exportProperty(ol.layer.Tile.prototype,"setMap",ol.layer.Tile.prototype.setMap),n.exportProperty(ol.layer.Tile.prototype,"setSource",ol.layer.Tile.prototype.setSource),n.exportProperty(ol.layer.Tile.prototype,"getExtent",ol.layer.Tile.prototype.getExtent),n.exportProperty(ol.layer.Tile.prototype,"getMaxResolution",ol.layer.Tile.prototype.getMaxResolution),n.exportProperty(ol.layer.Tile.prototype,"getMinResolution",ol.layer.Tile.prototype.getMinResolution),n.exportProperty(ol.layer.Tile.prototype,"getOpacity",ol.layer.Tile.prototype.getOpacity),n.exportProperty(ol.layer.Tile.prototype,"getVisible",ol.layer.Tile.prototype.getVisible),n.exportProperty(ol.layer.Tile.prototype,"getZIndex",ol.layer.Tile.prototype.getZIndex),n.exportProperty(ol.layer.Tile.prototype,"setExtent",ol.layer.Tile.prototype.setExtent),n.exportProperty(ol.layer.Tile.prototype,"setMaxResolution",ol.layer.Tile.prototype.setMaxResolution),n.exportProperty(ol.layer.Tile.prototype,"setMinResolution",ol.layer.Tile.prototype.setMinResolution),n.exportProperty(ol.layer.Tile.prototype,"setOpacity",ol.layer.Tile.prototype.setOpacity),n.exportProperty(ol.layer.Tile.prototype,"setVisible",ol.layer.Tile.prototype.setVisible),n.exportProperty(ol.layer.Tile.prototype,"setZIndex",ol.layer.Tile.prototype.setZIndex),n.exportProperty(ol.layer.Tile.prototype,"get",ol.layer.Tile.prototype.get),n.exportProperty(ol.layer.Tile.prototype,"getKeys",ol.layer.Tile.prototype.getKeys),n.exportProperty(ol.layer.Tile.prototype,"getProperties",ol.layer.Tile.prototype.getProperties),n.exportProperty(ol.layer.Tile.prototype,"set",ol.layer.Tile.prototype.set),n.exportProperty(ol.layer.Tile.prototype,"setProperties",ol.layer.Tile.prototype.setProperties),n.exportProperty(ol.layer.Tile.prototype,"unset",ol.layer.Tile.prototype.unset),n.exportProperty(ol.layer.Tile.prototype,"changed",ol.layer.Tile.prototype.changed),n.exportProperty(ol.layer.Tile.prototype,"dispatchEvent",ol.layer.Tile.prototype.dispatchEvent),n.exportProperty(ol.layer.Tile.prototype,"getRevision",ol.layer.Tile.prototype.getRevision),n.exportProperty(ol.layer.Tile.prototype,"on",ol.layer.Tile.prototype.on),n.exportProperty(ol.layer.Tile.prototype,"once",ol.layer.Tile.prototype.once),n.exportProperty(ol.layer.Tile.prototype,"un",ol.layer.Tile.prototype.un),n.exportProperty(ol.layer.VectorTile.prototype,"getStyle",ol.layer.VectorTile.prototype.getStyle),n.exportProperty(ol.layer.VectorTile.prototype,"getStyleFunction",ol.layer.VectorTile.prototype.getStyleFunction),n.exportProperty(ol.layer.VectorTile.prototype,"setStyle",ol.layer.VectorTile.prototype.setStyle),n.exportProperty(ol.layer.VectorTile.prototype,"setMap",ol.layer.VectorTile.prototype.setMap),n.exportProperty(ol.layer.VectorTile.prototype,"setSource",ol.layer.VectorTile.prototype.setSource),n.exportProperty(ol.layer.VectorTile.prototype,"getExtent",ol.layer.VectorTile.prototype.getExtent),n.exportProperty(ol.layer.VectorTile.prototype,"getMaxResolution",ol.layer.VectorTile.prototype.getMaxResolution),n.exportProperty(ol.layer.VectorTile.prototype,"getMinResolution",ol.layer.VectorTile.prototype.getMinResolution),n.exportProperty(ol.layer.VectorTile.prototype,"getOpacity",ol.layer.VectorTile.prototype.getOpacity),n.exportProperty(ol.layer.VectorTile.prototype,"getVisible",ol.layer.VectorTile.prototype.getVisible),n.exportProperty(ol.layer.VectorTile.prototype,"getZIndex",ol.layer.VectorTile.prototype.getZIndex),n.exportProperty(ol.layer.VectorTile.prototype,"setExtent",ol.layer.VectorTile.prototype.setExtent),n.exportProperty(ol.layer.VectorTile.prototype,"setMaxResolution",ol.layer.VectorTile.prototype.setMaxResolution),n.exportProperty(ol.layer.VectorTile.prototype,"setMinResolution",ol.layer.VectorTile.prototype.setMinResolution),n.exportProperty(ol.layer.VectorTile.prototype,"setOpacity",ol.layer.VectorTile.prototype.setOpacity),n.exportProperty(ol.layer.VectorTile.prototype,"setVisible",ol.layer.VectorTile.prototype.setVisible),n.exportProperty(ol.layer.VectorTile.prototype,"setZIndex",ol.layer.VectorTile.prototype.setZIndex),n.exportProperty(ol.layer.VectorTile.prototype,"get",ol.layer.VectorTile.prototype.get),n.exportProperty(ol.layer.VectorTile.prototype,"getKeys",ol.layer.VectorTile.prototype.getKeys),n.exportProperty(ol.layer.VectorTile.prototype,"getProperties",ol.layer.VectorTile.prototype.getProperties),n.exportProperty(ol.layer.VectorTile.prototype,"set",ol.layer.VectorTile.prototype.set),n.exportProperty(ol.layer.VectorTile.prototype,"setProperties",ol.layer.VectorTile.prototype.setProperties),n.exportProperty(ol.layer.VectorTile.prototype,"unset",ol.layer.VectorTile.prototype.unset),n.exportProperty(ol.layer.VectorTile.prototype,"changed",ol.layer.VectorTile.prototype.changed),n.exportProperty(ol.layer.VectorTile.prototype,"dispatchEvent",ol.layer.VectorTile.prototype.dispatchEvent),n.exportProperty(ol.layer.VectorTile.prototype,"getRevision",ol.layer.VectorTile.prototype.getRevision),n.exportProperty(ol.layer.VectorTile.prototype,"on",ol.layer.VectorTile.prototype.on),n.exportProperty(ol.layer.VectorTile.prototype,"once",ol.layer.VectorTile.prototype.once),n.exportProperty(ol.layer.VectorTile.prototype,"un",ol.layer.VectorTile.prototype.un),n.exportProperty(ol.interaction.Interaction.prototype,"get",ol.interaction.Interaction.prototype.get),n.exportProperty(ol.interaction.Interaction.prototype,"getKeys",ol.interaction.Interaction.prototype.getKeys),n.exportProperty(ol.interaction.Interaction.prototype,"getProperties",ol.interaction.Interaction.prototype.getProperties),n.exportProperty(ol.interaction.Interaction.prototype,"set",ol.interaction.Interaction.prototype.set),n.exportProperty(ol.interaction.Interaction.prototype,"setProperties",ol.interaction.Interaction.prototype.setProperties),n.exportProperty(ol.interaction.Interaction.prototype,"unset",ol.interaction.Interaction.prototype.unset),n.exportProperty(ol.interaction.Interaction.prototype,"changed",ol.interaction.Interaction.prototype.changed),n.exportProperty(ol.interaction.Interaction.prototype,"dispatchEvent",ol.interaction.Interaction.prototype.dispatchEvent),n.exportProperty(ol.interaction.Interaction.prototype,"getRevision",ol.interaction.Interaction.prototype.getRevision),n.exportProperty(ol.interaction.Interaction.prototype,"on",ol.interaction.Interaction.prototype.on),n.exportProperty(ol.interaction.Interaction.prototype,"once",ol.interaction.Interaction.prototype.once),n.exportProperty(ol.interaction.Interaction.prototype,"un",ol.interaction.Interaction.prototype.un),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"getActive",ol.interaction.DoubleClickZoom.prototype.getActive),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"getMap",ol.interaction.DoubleClickZoom.prototype.getMap),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"setActive",ol.interaction.DoubleClickZoom.prototype.setActive),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"get",ol.interaction.DoubleClickZoom.prototype.get),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"getKeys",ol.interaction.DoubleClickZoom.prototype.getKeys),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"getProperties",ol.interaction.DoubleClickZoom.prototype.getProperties),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"set",ol.interaction.DoubleClickZoom.prototype.set),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"setProperties",ol.interaction.DoubleClickZoom.prototype.setProperties),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"unset",ol.interaction.DoubleClickZoom.prototype.unset),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"changed",ol.interaction.DoubleClickZoom.prototype.changed),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"dispatchEvent",ol.interaction.DoubleClickZoom.prototype.dispatchEvent),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"getRevision",ol.interaction.DoubleClickZoom.prototype.getRevision),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"on",ol.interaction.DoubleClickZoom.prototype.on),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"once",ol.interaction.DoubleClickZoom.prototype.once),n.exportProperty(ol.interaction.DoubleClickZoom.prototype,"un",ol.interaction.DoubleClickZoom.prototype.un),n.exportProperty(ol.interaction.DragAndDrop.prototype,"getActive",ol.interaction.DragAndDrop.prototype.getActive),n.exportProperty(ol.interaction.DragAndDrop.prototype,"getMap",ol.interaction.DragAndDrop.prototype.getMap),n.exportProperty(ol.interaction.DragAndDrop.prototype,"setActive",ol.interaction.DragAndDrop.prototype.setActive),n.exportProperty(ol.interaction.DragAndDrop.prototype,"get",ol.interaction.DragAndDrop.prototype.get),n.exportProperty(ol.interaction.DragAndDrop.prototype,"getKeys",ol.interaction.DragAndDrop.prototype.getKeys),n.exportProperty(ol.interaction.DragAndDrop.prototype,"getProperties",ol.interaction.DragAndDrop.prototype.getProperties),n.exportProperty(ol.interaction.DragAndDrop.prototype,"set",ol.interaction.DragAndDrop.prototype.set),n.exportProperty(ol.interaction.DragAndDrop.prototype,"setProperties",ol.interaction.DragAndDrop.prototype.setProperties),n.exportProperty(ol.interaction.DragAndDrop.prototype,"unset",ol.interaction.DragAndDrop.prototype.unset),n.exportProperty(ol.interaction.DragAndDrop.prototype,"changed",ol.interaction.DragAndDrop.prototype.changed),n.exportProperty(ol.interaction.DragAndDrop.prototype,"dispatchEvent",ol.interaction.DragAndDrop.prototype.dispatchEvent),n.exportProperty(ol.interaction.DragAndDrop.prototype,"getRevision",ol.interaction.DragAndDrop.prototype.getRevision),n.exportProperty(ol.interaction.DragAndDrop.prototype,"on",ol.interaction.DragAndDrop.prototype.on),n.exportProperty(ol.interaction.DragAndDrop.prototype,"once",ol.interaction.DragAndDrop.prototype.once),n.exportProperty(ol.interaction.DragAndDrop.prototype,"un",ol.interaction.DragAndDrop.prototype.un),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"type",ol.interaction.DragAndDrop.Event.prototype.type),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"target",ol.interaction.DragAndDrop.Event.prototype.target),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"preventDefault",ol.interaction.DragAndDrop.Event.prototype.preventDefault),n.exportProperty(ol.interaction.DragAndDrop.Event.prototype,"stopPropagation",ol.interaction.DragAndDrop.Event.prototype.stopPropagation),n.exportProperty(ol.interaction.Pointer.prototype,"getActive",ol.interaction.Pointer.prototype.getActive),n.exportProperty(ol.interaction.Pointer.prototype,"getMap",ol.interaction.Pointer.prototype.getMap),n.exportProperty(ol.interaction.Pointer.prototype,"setActive",ol.interaction.Pointer.prototype.setActive),n.exportProperty(ol.interaction.Pointer.prototype,"get",ol.interaction.Pointer.prototype.get),n.exportProperty(ol.interaction.Pointer.prototype,"getKeys",ol.interaction.Pointer.prototype.getKeys),n.exportProperty(ol.interaction.Pointer.prototype,"getProperties",ol.interaction.Pointer.prototype.getProperties),n.exportProperty(ol.interaction.Pointer.prototype,"set",ol.interaction.Pointer.prototype.set),n.exportProperty(ol.interaction.Pointer.prototype,"setProperties",ol.interaction.Pointer.prototype.setProperties),n.exportProperty(ol.interaction.Pointer.prototype,"unset",ol.interaction.Pointer.prototype.unset),n.exportProperty(ol.interaction.Pointer.prototype,"changed",ol.interaction.Pointer.prototype.changed),n.exportProperty(ol.interaction.Pointer.prototype,"dispatchEvent",ol.interaction.Pointer.prototype.dispatchEvent),n.exportProperty(ol.interaction.Pointer.prototype,"getRevision",ol.interaction.Pointer.prototype.getRevision),n.exportProperty(ol.interaction.Pointer.prototype,"on",ol.interaction.Pointer.prototype.on),n.exportProperty(ol.interaction.Pointer.prototype,"once",ol.interaction.Pointer.prototype.once),n.exportProperty(ol.interaction.Pointer.prototype,"un",ol.interaction.Pointer.prototype.un),n.exportProperty(ol.interaction.DragBox.prototype,"getActive",ol.interaction.DragBox.prototype.getActive),n.exportProperty(ol.interaction.DragBox.prototype,"getMap",ol.interaction.DragBox.prototype.getMap),n.exportProperty(ol.interaction.DragBox.prototype,"setActive",ol.interaction.DragBox.prototype.setActive),n.exportProperty(ol.interaction.DragBox.prototype,"get",ol.interaction.DragBox.prototype.get),n.exportProperty(ol.interaction.DragBox.prototype,"getKeys",ol.interaction.DragBox.prototype.getKeys),n.exportProperty(ol.interaction.DragBox.prototype,"getProperties",ol.interaction.DragBox.prototype.getProperties),n.exportProperty(ol.interaction.DragBox.prototype,"set",ol.interaction.DragBox.prototype.set),n.exportProperty(ol.interaction.DragBox.prototype,"setProperties",ol.interaction.DragBox.prototype.setProperties),n.exportProperty(ol.interaction.DragBox.prototype,"unset",ol.interaction.DragBox.prototype.unset),n.exportProperty(ol.interaction.DragBox.prototype,"changed",ol.interaction.DragBox.prototype.changed),n.exportProperty(ol.interaction.DragBox.prototype,"dispatchEvent",ol.interaction.DragBox.prototype.dispatchEvent),n.exportProperty(ol.interaction.DragBox.prototype,"getRevision",ol.interaction.DragBox.prototype.getRevision),n.exportProperty(ol.interaction.DragBox.prototype,"on",ol.interaction.DragBox.prototype.on),n.exportProperty(ol.interaction.DragBox.prototype,"once",ol.interaction.DragBox.prototype.once),n.exportProperty(ol.interaction.DragBox.prototype,"un",ol.interaction.DragBox.prototype.un),n.exportProperty(ol.interaction.DragBox.Event.prototype,"type",ol.interaction.DragBox.Event.prototype.type),n.exportProperty(ol.interaction.DragBox.Event.prototype,"target",ol.interaction.DragBox.Event.prototype.target),n.exportProperty(ol.interaction.DragBox.Event.prototype,"preventDefault",ol.interaction.DragBox.Event.prototype.preventDefault),n.exportProperty(ol.interaction.DragBox.Event.prototype,"stopPropagation",ol.interaction.DragBox.Event.prototype.stopPropagation),n.exportProperty(ol.interaction.DragPan.prototype,"getActive",ol.interaction.DragPan.prototype.getActive),n.exportProperty(ol.interaction.DragPan.prototype,"getMap",ol.interaction.DragPan.prototype.getMap),n.exportProperty(ol.interaction.DragPan.prototype,"setActive",ol.interaction.DragPan.prototype.setActive),n.exportProperty(ol.interaction.DragPan.prototype,"get",ol.interaction.DragPan.prototype.get),n.exportProperty(ol.interaction.DragPan.prototype,"getKeys",ol.interaction.DragPan.prototype.getKeys),n.exportProperty(ol.interaction.DragPan.prototype,"getProperties",ol.interaction.DragPan.prototype.getProperties),n.exportProperty(ol.interaction.DragPan.prototype,"set",ol.interaction.DragPan.prototype.set),n.exportProperty(ol.interaction.DragPan.prototype,"setProperties",ol.interaction.DragPan.prototype.setProperties),n.exportProperty(ol.interaction.DragPan.prototype,"unset",ol.interaction.DragPan.prototype.unset),n.exportProperty(ol.interaction.DragPan.prototype,"changed",ol.interaction.DragPan.prototype.changed),n.exportProperty(ol.interaction.DragPan.prototype,"dispatchEvent",ol.interaction.DragPan.prototype.dispatchEvent),n.exportProperty(ol.interaction.DragPan.prototype,"getRevision",ol.interaction.DragPan.prototype.getRevision),n.exportProperty(ol.interaction.DragPan.prototype,"on",ol.interaction.DragPan.prototype.on),n.exportProperty(ol.interaction.DragPan.prototype,"once",ol.interaction.DragPan.prototype.once),n.exportProperty(ol.interaction.DragPan.prototype,"un",ol.interaction.DragPan.prototype.un),n.exportProperty(ol.interaction.DragRotate.prototype,"getActive",ol.interaction.DragRotate.prototype.getActive),n.exportProperty(ol.interaction.DragRotate.prototype,"getMap",ol.interaction.DragRotate.prototype.getMap),n.exportProperty(ol.interaction.DragRotate.prototype,"setActive",ol.interaction.DragRotate.prototype.setActive),n.exportProperty(ol.interaction.DragRotate.prototype,"get",ol.interaction.DragRotate.prototype.get),n.exportProperty(ol.interaction.DragRotate.prototype,"getKeys",ol.interaction.DragRotate.prototype.getKeys),n.exportProperty(ol.interaction.DragRotate.prototype,"getProperties",ol.interaction.DragRotate.prototype.getProperties),n.exportProperty(ol.interaction.DragRotate.prototype,"set",ol.interaction.DragRotate.prototype.set),n.exportProperty(ol.interaction.DragRotate.prototype,"setProperties",ol.interaction.DragRotate.prototype.setProperties),n.exportProperty(ol.interaction.DragRotate.prototype,"unset",ol.interaction.DragRotate.prototype.unset),n.exportProperty(ol.interaction.DragRotate.prototype,"changed",ol.interaction.DragRotate.prototype.changed),n.exportProperty(ol.interaction.DragRotate.prototype,"dispatchEvent",ol.interaction.DragRotate.prototype.dispatchEvent),n.exportProperty(ol.interaction.DragRotate.prototype,"getRevision",ol.interaction.DragRotate.prototype.getRevision),n.exportProperty(ol.interaction.DragRotate.prototype,"on",ol.interaction.DragRotate.prototype.on),n.exportProperty(ol.interaction.DragRotate.prototype,"once",ol.interaction.DragRotate.prototype.once),n.exportProperty(ol.interaction.DragRotate.prototype,"un",ol.interaction.DragRotate.prototype.un),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"getActive",ol.interaction.DragRotateAndZoom.prototype.getActive),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"getMap",ol.interaction.DragRotateAndZoom.prototype.getMap),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"setActive",ol.interaction.DragRotateAndZoom.prototype.setActive),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"get",ol.interaction.DragRotateAndZoom.prototype.get),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"getKeys",ol.interaction.DragRotateAndZoom.prototype.getKeys),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"getProperties",ol.interaction.DragRotateAndZoom.prototype.getProperties),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"set",ol.interaction.DragRotateAndZoom.prototype.set),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"setProperties",ol.interaction.DragRotateAndZoom.prototype.setProperties),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"unset",ol.interaction.DragRotateAndZoom.prototype.unset),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"changed",ol.interaction.DragRotateAndZoom.prototype.changed),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"dispatchEvent",ol.interaction.DragRotateAndZoom.prototype.dispatchEvent),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"getRevision",ol.interaction.DragRotateAndZoom.prototype.getRevision),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"on",ol.interaction.DragRotateAndZoom.prototype.on),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"once",ol.interaction.DragRotateAndZoom.prototype.once),n.exportProperty(ol.interaction.DragRotateAndZoom.prototype,"un",ol.interaction.DragRotateAndZoom.prototype.un),n.exportProperty(ol.interaction.DragZoom.prototype,"getGeometry",ol.interaction.DragZoom.prototype.getGeometry),n.exportProperty(ol.interaction.DragZoom.prototype,"getActive",ol.interaction.DragZoom.prototype.getActive),n.exportProperty(ol.interaction.DragZoom.prototype,"getMap",ol.interaction.DragZoom.prototype.getMap),n.exportProperty(ol.interaction.DragZoom.prototype,"setActive",ol.interaction.DragZoom.prototype.setActive),n.exportProperty(ol.interaction.DragZoom.prototype,"get",ol.interaction.DragZoom.prototype.get),n.exportProperty(ol.interaction.DragZoom.prototype,"getKeys",ol.interaction.DragZoom.prototype.getKeys),n.exportProperty(ol.interaction.DragZoom.prototype,"getProperties",ol.interaction.DragZoom.prototype.getProperties),n.exportProperty(ol.interaction.DragZoom.prototype,"set",ol.interaction.DragZoom.prototype.set),n.exportProperty(ol.interaction.DragZoom.prototype,"setProperties",ol.interaction.DragZoom.prototype.setProperties),n.exportProperty(ol.interaction.DragZoom.prototype,"unset",ol.interaction.DragZoom.prototype.unset),n.exportProperty(ol.interaction.DragZoom.prototype,"changed",ol.interaction.DragZoom.prototype.changed),n.exportProperty(ol.interaction.DragZoom.prototype,"dispatchEvent",ol.interaction.DragZoom.prototype.dispatchEvent),n.exportProperty(ol.interaction.DragZoom.prototype,"getRevision",ol.interaction.DragZoom.prototype.getRevision),n.exportProperty(ol.interaction.DragZoom.prototype,"on",ol.interaction.DragZoom.prototype.on),n.exportProperty(ol.interaction.DragZoom.prototype,"once",ol.interaction.DragZoom.prototype.once),n.exportProperty(ol.interaction.DragZoom.prototype,"un",ol.interaction.DragZoom.prototype.un),n.exportProperty(ol.interaction.Draw.prototype,"getActive",ol.interaction.Draw.prototype.getActive),n.exportProperty(ol.interaction.Draw.prototype,"getMap",ol.interaction.Draw.prototype.getMap),n.exportProperty(ol.interaction.Draw.prototype,"setActive",ol.interaction.Draw.prototype.setActive),n.exportProperty(ol.interaction.Draw.prototype,"get",ol.interaction.Draw.prototype.get),n.exportProperty(ol.interaction.Draw.prototype,"getKeys",ol.interaction.Draw.prototype.getKeys),n.exportProperty(ol.interaction.Draw.prototype,"getProperties",ol.interaction.Draw.prototype.getProperties),n.exportProperty(ol.interaction.Draw.prototype,"set",ol.interaction.Draw.prototype.set),n.exportProperty(ol.interaction.Draw.prototype,"setProperties",ol.interaction.Draw.prototype.setProperties),n.exportProperty(ol.interaction.Draw.prototype,"unset",ol.interaction.Draw.prototype.unset),n.exportProperty(ol.interaction.Draw.prototype,"changed",ol.interaction.Draw.prototype.changed),n.exportProperty(ol.interaction.Draw.prototype,"dispatchEvent",ol.interaction.Draw.prototype.dispatchEvent),n.exportProperty(ol.interaction.Draw.prototype,"getRevision",ol.interaction.Draw.prototype.getRevision),n.exportProperty(ol.interaction.Draw.prototype,"on",ol.interaction.Draw.prototype.on),n.exportProperty(ol.interaction.Draw.prototype,"once",ol.interaction.Draw.prototype.once),n.exportProperty(ol.interaction.Draw.prototype,"un",ol.interaction.Draw.prototype.un),n.exportProperty(ol.interaction.Draw.Event.prototype,"type",ol.interaction.Draw.Event.prototype.type),n.exportProperty(ol.interaction.Draw.Event.prototype,"target",ol.interaction.Draw.Event.prototype.target),n.exportProperty(ol.interaction.Draw.Event.prototype,"preventDefault",ol.interaction.Draw.Event.prototype.preventDefault),n.exportProperty(ol.interaction.Draw.Event.prototype,"stopPropagation",ol.interaction.Draw.Event.prototype.stopPropagation),n.exportProperty(ol.interaction.Extent.prototype,"getActive",ol.interaction.Extent.prototype.getActive),n.exportProperty(ol.interaction.Extent.prototype,"getMap",ol.interaction.Extent.prototype.getMap),n.exportProperty(ol.interaction.Extent.prototype,"setActive",ol.interaction.Extent.prototype.setActive),n.exportProperty(ol.interaction.Extent.prototype,"get",ol.interaction.Extent.prototype.get),n.exportProperty(ol.interaction.Extent.prototype,"getKeys",ol.interaction.Extent.prototype.getKeys),n.exportProperty(ol.interaction.Extent.prototype,"getProperties",ol.interaction.Extent.prototype.getProperties),n.exportProperty(ol.interaction.Extent.prototype,"set",ol.interaction.Extent.prototype.set),n.exportProperty(ol.interaction.Extent.prototype,"setProperties",ol.interaction.Extent.prototype.setProperties),n.exportProperty(ol.interaction.Extent.prototype,"unset",ol.interaction.Extent.prototype.unset),n.exportProperty(ol.interaction.Extent.prototype,"changed",ol.interaction.Extent.prototype.changed),n.exportProperty(ol.interaction.Extent.prototype,"dispatchEvent",ol.interaction.Extent.prototype.dispatchEvent),n.exportProperty(ol.interaction.Extent.prototype,"getRevision",ol.interaction.Extent.prototype.getRevision),n.exportProperty(ol.interaction.Extent.prototype,"on",ol.interaction.Extent.prototype.on),n.exportProperty(ol.interaction.Extent.prototype,"once",ol.interaction.Extent.prototype.once),n.exportProperty(ol.interaction.Extent.prototype,"un",ol.interaction.Extent.prototype.un),n.exportProperty(ol.interaction.Extent.Event.prototype,"type",ol.interaction.Extent.Event.prototype.type),n.exportProperty(ol.interaction.Extent.Event.prototype,"target",ol.interaction.Extent.Event.prototype.target),n.exportProperty(ol.interaction.Extent.Event.prototype,"preventDefault",ol.interaction.Extent.Event.prototype.preventDefault),n.exportProperty(ol.interaction.Extent.Event.prototype,"stopPropagation",ol.interaction.Extent.Event.prototype.stopPropagation),n.exportProperty(ol.interaction.KeyboardPan.prototype,"getActive",ol.interaction.KeyboardPan.prototype.getActive),n.exportProperty(ol.interaction.KeyboardPan.prototype,"getMap",ol.interaction.KeyboardPan.prototype.getMap),n.exportProperty(ol.interaction.KeyboardPan.prototype,"setActive",ol.interaction.KeyboardPan.prototype.setActive),n.exportProperty(ol.interaction.KeyboardPan.prototype,"get",ol.interaction.KeyboardPan.prototype.get),n.exportProperty(ol.interaction.KeyboardPan.prototype,"getKeys",ol.interaction.KeyboardPan.prototype.getKeys),n.exportProperty(ol.interaction.KeyboardPan.prototype,"getProperties",ol.interaction.KeyboardPan.prototype.getProperties),n.exportProperty(ol.interaction.KeyboardPan.prototype,"set",ol.interaction.KeyboardPan.prototype.set),n.exportProperty(ol.interaction.KeyboardPan.prototype,"setProperties",ol.interaction.KeyboardPan.prototype.setProperties),n.exportProperty(ol.interaction.KeyboardPan.prototype,"unset",ol.interaction.KeyboardPan.prototype.unset),n.exportProperty(ol.interaction.KeyboardPan.prototype,"changed",ol.interaction.KeyboardPan.prototype.changed),n.exportProperty(ol.interaction.KeyboardPan.prototype,"dispatchEvent",ol.interaction.KeyboardPan.prototype.dispatchEvent),n.exportProperty(ol.interaction.KeyboardPan.prototype,"getRevision",ol.interaction.KeyboardPan.prototype.getRevision),n.exportProperty(ol.interaction.KeyboardPan.prototype,"on",ol.interaction.KeyboardPan.prototype.on),n.exportProperty(ol.interaction.KeyboardPan.prototype,"once",ol.interaction.KeyboardPan.prototype.once),n.exportProperty(ol.interaction.KeyboardPan.prototype,"un",ol.interaction.KeyboardPan.prototype.un),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"getActive",ol.interaction.KeyboardZoom.prototype.getActive),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"getMap",ol.interaction.KeyboardZoom.prototype.getMap),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"setActive",ol.interaction.KeyboardZoom.prototype.setActive),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"get",ol.interaction.KeyboardZoom.prototype.get),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"getKeys",ol.interaction.KeyboardZoom.prototype.getKeys),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"getProperties",ol.interaction.KeyboardZoom.prototype.getProperties),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"set",ol.interaction.KeyboardZoom.prototype.set),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"setProperties",ol.interaction.KeyboardZoom.prototype.setProperties),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"unset",ol.interaction.KeyboardZoom.prototype.unset),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"changed",ol.interaction.KeyboardZoom.prototype.changed),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"dispatchEvent",ol.interaction.KeyboardZoom.prototype.dispatchEvent),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"getRevision",ol.interaction.KeyboardZoom.prototype.getRevision),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"on",ol.interaction.KeyboardZoom.prototype.on),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"once",ol.interaction.KeyboardZoom.prototype.once),n.exportProperty(ol.interaction.KeyboardZoom.prototype,"un",ol.interaction.KeyboardZoom.prototype.un),n.exportProperty(ol.interaction.Modify.prototype,"getActive",ol.interaction.Modify.prototype.getActive),n.exportProperty(ol.interaction.Modify.prototype,"getMap",ol.interaction.Modify.prototype.getMap),n.exportProperty(ol.interaction.Modify.prototype,"setActive",ol.interaction.Modify.prototype.setActive),n.exportProperty(ol.interaction.Modify.prototype,"get",ol.interaction.Modify.prototype.get),n.exportProperty(ol.interaction.Modify.prototype,"getKeys",ol.interaction.Modify.prototype.getKeys),n.exportProperty(ol.interaction.Modify.prototype,"getProperties",ol.interaction.Modify.prototype.getProperties),n.exportProperty(ol.interaction.Modify.prototype,"set",ol.interaction.Modify.prototype.set),n.exportProperty(ol.interaction.Modify.prototype,"setProperties",ol.interaction.Modify.prototype.setProperties),n.exportProperty(ol.interaction.Modify.prototype,"unset",ol.interaction.Modify.prototype.unset),n.exportProperty(ol.interaction.Modify.prototype,"changed",ol.interaction.Modify.prototype.changed),n.exportProperty(ol.interaction.Modify.prototype,"dispatchEvent",ol.interaction.Modify.prototype.dispatchEvent),n.exportProperty(ol.interaction.Modify.prototype,"getRevision",ol.interaction.Modify.prototype.getRevision),n.exportProperty(ol.interaction.Modify.prototype,"on",ol.interaction.Modify.prototype.on),n.exportProperty(ol.interaction.Modify.prototype,"once",ol.interaction.Modify.prototype.once),n.exportProperty(ol.interaction.Modify.prototype,"un",ol.interaction.Modify.prototype.un),n.exportProperty(ol.interaction.Modify.Event.prototype,"type",ol.interaction.Modify.Event.prototype.type),n.exportProperty(ol.interaction.Modify.Event.prototype,"target",ol.interaction.Modify.Event.prototype.target),n.exportProperty(ol.interaction.Modify.Event.prototype,"preventDefault",ol.interaction.Modify.Event.prototype.preventDefault),n.exportProperty(ol.interaction.Modify.Event.prototype,"stopPropagation",ol.interaction.Modify.Event.prototype.stopPropagation),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"getActive",ol.interaction.MouseWheelZoom.prototype.getActive),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"getMap",ol.interaction.MouseWheelZoom.prototype.getMap),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"setActive",ol.interaction.MouseWheelZoom.prototype.setActive),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"get",ol.interaction.MouseWheelZoom.prototype.get),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"getKeys",ol.interaction.MouseWheelZoom.prototype.getKeys),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"getProperties",ol.interaction.MouseWheelZoom.prototype.getProperties),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"set",ol.interaction.MouseWheelZoom.prototype.set),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"setProperties",ol.interaction.MouseWheelZoom.prototype.setProperties),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"unset",ol.interaction.MouseWheelZoom.prototype.unset),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"changed",ol.interaction.MouseWheelZoom.prototype.changed),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"dispatchEvent",ol.interaction.MouseWheelZoom.prototype.dispatchEvent),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"getRevision",ol.interaction.MouseWheelZoom.prototype.getRevision),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"on",ol.interaction.MouseWheelZoom.prototype.on),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"once",ol.interaction.MouseWheelZoom.prototype.once),n.exportProperty(ol.interaction.MouseWheelZoom.prototype,"un",ol.interaction.MouseWheelZoom.prototype.un),n.exportProperty(ol.interaction.PinchRotate.prototype,"getActive",ol.interaction.PinchRotate.prototype.getActive),n.exportProperty(ol.interaction.PinchRotate.prototype,"getMap",ol.interaction.PinchRotate.prototype.getMap),n.exportProperty(ol.interaction.PinchRotate.prototype,"setActive",ol.interaction.PinchRotate.prototype.setActive),n.exportProperty(ol.interaction.PinchRotate.prototype,"get",ol.interaction.PinchRotate.prototype.get),n.exportProperty(ol.interaction.PinchRotate.prototype,"getKeys",ol.interaction.PinchRotate.prototype.getKeys),n.exportProperty(ol.interaction.PinchRotate.prototype,"getProperties",ol.interaction.PinchRotate.prototype.getProperties),n.exportProperty(ol.interaction.PinchRotate.prototype,"set",ol.interaction.PinchRotate.prototype.set),n.exportProperty(ol.interaction.PinchRotate.prototype,"setProperties",ol.interaction.PinchRotate.prototype.setProperties),n.exportProperty(ol.interaction.PinchRotate.prototype,"unset",ol.interaction.PinchRotate.prototype.unset),n.exportProperty(ol.interaction.PinchRotate.prototype,"changed",ol.interaction.PinchRotate.prototype.changed),n.exportProperty(ol.interaction.PinchRotate.prototype,"dispatchEvent",ol.interaction.PinchRotate.prototype.dispatchEvent),n.exportProperty(ol.interaction.PinchRotate.prototype,"getRevision",ol.interaction.PinchRotate.prototype.getRevision),n.exportProperty(ol.interaction.PinchRotate.prototype,"on",ol.interaction.PinchRotate.prototype.on),n.exportProperty(ol.interaction.PinchRotate.prototype,"once",ol.interaction.PinchRotate.prototype.once),n.exportProperty(ol.interaction.PinchRotate.prototype,"un",ol.interaction.PinchRotate.prototype.un),n.exportProperty(ol.interaction.PinchZoom.prototype,"getActive",ol.interaction.PinchZoom.prototype.getActive),n.exportProperty(ol.interaction.PinchZoom.prototype,"getMap",ol.interaction.PinchZoom.prototype.getMap),n.exportProperty(ol.interaction.PinchZoom.prototype,"setActive",ol.interaction.PinchZoom.prototype.setActive),n.exportProperty(ol.interaction.PinchZoom.prototype,"get",ol.interaction.PinchZoom.prototype.get),n.exportProperty(ol.interaction.PinchZoom.prototype,"getKeys",ol.interaction.PinchZoom.prototype.getKeys),n.exportProperty(ol.interaction.PinchZoom.prototype,"getProperties",ol.interaction.PinchZoom.prototype.getProperties),n.exportProperty(ol.interaction.PinchZoom.prototype,"set",ol.interaction.PinchZoom.prototype.set),n.exportProperty(ol.interaction.PinchZoom.prototype,"setProperties",ol.interaction.PinchZoom.prototype.setProperties),n.exportProperty(ol.interaction.PinchZoom.prototype,"unset",ol.interaction.PinchZoom.prototype.unset),n.exportProperty(ol.interaction.PinchZoom.prototype,"changed",ol.interaction.PinchZoom.prototype.changed),n.exportProperty(ol.interaction.PinchZoom.prototype,"dispatchEvent",ol.interaction.PinchZoom.prototype.dispatchEvent),n.exportProperty(ol.interaction.PinchZoom.prototype,"getRevision",ol.interaction.PinchZoom.prototype.getRevision),n.exportProperty(ol.interaction.PinchZoom.prototype,"on",ol.interaction.PinchZoom.prototype.on),n.exportProperty(ol.interaction.PinchZoom.prototype,"once",ol.interaction.PinchZoom.prototype.once),n.exportProperty(ol.interaction.PinchZoom.prototype,"un",ol.interaction.PinchZoom.prototype.un),n.exportProperty(ol.interaction.Select.prototype,"getActive",ol.interaction.Select.prototype.getActive),n.exportProperty(ol.interaction.Select.prototype,"getMap",ol.interaction.Select.prototype.getMap),n.exportProperty(ol.interaction.Select.prototype,"setActive",ol.interaction.Select.prototype.setActive),n.exportProperty(ol.interaction.Select.prototype,"get",ol.interaction.Select.prototype.get),n.exportProperty(ol.interaction.Select.prototype,"getKeys",ol.interaction.Select.prototype.getKeys),n.exportProperty(ol.interaction.Select.prototype,"getProperties",ol.interaction.Select.prototype.getProperties),n.exportProperty(ol.interaction.Select.prototype,"set",ol.interaction.Select.prototype.set),n.exportProperty(ol.interaction.Select.prototype,"setProperties",ol.interaction.Select.prototype.setProperties),n.exportProperty(ol.interaction.Select.prototype,"unset",ol.interaction.Select.prototype.unset),n.exportProperty(ol.interaction.Select.prototype,"changed",ol.interaction.Select.prototype.changed),n.exportProperty(ol.interaction.Select.prototype,"dispatchEvent",ol.interaction.Select.prototype.dispatchEvent),n.exportProperty(ol.interaction.Select.prototype,"getRevision",ol.interaction.Select.prototype.getRevision),n.exportProperty(ol.interaction.Select.prototype,"on",ol.interaction.Select.prototype.on),n.exportProperty(ol.interaction.Select.prototype,"once",ol.interaction.Select.prototype.once),n.exportProperty(ol.interaction.Select.prototype,"un",ol.interaction.Select.prototype.un),n.exportProperty(ol.interaction.Select.Event.prototype,"type",ol.interaction.Select.Event.prototype.type),n.exportProperty(ol.interaction.Select.Event.prototype,"target",ol.interaction.Select.Event.prototype.target),n.exportProperty(ol.interaction.Select.Event.prototype,"preventDefault",ol.interaction.Select.Event.prototype.preventDefault),n.exportProperty(ol.interaction.Select.Event.prototype,"stopPropagation",ol.interaction.Select.Event.prototype.stopPropagation),n.exportProperty(ol.interaction.Snap.prototype,"getActive",ol.interaction.Snap.prototype.getActive),n.exportProperty(ol.interaction.Snap.prototype,"getMap",ol.interaction.Snap.prototype.getMap),n.exportProperty(ol.interaction.Snap.prototype,"setActive",ol.interaction.Snap.prototype.setActive),n.exportProperty(ol.interaction.Snap.prototype,"get",ol.interaction.Snap.prototype.get),n.exportProperty(ol.interaction.Snap.prototype,"getKeys",ol.interaction.Snap.prototype.getKeys),n.exportProperty(ol.interaction.Snap.prototype,"getProperties",ol.interaction.Snap.prototype.getProperties),n.exportProperty(ol.interaction.Snap.prototype,"set",ol.interaction.Snap.prototype.set),n.exportProperty(ol.interaction.Snap.prototype,"setProperties",ol.interaction.Snap.prototype.setProperties),n.exportProperty(ol.interaction.Snap.prototype,"unset",ol.interaction.Snap.prototype.unset),n.exportProperty(ol.interaction.Snap.prototype,"changed",ol.interaction.Snap.prototype.changed),n.exportProperty(ol.interaction.Snap.prototype,"dispatchEvent",ol.interaction.Snap.prototype.dispatchEvent),n.exportProperty(ol.interaction.Snap.prototype,"getRevision",ol.interaction.Snap.prototype.getRevision),n.exportProperty(ol.interaction.Snap.prototype,"on",ol.interaction.Snap.prototype.on),n.exportProperty(ol.interaction.Snap.prototype,"once",ol.interaction.Snap.prototype.once),n.exportProperty(ol.interaction.Snap.prototype,"un",ol.interaction.Snap.prototype.un),n.exportProperty(ol.interaction.Translate.prototype,"getActive",ol.interaction.Translate.prototype.getActive),n.exportProperty(ol.interaction.Translate.prototype,"getMap",ol.interaction.Translate.prototype.getMap),n.exportProperty(ol.interaction.Translate.prototype,"setActive",ol.interaction.Translate.prototype.setActive),n.exportProperty(ol.interaction.Translate.prototype,"get",ol.interaction.Translate.prototype.get),n.exportProperty(ol.interaction.Translate.prototype,"getKeys",ol.interaction.Translate.prototype.getKeys),n.exportProperty(ol.interaction.Translate.prototype,"getProperties",ol.interaction.Translate.prototype.getProperties),n.exportProperty(ol.interaction.Translate.prototype,"set",ol.interaction.Translate.prototype.set),n.exportProperty(ol.interaction.Translate.prototype,"setProperties",ol.interaction.Translate.prototype.setProperties),n.exportProperty(ol.interaction.Translate.prototype,"unset",ol.interaction.Translate.prototype.unset),n.exportProperty(ol.interaction.Translate.prototype,"changed",ol.interaction.Translate.prototype.changed),n.exportProperty(ol.interaction.Translate.prototype,"dispatchEvent",ol.interaction.Translate.prototype.dispatchEvent),n.exportProperty(ol.interaction.Translate.prototype,"getRevision",ol.interaction.Translate.prototype.getRevision),n.exportProperty(ol.interaction.Translate.prototype,"on",ol.interaction.Translate.prototype.on),n.exportProperty(ol.interaction.Translate.prototype,"once",ol.interaction.Translate.prototype.once),n.exportProperty(ol.interaction.Translate.prototype,"un",ol.interaction.Translate.prototype.un),n.exportProperty(ol.interaction.Translate.Event.prototype,"type",ol.interaction.Translate.Event.prototype.type),n.exportProperty(ol.interaction.Translate.Event.prototype,"target",ol.interaction.Translate.Event.prototype.target),n.exportProperty(ol.interaction.Translate.Event.prototype,"preventDefault",ol.interaction.Translate.Event.prototype.preventDefault),n.exportProperty(ol.interaction.Translate.Event.prototype,"stopPropagation",ol.interaction.Translate.Event.prototype.stopPropagation),n.exportProperty(ol.geom.Geometry.prototype,"get",ol.geom.Geometry.prototype.get),n.exportProperty(ol.geom.Geometry.prototype,"getKeys",ol.geom.Geometry.prototype.getKeys),n.exportProperty(ol.geom.Geometry.prototype,"getProperties",ol.geom.Geometry.prototype.getProperties),n.exportProperty(ol.geom.Geometry.prototype,"set",ol.geom.Geometry.prototype.set),n.exportProperty(ol.geom.Geometry.prototype,"setProperties",ol.geom.Geometry.prototype.setProperties),n.exportProperty(ol.geom.Geometry.prototype,"unset",ol.geom.Geometry.prototype.unset),n.exportProperty(ol.geom.Geometry.prototype,"changed",ol.geom.Geometry.prototype.changed),n.exportProperty(ol.geom.Geometry.prototype,"dispatchEvent",ol.geom.Geometry.prototype.dispatchEvent),n.exportProperty(ol.geom.Geometry.prototype,"getRevision",ol.geom.Geometry.prototype.getRevision),n.exportProperty(ol.geom.Geometry.prototype,"on",ol.geom.Geometry.prototype.on),n.exportProperty(ol.geom.Geometry.prototype,"once",ol.geom.Geometry.prototype.once),n.exportProperty(ol.geom.Geometry.prototype,"un",ol.geom.Geometry.prototype.un),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getClosestPoint",ol.geom.SimpleGeometry.prototype.getClosestPoint),n.exportProperty(ol.geom.SimpleGeometry.prototype,"intersectsCoordinate",ol.geom.SimpleGeometry.prototype.intersectsCoordinate),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getExtent",ol.geom.SimpleGeometry.prototype.getExtent),n.exportProperty(ol.geom.SimpleGeometry.prototype,"rotate",ol.geom.SimpleGeometry.prototype.rotate),n.exportProperty(ol.geom.SimpleGeometry.prototype,"scale",ol.geom.SimpleGeometry.prototype.scale),n.exportProperty(ol.geom.SimpleGeometry.prototype,"simplify",ol.geom.SimpleGeometry.prototype.simplify),n.exportProperty(ol.geom.SimpleGeometry.prototype,"transform",ol.geom.SimpleGeometry.prototype.transform),n.exportProperty(ol.geom.SimpleGeometry.prototype,"get",ol.geom.SimpleGeometry.prototype.get),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getKeys",ol.geom.SimpleGeometry.prototype.getKeys),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getProperties",ol.geom.SimpleGeometry.prototype.getProperties),n.exportProperty(ol.geom.SimpleGeometry.prototype,"set",ol.geom.SimpleGeometry.prototype.set),n.exportProperty(ol.geom.SimpleGeometry.prototype,"setProperties",ol.geom.SimpleGeometry.prototype.setProperties),n.exportProperty(ol.geom.SimpleGeometry.prototype,"unset",ol.geom.SimpleGeometry.prototype.unset),n.exportProperty(ol.geom.SimpleGeometry.prototype,"changed",ol.geom.SimpleGeometry.prototype.changed),n.exportProperty(ol.geom.SimpleGeometry.prototype,"dispatchEvent",ol.geom.SimpleGeometry.prototype.dispatchEvent),n.exportProperty(ol.geom.SimpleGeometry.prototype,"getRevision",ol.geom.SimpleGeometry.prototype.getRevision),n.exportProperty(ol.geom.SimpleGeometry.prototype,"on",ol.geom.SimpleGeometry.prototype.on),n.exportProperty(ol.geom.SimpleGeometry.prototype,"once",ol.geom.SimpleGeometry.prototype.once),n.exportProperty(ol.geom.SimpleGeometry.prototype,"un",ol.geom.SimpleGeometry.prototype.un),n.exportProperty(ol.geom.Circle.prototype,"getFirstCoordinate",ol.geom.Circle.prototype.getFirstCoordinate),n.exportProperty(ol.geom.Circle.prototype,"getLastCoordinate",ol.geom.Circle.prototype.getLastCoordinate),n.exportProperty(ol.geom.Circle.prototype,"getLayout",ol.geom.Circle.prototype.getLayout),n.exportProperty(ol.geom.Circle.prototype,"rotate",ol.geom.Circle.prototype.rotate),n.exportProperty(ol.geom.Circle.prototype,"scale",ol.geom.Circle.prototype.scale),n.exportProperty(ol.geom.Circle.prototype,"getClosestPoint",ol.geom.Circle.prototype.getClosestPoint),n.exportProperty(ol.geom.Circle.prototype,"intersectsCoordinate",ol.geom.Circle.prototype.intersectsCoordinate),n.exportProperty(ol.geom.Circle.prototype,"getExtent",ol.geom.Circle.prototype.getExtent),n.exportProperty(ol.geom.Circle.prototype,"simplify",ol.geom.Circle.prototype.simplify),n.exportProperty(ol.geom.Circle.prototype,"get",ol.geom.Circle.prototype.get),n.exportProperty(ol.geom.Circle.prototype,"getKeys",ol.geom.Circle.prototype.getKeys),n.exportProperty(ol.geom.Circle.prototype,"getProperties",ol.geom.Circle.prototype.getProperties),n.exportProperty(ol.geom.Circle.prototype,"set",ol.geom.Circle.prototype.set),n.exportProperty(ol.geom.Circle.prototype,"setProperties",ol.geom.Circle.prototype.setProperties),n.exportProperty(ol.geom.Circle.prototype,"unset",ol.geom.Circle.prototype.unset),n.exportProperty(ol.geom.Circle.prototype,"changed",ol.geom.Circle.prototype.changed),n.exportProperty(ol.geom.Circle.prototype,"dispatchEvent",ol.geom.Circle.prototype.dispatchEvent),n.exportProperty(ol.geom.Circle.prototype,"getRevision",ol.geom.Circle.prototype.getRevision),n.exportProperty(ol.geom.Circle.prototype,"on",ol.geom.Circle.prototype.on),n.exportProperty(ol.geom.Circle.prototype,"once",ol.geom.Circle.prototype.once),n.exportProperty(ol.geom.Circle.prototype,"un",ol.geom.Circle.prototype.un),n.exportProperty(ol.geom.GeometryCollection.prototype,"getClosestPoint",ol.geom.GeometryCollection.prototype.getClosestPoint),n.exportProperty(ol.geom.GeometryCollection.prototype,"intersectsCoordinate",ol.geom.GeometryCollection.prototype.intersectsCoordinate),n.exportProperty(ol.geom.GeometryCollection.prototype,"getExtent",ol.geom.GeometryCollection.prototype.getExtent),n.exportProperty(ol.geom.GeometryCollection.prototype,"rotate",ol.geom.GeometryCollection.prototype.rotate),n.exportProperty(ol.geom.GeometryCollection.prototype,"scale",ol.geom.GeometryCollection.prototype.scale),n.exportProperty(ol.geom.GeometryCollection.prototype,"simplify",ol.geom.GeometryCollection.prototype.simplify),n.exportProperty(ol.geom.GeometryCollection.prototype,"transform",ol.geom.GeometryCollection.prototype.transform),n.exportProperty(ol.geom.GeometryCollection.prototype,"get",ol.geom.GeometryCollection.prototype.get),n.exportProperty(ol.geom.GeometryCollection.prototype,"getKeys",ol.geom.GeometryCollection.prototype.getKeys),n.exportProperty(ol.geom.GeometryCollection.prototype,"getProperties",ol.geom.GeometryCollection.prototype.getProperties),n.exportProperty(ol.geom.GeometryCollection.prototype,"set",ol.geom.GeometryCollection.prototype.set),n.exportProperty(ol.geom.GeometryCollection.prototype,"setProperties",ol.geom.GeometryCollection.prototype.setProperties),n.exportProperty(ol.geom.GeometryCollection.prototype,"unset",ol.geom.GeometryCollection.prototype.unset),n.exportProperty(ol.geom.GeometryCollection.prototype,"changed",ol.geom.GeometryCollection.prototype.changed),n.exportProperty(ol.geom.GeometryCollection.prototype,"dispatchEvent",ol.geom.GeometryCollection.prototype.dispatchEvent),n.exportProperty(ol.geom.GeometryCollection.prototype,"getRevision",ol.geom.GeometryCollection.prototype.getRevision),n.exportProperty(ol.geom.GeometryCollection.prototype,"on",ol.geom.GeometryCollection.prototype.on),n.exportProperty(ol.geom.GeometryCollection.prototype,"once",ol.geom.GeometryCollection.prototype.once),n.exportProperty(ol.geom.GeometryCollection.prototype,"un",ol.geom.GeometryCollection.prototype.un),n.exportProperty(ol.geom.LinearRing.prototype,"getFirstCoordinate",ol.geom.LinearRing.prototype.getFirstCoordinate),n.exportProperty(ol.geom.LinearRing.prototype,"getLastCoordinate",ol.geom.LinearRing.prototype.getLastCoordinate),n.exportProperty(ol.geom.LinearRing.prototype,"getLayout",ol.geom.LinearRing.prototype.getLayout),n.exportProperty(ol.geom.LinearRing.prototype,"rotate",ol.geom.LinearRing.prototype.rotate),n.exportProperty(ol.geom.LinearRing.prototype,"scale",ol.geom.LinearRing.prototype.scale),n.exportProperty(ol.geom.LinearRing.prototype,"getClosestPoint",ol.geom.LinearRing.prototype.getClosestPoint),n.exportProperty(ol.geom.LinearRing.prototype,"intersectsCoordinate",ol.geom.LinearRing.prototype.intersectsCoordinate),n.exportProperty(ol.geom.LinearRing.prototype,"getExtent",ol.geom.LinearRing.prototype.getExtent),n.exportProperty(ol.geom.LinearRing.prototype,"simplify",ol.geom.LinearRing.prototype.simplify),n.exportProperty(ol.geom.LinearRing.prototype,"transform",ol.geom.LinearRing.prototype.transform),n.exportProperty(ol.geom.LinearRing.prototype,"get",ol.geom.LinearRing.prototype.get),n.exportProperty(ol.geom.LinearRing.prototype,"getKeys",ol.geom.LinearRing.prototype.getKeys),n.exportProperty(ol.geom.LinearRing.prototype,"getProperties",ol.geom.LinearRing.prototype.getProperties),n.exportProperty(ol.geom.LinearRing.prototype,"set",ol.geom.LinearRing.prototype.set),n.exportProperty(ol.geom.LinearRing.prototype,"setProperties",ol.geom.LinearRing.prototype.setProperties),n.exportProperty(ol.geom.LinearRing.prototype,"unset",ol.geom.LinearRing.prototype.unset),n.exportProperty(ol.geom.LinearRing.prototype,"changed",ol.geom.LinearRing.prototype.changed),n.exportProperty(ol.geom.LinearRing.prototype,"dispatchEvent",ol.geom.LinearRing.prototype.dispatchEvent),n.exportProperty(ol.geom.LinearRing.prototype,"getRevision",ol.geom.LinearRing.prototype.getRevision),n.exportProperty(ol.geom.LinearRing.prototype,"on",ol.geom.LinearRing.prototype.on),n.exportProperty(ol.geom.LinearRing.prototype,"once",ol.geom.LinearRing.prototype.once),n.exportProperty(ol.geom.LinearRing.prototype,"un",ol.geom.LinearRing.prototype.un),n.exportProperty(ol.geom.LineString.prototype,"getFirstCoordinate",ol.geom.LineString.prototype.getFirstCoordinate),n.exportProperty(ol.geom.LineString.prototype,"getLastCoordinate",ol.geom.LineString.prototype.getLastCoordinate),n.exportProperty(ol.geom.LineString.prototype,"getLayout",ol.geom.LineString.prototype.getLayout),n.exportProperty(ol.geom.LineString.prototype,"rotate",ol.geom.LineString.prototype.rotate),n.exportProperty(ol.geom.LineString.prototype,"scale",ol.geom.LineString.prototype.scale),n.exportProperty(ol.geom.LineString.prototype,"getClosestPoint",ol.geom.LineString.prototype.getClosestPoint),n.exportProperty(ol.geom.LineString.prototype,"intersectsCoordinate",ol.geom.LineString.prototype.intersectsCoordinate),n.exportProperty(ol.geom.LineString.prototype,"getExtent",ol.geom.LineString.prototype.getExtent),n.exportProperty(ol.geom.LineString.prototype,"simplify",ol.geom.LineString.prototype.simplify),n.exportProperty(ol.geom.LineString.prototype,"transform",ol.geom.LineString.prototype.transform),n.exportProperty(ol.geom.LineString.prototype,"get",ol.geom.LineString.prototype.get),n.exportProperty(ol.geom.LineString.prototype,"getKeys",ol.geom.LineString.prototype.getKeys),n.exportProperty(ol.geom.LineString.prototype,"getProperties",ol.geom.LineString.prototype.getProperties),n.exportProperty(ol.geom.LineString.prototype,"set",ol.geom.LineString.prototype.set),n.exportProperty(ol.geom.LineString.prototype,"setProperties",ol.geom.LineString.prototype.setProperties),n.exportProperty(ol.geom.LineString.prototype,"unset",ol.geom.LineString.prototype.unset),n.exportProperty(ol.geom.LineString.prototype,"changed",ol.geom.LineString.prototype.changed),n.exportProperty(ol.geom.LineString.prototype,"dispatchEvent",ol.geom.LineString.prototype.dispatchEvent),n.exportProperty(ol.geom.LineString.prototype,"getRevision",ol.geom.LineString.prototype.getRevision),n.exportProperty(ol.geom.LineString.prototype,"on",ol.geom.LineString.prototype.on),n.exportProperty(ol.geom.LineString.prototype,"once",ol.geom.LineString.prototype.once),n.exportProperty(ol.geom.LineString.prototype,"un",ol.geom.LineString.prototype.un),n.exportProperty(ol.geom.MultiLineString.prototype,"getFirstCoordinate",ol.geom.MultiLineString.prototype.getFirstCoordinate),n.exportProperty(ol.geom.MultiLineString.prototype,"getLastCoordinate",ol.geom.MultiLineString.prototype.getLastCoordinate),n.exportProperty(ol.geom.MultiLineString.prototype,"getLayout",ol.geom.MultiLineString.prototype.getLayout),n.exportProperty(ol.geom.MultiLineString.prototype,"rotate",ol.geom.MultiLineString.prototype.rotate),n.exportProperty(ol.geom.MultiLineString.prototype,"scale",ol.geom.MultiLineString.prototype.scale),n.exportProperty(ol.geom.MultiLineString.prototype,"getClosestPoint",ol.geom.MultiLineString.prototype.getClosestPoint),n.exportProperty(ol.geom.MultiLineString.prototype,"intersectsCoordinate",ol.geom.MultiLineString.prototype.intersectsCoordinate),n.exportProperty(ol.geom.MultiLineString.prototype,"getExtent",ol.geom.MultiLineString.prototype.getExtent),n.exportProperty(ol.geom.MultiLineString.prototype,"simplify",ol.geom.MultiLineString.prototype.simplify),n.exportProperty(ol.geom.MultiLineString.prototype,"transform",ol.geom.MultiLineString.prototype.transform),n.exportProperty(ol.geom.MultiLineString.prototype,"get",ol.geom.MultiLineString.prototype.get),n.exportProperty(ol.geom.MultiLineString.prototype,"getKeys",ol.geom.MultiLineString.prototype.getKeys),n.exportProperty(ol.geom.MultiLineString.prototype,"getProperties",ol.geom.MultiLineString.prototype.getProperties),n.exportProperty(ol.geom.MultiLineString.prototype,"set",ol.geom.MultiLineString.prototype.set),n.exportProperty(ol.geom.MultiLineString.prototype,"setProperties",ol.geom.MultiLineString.prototype.setProperties),n.exportProperty(ol.geom.MultiLineString.prototype,"unset",ol.geom.MultiLineString.prototype.unset),n.exportProperty(ol.geom.MultiLineString.prototype,"changed",ol.geom.MultiLineString.prototype.changed),n.exportProperty(ol.geom.MultiLineString.prototype,"dispatchEvent",ol.geom.MultiLineString.prototype.dispatchEvent),n.exportProperty(ol.geom.MultiLineString.prototype,"getRevision",ol.geom.MultiLineString.prototype.getRevision),n.exportProperty(ol.geom.MultiLineString.prototype,"on",ol.geom.MultiLineString.prototype.on),n.exportProperty(ol.geom.MultiLineString.prototype,"once",ol.geom.MultiLineString.prototype.once),n.exportProperty(ol.geom.MultiLineString.prototype,"un",ol.geom.MultiLineString.prototype.un),n.exportProperty(ol.geom.MultiPoint.prototype,"getFirstCoordinate",ol.geom.MultiPoint.prototype.getFirstCoordinate),n.exportProperty(ol.geom.MultiPoint.prototype,"getLastCoordinate",ol.geom.MultiPoint.prototype.getLastCoordinate),n.exportProperty(ol.geom.MultiPoint.prototype,"getLayout",ol.geom.MultiPoint.prototype.getLayout),n.exportProperty(ol.geom.MultiPoint.prototype,"rotate",ol.geom.MultiPoint.prototype.rotate),n.exportProperty(ol.geom.MultiPoint.prototype,"scale",ol.geom.MultiPoint.prototype.scale),n.exportProperty(ol.geom.MultiPoint.prototype,"getClosestPoint",ol.geom.MultiPoint.prototype.getClosestPoint),n.exportProperty(ol.geom.MultiPoint.prototype,"intersectsCoordinate",ol.geom.MultiPoint.prototype.intersectsCoordinate),n.exportProperty(ol.geom.MultiPoint.prototype,"getExtent",ol.geom.MultiPoint.prototype.getExtent),n.exportProperty(ol.geom.MultiPoint.prototype,"simplify",ol.geom.MultiPoint.prototype.simplify),n.exportProperty(ol.geom.MultiPoint.prototype,"transform",ol.geom.MultiPoint.prototype.transform),n.exportProperty(ol.geom.MultiPoint.prototype,"get",ol.geom.MultiPoint.prototype.get),n.exportProperty(ol.geom.MultiPoint.prototype,"getKeys",ol.geom.MultiPoint.prototype.getKeys),n.exportProperty(ol.geom.MultiPoint.prototype,"getProperties",ol.geom.MultiPoint.prototype.getProperties),n.exportProperty(ol.geom.MultiPoint.prototype,"set",ol.geom.MultiPoint.prototype.set),n.exportProperty(ol.geom.MultiPoint.prototype,"setProperties",ol.geom.MultiPoint.prototype.setProperties),n.exportProperty(ol.geom.MultiPoint.prototype,"unset",ol.geom.MultiPoint.prototype.unset),n.exportProperty(ol.geom.MultiPoint.prototype,"changed",ol.geom.MultiPoint.prototype.changed),n.exportProperty(ol.geom.MultiPoint.prototype,"dispatchEvent",ol.geom.MultiPoint.prototype.dispatchEvent),n.exportProperty(ol.geom.MultiPoint.prototype,"getRevision",ol.geom.MultiPoint.prototype.getRevision),n.exportProperty(ol.geom.MultiPoint.prototype,"on",ol.geom.MultiPoint.prototype.on),n.exportProperty(ol.geom.MultiPoint.prototype,"once",ol.geom.MultiPoint.prototype.once),n.exportProperty(ol.geom.MultiPoint.prototype,"un",ol.geom.MultiPoint.prototype.un),n.exportProperty(ol.geom.MultiPolygon.prototype,"getFirstCoordinate",ol.geom.MultiPolygon.prototype.getFirstCoordinate),n.exportProperty(ol.geom.MultiPolygon.prototype,"getLastCoordinate",ol.geom.MultiPolygon.prototype.getLastCoordinate),n.exportProperty(ol.geom.MultiPolygon.prototype,"getLayout",ol.geom.MultiPolygon.prototype.getLayout),n.exportProperty(ol.geom.MultiPolygon.prototype,"rotate",ol.geom.MultiPolygon.prototype.rotate),n.exportProperty(ol.geom.MultiPolygon.prototype,"scale",ol.geom.MultiPolygon.prototype.scale),n.exportProperty(ol.geom.MultiPolygon.prototype,"getClosestPoint",ol.geom.MultiPolygon.prototype.getClosestPoint),n.exportProperty(ol.geom.MultiPolygon.prototype,"intersectsCoordinate",ol.geom.MultiPolygon.prototype.intersectsCoordinate),n.exportProperty(ol.geom.MultiPolygon.prototype,"getExtent",ol.geom.MultiPolygon.prototype.getExtent),n.exportProperty(ol.geom.MultiPolygon.prototype,"simplify",ol.geom.MultiPolygon.prototype.simplify),n.exportProperty(ol.geom.MultiPolygon.prototype,"transform",ol.geom.MultiPolygon.prototype.transform),n.exportProperty(ol.geom.MultiPolygon.prototype,"get",ol.geom.MultiPolygon.prototype.get),n.exportProperty(ol.geom.MultiPolygon.prototype,"getKeys",ol.geom.MultiPolygon.prototype.getKeys),n.exportProperty(ol.geom.MultiPolygon.prototype,"getProperties",ol.geom.MultiPolygon.prototype.getProperties),n.exportProperty(ol.geom.MultiPolygon.prototype,"set",ol.geom.MultiPolygon.prototype.set),n.exportProperty(ol.geom.MultiPolygon.prototype,"setProperties",ol.geom.MultiPolygon.prototype.setProperties),n.exportProperty(ol.geom.MultiPolygon.prototype,"unset",ol.geom.MultiPolygon.prototype.unset),n.exportProperty(ol.geom.MultiPolygon.prototype,"changed",ol.geom.MultiPolygon.prototype.changed),n.exportProperty(ol.geom.MultiPolygon.prototype,"dispatchEvent",ol.geom.MultiPolygon.prototype.dispatchEvent),n.exportProperty(ol.geom.MultiPolygon.prototype,"getRevision",ol.geom.MultiPolygon.prototype.getRevision),n.exportProperty(ol.geom.MultiPolygon.prototype,"on",ol.geom.MultiPolygon.prototype.on),n.exportProperty(ol.geom.MultiPolygon.prototype,"once",ol.geom.MultiPolygon.prototype.once),n.exportProperty(ol.geom.MultiPolygon.prototype,"un",ol.geom.MultiPolygon.prototype.un),n.exportProperty(ol.geom.Point.prototype,"getFirstCoordinate",ol.geom.Point.prototype.getFirstCoordinate),n.exportProperty(ol.geom.Point.prototype,"getLastCoordinate",ol.geom.Point.prototype.getLastCoordinate),n.exportProperty(ol.geom.Point.prototype,"getLayout",ol.geom.Point.prototype.getLayout),n.exportProperty(ol.geom.Point.prototype,"rotate",ol.geom.Point.prototype.rotate),n.exportProperty(ol.geom.Point.prototype,"scale",ol.geom.Point.prototype.scale),n.exportProperty(ol.geom.Point.prototype,"getClosestPoint",ol.geom.Point.prototype.getClosestPoint),n.exportProperty(ol.geom.Point.prototype,"intersectsCoordinate",ol.geom.Point.prototype.intersectsCoordinate),n.exportProperty(ol.geom.Point.prototype,"getExtent",ol.geom.Point.prototype.getExtent),n.exportProperty(ol.geom.Point.prototype,"simplify",ol.geom.Point.prototype.simplify),n.exportProperty(ol.geom.Point.prototype,"transform",ol.geom.Point.prototype.transform),n.exportProperty(ol.geom.Point.prototype,"get",ol.geom.Point.prototype.get),n.exportProperty(ol.geom.Point.prototype,"getKeys",ol.geom.Point.prototype.getKeys),n.exportProperty(ol.geom.Point.prototype,"getProperties",ol.geom.Point.prototype.getProperties),n.exportProperty(ol.geom.Point.prototype,"set",ol.geom.Point.prototype.set),n.exportProperty(ol.geom.Point.prototype,"setProperties",ol.geom.Point.prototype.setProperties),n.exportProperty(ol.geom.Point.prototype,"unset",ol.geom.Point.prototype.unset),n.exportProperty(ol.geom.Point.prototype,"changed",ol.geom.Point.prototype.changed),n.exportProperty(ol.geom.Point.prototype,"dispatchEvent",ol.geom.Point.prototype.dispatchEvent),n.exportProperty(ol.geom.Point.prototype,"getRevision",ol.geom.Point.prototype.getRevision),n.exportProperty(ol.geom.Point.prototype,"on",ol.geom.Point.prototype.on),n.exportProperty(ol.geom.Point.prototype,"once",ol.geom.Point.prototype.once),n.exportProperty(ol.geom.Point.prototype,"un",ol.geom.Point.prototype.un),n.exportProperty(ol.geom.Polygon.prototype,"getFirstCoordinate",ol.geom.Polygon.prototype.getFirstCoordinate),n.exportProperty(ol.geom.Polygon.prototype,"getLastCoordinate",ol.geom.Polygon.prototype.getLastCoordinate),n.exportProperty(ol.geom.Polygon.prototype,"getLayout",ol.geom.Polygon.prototype.getLayout),n.exportProperty(ol.geom.Polygon.prototype,"rotate",ol.geom.Polygon.prototype.rotate),n.exportProperty(ol.geom.Polygon.prototype,"scale",ol.geom.Polygon.prototype.scale),n.exportProperty(ol.geom.Polygon.prototype,"getClosestPoint",ol.geom.Polygon.prototype.getClosestPoint),n.exportProperty(ol.geom.Polygon.prototype,"intersectsCoordinate",ol.geom.Polygon.prototype.intersectsCoordinate),n.exportProperty(ol.geom.Polygon.prototype,"getExtent",ol.geom.Polygon.prototype.getExtent),n.exportProperty(ol.geom.Polygon.prototype,"simplify",ol.geom.Polygon.prototype.simplify),n.exportProperty(ol.geom.Polygon.prototype,"transform",ol.geom.Polygon.prototype.transform),n.exportProperty(ol.geom.Polygon.prototype,"get",ol.geom.Polygon.prototype.get),n.exportProperty(ol.geom.Polygon.prototype,"getKeys",ol.geom.Polygon.prototype.getKeys),n.exportProperty(ol.geom.Polygon.prototype,"getProperties",ol.geom.Polygon.prototype.getProperties),n.exportProperty(ol.geom.Polygon.prototype,"set",ol.geom.Polygon.prototype.set),n.exportProperty(ol.geom.Polygon.prototype,"setProperties",ol.geom.Polygon.prototype.setProperties),n.exportProperty(ol.geom.Polygon.prototype,"unset",ol.geom.Polygon.prototype.unset),n.exportProperty(ol.geom.Polygon.prototype,"changed",ol.geom.Polygon.prototype.changed),n.exportProperty(ol.geom.Polygon.prototype,"dispatchEvent",ol.geom.Polygon.prototype.dispatchEvent),n.exportProperty(ol.geom.Polygon.prototype,"getRevision",ol.geom.Polygon.prototype.getRevision),n.exportProperty(ol.geom.Polygon.prototype,"on",ol.geom.Polygon.prototype.on),n.exportProperty(ol.geom.Polygon.prototype,"once",ol.geom.Polygon.prototype.once),n.exportProperty(ol.geom.Polygon.prototype,"un",ol.geom.Polygon.prototype.un),n.exportProperty(ol.format.GML.prototype,"readFeatures",ol.format.GML.prototype.readFeatures),n.exportProperty(ol.format.GML2.prototype,"readFeatures",ol.format.GML2.prototype.readFeatures),n.exportProperty(ol.format.GML3.prototype,"readFeatures",ol.format.GML3.prototype.readFeatures),n.exportProperty(ol.control.Control.prototype,"get",ol.control.Control.prototype.get),n.exportProperty(ol.control.Control.prototype,"getKeys",ol.control.Control.prototype.getKeys),n.exportProperty(ol.control.Control.prototype,"getProperties",ol.control.Control.prototype.getProperties),n.exportProperty(ol.control.Control.prototype,"set",ol.control.Control.prototype.set),n.exportProperty(ol.control.Control.prototype,"setProperties",ol.control.Control.prototype.setProperties),n.exportProperty(ol.control.Control.prototype,"unset",ol.control.Control.prototype.unset),n.exportProperty(ol.control.Control.prototype,"changed",ol.control.Control.prototype.changed),n.exportProperty(ol.control.Control.prototype,"dispatchEvent",ol.control.Control.prototype.dispatchEvent),n.exportProperty(ol.control.Control.prototype,"getRevision",ol.control.Control.prototype.getRevision),n.exportProperty(ol.control.Control.prototype,"on",ol.control.Control.prototype.on),n.exportProperty(ol.control.Control.prototype,"once",ol.control.Control.prototype.once),n.exportProperty(ol.control.Control.prototype,"un",ol.control.Control.prototype.un),n.exportProperty(ol.control.Attribution.prototype,"getMap",ol.control.Attribution.prototype.getMap),n.exportProperty(ol.control.Attribution.prototype,"setMap",ol.control.Attribution.prototype.setMap),n.exportProperty(ol.control.Attribution.prototype,"setTarget",ol.control.Attribution.prototype.setTarget),n.exportProperty(ol.control.Attribution.prototype,"get",ol.control.Attribution.prototype.get),n.exportProperty(ol.control.Attribution.prototype,"getKeys",ol.control.Attribution.prototype.getKeys),n.exportProperty(ol.control.Attribution.prototype,"getProperties",ol.control.Attribution.prototype.getProperties),n.exportProperty(ol.control.Attribution.prototype,"set",ol.control.Attribution.prototype.set),n.exportProperty(ol.control.Attribution.prototype,"setProperties",ol.control.Attribution.prototype.setProperties),n.exportProperty(ol.control.Attribution.prototype,"unset",ol.control.Attribution.prototype.unset),n.exportProperty(ol.control.Attribution.prototype,"changed",ol.control.Attribution.prototype.changed),n.exportProperty(ol.control.Attribution.prototype,"dispatchEvent",ol.control.Attribution.prototype.dispatchEvent),n.exportProperty(ol.control.Attribution.prototype,"getRevision",ol.control.Attribution.prototype.getRevision),n.exportProperty(ol.control.Attribution.prototype,"on",ol.control.Attribution.prototype.on),n.exportProperty(ol.control.Attribution.prototype,"once",ol.control.Attribution.prototype.once),n.exportProperty(ol.control.Attribution.prototype,"un",ol.control.Attribution.prototype.un),n.exportProperty(ol.control.FullScreen.prototype,"getMap",ol.control.FullScreen.prototype.getMap),n.exportProperty(ol.control.FullScreen.prototype,"setMap",ol.control.FullScreen.prototype.setMap),n.exportProperty(ol.control.FullScreen.prototype,"setTarget",ol.control.FullScreen.prototype.setTarget),n.exportProperty(ol.control.FullScreen.prototype,"get",ol.control.FullScreen.prototype.get),n.exportProperty(ol.control.FullScreen.prototype,"getKeys",ol.control.FullScreen.prototype.getKeys),n.exportProperty(ol.control.FullScreen.prototype,"getProperties",ol.control.FullScreen.prototype.getProperties),n.exportProperty(ol.control.FullScreen.prototype,"set",ol.control.FullScreen.prototype.set),n.exportProperty(ol.control.FullScreen.prototype,"setProperties",ol.control.FullScreen.prototype.setProperties),n.exportProperty(ol.control.FullScreen.prototype,"unset",ol.control.FullScreen.prototype.unset),n.exportProperty(ol.control.FullScreen.prototype,"changed",ol.control.FullScreen.prototype.changed),n.exportProperty(ol.control.FullScreen.prototype,"dispatchEvent",ol.control.FullScreen.prototype.dispatchEvent),n.exportProperty(ol.control.FullScreen.prototype,"getRevision",ol.control.FullScreen.prototype.getRevision),n.exportProperty(ol.control.FullScreen.prototype,"on",ol.control.FullScreen.prototype.on),n.exportProperty(ol.control.FullScreen.prototype,"once",ol.control.FullScreen.prototype.once),n.exportProperty(ol.control.FullScreen.prototype,"un",ol.control.FullScreen.prototype.un),n.exportProperty(ol.control.MousePosition.prototype,"getMap",ol.control.MousePosition.prototype.getMap),n.exportProperty(ol.control.MousePosition.prototype,"setMap",ol.control.MousePosition.prototype.setMap),n.exportProperty(ol.control.MousePosition.prototype,"setTarget",ol.control.MousePosition.prototype.setTarget),n.exportProperty(ol.control.MousePosition.prototype,"get",ol.control.MousePosition.prototype.get),n.exportProperty(ol.control.MousePosition.prototype,"getKeys",ol.control.MousePosition.prototype.getKeys),n.exportProperty(ol.control.MousePosition.prototype,"getProperties",ol.control.MousePosition.prototype.getProperties),n.exportProperty(ol.control.MousePosition.prototype,"set",ol.control.MousePosition.prototype.set),n.exportProperty(ol.control.MousePosition.prototype,"setProperties",ol.control.MousePosition.prototype.setProperties),n.exportProperty(ol.control.MousePosition.prototype,"unset",ol.control.MousePosition.prototype.unset),n.exportProperty(ol.control.MousePosition.prototype,"changed",ol.control.MousePosition.prototype.changed),n.exportProperty(ol.control.MousePosition.prototype,"dispatchEvent",ol.control.MousePosition.prototype.dispatchEvent),n.exportProperty(ol.control.MousePosition.prototype,"getRevision",ol.control.MousePosition.prototype.getRevision),n.exportProperty(ol.control.MousePosition.prototype,"on",ol.control.MousePosition.prototype.on),n.exportProperty(ol.control.MousePosition.prototype,"once",ol.control.MousePosition.prototype.once),n.exportProperty(ol.control.MousePosition.prototype,"un",ol.control.MousePosition.prototype.un),n.exportProperty(ol.control.OverviewMap.prototype,"getMap",ol.control.OverviewMap.prototype.getMap),n.exportProperty(ol.control.OverviewMap.prototype,"setMap",ol.control.OverviewMap.prototype.setMap),n.exportProperty(ol.control.OverviewMap.prototype,"setTarget",ol.control.OverviewMap.prototype.setTarget),n.exportProperty(ol.control.OverviewMap.prototype,"get",ol.control.OverviewMap.prototype.get),n.exportProperty(ol.control.OverviewMap.prototype,"getKeys",ol.control.OverviewMap.prototype.getKeys),n.exportProperty(ol.control.OverviewMap.prototype,"getProperties",ol.control.OverviewMap.prototype.getProperties),n.exportProperty(ol.control.OverviewMap.prototype,"set",ol.control.OverviewMap.prototype.set),n.exportProperty(ol.control.OverviewMap.prototype,"setProperties",ol.control.OverviewMap.prototype.setProperties),n.exportProperty(ol.control.OverviewMap.prototype,"unset",ol.control.OverviewMap.prototype.unset),n.exportProperty(ol.control.OverviewMap.prototype,"changed",ol.control.OverviewMap.prototype.changed),n.exportProperty(ol.control.OverviewMap.prototype,"dispatchEvent",ol.control.OverviewMap.prototype.dispatchEvent),n.exportProperty(ol.control.OverviewMap.prototype,"getRevision",ol.control.OverviewMap.prototype.getRevision),n.exportProperty(ol.control.OverviewMap.prototype,"on",ol.control.OverviewMap.prototype.on),n.exportProperty(ol.control.OverviewMap.prototype,"once",ol.control.OverviewMap.prototype.once),n.exportProperty(ol.control.OverviewMap.prototype,"un",ol.control.OverviewMap.prototype.un),n.exportProperty(ol.control.Rotate.prototype,"getMap",ol.control.Rotate.prototype.getMap),n.exportProperty(ol.control.Rotate.prototype,"setMap",ol.control.Rotate.prototype.setMap),n.exportProperty(ol.control.Rotate.prototype,"setTarget",ol.control.Rotate.prototype.setTarget),n.exportProperty(ol.control.Rotate.prototype,"get",ol.control.Rotate.prototype.get),n.exportProperty(ol.control.Rotate.prototype,"getKeys",ol.control.Rotate.prototype.getKeys),n.exportProperty(ol.control.Rotate.prototype,"getProperties",ol.control.Rotate.prototype.getProperties),n.exportProperty(ol.control.Rotate.prototype,"set",ol.control.Rotate.prototype.set),n.exportProperty(ol.control.Rotate.prototype,"setProperties",ol.control.Rotate.prototype.setProperties),n.exportProperty(ol.control.Rotate.prototype,"unset",ol.control.Rotate.prototype.unset),n.exportProperty(ol.control.Rotate.prototype,"changed",ol.control.Rotate.prototype.changed),n.exportProperty(ol.control.Rotate.prototype,"dispatchEvent",ol.control.Rotate.prototype.dispatchEvent),n.exportProperty(ol.control.Rotate.prototype,"getRevision",ol.control.Rotate.prototype.getRevision),n.exportProperty(ol.control.Rotate.prototype,"on",ol.control.Rotate.prototype.on),n.exportProperty(ol.control.Rotate.prototype,"once",ol.control.Rotate.prototype.once),n.exportProperty(ol.control.Rotate.prototype,"un",ol.control.Rotate.prototype.un),n.exportProperty(ol.control.ScaleLine.prototype,"getMap",ol.control.ScaleLine.prototype.getMap),n.exportProperty(ol.control.ScaleLine.prototype,"setMap",ol.control.ScaleLine.prototype.setMap),n.exportProperty(ol.control.ScaleLine.prototype,"setTarget",ol.control.ScaleLine.prototype.setTarget),n.exportProperty(ol.control.ScaleLine.prototype,"get",ol.control.ScaleLine.prototype.get),n.exportProperty(ol.control.ScaleLine.prototype,"getKeys",ol.control.ScaleLine.prototype.getKeys),n.exportProperty(ol.control.ScaleLine.prototype,"getProperties",ol.control.ScaleLine.prototype.getProperties),n.exportProperty(ol.control.ScaleLine.prototype,"set",ol.control.ScaleLine.prototype.set),n.exportProperty(ol.control.ScaleLine.prototype,"setProperties",ol.control.ScaleLine.prototype.setProperties),n.exportProperty(ol.control.ScaleLine.prototype,"unset",ol.control.ScaleLine.prototype.unset),n.exportProperty(ol.control.ScaleLine.prototype,"changed",ol.control.ScaleLine.prototype.changed),n.exportProperty(ol.control.ScaleLine.prototype,"dispatchEvent",ol.control.ScaleLine.prototype.dispatchEvent),n.exportProperty(ol.control.ScaleLine.prototype,"getRevision",ol.control.ScaleLine.prototype.getRevision),n.exportProperty(ol.control.ScaleLine.prototype,"on",ol.control.ScaleLine.prototype.on),n.exportProperty(ol.control.ScaleLine.prototype,"once",ol.control.ScaleLine.prototype.once),n.exportProperty(ol.control.ScaleLine.prototype,"un",ol.control.ScaleLine.prototype.un),n.exportProperty(ol.control.Zoom.prototype,"getMap",ol.control.Zoom.prototype.getMap),n.exportProperty(ol.control.Zoom.prototype,"setMap",ol.control.Zoom.prototype.setMap),n.exportProperty(ol.control.Zoom.prototype,"setTarget",ol.control.Zoom.prototype.setTarget),n.exportProperty(ol.control.Zoom.prototype,"get",ol.control.Zoom.prototype.get),n.exportProperty(ol.control.Zoom.prototype,"getKeys",ol.control.Zoom.prototype.getKeys),n.exportProperty(ol.control.Zoom.prototype,"getProperties",ol.control.Zoom.prototype.getProperties),n.exportProperty(ol.control.Zoom.prototype,"set",ol.control.Zoom.prototype.set),n.exportProperty(ol.control.Zoom.prototype,"setProperties",ol.control.Zoom.prototype.setProperties),n.exportProperty(ol.control.Zoom.prototype,"unset",ol.control.Zoom.prototype.unset),n.exportProperty(ol.control.Zoom.prototype,"changed",ol.control.Zoom.prototype.changed),n.exportProperty(ol.control.Zoom.prototype,"dispatchEvent",ol.control.Zoom.prototype.dispatchEvent),n.exportProperty(ol.control.Zoom.prototype,"getRevision",ol.control.Zoom.prototype.getRevision),n.exportProperty(ol.control.Zoom.prototype,"on",ol.control.Zoom.prototype.on),n.exportProperty(ol.control.Zoom.prototype,"once",ol.control.Zoom.prototype.once),n.exportProperty(ol.control.Zoom.prototype,"un",ol.control.Zoom.prototype.un),n.exportProperty(ol.control.ZoomSlider.prototype,"getMap",ol.control.ZoomSlider.prototype.getMap),n.exportProperty(ol.control.ZoomSlider.prototype,"setMap",ol.control.ZoomSlider.prototype.setMap),n.exportProperty(ol.control.ZoomSlider.prototype,"setTarget",ol.control.ZoomSlider.prototype.setTarget),n.exportProperty(ol.control.ZoomSlider.prototype,"get",ol.control.ZoomSlider.prototype.get),n.exportProperty(ol.control.ZoomSlider.prototype,"getKeys",ol.control.ZoomSlider.prototype.getKeys),n.exportProperty(ol.control.ZoomSlider.prototype,"getProperties",ol.control.ZoomSlider.prototype.getProperties),n.exportProperty(ol.control.ZoomSlider.prototype,"set",ol.control.ZoomSlider.prototype.set),n.exportProperty(ol.control.ZoomSlider.prototype,"setProperties",ol.control.ZoomSlider.prototype.setProperties),n.exportProperty(ol.control.ZoomSlider.prototype,"unset",ol.control.ZoomSlider.prototype.unset),n.exportProperty(ol.control.ZoomSlider.prototype,"changed",ol.control.ZoomSlider.prototype.changed),n.exportProperty(ol.control.ZoomSlider.prototype,"dispatchEvent",ol.control.ZoomSlider.prototype.dispatchEvent),n.exportProperty(ol.control.ZoomSlider.prototype,"getRevision",ol.control.ZoomSlider.prototype.getRevision),n.exportProperty(ol.control.ZoomSlider.prototype,"on",ol.control.ZoomSlider.prototype.on),n.exportProperty(ol.control.ZoomSlider.prototype,"once",ol.control.ZoomSlider.prototype.once),n.exportProperty(ol.control.ZoomSlider.prototype,"un",ol.control.ZoomSlider.prototype.un),n.exportProperty(ol.control.ZoomToExtent.prototype,"getMap",ol.control.ZoomToExtent.prototype.getMap),n.exportProperty(ol.control.ZoomToExtent.prototype,"setMap",ol.control.ZoomToExtent.prototype.setMap),n.exportProperty(ol.control.ZoomToExtent.prototype,"setTarget",ol.control.ZoomToExtent.prototype.setTarget),n.exportProperty(ol.control.ZoomToExtent.prototype,"get",ol.control.ZoomToExtent.prototype.get),n.exportProperty(ol.control.ZoomToExtent.prototype,"getKeys",ol.control.ZoomToExtent.prototype.getKeys),n.exportProperty(ol.control.ZoomToExtent.prototype,"getProperties",ol.control.ZoomToExtent.prototype.getProperties),n.exportProperty(ol.control.ZoomToExtent.prototype,"set",ol.control.ZoomToExtent.prototype.set),n.exportProperty(ol.control.ZoomToExtent.prototype,"setProperties",ol.control.ZoomToExtent.prototype.setProperties),n.exportProperty(ol.control.ZoomToExtent.prototype,"unset",ol.control.ZoomToExtent.prototype.unset),n.exportProperty(ol.control.ZoomToExtent.prototype,"changed",ol.control.ZoomToExtent.prototype.changed),n.exportProperty(ol.control.ZoomToExtent.prototype,"dispatchEvent",ol.control.ZoomToExtent.prototype.dispatchEvent),n.exportProperty(ol.control.ZoomToExtent.prototype,"getRevision",ol.control.ZoomToExtent.prototype.getRevision),n.exportProperty(ol.control.ZoomToExtent.prototype,"on",ol.control.ZoomToExtent.prototype.on),n.exportProperty(ol.control.ZoomToExtent.prototype,"once",ol.control.ZoomToExtent.prototype.once),n.exportProperty(ol.control.ZoomToExtent.prototype,"un",ol.control.ZoomToExtent.prototype.un),ol.VERSION="v4.6.5",t.ol=ol,t.ol});var RiparianManagementSpatial=function(n){function t(r){if(i[r])return i[r].exports;var u=i[r]={i:r,l:!1,exports:{}};return n[r].call(u.exports,u,u.exports,t),u.l=!0,u.exports}var i={};return t.m=n,t.c=i,t.d=function(n,i,r){t.o(n,i)||Object.defineProperty(n,i,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,i){var r,u;if((1&i&&(n=t(n)),8&i)||4&i&&"object"==typeof n&&n&&n.__esModule)return n;if(r=Object.create(null),t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&i&&"string"!=typeof n)for(u in n)t.d(r,u,function(t){return n[t]}.bind(null,u));return r},t.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(i,"a",i),i},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=16)}([function(n,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function n(){this._geoJSON={}}return Object.defineProperty(n.prototype,"GeoJSON",{get:function(){return this._geoJSON},set:function(n){this._geoJSON=n},enumerable:!0,configurable:!0}),n.prototype.Add=function(n){0===Object.getOwnPropertyNames(this._geoJSON).length?this._geoJSON=n:(n.features[0].id,this._geoJSON.features.push(n.features[0]))},n.prototype.Remove=function(n){for(var i=n.features[0].id,r=this._geoJSON.features.length,t=0;t<r;++t)if(this._geoJSON.features[t].id===i)break;return t<r&&this._geoJSON.features.splice(t,1),i},n.prototype.Clear=function(){this._geoJSON={}},n.prototype.GetExtent=function(){var c,i,l,r,a,u,v,n,t;if(this.IsEmpty())return null;for(var f=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,h=0;h<this._geoJSON.features.length;++h)for(c=this._geoJSON.features[h].geometry.coordinates,i=0;i<c.length;++i)for(l=c[i],r=0;r<l.length;++r)for(a=l[r],u=0;u<a.length;++u)v=a[u],n=v[0],n<f&&(f=n),n>e&&(e=n),t=v[1],t<o&&(o=t),t>s&&(s=t);return[f,o,e,s]},n.prototype.IsEmpty=function(){return 0===Object.getOwnPropertyNames(this._geoJSON).length||0==this._geoJSON.features.length},n.prototype.Contains=function(n){if(this.IsEmpty())return!1;for(var r=n.features[0].id,i=this._geoJSON.features.length,t=0;t<i;++t)if(this._geoJSON.features[t].id===r)break;return t<i},n}();t.GeoJSONFeatureCollection=i},function(n,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function n(){}return n.getCrossHairCursorStyle=function(n){var t={color:n},i={fill:new ol.style.Fill(t),points:4,radius1:10,radius2:1};return new ol.style.RegularShape(i)},n.getCircleCursorStyle=function(n,t,i){var r={color:n,width:1},u=(new ol.style.Stroke(r),{color:t}),f=new ol.style.Fill(u);return new ol.style.Circle({fill:f,stroke:new ol.style.Stroke(r),radius:i})},n}();t.Cursor=i},function(n,t){"use strict";var i,u=this&&this.__extends||(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},function(n,t){function r(){this.constructor=n}i(n,t);n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),r;Object.defineProperty(t,"__esModule",{value:!0});r=function(n){function t(t,i,r,u,f,e,o){var s=n.call(this,{})||this;return s.toggleButton=function(){null!=s.toolbar?s.toolbar.Push(s):(s.isActive=!s.isActive,s.button.className=s.isActive?s.activeCSSclass:s.inactiveCSSclass);s._interactiveMap.interactionManager.PushButton(s.interactionName)},s._interactiveMap=t,s.interactionName=i,s.activeCSSclass=u,s.inactiveCSSclass=f,s.isActive=!1,s.buttonPixelWidth=34,s.buttonPixelHeight=34,s.button=document.createElement("button"),s.button.className=s.inactiveCSSclass,s.button.title=r,s.button.addEventListener("click",s.toggleButton,!1),s.setupActiveState=e,s.setupInactiveState=o,s}return u(t,n),t.prototype.Push=function(){null!=this.toolbar&&this.toolbar.Push(this);this._interactiveMap.interactionManager.PushButton(this.interactionName)},t.prototype.SetState=function(n){null!=this.toolbar&&this.toolbar.SetState(this,n);this._interactiveMap.interactionManager.SetButtonState(this.interactionName,n)},t.prototype.Deactivate=function(){this.isActive=!1;this.button.className=this.inactiveCSSclass;this._interactiveMap.ReleaseSelections();null!==this.setupInactiveState&&this.setupInactiveState()},t.prototype.Activate=function(){this.isActive=!0;this.button.className=this.activeCSSclass;null!==this.setupActiveState&&this.setupActiveState()},t.prototype.defineSetupActivity=function(n){this.setupActiveState=n},t.prototype.defineLeavingActivity=function(n){this.setupInactiveState=n},t.prototype.AttachToToolbar=function(n){this.toolbar=n},t}(ol.control.Control);t.PushButton=r},function(n,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(n){n[n.pushButton=1]="pushButton";n[n.toggle=2]="toggle";n[n.alwaysPresent=3]="alwaysPresent"}(t.InteractionType||(t.InteractionType={}));var i=function(){return function(n,t,i){this.name=n;this.interaction=t;this.type=i}}();t.NamedInteraction=i},function(n,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function n(){this._drawingSources={};this._drawingLayers={}}return Object.defineProperty(n.prototype,"activeSource",{get:function(){return this._drawingSources[this._activeLayer]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"activeLayer",{get:function(){return this._drawingLayers[this._activeLayer]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"activeLayerName",{get:function(){return this._activeLayer},enumerable:!0,configurable:!0}),n.prototype.addLayer=function(n,t,i){this._activeLayer=n;this._drawingSources[n]=t;this._drawingLayers[n]=i},n.prototype.addMarkerLayer=function(n,t,i){this._drawingSources[n]=t;this._drawingLayers[n]=i},n.prototype.setActiveLayer=function(n){this._activeLayer=n},n.prototype.getLayerSource=function(n){return this._drawingSources[n]},n.prototype.getLayer=function(n){return this._drawingLayers[n]},n}();t.DrawingLayers=i},function(n,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u=i(4),r=i(1),f=function(){function n(n){var t=this;this.getFeaturesGeoJSONGeometry=function(n){return t._GeoJSONformat.writeFeature(n,t._GeoJSONWriteFeatureOptions)};this.getVerticesAsMultipoint=function(n){var i,t=n.getGeometry(),r;return t instanceof ol.geom.Polygon?i=t.getCoordinates()[0]:t instanceof ol.geom.LineString?i=t.getCoordinates():t instanceof ol.geom.Point?(r=t,(i=[]).push(r.getCoordinates())):i=t.getCoordinates(),new ol.geom.MultiPoint(i,"XY")};this.imageRepaintListener=function(n){var i=t.WriteScaletoCanvas(n).toDataURL("image/jpeg");null!=t._mapImageListener&&t._mapImageListener(i)};this._map=n;this._drawingLayers=new u.DrawingLayers}return n.prototype.addScaleLine=function(){var n=new ol.control.ScaleLine;this._scaleLine=n;this._map.addControl(this._scaleLine)},n.prototype.addDrawingLayer=function(n,t){var f={projection:t},i=new ol.source.Vector(f),r={color:"#ffcc33",width:2},u=new ol.layer.Vector({source:i,style:new ol.style.Style({fill:new ol.style.Fill({color:"rgba(255, 255, 255, 0.2)"}),stroke:new ol.style.Stroke(r),image:new ol.style.Circle({fill:new ol.style.Fill({color:"#ffcc33",width:2}),stroke:new ol.style.Stroke(r),radius:5})})});this._drawingLayers.addLayer(n,i,u);this._map.addLayer(u)},n.prototype.defineLineDrawingStyle=function(n,t,i,u){var f="crossHair"===n?r.Cursor.getCrossHairCursorStyle(t):r.Cursor.getCircleCursorStyle(t,t,2),e={color:i,width:u},o=new ol.style.Stroke(e),s={color:i},h=new ol.style.Fill(s);return new ol.style.Style({image:f,stroke:o,fill:h})},n.prototype.definePolygonDrawingStyle=function(n,t,i,u,f){var e="crossHair"===n?r.Cursor.getCrossHairCursorStyle(t):r.Cursor.getCircleCursorStyle(t,t,2),o={color:i,width:u},s=new ol.style.Stroke(o),h={color:f},c=new ol.style.Fill(h);return new ol.style.Style({image:e,stroke:s,fill:c})},n.prototype.clearDrawingLayer=function(n){this._drawingLayers.getLayerSource(n).clear()},n.prototype.setActiveDrawingSource=function(n){this._drawingLayers.setActiveLayer(n)},n.prototype.defineGeoJSONOptions=function(n,t,i){var r={defaultDataProjection:n,geometryName:t};this._GeoJSONformat=new ol.format.GeoJSON(r);this._GeoJSONWriteFeatureOptions={dataProjection:n,featureProjection:n,rightHanded:i}},n.prototype.getFeatureFromGeoJSONString=function(n){return this._GeoJSONformat.readFeature(n)},n.prototype.getGeoJSONFormatter=function(){return this._GeoJSONformat},n.prototype.getGeoJSONStringForFeatureSet=function(n){var t=this._GeoJSONformat.readFeatures(n);return this._GeoJSONformat.writeFeatures(t)},n.prototype.getGeoJSONobjectFromGeoJSONstring=function(n){var t=this._GeoJSONformat.readFeatures(n);return this._GeoJSONformat.writeFeaturesObject(t)},n.prototype.addJSONFeaturesToDrawingLayer=function(n,t,i){for(var f=this._drawingLayers.getLayerSource(n),r=this._GeoJSONformat.readFeatures(t.GeoJSON),u=0;u<r.length;++u)r[u].setStyle(i);f.addFeatures(r)},n.prototype.getFeaturesFromGeoJSONFeatureCollection=function(n){return this._GeoJSONformat.readFeatures(n.GeoJSON)},n.prototype.addMarkersToFeatures=function(n,t,i,r){void 0===r&&(r=null);for(var e={anchor:[.5,1],anchorXUnits:"fraction",anchorYUnits:"fraction",opacity:1,src:i},o={image:new ol.style.Icon(e)},s=new ol.style.Style(o),h=this._drawingLayers.getLayerSource(n),u=0;u<t.length;++u){var c=t[u],l={text:r?""+r[u]:""+(u+1),offsetY:r?-19:-23,offsetX:-1,font:"10px sans-serif",fill:new ol.style.Fill({color:"#fff"}),stroke:new ol.style.Stroke({color:"#00963c",width:3})},a={text:new ol.style.Text(l)},v=new ol.style.Style(a),y=this.getFeatureMarkerCoordinate(c),p={geometry:new ol.geom.Point(y)},f=new ol.Feature(p);f.setStyle([s,v]);f.setId("marker-"+u);h.addFeature(f)}},n.prototype.getPixelCoordinate=function(n){return this._map.getCoordinateFromPixel(n)},n.prototype.getMapsExtent=function(){return this._map.getView().calculateExtent(this._map.getSize())},n.prototype.addGenericMarker=function(n,t,i,r,u,f){var o={anchor:[u,f],anchorXUnits:"fraction",anchorYUnits:"fraction",opacity:1,src:i},s={image:new ol.style.Icon(o)},h=new ol.style.Style(s),c={geometry:new ol.geom.Point(r)},e=new ol.Feature(c);e.setStyle([h]);e.setId(t);this._drawingLayers.getLayerSource(n).addFeature(e)},n.prototype.getFeatureMarkerCoordinate=function(n){var i,t=n.getGeometry(),e,r,u,f;for(t instanceof ol.geom.Polygon?i=t.getCoordinates()[0]:t instanceof ol.geom.LineString?i=t.getCoordinates():t instanceof ol.geom.Point?(e=t,(i=[]).push(e.getCoordinates())):i=t.getCoordinates(),r=[0,-1e11],u=0;u<i.length;++u)f=i[u],f[1]>r[1]&&(r[0]=f[0],r[1]=f[1]);return r},n.prototype.addFeaturesToDrawingLayer=function(n,t){this._drawingLayers.getLayerSource(n).addFeatures(t)},n.prototype.getExtent=function(n){var t;if(0==n.length)return null;for(var i=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,e=0;e<n.length;++e)t=n[e].getGeometry().getExtent(),t[0]<i&&(i=t[0]),t[2]>r&&(r=t[2]),t[1]<u&&(u=t[1]),t[3]>f&&(f=t[3]);return[i,u,r,f]},n.prototype.replaceLayerFeaturesWithGeoJSONfeatures=function(n,t){var i=this._drawingLayers.getLayerSource(n),r;i.clear();r=this._GeoJSONformat.readFeatures(t.GeoJSON);i.addFeatures(r)},n.prototype.zoomToExtent=function(n,t){var i=ol.extent.buffer(n,t),r=this._map.getView(),u=this._map.getSize();r.fit(i,u)},n.prototype.Resize=function(){this._map.updateSize()},n.prototype.getFeaturesFromGeoJSONstring=function(n){return""===n?[]:this._GeoJSONformat.readFeatures(n)},n.prototype.registerMapImageListener=function(n,t){this._mapImageListener=n;this._imageFormat=t},n.prototype.mapScale=function(){var n=this._map.getView().getProjection().getUnits();return this._map.getView().getResolution()*ol.proj.METERS_PER_UNIT[n]*39.37*2.75},n.prototype.WriteScaletoCanvas=function(n){var u=n.context.canvas,t=n.context,h=($(".ol-scale-line-inner"),this._map.getView().getProjection().getUnits()),f=Math.round(this.mapScale()),r=f/this._map.getView().getResolution();t.beginPath();t.textAlign="left";t.strokeStyle="#ffffff";t.fillStyle="#000000";t.lineWidth=5;t.font="15px Arial";t.strokeText([f+" "+h],17.5,u.height-30-7.5);t.fillText([f+" "+h],17.5,u.height-30-7.5);var c=r+10,i=u.height-30,e=10+r/4,o=e+r/4,s=o+r/4,l=s+r/4;return t.beginPath(),t.lineWidth=8,t.strokeStyle="#000000",t.fillStyle="#ffffff",t.moveTo(10,i),t.lineTo(c+1,i),t.stroke(),t.beginPath(),t.lineWidth=6,t.strokeStyle="#000000",t.moveTo(10,i),t.lineTo(e,i),t.stroke(),t.beginPath(),t.lineWidth=6,t.strokeStyle="#FFFFFF",t.moveTo(e,i),t.lineTo(o,i),t.stroke(),t.beginPath(),t.lineWidth=6,t.strokeStyle="#000000",t.moveTo(o,i),t.lineTo(s,i),t.stroke(),t.beginPath(),t.lineWidth=6,t.strokeStyle="#FFFFFF",t.moveTo(s,i),t.lineTo(l,i),t.stroke(),u},n.prototype.getMapImage=function(){this._map.once("postcompose",this.imageRepaintListener);this._map.renderSync()},n}();t.StaticMap=f},function(n,t,i){"use strict";var r,u=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},function(n,t){function i(){this.constructor=n}r(n,t);n.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var f=i(5),e=i(0),o=function(n){function t(){var t=this,i=(ol.proj.get("EPSG:2193"),(t=n.call(this,null)||this).getAerialLayer()),r=new ol.Map({layers:[i],interactions:ol.interaction.defaults({mouseWheelZoom:!1,dragPan:!1}),target:"map2",controls:[],view:new ol.View({center:[1635340,5446125],minResolution:.29,resolutions:[4891.96981024998,2445.98490512499,1222.9924525624949,611.49622628137968,305.74811314055756,152.87405657041106,76.437028285073239,38.21851414253662,19.10925707126831,9.5546285356341549,4.77731426794937,2.3886571339746849,1.1943285668550503,.59716428355981721,.29858214164761665],projection:"EPSG:2193",resolution:2445.98490512499})});return t._map=r,n.prototype.addScaleLine.call(t),t._geoJsonFeatureCollection=new e.GeoJSONFeatureCollection,n.prototype.defineGeoJSONOptions.call(t,"EPSG:2193","featureset",!0),n.prototype.addDrawingLayer.call(t,"waterFeatures","EPSG:2193"),t._waterbodyBoundaryDrawingStyle=n.prototype.defineLineDrawingStyle.call(t,"Circle",[0,0,255,1],[255,255,255,1],3),t._waterwayDrawingStyle=n.prototype.defineLineDrawingStyle.call(t,"Circle",[0,147,255,1],[255,255,255,1],3),t._wetlandsDrawingStyle=n.prototype.definePolygonDrawingStyle.call(t,"Circle",[0,255,0,1],[176,255,197,1],2,[176,255,197,.3],[0,255,0,.6],3),t._parcelBoundaryDrawingStyle=n.prototype.definePolygonDrawingStyle.call(t,"Circle",[255,255,0,1],[255,255,0,1],2,[255,255,255,0],[255,255,0,0],3),t}return u(t,n),t.prototype.RegisterMapImageListener=function(t,i){n.prototype.registerMapImageListener.call(this,t,i)},t.prototype.GenerateMapImage=function(){n.prototype.getMapImage.call(this)},t.prototype.AddFeaturesAndZoomToExtent=function(t,i,r){var u,c,l,s,a;void 0===r&&(r=null);n.prototype.clearDrawingLayer.call(this,"waterFeatures");var o=null,h=[],e=t&&n.prototype.getFeaturesFromGeoJSONstring.call(this,t),f=n.prototype.getFeaturesFromGeoJSONstring.call(this,i);if(e&&e.length>0){for(u=0;u<e.length;++u)e[u].setStyle(this._parcelBoundaryDrawingStyle);n.prototype.addFeaturesToDrawingLayer.call(this,"waterFeatures",e)}if(f.length>0){for(u=0;u<f.length;++u){c=f[u].getProperties().featureType;l=f[u].getId();switch(h[u]=l,c){case"Wetland":f[u].setStyle(this._wetlandsDrawingStyle);break;case"Waterway":f[u].setStyle(this._waterwayDrawingStyle);break;case"Waterbody":f[u].setStyle(this._waterbodyBoundaryDrawingStyle)}}n.prototype.addFeaturesToDrawingLayer.call(this,"waterFeatures",f);n.prototype.addMarkersToFeatures.call(this,"waterFeatures",f,"/Content/Images/green-marker-cut.png",r);null==o&&(o=n.prototype.getExtent.call(this,f))}return this._targetExtent=o,n.prototype.zoomToExtent.call(this,o,1.05),s=n.prototype.getMapsExtent.call(this),a=[s[2],s[3]],n.prototype.addGenericMarker.call(this,"waterFeatures","northArrow","/Content/Images/north-arrow.png",a,.8,-.2),h},t.prototype.GetMapPixelExtent=function(){var i=ol.extent.getBottomLeft(this._targetExtent),r=ol.extent.getTopRight(this._targetExtent),n=this._map.getPixelFromCoordinate(i),t=this._map.getPixelFromCoordinate(r);return[Math.round(n[0])-5,Math.round(n[1])-5,Math.round(t[0])+5,Math.round(t[1])+5]},t.prototype.ClearFeatures=function(){n.prototype.clearDrawingLayer.call(this,"waterFeatures")},t.prototype.UpdateMapSize=function(){n.prototype.Resize.call(this)},t.prototype.getBaseLayer=function(){var t=ol.proj.get("EPSG:2193"),n=[1e6,47e5,22e5,63e5];t.setExtent(n);var i={extent:n,origin:ol.extent.getTopLeft(n),resolutions:[2822.2206982230455,1411.1103491115227,705.55517455576137,352.77758727788068,176.38879363894034,88.194396819470171,35.277758727788061,17.638879363894031,8.8194396819470153,3.5277758727788062],matrixIds:["0","1","2","3","4","5","6","7","8","9"]},r=new ol.tilegrid.WMTS(i),u={url:"http://maps.scinfo.org.nz/cached/wmts/",crossOrigin:"anonymous",layer:"topobasemap_notext",matrixSet:"portalgridnztm2",format:"png8",version:"1.1.0",extent:n,style:"default",projection:t,attributions:[new ol.Attribution({html:'Base map contains data sourced from <a href="https://data.linz.govt.nz/layer/767-nz-topo50-maps/" target="_blank">LINZ New Zealand<\/a>. Crown Copyright Reserved.Base map web mapping data service provided by Landcare Research Ltd.<br>'})],units:"m",tileGrid:r},f=new ol.source.WMTS(u);return new ol.layer.Tile({opacity:1,extent:n,source:f})},t.prototype.getBaseLayerText=function(){var t=ol.proj.get("EPSG:2193"),n=[1e6,47e5,22e5,63e5];t.setExtent(n);var i={extent:n,origin:ol.extent.getTopLeft(n),resolutions:[2822.2206982230455,1411.1103491115227,705.55517455576137,352.77758727788068,176.38879363894034,88.194396819470171,35.277758727788061,17.638879363894031,8.8194396819470153,3.5277758727788062],matrixIds:["0","1","2","3","4","5","6","7","8","9"]},r={url:"http://maps.scinfo.org.nz/cached/wmts/",crossOrigin:"anonymous",layer:"text",matrixSet:"portalgridnztm2",format:"png8",extent:n,style:"default",projection:t,units:"m",tileGrid:new ol.tilegrid.WMTS(i)},u=new ol.source.WMTS(r);return new ol.layer.Tile({opacity:1,extent:n,source:u})},t.prototype.getAerialLayer=function(){var n=ol.proj.get("EPSG:2193"),t=[-4062457.5262811976,1461859.0976713542,7068246.3160593873,8771210.9999826662];n.setExtent(t);var i=new ol.tilegrid.WMTS({origin:[-4020900,19998100],resolutions:[4891.96981024998,2445.98490512499,1222.9924525624949,611.49622628137968,305.74811314055756,152.87405657041106,76.437028285073239,38.21851414253662,19.10925707126831,9.5546285356341549,4.77731426794937,2.3886571339746849,1.1943285668550503,.59716428355981721,.29858214164761665,.14929144441622216,.074644399288798582],matrixIds:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"]}),r={url:"https://services.arcgisonline.co.nz/arcgis/rest/services/Imagery/newzealand/MapServer/WMTS/tile/1.0.0/Imagery_newzealand/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",requestEncoding:"REST",crossOrigin:"anonymous",layer:"Imagery_newzealand",matrixSet:"default028mm",format:"image/jpgpng",style:"default",attributions:[new ol.Attribution({html:'Aerial imagery data sourced from the<a href="https://data.linz.govt.nz/layer/1872-waikato-05m-rural-aerial-photos-2012-2013/" target="_blank">New Zealand LINZ Data Service <\/a> and licensed for re-use under the Creative Commons Attribution 3.0 New Zealand licence. Aerial imagery web mapping data service provided by Eagle Technology NZ and ESRI ArcOnline.<br>'})],projection:n,tileGrid:i},u=new ol.source.WMTS(r);return new ol.layer.Tile({opacity:1,extent:t,minResolution:.29,maxResolution:153,source:u})},t}(f.StaticMap);t.FarmFeatureMap=o},function(n,t,i){var r,u;void 0===(u="function"==typeof(r=function(){function h(n,t){this._input=n;this._value=t}var n,i,f,o,s,r={},e={},u={currentLocale:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0},t={currentLocale:u.currentLocale,zeroFormat:u.zeroFormat,nullFormat:u.nullFormat,defaultFormat:u.defaultFormat,scalePercentBy100:u.scalePercentBy100};return(n=function(u){var f,e,o,s;if(n.isNumeral(u))f=u.value();else if(0===u||void 0===u)f=0;else if(null===u||i.isNaN(u))f=null;else if("string"==typeof u)if(t.zeroFormat&&u===t.zeroFormat)f=0;else if(t.nullFormat&&u===t.nullFormat||!u.replace(/[^0-9]+/g,"").length)f=null;else{for(e in r)if((s="function"==typeof r[e].regexps.unformat?r[e].regexps.unformat():r[e].regexps.unformat)&&u.match(s)){o=r[e].unformat;break}f=(o=o||n._.stringToNumber)(u)}else f=Number(u)||null;return new h(u,f)}).version="2.0.6",n.isNumeral=function(n){return n instanceof h},n._=i={numberToFormat:function(t,i,r){var p,s,a,u,h,w,k,c,f=e[n.options.currentLocale],y=!1,d=!1,o="",l="",v=!1,b;if(t=t||0,a=Math.abs(t),n._.includes(i,"(")?(y=!0,i=i.replace(/[\(|\)]/g,"")):(n._.includes(i,"+")||n._.includes(i,"-"))&&(w=n._.includes(i,"+")?i.indexOf("+"):t<0?i.indexOf("-"):-1,i=i.replace(/[\+|\-]/g,"")),n._.includes(i,"a")&&(s=!!(s=i.match(/a(k|m|b|t)?/))&&s[1],n._.includes(i," a")&&(o=" "),i=i.replace(new RegExp(o+"a[kmbt]?"),""),a>=1e12&&!s||"t"===s?(o+=f.abbreviations.trillion,t/=1e12):a<1e12&&a>=1e9&&!s||"b"===s?(o+=f.abbreviations.billion,t/=1e9):a<1e9&&a>=1e6&&!s||"m"===s?(o+=f.abbreviations.million,t/=1e6):(a<1e6&&a>=1e3&&!s||"k"===s)&&(o+=f.abbreviations.thousand,t/=1e3)),n._.includes(i,"[.]")&&(d=!0,i=i.replace("[.]",".")),u=t.toString().split(".")[0],h=i.split(".")[1],k=i.indexOf(","),p=(i.split(".")[0].split(",")[0].match(/0/g)||[]).length,h?(n._.includes(h,"[")?(h=(h=h.replace("]","")).split("["),l=n._.toFixed(t,h[0].length+h[1].length,r,h[1].length)):l=n._.toFixed(t,h.length,r),u=l.split(".")[0],l=n._.includes(l,".")?f.delimiters.decimal+l.split(".")[1]:"",d&&0===Number(l.slice(1))&&(l="")):u=n._.toFixed(t,0,r),o&&!s&&Number(u)>=1e3&&o!==f.abbreviations.trillion)switch(u=String(Number(u)/1e3),o){case f.abbreviations.thousand:o=f.abbreviations.million;break;case f.abbreviations.million:o=f.abbreviations.billion;break;case f.abbreviations.billion:o=f.abbreviations.trillion}if(n._.includes(u,"-")&&(u=u.slice(1),v=!0),u.length<p)for(b=p-u.length;b>0;b--)u="0"+u;return k>-1&&(u=u.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+f.delimiters.thousands)),0===i.indexOf(".")&&(u=""),c=u+l+(o||""),y?c=(y&&v?"(":"")+c+(y&&v?")":""):w>=0?c=0===w?(v?"-":"+")+c:c+(v?"-":"+"):v&&(c="-"+c),c},stringToNumber:function(n){var u,i,f,r=e[t.currentLocale],s=n,o={thousand:3,million:6,billion:9,trillion:12};if(t.zeroFormat&&n===t.zeroFormat)i=0;else if(t.nullFormat&&n===t.nullFormat||!n.replace(/[^0-9]+/g,"").length)i=null;else{for(u in i=1,"."!==r.delimiters.decimal&&(n=n.replace(/\./g,"").replace(r.delimiters.decimal,".")),o)if(f=new RegExp("[^a-zA-Z]"+r.abbreviations[u]+"(?:\\)|(\\"+r.currency.symbol+")?(?:\\))?)?$"),s.match(f)){i*=Math.pow(10,o[u]);break}i*=(n.split("-").length+Math.min(n.split("(").length-1,n.split(")").length-1))%2?1:-1;n=n.replace(/[^0-9\.]+/g,"");i*=Number(n)}return i},isNaN:function(n){return"number"==typeof n&&isNaN(n)},includes:function(n,t){return-1!==n.indexOf(t)},insert:function(n,t,i){return n.slice(0,i)+t+n.slice(i)},reduce:function(n,t){if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof t)throw new TypeError(t+" is not a function");var u,r=Object(n),f=r.length>>>0,i=0;if(3===arguments.length)u=arguments[2];else{for(;i<f&&!(i in r);)i++;if(i>=f)throw new TypeError("Reduce of empty array with no initial value");u=r[i++]}for(;i<f;i++)i in r&&(u=t(u,r[i],i,r));return u},multiplier:function(n){var t=n.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)},correctionFactor:function(){return Array.prototype.slice.call(arguments).reduce(function(n,t){var r=i.multiplier(t);return n>r?n:r},1)},toFixed:function(n,t,i,r){var u,e,o,f,s=n.toString().split("."),h=t-(r||0);return u=2===s.length?Math.min(Math.max(s[1].length,h),t):h,o=Math.pow(10,u),f=(i(n+"e+"+u)/o).toFixed(u),r>t-u&&(e=new RegExp("\\.?0{1,"+(r-(t-u))+"}$"),f=f.replace(e,"")),f}},n.options=t,n.formats=r,n.locales=e,n.locale=function(n){return n&&(t.currentLocale=n.toLowerCase()),t.currentLocale},n.localeData=function(n){if(!n)return e[t.currentLocale];if(n=n.toLowerCase(),!e[n])throw new Error("Unknown locale : "+n);return e[n]},n.reset=function(){for(var n in u)t[n]=u[n]},n.zeroFormat=function(n){t.zeroFormat="string"==typeof n?n:null},n.nullFormat=function(n){t.nullFormat="string"==typeof n?n:null},n.defaultFormat=function(n){t.defaultFormat="string"==typeof n?n:"0.0"},n.register=function(n,t,i){if(t=t.toLowerCase(),this[n+"s"][t])throw new TypeError(t+" "+n+" already registered.");return this[n+"s"][t]=i,i},n.validate=function(t,i){var s,h,c,r,e,o,u,f;if("string"!=typeof t&&(t+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",t)),(t=t.trim()).match(/^\d+$/))return!0;if(""===t)return!1;try{u=n.localeData(i)}catch(t){u=n.localeData(n.locale())}return c=u.currency.symbol,e=u.abbreviations,s=u.delimiters.decimal,h="."===u.delimiters.thousands?"\\.":u.delimiters.thousands,!(null!==(f=t.match(/^[^\d]+/))&&(t=t.substr(1),f[0]!==c)||null!==(f=t.match(/[^\d]+$/))&&(t=t.slice(0,-1),f[0]!==e.thousand&&f[0]!==e.million&&f[0]!==e.billion&&f[0]!==e.trillion)||(o=new RegExp(h+"{2}"),t.match(/[^\d.,]/g)||(r=t.split(s)).length>2||(r.length<2?!r[0].match(/^\d+.*\d$/)||r[0].match(o):1===r[0].length?!r[0].match(/^\d+$/)||r[0].match(o)||!r[1].match(/^\d+$/):!r[0].match(/^\d+.*\d$/)||r[0].match(o)||!r[1].match(/^\d+$/))))},n.fn=h.prototype={clone:function(){return n(this)},format:function(i,u){var e,f,o,s=this._value,h=i||t.defaultFormat;if(u=u||Math.round,0===s&&null!==t.zeroFormat)f=t.zeroFormat;else if(null===s&&null!==t.nullFormat)f=t.nullFormat;else{for(e in r)if(h.match(r[e].regexps.format)){o=r[e].format;break}f=(o=o||n._.numberToFormat)(s,h,u)}return f},value:function(){return this._value},input:function(){return this._input},set:function(n){return this._value=Number(n),this},add:function(n){var t=i.correctionFactor.call(null,this._value,n);return this._value=i.reduce([this._value,n],function(n,i){return n+Math.round(t*i)},0)/t,this},subtract:function(n){var t=i.correctionFactor.call(null,this._value,n);return this._value=i.reduce([n],function(n,i){return n-Math.round(t*i)},Math.round(this._value*t))/t,this},multiply:function(n){return this._value=i.reduce([this._value,n],function(n,t){var r=i.correctionFactor(n,t);return Math.round(n*r)*Math.round(t*r)/Math.round(r*r)},1),this},divide:function(n){return this._value=i.reduce([this._value,n],function(n,t){var r=i.correctionFactor(n,t);return Math.round(n*r)/Math.round(t*r)}),this},difference:function(t){return Math.abs(n(this._value).subtract(t).value())}},n.register("locale","en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(n){var t=n%10;return 1==~~(n%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),n.register("format","bps",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(t,i,r){var u,f=n._.includes(i," BPS")?" ":"";return t*=1e4,i=i.replace(/\s?BPS/,""),u=n._.numberToFormat(t,i,r),n._.includes(u,")")?((u=u.split("")).splice(-1,0,f+"BPS"),u=u.join("")):u=u+f+"BPS",u},unformat:function(t){return+(.0001*n._.stringToNumber(t)).toFixed(15)}}),o={base:1024,suffixes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},s="("+(s=(f={base:1e3,suffixes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}).suffixes.concat(o.suffixes.filter(function(n){return f.suffixes.indexOf(n)<0})).join("|")).replace("B","B(?!PS)")+")",n.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(s)},format:function(t,i,r){var u,e,h,s=n._.includes(i,"ib")?o:f,c=n._.includes(i," b")||n._.includes(i," ib")?" ":"";for(i=i.replace(/\s?i?b/,""),u=0;u<=s.suffixes.length;u++)if(e=Math.pow(s.base,u),h=Math.pow(s.base,u+1),null===t||0===t||t>=e&&t<h){c+=s.suffixes[u];e>0&&(t/=e);break}return n._.numberToFormat(t,i,r)+c},unformat:function(t){var i,r,u=n._.stringToNumber(t);if(u){for(i=f.suffixes.length-1;i>=0;i--){if(n._.includes(t,f.suffixes[i])){r=Math.pow(f.base,i);break}if(n._.includes(t,o.suffixes[i])){r=Math.pow(o.base,i);break}}u*=r||1}return u}}),n.register("format","currency",{regexps:{format:/(\$)/},format:function(t,i,r){var e,f,o=n.locales[n.options.currentLocale],u={before:i.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:i.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(i=i.replace(/\s?\$\s?/,""),e=n._.numberToFormat(t,i,r),t>=0?(u.before=u.before.replace(/[\-\(]/,""),u.after=u.after.replace(/[\-\)]/,"")):t<0&&!n._.includes(u.before,"-")&&!n._.includes(u.before,"(")&&(u.before="-"+u.before),f=0;f<u.before.length;f++)switch(u.before[f]){case"$":e=n._.insert(e,o.currency.symbol,f);break;case" ":e=n._.insert(e," ",f+o.currency.symbol.length-1)}for(f=u.after.length-1;f>=0;f--)switch(u.after[f]){case"$":e=f===u.after.length-1?e+o.currency.symbol:n._.insert(e,o.currency.symbol,-(u.after.length-(1+f)));break;case" ":e=f===u.after.length-1?e+" ":n._.insert(e," ",-(u.after.length-(1+f)+o.currency.symbol.length-1))}return e}}),n.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(t,i,r){var u=("number"!=typeof t||n._.isNaN(t)?"0e+0":t.toExponential()).split("e");return i=i.replace(/e[\+|\-]{1}0/,""),n._.numberToFormat(Number(u[0]),i,r)+"e"+u[1]},unformat:function(t){var r=n._.includes(t,"e+")?t.split("e+"):t.split("e-"),u=Number(r[0]),i=Number(r[1]);return i=n._.includes(t,"e-")?i*=-1:i,n._.reduce([u,Math.pow(10,i)],function(t,i){var r=n._.correctionFactor(t,i);return t*r*i*r/(r*r)},1)}}),n.register("format","ordinal",{regexps:{format:/(o)/},format:function(t,i,r){var f=n.locales[n.options.currentLocale],u=n._.includes(i," o")?" ":"";return i=i.replace(/\s?o/,""),u+=f.ordinal(t),n._.numberToFormat(t,i,r)+u}}),n.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(t,i,r){var u,f=n._.includes(i," %")?" ":"";return n.options.scalePercentBy100&&(t*=100),i=i.replace(/\s?\%/,""),u=n._.numberToFormat(t,i,r),n._.includes(u,")")?((u=u.split("")).splice(-1,0,f+"%"),u=u.join("")):u=u+f+"%",u},unformat:function(t){var i=n._.stringToNumber(t);return n.options.scalePercentBy100?.01*i:i}}),n.register("format","time",{regexps:{format:/(:)/,unformat:/(:)/},format:function(n){var i=Math.floor(n/3600),t=Math.floor((n-3600*i)/60),r=Math.round(n-3600*i-60*t);return i+":"+(t<10?"0"+t:t)+":"+(r<10?"0"+r:r)},unformat:function(n){var t=n.split(":"),i=0;return 3===t.length?(i+=3600*Number(t[0]),i+=60*Number(t[1]),i+=Number(t[2])):2===t.length&&(i+=60*Number(t[0]),i+=Number(t[1])),Number(i)}}),n})?r.call(t,i,t,n):r)||(n.exports=u)},function(n){var t=function(){return this}();try{t=t||Function("return this")()||eval("this")}catch(n){"object"==typeof window&&(t=window)}n.exports=t},function(n){function h(){throw new Error("setTimeout has not been defined");}function c(){throw new Error("clearTimeout has not been defined");}function l(n){if(i===setTimeout)return setTimeout(n,0);if((i===h||!i)&&setTimeout)return i=setTimeout,setTimeout(n,0);try{return i(n,0)}catch(t){try{return i.call(null,n,0)}catch(t){return i.call(this,n,0)}}}function y(){o&&e&&(o=!1,e.length?u=e.concat(u):s=-1,u.length&&a())}function a(){var t,n;if(!o){for(t=l(y),o=!0,n=u.length;n;){for(e=u,u=[];++s<n;)e&&e[s].run();s=-1;n=u.length}e=null;o=!1,function(n){if(r===clearTimeout)return clearTimeout(n);if((r===c||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(n);try{r(n)}catch(t){try{return r.call(null,n)}catch(t){return r.call(this,n)}}}(t)}}function v(n,t){this.fun=n;this.array=t}function f(){}var i,r,t=n.exports={};!function(){try{i="function"==typeof setTimeout?setTimeout:h}catch(n){i=h}try{r="function"==typeof clearTimeout?clearTimeout:c}catch(n){r=c}}();var e,u=[],o=!1,s=-1;t.nextTick=function(n){var i=new Array(arguments.length-1),t;if(arguments.length>1)for(t=1;t<arguments.length;t++)i[t-1]=arguments[t];u.push(new v(n,i));1!==u.length||o||l(a)};v.prototype.run=function(){this.fun.apply(null,this.array)};t.title="browser";t.browser=!0;t.env={};t.argv=[];t.version="";t.versions={};t.on=f;t.addListener=f;t.once=f;t.off=f;t.removeListener=f;t.removeAllListeners=f;t.emit=f;t.prependListener=f;t.prependOnceListener=f;t.listeners=function(){return[]};t.binding=function(){throw new Error("process.binding is not supported");};t.cwd=function(){return"/"};t.chdir=function(){throw new Error("process.chdir is not supported");};t.umask=function(){return 0}},function(n,t,i){(function(t,i){var r;r=function(){"use strict";function b(n){return"function"==typeof n}function d(){var n=setTimeout;return function(){return n(s,1)}}function s(){for(var n=0;n<a;n+=2)o[n](o[n+1]),o[n]=void 0,o[n+1]=void 0;a=0}function tt(n,t){var u=this,i=new this.constructor(h),r,f;return void 0===i[y]&&wt(i),r=u._state,r?(f=arguments[r-1],e(function(){return pt(r,i,f,u._result)})):rt(u,i,n,t),i}function it(n){if(n&&"object"==typeof n&&n.constructor===this)return n;var t=new this(h);return w(t,n),t}function h(){}function vt(n){try{return n.then}catch(n){return f.error=n,f}}function yt(n,t,i){t.constructor===n.constructor&&i===tt&&t.constructor.resolve===it?function(n,t){t._state===p?u(n,t._result):t._state===l?r(n,t._result):rt(t,void 0,function(t){return w(n,t)},function(t){return r(n,t)})}(n,t):i===f?(r(n,f.error),f.error=null):void 0===i?u(n,t):b(i)?function(n,t,i){e(function(n){var f=!1,e=function(n,t,i,r){try{n.call(t,i,r)}catch(n){return n}}(i,t,function(i){f||(f=!0,t!==i?w(n,i):u(n,i))},function(t){f||(f=!0,r(n,t))},n._label);!f&&e&&(f=!0,r(n,e))},n)}(n,t,i):u(n,t)}function w(n,t){var f,i;n===t?r(n,new TypeError("You cannot resolve a promise with itself")):(i=typeof(f=t),null===f||"object"!==i&&"function"!==i?u(n,t):yt(n,t,vt(t)))}function gt(n){n._onerror&&n._onerror(n._result);ut(n)}function u(n,t){n._state===c&&(n._result=t,n._state=p,0!==n._subscribers.length&&e(ut,n))}function r(n,t){n._state===c&&(n._state=l,n._result=t,e(gt,n))}function rt(n,t,i,r){var u=n._subscribers,f=u.length;n._onerror=null;u[f]=t;u[f+p]=i;u[f+l]=r;0===f&&n._state&&e(ut,n)}function ut(n){var t=n._subscribers,f=n._state;if(0!==t.length){for(var r=void 0,u=void 0,e=n._result,i=0;i<t.length;i+=3)r=t[i],u=t[i+f],r?pt(f,r,u,e):u(e);n._subscribers.length=0}}function pt(n,t,i,e){var h=b(i),o=void 0,a=void 0,s=void 0,v=void 0;if(h){if((o=function(n,t){try{return n(t)}catch(n){return f.error=n,f}}(i,e))===f?(v=!0,a=o.error,o.error=null):s=!0,t===o)return void r(t,new TypeError("A promises callback cannot return that same promise."))}else o=e,s=!0;t._state!==c||(h&&s?w(t,o):v?r(t,a):n===p?u(t,o):n===l&&r(t,o))}function wt(n){n[y]=ft++;n._state=void 0;n._result=void 0;n._subscribers=[]}var et=Array.isArray?Array.isArray:function(n){return"[object Array]"===Object.prototype.toString.call(n)},a=0,ot=void 0,k=void 0,e=function(n,t){o[a]=n;o[a+1]=t;2===(a+=2)&&(k?k(s):v())},st="undefined"!=typeof window?window:void 0,ht=st||{},ct=ht.MutationObserver||ht.WebKitMutationObserver,kt="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),dt="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,o=new Array(1e3),lt,g,at,nt,v=void 0,y,ft,bt,n;kt?v=function(){return t.nextTick(s)}:ct?(g=0,at=new ct(s),nt=document.createTextNode(""),at.observe(nt,{characterData:!0}),v=function(){nt.data=g=++g%2}):dt?((lt=new MessageChannel).port1.onmessage=s,v=function(){return lt.port2.postMessage(0)}):v=void 0===st?function(){try{var n=Function("return this")().require("vertx");return void 0!==(ot=n.runOnLoop||n.runOnContext)?function(){ot(s)}:d()}catch(n){return d()}}():d();y=Math.random().toString(36).substring(2);var c=void 0,p=1,l=2,f={error:null};return ft=0,bt=function(){function t(n,t){this._instanceConstructor=n;this.promise=new n(h);this.promise[y]||wt(this.promise);et(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?u(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&u(this.promise,this._result))):r(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(n){for(var t=0;this._state===c&&t<n.length;t++)this._eachEntry(n[t],t)},t.prototype._eachEntry=function(t,i){var r=this._instanceConstructor,e=r.resolve,u,f;e===it?(u=vt(t),u===tt&&t._state!==c?this._settledAt(t._state,i,t._result):"function"!=typeof u?(this._remaining--,this._result[i]=t):r===n?(f=new r(h),yt(f,t,u),this._willSettleAt(f,i)):this._willSettleAt(new r(function(n){return n(t)}),i)):this._willSettleAt(e(t),i)},t.prototype._settledAt=function(n,t,i){var f=this.promise;f._state===c&&(this._remaining--,n===l?r(f,i):this._result[t]=i);0===this._remaining&&u(f,this._result)},t.prototype._willSettleAt=function(n,t){var i=this;rt(n,void 0,function(n){return i._settledAt(p,t,n)},function(n){return i._settledAt(l,t,n)})},t}(),n=function(){function n(t){this[y]=ft++;this._result=this._state=void 0;this._subscribers=[];h!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");}(),this instanceof n?function(n,t){try{t(function(t){w(n,t)},function(t){r(n,t)})}catch(t){r(n,t)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");}())}return n.prototype.catch=function(n){return this.then(null,n)},n.prototype.finally=function(n){var t=this.constructor;return b(n)?this.then(function(i){return t.resolve(n()).then(function(){return i})},function(i){return t.resolve(n()).then(function(){throw i;})}):this.then(n,n)},n}(),n.prototype.then=tt,n.all=function(n){return new bt(this,n).promise},n.race=function(n){var t=this;return et(n)?new t(function(i,r){for(var f=n.length,u=0;u<f;u++)t.resolve(n[u]).then(i,r)}):new t(function(n,t){return t(new TypeError("You must pass an array to race."))})},n.resolve=it,n.reject=function(n){var t=new this(h);return r(t,n),t},n._setScheduler=function(n){k=n},n._setAsap=function(n){e=n},n._asap=e,n.polyfill=function(){var t=void 0,r,u;if(void 0!==i)t=i;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment");}if(r=t.Promise,r){u=null;try{u=Object.prototype.toString.call(r.resolve())}catch(t){}if("[object Promise]"===u&&!r.cast)return}t.Promise=n},n.Promise=n,n};n.exports=r()}).call(this,i(9),i(8))},function(n,t){"use strict";var i,u=this&&this.__extends||(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},function(n,t){function r(){this.constructor=n}i(n,t);n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),r;Object.defineProperty(t,"__esModule",{value:!0});r=function(n){function t(t,i,r,u,f,e){var o=n.call(this,{})||this;return o.handleButtonClick=function(){o.isActive&&o.clickActivity()},o._interactiveMap=t,o.activeCSSclass=r,o.inactiveCSSclass=u,o.clickActivity=f,o.isActive=e,o.buttonPixelWidth=34,o.buttonPixelHeight=34,o.button=document.createElement("button"),o.button.innerHTML="&nbsp;",o.button.title=i,o.button.className=e?o.activeCSSclass:o.inactiveCSSclass,o.button.addEventListener("click",o.handleButtonClick,!1),o}return u(t,n),t.prototype.Deactivate=function(){this.isActive=!1;this.button.className=this.inactiveCSSclass},t.prototype.Activate=function(){this.isActive=!0;this.button.className=this.activeCSSclass},t}(ol.control.Control);t.IndependentButton=r},function(n,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(2),u=i(3),f=function(){function n(n,t,i,u){var s,h,e,c,o,f;for(this._buttons=t,s=document.createElement("div"),s.className=n,this._toolbar=s,h=document.getElementsByClassName("ol-overlaycontainer-stopevent"),h.length>0&&h[0].appendChild(this._toolbar),this._toolbar.style.width="40px",e=0,c=t;e<c.length;e++)o=c[e],o instanceof r.PushButton&&(f=o,f.interactionType=i.GetInteractionType(f.interactionName),f.AttachToToolbar(this),f===u&&(f.Activate(),i.PushButton(f.interactionName))),this._toolbar.appendChild(o.button)}return n.prototype.RegisterToolbarChangeListener=function(n){this._toolbarChangeListener=n},n.prototype.SetState=function(n,t){var f,e,i;if(n instanceof r.PushButton&&n.interactionType===u.InteractionType.pushButton)if(!1===n.isActive&&t){for(f=0,e=this._buttons;f<e.length;f++)i=e[f],i instanceof r.PushButton&&i!=n&&i.isActive&&i.interactionType===u.InteractionType.pushButton&&i.Deactivate();n.Activate();void 0!==this._toolbarChangeListener&&this._toolbarChangeListener(n.interactionName)}else n.isActive&&!t&&(n.Deactivate(),void 0!==this._toolbarChangeListener&&this._toolbarChangeListener(""))},n.prototype.Push=function(n){var i,f,t;if(n instanceof r.PushButton)for(i=0,f=this._buttons;i<f.length;i++)t=f[i],t instanceof r.PushButton&&t!=n&&t.isActive&&t.interactionType===u.InteractionType.pushButton&&t.Deactivate();n instanceof r.PushButton&&(n.isActive?(n.Deactivate(),void 0!==this._toolbarChangeListener&&this._toolbarChangeListener("")):(n.Activate(),void 0!==this._toolbarChangeListener&&this._toolbarChangeListener(n.interactionName)))},n}();t.Toolbar=f},function(n,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(3),u=function(){function n(n){this._map=n;this.activeInteractions=[];this.allInteractions=[];this.currentlyPressedInteraction=null}return n.prototype.SetupAlwaysOnDefaultInteractions=function(n){var i,t,u,f,e;for(this._map.getInteractions().clear(),t=0,u=n;t<u.length;t++)f=u[t],null!=(i=this.getDefaultInteractionByName(f))&&(e=new r.NamedInteraction(f,i,r.InteractionType.alwaysPresent),this.allInteractions.push(e),this.activeInteractions.push(e),this._map.addInteraction(i))},n.prototype.SetupAlwaysOnInteraction=function(n,t){var i=new r.NamedInteraction(n,t,r.InteractionType.alwaysPresent);this.allInteractions.push(i);this.activeInteractions.push(i);this._map.addInteraction(t)},n.prototype.SetupAlwaysPresentDefaultInteractions=function(n,t){for(var f,e,i,o=0,u=0,s=n;u<s.length;u++)f=s[u],null!=(i=this.getDefaultInteractionByName(f))&&(e=new r.NamedInteraction(f,i,r.InteractionType.alwaysPresent),this.allInteractions.push(e),t[o]&&(this.activeInteractions.push(e),this._map.addInteraction(i))),++o},n.prototype.AddCustomPushButtonInteraction=function(n,t){var i=new r.NamedInteraction(n,t,r.InteractionType.pushButton);this.allInteractions.push(i)},n.prototype.AddDefaultPushButtonInteraction=function(n){var t=this.getDefaultInteractionByName(n),i=new r.NamedInteraction(n,t,r.InteractionType.pushButton);this.allInteractions.push(i)},n.prototype.AddToggleInteraction=function(n,t){var i=new r.NamedInteraction(n,t,r.InteractionType.toggle);this.allInteractions.push(i)},n.prototype.ToogleButton=function(n){for(var r,o,a,v,u,s,i,f,h,c,y,t=[],e=0,l=this.activeInteractions;e<l.length;e++)(i=l[e]).name===n&&t.push(i);if(t.length>0)for(r=0,o=t;r<o.length;r++)a=(i=o[r]).interaction,v=this.activeInteractions.indexOf(i,0),this.activeInteractions.splice(v,1),this._map.removeInteraction(a);else{for(u=0,s=this.allInteractions;u<s.length;u++)(i=s[u]).name===n&&t.push(i);if(t.length>0)for(f=0,h=t;f<h.length;f++)c=h[f],y=c.interaction,this.activeInteractions.push(c),this._map.addInteraction(y)}},n.prototype.RegisterPushButtonListener=function(n,t){this._pushButtonChangedHandler=n;this._pushButtonChangeState=t},n.prototype.SetButtonState=function(n,t){for(var f,w,e,o,b,s,h,c,k,l,a,d,i,u=[],v=0,g=this.activeInteractions;v<g.length;v++)(i=g[v]).type===r.InteractionType.pushButton&&u.push(i);for(var y=[],p=0,nt=this.allInteractions;p<nt.length;p++)(i=nt[p]).name===n&&y.push(i);if(t){if(0===u.length)for(f=0,w=y;f<w.length;f++)e=(l=w[f]).interaction,this.activeInteractions.push(l),this._map.addInteraction(e);else{if(this.currentlyPressedInteraction===n)return;for(o=0,b=u;o<b.length;o++)s=(i=b[o]).interaction,h=this.activeInteractions.indexOf(i,0),this.activeInteractions.splice(h,1),this._map.removeInteraction(s);for(c=0,k=y;c<k.length;c++)e=(l=k[c]).interaction,this.activeInteractions.push(l),this._map.addInteraction(e)}this.currentlyPressedInteraction=n}else if(this.currentlyPressedInteraction===n){for(a=0,d=u;a<d.length;a++)s=(i=d[a]).interaction,h=this.activeInteractions.indexOf(i,0),this.activeInteractions.splice(h,1),this._map.removeInteraction(s);this.currentlyPressedInteraction=null}},n.prototype.PushButton=function(n){for(var i,o,s,w,t,u,l,a,v,y=!1,f=[],e=0,p=this.activeInteractions;e<p.length;e++)(t=p[e]).type===r.InteractionType.pushButton&&f.push(t);if(f.length>0)for(i=0,o=f;i<o.length;i++)s=(t=o[i]).interaction,w=this.activeInteractions.indexOf(t,0),this.activeInteractions.splice(w,1),null!=s&&(this._map.removeInteraction(s),y=!0);if(n!==this.currentlyPressedInteraction||n==this.currentlyPressedInteraction&&0==y){for(var h=[],c=0,b=this.allInteractions;c<b.length;c++)(t=b[c]).name===n&&h.push(t);if(h.length>0)for(u=0,l=h;u<l.length;u++)a=l[u],v=a.interaction,this.activeInteractions.push(a),null!=v&&this._map.addInteraction(v)}this.currentlyPressedInteraction=n;void 0!==this._pushButtonChangedHandler&&this._pushButtonChangedHandler(n,this._pushButtonChangeState)},n.prototype.GetInteractionType=function(n){for(var u,t=0,i=this.allInteractions;t<i.length;t++)if(u=i[t],u.name===n)return u.type;return r.InteractionType.alwaysPresent},n.prototype.getDefaultInteractionByName=function(n){var t=null;switch(n){case"MouseWheelZoom":t=new ol.interaction.MouseWheelZoom;break;case"DoubleClickZoom":t=new ol.interaction.DoubleClickZoom;break;case"DragAndDrop":t=new ol.interaction.DragAndDrop;break;case"DragBox":t=new ol.interaction.DragBox;break;case"DragPan":t=new ol.interaction.DragPan;break;case"DragRotate":t=new ol.interaction.DragRotate;break;case"DragZoom":t=new ol.interaction.DragZoom;break;case"KeyboardPan":t=new ol.interaction.KeyboardPan;break;case"KeyboardZoom":t=new ol.interaction.KeyboardZoom;break;case"Modify":t=new ol.interaction.Modify({});break;case"PinchRotate":t=new ol.interaction.PinchRotate;break;case"PinchZoom":t=new ol.interaction.PinchZoom}return t},n}();t.InteractionManager=u},function(n,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var u=i(4),f=i(13),e=i(12),r=i(1),o=i(0),s=function(){function n(n){var t=this;this._objectSeed=0;this.listenToViewChanges=function(n){switch(n.key){case"resolution":var i=t._map.getView().getResolution();t._informZoomChange(i)}};this.getFeaturesGeoJSONGeometry=function(n){return t._GeoJSONformat.writeFeature(n,t._GeoJSONWriteFeatureOptions)};this.getVerticesAsMultipoint=function(n){var i,t=n.getGeometry(),r;return t instanceof ol.geom.Polygon?i=t.getCoordinates()[0]:t instanceof ol.geom.LineString?i=t.getCoordinates():t instanceof ol.geom.Point?(r=t,(i=[]).push(r.getCoordinates())):i=t.getCoordinates(),new ol.geom.MultiPoint(i,"XY")};this.getVerticesStyle=function(n){var i={color:n.getFill().getColor()},r={color:n.getStroke().getColor(),width:1};return new ol.style.Style({image:new ol.style.Circle({radius:t.vertexRadius,fill:new ol.style.Fill(i),stroke:new ol.style.Stroke(r)}),geometry:t.getVerticesAsMultipoint})};this.getSelectionStyle=function(){var n=t._selectionFillColour,i=t._selectionStrokeColour,r={color:i,width:2},u={color:i,width:1},f={color:n},e={color:n};return new ol.style.Style({stroke:new ol.style.Stroke(r),fill:new ol.style.Fill(f),image:new ol.style.Circle({radius:t.vertexRadius,fill:new ol.style.Fill(e),stroke:new ol.style.Stroke(u)})})};this.styleSelection=function(n){n.getStyle()instanceof ol.style.Style&&(t.holdSelectionDrawingStyle=n.getStyle());t.holdSelectedFeature=n;var i=t.getSelectionStyle(),r=[i,t.getVerticesStyle(i)];n.setStyle(r);n.changed()};this.handleSelectionChanged=function(n){var u=n.deselected.length>0,f=n.selected.length>0,r,i;u&&((i=n.deselected[0]).setStyle(t.holdSelectionDrawingStyle),t.holdSelectionDrawingStyle=null,null!=t._informFeatureChange)&&(r={id:i.getId()},t._informFeatureChange("selectionCleared",r));f&&(i=n.selected[0],(t.styleSelection(i),null!=t._informFeatureChange)&&(r={id:i.getId()},t._informFeatureChange("featureSelected",r)))};this.featureModified=function(n){var r=n.features.item(0),i;null!=t._informFeatureChange&&(i={id:r.getId()},t._informFeatureChange("featureModified",i))};this.featureModifiedOld=function(n){var f=n.features.item(0),i,r,o,s,h,c;if(null!=t._informFeatureChange){if(i=f.getProperties(),r=i.getProperties(),r.id=f.getId(),void 0!==i.get("area")){var e=f.getGeometry(),u=e.getLinearRing(0).getCoordinates()[0],l=e.getArea();i.set("area",l);r.area=l;o=t.getPolygonPerimeterLength(e);i.set("perimeter",o);r.perimeter=o;i.set("easting",u[0]);r.easting=u[0];i.set("northing",u[1]);r.northing=u[1]}else void 0!==i.get("length")&&(s=f.getGeometry(),h=(u=s.getCoordinates()[0],s.getLength()),i.set("length",h),r.length=h,i.set("easting",u[0]),r.easting=u[0],i.set("northing",u[1]),r.northing=u[1]);c=t.getFeaturesGeoJSONGeometry(f);i.set("geometryGeoJSON",c);r.geometryGeoJSON=c;f.setProperties(i);t._informFeatureChange("featureModified",r)}};this.deleteFeature=function(){var n=t._drawingLayers.activeSource,i=n.getFeatureById(t._IdOfFeatureToRemove),r;null!==i&&(n.removeFeature(i),t._deleteSelection.getFeatures().clear(),n.changed(),null!=t._informFeatureChange)&&(r={id:i.getId()},t._informFeatureChange("featureRemoved",r))};this.DeleteFeatureById=function(n,i){if(t._IdOfFeatureToRemove=n,i&&void 0!==t._confirmDeleteModalDiv&&t._confirmDeleteModalDiv.length>0){var r=$(t._confirmDeleteModalDiv);r.on("hidden.bs.modal",t.handleConfirmDeleteModalClose);r.modal("show")}else t.deleteFeature()};this.handleConfirmDeleteModalClose=function(){1==$(t._confirmDeleteModalDiv).prop("confirm")?t.deleteFeature():void 0!==t._deleteSelection&&t._deleteSelection.getFeatures().clear()};this.handleConfirmDeleteModalCloseOnSelectedItem=function(){1==$(t._confirmDeleteModalDiv).prop("confirm")&&(void 0!==t._modifySelection&&t._modifySelection.getFeatures().clear(),t.deleteFeature())};this.removeLayersSelectedFeature=function(n){var r,i;n.selected.length>0&&(r=n.selected[0],(t._IdOfFeatureToRemove=r.getId(),void 0!==t._confirmDeleteModalDiv&&t._confirmDeleteModalDiv.length>0)?(i=$(t._confirmDeleteModalDiv),i.on("hidden.bs.modal",t.handleConfirmDeleteModalClose),i.modal("show")):t.deleteFeature())};this.respondToFeatureClick=function(n){var i=t._map.getCoordinateFromPixel(n.pixel);t._featureClickListener(i)};this.listenForFeaturesClickedByUser=function(n){t._featureClickListener=n;t._map.on("singleclick",t.respondToFeatureClick)};this.ceaseListeningForFeatureClicks=function(){t._map.un("singleclick",t.respondToFeatureClick)};this.initialize(n)}return Object.defineProperty(n.prototype,"interactionManager",{get:function(){return this._interactionManager},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"OLMap",{get:function(){return this._map},enumerable:!0,configurable:!0}),n.prototype.initialize=function(n){this._map=n;this._drawingLayers=new u.DrawingLayers;this.wgs84Sphere=new ol.Sphere(6378137);this._selectionStrokeColour=[245,254,6,1];this._selectionFillColour=[245,254,6,.5];this._interactionManager=new f.InteractionManager(this._map)},n.prototype.addScaleLine=function(){var n=new ol.control.ScaleLine;this._scaleLine=n;this._map.addControl(this._scaleLine)},n.prototype.ReleaseSelections=function(){var n=this._modifySelection.getFeatures();n.getLength()>0&&n.item(0).setStyle(this.holdSelectionDrawingStyle);n.clear()},n.prototype.listenForMapResolutionChanges=function(n){this._informZoomChange=n;this._map.getView().on("propertychange",this.listenToViewChanges)},n.prototype.addNavigation=function(){var n=new ol.control.Zoom;this._map.addControl(n)},n.prototype.defineGeoJSONOptions=function(n,t,i){var r={defaultDataProjection:n,geometryName:t};this._GeoJSONformat=new ol.format.GeoJSON(r);this._GeoJSONWriteFeatureOptions={dataProjection:n,featureProjection:n,rightHanded:i}},n.prototype.getFeatureFromGeoJSONString=function(n){return this._GeoJSONformat.readFeature(n)},n.prototype.getGeoJSONFormatter=function(){return this._GeoJSONformat},n.prototype.getGeoJSONStringForFeatureSet=function(n){var t=this._GeoJSONformat.readFeatures(n);return 0==t.length?"":this._GeoJSONformat.writeFeatures(t)},n.prototype.getLayersFeaturesAsGeoJSONString=function(n){var t=this._drawingLayers.getLayerSource(n).getFeatures();return 0==t.length?"":this._GeoJSONformat.writeFeatures(t)},n.prototype.getLayersFeatures=function(n){return this._drawingLayers.getLayerSource(n).getFeatures()},n.prototype.layerHasFeatures=function(n){return this._drawingLayers.getLayerSource(n).getFeatures().length>0},n.prototype.getGeoJSONobjectFromGeoJSONstring=function(n){var t=this._GeoJSONformat.readFeatures(n);return this._GeoJSONformat.writeFeaturesObject(t)},n.prototype.getModifiedFeatureProperties=function(n,t){var i,r=this._drawingLayers.getLayerSource(n).getFeatureById(t),o,s,h,e,c;if(void 0!==r){if(o=this.getFeaturesGeoJSONGeometry(r),s=r.getProperties(),(i=[]).id=r.getId(),"Wetland"==s.featureType){var f=r.getGeometry(),u=f.getLinearRing(0).getCoordinates()[0],l=f.getArea();i.area=l;h=this.getPolygonPerimeterLength(f);i.perimeter=h;i.easting=u[0];i.northing=u[1]}else e=r.getGeometry(),c=(u=e.getCoordinates()[0],e.getLength()),i.length=c,i.easting=u[0],i.northing=u[1];i.geometryGeoJSON=o}return i},n.prototype.destroySelectedFeature=function(n,t){var u=t.getFeatures(),i,r;1==u.getLength()&&(i=u.getArray()[0],void 0!==i&&((this._IdOfFeatureToRemove=i.getId(),n&&void 0!==this._confirmDeleteModalDiv&&this._confirmDeleteModalDiv.length>0)?(r=$(this._confirmDeleteModalDiv),r.on("hidden.bs.modal",this.handleConfirmDeleteModalCloseOnSelectedItem),r.modal("show")):this.deleteFeature()))},n.prototype.addInteractiveDrawingLayer=function(n,t){var f={projection:t},i=new ol.source.Vector(f),r={color:"#ffcc33",width:2},u=new ol.layer.Vector({source:i,style:new ol.style.Style({fill:new ol.style.Fill({color:"rgba(255, 255, 255, 0.2)"}),stroke:new ol.style.Stroke(r),image:new ol.style.Circle({fill:new ol.style.Fill({color:"#ffcc33",width:2}),stroke:new ol.style.Stroke(r),radius:5})})});this._drawingLayers.addLayer(n,i,u);this._map.addLayer(u)},n.prototype.addMarkerLayer=function(n){var t=new ol.source.Vector({}),i=new ol.layer.Vector({source:t});this._drawingLayers.addMarkerLayer(n,t,i);this._map.addLayer(i)},n.prototype.hideLayer=function(n){this._drawingLayers.getLayer(n).setOpacity(0)},n.prototype.showLayer=function(n){this._drawingLayers.getLayer(n).setOpacity(1)},n.prototype.addMarker=function(n,t,i,r,u){var s=[r,i],o=ol.proj.fromLonLat(s,"EPSG:2193"),h={anchor:[.5,1],anchorXUnits:"fraction",anchorYUnits:"fraction",opacity:.8,src:u},c={image:new ol.style.Icon(h)},l=new ol.style.Style(c),a={geometry:new ol.geom.Point(o)},f=new ol.Feature(a),e;f.setStyle(l);f.setId(t);e=new ol.Object;e.set("easting",o[0]);e.set("northing",o[1]);f.setProperties(e);this._drawingLayers.getLayerSource(n).addFeature(f)},n.prototype.removeMarker=function(n,t){var i=this._drawingLayers.getLayerSource(n),r=i.getFeatureById(t);i.removeFeature(r)},n.prototype.zoomToMarker=function(n,t){var i=this._drawingLayers.getLayerSource(n).getFeatureById(t).getProperties(),u=[i.get("easting"),i.get("northing")],r=this._map.getView();r.setCenter(u);r.setZoom(12)},n.prototype.modifyDrawingLayerStyle=function(n,t,i,r){var e=this._drawingLayers.getLayer(n),s=e.getStyle(),f,u,o;"fill"===t&&(f=s.getFill(),"opacity"===i&&(u=f.getColor(),o=[u[0],u[1],u[2],r],f.setColor(o),e.changed()))},n.prototype.clearDrawingLayer=function(n){this._drawingLayers.getLayerSource(n).clear()},n.prototype.getInteractionManager=function(){return this._interactionManager},n.prototype.setActiveDrawingSource=function(n){this._drawingLayers.setActiveLayer(n)},n.prototype.modifySelectionColour=function(n){this._selectionStrokeColour=n;this._selectionFillColour=[0,0,0,.6];for(var t=0;t<3;++t)this._selectionFillColour[t]=this._selectionStrokeColour[t]},n.prototype.defineLineDrawingStyle=function(n,t,i,u){var f="crossHair"===n?r.Cursor.getCrossHairCursorStyle(t):r.Cursor.getCircleCursorStyle(t,t,2),e={color:i,width:u},o=new ol.style.Stroke(e),s={color:i},h=new ol.style.Fill(s);return new ol.style.Style({image:f,stroke:o,fill:h})},n.prototype.definePolygonDrawingStyle=function(n,t,i,u,f){var e="crossHair"===n?r.Cursor.getCrossHairCursorStyle(t):r.Cursor.getCircleCursorStyle(t,t,2),o={color:i,width:u},s=new ol.style.Stroke(o),h={color:f},c=new ol.style.Fill(h);return new ol.style.Style({image:e,stroke:s,fill:c})},n.prototype.defineModifyDrawingStyle=function(n,t){var i={color:n,width:t},r=new ol.style.Stroke(i);return new ol.style.Style({stroke:r})},n.prototype.defineDrawingInteraction=function(n,t,i,r){void 0===r&&(r=null);null===r&&(r=this._drawingLayers.activeSource);var u=new ol.interaction.Draw({source:r,type:n,snapTolerance:2,freehandCondition:function(n){return ol.events.condition.never(n)},style:t});return null!=i&&u.on("drawend",i),u},n.prototype.defineSelectInteraction=function(n){var t=new ol.interaction.Select({layers:[this._drawingLayers.activeLayer]});return this.vertexRadius=n,t.on("select",this.handleSelectionChanged),this._modifySelection=t,t},n.prototype.defineDestroyInteraction=function(n){this._confirmDeleteModalDiv="#"+n;var t=new ol.interaction.Select({layers:[this._drawingLayers.activeLayer]});return this._deleteSelection=t,t.on("select",this.removeLayersSelectedFeature),t},n.prototype.registerDestroyModal=function(n){this._confirmDeleteModalDiv="#"+n},n.prototype.defineModifyInteraction=function(n){var t={color:[255,255,255,1],width:3},u=new ol.style.Stroke(t),i={color:this._selectionFillColour},f=new ol.style.Fill(i),r=new ol.interaction.Modify({features:n.getFeatures(),style:new ol.style.Style({stroke:new ol.style.Stroke(t),fill:new ol.style.Fill(i),image:new ol.style.Circle({radius:4,fill:f,stroke:u})})});return r.on("modifyend",this.featureModified,null),r},n.prototype.addJSONFeaturesToDrawingLayer=function(n,t,i){var r=this._drawingLayers.getLayerSource(n),u=this._GeoJSONformat.readFeatures(i),f,e,o;u.length>0&&(t.Contains(i)?(f=t.Remove(i),e=r.getFeatureById(f),r.removeFeature(e)):(t.Add(i),o=u[0],r.addFeature(o)))},n.prototype.getDrawingLayersGeoJSONFeatureCollection=function(n){for(var u,f,e=this._drawingLayers.getLayerSource(n),i=new o.GeoJSONFeatureCollection,r=e.getFeatures(),t=0;t<r.length;++t)u=r[t].getProperties().geometryGeoJSON,f=this.getGeoJSONobjectFromGeoJSONstring(u),i.Add(f);return i},n.prototype.replaceLayerFeaturesWithGeoJSONfeatures=function(n,t){var i=this._drawingLayers.getLayerSource(n),r;i.clear();r=this._GeoJSONformat.readFeatures(t.GeoJSON);i.addFeatures(r)},n.prototype.addFeatureToDrawingLayer=function(n,t){this._drawingLayers.getLayerSource(n).addFeature(t)},n.prototype.getNextObjectId=function(){var n=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var i=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"==t?i:3&i|8).toString(16)})},n.prototype.RegisterFeatureChangeListener=function(n){this._informFeatureChange=n},n.prototype.GetFeatureChangeListener=function(){return this._informFeatureChange},n.prototype.zoomAndSelect=function(n,t){var i,r;(this.ReleaseSelections(),null!=t)&&(i=this._drawingLayers.activeSource.getFeatureById(t),n.getFeatures().push(i),this.styleSelection(i),r=i.getGeometry().getExtent(),this.zoomToExtent(r,1.5))},n.prototype.zoomToLatLong=function(n,t,i){var u=[t,n],f=ol.proj.fromLonLat(u,"EPSG:2193"),r=this._map.getView();r.setCenter(f);r.setZoom(i)},n.prototype.zoomToExtent=function(n,t){var i=ol.extent.buffer(n,t),r=this._map.getView(),u=this._map.getSize();r.fit(i,u)},n.prototype.displayAllLayerFeatures=function(n,t){var r=this._drawingLayers.activeLayerName,i;if(this._drawingLayers.setActiveLayer(n),i=this._drawingLayers.activeSource,i.getFeatures().length>0){var u=i.getExtent(),f=ol.extent.buffer(u,t),e=this._map.getView(),o=this._map.getSize();e.fit(f,o)}this._drawingLayers.setActiveLayer(r)},n.prototype.Resize=function(){this._map.updateSize()},n.prototype.setMapTarget=function(n){this._map.setTarget(n)},n.prototype.createToolbar=function(n,t,i){this._toolbar=new e.Toolbar(n,t,this._interactionManager,i)},n.prototype.registerToolbarChangeListener=function(n){this._toolbar.RegisterToolbarChangeListener(n)},n.prototype.getSphericalPolygonPerimeterLength=function(n){for(var f,e,r=this._map.getView().getProjection(),i=n.getLinearRing(0).getCoordinates(),u=0,t=0,o=i.length-1;t<o;++t)f=ol.proj.transform(i[t],r,"EPSG:4326"),e=ol.proj.transform(i[t+1],r,"EPSG:4326"),u+=this.wgs84Sphere.haversineDistance(f,e);return u},n.prototype.getPolygonPerimeterLength=function(n){for(var r,u,i=n.getLinearRing(0).getCoordinates(),f=0,t=0,e=i.length-1;t<e;++t)r=i[t],u=i[t+1],f+=Math.sqrt(Math.pow(u[0]-r[0],2)+Math.pow(u[1]-r[1],2));return f},n.prototype.getSphericalLineStringLength=function(n){for(var f,e,r=this._map.getView().getProjection(),i=n.getCoordinates(),u=0,t=0,o=i.length-1;t<o;++t)f=ol.proj.transform(i[t],r,"EPSG:4326"),e=ol.proj.transform(i[t+1],r,"EPSG:4326"),u+=this.wgs84Sphere.haversineDistance(f,e);return u},n.prototype.getFeature=function(n,t){return this._drawingLayers.getLayerSource(n).getFeatureById(t)},n.prototype.getFeatureLocation=function(n,t){var u=this._drawingLayers.getLayerSource(n).getFeatureById(t),f=[0,0],r,i,e;return null!=u&&(i=u.getGeometry(),i instanceof ol.geom.Polygon?r=i.getCoordinates()[0]:i instanceof ol.geom.LineString?r=i.getCoordinates():i instanceof ol.geom.Point?(e=i,(r=[]).push(e.getCoordinates())):r=i.getCoordinates(),f=r[0]),f},n.prototype.getLatLong=function(n){var t=this._map.getView().getProjection();return ol.proj.transform(n,t,"EPSG:4326")},n.prototype.getDrawingLayers=function(){return this._drawingLayers},n}();t.InteractiveMap=s},function(n,t,i){"use strict";var u,e=this&&this.__extends||(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},function(n,t){function i(){this.constructor=n}u(n,t);n.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var o=i(14),s=i(0),r=i(2),h=i(11),c=i(10),f=i(7);!function(n){var t=function(n){function t(t){var i=n.call(this,t)||this;return i.defineWaterbodyBoundaryAttributes=function(t){var r=t.feature,f,u;if(r.setStyle(i.waterbodyBoundaryDrawingStyle),r.setId(n.prototype.getNextObjectId.call(i)),f={featureType:"Waterbody"},r.setProperties(f),u=n.prototype.GetFeatureChangeListener.call(i),null!=u){var s=i.getFeaturesGeoJSONGeometry(r),e=r.getGeometry(),o=e.getCoordinates()[0],h=e.getLength();u("featureAdded",{featureType:"Waterbody",id:r.getId(),length:h,easting:o[0],northing:o[1],geometryGeoJSON:s})}},i.defineWaterwayAttributes=function(t){var r=t.feature,f,u;if(r.setStyle(i.waterwayDrawingStyle),r.setId(n.prototype.getNextObjectId.call(i)),f={featureType:"Waterway"},r.setProperties(f),u=n.prototype.GetFeatureChangeListener.call(i),null!=u){var s=i.getFeaturesGeoJSONGeometry(r),e=r.getGeometry(),o=e.getCoordinates()[0],h=e.getLength();u("featureAdded",{featureType:"Waterway",id:r.getId(),length:h,easting:o[0],northing:o[1],geometryGeoJSON:s})}},i.defineWetlandAttributes=function(t){var r=t.feature,e,u;if(r.setStyle(i.wetlandsDrawingStyle),r.setId(n.prototype.getNextObjectId.call(i)),e={featureType:"Wetland"},r.setProperties(e),u=n.prototype.GetFeatureChangeListener.call(i),null!=u){var s=i.getFeaturesGeoJSONGeometry(r),f=r.getGeometry(),o=f.getLinearRing(0).getCoordinates()[0],h=f.getArea(),c=i.getPolygonPerimeterLength(f);u("featureAdded",{featureType:"Wetland",id:r.getId(),area:h,perimeter:c,easting:o[0],northing:o[1],geometryGeoJSON:s})}},i.measureTooltipElement=null,i._previousFeature=null,i.defineMeasureAttributes=function(t){var r=t.feature,e,u,o,f;r.setStyle(i.measureDrawingStyle);r.setId(n.prototype.getNextObjectId.call(i));e={featureType:"Measure"};r.setProperties(e);n.prototype.GetFeatureChangeListener.call(i);u=r.getGeometry();o=u.getLength();(i.createMeasureTooltip(u.getLastCoordinate(),o,r),i._previousFeature)&&(f=i.getDrawingLayers().getLayerSource("measure"),-1!==f.getFeatures().indexOf(i._previousFeature)&&f.removeFeature(i._previousFeature));i._previousFeature=r},i.defineRetirementAreaAttributes=function(t){var r=t.feature,e,u;if(r.setStyle(i.retirementDrawingStyle),r.setId(n.prototype.getNextObjectId.call(i)),e={featureType:"Retirement area"},r.setProperties(e),u=n.prototype.GetFeatureChangeListener.call(i),null!=u){var s=i.getFeaturesGeoJSONGeometry(r),f=r.getGeometry(),o=f.getLinearRing(0).getCoordinates()[0],h=f.getArea(),c=i.getPolygonPerimeterLength(f);u("featureAdded",{featureType:"Retirement area",id:r.getId(),area:h,perimeter:c,easting:o[0],northing:o[1],geometryGeoJSON:s})}},i.handleMapResolutionChanges=function(n){i._mapResolution=n;i._respondToResolutionChanges&&i.adjustAerialLayerOpacityBasedOnMapResolution(i._mapResolution)},i.GetServiceTimeout=function(){null!=i._badServiceListener&&(i._badServiceListener("data.linz.govt.nz parcel boundary service","Timeout"),i._propertyDefinitionButton.Push())},i.RetrieveParcelBoundariesJSON=function(n){i.addJSONFeaturesToDrawingLayer("PropertyParcelBoundaries",i._propertyParcels,n)},i.hideMarkerLayer=function(){n.prototype.hideLayer.call(i,"markers")},i.showMarkerLayer=function(){n.prototype.showLayer.call(i,"markers")},i.handleZoomToHome=function(){var t=n.prototype.layerHasFeatures.call(i,"PropertyParcelBoundaries");t?n.prototype.displayAllLayerFeatures.call(i,"PropertyParcelBoundaries",1.3):(t=n.prototype.layerHasFeatures.call(i,"markers"))?n.prototype.displayAllLayerFeatures.call(i,"markers",1.5):(t=n.prototype.layerHasFeatures.call(i,"waterFeatures"))&&n.prototype.displayAllLayerFeatures.call(i,"waterFeatures",1.3)},i.handleParcelFeatureClick=function(t){var r=n.prototype.getLatLong.call(i,t),u="https://data.linz.govt.nz/services;key=3b847d090afe44138703f357bc793641/wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=layer-1571&count=1&cql_filter=Intersects(shape,POINT("+r[1].toString()+" "+r[0].toString()+"))&srsName=urn:ogc:def:crs:EPSG::2193&outputFormat=application/json";$.support.cors=!0;$.ajax({dataType:"json",url:u,success:i.RetrieveParcelBoundariesJSON,error:i.GetServiceTimeout,method:"GET",timeout:4e3})},i.serviceSuccess=function(){},i.getParcelLookupStatus=function(){var n=[172.46210171581737,-43.525492807051627],t="https://data.linz.govt.nz/services;key=3b847d090afe44138703f357bc793641/wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=layer-1571&count=1&cql_filter=Intersects(shape,POINT("+n[1].toString()+" "+n[0].toString()+"))&srsName=urn:ogc:def:crs:EPSG::2193&outputFormat=application/json";$.support.cors=!0;$.ajax({dataType:"json",url:t,success:i.serviceSuccess,error:i.GetServiceTimeout,method:"GET",timeout:3e3})},i.enterDefinePropertyMode=function(){i._respondToResolutionChanges=!1;null!==i._baseLayer&&(i._baseLayer.set("visible",!1),i._baseLayerText.set("visible",!1));i._aerialLayer.setOpacity(.3);i._parcelBoundaryLayer.set("visible",!0);i.modifyDrawingLayerStyle("PropertyParcelBoundaries","fill","opacity",.3);i.setActiveDrawingSource("PropertyParcelBoundaries");i.listenForFeaturesClickedByUser(i.handleParcelFeatureClick);i.getParcelLookupStatus()},i.exitDefinePropertyMode=function(){i.ceaseListeningForFeatureClicks();null!==i._baseLayer&&(i._baseLayer.set("visible",!0),i._baseLayerText.set("visible",!0));i._parcelBoundaryLayer.set("visible",!1);i._respondToResolutionChanges=!0;i.adjustAerialLayerOpacityBasedOnMapResolution(i._mapResolution);i.modifyDrawingLayerStyle("PropertyParcelBoundaries","fill","opacity",0);i.setActiveDrawingSource("waterFeatures")},i}return e(t,n),t.prototype.createMeasureTooltip=function(n,t,i){var e=this,o,u,r;this.measureTooltipElement&&this.measureTooltipElement.parentNode&&this.measureTooltipElement.parentNode.removeChild(this.measureTooltipElement);this.measureTooltipElement=document.createElement("div");this.measureTooltipElement.className="tooltip tooltip-measure";this.measureTooltipElement.addEventListener("click",function(){e.measureTooltipElement.parentNode.removeChild(e.measureTooltipElement);e.getDrawingLayers().getLayer("measure").getSource().removeFeature(i)});o=new ol.Overlay({element:this.measureTooltipElement,offset:[0,-15],positioning:"bottom-center"});o.setPosition(n);u=document.createElement("input");r=f(t).format("0.00a");"m"===r[r.length-1]&&(r=f(t/1e3).format("0,0.00")+"k");u.value=r+"m";this.measureTooltipElement.appendChild(u);this._map.addOverlay(o);u.select()},t.prototype.adjustAerialLayerOpacityBasedOnMapResolution=function(n){n<4?this._aerialLayer.setOpacity(1):n<10?this._aerialLayer.setOpacity(.6):n<50?this._aerialLayer.setOpacity(.4):this._aerialLayer.setOpacity(0)},t.prototype.RegisterBadServiceListener=function(n){this._badServiceListener=n},t.prototype.init=function(t,i,u,f){var e=this;this._mapFinishedPromise=new c.Promise(function(o){var c,l,a,v,y,w;e._baseLayer=t;e._baseLayerText=i;e._aerialLayer=u;e._respondToResolutionChanges=!0;n.prototype.listenForMapResolutionChanges.call(e,e.handleMapResolutionChanges);e._parcelBoundaryLayer=f;e._propertyParcels=new s.GeoJSONFeatureCollection;e.defineGeoJSONOptions("EPSG:2193","featureset",!0);c=n.prototype.getInteractionManager.call(e);e.addInteractiveDrawingLayer("PropertyParcelBoundaries","EPSG:2193");e.addInteractiveDrawingLayer("waterFeatures","EPSG:2193");e.addMarkerLayer("markers");e.addMarkerLayer("measure");e.waterbodyBoundaryDrawingStyle=n.prototype.defineLineDrawingStyle.call(e,"Circle",[0,0,255,1],[0,0,255,1],3);e.waterwayDrawingStyle=n.prototype.defineLineDrawingStyle.call(e,"Circle",[0,147,255,1],[0,147,255,1],3);e.wetlandsDrawingStyle=n.prototype.definePolygonDrawingStyle.call(e,"Circle",[0,255,0,1],[0,255,0,1],3,[0,255,0,.4],[0,255,0,.6],3);e.measureDrawingStyle=new ol.style.Style({fill:new ol.style.Fill({color:"rgba(255, 255, 255, 0.2)"}),stroke:new ol.style.Stroke({color:"rgba(0, 0, 0, 0.5)",lineDash:[10,10],width:2}),image:new ol.style.Circle({radius:5,stroke:new ol.style.Stroke({color:"rgba(0, 0, 0, 0.7)"}),fill:new ol.style.Fill({color:"rgba(255, 255, 255, 0.2)"})})});e.retirementDrawingStyle=n.prototype.definePolygonDrawingStyle.call(e,"Circle",[255,0,0,1],[255,0,0,1],3,[255,0,0,.4],[255,0,0,.6],3);e.modifyDrawingLayerStyle("PropertyParcelBoundaries","fill","opacity",0);c.SetupAlwaysOnDefaultInteractions(["MouseWheelZoom","DragPan"]);l=n.prototype.defineSelectInteraction.call(e,4);e._selectInteraction=l;var b=n.prototype.defineDrawingInteraction.call(e,"LineString",e.waterbodyBoundaryDrawingStyle,e.defineWaterbodyBoundaryAttributes),k=n.prototype.defineDrawingInteraction.call(e,"LineString",e.waterwayDrawingStyle,e.defineWaterwayAttributes),d=n.prototype.defineDrawingInteraction.call(e,"Polygon",e.wetlandsDrawingStyle,e.defineWetlandAttributes),g=n.prototype.defineDrawingInteraction.call(e,"LineString",e.measureDrawingStyle,e.defineMeasureAttributes,e.getDrawingLayers().getLayerSource("measure")),nt=n.prototype.defineModifyInteraction.call(e,l),tt=n.prototype.defineDestroyInteraction.call(e,"confirmDeleteModal");c.AddCustomPushButtonInteraction("Define property",null);c.AddCustomPushButtonInteraction("Select and modify",l);c.AddCustomPushButtonInteraction("Select and modify",nt);c.AddCustomPushButtonInteraction("Draw lake",b);c.AddCustomPushButtonInteraction("Draw waterway",k);c.AddCustomPushButtonInteraction("Draw wetlands",d);c.AddCustomPushButtonInteraction("Measure",g);c.AddCustomPushButtonInteraction("destroy",tt);a=new r.PushButton(e,"Define property","Define property","olControlPropertyParcelActive","olControlPropertyParcelInactive",e.enterDefinePropertyMode,e.exitDefinePropertyMode);e._propertyDefinitionButton=a;v=new r.PushButton(e,"Select and modify","Modify waterway","olControlEditActive","olControlEditInactive",e.hideMarkerLayer,e.showMarkerLayer);e._selectAndModifyButton=v;var it=new r.PushButton(e,"Draw lake","Draw lake or pond","olControlWaterbodyActive","olControlWaterbodyInactive",e.hideMarkerLayer,e.showMarkerLayer),rt=new r.PushButton(e,"Measure","Measure tool","olMeasureActive","olMeasureInactive",function(){return null},function(){return n.prototype.showLayer.call(e,"measure")}),ut=new r.PushButton(e,"Draw waterway","Draw stream or drain","olControlWaterwayActive","olControlWaterwayInactive",e.hideMarkerLayer,e.showMarkerLayer),ft=new r.PushButton(e,"Draw wetlands","Draw wetland or critical source area","olControlWetlandActive","olControlWetlandInactive",e.hideMarkerLayer,e.showMarkerLayer),et=new r.PushButton(e,"destroy","Delete waterway","olControlRemoveActive","olControlRemoveInactive",e.hideMarkerLayer,e.showMarkerLayer),p=new h.IndependentButton(e,"Zoom to property boundary","olControlHome","olControlHome",e.handleZoomToHome,!0);e._homeButton=p;y=document.getElementsByClassName("ol-zoom ol-unselectable ol-control");y.length>0&&y[0].appendChild(p.button);w=[a,it,ut,ft,v,rt,et];n.prototype.createToolbar.call(e,"olControlRiparianToolbar",w,null);o(e._map)})},t.prototype.getMapPromise=function(){return this._mapFinishedPromise},t.prototype.DisconnectMap=function(){n.prototype.setMapTarget.call(this,"")},t.prototype.ReconnectMap=function(){n.prototype.setMapTarget.call(this,"map")},t.prototype.UpdateMapSize=function(){n.prototype.Resize.call(this)},t.prototype.DestroySelectedFeature=function(t){n.prototype.destroySelectedFeature.call(this,t,this._selectInteraction)},t.prototype.RegisterToolChangeListener=function(t){n.prototype.registerToolbarChangeListener.call(this,t)},t.prototype.ZoomAndSelect=function(t){this._selectAndModifyButton.SetState(!0);n.prototype.zoomAndSelect.call(this,this._selectInteraction,t)},t.prototype.ZoomToLatLong=function(n,t){this.zoomToLatLong(n,t,12)},t.prototype.AddSupplyMarker=function(t,i,r){n.prototype.addMarker.call(this,"markers",t,i,r,"/img/green-home-marker.png")},t.prototype.ZoomToSupplyMarker=function(t){n.prototype.zoomToMarker.call(this,"markers",t)},t.prototype.RemoveSupplyMarker=function(t){n.prototype.removeMarker.call(this,"markers",t)},t.prototype.AddFeatureChangeListener=function(t){n.prototype.RegisterFeatureChangeListener.call(this,t)},t.prototype.GetModifiedFeatureProperties=function(t){var i,r=n.prototype.getFeature.call(this,"waterFeatures",t),o,s,h,e,c;if(void 0!==r){if(o=this.getFeaturesGeoJSONGeometry(r),s=r.getProperties(),(i={}).id=r.getId(),"Wetland"==s.featureType){var f=r.getGeometry(),u=f.getLinearRing(0).getCoordinates()[0],l=f.getArea();i.area=l;h=this.getPolygonPerimeterLength(f);i.perimeter=h;i.easting=u[0];i.northing=u[1]}else e=r.getGeometry(),c=(u=e.getCoordinates()[0],e.getLength()),i.length=c,i.easting=u[0],i.northing=u[1];i.geometryGeoJSON=o}return i},t.prototype.GetPropertyParcelsAsGeoJSONstring=function(){return this._propertyParcels.IsEmpty()?"":n.prototype.getGeoJSONStringForFeatureSet.call(this,this._propertyParcels.GeoJSON)},t.prototype.GetWaterFeaturesAsGeoJSONstring=function(){return n.prototype.getLayersFeaturesAsGeoJSONString.call(this,"waterFeatures")},t.prototype.SetPropertyParcelsFromGeoJSONstring=function(t){this._propertyParcels.Clear();this._propertyParcels.GeoJSON=n.prototype.getGeoJSONobjectFromGeoJSONstring.call(this,t);this.replaceLayerFeaturesWithGeoJSONfeatures("PropertyParcelBoundaries",this._propertyParcels)},t.prototype.RemoveAllPropertyParcels=function(){this._propertyParcels.Clear();this.clearDrawingLayer("PropertyParcelBoundaries")},t.prototype.RemoveAllFeatures=function(){this.clearDrawingLayer("waterFeatures")},t.prototype.LocateToPropertyParcels=function(){this.displayAllLayerFeatures("PropertyParcelBoundaries",1.5)},t.prototype.LocateToWaterFeatures=function(){this.displayAllLayerFeatures("waterFeatures",1.5)},t.prototype.GetFeatureLocation=function(t){return n.prototype.getFeatureLocation.call(this,"waterFeatures",t)},t.prototype.LoadFeatureFromGeoJSON=function(t){var f=t.geometryGeoJSON,i=n.prototype.getFeatureFromGeoJSONString.call(this,f),u=t.featureType,r;switch(u){case"Waterbody":i.setStyle(this.waterbodyBoundaryDrawingStyle);break;case"Waterway":i.setStyle(this.waterwayDrawingStyle);break;case"Wetland":i.setStyle(this.wetlandsDrawingStyle);break;case"Retirement area":i.setStyle(this.retirementDrawingStyle)}r={};r.featureType=u;i.setProperties(r);n.prototype.addFeatureToDrawingLayer.call(this,"waterFeatures",i)},t.prototype.GetPropertyParcelGeoJsonFeatureCollection=function(){return this._propertyParcels},t}(o.InteractiveMap);n.RiparianZoneMap=t}(t.RiparianManagementSpatialZone||(t.RiparianManagementSpatialZone={}))},function(n,t,i){"use strict";var r,o=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},function(n,t){function i(){this.constructor=n}r(n,t);n.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),u,f,e;Object.defineProperty(t,"__esModule",{value:!0});u=i(15);f=i(6);t.FarmFeatureMap=f.FarmFeatureMap;e=function(n){function t(){var t=this,r=(ol.proj.get("EPSG:2193"),(t=n.call(this,null)||this).getBaseLayer()),u=t.getBaseLayerText(),f=t.getAerialLayer(),i=t.getParcelLayer(),e;return i.setVisible(!1),e=new ol.Map({layers:[r,u,f,i],target:"map",controls:ol.control.defaults().extend([new ol.control.ScaleLine]),view:new ol.View({center:[1635340,5446125],minResolution:.29,resolutions:[4891.96981024998,2445.98490512499,1222.9924525624949,611.49622628137968,305.74811314055756,152.87405657041106,76.437028285073239,38.21851414253662,19.10925707126831,9.5546285356341549,4.77731426794937,2.3886571339746849,1.1943285668550503,.59716428355981721,.29858214164761665],projection:"EPSG:2193",resolution:2445.98490512499})}),t.initialize(e),t.init(r,u,f,i),t}return o(t,n),t.prototype.getAerialLayer=function(){var n=ol.proj.get("EPSG:2193"),t=[-4062457.5262811976,1461859.0976713542,7068246.3160593873,8771210.9999826662];n.setExtent(t);var i=new ol.tilegrid.WMTS({origin:[-4020900,19998100],resolutions:[4891.96981024998,2445.98490512499,1222.9924525624949,611.49622628137968,305.74811314055756,152.87405657041106,76.437028285073239,38.21851414253662,19.10925707126831,9.5546285356341549,4.77731426794937,2.3886571339746849,1.1943285668550503,.59716428355981721,.29858214164761665,.14929144441622216,.074644399288798582],matrixIds:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"]}),r={url:"https://services.arcgisonline.co.nz/arcgis/rest/services/Imagery/newzealand/MapServer/WMTS/tile/1.0.0/Imagery_newzealand/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",requestEncoding:"REST",crossOrigin:"anonymous",layer:"Imagery_newzealand",matrixSet:"default028mm",format:"image/jpeg",style:"default",attributions:[new ol.Attribution({html:'Aerial imagery data sourced from the <a href="https://data.linz.govt.nz/layer/1872-waikato-05m-rural-aerial-photos-2012-2013/" target="_blank">New Zealand LINZ Data Service <\/a> and licensed for re-use under the Creative Commons Attribution 3.0 New Zealand licence. Aerial imagery web mapping data service provided by Eagle Technology NZ and ESRI ArcOnline.<br>'})],projection:n,tileGrid:i},u=new ol.source.WMTS(r);return new ol.layer.Tile({opacity:.8,extent:t,minResolution:.29,maxResolution:153,source:u})},t.prototype.getParcelLayer=function(){var n=ol.proj.get("EPSG:2193"),t=[827933.23,3729820.29,3195373.59,7039943.58];n.setExtent(t);var i=new ol.tilegrid.WMTS({origin:[-1e6,1e7],resolutions:[8960,4480,2240,1120,560,280,140,70,28,14,7,2.8,1.4,.7,.28,.14,.07],matrixIds:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"]}),r={url:"http://tiles-{a-d}.data-cdn.linz.govt.nz/services;key=3b847d090afe44138703f357bc793641/tiles/v4/set=69/EPSG:2193/{TileMatrix}/{TileCol}/{TileRow}.png",requestEncoding:"REST",crossOrigin:"anonymous",style:"default",projection:n,attributions:[new ol.Attribution({html:'Land Parcle boundaries data sourced from the <a href="https://data.linz.govt.nz/set/69-nz-parcel-boundaries-wireframe/" target="_blank">New Zealand LINZ Data Service<\/a> and licenced for re-use under the Creative Commons Attribution 3.0 New Zealand licence.<br>'})],tileOptions:{crossOriginKeyword:"anonymous"},tileGrid:i},u=new ol.source.WMTS(r);return new ol.layer.Tile({opacity:.8,extent:t,minResolution:.59,maxResolution:8960,source:u})},t.prototype.getBaseLayer=function(){var t=ol.proj.get("EPSG:2193"),n=[1e6,47e5,22e5,63e5];t.setExtent(n);var i={extent:n,origin:ol.extent.getTopLeft(n),resolutions:[2822.2206982230455,1411.1103491115227,705.55517455576137,352.77758727788068,176.38879363894034,88.194396819470171,35.277758727788061,17.638879363894031,8.8194396819470153,3.5277758727788062],matrixIds:["0","1","2","3","4","5","6","7","8","9"]},r=new ol.tilegrid.WMTS(i),u={url:"http://maps.scinfo.org.nz/cached/wmts/",layer:"topobasemap_notext",matrixSet:"portalgridnztm2",format:"png8",version:"1.1.0",extent:n,style:"default",projection:t,attributions:[new ol.Attribution({html:'Base map contains data sourced from <a href="https://data.linz.govt.nz/layer/767-nz-topo50-maps/" target="_blank">LINZ New Zealand<\/a>. Crown Copyright Reserved. Base map web mapping data service provided by Landcare Research Ltd.<br>'})],units:"m",tileGrid:r},f=new ol.source.WMTS(u);return new ol.layer.Tile({opacity:1,extent:n,source:f})},t.prototype.getBaseLayerText=function(){var t=ol.proj.get("EPSG:2193"),n=[1e6,47e5,22e5,63e5];t.setExtent(n);var i={extent:n,origin:ol.extent.getTopLeft(n),resolutions:[2822.2206982230455,1411.1103491115227,705.55517455576137,352.77758727788068,176.38879363894034,88.194396819470171,35.277758727788061,17.638879363894031,8.8194396819470153,3.5277758727788062],matrixIds:["0","1","2","3","4","5","6","7","8","9"]},r={url:"http://maps.scinfo.org.nz/cached/wmts/",layer:"text",matrixSet:"portalgridnztm2",format:"png8",extent:n,style:"default",projection:t,units:"m",tileGrid:new ol.tilegrid.WMTS(i)},u=new ol.source.WMTS(r);return new ol.layer.Tile({opacity:1,extent:n,source:u})},t}(u.RiparianManagementSpatialZone.RiparianZoneMap);t.DairyNZDemoLinz=e}])