!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).RBush=i()}(this,(function(){"use strict";function t(e,h,r=0,s=e.length-1,a=n){for(;s>r;){if(s-r>600){const i=s-r+1,n=h-r+1,o=Math.log(i),l=.5*Math.exp(2*o/3),c=.5*Math.sqrt(o*l*(i-l)/i)*(n-i/2<0?-1:1);t(e,h,Math.max(r,Math.floor(h-n*l/i+c)),Math.min(s,Math.floor(h+(i-n)*l/i+c)),a)}const n=e[h];let o=r,l=s;for(i(e,r,h),a(e[s],n)>0&&i(e,r,s);o0;)l--}0===a(e[r],n)?i(e,r,l):(l++,i(e,l,s)),l<=h&&(r=l+1),h<=l&&(s=l-1)}}function i(t,i,n){const e=t[i];t[i]=t[n],t[n]=e}function n(t,i){return ti?1:0}function e(t,i,n){if(!n)return i.indexOf(t);for(let e=0;e=t.minX&&i.maxY>=t.minY}function d(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function x(i,n,e,h,r){const s=[n,e];for(;s.length;){if((e=s.pop())-(n=s.pop())<=h)continue;const a=n+Math.ceil((e-n)/h/2)*h;t(i,a,n,e,r),s.push(n,a,a,e)}}return class{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let i=this.data;const n=[];if(!u(t,i))return n;const e=this.toBBox,h=[];for(;i;){for(let r=0;r=0&&h[i].children.length>this._maxEntries;)this._split(h,i),i--;this._adjustParentBBoxes(e,h,i)}_split(t,i){const n=t[i],e=n.children.length,r=this._minEntries;this._chooseSplitAxis(n,r,e);const s=this._chooseSplitIndex(n,r,e),a=d(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,h(n,this.toBBox),h(a,this.toBBox),i?t[i-1].children.push(a):this._splitRoot(n,a)}_splitRoot(t,i){this.data=d([t,i]),this.data.height=t.height+1,this.data.leaf=!1,h(this.data,this.toBBox)}_chooseSplitIndex(t,i,n){let e,h=1/0,s=1/0;for(let a=i;a<=n-i;a++){const i=r(t,0,a,this.toBBox),o=r(t,a,n,this.toBBox),c=m(i,o),f=l(i)+l(o);c=i;e--){const i=t.children[e];s(o,t.leaf?h(i):i),l+=c(o)}return l}_adjustParentBBoxes(t,i,n){for(let e=n;e>=0;e--)s(i[e],t)}_condense(t){for(let i,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(i=t[n-1].children,i.splice(i.indexOf(t[n]),1)):this.clear():h(t[n],this.toBBox)}}}));