import { a as t, c as e, g as n } from "./alasql-f60045ee.js";
import { p as o } from "./fontawesome-3904a214.js";
import i from "react";
function r(t2, e2) {
  for (var n2 = 0; n2 < e2.length; n2++) {
    const o2 = e2[n2];
    if ("string" != typeof o2 && !Array.isArray(o2)) {
      for (const e3 in o2)
        if ("default" !== e3 && !(e3 in t2)) {
          const n3 = Object.getOwnPropertyDescriptor(o2, e3);
          n3 && Object.defineProperty(t2, e3, n3.get ? n3 : { enumerable: true, get: () => o2[e3] });
        }
    }
  }
  return Object.freeze(Object.defineProperty(t2, Symbol.toStringTag, { value: "Module" }));
}
var a = { exports: {} };
function s(t2, e2, n2) {
  this.x = t2, this.y = e2, this.time = n2 || (/* @__PURE__ */ new Date()).getTime();
}
function h(t2, e2, n2, o2) {
  this.startPoint = t2, this.control1 = e2, this.control2 = n2, this.endPoint = o2;
}
function u(t2, e2) {
  var n2 = this, o2 = e2 || {};
  this.velocityFilterWeight = o2.velocityFilterWeight || 0.7, this.minWidth = o2.minWidth || 0.5, this.maxWidth = o2.maxWidth || 2.5, this.throttle = "throttle" in o2 ? o2.throttle : 16, this.minDistance = "minDistance" in o2 ? o2.minDistance : 5, this.throttle ? this._strokeMoveUpdate = function(t3, e3, n3) {
    var o3, i2, r2, a2 = null, s2 = 0;
    n3 || (n3 = {});
    var h2 = function() {
      s2 = false === n3.leading ? 0 : Date.now(), a2 = null, r2 = t3.apply(o3, i2), a2 || (o3 = i2 = null);
    };
    return function() {
      var u2 = Date.now();
      s2 || false !== n3.leading || (s2 = u2);
      var c2 = e3 - (u2 - s2);
      return o3 = this, i2 = arguments, c2 <= 0 || c2 > e3 ? (a2 && (clearTimeout(a2), a2 = null), s2 = u2, r2 = t3.apply(o3, i2), a2 || (o3 = i2 = null)) : a2 || false === n3.trailing || (a2 = setTimeout(h2, c2)), r2;
    };
  }(u.prototype._strokeUpdate, this.throttle) : this._strokeMoveUpdate = u.prototype._strokeUpdate, this.dotSize = o2.dotSize || function() {
    return (this.minWidth + this.maxWidth) / 2;
  }, this.penColor = o2.penColor || "black", this.backgroundColor = o2.backgroundColor || "rgba(0,0,0,0)", this.onBegin = o2.onBegin, this.onEnd = o2.onEnd, this._canvas = t2, this._ctx = t2.getContext("2d"), this.clear(), this._handleMouseDown = function(t3) {
    1 === t3.which && (n2._mouseButtonDown = true, n2._strokeBegin(t3));
  }, this._handleMouseMove = function(t3) {
    n2._mouseButtonDown && n2._strokeMoveUpdate(t3);
  }, this._handleMouseUp = function(t3) {
    1 === t3.which && n2._mouseButtonDown && (n2._mouseButtonDown = false, n2._strokeEnd(t3));
  }, this._handleTouchStart = function(t3) {
    if (1 === t3.targetTouches.length) {
      var e3 = t3.changedTouches[0];
      n2._strokeBegin(e3);
    }
  }, this._handleTouchMove = function(t3) {
    t3.preventDefault();
    var e3 = t3.targetTouches[0];
    n2._strokeMoveUpdate(e3);
  }, this._handleTouchEnd = function(t3) {
    t3.target === n2._canvas && (t3.preventDefault(), n2._strokeEnd(t3));
  }, this.on();
}
s.prototype.velocityFrom = function(t2) {
  return this.time !== t2.time ? this.distanceTo(t2) / (this.time - t2.time) : 1;
}, s.prototype.distanceTo = function(t2) {
  return Math.sqrt(Math.pow(this.x - t2.x, 2) + Math.pow(this.y - t2.y, 2));
}, s.prototype.equals = function(t2) {
  return this.x === t2.x && this.y === t2.y && this.time === t2.time;
}, h.prototype.length = function() {
  for (var t2 = 0, e2 = void 0, n2 = void 0, o2 = 0; o2 <= 10; o2 += 1) {
    var i2 = o2 / 10, r2 = this._point(i2, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x), a2 = this._point(i2, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);
    if (o2 > 0) {
      var s2 = r2 - e2, h2 = a2 - n2;
      t2 += Math.sqrt(s2 * s2 + h2 * h2);
    }
    e2 = r2, n2 = a2;
  }
  return t2;
}, h.prototype._point = function(t2, e2, n2, o2, i2) {
  return e2 * (1 - t2) * (1 - t2) * (1 - t2) + 3 * n2 * (1 - t2) * (1 - t2) * t2 + 3 * o2 * (1 - t2) * t2 * t2 + i2 * t2 * t2 * t2;
}, u.prototype.clear = function() {
  var t2 = this._ctx, e2 = this._canvas;
  t2.fillStyle = this.backgroundColor, t2.clearRect(0, 0, e2.width, e2.height), t2.fillRect(0, 0, e2.width, e2.height), this._data = [], this._reset(), this._isEmpty = true;
}, u.prototype.fromDataURL = function(t2) {
  var e2 = this, n2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, o2 = new Image(), i2 = n2.ratio || window.devicePixelRatio || 1, r2 = n2.width || this._canvas.width / i2, a2 = n2.height || this._canvas.height / i2;
  this._reset(), o2.src = t2, o2.onload = function() {
    e2._ctx.drawImage(o2, 0, 0, r2, a2);
  }, this._isEmpty = false;
}, u.prototype.toDataURL = function(t2) {
  var e2;
  if ("image/svg+xml" === t2)
    return this._toSVG();
  for (var n2 = arguments.length, o2 = Array(n2 > 1 ? n2 - 1 : 0), i2 = 1; i2 < n2; i2++)
    o2[i2 - 1] = arguments[i2];
  return (e2 = this._canvas).toDataURL.apply(e2, [t2].concat(o2));
}, u.prototype.on = function() {
  this._handleMouseEvents(), this._handleTouchEvents();
}, u.prototype.off = function() {
  this._canvas.removeEventListener("mousedown", this._handleMouseDown), this._canvas.removeEventListener("mousemove", this._handleMouseMove), document.removeEventListener("mouseup", this._handleMouseUp), this._canvas.removeEventListener("touchstart", this._handleTouchStart), this._canvas.removeEventListener("touchmove", this._handleTouchMove), this._canvas.removeEventListener("touchend", this._handleTouchEnd);
}, u.prototype.isEmpty = function() {
  return this._isEmpty;
}, u.prototype._strokeBegin = function(t2) {
  this._data.push([]), this._reset(), this._strokeUpdate(t2), "function" == typeof this.onBegin && this.onBegin(t2);
}, u.prototype._strokeUpdate = function(t2) {
  var e2 = t2.clientX, n2 = t2.clientY, o2 = this._createPoint(e2, n2), i2 = this._data[this._data.length - 1], r2 = i2 && i2[i2.length - 1], a2 = r2 && o2.distanceTo(r2) < this.minDistance;
  if (!r2 || !a2) {
    var s2 = this._addPoint(o2), h2 = s2.curve, u2 = s2.widths;
    h2 && u2 && this._drawCurve(h2, u2.start, u2.end), this._data[this._data.length - 1].push({ x: o2.x, y: o2.y, time: o2.time, color: this.penColor });
  }
}, u.prototype._strokeEnd = function(t2) {
  var e2 = this.points.length > 2, n2 = this.points[0];
  if (!e2 && n2 && this._drawDot(n2), n2) {
    var o2 = this._data[this._data.length - 1], i2 = o2[o2.length - 1];
    n2.equals(i2) || o2.push({ x: n2.x, y: n2.y, time: n2.time, color: this.penColor });
  }
  "function" == typeof this.onEnd && this.onEnd(t2);
}, u.prototype._handleMouseEvents = function() {
  this._mouseButtonDown = false, this._canvas.addEventListener("mousedown", this._handleMouseDown), this._canvas.addEventListener("mousemove", this._handleMouseMove), document.addEventListener("mouseup", this._handleMouseUp);
}, u.prototype._handleTouchEvents = function() {
  this._canvas.style.msTouchAction = "none", this._canvas.style.touchAction = "none", this._canvas.addEventListener("touchstart", this._handleTouchStart), this._canvas.addEventListener("touchmove", this._handleTouchMove), this._canvas.addEventListener("touchend", this._handleTouchEnd);
}, u.prototype._reset = function() {
  this.points = [], this._lastVelocity = 0, this._lastWidth = (this.minWidth + this.maxWidth) / 2, this._ctx.fillStyle = this.penColor;
}, u.prototype._createPoint = function(t2, e2, n2) {
  var o2 = this._canvas.getBoundingClientRect();
  return new s(t2 - o2.left, e2 - o2.top, n2 || (/* @__PURE__ */ new Date()).getTime());
}, u.prototype._addPoint = function(t2) {
  var e2 = this.points;
  if (e2.push(t2), e2.length > 2) {
    3 === e2.length && e2.unshift(e2[0]);
    var n2 = this._calculateCurveControlPoints(e2[0], e2[1], e2[2]).c2, o2 = this._calculateCurveControlPoints(e2[1], e2[2], e2[3]).c1, i2 = new h(e2[1], n2, o2, e2[2]), r2 = this._calculateCurveWidths(i2);
    return e2.shift(), { curve: i2, widths: r2 };
  }
  return {};
}, u.prototype._calculateCurveControlPoints = function(t2, e2, n2) {
  var o2 = t2.x - e2.x, i2 = t2.y - e2.y, r2 = e2.x - n2.x, a2 = e2.y - n2.y, h2 = (t2.x + e2.x) / 2, u2 = (t2.y + e2.y) / 2, c2 = (e2.x + n2.x) / 2, l2 = (e2.y + n2.y) / 2, d2 = Math.sqrt(o2 * o2 + i2 * i2), f2 = Math.sqrt(r2 * r2 + a2 * a2), p2 = f2 / (d2 + f2), v2 = c2 + (h2 - c2) * p2, _2 = l2 + (u2 - l2) * p2, m2 = e2.x - v2, y2 = e2.y - _2;
  return { c1: new s(h2 + m2, u2 + y2), c2: new s(c2 + m2, l2 + y2) };
}, u.prototype._calculateCurveWidths = function(t2) {
  var e2 = t2.startPoint, n2 = t2.endPoint, o2 = { start: null, end: null }, i2 = this.velocityFilterWeight * n2.velocityFrom(e2) + (1 - this.velocityFilterWeight) * this._lastVelocity, r2 = this._strokeWidth(i2);
  return o2.start = this._lastWidth, o2.end = r2, this._lastVelocity = i2, this._lastWidth = r2, o2;
}, u.prototype._strokeWidth = function(t2) {
  return Math.max(this.maxWidth / (t2 + 1), this.minWidth);
}, u.prototype._drawPoint = function(t2, e2, n2) {
  var o2 = this._ctx;
  o2.moveTo(t2, e2), o2.arc(t2, e2, n2, 0, 2 * Math.PI, false), this._isEmpty = false;
}, u.prototype._drawCurve = function(t2, e2, n2) {
  var o2 = this._ctx, i2 = n2 - e2, r2 = Math.floor(t2.length());
  o2.beginPath();
  for (var a2 = 0; a2 < r2; a2 += 1) {
    var s2 = a2 / r2, h2 = s2 * s2, u2 = h2 * s2, c2 = 1 - s2, l2 = c2 * c2, d2 = l2 * c2, f2 = d2 * t2.startPoint.x;
    f2 += 3 * l2 * s2 * t2.control1.x, f2 += 3 * c2 * h2 * t2.control2.x, f2 += u2 * t2.endPoint.x;
    var p2 = d2 * t2.startPoint.y;
    p2 += 3 * l2 * s2 * t2.control1.y, p2 += 3 * c2 * h2 * t2.control2.y, p2 += u2 * t2.endPoint.y;
    var v2 = e2 + u2 * i2;
    this._drawPoint(f2, p2, v2);
  }
  o2.closePath(), o2.fill();
}, u.prototype._drawDot = function(t2) {
  var e2 = this._ctx, n2 = "function" == typeof this.dotSize ? this.dotSize() : this.dotSize;
  e2.beginPath(), this._drawPoint(t2.x, t2.y, n2), e2.closePath(), e2.fill();
}, u.prototype._fromData = function(t2, e2, n2) {
  for (var o2 = 0; o2 < t2.length; o2 += 1) {
    var i2 = t2[o2];
    if (i2.length > 1)
      for (var r2 = 0; r2 < i2.length; r2 += 1) {
        var a2 = i2[r2], h2 = new s(a2.x, a2.y, a2.time), u2 = a2.color;
        if (0 === r2)
          this.penColor = u2, this._reset(), this._addPoint(h2);
        else if (r2 !== i2.length - 1) {
          var c2 = this._addPoint(h2), l2 = c2.curve, d2 = c2.widths;
          l2 && d2 && e2(l2, d2, u2);
        }
      }
    else
      this._reset(), n2(i2[0]);
  }
}, u.prototype._toSVG = function() {
  var t2 = this, e2 = this._data, n2 = this._canvas, o2 = Math.max(window.devicePixelRatio || 1, 1), i2 = n2.width / o2, r2 = n2.height / o2, a2 = document.createElementNS("http://www.w3.org/2000/svg", "svg");
  a2.setAttributeNS(null, "width", n2.width), a2.setAttributeNS(null, "height", n2.height), this._fromData(e2, function(t3, e3, n3) {
    var o3 = document.createElement("path");
    if (!(isNaN(t3.control1.x) || isNaN(t3.control1.y) || isNaN(t3.control2.x) || isNaN(t3.control2.y))) {
      var i3 = "M " + t3.startPoint.x.toFixed(3) + "," + t3.startPoint.y.toFixed(3) + " C " + t3.control1.x.toFixed(3) + "," + t3.control1.y.toFixed(3) + " " + t3.control2.x.toFixed(3) + "," + t3.control2.y.toFixed(3) + " " + t3.endPoint.x.toFixed(3) + "," + t3.endPoint.y.toFixed(3);
      o3.setAttribute("d", i3), o3.setAttribute("stroke-width", (2.25 * e3.end).toFixed(3)), o3.setAttribute("stroke", n3), o3.setAttribute("fill", "none"), o3.setAttribute("stroke-linecap", "round"), a2.appendChild(o3);
    }
  }, function(e3) {
    var n3 = document.createElement("circle"), o3 = "function" == typeof t2.dotSize ? t2.dotSize() : t2.dotSize;
    n3.setAttribute("r", o3), n3.setAttribute("cx", e3.x), n3.setAttribute("cy", e3.y), n3.setAttribute("fill", e3.color), a2.appendChild(n3);
  });
  var s2 = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ' + i2 + " " + r2 + '" width="' + i2 + '" height="' + r2 + '">', h2 = a2.innerHTML;
  if (void 0 === h2) {
    var u2 = document.createElement("dummy"), c2 = a2.childNodes;
    u2.innerHTML = "";
    for (var l2 = 0; l2 < c2.length; l2 += 1)
      u2.appendChild(c2[l2].cloneNode(true));
    h2 = u2.innerHTML;
  }
  return "data:image/svg+xml;base64," + btoa(s2 + h2 + "</svg>");
}, u.prototype.fromData = function(t2) {
  var e2 = this;
  this.clear(), this._fromData(t2, function(t3, n2) {
    return e2._drawCurve(t3, n2.start, n2.end);
  }, function(t3) {
    return e2._drawDot(t3);
  }), this._data = t2;
}, u.prototype.toData = function() {
  return this._data;
};
const c = Object.freeze(Object.defineProperty({ __proto__: null, default: u }, Symbol.toStringTag, { value: "Module" }));
var l, d, f, p, v, _ = { exports: {} };
function m() {
  return l ? _.exports : (l = 1, _.exports = function(t2) {
    function e2(o2) {
      if (n2[o2])
        return n2[o2].exports;
      var i2 = n2[o2] = { exports: {}, id: o2, loaded: false };
      return t2[o2].call(i2.exports, i2, i2.exports, e2), i2.loaded = true, i2.exports;
    }
    var n2 = {};
    return e2.m = t2, e2.c = n2, e2.p = "", e2(0);
  }([function(t2, e2) {
    function n2(t3) {
      var e3 = t3.getContext("2d"), n3 = t3.width, o3 = t3.height, i3 = e3.getImageData(0, 0, n3, o3).data, s2 = r2(true, n3, o3, i3), h2 = r2(false, n3, o3, i3), u2 = a2(true, n3, o3, i3), c2 = a2(false, n3, o3, i3) - u2 + 1, l2 = h2 - s2 + 1, d2 = e3.getImageData(u2, s2, c2, l2);
      return t3.width = c2, t3.height = l2, e3.clearRect(0, 0, c2, l2), e3.putImageData(d2, 0, 0), t3;
    }
    function o2(t3, e3, n3, o3) {
      return { red: o3[4 * (n3 * e3 + t3)], green: o3[4 * (n3 * e3 + t3) + 1], blue: o3[4 * (n3 * e3 + t3) + 2], alpha: o3[4 * (n3 * e3 + t3) + 3] };
    }
    function i2(t3, e3, n3, i3) {
      return o2(t3, e3, n3, i3).alpha;
    }
    function r2(t3, e3, n3, o3) {
      for (var r3 = t3 ? 1 : -1, a3 = t3 ? 0 : n3 - 1; t3 ? a3 < n3 : a3 > -1; a3 += r3)
        for (var s2 = 0; s2 < e3; s2++)
          if (i2(s2, a3, e3, o3))
            return a3;
      return null;
    }
    function a2(t3, e3, n3, o3) {
      for (var r3 = t3 ? 1 : -1, a3 = t3 ? 0 : e3 - 1; t3 ? a3 < e3 : a3 > -1; a3 += r3)
        for (var s2 = 0; s2 < n3; s2++)
          if (i2(a3, s2, e3, o3))
            return a3;
      return null;
    }
    Object.defineProperty(e2, "__esModule", { value: true }), e2.default = n2;
  }]));
}
var y = a.exports = (d = o, f = i, p = t(c), v = m(), function(t2) {
  function e2(o2) {
    if (n2[o2])
      return n2[o2].exports;
    var i2 = n2[o2] = { exports: {}, id: o2, loaded: false };
    return t2[o2].call(i2.exports, i2, i2.exports, e2), i2.loaded = true, i2.exports;
  }
  var n2 = {};
  return e2.m = t2, e2.c = n2, e2.p = "", e2(0);
}([function(t2, e2, n2) {
  function o2(t3) {
    return t3 && t3.__esModule ? t3 : { default: t3 };
  }
  function i2(t3, e3) {
    var n3 = {};
    for (var o3 in t3)
      e3.indexOf(o3) >= 0 || Object.prototype.hasOwnProperty.call(t3, o3) && (n3[o3] = t3[o3]);
    return n3;
  }
  function r2(t3, e3) {
    if (!(t3 instanceof e3))
      throw new TypeError("Cannot call a class as a function");
  }
  function a2(t3, e3) {
    if (!t3)
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    return !e3 || "object" != typeof e3 && "function" != typeof e3 ? t3 : e3;
  }
  function s2(t3, e3) {
    if ("function" != typeof e3 && null !== e3)
      throw new TypeError("Super expression must either be null or a function, not " + typeof e3);
    t3.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t3, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t3, e3) : t3.__proto__ = e3);
  }
  Object.defineProperty(e2, "__esModule", { value: true });
  var h2 = Object.assign || function(t3) {
    for (var e3 = 1; e3 < arguments.length; e3++) {
      var n3 = arguments[e3];
      for (var o3 in n3)
        Object.prototype.hasOwnProperty.call(n3, o3) && (t3[o3] = n3[o3]);
    }
    return t3;
  }, u2 = function() {
    function t3(t4, e3) {
      for (var n3 = 0; n3 < e3.length; n3++) {
        var o3 = e3[n3];
        o3.enumerable = o3.enumerable || false, o3.configurable = true, "value" in o3 && (o3.writable = true), Object.defineProperty(t4, o3.key, o3);
      }
    }
    return function(e3, n3, o3) {
      return n3 && t3(e3.prototype, n3), o3 && t3(e3, o3), e3;
    };
  }(), c2 = o2(n2(1)), l2 = n2(2), d2 = o2(l2), f2 = o2(n2(3)), p2 = o2(n2(4)), v2 = function(t3) {
    function e3() {
      var t4, n3, o3;
      r2(this, e3);
      for (var s3 = arguments.length, h3 = Array(s3), u3 = 0; u3 < s3; u3++)
        h3[u3] = arguments[u3];
      return n3 = o3 = a2(this, (t4 = e3.__proto__ || Object.getPrototypeOf(e3)).call.apply(t4, [this].concat(h3))), o3._sigPad = null, o3._excludeOurProps = function() {
        return i2(o3.props, ["canvasProps", "clearOnResize"]);
      }, o3.getCanvas = function() {
        return o3._canvas;
      }, o3.getTrimmedCanvas = function() {
        var t5 = document.createElement("canvas");
        return t5.width = o3._canvas.width, t5.height = o3._canvas.height, t5.getContext("2d").drawImage(o3._canvas, 0, 0), (0, p2.default)(t5);
      }, o3.getSignaturePad = function() {
        return o3._sigPad;
      }, o3._checkClearOnResize = function() {
        o3.props.clearOnResize && o3._resizeCanvas();
      }, o3._resizeCanvas = function() {
        var t5 = o3.props.canvasProps || {}, e4 = t5.width, n4 = t5.height;
        if (!e4 || !n4) {
          var i3 = o3._canvas, r3 = Math.max(window.devicePixelRatio || 1, 1);
          e4 || (i3.width = i3.offsetWidth * r3), n4 || (i3.height = i3.offsetHeight * r3), i3.getContext("2d").scale(r3, r3), o3.clear();
        }
      }, o3.on = function() {
        return window.addEventListener("resize", o3._checkClearOnResize), o3._sigPad.on();
      }, o3.off = function() {
        return window.removeEventListener("resize", o3._checkClearOnResize), o3._sigPad.off();
      }, o3.clear = function() {
        return o3._sigPad.clear();
      }, o3.isEmpty = function() {
        return o3._sigPad.isEmpty();
      }, o3.fromDataURL = function(t5, e4) {
        return o3._sigPad.fromDataURL(t5, e4);
      }, o3.toDataURL = function(t5, e4) {
        return o3._sigPad.toDataURL(t5, e4);
      }, o3.fromData = function(t5) {
        return o3._sigPad.fromData(t5);
      }, o3.toData = function() {
        return o3._sigPad.toData();
      }, a2(o3, n3);
    }
    return s2(e3, t3), u2(e3, [{ key: "componentDidMount", value: function() {
      this._sigPad = new f2.default(this._canvas, this._excludeOurProps()), this._resizeCanvas(), this.on();
    } }, { key: "componentWillUnmount", value: function() {
      this.off();
    } }, { key: "componentDidUpdate", value: function() {
      Object.assign(this._sigPad, this._excludeOurProps());
    } }, { key: "render", value: function() {
      var t4 = this, e4 = this.props.canvasProps;
      return d2.default.createElement("canvas", h2({ ref: function(e5) {
        t4._canvas = e5;
      } }, e4));
    } }]), e3;
  }(l2.Component);
  v2.propTypes = { velocityFilterWeight: c2.default.number, minWidth: c2.default.number, maxWidth: c2.default.number, minDistance: c2.default.number, dotSize: c2.default.oneOfType([c2.default.number, c2.default.func]), penColor: c2.default.string, throttle: c2.default.number, onEnd: c2.default.func, onBegin: c2.default.func, canvasProps: c2.default.object, clearOnResize: c2.default.bool }, v2.defaultProps = { clearOnResize: true }, e2.default = v2;
}, function(t2, e2) {
  t2.exports = d;
}, function(t2, e2) {
  t2.exports = f;
}, function(t2, e2) {
  t2.exports = p;
}, function(t2, e2) {
  t2.exports = v;
}]));
const g = r({ __proto__: null, default: n(y) }, [y]);
export {
  g as i
};
