UNPKG

@visactor/vdataset

Version:

data processing tool

1 lines 142 kB
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).VDataset={})}(this,(function(t){"use strict";var n=Math.PI/3,r=[0,n,2*n,3*n,4*n,5*n];function e(t){return t[0]}function i(t){return t[1]}function o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function a(t){if(t.__esModule)return t;var n=t.default;if("function"==typeof n){var r=function t(){if(this instanceof t){var r=[null];return r.push.apply(r,arguments),new(Function.bind.apply(n,r))}return n.apply(this,arguments)};r.prototype=n.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach((function(n){var e=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,e.get?e:{enumerable:!0,get:function(){return t[n]}})})),r}var s={exports:{}};!function(t){var n=Object.prototype.hasOwnProperty,r="~";function e(){}function i(t,n,r){this.fn=t,this.context=n,this.once=r||!1}function o(t,n,e,o,a){if("function"!=typeof e)throw new TypeError("The listener must be a function");var s=new i(e,o||t,a),u=r?r+n:n;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],s]:t._events[u].push(s):(t._events[u]=s,t._eventsCount++),t}function a(t,n){0==--t._eventsCount?t._events=new e:delete t._events[n]}function s(){this._events=new e,this._eventsCount=0}Object.create&&(e.prototype=Object.create(null),(new e).__proto__||(r=!1)),s.prototype.eventNames=function(){var t,e,i=[];if(0===this._eventsCount)return i;for(e in t=this._events)n.call(t,e)&&i.push(r?e.slice(1):e);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},s.prototype.listeners=function(t){var n=r?r+t:t,e=this._events[n];if(!e)return[];if(e.fn)return[e.fn];for(var i=0,o=e.length,a=new Array(o);i<o;i++)a[i]=e[i].fn;return a},s.prototype.listenerCount=function(t){var n=r?r+t:t,e=this._events[n];return e?e.fn?1:e.length:0},s.prototype.emit=function(t,n,e,i,o,a){var s=r?r+t:t;if(!this._events[s])return!1;var u,l,c=this._events[s],f=arguments.length;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),f){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,n),!0;case 3:return c.fn.call(c.context,n,e),!0;case 4:return c.fn.call(c.context,n,e,i),!0;case 5:return c.fn.call(c.context,n,e,i,o),!0;case 6:return c.fn.call(c.context,n,e,i,o,a),!0}for(l=1,u=new Array(f-1);l<f;l++)u[l-1]=arguments[l];c.fn.apply(c.context,u)}else{var h,p=c.length;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),f){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,n);break;case 3:c[l].fn.call(c[l].context,n,e);break;case 4:c[l].fn.call(c[l].context,n,e,i);break;default:if(!u)for(h=1,u=new Array(f-1);h<f;h++)u[h-1]=arguments[h];c[l].fn.apply(c[l].context,u)}}return!0},s.prototype.on=function(t,n,r){return o(this,t,n,r,!1)},s.prototype.once=function(t,n,r){return o(this,t,n,r,!0)},s.prototype.removeListener=function(t,n,e,i){var o=r?r+t:t;if(!this._events[o])return this;if(!n)return a(this,o),this;var s=this._events[o];if(s.fn)s.fn!==n||i&&!s.once||e&&s.context!==e||a(this,o);else{for(var u=0,l=[],c=s.length;u<c;u++)(s[u].fn!==n||i&&!s[u].once||e&&s[u].context!==e)&&l.push(s[u]);l.length?this._events[o]=1===l.length?l[0]:l:a(this,o)}return this},s.prototype.removeAllListeners=function(t){var n;return t?(n=r?r+t:t,this._events[n]&&a(this,n)):(this._events=new e,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=r,s.EventEmitter=s,t.exports=s}(s);var u=o(s.exports);var l=(t,n)=>Object.prototype.toString.call(t)===`[object ${n}]`;var c=(t,n=!1)=>n?"boolean"==typeof t:!0===t||!1===t||l(t,"Boolean");var f=t=>"function"==typeof t;var h=t=>null==t;var p=t=>null!=t;var g=t=>{const n=typeof t;return null!==t&&"object"===n||"function"===n};var d=t=>"object"==typeof t&&null!==t;var v=function(t){if(!d(t)||!l(t,"Object"))return!1;if(null===Object.getPrototypeOf(t))return!0;let n=t;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n};var m=(t,n=!1)=>{const r=typeof t;return n?"string"===r:"string"===r||l(t,"String")};var y=t=>Array.isArray?Array.isArray(t):l(t,"Array");var b=function(t){return null!==t&&"function"!=typeof t&&Number.isFinite(t.length)};var w=t=>l(t,"Date");var M=(t,n=!1)=>{const r=typeof t;return n?"number"===r:"number"===r||l(t,"Number")};var x=t=>M(t)&&Number.isFinite(t);function E(t,n,r){let e;if(!p(t)||"object"!=typeof t||n&&n(t))return t;const i=y(t),o=t.length;e=i?new Array(o):"object"==typeof t?{}:c(t)||M(t)||m(t)?t:w(t)?new Date(+t):void 0;const a=i?void 0:Object.keys(Object(t));let s=-1;if(e)for(;++s<(a||t).length;){const i=a?a[s]:s,o=t[i];r&&r.includes(i.toString())?e[i]=o:e[i]=E(o,n,r)}return e}function S(t,n,r=!1,e=!1){if(n){if(t===n)return;if(p(n)&&"object"==typeof n){const i=Object(n),o=[];for(const t in i)o.push(t);let{length:a}=o,s=-1;for(;a--;){const a=o[++s];!p(i[a])||"object"!=typeof i[a]||e&&y(t[a])?P(t,a,i[a]):_(t,n,a,r,e)}}}}function _(t,n,r,e=!1,i=!1){const o=t[r],a=n[r];let s=n[r],u=!0;if(y(a)){if(e)s=[];else if(y(o))s=o;else if(b(o)){s=new Array(o.length);let t=-1;const n=o.length;for(;++t<n;)s[t]=o[t]}}else v(a)?(s=null!=o?o:{},"function"!=typeof o&&"object"==typeof o||(s={})):u=!1;u&&S(s,a,e,i),P(t,r,s)}function P(t,n,r){(void 0!==r&&!function(t,n){return t===n||Number.isNaN(t)&&Number.isNaN(n)}(t[n],r)||void 0===r&&!(n in t))&&(t[n]=r)}function k(t,...n){let r=-1;const e=n.length;for(;++r<e;)S(t,n[r],!0);return t}function F(t){return Object.prototype.toString.call(t)}function N(t){return Object.keys(t)}function A(t,n,r){if(t===n)return!0;if(typeof t!=typeof n)return!1;if(null==t||null==n)return!1;if(Number.isNaN(t)&&Number.isNaN(n))return!0;if(F(t)!==F(n))return!1;if(f(t))return!!(null==r?void 0:r.skipFunction);if("object"!=typeof t)return!1;if(y(t)){if(t.length!==n.length)return!1;for(let e=t.length-1;e>=0;e--)if(!A(t[e],n[e],r))return!1;return!0}if(!v(t))return!1;const e=N(t),i=N(n);if(e.length!==i.length)return!1;e.sort(),i.sort();for(let t=e.length-1;t>=0;t--)if(e[t]!=i[t])return!1;for(let i=e.length-1;i>=0;i--){const o=e[i];if(!A(t[o],n[o],r))return!1}return!0}function C(t){return t&&y(t)?Array.from(new Set(function(t){return p(t)?y(t)?t:[t]:[]}(t))):t}function D(t){if(!y(t))return[t];const n=[];for(const r of t)n.push(...D(r));return n}function j(t){return Number(t)}function O(t,n,r=j){const e=t.length;if(!e)return;if(n<=0||e<2)return r(t[0],0,t);if(n>=1)return r(t[e-1],e-1,t);const i=(e-1)*n,o=Math.floor(i),a=r(t[o],o,t);return a+(r(t[o+1],o+1,t)-a)*(i-o)}const L="undefined"!=typeof console;function V(t,n,r){const e=[n].concat([].slice.call(r));L&&console[t].apply(console,e)}var T;!function(t){t[t.None=0]="None",t[t.Error=1]="Error",t[t.Warn=2]="Warn",t[t.Info=3]="Info",t[t.Debug=4]="Debug"}(T||(T={}));class q{static getInstance(t,n){return q._instance&&M(t)?q._instance.level(t):q._instance||(q._instance=new q(t,n)),q._instance}static setInstance(t){return q._instance=t}static setInstanceLevel(t){q._instance?q._instance.level(t):q._instance=new q(t)}static clearInstance(){q._instance=null}constructor(t=T.None,n){this._onErrorHandler=[],this._level=t,this._method=n}addErrorHandler(t){this._onErrorHandler.find((n=>n===t))||this._onErrorHandler.push(t)}removeErrorHandler(t){const n=this._onErrorHandler.findIndex((n=>n===t));n<0||this._onErrorHandler.splice(n,1)}callErrorHandler(...t){this._onErrorHandler.forEach((n=>n(...t)))}canLogInfo(){return this._level>=T.Info}canLogDebug(){return this._level>=T.Debug}canLogError(){return this._level>=T.Error}canLogWarn(){return this._level>=T.Warn}level(t){return arguments.length?(this._level=+t,this):this._level}error(...t){var n;return this._level>=T.Error&&(this._onErrorHandler.length?this.callErrorHandler(...t):V(null!==(n=this._method)&&void 0!==n?n:"error","ERROR",t)),this}warn(...t){return this._level>=T.Warn&&V(this._method||"warn","WARN",t),this}info(...t){return this._level>=T.Info&&V(this._method||"log","INFO",t),this}debug(...t){return this._level>=T.Debug&&V(this._method||"log","DEBUG",t),this}}q._instance=null;var R=function(t,n,r){return t<n?n:t>r?r:t};class I{constructor(t=1,n=0,r=0,e=1,i=0,o=0){this.a=t,this.b=n,this.c=r,this.d=e,this.e=i,this.f=o}equalToMatrix(t){return!(this.e!==t.e||this.f!==t.f||this.a!==t.a||this.d!==t.d||this.b!==t.b||this.c!==t.c)}equalTo(t,n,r,e,i,o){return!(this.e!==i||this.f!==o||this.a!==t||this.d!==e||this.b!==n||this.c!==r)}setValue(t,n,r,e,i,o){return this.a=t,this.b=n,this.c=r,this.d=e,this.e=i,this.f=o,this}reset(){return this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,this}getInverse(){const t=this.a,n=this.b,r=this.c,e=this.d,i=this.e,o=this.f,a=new I,s=t*e-n*r;return a.a=e/s,a.b=-n/s,a.c=-r/s,a.d=t/s,a.e=(r*o-e*i)/s,a.f=-(t*o-n*i)/s,a}rotate(t){const n=Math.cos(t),r=Math.sin(t),e=this.a*n+this.c*r,i=this.b*n+this.d*r,o=this.a*-r+this.c*n,a=this.b*-r+this.d*n;return this.a=e,this.b=i,this.c=o,this.d=a,this}rotateByCenter(t,n,r){const e=Math.cos(t),i=Math.sin(t),o=(1-e)*n+i*r,a=(1-e)*r-i*n,s=e*this.a-i*this.b,u=i*this.a+e*this.b,l=e*this.c-i*this.d,c=i*this.c+e*this.d,f=e*this.e-i*this.f+o,h=i*this.e+e*this.f+a;return this.a=s,this.b=u,this.c=l,this.d=c,this.e=f,this.f=h,this}scale(t,n){return this.a*=t,this.b*=t,this.c*=n,this.d*=n,this}setScale(t,n){return this.b=this.b/this.a*t,this.c=this.c/this.d*n,this.a=t,this.d=n,this}transform(t,n,r,e,i,o){return this.multiply(t,n,r,e,i,o),this}translate(t,n){return this.e+=this.a*t+this.c*n,this.f+=this.b*t+this.d*n,this}transpose(){const{a:t,b:n,c:r,d:e,e:i,f:o}=this;return this.a=n,this.b=t,this.c=e,this.d=r,this.e=o,this.f=i,this}multiply(t,n,r,e,i,o){const a=this.a,s=this.b,u=this.c,l=this.d,c=a*t+u*n,f=s*t+l*n,h=a*r+u*e,p=s*r+l*e,g=a*i+u*o+this.e,d=s*i+l*o+this.f;return this.a=c,this.b=f,this.c=h,this.d=p,this.e=g,this.f=d,this}interpolate(t,n){const r=new I;return r.a=this.a+(t.a-this.a)*n,r.b=this.b+(t.b-this.b)*n,r.c=this.c+(t.c-this.c)*n,r.d=this.d+(t.d-this.d)*n,r.e=this.e+(t.e-this.e)*n,r.f=this.f+(t.f-this.f)*n,r}transformPoint(t,n){const{a:r,b:e,c:i,d:o,e:a,f:s}=this,u=r*o-e*i,l=o/u,c=-e/u,f=-i/u,h=r/u,p=(i*s-o*a)/u,g=-(r*s-e*a)/u,{x:d,y:v}=t;n.x=d*l+v*f+p,n.y=d*c+v*h+g}onlyTranslate(t=1){return this.a===t&&0===this.b&&0===this.c&&this.d===t}clone(){return new I(this.a,this.b,this.c,this.d,this.e,this.f)}toTransformAttrs(){const t=this.a,n=this.b,r=this.c,e=this.d,i=t*e-n*r,o={x:this.e,y:this.f,rotateDeg:0,scaleX:0,scaleY:0,skewX:0,skewY:0};if(0!==t||0!==n){const a=Math.sqrt(t*t+n*n);o.rotateDeg=n>0?Math.acos(t/a):-Math.acos(t/a),o.scaleX=a,o.scaleY=i/a,o.skewX=(t*r+n*e)/i,o.skewY=0}else if(0!==r||0!==e){const a=Math.sqrt(r*r+e*e);o.rotateDeg=Math.PI/2-(e>0?Math.acos(-r/a):-Math.acos(r/a)),o.scaleX=i/a,o.scaleY=a,o.skewX=0,o.skewY=(t*r+n*e)/i}return o.rotateDeg=180*o.rotateDeg/Math.PI,o}}function B(t,n,r){n/=100,r/=100;const e=(1-Math.abs(2*r-1))*n,i=e*(1-Math.abs(t/60%2-1)),o=r-e/2;let a=0,s=0,u=0;return 0<=t&&t<60?(a=e,s=i,u=0):60<=t&&t<120?(a=i,s=e,u=0):120<=t&&t<180?(a=0,s=e,u=i):180<=t&&t<240?(a=0,s=i,u=e):240<=t&&t<300?(a=i,s=0,u=e):300<=t&&t<360&&(a=e,s=0,u=i),a=Math.round(255*(a+o)),s=Math.round(255*(s+o)),u=Math.round(255*(u+o)),{r:a,g:s,b:u}}function G(t,n,r){t/=255,n/=255,r/=255;const e=Math.min(t,n,r),i=Math.max(t,n,r),o=i-e;let a=0,s=0,u=0;return a=0===o?0:i===t?(n-r)/o%6:i===n?(r-t)/o+2:(t-n)/o+4,a=Math.round(60*a),a<0&&(a+=360),u=(i+e)/2,s=0===o?0:o/(1-Math.abs(2*u-1)),s=+(100*s).toFixed(1),u=+(100*u).toFixed(1),{h:a,s:s,l:u}}const H=/^#([0-9a-f]{3,8})$/,$={transparent:4294967040},z={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function U(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function W(t){return M(t)?new K(t>>16,t>>8&255,255&t,1):y(t)?new K(t[0],t[1],t[2]):new K(255,255,255)}function Y(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function J(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const X=(t,n)=>{const r=H.exec(t);if(n||r){const t=parseInt(r[1],16),n=r[1].length;return 3===n?new K((t>>8&15)+((t>>8&15)<<4),(t>>4&15)+((t>>4&15)<<4),(15&t)+((15&t)<<4),1):6===n?W(t):8===n?new K(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):null}};class Z{static Brighter(t,n=1){return 1===n?t:new Z(t).brighter(n).toRGBA()}static SetOpacity(t,n=1){return 1===n?t:new Z(t).setOpacity(n).toRGBA()}static getColorBrightness(t,n="hsl"){const r=t instanceof Z?t:new Z(t);switch(n){case"hsv":default:return r.getHSVBrightness();case"hsl":return r.getHSLBrightness();case"lum":return r.getLuminance();case"lum2":return r.getLuminance2();case"lum3":return r.getLuminance3();case"wcag":return r.getLuminanceWCAG()}}static parseColorString(t){if(p($[t]))return function(t){return M(t)?new K(t>>>24,t>>>16&255,t>>>8&255,255&t):y(t)?new K(t[0],t[1],t[2],t[3]):new K(255,255,255,1)}($[t]);if(p(z[t]))return W(z[t]);const n=`${t}`.trim().toLowerCase(),r=X(n);if(void 0!==r)return r;if(/^(rgb|RGB|rgba|RGBA)/.test(n)){const t=n.replace(/(?:\(|\)|rgba|RGBA|rgb|RGB)*/g,"").split(",");return new K(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10),parseFloat(t[3]))}if(/^(hsl|HSL|hsla|HSLA)/.test(n)){const t=n.replace(/(?:\(|\)|hsla|HSLA|hsl|HSL)*/g,"").split(","),r=B(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10));return new K(r.r,r.g,r.b,parseFloat(t[3]))}}constructor(t){const n=Z.parseColorString(t);n?this.color=n:(console.warn(`Warn: 传入${t}无法解析为Color`),this.color=new K(255,255,255))}toRGBA(){return this.color.formatRgb()}toString(){return this.color.formatRgb()}toHex(){return this.color.formatHex()}toHsl(){return this.color.formatHsl()}brighter(t){const{r:n,g:r,b:e}=this.color;return this.color.r=Math.max(0,Math.min(255,Math.floor(n*t))),this.color.g=Math.max(0,Math.min(255,Math.floor(r*t))),this.color.b=Math.max(0,Math.min(255,Math.floor(e*t))),this}add(t){const{r:n,g:r,b:e}=this.color;return this.color.r+=Math.min(255,n+t.color.r),this.color.g+=Math.min(255,r+t.color.g),this.color.b+=Math.min(255,e+t.color.b),this}sub(t){return this.color.r=Math.max(0,this.color.r-t.color.r),this.color.g=Math.max(0,this.color.g-t.color.g),this.color.b=Math.max(0,this.color.b-t.color.b),this}multiply(t){const{r:n,g:r,b:e}=this.color;return this.color.r=Math.max(0,Math.min(255,Math.floor(n*t.color.r))),this.color.g=Math.max(0,Math.min(255,Math.floor(r*t.color.g))),this.color.b=Math.max(0,Math.min(255,Math.floor(e*t.color.b))),this}getHSVBrightness(){return Math.max(this.color.r,this.color.g,this.color.b)/255}getHSLBrightness(){return.5*(Math.max(this.color.r,this.color.g,this.color.b)/255+Math.min(this.color.r,this.color.g,this.color.b)/255)}setHsl(t,n,r){const e=this.color.opacity,i=G(this.color.r,this.color.g,this.color.b),o=B(h(t)?i.h:R(t,0,360),h(n)?i.s:n>=0&&n<=1?100*n:n,h(r)?i.l:r<=1&&r>=0?100*r:r);return this.color=new K(o.r,o.g,o.b,e),this}setRGB(t,n,r){return!h(t)&&(this.color.r=t),!h(n)&&(this.color.g=n),!h(r)&&(this.color.b=r),this}setHex(t){const n=`${t}`.trim().toLowerCase(),r=X(n,!0);return null!=r?r:this}setColorName(t){const n=z[t.toLowerCase()];return void 0!==n?this.setHex(n):console.warn("THREE.Color: Unknown color "+t),this}setScalar(t){return this.color.r=t,this.color.g=t,this.color.b=t,this}setOpacity(t=1){return this.color.opacity=t,this}getLuminance(){return(.2126*this.color.r+.7152*this.color.g+.0722*this.color.b)/255}getLuminance2(){return(.2627*this.color.r+.678*this.color.g+.0593*this.color.b)/255}getLuminance3(){return(.299*this.color.r+.587*this.color.g+.114*this.color.b)/255}getLuminanceWCAG(){const t=this.color.r/255,n=this.color.g/255,r=this.color.b/255;let e,i,o;return e=t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4),i=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),o=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4),.2126*e+.7152*i+.0722*o}clone(){return new Z(this.color.toString())}copyGammaToLinear(t,n=2){return this.color.r=Math.pow(t.color.r,n),this.color.g=Math.pow(t.color.g,n),this.color.b=Math.pow(t.color.b,n),this}copyLinearToGamma(t,n=2){const r=n>0?1/n:1;return this.color.r=Math.pow(t.color.r,r),this.color.g=Math.pow(t.color.g,r),this.color.b=Math.pow(t.color.b,r),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.color.r=Y(t.color.r),this.color.g=Y(t.color.g),this.color.b=Y(t.color.b),this}copyLinearToSRGB(t){return this.color.r=J(t.color.r),this.color.g=J(t.color.g),this.color.b=J(t.color.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}}class K{constructor(t,n,r,e){this.r=isNaN(+t)?255:Math.max(0,Math.min(255,+t)),this.g=isNaN(+n)?255:Math.max(0,Math.min(255,+n)),this.b=isNaN(+r)?255:Math.max(0,Math.min(255,+r)),p(e)?this.opacity=isNaN(+e)?1:Math.max(0,Math.min(1,+e)):this.opacity=1}formatHex(){return`#${U(this.r)+U(this.g)+U(this.b)+(1===this.opacity?"":U(255*this.opacity))}`}formatRgb(){const t=this.opacity;return`${1===t?"rgb(":"rgba("}${this.r},${this.g},${this.b}${1===t?")":`,${t})`}`}formatHsl(){const t=this.opacity,{h:n,s:r,l:e}=G(this.r,this.g,this.b);return`${1===t?"hsl(":"hsla("}${n},${r}%,${e}%${1===t?")":`,${t})`}`}toString(){return this.formatHex()}}function Q(t){return t.replace(/-([a-z])/g,((t,n)=>n.toUpperCase()))}function tt(t,n,r){void 0===r&&(r={});var e={type:"Feature"};return(0===r.id||r.id)&&(e.id=r.id),r.bbox&&(e.bbox=r.bbox),e.properties=n||{},e.geometry=t,e}function nt(t,n){void 0===n&&(n={});var r={type:"FeatureCollection"};return n.id&&(r.id=n.id),n.bbox&&(r.bbox=n.bbox),r.features=t,r}function rt(t){let n;return/^(rgba|RGBA)/.test(t)&&(n=function(t){const n=t.replace(/(?:\(|\)|rgba|RGBA)*/g,"").split(",");return{r:Number(n[0]),g:Number(n[1]),b:Number(n[2]),a:Number(n[3])}}(t)),{color:new Z(t),transparent:!!n,opacity:n?n.a:1}}function et(){return new it}function it(){this.reset()}it.prototype={constructor:it,reset:function(){this.s=this.t=0},add:function(t){at(ot,t,this.t),at(this,ot.s,this.s),this.s?this.t+=ot.t:this.s=ot.t},valueOf:function(){return this.s}};var ot=new it;function at(t,n,r){var e=t.s=n+r,i=e-n,o=e-i;t.t=n-o+(r-i)}var st=1e-6,ut=Math.PI,lt=ut/2,ct=ut/4,ft=2*ut,ht=180/ut,pt=ut/180,gt=Math.abs,dt=Math.atan,vt=Math.atan2,mt=Math.cos,yt=Math.exp,bt=Math.log,wt=Math.pow,Mt=Math.sin,xt=Math.sign||function(t){return t>0?1:t<0?-1:0},Et=Math.sqrt,St=Math.tan;function _t(t){return t>1?0:t<-1?ut:Math.acos(t)}function Pt(t){return t>1?lt:t<-1?-lt:Math.asin(t)}function kt(){}function Ft(t,n){t&&At.hasOwnProperty(t.type)&&At[t.type](t,n)}var Nt={Feature:function(t,n){Ft(t.geometry,n)},FeatureCollection:function(t,n){for(var r=t.features,e=-1,i=r.length;++e<i;)Ft(r[e].geometry,n)}},At={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var r=t.coordinates,e=-1,i=r.length;++e<i;)t=r[e],n.point(t[0],t[1],t[2])},LineString:function(t,n){Ct(t.coordinates,n,0)},MultiLineString:function(t,n){for(var r=t.coordinates,e=-1,i=r.length;++e<i;)Ct(r[e],n,0)},Polygon:function(t,n){Dt(t.coordinates,n)},MultiPolygon:function(t,n){for(var r=t.coordinates,e=-1,i=r.length;++e<i;)Dt(r[e],n)},GeometryCollection:function(t,n){for(var r=t.geometries,e=-1,i=r.length;++e<i;)Ft(r[e],n)}};function Ct(t,n,r){var e,i=-1,o=t.length-r;for(n.lineStart();++i<o;)e=t[i],n.point(e[0],e[1],e[2]);n.lineEnd()}function Dt(t,n){var r=-1,e=t.length;for(n.polygonStart();++r<e;)Ct(t[r],n,1);n.polygonEnd()}function jt(t,n){t&&Nt.hasOwnProperty(t.type)?Nt[t.type](t,n):Ft(t,n)}function Ot(t){return[vt(t[1],t[0]),Pt(t[2])]}function Lt(t){var n=t[0],r=t[1],e=mt(r);return[e*mt(n),e*Mt(n),Mt(r)]}function Vt(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Tt(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function qt(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Rt(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function It(t){var n=Et(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Bt(t,n){function r(r,e){return r=t(r,e),n(r[0],r[1])}return t.invert&&n.invert&&(r.invert=function(r,e){return(r=n.invert(r,e))&&t.invert(r[0],r[1])}),r}function Gt(t,n){return[gt(t)>ut?t+Math.round(-t/ft)*ft:t,n]}function Ht(t,n,r){return(t%=ft)?n||r?Bt(zt(t),Ut(n,r)):zt(t):n||r?Ut(n,r):Gt}function $t(t){return function(n,r){return[(n+=t)>ut?n-ft:n<-ut?n+ft:n,r]}}function zt(t){var n=$t(t);return n.invert=$t(-t),n}function Ut(t,n){var r=mt(t),e=Mt(t),i=mt(n),o=Mt(n);function a(t,n){var a=mt(n),s=mt(t)*a,u=Mt(t)*a,l=Mt(n),c=l*r+s*e;return[vt(u*i-c*o,s*r-l*e),Pt(c*i+u*o)]}return a.invert=function(t,n){var a=mt(n),s=mt(t)*a,u=Mt(t)*a,l=Mt(n),c=l*i-u*o;return[vt(u*i+l*o,s*r+c*e),Pt(c*r-s*e)]},a}function Wt(t,n){(n=Lt(n))[0]-=t,It(n);var r=_t(-n[1]);return((-n[2]<0?-r:r)+ft-st)%ft}function Yt(){var t,n=[];return{point:function(n,r,e){t.push([n,r,e])},lineStart:function(){n.push(t=[])},lineEnd:kt,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var r=n;return n=[],t=null,r}}}function Jt(t,n){return gt(t[0]-n[0])<st&&gt(t[1]-n[1])<st}function Xt(t,n,r,e){this.x=t,this.z=n,this.o=r,this.e=e,this.v=!1,this.n=this.p=null}function Zt(t,n,r,e,i){var o,a,s=[],u=[];if(t.forEach((function(t){if(!((n=t.length-1)<=0)){var n,r,e=t[0],a=t[n];if(Jt(e,a)){if(!e[2]&&!a[2]){for(i.lineStart(),o=0;o<n;++o)i.point((e=t[o])[0],e[1]);return void i.lineEnd()}a[0]+=2*st}s.push(r=new Xt(e,t,null,!0)),u.push(r.o=new Xt(e,null,r,!1)),s.push(r=new Xt(a,t,null,!1)),u.push(r.o=new Xt(a,null,r,!0))}})),s.length){for(u.sort(n),Kt(s),Kt(u),o=0,a=u.length;o<a;++o)u[o].e=r=!r;for(var l,c,f=s[0];;){for(var h=f,p=!0;h.v;)if((h=h.n)===f)return;l=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,a=l.length;o<a;++o)i.point((c=l[o])[0],c[1]);else e(h.x,h.n.x,1,i);h=h.n}else{if(p)for(l=h.p.z,o=l.length-1;o>=0;--o)i.point((c=l[o])[0],c[1]);else e(h.x,h.p.x,-1,i);h=h.p}l=(h=h.o).z,p=!p}while(!h.v);i.lineEnd()}}}function Kt(t){if(n=t.length){for(var n,r,e=0,i=t[0];++e<n;)i.n=r=t[e],r.p=i,i=r;i.n=r=t[0],r.p=i}}Gt.invert=Gt;var Qt=et();function tn(t){return gt(t[0])<=ut?t[0]:xt(t[0])*((gt(t[0])+ut)%ft-ut)}function nn(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function rn(t){for(var n,r,e,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(r=new Array(a);--i>=0;)for(n=(e=t[i]).length;--n>=0;)r[--a]=e[n];return r}function en(t,n,r,e){return function(i){var o,a,s,u=n(i),l=Yt(),c=n(l),f=!1,h={point:p,lineStart:d,lineEnd:v,polygonStart:function(){h.point=m,h.lineStart=y,h.lineEnd=b,a=[],o=[]},polygonEnd:function(){h.point=p,h.lineStart=d,h.lineEnd=v,a=rn(a);var t=function(t,n){var r=tn(n),e=n[1],i=Mt(e),o=[Mt(r),-mt(r),0],a=0,s=0;Qt.reset(),1===i?e=lt+st:-1===i&&(e=-lt-st);for(var u=0,l=t.length;u<l;++u)if(f=(c=t[u]).length)for(var c,f,h=c[f-1],p=tn(h),g=h[1]/2+ct,d=Mt(g),v=mt(g),m=0;m<f;++m,p=b,d=M,v=x,h=y){var y=c[m],b=tn(y),w=y[1]/2+ct,M=Mt(w),x=mt(w),E=b-p,S=E>=0?1:-1,_=S*E,P=_>ut,k=d*M;if(Qt.add(vt(k*S*Mt(_),v*x+k*mt(_))),a+=P?E+S*ft:E,P^p>=r^b>=r){var F=Tt(Lt(h),Lt(y));It(F);var N=Tt(o,F);It(N);var A=(P^E>=0?-1:1)*Pt(N[2]);(e>A||e===A&&(F[0]||F[1]))&&(s+=P^E>=0?1:-1)}}return(a<-st||a<st&&Qt<-st)^1&s}(o,e);a.length?(f||(i.polygonStart(),f=!0),Zt(a,an,t,r,i)):t&&(f||(i.polygonStart(),f=!0),i.lineStart(),r(null,null,1,i),i.lineEnd()),f&&(i.polygonEnd(),f=!1),a=o=null},sphere:function(){i.polygonStart(),i.lineStart(),r(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function p(n,r){t(n,r)&&i.point(n,r)}function g(t,n){u.point(t,n)}function d(){h.point=g,u.lineStart()}function v(){h.point=p,u.lineEnd()}function m(t,n){s.push([t,n]),c.point(t,n)}function y(){c.lineStart(),s=[]}function b(){m(s[0][0],s[0][1]),c.lineEnd();var t,n,r,e,u=c.clean(),h=l.result(),p=h.length;if(s.pop(),o.push(s),s=null,p)if(1&u){if((n=(r=h[0]).length-1)>0){for(f||(i.polygonStart(),f=!0),i.lineStart(),t=0;t<n;++t)i.point((e=r[t])[0],e[1]);i.lineEnd()}}else p>1&&2&u&&h.push(h.pop().concat(h.shift())),a.push(h.filter(on))}return h}}function on(t){return t.length>1}function an(t,n){return((t=t.x)[0]<0?t[1]-lt-st:lt-t[1])-((n=n.x)[0]<0?n[1]-lt-st:lt-n[1])}!function(t){var n;1===t.length&&(n=t,t=function(t,r){return nn(n(t),r)})}(nn);var sn=en((function(){return!0}),(function(t){var n,r=NaN,e=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var s=o>0?ut:-ut,u=gt(o-r);gt(u-ut)<st?(t.point(r,e=(e+a)/2>0?lt:-lt),t.point(i,e),t.lineEnd(),t.lineStart(),t.point(s,e),t.point(o,e),n=0):i!==s&&u>=ut&&(gt(r-i)<st&&(r-=i*st),gt(o-s)<st&&(o-=s*st),e=function(t,n,r,e){var i,o,a=Mt(t-r);return gt(a)>st?dt((Mt(n)*(o=mt(e))*Mt(r)-Mt(e)*(i=mt(n))*Mt(t))/(i*o*a)):(n+e)/2}(r,e,o,a),t.point(i,e),t.lineEnd(),t.lineStart(),t.point(s,e),n=0),t.point(r=o,e=a),i=s},lineEnd:function(){t.lineEnd(),r=e=NaN},clean:function(){return 2-n}}}),(function(t,n,r,e){var i;if(null==t)i=r*lt,e.point(-ut,i),e.point(0,i),e.point(ut,i),e.point(ut,0),e.point(ut,-i),e.point(0,-i),e.point(-ut,-i),e.point(-ut,0),e.point(-ut,i);else if(gt(t[0]-n[0])>st){var o=t[0]<n[0]?ut:-ut;i=r*o/2,e.point(-o,i),e.point(0,i),e.point(o,i)}else e.point(n[0],n[1])}),[-ut,-lt]);function un(t){var n=mt(t),r=6*pt,e=n>0,i=gt(n)>st;function o(t,r){return mt(t)*mt(r)>n}function a(t,r,e){var i=[1,0,0],o=Tt(Lt(t),Lt(r)),a=Vt(o,o),s=o[0],u=a-s*s;if(!u)return!e&&t;var l=n*a/u,c=-n*s/u,f=Tt(i,o),h=Rt(i,l);qt(h,Rt(o,c));var p=f,g=Vt(h,p),d=Vt(p,p),v=g*g-d*(Vt(h,h)-1);if(!(v<0)){var m=Et(v),y=Rt(p,(-g-m)/d);if(qt(y,h),y=Ot(y),!e)return y;var b,w=t[0],M=r[0],x=t[1],E=r[1];M<w&&(b=w,w=M,M=b);var S=M-w,_=gt(S-ut)<st;if(!_&&E<x&&(b=x,x=E,E=b),_||S<st?_?x+E>0^y[1]<(gt(y[0]-w)<st?x:E):x<=y[1]&&y[1]<=E:S>ut^(w<=y[0]&&y[0]<=M)){var P=Rt(p,(-g+m)/d);return qt(P,h),[y,Ot(P)]}}}function s(n,r){var i=e?t:ut-t,o=0;return n<-i?o|=1:n>i&&(o|=2),r<-i?o|=4:r>i&&(o|=8),o}return en(o,(function(t){var n,r,u,l,c;return{lineStart:function(){l=u=!1,c=1},point:function(f,h){var p,g=[f,h],d=o(f,h),v=e?d?0:s(f,h):d?s(f+(f<0?ut:-ut),h):0;if(!n&&(l=u=d)&&t.lineStart(),d!==u&&(!(p=a(n,g))||Jt(n,p)||Jt(g,p))&&(g[2]=1),d!==u)c=0,d?(t.lineStart(),p=a(g,n),t.point(p[0],p[1])):(p=a(n,g),t.point(p[0],p[1],2),t.lineEnd()),n=p;else if(i&&n&&e^d){var m;v&r||!(m=a(g,n,!0))||(c=0,e?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1],3)))}!d||n&&Jt(n,g)||t.point(g[0],g[1]),n=g,u=d,r=v},lineEnd:function(){u&&t.lineEnd(),n=null},clean:function(){return c|(l&&u)<<1}}}),(function(n,e,i,o){!function(t,n,r,e,i,o){if(r){var a=mt(n),s=Mt(n),u=e*r;null==i?(i=n+e*ft,o=n-u/2):(i=Wt(a,i),o=Wt(a,o),(e>0?i<o:i>o)&&(i+=e*ft));for(var l,c=i;e>0?c>o:c<o;c-=u)l=Ot([a,-s*mt(c),-s*Mt(c)]),t.point(l[0],l[1])}}(o,t,r,i,n,e)}),e?[0,-t]:[-ut,t-ut])}var ln=1e9,cn=-ln;function fn(t,n,r,e){function i(i,o){return t<=i&&i<=r&&n<=o&&o<=e}function o(i,o,s,l){var c=0,f=0;if(null==i||(c=a(i,s))!==(f=a(o,s))||u(i,o)<0^s>0)do{l.point(0===c||3===c?t:r,c>1?e:n)}while((c=(c+s+4)%4)!==f);else l.point(o[0],o[1])}function a(e,i){return gt(e[0]-t)<st?i>0?0:3:gt(e[0]-r)<st?i>0?2:1:gt(e[1]-n)<st?i>0?1:0:i>0?3:2}function s(t,n){return u(t.x,n.x)}function u(t,n){var r=a(t,1),e=a(n,1);return r!==e?r-e:0===r?n[1]-t[1]:1===r?t[0]-n[0]:2===r?t[1]-n[1]:n[0]-t[0]}return function(a){var u,l,c,f,h,p,g,d,v,m,y,b=a,w=Yt(),M={point:x,lineStart:function(){M.point=E,l&&l.push(c=[]);m=!0,v=!1,g=d=NaN},lineEnd:function(){u&&(E(f,h),p&&v&&w.rejoin(),u.push(w.result()));M.point=x,v&&b.lineEnd()},polygonStart:function(){b=w,u=[],l=[],y=!0},polygonEnd:function(){var n=function(){for(var n=0,r=0,i=l.length;r<i;++r)for(var o,a,s=l[r],u=1,c=s.length,f=s[0],h=f[0],p=f[1];u<c;++u)o=h,a=p,h=(f=s[u])[0],p=f[1],a<=e?p>e&&(h-o)*(e-a)>(p-a)*(t-o)&&++n:p<=e&&(h-o)*(e-a)<(p-a)*(t-o)&&--n;return n}(),r=y&&n,i=(u=rn(u)).length;(r||i)&&(a.polygonStart(),r&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&Zt(u,s,n,o,a),a.polygonEnd());b=a,u=l=c=null}};function x(t,n){i(t,n)&&b.point(t,n)}function E(o,a){var s=i(o,a);if(l&&c.push([o,a]),m)f=o,h=a,p=s,m=!1,s&&(b.lineStart(),b.point(o,a));else if(s&&v)b.point(o,a);else{var u=[g=Math.max(cn,Math.min(ln,g)),d=Math.max(cn,Math.min(ln,d))],w=[o=Math.max(cn,Math.min(ln,o)),a=Math.max(cn,Math.min(ln,a))];!function(t,n,r,e,i,o){var a,s=t[0],u=t[1],l=0,c=1,f=n[0]-s,h=n[1]-u;if(a=r-s,f||!(a>0)){if(a/=f,f<0){if(a<l)return;a<c&&(c=a)}else if(f>0){if(a>c)return;a>l&&(l=a)}if(a=i-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>l&&(l=a)}else if(f>0){if(a<l)return;a<c&&(c=a)}if(a=e-u,h||!(a>0)){if(a/=h,h<0){if(a<l)return;a<c&&(c=a)}else if(h>0){if(a>c)return;a>l&&(l=a)}if(a=o-u,h||!(a<0)){if(a/=h,h<0){if(a>c)return;a>l&&(l=a)}else if(h>0){if(a<l)return;a<c&&(c=a)}return l>0&&(t[0]=s+l*f,t[1]=u+l*h),c<1&&(n[0]=s+c*f,n[1]=u+c*h),!0}}}}}(u,w,t,n,r,e)?s&&(b.lineStart(),b.point(o,a),y=!1):(v||(b.lineStart(),b.point(u[0],u[1])),b.point(w[0],w[1]),s||b.lineEnd(),y=!1)}g=o,d=a,v=s}return M}}function hn(t){return t}var pn,gn,dn,vn,mn=et(),yn=et(),bn={point:kt,lineStart:kt,lineEnd:kt,polygonStart:function(){bn.lineStart=wn,bn.lineEnd=En},polygonEnd:function(){bn.lineStart=bn.lineEnd=bn.point=kt,mn.add(gt(yn)),yn.reset()},result:function(){var t=mn/2;return mn.reset(),t}};function wn(){bn.point=Mn}function Mn(t,n){bn.point=xn,pn=dn=t,gn=vn=n}function xn(t,n){yn.add(vn*t-dn*n),dn=t,vn=n}function En(){xn(pn,gn)}var Sn=bn,_n=1/0,Pn=_n,kn=-_n,Fn=kn,Nn={point:function(t,n){t<_n&&(_n=t);t>kn&&(kn=t);n<Pn&&(Pn=n);n>Fn&&(Fn=n)},lineStart:kt,lineEnd:kt,polygonStart:kt,polygonEnd:kt,result:function(){var t=[[_n,Pn],[kn,Fn]];return kn=Fn=-(Pn=_n=1/0),t}};var An,Cn,Dn,jn,On=Nn,Ln=0,Vn=0,Tn=0,qn=0,Rn=0,In=0,Bn=0,Gn=0,Hn=0,$n={point:zn,lineStart:Un,lineEnd:Jn,polygonStart:function(){$n.lineStart=Xn,$n.lineEnd=Zn},polygonEnd:function(){$n.point=zn,$n.lineStart=Un,$n.lineEnd=Jn},result:function(){var t=Hn?[Bn/Hn,Gn/Hn]:In?[qn/In,Rn/In]:Tn?[Ln/Tn,Vn/Tn]:[NaN,NaN];return Ln=Vn=Tn=qn=Rn=In=Bn=Gn=Hn=0,t}};function zn(t,n){Ln+=t,Vn+=n,++Tn}function Un(){$n.point=Wn}function Wn(t,n){$n.point=Yn,zn(Dn=t,jn=n)}function Yn(t,n){var r=t-Dn,e=n-jn,i=Et(r*r+e*e);qn+=i*(Dn+t)/2,Rn+=i*(jn+n)/2,In+=i,zn(Dn=t,jn=n)}function Jn(){$n.point=zn}function Xn(){$n.point=Kn}function Zn(){Qn(An,Cn)}function Kn(t,n){$n.point=Qn,zn(An=Dn=t,Cn=jn=n)}function Qn(t,n){var r=t-Dn,e=n-jn,i=Et(r*r+e*e);qn+=i*(Dn+t)/2,Rn+=i*(jn+n)/2,In+=i,Bn+=(i=jn*t-Dn*n)*(Dn+t),Gn+=i*(jn+n),Hn+=3*i,zn(Dn=t,jn=n)}var tr=$n;function nr(t){this._context=t}nr.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,ft)}},result:kt};var rr,er,ir,or,ar,sr=et(),ur={point:kt,lineStart:function(){ur.point=lr},lineEnd:function(){rr&&cr(er,ir),ur.point=kt},polygonStart:function(){rr=!0},polygonEnd:function(){rr=null},result:function(){var t=+sr;return sr.reset(),t}};function lr(t,n){ur.point=cr,er=or=t,ir=ar=n}function cr(t,n){or-=t,ar-=n,sr.add(Et(or*or+ar*ar)),or=t,ar=n}var fr=ur;function hr(){this._string=[]}function pr(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function gr(t,n){var r,e,i=4.5;function o(t){return t&&("function"==typeof i&&e.pointRadius(+i.apply(this,arguments)),jt(t,r(e))),e.result()}return o.area=function(t){return jt(t,r(Sn)),Sn.result()},o.measure=function(t){return jt(t,r(fr)),fr.result()},o.bounds=function(t){return jt(t,r(On)),On.result()},o.centroid=function(t){return jt(t,r(tr)),tr.result()},o.projection=function(n){return arguments.length?(r=null==n?(t=null,hn):(t=n).stream,o):t},o.context=function(t){return arguments.length?(e=null==t?(n=null,new hr):new nr(n=t),"function"!=typeof i&&e.pointRadius(i),o):n},o.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(e.pointRadius(+t),+t),o):i},o.projection(t).context(n)}function dr(t){return function(n){var r=new vr;for(var e in t)r[e]=t[e];return r.stream=n,r}}function vr(){}function mr(t,n,r){var e=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=e&&t.clipExtent(null),jt(r,t.stream(On)),n(On.result()),null!=e&&t.clipExtent(e),t}function yr(t,n,r){return mr(t,(function(r){var e=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(e/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),a=+n[0][0]+(e-o*(r[1][0]+r[0][0]))/2,s=+n[0][1]+(i-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([a,s])}),r)}function br(t,n,r){return yr(t,[[0,0],n],r)}function wr(t,n,r){return mr(t,(function(r){var e=+n,i=e/(r[1][0]-r[0][0]),o=(e-i*(r[1][0]+r[0][0]))/2,a=-i*r[0][1];t.scale(150*i).translate([o,a])}),r)}function Mr(t,n,r){return mr(t,(function(r){var e=+n,i=e/(r[1][1]-r[0][1]),o=-i*r[0][0],a=(e-i*(r[1][1]+r[0][1]))/2;t.scale(150*i).translate([o,a])}),r)}hr.prototype={_radius:4.5,_circle:pr(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=pr(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},vr.prototype={constructor:vr,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var xr=16,Er=mt(30*pt);function Sr(t,n){return+n?function(t,n){function r(e,i,o,a,s,u,l,c,f,h,p,g,d,v){var m=l-e,y=c-i,b=m*m+y*y;if(b>4*n&&d--){var w=a+h,M=s+p,x=u+g,E=Et(w*w+M*M+x*x),S=Pt(x/=E),_=gt(gt(x)-1)<st||gt(o-f)<st?(o+f)/2:vt(M,w),P=t(_,S),k=P[0],F=P[1],N=k-e,A=F-i,C=y*N-m*A;(C*C/b>n||gt((m*N+y*A)/b-.5)>.3||a*h+s*p+u*g<Er)&&(r(e,i,o,a,s,u,k,F,_,w/=E,M/=E,x,d,v),v.point(k,F),r(k,F,_,w,M,x,l,c,f,h,p,g,d,v))}}return function(n){var e,i,o,a,s,u,l,c,f,h,p,g,d={point:v,lineStart:m,lineEnd:b,polygonStart:function(){n.polygonStart(),d.lineStart=w},polygonEnd:function(){n.polygonEnd(),d.lineStart=m}};function v(r,e){r=t(r,e),n.point(r[0],r[1])}function m(){c=NaN,d.point=y,n.lineStart()}function y(e,i){var o=Lt([e,i]),a=t(e,i);r(c,f,l,h,p,g,c=a[0],f=a[1],l=e,h=o[0],p=o[1],g=o[2],xr,n),n.point(c,f)}function b(){d.point=v,n.lineEnd()}function w(){m(),d.point=M,d.lineEnd=x}function M(t,n){y(e=t,n),i=c,o=f,a=h,s=p,u=g,d.point=y}function x(){r(c,f,l,h,p,g,i,o,e,a,s,u,xr,n),d.lineEnd=b,b()}return d}}(t,n):function(t){return dr({point:function(n,r){n=t(n,r),this.stream.point(n[0],n[1])}})}(t)}var _r=dr({point:function(t,n){this.stream.point(t*pt,n*pt)}});function Pr(t,n,r,e,i){function o(o,a){return[n+t*(o*=e),r-t*(a*=i)]}return o.invert=function(o,a){return[(o-n)/t*e,(r-a)/t*i]},o}function kr(t,n,r,e,i,o){var a=mt(o),s=Mt(o),u=a*t,l=s*t,c=a/t,f=s/t,h=(s*r-a*n)/t,p=(s*n+a*r)/t;function g(t,o){return[u*(t*=e)-l*(o*=i)+n,r-l*t-u*o]}return g.invert=function(t,n){return[e*(c*t-f*n+h),i*(p-f*t-c*n)]},g}function Fr(t){return Nr((function(){return t}))()}function Nr(t){var n,r,e,i,o,a,s,u,l,c,f=150,h=480,p=250,g=0,d=0,v=0,m=0,y=0,b=0,w=1,M=1,x=null,E=sn,S=null,_=hn,P=.5;function k(t){return u(t[0]*pt,t[1]*pt)}function F(t){return(t=u.invert(t[0],t[1]))&&[t[0]*ht,t[1]*ht]}function N(){var t=kr(f,0,0,w,M,b).apply(null,n(g,d)),e=(b?kr:Pr)(f,h-t[0],p-t[1],w,M,b);return r=Ht(v,m,y),s=Bt(n,e),u=Bt(r,s),a=Sr(s,P),A()}function A(){return l=c=null,k}return k.stream=function(t){return l&&c===t?l:l=_r(function(t){return dr({point:function(n,r){var e=t(n,r);return this.stream.point(e[0],e[1])}})}(r)(E(a(_(c=t)))))},k.preclip=function(t){return arguments.length?(E=t,x=void 0,A()):E},k.postclip=function(t){return arguments.length?(_=t,S=e=i=o=null,A()):_},k.clipAngle=function(t){return arguments.length?(E=+t?un(x=t*pt):(x=null,sn),A()):x*ht},k.clipExtent=function(t){return arguments.length?(_=null==t?(S=e=i=o=null,hn):fn(S=+t[0][0],e=+t[0][1],i=+t[1][0],o=+t[1][1]),A()):null==S?null:[[S,e],[i,o]]},k.scale=function(t){return arguments.length?(f=+t,N()):f},k.translate=function(t){return arguments.length?(h=+t[0],p=+t[1],N()):[h,p]},k.center=function(t){return arguments.length?(g=t[0]%360*pt,d=t[1]%360*pt,N()):[g*ht,d*ht]},k.rotate=function(t){return arguments.length?(v=t[0]%360*pt,m=t[1]%360*pt,y=t.length>2?t[2]%360*pt:0,N()):[v*ht,m*ht,y*ht]},k.angle=function(t){return arguments.length?(b=t%360*pt,N()):b*ht},k.reflectX=function(t){return arguments.length?(w=t?-1:1,N()):w<0},k.reflectY=function(t){return arguments.length?(M=t?-1:1,N()):M<0},k.precision=function(t){return arguments.length?(a=Sr(s,P=t*t),A()):Et(P)},k.fitExtent=function(t,n){return yr(k,t,n)},k.fitSize=function(t,n){return br(k,t,n)},k.fitWidth=function(t,n){return wr(k,t,n)},k.fitHeight=function(t,n){return Mr(k,t,n)},function(){return n=t.apply(this,arguments),k.invert=n.invert&&F,N()}}function Ar(t){var n=0,r=ut/3,e=Nr(t),i=e(n,r);return i.parallels=function(t){return arguments.length?e(n=t[0]*pt,r=t[1]*pt):[n*ht,r*ht]},i}function Cr(t,n){var r=Mt(t),e=(r+Mt(n))/2;if(gt(e)<st)return function(t){var n=mt(t);function r(t,r){return[t*n,Mt(r)/n]}return r.invert=function(t,r){return[t/n,Pt(r*n)]},r}(t);var i=1+r*(2*e-r),o=Et(i)/e;function a(t,n){var r=Et(i-2*e*Mt(n))/e;return[r*Mt(t*=e),o-r*mt(t)]}return a.invert=function(t,n){var r=o-n,a=vt(t,gt(r))*xt(r);return r*e<0&&(a-=ut*xt(t)*xt(r)),[a/e,Pt((i-(t*t+r*r)*e*e)/(2*e))]},a}function Dr(){return Ar(Cr).scale(155.424).center([0,33.6442])}function jr(){return Dr().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Or(t){return function(n,r){var e=mt(n),i=mt(r),o=t(e*i);return[o*i*Mt(n),o*Mt(r)]}}function Lr(t){return function(n,r){var e=Et(n*n+r*r),i=t(e),o=Mt(i),a=mt(i);return[vt(n*o,e*a),Pt(e&&r*o/e)]}}var Vr=Or((function(t){return Et(2/(1+t))}));Vr.invert=Lr((function(t){return 2*Pt(t/2)}));var Tr=Or((function(t){return(t=_t(t))&&t/Mt(t)}));function qr(t,n){return[t,bt(St((lt+n)/2))]}function Rr(){return Ir(qr).scale(961/ft)}function Ir(t){var n,r,e,i=Fr(t),o=i.center,a=i.scale,s=i.translate,u=i.clipExtent,l=null;function c(){var o=ut*a(),s=i(function(t){function n(n){return(n=t(n[0]*pt,n[1]*pt))[0]*=ht,n[1]*=ht,n}return t=Ht(t[0]*pt,t[1]*pt,t.length>2?t[2]*pt:0),n.invert=function(n){return(n=t.invert(n[0]*pt,n[1]*pt))[0]*=ht,n[1]*=ht,n},n}(i.rotate()).invert([0,0]));return u(null==l?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:t===qr?[[Math.max(s[0]-o,l),n],[Math.min(s[0]+o,r),e]]:[[l,Math.max(s[1]-o,n)],[r,Math.min(s[1]+o,e)]])}return i.scale=function(t){return arguments.length?(a(t),c()):a()},i.translate=function(t){return arguments.length?(s(t),c()):s()},i.center=function(t){return arguments.length?(o(t),c()):o()},i.clipExtent=function(t){return arguments.length?(null==t?l=n=r=e=null:(l=+t[0][0],n=+t[0][1],r=+t[1][0],e=+t[1][1]),c()):null==l?null:[[l,n],[r,e]]},c()}function Br(t){return St((lt+t)/2)}function Gr(t,n){var r=mt(t),e=t===n?Mt(t):bt(r/mt(n))/bt(Br(n)/Br(t)),i=r*wt(Br(t),e)/e;if(!e)return qr;function o(t,n){i>0?n<-lt+st&&(n=-lt+st):n>lt-st&&(n=lt-st);var r=i/wt(Br(n),e);return[r*Mt(e*t),i-r*mt(e*t)]}return o.invert=function(t,n){var r=i-n,o=xt(e)*Et(t*t+r*r),a=vt(t,gt(r))*xt(r);return r*e<0&&(a-=ut*xt(t)*xt(r)),[a/e,2*dt(wt(i/o,1/e))-lt]},o}function Hr(t,n){return[t,n]}function $r(t,n){var r=mt(t),e=t===n?Mt(t):(r-mt(n))/(n-t),i=r/e+t;if(gt(e)<st)return Hr;function o(t,n){var r=i-n,o=e*t;return[r*Mt(o),i-r*mt(o)]}return o.invert=function(t,n){var r=i-n,o=vt(t,gt(r))*xt(r);return r*e<0&&(o-=ut*xt(t)*xt(r)),[o/e,i-xt(e)*Et(t*t+r*r)]},o}Tr.invert=Lr((function(t){return t})),qr.invert=function(t,n){return[t,2*dt(yt(n))-lt]},Hr.invert=Hr;var zr=1.340264,Ur=-.081106,Wr=893e-6,Yr=.003796,Jr=Et(3)/2;function Xr(t,n){var r=Pt(Jr*Mt(n)),e=r*r,i=e*e*e;return[t*mt(r)/(Jr*(zr+3*Ur*e+i*(7*Wr+9*Yr*e))),r*(zr+Ur*e+i*(Wr+Yr*e))]}function Zr(t,n){var r=mt(n),e=mt(t)*r;return[r*Mt(t)/e,Mt(n)/e]}function Kr(t,n){var r=n*n,e=r*r;return[t*(.8707-.131979*r+e*(e*(.003971*r-.001529*e)-.013791)),n*(1.007226+r*(.015085+e*(.028874*r-.044475-.005916*e)))]}function Qr(t,n){return[mt(n)*Mt(t),Mt(n)]}function te(t,n){var r=mt(n),e=1+mt(t)*r;return[r*Mt(t)/e,Mt(n)/e]}function ne(t,n){return[bt(St((lt+n)/2)),-t]}Xr.invert=function(t,n){for(var r,e=n,i=e*e,o=i*i*i,a=0;a<12&&(o=(i=(e-=r=(e*(zr+Ur*i+o*(Wr+Yr*i))-n)/(zr+3*Ur*i+o*(7*Wr+9*Yr*i)))*e)*i*i,!(gt(r)<1e-12));++a);return[Jr*t*(zr+3*Ur*i+o*(7*Wr+9*Yr*i))/mt(e),Pt(Mt(e)/Jr)]},Zr.invert=Lr(dt),Kr.invert=function(t,n){var r,e=n,i=25;do{var o=e*e,a=o*o;e-=r=(e*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(gt(r)>st&&--i>0);return[t/(.8707+(o=e*e)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),e]},Qr.invert=Lr(Pt),te.invert=Lr((function(t){return 2*dt(t)})),ne.invert=function(t,n){return[-n,2*dt(yt(t))-lt]};const re=Rr().translate([0,0]).center([0,0]).scale(63781);function ee(t){const n=re;if(void 0===t[2]){const r=n(t);return r[1]*=-1,r}const r=n(t);return r[1]*=-1,r.push(t[2]),r}const ie={webmercator:ee};var oe=Object.prototype.hasOwnProperty;function ae(t,n,r,e,i,o){3===arguments.length&&(e=o=Array,i=null);for(var a=new e(t=1<<Math.max(4,Math.ceil(Math.log(t)/Math.LN2))),s=new o(t),u=t-1,l=0;l<t;++l)a[l]=i;return{set:function(e,o){for(var l=n(e)&u,c=a[l],f=0;c!=i;){if(r(c,e))return s[l]=o;if(++f>=t)throw new Error("full hashmap");c=a[l=l+1&u]}return a[l]=e,s[l]=o,o},maybeSet:function(e,o){for(var l=n(e)&u,c=a[l],f=0;c!=i;){if(r(c,e))return s[l];if(++f>=t)throw new Error("full hashmap");c=a[l=l+1&u]}return a[l]=e,s[l]=o,o},get:function(e,o){for(var l=n(e)&u,c=a[l],f=0;c!=i;){if(r(c,e))return s[l];if(++f>=t)break;c=a[l=l+1&u]}return o},keys:function(){for(var t=[],n=0,r=a.length;n<r;++n){var e=a[n];e!=i&&t.push(e)}return t}}}function se(t,n){return t[0]===n[0]&&t[1]===n[1]}var ue=new ArrayBuffer(16),le=new Float64Array(ue),ce=new Uint32Array(ue);function fe(t){le[0]=t[0],le[1]=t[1];var n=ce[0]^ce[1];return 2147483647&(n=n<<5^n>>7^ce[2]^ce[3])}function he(t){var n,r,e,i,o=t.coordinates,a=t.lines,s=t.rings,u=function(){for(var t=ae(1.4*o.length,M,x,Int32Array,-1,Int32Array),n=new Int32Array(o.length),r=0,e=o.length;r<e;++r)n[r]=t.maybeSet(r,r);return n}(),l=new Int32Array(o.length),c=new Int32Array(o.length),f=new Int32Array(o.length),h=new Int8Array(o.length),p=0;for(n=0,r=o.length;n<r;++n)l[n]=c[n]=f[n]=-1;for(n=0,r=a.length;n<r;++n){var g=a[n],d=g[0],v=g[1];for(e=u[d],i=u[++d],++p,h[e]=1;++d<=v;)w(n,e,e=i,i=u[d]);++p,h[i]=1}for(n=0,r=o.length;n<r;++n)l[n]=-1;for(n=0,r=s.length;n<r;++n){var m=s[n],y=m[0]+1,b=m[1];for(w(n,u[b-1],e=u[y-1],i=u[y]);++y<=b;)w(n,e,e=i,i=u[y])}function w(t,n,r,e){if(l[r]!==t){l[r]=t;var i=c[r];if(i>=0){var o=f[r];i===n&&o===e||i===e&&o===n||(++p,h[r]=1)}else c[r]=n,f[r]=e}}function M(t){return fe(o[t])}function x(t,n){return se(o[t],o[n])}l=c=f=null;var E,S=function(t,n,r,e,i){3===arguments.length&&(e=Array,i=null);for(var o=new e(t=1<<Math.max(4,Math.ceil(Math.log(t)/Math.LN2))),a=t-1,s=0;s<t;++s)o[s]=i;return{add:function(e){for(var s=n(e)&a,u=o[s],l=0;u!=i;){if(r(u,e))return!0;if(++l>=t)throw new Error("full hashset");u=o[s=s+1&a]}return o[s]=e,!0},has:function(e){for(var s=n(e)&a,u=o[s],l=0;u!=i;){if(r(u,e))return!0;if(++l>=t)break;u=o[s=s+1&a]}return!1},values:function(){for(var t=[],n=0,r=o.length;n<r;++n){var e=o[n];e!=i&&t.push(e)}return t}}}(1.4*p,fe,se);for(n=0,r=o.length;n<r;++n)h[E=u[n]]&&S.add(o[E]);return S}function pe(t,n,r,e){ge(t,n,r),ge(t,n,n+e),ge(t,n+e,r)}function ge(t,n,r){for(var e,i=n+(r---n>>1);n<i;++n,--r)e=t[n],t[n]=t[r],t[r]=e}function de(t){var n,r,e={};for(n in t)e[n]=null==(r=t[n])?{type:null}:("FeatureCollection"===r.type?ve:"Feature"===r.type?me:ye)(r);return e}function ve(t){var n={type:"GeometryCollection",geometries:t.features.map(me)};return null!=t.bbox&&(n.bbox=t.bbox),n}function me(t){var n,r=ye(t.geometry);for(n in null!=t.id&&(r.id=t.id),null!=t.bbox&&(r.bbox=t.bbox),t.properties){r.properties=t.properties;break}return r}function ye(t){if(null==t)return{type:null};var n="GeometryCollection"===t.type?{type:"GeometryCollection",geometries:t.geometries.map(ye)}:"Point"===t.type||"MultiPoint"===t.type?{type:t.type,coordinates:t.coordinates}:{type:t.type,arcs:t.coordinates};return null!=t.bbox&&(n.bbox=t.bbox),n}function be(t){var n,r=t[0],e=t[1];return e<r&&(n=r,r=e,e=n),r+31*e}function we(t,n){var r,e=t[0],i=t[1],o=n[0],a=n[1];return i<e&&(r=e,e=i,i=r),a<o&&(r=o,o=a,a=r),e===o&&i===a}var Me=Object.freeze({__proto__:null,topology:function(t,n){var r=function(t){var n=1/0,r=1/0,e=-1/0,i=-1/0;function o(t){null!=t&&oe.call(a,t.type)&&a[t.type](t)}var a={GeometryCollection:function(t){t.geometries.forEach(o)},Point:function(t){s(t.coordinates)},MultiPoint:function(t){t.coordinates.forEach(s)},LineString:function(t){u(t.arcs)},MultiLineString:function(t){t.arcs.forEach(u)},Polygon:function(t){t.arcs.forEach(u)},MultiPolygon:function(t){t.arcs.forEach(l)}};function s(t){var o=t[0],a=t[1];o<n&&(n=o),o>e&&(e=o),a<r&&(r=a),a>i&&(i=a)}function u(t){t.forEach(s)}function l(t){t.forEach(u)}for(var c in t)o(t[c]);return e>=n&&i>=r?[n,r,e,i]:void 0}(t=de(t)),e=n>0&&r&&function(t,n,r){var e=n[0],i=n[1],o=n[2],a=n[3],s=o-e?(r-1)/(o-e):1,u=a-i?(r-1)/(a-i):1;function l(t){return[Math.round((t[0]-e)*s),Math.round((t[1]-i)*u)]}function c(t,n){for(var r,o,a,l,c,f=-1,h=0,p=t.length,g=new Array(p);++f<p;)r=t[f],l=Math.round((r[0]-e)*s),c=Math.round((r[1]-i)*u),l===o&&c===a||(g[h++]=[o=l,a=c]);for(g.length=h;h<n;)h=g.push([g[0][0],g[0][1]]);return g}function f(t){return c(t,2)}function h(t){return c(t,4)}function p(t){return t.map(h)}function g(t){null!=t&&oe.call(d,t.type)&&d[t.type](t)}var d={GeometryCollection:function(t){t.geometries.forEach(g)},Point:function(t){t.coordinates=l(t.coordinates)},MultiPoint:function(t){t.coordinates=t.coordinates.map(l)},LineString:function(t){t.arcs=f(t.arcs)},MultiLineString:function(t){t.arcs=t.arcs.map(f)},Polygon:function(t){t.arcs=p(t.arcs)},MultiPolygon:function(t){t.arcs=t.arcs.map(p)}};for(var v in t)g(t[v]);return{scale:[1/s,1/u],translate:[e,i]}}(t,r,n),i=function(t){var n,r,e,i,o=t.coordinates,a=t.lines,s=t.rings,u=a.length+s.length;for(delete t.lines,delete t.rings,e=0,i=a.length;e<i;++e)for(n=a[e];n=n.next;)++u;for(e=0,i=s.length;e<i;++e)for(r=s[e];r=r.next;)++u;var l=ae(2*u*1.4,fe,se),c=t.arcs=[];for(e=0,i=a.length;e<i;++e){n=a[e];do{f(n)}while(n=n.next)}for(e=0,i=s.length;e<i;++e)if((r=s[e]).next)do{f(r)}while(r=r.next);else h(r);function f(t){var n,r,e,i,a,s,u,f;if(e=l.get(n=o[t[0]]))for(u=0,f=e.length;u<f;++u)if(p(i=e[u],t))return t[0]=i[0],void(t[1]=i[1]);if(a=l.get(r=o[t[1]]))for(u=0,f=a.length;u<f;++u)if(g(s=a[u],t))return t[1]=s[0],void(t[0]=s[1]);e?e.push(t):l.set(n,[t]),a?a.push(t):l.set(r,[t]),c.push(t)}function