UNPKG

33.5 kBJavaScriptView Raw
1// https://github.com/d3/d3-geo-polygon v1.9.0 Copyright 2019 Mike Bostock
2!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-array"),require("d3-geo")):"function"==typeof define&&define.amd?define(["exports","d3-array","d3-geo"],t):t(n.d3=n.d3||{},n.d3,n.d3)}(this,function(n,t,r){"use strict";function e(){}var o=Math.abs,i=Math.atan,a=Math.atan2,u=Math.cos,c=Math.exp,l=Math.floor,f=Math.log,s=Math.max,h=Math.min,p=Math.pow,g=Math.sign||function(n){return n>0?1:n<0?-1:0},v=Math.sin,d=Math.tan,m=1e-6,y=1e-12,M=Math.PI,P=M/2,A=M/4,E=Math.SQRT1_2,G=B(M),x=2*M,w=180/M,S=M/180;function C(n){return n>1?P:n<-1?-P:Math.asin(n)}function j(n){return n>1?0:n<-1?M:Math.acos(n)}function B(n){return n>0?Math.sqrt(n):0}function D(n,t,r,e){this.x=n,this.z=t,this.o=r,this.e=e,this.v=!1,this.n=this.p=null}function N(n,t,r,e,i){var a,u,c=[],l=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,r,e=n[0],u=n[t];if(s=u,o((f=e)[0]-s[0])<m&&o(f[1]-s[1])<m){for(i.lineStart(),a=0;a<t;++a)i.point((e=n[a])[0],e[1]);i.lineEnd()}else{var f,s;c.push(r=new D(e,n,null,!0)),l.push(r.o=new D(e,null,r,!1)),c.push(r=new D(u,n,null,!1)),l.push(r.o=new D(u,null,r,!0))}}}),c.length){for(l.sort(t),F(c),F(l),a=0,u=l.length;a<u;++a)l[a].e=r=!r;for(var f,s,h=c[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(a=0,u=f.length;a<u;++a)i.point((s=f[a])[0],s[1]);else e(p.x,p.n.x,1,i);p=p.n}else{if(g)for(f=p.p.z,a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1]);else e(p.x,p.p.x,-1,i);p=p.p}f=(p=p.o).z,g=!g}while(!p.v);i.lineEnd()}}}function F(n){if(t=n.length){for(var t,r,e=0,o=n[0];++e<t;)o.n=r=n[e],r.p=o,o=r;o.n=r=n[0],r.p=o}}function R(){this.reset()}R.prototype={constructor:R,reset:function(){this.s=this.t=0},add:function(n){b(I,n,this.t),b(this,I.s,this.s),this.s?this.t+=I.t:this.s=I.t},valueOf:function(){return this.s}};var I=new R;function b(n,t,r){var e=n.s=t+r,o=e-t,i=e-o;n.t=t-i+(r-o)}function T(n){return[a(n[1],n[0]),C(n[2])]}function q(n){var t=T(n);return[t[0]*w,t[1]*w]}function O(n){var t=n[0],r=n[1],e=u(r);return[e*u(t),e*v(t),v(r)]}function z(n){return O([n[0]*S,n[1]*S])}function L(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function k(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function _(n){var t=B(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function K(n,t){var r=t[0]-n[0],e=t[1]-n[1],o=t[2]-n[2];return r*r+e*e+o*o<y*y}var Q=new R;function V(n,t){var r=t[0],e=t[1],o=[v(r),-u(r),0],i=0,c=0;Q.reset();for(var l=0,f=n.length;l<f;++l)if(h=(s=n[l]).length)for(var s,h,p=s[h-1],g=p[0],d=p[1]/2+A,y=v(d),P=u(d),E=0;E<h;++E,g=w,y=j,P=B,p=G){var G=s[E],w=G[0],S=G[1]/2+A,j=v(S),B=u(S),D=w-g,N=D>=0?1:-1,F=N*D,R=F>M,I=y*j;if(Q.add(a(I*N*v(F),P*B+I*u(F))),i+=R?D+N*x:D,R^g>=r^w>=r){var b=k(O(p),O(G));_(b);var T=k(o,b);_(T);var q=(R^D>=0?-1:1)*C(T[2]);(e>q||e===q&&(b[0]||b[1]))&&(c+=R^D>=0?1:-1)}}return(i<-m||i<m&&Q<-m)^1&c}function W(n,r,o,i,a){return void 0===a&&(a=J),function(u){var c,l,f,s=r(u),h=function(){var n,t=[];return{point:function(t,r,e,o){var i=[t,r];arguments.length>2&&(i.index=e,i.t=o),n.push(i)},lineStart:function(){t.push(n=[])},lineEnd:e,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var r=t;return t=[],n=null,r}}}(),p=r(h),g=!1,v={point:d,lineStart:y,lineEnd:M,polygonStart:function(){v.point=P,v.lineStart=A,v.lineEnd=E,l=[],c=[]},polygonEnd:function(){v.point=d,v.lineStart=y,v.lineEnd=M,l=t.merge(l);var n=V(c,i);l.length?(g||(u.polygonStart(),g=!0),N(l,a,n,o,u)):n&&(g||(u.polygonStart(),g=!0),o(null,null,1,u)),g&&(u.polygonEnd(),g=!1),l=c=null},sphere:function(){o(null,null,1,u)}};function d(t,r){n(t,r)&&u.point(t,r)}function m(n,t){s.point(n,t)}function y(){v.point=m,s.lineStart()}function M(){v.point=d,s.lineEnd()}function P(n,t,r){f.push([n,t]),p.point(n,t,r)}function A(){p.lineStart(),f=[]}function E(){P(f[0][0],f[0][1],!0),p.lineEnd();var n,t,r,e,o=p.clean(),i=h.result(),a=i.length;if(f.pop(),c.push(f),f=null,a)if(1&o){if((t=(r=i[0]).length-1)>0){for(g||(u.polygonStart(),g=!0),u.lineStart(),n=0;n<t;++n)u.point((e=r[n])[0],e[1]);u.lineEnd()}}else a>1&&2&o&&i.push(i.pop().concat(i.shift())),l.push(i.filter(H))}return v}}function H(n){return n.length>1}function J(n,t){return((n=n.x)[0]<0?n[1]-P-m:P-n[1])-((t=t.x)[0]<0?t[1]-P-m:P-t[1])}function U(n,t){this.from=n,this.to=t,this.normal=k(n,t),this.fromNormal=k(this.normal,n),this.toNormal=k(this.normal,t),this.l=j(L(n,t))}function X(n,t){if(K(n.from,t.from)||K(n.from,t.to))return n.from;if(K(n.to,t.from)||K(n.to,t.to))return n.to;var r=n.l+t.l<M?u(n.l+t.l)-m:-1;if(!(L(n.from,t.from)<r||L(n.from,t.to)<r||L(n.to,t.from)<r||L(n.to,t.to)<r)){var e=k(n.normal,t.normal);_(e);var o=L(e,n.fromNormal),i=L(e,n.toNormal),a=L(e,t.fromNormal),c=L(e,t.toNormal);return o>0&&i<0&&a>0&&c<0||o>=0&&i<=0&&a>=0&&c<=0&&(K(e,n.from)||K(e,n.to)||K(e,t.from)||K(e,t.to))?e:(e[0]=-e[0],e[1]=-e[1],e[2]=-e[2],i=-i,a=-a,c=-c,(o=-o)>0&&i<0&&a>0&&c<0||o>=0&&i<=0&&a>=0&&c<=0&&(K(e,n.from)||K(e,n.to)||K(e,t.from)||K(e,t.to))?e:void 0)}}var Y={};var Z=function(n){return n};function $(n){return function n(t){var r;if("MultiPolygon"===t.type)r=t.coordinates;else{if("Polygon"!==t.type)return Z;r=[t.coordinates]}var e=r.map(function(n){var t=function(n){return function(t,r){return V(n,[t,r])}}(n=n.map(nn)),r=function(n){var t,r,e=[];return n.forEach(function(n,o){return t=O(n),o&&e.push(new U(r,t)),r=t,n}),e}(n[0]);return W(t,function(n,t){return function(r){var e,i,a,c,l,f,p,d=[];return{lineStart:function(){e=null,f=1,p=[]},lineEnd:function(){l&&d.push(p),d.forEach(function(n){r.lineStart(),n.forEach(function(n){r.point(...n)}),r.lineEnd()}),d=[]},point:function(r,m,P){-1==u(r)&&(r-=1e-5*g(v(r))),P&&(r=i,m=a);var A,E,G,x,w,S,C,j,B,D=O([r,m]),N=l;if(e){var F=new U(e,D),R=[];for(E=0,G=100;E<n.length&&G>0;++E)if(x=n[E],A=X(F,x)){if(A===Y||K(A,e)||K(A,D)||K(A,x.from)||K(A,x.to)){w=1e-4,r=(r+3*M+en(E,G)*w)%(2*M)-M,m=h(M/2-1e-4,s(1e-4-M/2,m+en(E,G)*w)),F=new U(e,D=O([r,m])),E=-1,--G,R.length=0;continue}var I=T(A);A.distance=rn(e,A),A.index=E,A.t=rn(x.from,A),A[0]=I[0],A[1]=I[1],A.pop(),R.push(A)}if(R.length)for(f=0,R.sort(function(n,t){return n.distance-t.distance}),E=0;E<R.length;++E)A=R[E],(N=!N)?(p=[]).push([A[0],A[1],A.index,A.t]):(p.push([A[0],A[1],A.index,A.t]),d.push(p));N&&p.push([r,m])}else{for(E=0,G=100;E<n.length&&G>0;++E)x=n[E],j=void 0,B=void 0,j=L(S=D,(C=x).fromNormal),B=L(S,C.toNormal),S=L(S,C.normal),o(S)<y&&(j>-y&&B<y||j<y&&B>-y)&&(w=1e-4,r=(r+3*M+en(E,G)*w)%(2*M)-M,m=h(M/2-1e-4,s(1e-4-M/2,m+en(E,G)*w)),D=O([r,m]),E=-1,--G);c=N=t(i=r,a=m),N&&(p=[]).push([r,m])}e=D,l=N},clean:function(){return f|(c&&l)<<1}}}}(r,t),function(n,t){return function(r,e,o,i){if(null==r)i.polygonStart(),t.forEach(function(n){i.lineStart(),n.forEach(function(n){i.point(n[0],n[1])}),i.lineEnd()}),i.polygonEnd();else if(r.index!==e.index&&null!=r.index&&null!=e.index)for(var a=r.index;a!==e.index;a=(a+o+n.length)%n.length){var u=n[a],c=T(o>0?u.to:u.from);i.point(c[0],c[1])}else if(r.index===e.index&&r.t>e.t&&null!=r.index&&null!=e.index)for(a=0;a<n.length;a++)u=n[(r.index+a*o+n.length)%n.length],c=T(o>0?u.to:u.from),i.point(c[0],c[1])}}(r,n),n[0][0],tn)}),i=function(n){var t=e.map(t=>t(n));return{point:function(n,r){t.forEach(t=>t.point(n,r))},lineStart:function(){t.forEach(n=>n.lineStart())},lineEnd:function(){t.forEach(n=>n.lineEnd())},polygonStart:function(){t.forEach(n=>n.polygonStart())},polygonEnd:function(){t.forEach(n=>n.polygonEnd())},sphere:function(){t.forEach(n=>n.sphere())}}};return i.polygon=function(r){return r?n(t=r):t},i}(n)}function nn(n){return n.map(function(n){return[n[0]*S,n[1]*S]})}function tn(n,t){return n=n.x,t=t.x,n.index-t.index||n.t-t.t}function rn(n,t){var r=k(n,t);return a(B(L(r,r)),L(n,t))}function en(n,t){return g(v(100*n+t))}function on(n,t){var r=un(n[1],n[0]),e=un(t[1],t[0]),o=function(n,t){return a(n[0]*t[1]-n[1]*t[0],n[0]*t[0]+n[1]*t[1])}(r,e),i=cn(r)/cn(e);return an([1,0,n[0][0],0,1,n[0][1]],an([i,0,0,0,i,0],an([u(o),v(o),0,-v(o),u(o),0],[1,0,-t[0][0],0,1,-t[0][1]])))}function an(n,t){return[n[0]*t[0]+n[1]*t[3],n[0]*t[1]+n[1]*t[4],n[0]*t[2]+n[1]*t[5]+n[2],n[3]*t[0]+n[4]*t[3],n[3]*t[1]+n[4]*t[4],n[3]*t[2]+n[4]*t[5]+n[5]]}function un(n,t){return[n[0]-t[0],n[1]-t[1]]}function cn(n){return B(n[0]*n[0]+n[1]*n[1])}function ln(n,t){function e(n,r){var e,o=t(n,r),i=o.project([n*w,r*w]);return(e=o.transform)?[e[0]*i[0]+e[1]*i[1]+e[2],-(e[3]*i[0]+e[4]*i[1]+e[5])]:(i[1]=-i[1],i)}!function n(t,r){t.edges=function(n){for(var t=n.length,r=[],e=n[t-1],o=0;o<t;++o)r.push([e,e=n[o]]);return r}(t.face);if(r.face){var e=t.shared=function(n,t){for(var r,e,o=n.length,i=null,a=0;a<o;++a){r=n[a];for(var u=t.length;--u>=0;)if(e=t[u],r[0]===e[0]&&r[1]===e[1]){if(i)return[i,r];i=r}}}(t.face,r.face),o=on(e.map(r.project),e.map(t.project));t.transform=r.transform?an(r.transform,o):o;for(var i=r.edges,a=0,u=i.length;a<u;++a)fn(e[0],i[a][1])&&fn(e[1],i[a][0])&&(i[a]=t),fn(e[0],i[a][0])&&fn(e[1],i[a][1])&&(i[a]=t);for(i=t.edges,a=0,u=i.length;a<u;++a)fn(e[0],i[a][0])&&fn(e[1],i[a][1])&&(i[a]=r),fn(e[0],i[a][1])&&fn(e[1],i[a][0])&&(i[a]=r)}else t.transform=r.transform;t.children&&t.children.forEach(function(r){n(r,t)});return t}(n,{transform:null}),sn(n)&&(e.invert=function(r,e){var o=function n(r,e){var o=r.project.invert,i=r.transform,a=e;i&&(c=1/((u=i)[0]*u[4]-u[1]*u[3]),i=[c*u[4],-c*u[1],c*(u[1]*u[5]-u[2]*u[4]),-c*u[3],c*u[0],c*(u[2]*u[3]-u[0]*u[5])],a=[i[0]*a[0]+i[1]*a[1]+i[2],i[3]*a[0]+i[4]*a[1]+i[5]]);var u,c;if(o&&r===function(n){return t(n[0]*S,n[1]*S)}(l=o(a)))return l;var l,f=r.children;for(var s=0,h=f&&f.length;s<h;++s)if(l=n(f[s],e))return l}(n,[r,-e]);return o&&(o[0]*=S,o[1]*=S,o)});var i=r.geoProjection(e),a=[];return function n(t,e,i){var a,u,c=e.edges,l=c.length,f={type:"MultiPoint",coordinates:e.face},s=e.face.filter(function(n){return 90!==o(n[1])}),h=r.geoBounds({type:"MultiPoint",coordinates:s}),p=!1,g=-1,v=h[1][0]-h[0][0];e.centroid=180===v||360===v?[(h[0][0]+h[1][0])/2,(h[0][1]+h[1][1])/2]:r.geoCentroid(f);if(i)for(;++g<l&&c[g]!==i;);++g;for(var d=0;d<l;++d)u=c[(d+g)%l],Array.isArray(u)?(p||(t.point((a=r.geoInterpolate(u[0],e.centroid)(m))[0],a[1]),p=!0),t.point((a=r.geoInterpolate(u[1],e.centroid)(m))[0],a[1])):(p=!1,u!==i&&n(t,u,e))}({point:function(n,t){a.push([n,t])}},n),a.push(a[0]),i.preclip($({type:"Polygon",coordinates:[a]})),i.tree=function(){return n},i}function fn(n,t){return n&&t&&n[0]===t[0]&&n[1]===t[1]}function sn(n){return n.project.invert||n.children&&n.children.some(sn)}var hn=[[0,90],[-90,0],[0,0],[90,0],[180,0],[0,-90]],pn=[[0,2,1],[0,3,2],[5,1,2],[5,2,3],[0,1,4],[0,4,3],[5,4,1],[5,3,4]].map(function(n){return n.map(function(n){return hn[n]})});function gn(n,t){var r=B(1-v(t));return[2/G*n*r,G*(1-r)]}gn.invert=function(n,t){var r=(r=t/G-1)*r;return[r>0?n*B(M/r)/2:0,C(1-r)]};var vn=2/B(3);function dn(n,t){var r=gn(n,t);return[r[0]*vn,r[1]]}function mn(n,t){for(var r=0,e=n.length,o=0;r<e;++r)o+=n[r]*t[r];return o}function yn(n){return[a(n[1],n[0])*w,C(s(-1,h(1,n[2])))*w]}function Mn(n){var t=n[0]*S,r=n[1]*S,e=u(r);return[e*u(t),e*v(t),v(r)]}function Pn(n,t,e,o){n=n||[],t=t||{features:[]},o=o||function(n,t){for(var e=1/0,o=-1,a=0;a<i.length;a++){var u=r.geoDistance(i[a].site,[n,t]);u<e&&(e=u,o=a)}return o},e=e||function(n){return r.geoGnomonic().scale(1).translate([0,0]).rotate([-n.site[0],-n.site[1]])};var i=[];function a(){i=t.features.map(function(n,t){var o=n.geometry.coordinates[0].slice(0,-1);return o.site=n.properties&&n.properties.sitecoordinates?n.properties.sitecoordinates:r.geoCentroid(n.geometry),{face:o,site:o.site,id:t,project:e(o)}}),n.forEach(function(n,t){var r=i[n];r&&(r.children||(r.children=[])).push(i[t])})}function u(n,t){return i[o(n*w,t*w)]}var c=r.geoGnomonic();return a(),function r(){var l=c.rotate(),f=c.translate(),s=c.center(),h=c.scale(),p=c.angle();return i.length&&(c=ln(i[0],u)),c.parents=function(t){return arguments.length?(n=t,a(),r()):n},c.polygons=function(n){return arguments.length?(t=n,a(),r()):t},c.faceProjection=function(n){return arguments.length?(e=n,a(),r()):e},c.faceFind=function(n){return arguments.length?(o=n,r()):o},c.rotate(l).translate(f).center(s).scale(h).angle(p)}()}function An(n){function t(t,r){if(o(o(r)-P)<m)return[0,r<0?-2:2];var e=v(r),i=p((1+e)/(1-e),n/2),a=.5*(i+1/i)+u(t*=n);return[2*v(t)/a,(i-1/i)/a]}return t.invert=function(t,r){var e=o(r);if(o(e-2)<m)return t?null:[0,g(r)*P];if(e>2)return null;var i=(t/=2)*t,u=(r/=2)*r,c=2*r/(1+i+u);return c=p((1+c)/(1-c),1/n),[a(2*t,1-i-u)/n,C((c-1)/(c+1))]},t}function En(n,t){return[n[0]*t[0]-n[1]*t[1],n[1]*t[0]+n[0]*t[1]]}function Gn(n,t){return[n[0]+t[0],n[1]+t[1]]}function xn(n,t){return[n[0]-t[0],n[1]-t[1]]}function wn(n){return n[0]*n[0]+n[1]*n[1]}function Sn(n,t){var r=o(n),e=o(t);return 0===n?f(e):0===t?f(r):r<3e3&&e<3e3?.5*f(n*n+t*t):f(n/u(a(t,n)))}function Cn(n,t){var r,e,o=n[1];if(0===(n=n[0])&&0===o)return[0,0];if("number"==typeof t&&(t=[t,0]),!t[1]){if(0===o&&n>=0)return[p(n,t[0]),0];if(0===n)switch((t[1]%4+4)%4){case 0:return[p(o,t[0]),0];case 1:return[0,p(o,t[0])];case 2:return[-p(o,t[0]),0];case 3:return[0,-p(o,t[0])]}}return r=a(o,n),e=Sn(n,o),n=c(t[0]*e-t[1]*r),o=t[1]*e+t[0]*r,[n*u(o),n*v(o)]}dn.invert=function(n,t){return gn.invert(n/vn,t)};var jn=[-.5,B(3)/2],Bn=[1.7666387502854533,0],Dn=.09;var Nn=An?An(.5):null;function Fn(n,r){var e=Nn(n,r),o=function(n){var r=[0,0],e=Cn(jn,t.scan([0,1,2].map(function(t){return-En(n,Cn(jn,[t,0]))[0]}))),o=En(e,n);o=[1-o[0],-o[1]];for(var i=[1.44224957030741,.240374928384568,.0686785509670194,.0178055502507087,.00228276285265497,-.00148379585422573,-.00164287728109203,-.00102583417082273,-.000483607537673571,-.000167030822094781,-245024395166263e-19,214092375450951e-19,255897270486771e-19,173086854400834e-19,872756299984649e-20,318304486798473e-20,4.79323894565283e-7,-4.58968389565456e-7,-5.62970586787826e-7,-3.92135372833465e-7],a=[0,0],u=i.length;u--;)a=Gn([i[u],0],En(a,o));r=En(Gn(Bn,En([-a[0],-a[1]],Cn(o,1-2/3))),En(e,e));var c=wn(n);if(c<Dn){var l=[1,1/3,5/27,10/81,22/243],f=Cn(n,[3,0]),s=[0,0];for(u=l.length;u--;)s=Gn([l[u],0],En(s,f));s=En(s,n),r=Gn(En(r,[c/Dn,0]),En(s,[1-c/Dn,0]))}return r}([e[1]/2,e[0]/2]);return[o[1],o[0]]}function Rn(n,e){var o,i=[-.5,B(3)/2],a=[0,0],u=[0,0],c=En(r.geoStereographicRaw(n,e),[B(2),0]),l=t.scan([0,1,2].map(function(n){return-En(c,Cn(i,[n,0]))[0]})),f=Cn(i,[l,0]),s=B(wn(c));if(s>.3){var h=xn([1,0],En(f,c)),p=[1.15470053837925,.192450089729875,.0481125224324687,.010309826235529,.000334114739114366,-.00150351632601465,-.0012304417796231,-.000675190201960282,-.000284084537293856,-821205120500051e-19,-159257630018706e-20,191691805888369e-19,173095888028726e-19,103865580818367e-19,470614523937179e-20,14413500104181e-19,1.92757960170179e-8,-3.82869799649063e-7,-3.57526015225576e-7,-2.2175964844211e-7],g=[0,0];for(o=p.length;o--;)g=Gn([p[o],0],En(g,h));a=xn([1.4021821053254548,0],En(Cn(h,.5),g)),a=En(a,f),a=En(a,f)}if(s<.5){var v=[1,1/8,3/56,1/32,35/1664,63/4096,231/19456],d=Cn(c,[3,0]);for(o=v.length;o--;)u=Gn([v[o],0],En(u,d));u=En(u,c)}if(s<.3)return u;if(s>.5)return a;var m=(s-.3)/.2;return Gn(En(a,[m,0]),En(u,[1-m,0]))}var In=C(1/3),bn=[[0,90],[-180,-In*w],[-60,-In*w],[60,-In*w]],Tn=[[1,2,3],[0,2,1],[0,3,2],[0,1,3]].map(function(n){return n.map(function(n){return bn[n]})});function qn(){var n=B(3),t=B(5+2*B(5))/B(15),e=B(8)/B(5+B(5)),i=B(3+B(5))/B(5+B(5)),c=function(r,o){var c=u(o),l=t/(c*u(r)),f=c*v(r)*l,s=v(o)*l,h=a(2*s/n+e/3-e/2,i),p=a(f-s/n+e/3-e/2,i),g=a(e/3-f-s/n-e/2,i);return[n*(p-g),2*h-p-g]};return c.invert=function(n,t){if(n*n+t*t>5)return[0,3];var e=2.9309936378128416,i=r.geoGnomonicRaw.invert(n/e,t/e),a=0;do{var u=c(i[0],i[1]),l=n-u[0],f=t-u[1];i[0]+=.2*l,i[1]+=.2*f}while(a++<30&&o(l)+o(f)>m);return i},c}var On=Math.hypot,zn=C(1/3),Ln=[[P,0,0,-P,0,B(3)],[-zn,0,M,P,0,-B(3)],[-zn,2*M/3,M,5*M/6,3,0],[-zn,-2*M/3,M,M/6,-3,0]],kn={sphereSym:3,planarSym:6,width:6,height:2*B(3),centrums:Ln,rotateOOB:function(n,t,r,e){return o(n)>this.width/2?[2*r-n,-t]:[-n,this.height*g(t)-t]},inBounds:()=>!0};function _n(n){function t(t,r){const e=function(n,t,r){var e,i,a,u=100;r=void 0===r?0:+r,t=+t;do{(i=n(r))===(a=n(r+m))&&(a=i+m),r-=e=-1*m*(i-t)/(i-a)}while(u-- >0&&o(e)>m);return u<0?NaN:r}(n=>i((n-C(v(n)/B(3)))/M*B(12)),r,r/2),a=t/(B(3)/u(r));return[P-p(a,1/n)*i(B(2)/u(e)),e]}function r(n,t,r){if(null==r)return[n,t];const e=r[0],o=r[1],i=r[2];let a,c;return a=e==P?n:C(v(e)*v(n)+u(e)*u(n)*u(o-t)),e==P?c=t-o:e==-P?c=o-t-M:(c=j((u(e)*v(n)-v(e)*u(n)*u(o-t))/u(a))-M,isNaN(c)?c=u(o-t)>=0&&n<e||u(o-t)<0&&n<-e?0:-M:v(t-o)>0&&(c=-c)),[a,c-=i]}function e(t,e){const a=kn.width,c=kn.height,f=kn.sphereSym;let s=-1/0,h=-1/0,g=null;for(const n of Ln){const o=r(e,t,n);o[0]>s&&(s=o[0],h=o[1],g=n)}const d=l((h+M/f)/(2*M/f))*(2*M/f),m=function(t,r){const e=i((t-C(v(t)/B(3)))/M*B(12)),o=(P-r)/i(B(2)/u(t));return[p(o,n)*B(3)/u(e),e]}(h-d,s),y=m[0],A=m[1]+g[3]+d*f/kn.planarSym,E=g[4],G=g[5];let x=[y*u(A)+E,y*v(A)+G];return(o(x[0])>a/2||o(x[1])>c/2)&&(x=kn.rotateOOB(x[0],x[1],E,G)),x}return e.invert=function(n,r){if(isNaN(n)||isNaN(r))return null;const e=kn.planarSym;let i=1/0,c=null;for(const t of Ln){const e=On(n-t[4],r-t[5]);e<i&&(i=e,c=t)}const f=c[3],s=c[4],h=c[5],p=On(n-s,r-h),g=a(r-h,n-s)-f,m=l((g+M/e)/(2*M/e))*(2*M/e);let y=t(p,g-m);if(null==y)return null;y[1]=m*e/kn.sphereSym+y[1];let A=function(n,t){if(null==t)return n;let r=n[0],e=n[1];const i=t[0],a=t[1];e+=t[2];let c,l=C(v(i)*v(r)-u(i)*u(e)*u(r)),f=v(r)/u(i)/u(l)-d(i)*d(l);return[l,c=i==P?e+a:i==-P?-e+a+M:o(f)>1?0==e&&r<-i||0!=e&&r<i?a+M:a:v(e)>0?a+j(f):a-j(f),t[2]]}(y,c);return[A[1],A[0]]},e}function Kn(n,t){var r=_n(n);const e=kn.height;function o(n,o){const i=r(n,o),a=[i[1],-i[0]];return a[1]>0&&(a[0]=e-a[0],a[1]*=-1),a[0]+=t,a[0]<0&&(a[0]+=2*e),a}return o.invert=function(n,o){return(n=(n-t)/e)>1.5&&(n-=2),n>.5&&(n=1-n,o*=-1),r.invert(-o,n*e)},o}var Qn=i(E)*w,Vn=[[0,Qn],[90,Qn],[180,Qn],[-90,Qn],[0,-Qn],[90,-Qn],[180,-Qn],[-90,-Qn]],Wn=[[0,3,2,1],[0,1,5,4],[1,2,6,5],[2,3,7,6],[3,0,4,7],[4,5,6,7]].map(function(n){return n.map(function(n){return Vn[n]})});function Hn(n){var t,r,e,i,a,c,l,f,s,h,p,m,y={lengthMG:n};function M(n,t){var r=n[0]-t[0],e=n[1]-t[1];return B(r*r+e*e)}function P(n,t,r,e){return[r[0]+(e[0]-r[0])*n/t,r[1]+(e[1]-r[1])*n/t]}function A(n,t,r,e){var o=d(t*S),i=d(e*S),a=[0,0];return a[0]=(o*n[0]-i*r[0]-n[1]+r[1])/(o-i),a[1]=o*(a[0]-n[0])+n[1],a}function E(n,t,r,e){var o,i,a=r[0],u=r[1],c=e[0],l=e[1],f=n[0],s=n[1],h=(c-a)*(c-a)+(l-u)*(l-u),p=2*((c-a)*(a-f)+(l-u)*(u-s)),g=p*p-4*h*(f*f+s*s+a*a+u*u-2*(f*a+s*u)-t*t);return 0===h?[0,[0,0]]:g<0?[0,[0,0]]:(o=(-p+B(g))/(2*h),i=(-p-B(g))/(2*h),0<=o&&o<=1?[1,[a+o*(c-a),u+o*(l-u)]]:0<=i&&i<=1?[1,[a+i*(c-a),u+i*(l-u)]]:[0,[0,0]])}function G(n,t){var r=[0,0];return-60===t?(r[0]=n[0]*y.cos60+n[1]*y.sin60,r[1]=-n[0]*y.sin60+n[1]*y.cos60):-120===t?(r[0]=-n[0]*y.cos60+n[1]*y.sin60,r[1]=-n[0]*y.sin60-n[1]*y.cos60):(r[0]=n[0]*u(t*S)-n[1]*v(t*S),r[1]=n[0]*v(t*S)+n[1]*u(t*S)),r}function x(n){var t=y.deltaMEq*n;return t<=y.lengthGF?[y.pointG[0],t]:P(t-=y.lengthGF,y.lengthAB,y.pointF,y.pointE)}function C(n){return x(n)}function j(n){return A(y.pointM,2*n/3,C(n),n/3)}function D(n){return 0===n?[y.pointA+y.lengthAB,0]:A(y.pointA,n,y.pointM,2*n/3)}function N(n){return M(C(n),j(n))}function F(n){return M(j(n),D(n))}function R(n){var t=[0,0],r=D(n),e=0,o=[0,0];return n<=30?(t[0]=y.pointA[0]+y.lengthAP73*u(n*S),t[1]=y.pointA[1]+y.lengthAP73*v(n*S),e=M(r,t)):(e=M(r,t=A(y.pointT,-60,r,n)),n>44&&(o=A(y.pointT,-60,r,2/3*n))[0]>t[0]&&(e=-M(r,t=o))),{parallel73:t,lengthParallel73:e}}function I(n){return[y.pointA[0]+y.lengthAP75*u(n*S),y.pointA[1]+y.lengthAP75*v(n*S)]}function b(n,t){var r,e=(r=(n+180)/90+1,Math[r>0?"floor":"ceil"](r)),i=(n+720)%90-45,a=g(i);return i=o(i),5===e&&(e=1),t<0&&(e=[0,6,7,8,5][e]),[i,o(t),a,e]}function T(n,t){var r,e,o,i,a,c=[0,0];return 0===n?c=t>=75?function(n,t){return[y.pointA[0]+104*(90-t),0]}(0,t):function(n,t){return[y.pointG[0]-100*t,0]}(0,t):t>=75?c=function(n,t){var r=104*(90-t);return[y.pointA[0]+r*u(n*S),y.pointA[1]+r*v(n*S)]}(n,t):0===t?c=function(n){return x(n)}(n):t>=73&&n<=30?c=function(n,t){var r=1560+100*(75-t);return[y.pointA[0]+r*u(n*S),y.pointA[1]+r*v(n*S)]}(n,t):45===n?c=t<=15?function(n,t){return P(t,15,y.pointE,y.pointD)}(0,t):t<=73?function(n,t){return P(t-15,58,y.pointD,y.pointT)}(0,t):function(n,t){var r=I(45),e=R(n).parallel73,o=M(y.pointT,y.pointB),i=M(y.pointB,r),a=(75-t)*(i+o)/2;return a<=i?P(a,i,r,y.pointB):P(a-=i,o,y.pointB,e)}(n,t):n<=29?c=function(n,t){var r=R(n),e=N(n),o=F(n),i=t*(e+o+r.lengthParallel73)/73;return i<=e?P(i,e,C(n),j(n)):i<=e+o?P(i-=e,o,j(n),D(n)):P(i=i-e-o,r.lengthParallel73,D(n),r.parallel73)}(n,t):t>=73?c=function(n,t){var r=I(n),e=M(D(n),r),o=R(n),i=o.parallel73,a=o.lengthParallel73,u=(75-t)*(e-a)/2;return u<=e?P(u,e,r,D(n)):P(u-=e,-a,D(n),i)}(n,t):(i=(e=E(y.pointC,y.radius,j(n),D(n)))[0],o=e[1],r=N(n),1===i?a=r+M(j(n),o):(i=(e=E(y.pointC,y.radius,C(n),j(n)))[0],o=e[1],a=r-M(j(n),o)),c=t<=15?function(n,t,r){var e=t*r/15,o=N(n),i=F(n);return e<=o?P(e,o,C(n),j(n)):P(e-=o,i,j(n),D(n))}(n,t,a):function(n,t,r){var e=R(n),o=e.parallel73,i=N(n),a=F(n),u=e.lengthParallel73,c=r+(t-15)*(i+a+u-r)/58;return c<=i?P(c,i,C(n),D(n)):c<=i+a?P(c-=i,a,j(n),D(n)):P(c=c-i-a,u,D(n),o)}(n,t,a)),c}return m=B(3),y.lengthMA=.094*y.lengthMG,y.lengthParallel0to73At0=y.lengthMG/100,y.lengthParallel73to90At0=(y.lengthMG-y.lengthMA-73*y.lengthParallel0to73At0)/17,y.sin60=m/2,y.cos60=.5,y.pointM=[0,0],y.pointG=[y.lengthMG,0],t=[y.lengthMG,y.lengthMG*d(30*S)],y.pointA=[y.lengthMA,0],y.pointB=A(y.pointM,30,y.pointA,45),y.lengthAG=M(y.pointA,y.pointG),y.lengthAB=M(y.pointA,y.pointB),r=M(y.pointM,y.pointB),e=M(y.pointM,t),i=M(t,y.pointG),y.pointD=P(r,e,t,y.pointM),y.pointF=[y.lengthMG,i-r],y.pointE=[t[0]-y.lengthMA*v(30*S),t[1]-y.lengthMA*u(30*S)],y.lengthGF=M(y.pointG,y.pointF),y.lengthBD=M(y.pointB,y.pointD),y.lengthBDE=y.lengthBD+y.lengthAB,y.lengthGFE=y.lengthGF+y.lengthAB,y.deltaMEq=y.lengthGFE/45,y.lengthAP75=15*y.lengthParallel73to90At0,y.lengthAP73=y.lengthMG-y.lengthMA-73*y.lengthParallel0to73At0,a=[y.pointA[0]+y.lengthAP73*u(30*S),y.pointA[1]+y.lengthAP73*v(30*S)],y.pointT=A(a,-60,y.pointB,30),c=R(29),l=c.lengthParallel73,f=N(29),s=F(29),h=15*(f+s+l)/73,p=[0,0],y.pointC=[0,0],y.radius=0,p=P(h-=f,s,j(29),D(29)),y.pointC[1]=(p[0]*p[0]+p[1]*p[1]-y.pointD[0]*y.pointD[0]-y.pointD[1]*y.pointD[1])/(2*(m*p[0]+p[1]-m*y.pointD[0]-y.pointD[1])),y.pointC[0]=m*y.pointC[1],y.radius=M(y.pointC,y.pointD),function(n,t){var r=b(n*w,t*w),e=r[0],o=r[1],i=r[2],a=r[3],u=T(e,o);return function(n,t){var r=[0,0];if(0===t)r=G(n,-60);else if(1===t)(r=G(n,-120))[0]-=y.lengthMG;else if(2===t)(r=G(n,-60))[0]-=y.lengthMG;else if(3===t)(r=G(n,-120))[0]+=y.lengthMG;else if(4===t)(r=G(n,-60))[0]+=y.lengthMG;else if(5===t)(r=G([2*y.lengthMG-n[0],n[1]],-60))[0]+=y.lengthMG;else if(6===t)(r=G([2*y.lengthMG-n[0],n[1]],-120))[0]-=y.lengthMG;else if(7===t)(r=G([2*y.lengthMG-n[0],n[1]],-60))[0]-=y.lengthMG;else{if(8!==t)return r;(r=G([2*y.lengthMG-n[0],n[1]],-120))[0]+=y.lengthMG}return r}([u[0],i*u[1]],a)}}var Jn=r.geoAzimuthalEqualAreaRaw,Un=-.05,Xn=1e-10,Yn={angle:90,center:[0,5.022570623227068],scale:79.92959180396787,translate:[479.9999905630355,250.35977064160338]},Zn=[[-180,-1e-4],[180,-1e-4],[1e-4,Un],[-1e-4,Un]],$n=5,nt=50;function tt(n=Jn){function t(t,r){var e=n(t,r);return 0==(e=En(e,[u(-M/2),v(-M/2)]))[0]&&0==e[1]&&(e[0]+=Xn,e[1]+=Xn),[Sn(e[0],e[1]),a(e[1],e[0])]}return t.invert=function(t,r){var e=[c(t)*u(r),c(t)*v(r)];return e=En(e,[u(M/2),v(M/2)]),n.invert(e[0],e[1])},t}n.geoClipPolygon=$,n.geoIntersectArc=function(n,t){var r=n.map(n=>O(n.map(n=>n*S))),e=t.map(n=>O(n.map(n=>n*S))),o=X(new U(r[0],r[1]),new U(e[0],e[1]));return o?T(o).map(n=>n*w):o},n.geoPolyhedral=ln,n.geoPolyhedralButterfly=function(n){n=n||function(n){var t=r.geoCentroid({type:"MultiPoint",coordinates:n});return r.geoGnomonic().scale(1).translate([0,0]).rotate([-t[0],-t[1]])};var t=pn.map(function(t){return{face:t,project:n(t)}});return[-1,0,0,1,0,1,4,5].forEach(function(n,r){var e=t[n];e&&(e.children||(e.children=[])).push(t[r])}),ln(t[0],function(n,r){return t[n<-M/2?r<0?6:4:n<0?r<0?2:0:n<M/2?r<0?3:1:r<0?7:5]}).angle(-30).scale(101.858).center([0,45])},n.geoPolyhedralCollignon=function(n){n=n||function(n){var t=r.geoCentroid({type:"MultiPoint",coordinates:n});return r.geoProjection(dn).translate([0,0]).scale(1).rotate(t[1]>0?[-t[0],0]:[180-t[0],180])};var t=pn.map(function(t){return{face:t,project:n(t)}});return[-1,0,0,1,0,1,4,5].forEach(function(n,r){var e=t[n];e&&(e.children||(e.children=[])).push(t[r])}),ln(t[0],function(n,r){return t[n<-M/2?r<0?6:4:n<0?r<0?2:0:n<M/2?r<0?3:1:r<0?7:5]}).angle(-30).scale(121.906).center([0,48.5904])},n.geoPolyhedralWaterman=function(n){n=n||function(n){var t=6===n.length?r.geoCentroid({type:"MultiPoint",coordinates:n}):n[0];return r.geoGnomonic().scale(1).translate([0,0]).rotate([-t[0],-t[1]])};var t=pn.map(function(n){for(var t,r=n.map(Mn),e=r.length,o=r[e-1],i=[],a=0;a<e;++a)t=r[a],i.push(yn([.9486832980505138*o[0]+.31622776601683794*t[0],.9486832980505138*o[1]+.31622776601683794*t[1],.9486832980505138*o[2]+.31622776601683794*t[2]]),yn([.9486832980505138*t[0]+.31622776601683794*o[0],.9486832980505138*t[1]+.31622776601683794*o[1],.9486832980505138*t[2]+.31622776601683794*o[2]])),o=t;return i}),e=[],o=[-1,0,0,1,0,1,4,5];t.forEach(function(n,r){for(var i,a,u=pn[r],c=u.length,l=e[r]=[],f=0;f<c;++f)t.push([u[f],n[(2*f+2)%(2*c)],n[(2*f+1)%(2*c)]]),o.push(r),l.push((i=Mn(n[(2*f+2)%(2*c)]),a=Mn(n[(2*f+1)%(2*c)]),[i[1]*a[2]-i[2]*a[1],i[2]*a[0]-i[0]*a[2],i[0]*a[1]-i[1]*a[0]]))});var i=t.map(function(t){return{project:n(t),face:t}});return o.forEach(function(n,t){var r=i[n];r&&(r.children||(r.children=[])).push(i[t])}),ln(i[0],function(n,t){var r=u(t),o=[r*u(n),r*v(n),v(t)],a=n<-M/2?t<0?6:4:n<0?t<0?2:0:n<M/2?t<0?3:1:t<0?7:5,c=e[a];return i[mn(c[0],o)<0?8+3*a:mn(c[1],o)<0?8+3*a+1:mn(c[2],o)<0?8+3*a+2:a]}).angle(-30).scale(110.625).center([0,45])},n.geoPolyhedralVoronoi=Pn,n.geoDodecahedral=function(){var n=C(1/B(3))*w,t=j((B(5)-1)/B(3)/2)*w,r=90-t,e=j(-(1+B(5))/B(3)/2)*w,o={type:"FeatureCollection",features:[[[45,n],[0,t],[180,t],[135,n],[90,r]],[[45,n],[r,0],[-r,0],[-45,n],[0,t]],[[45,n],[90,r],[90,-r],[45,-n],[r,0]],[[0,t],[-45,n],[-90,r],[-135,n],[180,t]],[[r,0],[45,-n],[0,-t],[-45,-n],[-r,0]],[[90,r],[135,n],[e,0],[135,-n],[90,-r]],[[45,-n],[90,-r],[135,-n],[180,-t],[0,-t]],[[135,n],[180,t],[-135,n],[-e,0],[e,0]],[[-45,n],[-r,0],[-45,-n],[-90,-r],[-90,r]],[[-45,-n],[0,-t],[180,-t],[-135,-n],[-90,-r]],[[135,-n],[e,0],[-e,0],[-135,-n],[180,-t]],[[-135,n],[-90,r],[-90,-r],[-135,-n],[-e,0]]].map(function(n){return n.push(n[0]),{geometry:{type:"Polygon",coordinates:[n]}}})};return Pn().parents([-1,0,4,8,1,2,2,3,1,8,6,3]).angle(108).polygons(o).scale(99.8).rotate([-8,0,-32])},n.geoCox=function(){var n=r.geoProjection(Fn),t=n.stream;return n.stream=function(e){var o=n.rotate(),i=t(e),a=(n.rotate([0,0]),t(e));return n.rotate(o),i.sphere=function(){var n;r.geoStream({type:"Polygon",coordinates:[[[0,90],[-180,-(n=2*C(1/B(5))*w)+m],[0,-90],[180,-n+m],[0,90]]]},a)},i},n.scale(188.305).translate([480,333.167])},n.geoCoxRaw=Fn,n.geoTetrahedralLee=function(){var n=function(n){var t=r.geoCentroid({type:"MultiPoint",coordinates:n}),e=[-t[0],-t[1],30];return 90==o(t[1])&&(e=[0,-t[1],-30]),r.geoProjection(Rn).scale(1).translate([0,0]).rotate(e)},t=Tn.map(function(t){return{face:t,project:n(t)}});return[-1,0,0,0].forEach(function(n,r){var e=t[n];e&&(e.children||(e.children=[])).push(t[r])}),ln(t[0],function(n,e){n*=w,e*=w;for(var o=0;o<t.length;o++)if(r.geoContains({type:"Polygon",coordinates:[[Tn[o][0],Tn[o][1],Tn[o][2],Tn[o][0]]]},[n,e]))return t[o]}).rotate([30,180]).angle(30).scale(118.662).translate([480,195.47])},n.geoLeeRaw=Rn,n.geoGrayFullerRaw=qn,n.geoAirocean=function(){var n,e,o,a;return(n=function(n){var t=n.centroid;return n.direction=Math.abs(t[1]-52.62)<1||Math.abs(t[1]+10.81)<1?0:60,r.geoProjection(qn()).scale(1).translate([0,0]).rotate([-t[0],-t[1],n.direction||0])},e=i(.5)*w,o=[[0,90],[0,-90]].concat(t.range(10).map(function(n){return[(36*n+180)%360-180,1&n?e:-e]})),(a=[[0,3,11],[0,5,3],[0,7,5],[0,9,7],[0,11,9],[2,11,3],[3,4,2],[4,3,5],[5,6,4],[6,5,7],[7,8,6],[8,7,9],[9,10,8],[10,9,11],[11,2,10],[1,2,4],[1,4,6],[1,6,8],[1,8,10],[1,10,2]].map(function(n){return n.map(function(n){return o[n]})})).forEach(function(n){n.centroid=r.geoCentroid({type:"MultiPoint",coordinates:n})}),function(){var n,t,e,o;o=(n=a[15]).centroid,t=n.slice(),n[0]=o,(n=[t[0],o,t[2]]).centroid=o,a.push(n),(n=[t[0],t[1],o]).centroid=o,a.push(n),o=(n=a[14]).centroid,t=n.slice();var i=r.geoGnomonic().scale(1).translate([0,0]).rotate([-o[0],-o[1]]),u=i(n[1]),c=i(n[2]);e=i.invert([(u[0]+c[0])/2,(u[1]+c[1])/2]),n[1]=e,(n=[t[0],t[1],e]).centroid=o,a.push(n),o=(n=a[19]).centroid,t=n.slice(),n[1]=e,(n=[e,t[0],t[1]]).centroid=o,a.push(n)}(),function(n){n=n||function(n){var t=n.centroid;return r.geoGnomonic().scale(1).translate([0,0]).rotate([-t[0],-t[1]])};var t=a.map(function(t,e){var o=t.slice();return o.push(o[0]),{face:t,site:t.centroid,id:e,contains:function(n,t){return r.geoContains({type:"Polygon",coordinates:[o]},[n*w,t*w])},project:n(t)}});[-1,0,1,11,13,6,7,1,7,8,9,10,11,12,13,6,8,10,17,21,16,15,19,19].forEach(function(n,r){var e=t[n];e&&(e.children||(e.children=[])).push(t[r])});var e=ln(t[0],function(n,r){for(var e=0;e<t.length;e++)if(t[e].contains(n,r))return t[e]});return e.faces=t,e}(n)).rotate([-83.65929,25.44458,-87.45184]).angle(-60).scale(45.4631).center([126,0])},n.geoIcosahedral=function(){var n=i(.5)*w,t=[[0,90],[0,-90]].concat([0,1,2,3,4,5,6,7,8,9].map(function(t){return[(36*t+180)%360-180,1&t?n:-n]})),r={type:"FeatureCollection",features:[[0,3,11],[0,5,3],[0,7,5],[0,9,7],[0,11,9],[2,11,3],[3,4,2],[4,3,5],[5,6,4],[6,5,7],[7,8,6],[8,7,9],[9,10,8],[10,9,11],[11,2,10],[1,2,4],[1,4,6],[1,6,8],[1,8,10],[1,10,2]].map(function(n){return n.map(function(n){return t[n]})}).map(function(n){return n.push(n[0]),{geometry:{type:"Polygon",coordinates:[n]}}})};return Pn().parents([-1,7,9,11,13,0,5,6,7,8,9,10,11,12,13,6,8,10,12,14]).angle(0).polygons(r).rotate([108,0]).scale(131.777).center([162,0])},n.geoImago=function(){var n=.59,t=1.16,e=r.geoProjectionMutator(Kn),o=e(n,t);function i(n){const r=100+2*m,e=[],o=n.scale(),i=n.center(),a=n.translate(),u=n.rotate();n.scale(1).center([0,90]).rotate([0,0]).translate([t,0]);for(let t=r-m;t>0;t--)e.unshift(n.invert([1.5*kn.height-.003,kn.width/2*t/r])),e.push(n.invert([-.5*kn.height+.003,kn.width/2*t/r]));return e.push(e[0]),n.scale(o).center(i).translate(a).rotate(u).preclip($({type:"Polygon",coordinates:[e]}))}return o.shift=function(r){return arguments.length?i(e(n,t=+r)):t},o.k=function(r){return arguments.length?i(e(n=+r,t)):n},i(o).rotate([18,-12.5,3.5]).scale(138.42).translate([480,250]).center([-139.405,40.5844])},n.geoImagoBlock=function(){var n=.68,t=r.geoProjectionMutator(_n),e=t(n);e.k=function(r){return arguments.length?t(n=+r):n};var o=-i(1/B(2))*w,a=[[-180+m,o+m],[0,90],[180-m,o+m],[180-m,o-m],[-180+m,o-m],[-180+m,o+m]];return e.preclip($({type:"Polygon",coordinates:[a]})).scale(144.04).rotate([18,-12.5,3.5]).center([0,35.2644])},n.geoImagoRaw=_n,n.geoCubic=function(){var n={type:"FeatureCollection",features:Wn.map(function(n){return(n=n.slice()).push(n[0]),{geometry:{type:"Polygon",coordinates:[n]}}})};return Pn().polygons(n).parents([-1,0,1,5,3,2]).angle(0).scale(96.8737).center([135,-45]).rotate([120,0])},n.geoCahillKeyes=function(n){n=n||function(){return r.geoProjectionMutator(Hn)(1e4).scale(1)};var t=[[0,90],[-90,0],[0,0],[90,0],[180,0],[0,-90]],e=(t=[[0,2,1],[0,3,2],[5,1,2],[5,2,3],[0,1,4],[0,4,3],[5,4,1],[5,3,4]].map(function(n){return n.map(function(n){return t[n]})})).map(function(n){for(var t,r=n.map(z),e=r.length,o=r[e-1],i=17*S,a=u(i),c=v(i),l=[],f=0;f<e;++f)t=r[f],l.push(q([o[0]*a+t[0]*c,o[1]*a+t[1]*c,o[2]*a+t[2]*c]),q([t[0]*a+o[0]*c,t[1]*a+o[1]*c,t[2]*a+o[2]*c])),o=t;return l}),o=[],i=[-1,3,0,2,0,1,4,5];e.forEach(function(n,r){for(var a=t[r],u=a.length,c=o[r]=[],l=0;l<u;++l)e.push([a[l],n[(2*l+2)%(2*u)],n[(2*l+1)%(2*u)]]),i.push(r),c.push(k(z(n[(2*l+2)%(2*u)]),z(n[(2*l+1)%(2*u)])))});var a=e.map(function(t){return{project:n(t),face:t}});return i.forEach(function(n,t){var r=a[n];r&&(r.children||(r.children=[])).push(a[t])}),ln(a[0],function(n,t){var r=u(t),e=[r*u(n),r*v(n),v(t)],i=n<-M/2?t<0?6:4:n<0?t<0?2:0:n<M/2?t<0?3:1:t<0?7:5,c=o[i];return a[L(c[0],e)<0?8+3*i:L(c[1],e)<0?8+3*i+1:L(c[2],e)<0?8+3*i+2:i]}).scale(.023975).rotate([20,0]).center([0,-17])},n.geoCahillKeyesRaw=Hn,n.geoComplexLog=function(n=Jn,t=Un){var e=r.geoProjectionMutator(tt),i=e(n);function a(n){var r=n.angle(),e=n.scale(),i=n.center(),a=n.translate(),u=n.rotate();n.angle(Yn.angle).scale(1).center([0,0]).rotate([0,0]).translate([0,0]).preclip();var c=n(Zn[0]),l=n(Zn[1]),f=n([Zn[2][0],t]),s=n([Zn[3][0],t]),h=o(l[0]-c[0]),p=o(f[1]-l[1]),g={type:"Polygon",coordinates:[[c,...Array.from({length:$n},(n,t)=>[f[0],f[1]-p*($n-t)/$n]),...Array.from({length:nt},(n,t)=>[f[0]-h*t/nt,f[1]]),...Array.from({length:$n},(n,t)=>[s[0],s[1]-p*t/$n]),c].map(t=>n.invert(t))]};return n.angle(r).scale(e).center(i).translate(a).rotate(u).preclip($(g))}return i.planarProjectionRaw=function(t){return arguments.length?a(e(n=t)):n},i.cutoffLatitude=function(r){return arguments.length?(t=r,a(e(n))):t},a(i).angle(Yn.angle).center(Yn.center).scale(Yn.scale).translate(Yn.translate)},n.geoComplexLogRaw=tt,Object.defineProperty(n,"__esModule",{value:!0})});