import { o as epsilon } from "./math-DFcdCCU8.js";
function Linear(d8) {
  this._context = d8;
}
Linear.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1, this._line ? this._context.lineTo(d8, F) : this._context.moveTo(d8, F);
        break;
      case 1:
        this._point = 2;
      default:
        this._context.lineTo(d8, F);
        break;
    }
  }
};
function linear_default(d8) {
  return new Linear(d8);
}
function noop_default() {
}
function point$3(d8, F, I) {
  d8._context.bezierCurveTo((2 * d8._x0 + d8._x1) / 3, (2 * d8._y0 + d8._y1) / 3, (d8._x0 + 2 * d8._x1) / 3, (d8._y0 + 2 * d8._y1) / 3, (d8._x0 + 4 * d8._x1 + F) / 6, (d8._y0 + 4 * d8._y1 + I) / 6);
}
function Basis(d8) {
  this._context = d8;
}
Basis.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 3:
        point$3(this, this._x1, this._y1);
      case 2:
        this._context.lineTo(this._x1, this._y1);
        break;
    }
    (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1, this._line ? this._context.lineTo(d8, F) : this._context.moveTo(d8, F);
        break;
      case 1:
        this._point = 2;
        break;
      case 2:
        this._point = 3, this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
      default:
        point$3(this, d8, F);
        break;
    }
    this._x0 = this._x1, this._x1 = d8, this._y0 = this._y1, this._y1 = F;
  }
};
function basis_default(d8) {
  return new Basis(d8);
}
function BasisClosed(d8) {
  this._context = d8;
}
BasisClosed.prototype = {
  areaStart: noop_default,
  areaEnd: noop_default,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN, this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1:
        this._context.moveTo(this._x2, this._y2), this._context.closePath();
        break;
      case 2:
        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3), this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3), this._context.closePath();
        break;
      case 3:
        this.point(this._x2, this._y2), this.point(this._x3, this._y3), this.point(this._x4, this._y4);
        break;
    }
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1, this._x2 = d8, this._y2 = F;
        break;
      case 1:
        this._point = 2, this._x3 = d8, this._y3 = F;
        break;
      case 2:
        this._point = 3, this._x4 = d8, this._y4 = F, this._context.moveTo((this._x0 + 4 * this._x1 + d8) / 6, (this._y0 + 4 * this._y1 + F) / 6);
        break;
      default:
        point$3(this, d8, F);
        break;
    }
    this._x0 = this._x1, this._x1 = d8, this._y0 = this._y1, this._y1 = F;
  }
};
function basisClosed_default(d8) {
  return new BasisClosed(d8);
}
function BasisOpen(d8) {
  this._context = d8;
}
BasisOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._y0 = this._y1 = NaN, this._point = 0;
  },
  lineEnd: function() {
    (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1;
        break;
      case 1:
        this._point = 2;
        break;
      case 2:
        this._point = 3;
        var I = (this._x0 + 4 * this._x1 + d8) / 6, L = (this._y0 + 4 * this._y1 + F) / 6;
        this._line ? this._context.lineTo(I, L) : this._context.moveTo(I, L);
        break;
      case 3:
        this._point = 4;
      default:
        point$3(this, d8, F);
        break;
    }
    this._x0 = this._x1, this._x1 = d8, this._y0 = this._y1, this._y1 = F;
  }
};
function basisOpen_default(d8) {
  return new BasisOpen(d8);
}
function Bundle(d8, F) {
  this._basis = new Basis(d8), this._beta = F;
}
Bundle.prototype = {
  lineStart: function() {
    this._x = [], this._y = [], this._basis.lineStart();
  },
  lineEnd: function() {
    var d8 = this._x, F = this._y, I = d8.length - 1;
    if (I > 0) for (var L = d8[0], R = F[0], z = d8[I] - L, B = F[I] - R, V = -1, H; ++V <= I; ) H = V / I, this._basis.point(this._beta * d8[V] + (1 - this._beta) * (L + H * z), this._beta * F[V] + (1 - this._beta) * (R + H * B));
    this._x = this._y = null, this._basis.lineEnd();
  },
  point: function(d8, F) {
    this._x.push(+d8), this._y.push(+F);
  }
};
var bundle_default = (function d(F) {
  function I(d8) {
    return F === 1 ? new Basis(d8) : new Bundle(d8, F);
  }
  return I.beta = function(F2) {
    return d(+F2);
  }, I;
})(0.85);
function point$2(d8, F, I) {
  d8._context.bezierCurveTo(d8._x1 + d8._k * (d8._x2 - d8._x0), d8._y1 + d8._k * (d8._y2 - d8._y0), d8._x2 + d8._k * (d8._x1 - F), d8._y2 + d8._k * (d8._y1 - I), d8._x2, d8._y2);
}
function Cardinal(d8, F) {
  this._context = d8, this._k = (1 - F) / 6;
}
Cardinal.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2:
        this._context.lineTo(this._x2, this._y2);
        break;
      case 3:
        point$2(this, this._x1, this._y1);
        break;
    }
    (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1, this._line ? this._context.lineTo(d8, F) : this._context.moveTo(d8, F);
        break;
      case 1:
        this._point = 2, this._x1 = d8, this._y1 = F;
        break;
      case 2:
        this._point = 3;
      default:
        point$2(this, d8, F);
        break;
    }
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = d8, this._y0 = this._y1, this._y1 = this._y2, this._y2 = F;
  }
};
var cardinal_default = (function d2(F) {
  function I(d8) {
    return new Cardinal(d8, F);
  }
  return I.tension = function(F2) {
    return d2(+F2);
  }, I;
})(0);
function CardinalClosed(d8, F) {
  this._context = d8, this._k = (1 - F) / 6;
}
CardinalClosed.prototype = {
  areaStart: noop_default,
  areaEnd: noop_default,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1:
        this._context.moveTo(this._x3, this._y3), this._context.closePath();
        break;
      case 2:
        this._context.lineTo(this._x3, this._y3), this._context.closePath();
        break;
      case 3:
        this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
        break;
    }
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1, this._x3 = d8, this._y3 = F;
        break;
      case 1:
        this._point = 2, this._context.moveTo(this._x4 = d8, this._y4 = F);
        break;
      case 2:
        this._point = 3, this._x5 = d8, this._y5 = F;
        break;
      default:
        point$2(this, d8, F);
        break;
    }
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = d8, this._y0 = this._y1, this._y1 = this._y2, this._y2 = F;
  }
};
var cardinalClosed_default = (function d3(F) {
  function I(d8) {
    return new CardinalClosed(d8, F);
  }
  return I.tension = function(F2) {
    return d3(+F2);
  }, I;
})(0);
function CardinalOpen(d8, F) {
  this._context = d8, this._k = (1 - F) / 6;
}
CardinalOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._point = 0;
  },
  lineEnd: function() {
    (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1;
        break;
      case 1:
        this._point = 2;
        break;
      case 2:
        this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
        break;
      case 3:
        this._point = 4;
      default:
        point$2(this, d8, F);
        break;
    }
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = d8, this._y0 = this._y1, this._y1 = this._y2, this._y2 = F;
  }
};
var cardinalOpen_default = (function d4(F) {
  function I(d8) {
    return new CardinalOpen(d8, F);
  }
  return I.tension = function(F2) {
    return d4(+F2);
  }, I;
})(0);
function point$1(d8, F, I) {
  var L = d8._x1, R = d8._y1, z = d8._x2, B = d8._y2;
  if (d8._l01_a > 1e-12) {
    var V = 2 * d8._l01_2a + 3 * d8._l01_a * d8._l12_a + d8._l12_2a, H = 3 * d8._l01_a * (d8._l01_a + d8._l12_a);
    L = (L * V - d8._x0 * d8._l12_2a + d8._x2 * d8._l01_2a) / H, R = (R * V - d8._y0 * d8._l12_2a + d8._y2 * d8._l01_2a) / H;
  }
  if (d8._l23_a > 1e-12) {
    var U = 2 * d8._l23_2a + 3 * d8._l23_a * d8._l12_a + d8._l12_2a, W = 3 * d8._l23_a * (d8._l23_a + d8._l12_a);
    z = (z * U + d8._x1 * d8._l23_2a - F * d8._l12_2a) / W, B = (B * U + d8._y1 * d8._l23_2a - I * d8._l12_2a) / W;
  }
  d8._context.bezierCurveTo(L, R, z, B, d8._x2, d8._y2);
}
function CatmullRom(d8, F) {
  this._context = d8, this._alpha = F;
}
CatmullRom.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2:
        this._context.lineTo(this._x2, this._y2);
        break;
      case 3:
        this.point(this._x2, this._y2);
        break;
    }
    (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    if (d8 = +d8, F = +F, this._point) {
      var I = this._x2 - d8, L = this._y2 - F;
      this._l23_a = Math.sqrt(this._l23_2a = (I * I + L * L) ** +this._alpha);
    }
    switch (this._point) {
      case 0:
        this._point = 1, this._line ? this._context.lineTo(d8, F) : this._context.moveTo(d8, F);
        break;
      case 1:
        this._point = 2;
        break;
      case 2:
        this._point = 3;
      default:
        point$1(this, d8, F);
        break;
    }
    this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = d8, this._y0 = this._y1, this._y1 = this._y2, this._y2 = F;
  }
};
var catmullRom_default = (function d5(F) {
  function I(d8) {
    return F ? new CatmullRom(d8, F) : new Cardinal(d8, 0);
  }
  return I.alpha = function(F2) {
    return d5(+F2);
  }, I;
})(0.5);
function CatmullRomClosed(d8, F) {
  this._context = d8, this._alpha = F;
}
CatmullRomClosed.prototype = {
  areaStart: noop_default,
  areaEnd: noop_default,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1:
        this._context.moveTo(this._x3, this._y3), this._context.closePath();
        break;
      case 2:
        this._context.lineTo(this._x3, this._y3), this._context.closePath();
        break;
      case 3:
        this.point(this._x3, this._y3), this.point(this._x4, this._y4), this.point(this._x5, this._y5);
        break;
    }
  },
  point: function(d8, F) {
    if (d8 = +d8, F = +F, this._point) {
      var I = this._x2 - d8, L = this._y2 - F;
      this._l23_a = Math.sqrt(this._l23_2a = (I * I + L * L) ** +this._alpha);
    }
    switch (this._point) {
      case 0:
        this._point = 1, this._x3 = d8, this._y3 = F;
        break;
      case 1:
        this._point = 2, this._context.moveTo(this._x4 = d8, this._y4 = F);
        break;
      case 2:
        this._point = 3, this._x5 = d8, this._y5 = F;
        break;
      default:
        point$1(this, d8, F);
        break;
    }
    this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = d8, this._y0 = this._y1, this._y1 = this._y2, this._y2 = F;
  }
};
var catmullRomClosed_default = (function d6(F) {
  function I(d8) {
    return F ? new CatmullRomClosed(d8, F) : new CardinalClosed(d8, 0);
  }
  return I.alpha = function(F2) {
    return d6(+F2);
  }, I;
})(0.5);
function CatmullRomOpen(d8, F) {
  this._context = d8, this._alpha = F;
}
CatmullRomOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN, this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
  },
  lineEnd: function() {
    (this._line || this._line !== 0 && this._point === 3) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    if (d8 = +d8, F = +F, this._point) {
      var I = this._x2 - d8, L = this._y2 - F;
      this._l23_a = Math.sqrt(this._l23_2a = (I * I + L * L) ** +this._alpha);
    }
    switch (this._point) {
      case 0:
        this._point = 1;
        break;
      case 1:
        this._point = 2;
        break;
      case 2:
        this._point = 3, this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
        break;
      case 3:
        this._point = 4;
      default:
        point$1(this, d8, F);
        break;
    }
    this._l01_a = this._l12_a, this._l12_a = this._l23_a, this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a, this._x0 = this._x1, this._x1 = this._x2, this._x2 = d8, this._y0 = this._y1, this._y1 = this._y2, this._y2 = F;
  }
};
var catmullRomOpen_default = (function d7(F) {
  function I(d8) {
    return F ? new CatmullRomOpen(d8, F) : new CardinalOpen(d8, 0);
  }
  return I.alpha = function(F2) {
    return d7(+F2);
  }, I;
})(0.5);
function LinearClosed(d8) {
  this._context = d8;
}
LinearClosed.prototype = {
  areaStart: noop_default,
  areaEnd: noop_default,
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    this._point && this._context.closePath();
  },
  point: function(d8, F) {
    d8 = +d8, F = +F, this._point ? this._context.lineTo(d8, F) : (this._point = 1, this._context.moveTo(d8, F));
  }
};
function linearClosed_default(d8) {
  return new LinearClosed(d8);
}
function sign(d8) {
  return d8 < 0 ? -1 : 1;
}
function slope3(d8, F, I) {
  var L = d8._x1 - d8._x0, R = F - d8._x1, z = (d8._y1 - d8._y0) / (L || R < 0 && -0), B = (I - d8._y1) / (R || L < 0 && -0), V = (z * R + B * L) / (L + R);
  return (sign(z) + sign(B)) * Math.min(Math.abs(z), Math.abs(B), 0.5 * Math.abs(V)) || 0;
}
function slope2(d8, F) {
  var I = d8._x1 - d8._x0;
  return I ? (3 * (d8._y1 - d8._y0) / I - F) / 2 : F;
}
function point(d8, F, I) {
  var L = d8._x0, R = d8._y0, z = d8._x1, B = d8._y1, V = (z - L) / 3;
  d8._context.bezierCurveTo(L + V, R + V * F, z - V, B - V * I, z, B);
}
function MonotoneX(d8) {
  this._context = d8;
}
MonotoneX.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN, this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2:
        this._context.lineTo(this._x1, this._y1);
        break;
      case 3:
        point(this, this._t0, slope2(this, this._t0));
        break;
    }
    (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
  },
  point: function(d8, F) {
    var I = NaN;
    if (d8 = +d8, F = +F, !(d8 === this._x1 && F === this._y1)) {
      switch (this._point) {
        case 0:
          this._point = 1, this._line ? this._context.lineTo(d8, F) : this._context.moveTo(d8, F);
          break;
        case 1:
          this._point = 2;
          break;
        case 2:
          this._point = 3, point(this, slope2(this, I = slope3(this, d8, F)), I);
          break;
        default:
          point(this, this._t0, I = slope3(this, d8, F));
          break;
      }
      this._x0 = this._x1, this._x1 = d8, this._y0 = this._y1, this._y1 = F, this._t0 = I;
    }
  }
};
function MonotoneY(d8) {
  this._context = new ReflectContext(d8);
}
(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(d8, F) {
  MonotoneX.prototype.point.call(this, F, d8);
};
function ReflectContext(d8) {
  this._context = d8;
}
ReflectContext.prototype = {
  moveTo: function(d8, F) {
    this._context.moveTo(F, d8);
  },
  closePath: function() {
    this._context.closePath();
  },
  lineTo: function(d8, F) {
    this._context.lineTo(F, d8);
  },
  bezierCurveTo: function(d8, F, I, L, R, z) {
    this._context.bezierCurveTo(F, d8, L, I, z, R);
  }
};
function monotoneX(d8) {
  return new MonotoneX(d8);
}
function monotoneY(d8) {
  return new MonotoneY(d8);
}
function Natural(d8) {
  this._context = d8;
}
Natural.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x = [], this._y = [];
  },
  lineEnd: function() {
    var d8 = this._x, F = this._y, I = d8.length;
    if (I) if (this._line ? this._context.lineTo(d8[0], F[0]) : this._context.moveTo(d8[0], F[0]), I === 2) this._context.lineTo(d8[1], F[1]);
    else for (var L = controlPoints(d8), R = controlPoints(F), z = 0, B = 1; B < I; ++z, ++B) this._context.bezierCurveTo(L[0][z], R[0][z], L[1][z], R[1][z], d8[B], F[B]);
    (this._line || this._line !== 0 && I === 1) && this._context.closePath(), this._line = 1 - this._line, this._x = this._y = null;
  },
  point: function(d8, F) {
    this._x.push(+d8), this._y.push(+F);
  }
};
function controlPoints(d8) {
  var F, I = d8.length - 1, L, R = Array(I), z = Array(I), B = Array(I);
  for (R[0] = 0, z[0] = 2, B[0] = d8[0] + 2 * d8[1], F = 1; F < I - 1; ++F) R[F] = 1, z[F] = 4, B[F] = 4 * d8[F] + 2 * d8[F + 1];
  for (R[I - 1] = 2, z[I - 1] = 7, B[I - 1] = 8 * d8[I - 1] + d8[I], F = 1; F < I; ++F) L = R[F] / z[F - 1], z[F] -= L, B[F] -= L * B[F - 1];
  for (R[I - 1] = B[I - 1] / z[I - 1], F = I - 2; F >= 0; --F) R[F] = (B[F] - R[F + 1]) / z[F];
  for (z[I - 1] = (d8[I] + R[I - 1]) / 2, F = 0; F < I - 1; ++F) z[F] = 2 * d8[F + 1] - R[F + 1];
  return [R, z];
}
function natural_default(d8) {
  return new Natural(d8);
}
function Step(d8, F) {
  this._context = d8, this._t = F;
}
Step.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x = this._y = NaN, this._point = 0;
  },
  lineEnd: function() {
    0 < this._t && this._t < 1 && this._point === 2 && this._context.lineTo(this._x, this._y), (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line >= 0 && (this._t = 1 - this._t, this._line = 1 - this._line);
  },
  point: function(d8, F) {
    switch (d8 = +d8, F = +F, this._point) {
      case 0:
        this._point = 1, this._line ? this._context.lineTo(d8, F) : this._context.moveTo(d8, F);
        break;
      case 1:
        this._point = 2;
      default:
        if (this._t <= 0) this._context.lineTo(this._x, F), this._context.lineTo(d8, F);
        else {
          var I = this._x * (1 - this._t) + d8 * this._t;
          this._context.lineTo(I, this._y), this._context.lineTo(I, F);
        }
        break;
    }
    this._x = d8, this._y = F;
  }
};
function step_default(d8) {
  return new Step(d8, 0.5);
}
function stepBefore(d8) {
  return new Step(d8, 0);
}
function stepAfter(d8) {
  return new Step(d8, 1);
}
export {
  basis_default as _,
  monotoneX as a,
  catmullRomOpen_default as c,
  cardinalOpen_default as d,
  cardinalClosed_default as f,
  basisClosed_default as g,
  basisOpen_default as h,
  natural_default as i,
  catmullRomClosed_default as l,
  bundle_default as m,
  stepBefore as n,
  monotoneY as o,
  cardinal_default as p,
  step_default as r,
  linearClosed_default as s,
  stepAfter as t,
  catmullRom_default as u,
  linear_default as v
};
