/*! For license information please see bundle.js.LICENSE.txt */
(() => {
  var e,
    t,
    i = {
      29609: (e) => {
        'use strict';
        var t = /^(%20|\s)*(javascript|data)/im,
          i = /[^\x20-\x7E]/gim,
          n = /^([^:]+):/gm,
          r = ['.', '/'];
        e.exports = {
          sanitizeUrl: function (e) {
            if (!e) return 'about:blank';
            var s,
              o,
              a = e.replace(i, '').trim();
            return (function (e) {
              return r.indexOf(e[0]) > -1;
            })(a)
              ? a
              : (o = a.match(n))
              ? ((s = o[0]), t.test(s) ? 'about:blank' : a)
              : 'about:blank';
          },
        };
      },
      98129: (e, t, i) => {
        'use strict';
        var n = i(60690);
        function r() {
          var e = {},
            t = 0,
            i = 0,
            n = 0;
          return {
            add: function (r, s) {
              s || ((s = r), (r = 0)),
                r > i ? (i = r) : r < n && (n = r),
                e[r] || (e[r] = []),
                e[r].push(s),
                t++;
            },
            process: function () {
              for (var t = n; t <= i; t++)
                for (var r = e[t], s = 0; s < r.length; s++) (0, r[s])();
            },
            size: function () {
              return t;
            },
          };
        }
        e.exports = function (e) {
          var t = (e = e || {}).reporter,
            i = n.getOption(e, 'async', !0),
            s = n.getOption(e, 'auto', !0);
          s &&
            !i &&
            (t &&
              t.warn(
                'Invalid options combination. auto=true and async=false is invalid. Setting async=true.'
              ),
            (i = !0));
          var o,
            a = r(),
            l = !1;
          function c() {
            for (l = !0; a.size(); ) {
              var e = a;
              (a = r()), e.process();
            }
            l = !1;
          }
          function d() {
            o = setTimeout(c, 0);
          }
          return {
            add: function (e, t) {
              !l && s && i && 0 === a.size() && d(), a.add(e, t);
            },
            force: function (e) {
              l ||
                (void 0 === e && (e = i),
                o && (clearTimeout(o), (o = null)),
                e ? d() : c());
            },
          };
        };
      },
      60690: (e) => {
        'use strict';
        (e.exports = {}).getOption = function (e, t, i) {
          var n = e[t];
          return null == n && void 0 !== i ? i : n;
        };
      },
      69362: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            FormatSpecifier: () => ll,
            active: () => Xn,
            arc: () => sw,
            area: () => hw,
            areaRadial: () => yw,
            ascending: () => r,
            autoType: () => Fo,
            axisBottom: () => re,
            axisLeft: () => se,
            axisRight: () => ne,
            axisTop: () => ie,
            bisect: () => c,
            bisectLeft: () => l,
            bisectRight: () => a,
            bisector: () => s,
            blob: () => ma,
            brush: () => Dr,
            brushSelection: () => xr,
            brushX: () => Lr,
            brushY: () => Mr,
            buffer: () => ba,
            chord: () => Fr,
            clientPoint: () => Ei,
            cluster: () => xg,
            color: () => Kt,
            contourDensity: () => oo,
            contours: () => eo,
            create: () => Iy,
            creator: () => rt,
            cross: () => u,
            csv: () => Sa,
            csvFormat: () => ko,
            csvFormatBody: () => xo,
            csvFormatRow: () => Mo,
            csvFormatRows: () => Lo,
            csvFormatValue: () => Do,
            csvParse: () => Co,
            csvParseRows: () => So,
            cubehelix: () => zs,
            curveBasis: () => eC,
            curveBasisClosed: () => iC,
            curveBasisOpen: () => rC,
            curveBundle: () => oC,
            curveCardinal: () => cC,
            curveCardinalClosed: () => hC,
            curveCardinalOpen: () => gC,
            curveCatmullRom: () => mC,
            curveCatmullRomClosed: () => bC,
            curveCatmullRomOpen: () => yC,
            curveLinear: () => aw,
            curveLinearClosed: () => CC,
            curveMonotoneX: () => EC,
            curveMonotoneY: () => TC,
            curveNatural: () => AC,
            curveStep: () => PC,
            curveStepAfter: () => BC,
            curveStepBefore: () => FC,
            customEvent: () => mt,
            descending: () => g,
            deviation: () => m,
            dispatch: () => ue,
            drag: () => fo,
            dragDisable: () => Mt,
            dragEnable: () => Dt,
            dsv: () => Ca,
            dsvFormat: () => yo,
            easeBack: () => da,
            easeBackIn: () => la,
            easeBackInOut: () => da,
            easeBackOut: () => ca,
            easeBounce: () => sa,
            easeBounceIn: () => ra,
            easeBounceInOut: () => oa,
            easeBounceOut: () => sa,
            easeCircle: () => ia,
            easeCircleIn: () => ea,
            easeCircleInOut: () => ia,
            easeCircleOut: () => ta,
            easeCubic: () => Gn,
            easeCubicIn: () => Kn,
            easeCubicInOut: () => Gn,
            easeCubicOut: () => qn,
            easeElastic: () => ga,
            easeElasticIn: () => ua,
            easeElasticInOut: () => fa,
            easeElasticOut: () => ga,
            easeExp: () => Xo,
            easeExpIn: () => Jo,
            easeExpInOut: () => Xo,
            easeExpOut: () => Qo,
            easeLinear: () => Wo,
            easePoly: () => Uo,
            easePolyIn: () => Vo,
            easePolyInOut: () => Uo,
            easePolyOut: () => zo,
            easeQuad: () => jo,
            easeQuadIn: () => Yo,
            easeQuadInOut: () => jo,
            easeQuadOut: () => Ho,
            easeSin: () => Zo,
            easeSinIn: () => qo,
            easeSinInOut: () => Zo,
            easeSinOut: () => Go,
            entries: () => fs,
            event: () => dt,
            extent: () => _,
            forceCenter: () => Ia,
            forceCollide: () => Ua,
            forceLink: () => qa,
            forceManyBody: () => Xa,
            forceRadial: () => el,
            forceSimulation: () => Qa,
            forceX: () => tl,
            forceY: () => il,
            format: () => gl,
            formatDefaultLocale: () => bl,
            formatLocale: () => _l,
            formatPrefix: () => fl,
            formatSpecifier: () => al,
            geoAlbers: () => Wu,
            geoAlbersUsa: () => Yu,
            geoArea: () => fc,
            geoAzimuthalEqualArea: () => zu,
            geoAzimuthalEqualAreaRaw: () => Vu,
            geoAzimuthalEquidistant: () => $u,
            geoAzimuthalEquidistantRaw: () => Uu,
            geoBounds: () => od,
            geoCentroid: () => bd,
            geoCircle: () => Nd,
            geoClipAntimeridian: () => Hd,
            geoClipCircle: () => jd,
            geoClipExtent: () => $d,
            geoClipRectangle: () => Ud,
            geoConicConformal: () => Qu,
            geoConicConformalRaw: () => Ju,
            geoConicEqualArea: () => Bu,
            geoConicEqualAreaRaw: () => Fu,
            geoConicEquidistant: () => ig,
            geoConicEquidistantRaw: () => tg,
            geoContains: () => gh,
            geoDistance: () => rh,
            geoEqualEarth: () => cg,
            geoEqualEarthRaw: () => lg,
            geoEquirectangular: () => eg,
            geoEquirectangularRaw: () => Xu,
            geoGnomonic: () => hg,
            geoGnomonicRaw: () => dg,
            geoGraticule: () => mh,
            geoGraticule10: () => _h,
            geoIdentity: () => gg,
            geoInterpolate: () => bh,
            geoLength: () => th,
            geoMercator: () => qu,
            geoMercatorRaw: () => Ku,
            geoNaturalEarth1: () => pg,
            geoNaturalEarth1Raw: () => fg,
            geoOrthographic: () => _g,
            geoOrthographicRaw: () => mg,
            geoPath: () => yu,
            geoProjection: () => Au,
            geoProjectionMutator: () => Ru,
            geoRotation: () => Ld,
            geoStereographic: () => vg,
            geoStereographicRaw: () => bg,
            geoStream: () => tc,
            geoTransform: () => wu,
            geoTransverseMercator: () => wg,
            geoTransverseMercatorRaw: () => yg,
            gray: () => Ss,
            hcl: () => Is,
            hierarchy: () => Mg,
            histogram: () => T,
            hsl: () => ri,
            html: () => Ea,
            image: () => xa,
            interpolate: () => Di,
            interpolateArray: () => yi,
            interpolateBasis: () => li,
            interpolateBasisClosed: () => ci,
            interpolateBlues: () => sy,
            interpolateBrBG: () => _v,
            interpolateBuGn: () => Rv,
            interpolateBuPu: () => Fv,
            interpolateCividis: () => my,
            interpolateCool: () => vy,
            interpolateCubehelix: () => Yf,
            interpolateCubehelixDefault: () => _y,
            interpolateCubehelixLong: () => Hf,
            interpolateDate: () => Ci,
            interpolateDiscrete: () => Lf,
            interpolateGnBu: () => Wv,
            interpolateGreens: () => ay,
            interpolateGreys: () => cy,
            interpolateHcl: () => Ff,
            interpolateHclLong: () => Bf,
            interpolateHsl: () => Of,
            interpolateHslLong: () => Af,
            interpolateHue: () => Mf,
            interpolateInferno: () => Ey,
            interpolateLab: () => Rf,
            interpolateMagma: () => Ny,
            interpolateNumber: () => Si,
            interpolateNumberArray: () => bi,
            interpolateObject: () => ki,
            interpolateOrRd: () => Hv,
            interpolateOranges: () => py,
            interpolatePRGn: () => vv,
            interpolatePiYG: () => wv,
            interpolatePlasma: () => Ty,
            interpolatePuBu: () => Uv,
            interpolatePuBuGn: () => Vv,
            interpolatePuOr: () => Sv,
            interpolatePuRd: () => Kv,
            interpolatePurples: () => hy,
            interpolateRainbow: () => wy,
            interpolateRdBu: () => xv,
            interpolateRdGy: () => Mv,
            interpolateRdPu: () => Gv,
            interpolateRdYlBu: () => Nv,
            interpolateRdYlGn: () => Tv,
            interpolateReds: () => gy,
            interpolateRgb: () => fi,
            interpolateRgbBasis: () => mi,
            interpolateRgbBasisClosed: () => _i,
            interpolateRound: () => Df,
            interpolateSinebow: () => xy,
            interpolateSpectral: () => Ov,
            interpolateString: () => Mi,
            interpolateTransformCss: () => fn,
            interpolateTransformSvg: () => pn,
            interpolateTurbo: () => Ly,
            interpolateViridis: () => Dy,
            interpolateWarm: () => by,
            interpolateYlGn: () => Xv,
            interpolateYlGnBu: () => Jv,
            interpolateYlOrBr: () => ty,
            interpolateYlOrRd: () => ny,
            interpolateZoom: () => Tf,
            interrupt: () => sn,
            interval: () => nS,
            isoFormat: () => tS,
            isoParse: () => iS,
            json: () => Ma,
            keys: () => us,
            lab: () => ks,
            lch: () => Ts,
            line: () => dw,
            lineRadial: () => vw,
            linkHorizontal: () => Nw,
            linkRadial: () => Tw,
            linkVertical: () => Ew,
            local: () => Ay,
            map: () => is,
            matcher: () => _e,
            max: () => R,
            mean: () => P,
            median: () => F,
            merge: () => B,
            min: () => W,
            mouse: () => Ii,
            namespace: () => xe,
            namespaces: () => ke,
            nest: () => ns,
            now: () => Vi,
            pack: () => Qg,
            packEnclose: () => Og,
            packSiblings: () => $g,
            pairs: () => d,
            partition: () => sf,
            path: () => $r,
            permute: () => Y,
            pie: () => fw,
            piecewise: () => jf,
            pointRadial: () => ww,
            polygonArea: () => zf,
            polygonCentroid: () => Uf,
            polygonContains: () => Zf,
            polygonHull: () => Gf,
            polygonLength: () => Jf,
            precisionFixed: () => vl,
            precisionPrefix: () => yl,
            precisionRound: () => wl,
            quadtree: () => Wa,
            quantile: () => I,
            quantize: () => Vf,
            radialArea: () => yw,
            radialLine: () => vw,
            randomBates: () => np,
            randomExponential: () => rp,
            randomIrwinHall: () => ip,
            randomLogNormal: () => tp,
            randomNormal: () => ep,
            randomUniform: () => Xf,
            range: () => S,
            rgb: () => Jt,
            ribbon: () => Qr,
            scaleBand: () => up,
            scaleDiverging: () => Xb,
            scaleDivergingLog: () => ev,
            scaleDivergingPow: () => iv,
            scaleDivergingSqrt: () => nv,
            scaleDivergingSymlog: () => tv,
            scaleIdentity: () => Dp,
            scaleImplicit: () => dp,
            scaleLinear: () => Mp,
            scaleLog: () => Fp,
            scaleOrdinal: () => hp,
            scalePoint: () => fp,
            scalePow: () => $p,
            scaleQuantile: () => qp,
            scaleQuantize: () => Gp,
            scaleSequential: () => $b,
            scaleSequentialLog: () => Kb,
            scaleSequentialPow: () => Gb,
            scaleSequentialQuantile: () => Jb,
            scaleSequentialSqrt: () => Zb,
            scaleSequentialSymlog: () => qb,
            scaleSqrt: () => Kp,
            scaleSymlog: () => Hp,
            scaleThreshold: () => Zp,
            scaleTime: () => Ob,
            scaleUtc: () => Vb,
            scan: () => H,
            schemeAccent: () => ov,
            schemeBlues: () => ry,
            schemeBrBG: () => mv,
            schemeBuGn: () => Av,
            schemeBuPu: () => Pv,
            schemeCategory10: () => sv,
            schemeDark2: () => av,
            schemeGnBu: () => Bv,
            schemeGreens: () => oy,
            schemeGreys: () => ly,
            schemeOrRd: () => Yv,
            schemeOranges: () => fy,
            schemePRGn: () => bv,
            schemePaired: () => lv,
            schemePastel1: () => cv,
            schemePastel2: () => dv,
            schemePiYG: () => yv,
            schemePuBu: () => zv,
            schemePuBuGn: () => jv,
            schemePuOr: () => Cv,
            schemePuRd: () => $v,
            schemePurples: () => dy,
            schemeRdBu: () => kv,
            schemeRdGy: () => Lv,
            schemeRdPu: () => qv,
            schemeRdYlBu: () => Dv,
            schemeRdYlGn: () => Ev,
            schemeReds: () => uy,
            schemeSet1: () => hv,
            schemeSet2: () => uv,
            schemeSet3: () => gv,
            schemeSpectral: () => Iv,
            schemeTableau10: () => fv,
            schemeYlGn: () => Qv,
            schemeYlGnBu: () => Zv,
            schemeYlOrBr: () => ey,
            schemeYlOrRd: () => iy,
            select: () => kt,
            selectAll: () => Py,
            selection: () => St,
            selector: () => fe,
            selectorAll: () => me,
            set: () => hs,
            shuffle: () => j,
            stack: () => jC,
            stackOffsetDiverging: () => zC,
            stackOffsetExpand: () => VC,
            stackOffsetNone: () => WC,
            stackOffsetSilhouette: () => UC,
            stackOffsetWiggle: () => $C,
            stackOrderAppearance: () => KC,
            stackOrderAscending: () => GC,
            stackOrderDescending: () => JC,
            stackOrderInsideOut: () => QC,
            stackOrderNone: () => YC,
            stackOrderReverse: () => XC,
            stratify: () => df,
            style: () => Pe,
            sum: () => V,
            svg: () => Ta,
            symbol: () => Zw,
            symbolCircle: () => Iw,
            symbolCross: () => Ow,
            symbolDiamond: () => Pw,
            symbolSquare: () => Hw,
            symbolStar: () => Yw,
            symbolTriangle: () => Vw,
            symbolWye: () => qw,
            symbols: () => Gw,
            text: () => ya,
            thresholdFreedmanDiaconis: () => O,
            thresholdScott: () => A,
            thresholdSturges: () => E,
            tickFormat: () => xp,
            tickIncrement: () => D,
            tickStep: () => N,
            ticks: () => M,
            timeDay: () => Mm,
            timeDays: () => Dm,
            timeFormat: () => g_,
            timeFormatDefaultLocale: () => Db,
            timeFormatLocale: () => h_,
            timeFriday: () => _m,
            timeFridays: () => km,
            timeHour: () => Em,
            timeHours: () => Tm,
            timeInterval: () => Xp,
            timeMillisecond: () => Wm,
            timeMilliseconds: () => Ym,
            timeMinute: () => Om,
            timeMinutes: () => Am,
            timeMonday: () => gm,
            timeMondays: () => ym,
            timeMonth: () => rm,
            timeMonths: () => sm,
            timeParse: () => f_,
            timeSaturday: () => bm,
            timeSaturdays: () => xm,
            timeSecond: () => Pm,
            timeSeconds: () => Fm,
            timeSunday: () => um,
            timeSundays: () => vm,
            timeThursday: () => mm,
            timeThursdays: () => Sm,
            timeTuesday: () => fm,
            timeTuesdays: () => wm,
            timeWednesday: () => pm,
            timeWednesdays: () => Cm,
            timeWeek: () => um,
            timeWeeks: () => vm,
            timeYear: () => tm,
            timeYears: () => im,
            timeout: () => Ji,
            timer: () => $i,
            timerFlush: () => Ki,
            touch: () => Ti,
            touches: () => Fy,
            transition: () => zn,
            transpose: () => z,
            tree: () => _f,
            treemap: () => Cf,
            treemapBinary: () => Sf,
            treemapDice: () => rf,
            treemapResquarify: () => xf,
            treemapSlice: () => bf,
            treemapSliceDice: () => kf,
            treemapSquarify: () => wf,
            tsv: () => ka,
            tsvFormat: () => Io,
            tsvFormatBody: () => Oo,
            tsvFormatRow: () => Ro,
            tsvFormatRows: () => Ao,
            tsvFormatValue: () => Po,
            tsvParse: () => Eo,
            tsvParseRows: () => To,
            utcDay: () => n_,
            utcDays: () => r_,
            utcFormat: () => p_,
            utcFriday: () => Km,
            utcFridays: () => e_,
            utcHour: () => Bb,
            utcHours: () => Wb,
            utcMillisecond: () => Wm,
            utcMilliseconds: () => Ym,
            utcMinute: () => Hb,
            utcMinutes: () => jb,
            utcMonday: () => Vm,
            utcMondays: () => Zm,
            utcMonth: () => Rb,
            utcMonths: () => Pb,
            utcParse: () => m_,
            utcSaturday: () => qm,
            utcSaturdays: () => t_,
            utcSecond: () => Pm,
            utcSeconds: () => Fm,
            utcSunday: () => jm,
            utcSundays: () => Gm,
            utcThursday: () => $m,
            utcThursdays: () => Xm,
            utcTuesday: () => zm,
            utcTuesdays: () => Jm,
            utcWednesday: () => Um,
            utcWednesdays: () => Qm,
            utcWeek: () => jm,
            utcWeeks: () => Gm,
            utcYear: () => o_,
            utcYears: () => a_,
            values: () => gs,
            variance: () => p,
            version: () => n,
            voronoi: () => VS,
            window: () => Ie,
            xml: () => Na,
            zip: () => $,
            zoom: () => nk,
            zoomIdentity: () => KS,
            zoomTransform: () => qS,
          });
        var n = '5.14.2';
        function r(e, t) {
          return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
        }
        function s(e) {
          var t;
          return (
            1 === e.length &&
              ((t = e),
              (e = function (e, i) {
                return r(t(e), i);
              })),
            {
              left: function (t, i, n, r) {
                for (
                  null == n && (n = 0), null == r && (r = t.length);
                  n < r;

                ) {
                  var s = (n + r) >>> 1;
                  e(t[s], i) < 0 ? (n = s + 1) : (r = s);
                }
                return n;
              },
              right: function (t, i, n, r) {
                for (
                  null == n && (n = 0), null == r && (r = t.length);
                  n < r;

                ) {
                  var s = (n + r) >>> 1;
                  e(t[s], i) > 0 ? (r = s) : (n = s + 1);
                }
                return n;
              },
            }
          );
        }
        var o = s(r),
          a = o.right,
          l = o.left;
        const c = a;
        function d(e, t) {
          null == t && (t = h);
          for (
            var i = 0, n = e.length - 1, r = e[0], s = new Array(n < 0 ? 0 : n);
            i < n;

          )
            s[i] = t(r, (r = e[++i]));
          return s;
        }
        function h(e, t) {
          return [e, t];
        }
        function u(e, t, i) {
          var n,
            r,
            s,
            o,
            a = e.length,
            l = t.length,
            c = new Array(a * l);
          for (null == i && (i = h), n = s = 0; n < a; ++n)
            for (o = e[n], r = 0; r < l; ++r, ++s) c[s] = i(o, t[r]);
          return c;
        }
        function g(e, t) {
          return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
        }
        function f(e) {
          return null === e ? NaN : +e;
        }
        function p(e, t) {
          var i,
            n,
            r = e.length,
            s = 0,
            o = -1,
            a = 0,
            l = 0;
          if (null == t)
            for (; ++o < r; )
              isNaN((i = f(e[o]))) || (l += (n = i - a) * (i - (a += n / ++s)));
          else
            for (; ++o < r; )
              isNaN((i = f(t(e[o], o, e)))) ||
                (l += (n = i - a) * (i - (a += n / ++s)));
          if (s > 1) return l / (s - 1);
        }
        function m(e, t) {
          var i = p(e, t);
          return i ? Math.sqrt(i) : i;
        }
        function _(e, t) {
          var i,
            n,
            r,
            s = e.length,
            o = -1;
          if (null == t) {
            for (; ++o < s; )
              if (null != (i = e[o]) && i >= i)
                for (n = r = i; ++o < s; )
                  null != (i = e[o]) && (n > i && (n = i), r < i && (r = i));
          } else
            for (; ++o < s; )
              if (null != (i = t(e[o], o, e)) && i >= i)
                for (n = r = i; ++o < s; )
                  null != (i = t(e[o], o, e)) &&
                    (n > i && (n = i), r < i && (r = i));
          return [n, r];
        }
        var b = Array.prototype,
          v = b.slice,
          y = b.map;
        function w(e) {
          return function () {
            return e;
          };
        }
        function C(e) {
          return e;
        }
        function S(e, t, i) {
          (e = +e),
            (t = +t),
            (i =
              (r = arguments.length) < 2
                ? ((t = e), (e = 0), 1)
                : r < 3
                ? 1
                : +i);
          for (
            var n = -1,
              r = 0 | Math.max(0, Math.ceil((t - e) / i)),
              s = new Array(r);
            ++n < r;

          )
            s[n] = e + n * i;
          return s;
        }
        var k = Math.sqrt(50),
          x = Math.sqrt(10),
          L = Math.sqrt(2);
        function M(e, t, i) {
          var n,
            r,
            s,
            o,
            a = -1;
          if (((i = +i), (e = +e) == (t = +t) && i > 0)) return [e];
          if (
            ((n = t < e) && ((r = e), (e = t), (t = r)),
            0 === (o = D(e, t, i)) || !isFinite(o))
          )
            return [];
          if (o > 0)
            for (
              e = Math.ceil(e / o),
                t = Math.floor(t / o),
                s = new Array((r = Math.ceil(t - e + 1)));
              ++a < r;

            )
              s[a] = (e + a) * o;
          else
            for (
              e = Math.floor(e * o),
                t = Math.ceil(t * o),
                s = new Array((r = Math.ceil(e - t + 1)));
              ++a < r;

            )
              s[a] = (e - a) / o;
          return n && s.reverse(), s;
        }
        function D(e, t, i) {
          var n = (t - e) / Math.max(0, i),
            r = Math.floor(Math.log(n) / Math.LN10),
            s = n / Math.pow(10, r);
          return r >= 0
            ? (s >= k ? 10 : s >= x ? 5 : s >= L ? 2 : 1) * Math.pow(10, r)
            : -Math.pow(10, -r) / (s >= k ? 10 : s >= x ? 5 : s >= L ? 2 : 1);
        }
        function N(e, t, i) {
          var n = Math.abs(t - e) / Math.max(0, i),
            r = Math.pow(10, Math.floor(Math.log(n) / Math.LN10)),
            s = n / r;
          return (
            s >= k ? (r *= 10) : s >= x ? (r *= 5) : s >= L && (r *= 2),
            t < e ? -r : r
          );
        }
        function E(e) {
          return Math.ceil(Math.log(e.length) / Math.LN2) + 1;
        }
        function T() {
          var e = C,
            t = _,
            i = E;
          function n(n) {
            var r,
              s,
              o = n.length,
              a = new Array(o);
            for (r = 0; r < o; ++r) a[r] = e(n[r], r, n);
            var l = t(a),
              d = l[0],
              h = l[1],
              u = i(a, d, h);
            Array.isArray(u) ||
              ((u = N(d, h, u)), (u = S(Math.ceil(d / u) * u, h, u)));
            for (var g = u.length; u[0] <= d; ) u.shift(), --g;
            for (; u[g - 1] > h; ) u.pop(), --g;
            var f,
              p = new Array(g + 1);
            for (r = 0; r <= g; ++r)
              ((f = p[r] = []).x0 = r > 0 ? u[r - 1] : d),
                (f.x1 = r < g ? u[r] : h);
            for (r = 0; r < o; ++r)
              d <= (s = a[r]) && s <= h && p[c(u, s, 0, g)].push(n[r]);
            return p;
          }
          return (
            (n.value = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : w(t)), n)
                : e;
            }),
            (n.domain = function (e) {
              return arguments.length
                ? ((t = 'function' == typeof e ? e : w([e[0], e[1]])), n)
                : t;
            }),
            (n.thresholds = function (e) {
              return arguments.length
                ? ((i =
                    'function' == typeof e
                      ? e
                      : Array.isArray(e)
                      ? w(v.call(e))
                      : w(e)),
                  n)
                : i;
            }),
            n
          );
        }
        function I(e, t, i) {
          if ((null == i && (i = f), (n = e.length))) {
            if ((t = +t) <= 0 || n < 2) return +i(e[0], 0, e);
            if (t >= 1) return +i(e[n - 1], n - 1, e);
            var n,
              r = (n - 1) * t,
              s = Math.floor(r),
              o = +i(e[s], s, e);
            return o + (+i(e[s + 1], s + 1, e) - o) * (r - s);
          }
        }
        function O(e, t, i) {
          return (
            (e = y.call(e, f).sort(r)),
            Math.ceil(
              (i - t) /
                (2 * (I(e, 0.75) - I(e, 0.25)) * Math.pow(e.length, -1 / 3))
            )
          );
        }
        function A(e, t, i) {
          return Math.ceil((i - t) / (3.5 * m(e) * Math.pow(e.length, -1 / 3)));
        }
        function R(e, t) {
          var i,
            n,
            r = e.length,
            s = -1;
          if (null == t) {
            for (; ++s < r; )
              if (null != (i = e[s]) && i >= i)
                for (n = i; ++s < r; ) null != (i = e[s]) && i > n && (n = i);
          } else
            for (; ++s < r; )
              if (null != (i = t(e[s], s, e)) && i >= i)
                for (n = i; ++s < r; )
                  null != (i = t(e[s], s, e)) && i > n && (n = i);
          return n;
        }
        function P(e, t) {
          var i,
            n = e.length,
            r = n,
            s = -1,
            o = 0;
          if (null == t)
            for (; ++s < n; ) isNaN((i = f(e[s]))) ? --r : (o += i);
          else for (; ++s < n; ) isNaN((i = f(t(e[s], s, e)))) ? --r : (o += i);
          if (r) return o / r;
        }
        function F(e, t) {
          var i,
            n = e.length,
            s = -1,
            o = [];
          if (null == t) for (; ++s < n; ) isNaN((i = f(e[s]))) || o.push(i);
          else for (; ++s < n; ) isNaN((i = f(t(e[s], s, e)))) || o.push(i);
          return I(o.sort(r), 0.5);
        }
        function B(e) {
          for (var t, i, n, r = e.length, s = -1, o = 0; ++s < r; )
            o += e[s].length;
          for (i = new Array(o); --r >= 0; )
            for (t = (n = e[r]).length; --t >= 0; ) i[--o] = n[t];
          return i;
        }
        function W(e, t) {
          var i,
            n,
            r = e.length,
            s = -1;
          if (null == t) {
            for (; ++s < r; )
              if (null != (i = e[s]) && i >= i)
                for (n = i; ++s < r; ) null != (i = e[s]) && n > i && (n = i);
          } else
            for (; ++s < r; )
              if (null != (i = t(e[s], s, e)) && i >= i)
                for (n = i; ++s < r; )
                  null != (i = t(e[s], s, e)) && n > i && (n = i);
          return n;
        }
        function Y(e, t) {
          for (var i = t.length, n = new Array(i); i--; ) n[i] = e[t[i]];
          return n;
        }
        function H(e, t) {
          if ((i = e.length)) {
            var i,
              n,
              s = 0,
              o = 0,
              a = e[o];
            for (null == t && (t = r); ++s < i; )
              (t((n = e[s]), a) < 0 || 0 !== t(a, a)) && ((a = n), (o = s));
            return 0 === t(a, a) ? o : void 0;
          }
        }
        function j(e, t, i) {
          for (
            var n, r, s = (null == i ? e.length : i) - (t = null == t ? 0 : +t);
            s;

          )
            (r = (Math.random() * s--) | 0),
              (n = e[s + t]),
              (e[s + t] = e[r + t]),
              (e[r + t] = n);
          return e;
        }
        function V(e, t) {
          var i,
            n = e.length,
            r = -1,
            s = 0;
          if (null == t) for (; ++r < n; ) (i = +e[r]) && (s += i);
          else for (; ++r < n; ) (i = +t(e[r], r, e)) && (s += i);
          return s;
        }
        function z(e) {
          if (!(r = e.length)) return [];
          for (var t = -1, i = W(e, U), n = new Array(i); ++t < i; )
            for (var r, s = -1, o = (n[t] = new Array(r)); ++s < r; )
              o[s] = e[s][t];
          return n;
        }
        function U(e) {
          return e.length;
        }
        function $() {
          return z(arguments);
        }
        var K = Array.prototype.slice;
        function q(e) {
          return e;
        }
        var G = 1e-6;
        function Z(e) {
          return 'translate(' + (e + 0.5) + ',0)';
        }
        function J(e) {
          return 'translate(0,' + (e + 0.5) + ')';
        }
        function Q(e) {
          return function (t) {
            return +e(t);
          };
        }
        function X(e) {
          var t = Math.max(0, e.bandwidth() - 1) / 2;
          return (
            e.round() && (t = Math.round(t)),
            function (i) {
              return +e(i) + t;
            }
          );
        }
        function ee() {
          return !this.__axis;
        }
        function te(e, t) {
          var i = [],
            n = null,
            r = null,
            s = 6,
            o = 6,
            a = 3,
            l = 1 === e || 4 === e ? -1 : 1,
            c = 4 === e || 2 === e ? 'x' : 'y',
            d = 1 === e || 3 === e ? Z : J;
          function h(h) {
            var u =
                null == n ? (t.ticks ? t.ticks.apply(t, i) : t.domain()) : n,
              g = null == r ? (t.tickFormat ? t.tickFormat.apply(t, i) : q) : r,
              f = Math.max(s, 0) + a,
              p = t.range(),
              m = +p[0] + 0.5,
              _ = +p[p.length - 1] + 0.5,
              b = (t.bandwidth ? X : Q)(t.copy()),
              v = h.selection ? h.selection() : h,
              y = v.selectAll('.domain').data([null]),
              w = v.selectAll('.tick').data(u, t).order(),
              C = w.exit(),
              S = w.enter().append('g').attr('class', 'tick'),
              k = w.select('line'),
              x = w.select('text');
            (y = y.merge(
              y
                .enter()
                .insert('path', '.tick')
                .attr('class', 'domain')
                .attr('stroke', 'currentColor')
            )),
              (w = w.merge(S)),
              (k = k.merge(
                S.append('line')
                  .attr('stroke', 'currentColor')
                  .attr(c + '2', l * s)
              )),
              (x = x.merge(
                S.append('text')
                  .attr('fill', 'currentColor')
                  .attr(c, l * f)
                  .attr('dy', 1 === e ? '0em' : 3 === e ? '0.71em' : '0.32em')
              )),
              h !== v &&
                ((y = y.transition(h)),
                (w = w.transition(h)),
                (k = k.transition(h)),
                (x = x.transition(h)),
                (C = C.transition(h)
                  .attr('opacity', G)
                  .attr('transform', function (e) {
                    return isFinite((e = b(e)))
                      ? d(e)
                      : this.getAttribute('transform');
                  })),
                S.attr('opacity', G).attr('transform', function (e) {
                  var t = this.parentNode.__axis;
                  return d(t && isFinite((t = t(e))) ? t : b(e));
                })),
              C.remove(),
              y.attr(
                'd',
                4 === e || 2 == e
                  ? o
                    ? 'M' + l * o + ',' + m + 'H0.5V' + _ + 'H' + l * o
                    : 'M0.5,' + m + 'V' + _
                  : o
                  ? 'M' + m + ',' + l * o + 'V0.5H' + _ + 'V' + l * o
                  : 'M' + m + ',0.5H' + _
              ),
              w.attr('opacity', 1).attr('transform', function (e) {
                return d(b(e));
              }),
              k.attr(c + '2', l * s),
              x.attr(c, l * f).text(g),
              v
                .filter(ee)
                .attr('fill', 'none')
                .attr('font-size', 10)
                .attr('font-family', 'sans-serif')
                .attr(
                  'text-anchor',
                  2 === e ? 'start' : 4 === e ? 'end' : 'middle'
                ),
              v.each(function () {
                this.__axis = b;
              });
          }
          return (
            (h.scale = function (e) {
              return arguments.length ? ((t = e), h) : t;
            }),
            (h.ticks = function () {
              return (i = K.call(arguments)), h;
            }),
            (h.tickArguments = function (e) {
              return arguments.length
                ? ((i = null == e ? [] : K.call(e)), h)
                : i.slice();
            }),
            (h.tickValues = function (e) {
              return arguments.length
                ? ((n = null == e ? null : K.call(e)), h)
                : n && n.slice();
            }),
            (h.tickFormat = function (e) {
              return arguments.length ? ((r = e), h) : r;
            }),
            (h.tickSize = function (e) {
              return arguments.length ? ((s = o = +e), h) : s;
            }),
            (h.tickSizeInner = function (e) {
              return arguments.length ? ((s = +e), h) : s;
            }),
            (h.tickSizeOuter = function (e) {
              return arguments.length ? ((o = +e), h) : o;
            }),
            (h.tickPadding = function (e) {
              return arguments.length ? ((a = +e), h) : a;
            }),
            h
          );
        }
        function ie(e) {
          return te(1, e);
        }
        function ne(e) {
          return te(2, e);
        }
        function re(e) {
          return te(3, e);
        }
        function se(e) {
          return te(4, e);
        }
        var oe = { value: function () {} };
        function ae() {
          for (var e, t = 0, i = arguments.length, n = {}; t < i; ++t) {
            if (!(e = arguments[t] + '') || e in n || /[\s.]/.test(e))
              throw new Error('illegal type: ' + e);
            n[e] = [];
          }
          return new le(n);
        }
        function le(e) {
          this._ = e;
        }
        function ce(e, t) {
          return e
            .trim()
            .split(/^|\s+/)
            .map(function (e) {
              var i = '',
                n = e.indexOf('.');
              if (
                (n >= 0 && ((i = e.slice(n + 1)), (e = e.slice(0, n))),
                e && !t.hasOwnProperty(e))
              )
                throw new Error('unknown type: ' + e);
              return { type: e, name: i };
            });
        }
        function de(e, t) {
          for (var i, n = 0, r = e.length; n < r; ++n)
            if ((i = e[n]).name === t) return i.value;
        }
        function he(e, t, i) {
          for (var n = 0, r = e.length; n < r; ++n)
            if (e[n].name === t) {
              (e[n] = oe), (e = e.slice(0, n).concat(e.slice(n + 1)));
              break;
            }
          return null != i && e.push({ name: t, value: i }), e;
        }
        le.prototype = ae.prototype = {
          constructor: le,
          on: function (e, t) {
            var i,
              n = this._,
              r = ce(e + '', n),
              s = -1,
              o = r.length;
            if (!(arguments.length < 2)) {
              if (null != t && 'function' != typeof t)
                throw new Error('invalid callback: ' + t);
              for (; ++s < o; )
                if ((i = (e = r[s]).type)) n[i] = he(n[i], e.name, t);
                else if (null == t) for (i in n) n[i] = he(n[i], e.name, null);
              return this;
            }
            for (; ++s < o; )
              if ((i = (e = r[s]).type) && (i = de(n[i], e.name))) return i;
          },
          copy: function () {
            var e = {},
              t = this._;
            for (var i in t) e[i] = t[i].slice();
            return new le(e);
          },
          call: function (e, t) {
            if ((i = arguments.length - 2) > 0)
              for (var i, n, r = new Array(i), s = 0; s < i; ++s)
                r[s] = arguments[s + 2];
            if (!this._.hasOwnProperty(e))
              throw new Error('unknown type: ' + e);
            for (s = 0, i = (n = this._[e]).length; s < i; ++s)
              n[s].value.apply(t, r);
          },
          apply: function (e, t, i) {
            if (!this._.hasOwnProperty(e))
              throw new Error('unknown type: ' + e);
            for (var n = this._[e], r = 0, s = n.length; r < s; ++r)
              n[r].value.apply(t, i);
          },
        };
        const ue = ae;
        function ge() {}
        function fe(e) {
          return null == e
            ? ge
            : function () {
                return this.querySelector(e);
              };
        }
        function pe() {
          return [];
        }
        function me(e) {
          return null == e
            ? pe
            : function () {
                return this.querySelectorAll(e);
              };
        }
        function _e(e) {
          return function () {
            return this.matches(e);
          };
        }
        function be(e) {
          return new Array(e.length);
        }
        function ve(e, t) {
          (this.ownerDocument = e.ownerDocument),
            (this.namespaceURI = e.namespaceURI),
            (this._next = null),
            (this._parent = e),
            (this.__data__ = t);
        }
        function ye(e, t, i, n, r, s) {
          for (var o, a = 0, l = t.length, c = s.length; a < c; ++a)
            (o = t[a])
              ? ((o.__data__ = s[a]), (n[a] = o))
              : (i[a] = new ve(e, s[a]));
          for (; a < l; ++a) (o = t[a]) && (r[a] = o);
        }
        function we(e, t, i, n, r, s, o) {
          var a,
            l,
            c,
            d = {},
            h = t.length,
            u = s.length,
            g = new Array(h);
          for (a = 0; a < h; ++a)
            (l = t[a]) &&
              ((g[a] = c = '$' + o.call(l, l.__data__, a, t)),
              c in d ? (r[a] = l) : (d[c] = l));
          for (a = 0; a < u; ++a)
            (l = d[(c = '$' + o.call(e, s[a], a, s))])
              ? ((n[a] = l), (l.__data__ = s[a]), (d[c] = null))
              : (i[a] = new ve(e, s[a]));
          for (a = 0; a < h; ++a) (l = t[a]) && d[g[a]] === l && (r[a] = l);
        }
        function Ce(e, t) {
          return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
        }
        ve.prototype = {
          constructor: ve,
          appendChild: function (e) {
            return this._parent.insertBefore(e, this._next);
          },
          insertBefore: function (e, t) {
            return this._parent.insertBefore(e, t);
          },
          querySelector: function (e) {
            return this._parent.querySelector(e);
          },
          querySelectorAll: function (e) {
            return this._parent.querySelectorAll(e);
          },
        };
        var Se = 'http://www.w3.org/1999/xhtml';
        const ke = {
          svg: 'http://www.w3.org/2000/svg',
          xhtml: Se,
          xlink: 'http://www.w3.org/1999/xlink',
          xml: 'http://www.w3.org/XML/1998/namespace',
          xmlns: 'http://www.w3.org/2000/xmlns/',
        };
        function xe(e) {
          var t = (e += ''),
            i = t.indexOf(':');
          return (
            i >= 0 && 'xmlns' !== (t = e.slice(0, i)) && (e = e.slice(i + 1)),
            ke.hasOwnProperty(t) ? { space: ke[t], local: e } : e
          );
        }
        function Le(e) {
          return function () {
            this.removeAttribute(e);
          };
        }
        function Me(e) {
          return function () {
            this.removeAttributeNS(e.space, e.local);
          };
        }
        function De(e, t) {
          return function () {
            this.setAttribute(e, t);
          };
        }
        function Ne(e, t) {
          return function () {
            this.setAttributeNS(e.space, e.local, t);
          };
        }
        function Ee(e, t) {
          return function () {
            var i = t.apply(this, arguments);
            null == i ? this.removeAttribute(e) : this.setAttribute(e, i);
          };
        }
        function Te(e, t) {
          return function () {
            var i = t.apply(this, arguments);
            null == i
              ? this.removeAttributeNS(e.space, e.local)
              : this.setAttributeNS(e.space, e.local, i);
          };
        }
        function Ie(e) {
          return (
            (e.ownerDocument && e.ownerDocument.defaultView) ||
            (e.document && e) ||
            e.defaultView
          );
        }
        function Oe(e) {
          return function () {
            this.style.removeProperty(e);
          };
        }
        function Ae(e, t, i) {
          return function () {
            this.style.setProperty(e, t, i);
          };
        }
        function Re(e, t, i) {
          return function () {
            var n = t.apply(this, arguments);
            null == n
              ? this.style.removeProperty(e)
              : this.style.setProperty(e, n, i);
          };
        }
        function Pe(e, t) {
          return (
            e.style.getPropertyValue(t) ||
            Ie(e).getComputedStyle(e, null).getPropertyValue(t)
          );
        }
        function Fe(e) {
          return function () {
            delete this[e];
          };
        }
        function Be(e, t) {
          return function () {
            this[e] = t;
          };
        }
        function We(e, t) {
          return function () {
            var i = t.apply(this, arguments);
            null == i ? delete this[e] : (this[e] = i);
          };
        }
        function Ye(e) {
          return e.trim().split(/^|\s+/);
        }
        function He(e) {
          return e.classList || new je(e);
        }
        function je(e) {
          (this._node = e), (this._names = Ye(e.getAttribute('class') || ''));
        }
        function Ve(e, t) {
          for (var i = He(e), n = -1, r = t.length; ++n < r; ) i.add(t[n]);
        }
        function ze(e, t) {
          for (var i = He(e), n = -1, r = t.length; ++n < r; ) i.remove(t[n]);
        }
        function Ue(e) {
          return function () {
            Ve(this, e);
          };
        }
        function $e(e) {
          return function () {
            ze(this, e);
          };
        }
        function Ke(e, t) {
          return function () {
            (t.apply(this, arguments) ? Ve : ze)(this, e);
          };
        }
        function qe() {
          this.textContent = '';
        }
        function Ge(e) {
          return function () {
            this.textContent = e;
          };
        }
        function Ze(e) {
          return function () {
            var t = e.apply(this, arguments);
            this.textContent = null == t ? '' : t;
          };
        }
        function Je() {
          this.innerHTML = '';
        }
        function Qe(e) {
          return function () {
            this.innerHTML = e;
          };
        }
        function Xe(e) {
          return function () {
            var t = e.apply(this, arguments);
            this.innerHTML = null == t ? '' : t;
          };
        }
        function et() {
          this.nextSibling && this.parentNode.appendChild(this);
        }
        function tt() {
          this.previousSibling &&
            this.parentNode.insertBefore(this, this.parentNode.firstChild);
        }
        function it(e) {
          return function () {
            var t = this.ownerDocument,
              i = this.namespaceURI;
            return i === Se && t.documentElement.namespaceURI === Se
              ? t.createElement(e)
              : t.createElementNS(i, e);
          };
        }
        function nt(e) {
          return function () {
            return this.ownerDocument.createElementNS(e.space, e.local);
          };
        }
        function rt(e) {
          var t = xe(e);
          return (t.local ? nt : it)(t);
        }
        function st() {
          return null;
        }
        function ot() {
          var e = this.parentNode;
          e && e.removeChild(this);
        }
        function at() {
          var e = this.cloneNode(!1),
            t = this.parentNode;
          return t ? t.insertBefore(e, this.nextSibling) : e;
        }
        function lt() {
          var e = this.cloneNode(!0),
            t = this.parentNode;
          return t ? t.insertBefore(e, this.nextSibling) : e;
        }
        je.prototype = {
          add: function (e) {
            this._names.indexOf(e) < 0 &&
              (this._names.push(e),
              this._node.setAttribute('class', this._names.join(' ')));
          },
          remove: function (e) {
            var t = this._names.indexOf(e);
            t >= 0 &&
              (this._names.splice(t, 1),
              this._node.setAttribute('class', this._names.join(' ')));
          },
          contains: function (e) {
            return this._names.indexOf(e) >= 0;
          },
        };
        var ct = {},
          dt = null;
        function ht(e, t, i) {
          return (
            (e = ut(e, t, i)),
            function (t) {
              var i = t.relatedTarget;
              (i && (i === this || 8 & i.compareDocumentPosition(this))) ||
                e.call(this, t);
            }
          );
        }
        function ut(e, t, i) {
          return function (n) {
            var r = dt;
            dt = n;
            try {
              e.call(this, this.__data__, t, i);
            } finally {
              dt = r;
            }
          };
        }
        function gt(e) {
          return e
            .trim()
            .split(/^|\s+/)
            .map(function (e) {
              var t = '',
                i = e.indexOf('.');
              return (
                i >= 0 && ((t = e.slice(i + 1)), (e = e.slice(0, i))),
                { type: e, name: t }
              );
            });
        }
        function ft(e) {
          return function () {
            var t = this.__on;
            if (t) {
              for (var i, n = 0, r = -1, s = t.length; n < s; ++n)
                (i = t[n]),
                  (e.type && i.type !== e.type) || i.name !== e.name
                    ? (t[++r] = i)
                    : this.removeEventListener(i.type, i.listener, i.capture);
              ++r ? (t.length = r) : delete this.__on;
            }
          };
        }
        function pt(e, t, i) {
          var n = ct.hasOwnProperty(e.type) ? ht : ut;
          return function (r, s, o) {
            var a,
              l = this.__on,
              c = n(t, s, o);
            if (l)
              for (var d = 0, h = l.length; d < h; ++d)
                if ((a = l[d]).type === e.type && a.name === e.name)
                  return (
                    this.removeEventListener(a.type, a.listener, a.capture),
                    this.addEventListener(
                      a.type,
                      (a.listener = c),
                      (a.capture = i)
                    ),
                    void (a.value = t)
                  );
            this.addEventListener(e.type, c, i),
              (a = {
                type: e.type,
                name: e.name,
                value: t,
                listener: c,
                capture: i,
              }),
              l ? l.push(a) : (this.__on = [a]);
          };
        }
        function mt(e, t, i, n) {
          var r = dt;
          (e.sourceEvent = dt), (dt = e);
          try {
            return t.apply(i, n);
          } finally {
            dt = r;
          }
        }
        function _t(e, t, i) {
          var n = Ie(e),
            r = n.CustomEvent;
          'function' == typeof r
            ? (r = new r(t, i))
            : ((r = n.document.createEvent('Event')),
              i
                ? (r.initEvent(t, i.bubbles, i.cancelable),
                  (r.detail = i.detail))
                : r.initEvent(t, !1, !1)),
            e.dispatchEvent(r);
        }
        function bt(e, t) {
          return function () {
            return _t(this, e, t);
          };
        }
        function vt(e, t) {
          return function () {
            return _t(this, e, t.apply(this, arguments));
          };
        }
        'undefined' != typeof document &&
          ('onmouseenter' in document.documentElement ||
            (ct = { mouseenter: 'mouseover', mouseleave: 'mouseout' }));
        var yt = [null];
        function wt(e, t) {
          (this._groups = e), (this._parents = t);
        }
        function Ct() {
          return new wt([[document.documentElement]], yt);
        }
        wt.prototype = Ct.prototype = {
          constructor: wt,
          select: function (e) {
            'function' != typeof e && (e = fe(e));
            for (
              var t = this._groups, i = t.length, n = new Array(i), r = 0;
              r < i;
              ++r
            )
              for (
                var s,
                  o,
                  a = t[r],
                  l = a.length,
                  c = (n[r] = new Array(l)),
                  d = 0;
                d < l;
                ++d
              )
                (s = a[d]) &&
                  (o = e.call(s, s.__data__, d, a)) &&
                  ('__data__' in s && (o.__data__ = s.__data__), (c[d] = o));
            return new wt(n, this._parents);
          },
          selectAll: function (e) {
            'function' != typeof e && (e = me(e));
            for (
              var t = this._groups, i = t.length, n = [], r = [], s = 0;
              s < i;
              ++s
            )
              for (var o, a = t[s], l = a.length, c = 0; c < l; ++c)
                (o = a[c]) && (n.push(e.call(o, o.__data__, c, a)), r.push(o));
            return new wt(n, r);
          },
          filter: function (e) {
            'function' != typeof e && (e = _e(e));
            for (
              var t = this._groups, i = t.length, n = new Array(i), r = 0;
              r < i;
              ++r
            )
              for (
                var s, o = t[r], a = o.length, l = (n[r] = []), c = 0;
                c < a;
                ++c
              )
                (s = o[c]) && e.call(s, s.__data__, c, o) && l.push(s);
            return new wt(n, this._parents);
          },
          data: function (e, t) {
            if (!e)
              return (
                (f = new Array(this.size())),
                (d = -1),
                this.each(function (e) {
                  f[++d] = e;
                }),
                f
              );
            var i,
              n = t ? we : ye,
              r = this._parents,
              s = this._groups;
            'function' != typeof e &&
              ((i = e),
              (e = function () {
                return i;
              }));
            for (
              var o = s.length,
                a = new Array(o),
                l = new Array(o),
                c = new Array(o),
                d = 0;
              d < o;
              ++d
            ) {
              var h = r[d],
                u = s[d],
                g = u.length,
                f = e.call(h, h && h.__data__, d, r),
                p = f.length,
                m = (l[d] = new Array(p)),
                _ = (a[d] = new Array(p));
              n(h, u, m, _, (c[d] = new Array(g)), f, t);
              for (var b, v, y = 0, w = 0; y < p; ++y)
                if ((b = m[y])) {
                  for (y >= w && (w = y + 1); !(v = _[w]) && ++w < p; );
                  b._next = v || null;
                }
            }
            return ((a = new wt(a, r))._enter = l), (a._exit = c), a;
          },
          enter: function () {
            return new wt(this._enter || this._groups.map(be), this._parents);
          },
          exit: function () {
            return new wt(this._exit || this._groups.map(be), this._parents);
          },
          join: function (e, t, i) {
            var n = this.enter(),
              r = this,
              s = this.exit();
            return (
              (n = 'function' == typeof e ? e(n) : n.append(e + '')),
              null != t && (r = t(r)),
              null == i ? s.remove() : i(s),
              n && r ? n.merge(r).order() : r
            );
          },
          merge: function (e) {
            for (
              var t = this._groups,
                i = e._groups,
                n = t.length,
                r = i.length,
                s = Math.min(n, r),
                o = new Array(n),
                a = 0;
              a < s;
              ++a
            )
              for (
                var l,
                  c = t[a],
                  d = i[a],
                  h = c.length,
                  u = (o[a] = new Array(h)),
                  g = 0;
                g < h;
                ++g
              )
                (l = c[g] || d[g]) && (u[g] = l);
            for (; a < n; ++a) o[a] = t[a];
            return new wt(o, this._parents);
          },
          order: function () {
            for (var e = this._groups, t = -1, i = e.length; ++t < i; )
              for (var n, r = e[t], s = r.length - 1, o = r[s]; --s >= 0; )
                (n = r[s]) &&
                  (o &&
                    4 ^ n.compareDocumentPosition(o) &&
                    o.parentNode.insertBefore(n, o),
                  (o = n));
            return this;
          },
          sort: function (e) {
            function t(t, i) {
              return t && i ? e(t.__data__, i.__data__) : !t - !i;
            }
            e || (e = Ce);
            for (
              var i = this._groups, n = i.length, r = new Array(n), s = 0;
              s < n;
              ++s
            ) {
              for (
                var o, a = i[s], l = a.length, c = (r[s] = new Array(l)), d = 0;
                d < l;
                ++d
              )
                (o = a[d]) && (c[d] = o);
              c.sort(t);
            }
            return new wt(r, this._parents).order();
          },
          call: function () {
            var e = arguments[0];
            return (arguments[0] = this), e.apply(null, arguments), this;
          },
          nodes: function () {
            var e = new Array(this.size()),
              t = -1;
            return (
              this.each(function () {
                e[++t] = this;
              }),
              e
            );
          },
          node: function () {
            for (var e = this._groups, t = 0, i = e.length; t < i; ++t)
              for (var n = e[t], r = 0, s = n.length; r < s; ++r) {
                var o = n[r];
                if (o) return o;
              }
            return null;
          },
          size: function () {
            var e = 0;
            return (
              this.each(function () {
                ++e;
              }),
              e
            );
          },
          empty: function () {
            return !this.node();
          },
          each: function (e) {
            for (var t = this._groups, i = 0, n = t.length; i < n; ++i)
              for (var r, s = t[i], o = 0, a = s.length; o < a; ++o)
                (r = s[o]) && e.call(r, r.__data__, o, s);
            return this;
          },
          attr: function (e, t) {
            var i = xe(e);
            if (arguments.length < 2) {
              var n = this.node();
              return i.local
                ? n.getAttributeNS(i.space, i.local)
                : n.getAttribute(i);
            }
            return this.each(
              (null == t
                ? i.local
                  ? Me
                  : Le
                : 'function' == typeof t
                ? i.local
                  ? Te
                  : Ee
                : i.local
                ? Ne
                : De)(i, t)
            );
          },
          style: function (e, t, i) {
            return arguments.length > 1
              ? this.each(
                  (null == t ? Oe : 'function' == typeof t ? Re : Ae)(
                    e,
                    t,
                    null == i ? '' : i
                  )
                )
              : Pe(this.node(), e);
          },
          property: function (e, t) {
            return arguments.length > 1
              ? this.each(
                  (null == t ? Fe : 'function' == typeof t ? We : Be)(e, t)
                )
              : this.node()[e];
          },
          classed: function (e, t) {
            var i = Ye(e + '');
            if (arguments.length < 2) {
              for (var n = He(this.node()), r = -1, s = i.length; ++r < s; )
                if (!n.contains(i[r])) return !1;
              return !0;
            }
            return this.each(('function' == typeof t ? Ke : t ? Ue : $e)(i, t));
          },
          text: function (e) {
            return arguments.length
              ? this.each(
                  null == e ? qe : ('function' == typeof e ? Ze : Ge)(e)
                )
              : this.node().textContent;
          },
          html: function (e) {
            return arguments.length
              ? this.each(
                  null == e ? Je : ('function' == typeof e ? Xe : Qe)(e)
                )
              : this.node().innerHTML;
          },
          raise: function () {
            return this.each(et);
          },
          lower: function () {
            return this.each(tt);
          },
          append: function (e) {
            var t = 'function' == typeof e ? e : rt(e);
            return this.select(function () {
              return this.appendChild(t.apply(this, arguments));
            });
          },
          insert: function (e, t) {
            var i = 'function' == typeof e ? e : rt(e),
              n = null == t ? st : 'function' == typeof t ? t : fe(t);
            return this.select(function () {
              return this.insertBefore(
                i.apply(this, arguments),
                n.apply(this, arguments) || null
              );
            });
          },
          remove: function () {
            return this.each(ot);
          },
          clone: function (e) {
            return this.select(e ? lt : at);
          },
          datum: function (e) {
            return arguments.length
              ? this.property('__data__', e)
              : this.node().__data__;
          },
          on: function (e, t, i) {
            var n,
              r,
              s = gt(e + ''),
              o = s.length;
            if (!(arguments.length < 2)) {
              for (a = t ? pt : ft, null == i && (i = !1), n = 0; n < o; ++n)
                this.each(a(s[n], t, i));
              return this;
            }
            var a = this.node().__on;
            if (a)
              for (var l, c = 0, d = a.length; c < d; ++c)
                for (n = 0, l = a[c]; n < o; ++n)
                  if ((r = s[n]).type === l.type && r.name === l.name)
                    return l.value;
          },
          dispatch: function (e, t) {
            return this.each(('function' == typeof t ? vt : bt)(e, t));
          },
        };
        const St = Ct;
        function kt(e) {
          return 'string' == typeof e
            ? new wt([[document.querySelector(e)]], [document.documentElement])
            : new wt([[e]], yt);
        }
        function xt() {
          dt.stopImmediatePropagation();
        }
        function Lt() {
          dt.preventDefault(), dt.stopImmediatePropagation();
        }
        function Mt(e) {
          var t = e.document.documentElement,
            i = kt(e).on('dragstart.drag', Lt, !0);
          'onselectstart' in t
            ? i.on('selectstart.drag', Lt, !0)
            : ((t.__noselect = t.style.MozUserSelect),
              (t.style.MozUserSelect = 'none'));
        }
        function Dt(e, t) {
          var i = e.document.documentElement,
            n = kt(e).on('dragstart.drag', null);
          t &&
            (n.on('click.drag', Lt, !0),
            setTimeout(function () {
              n.on('click.drag', null);
            }, 0)),
            'onselectstart' in i
              ? n.on('selectstart.drag', null)
              : ((i.style.MozUserSelect = i.__noselect), delete i.__noselect);
        }
        function Nt(e, t, i) {
          (e.prototype = t.prototype = i), (i.constructor = e);
        }
        function Et(e, t) {
          var i = Object.create(e.prototype);
          for (var n in t) i[n] = t[n];
          return i;
        }
        function Tt() {}
        var It = 0.7,
          Ot = 1 / It,
          At = '\\s*([+-]?\\d+)\\s*',
          Rt = '\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*',
          Pt = '\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*',
          Ft = /^#([0-9a-f]{3,8})$/,
          Bt = new RegExp('^rgb\\(' + [At, At, At] + '\\)$'),
          Wt = new RegExp('^rgb\\(' + [Pt, Pt, Pt] + '\\)$'),
          Yt = new RegExp('^rgba\\(' + [At, At, At, Rt] + '\\)$'),
          Ht = new RegExp('^rgba\\(' + [Pt, Pt, Pt, Rt] + '\\)$'),
          jt = new RegExp('^hsl\\(' + [Rt, Pt, Pt] + '\\)$'),
          Vt = new RegExp('^hsla\\(' + [Rt, Pt, Pt, Rt] + '\\)$'),
          zt = {
            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 Ut() {
          return this.rgb().formatHex();
        }
        function $t() {
          return this.rgb().formatRgb();
        }
        function Kt(e) {
          var t, i;
          return (
            (e = (e + '').trim().toLowerCase()),
            (t = Ft.exec(e))
              ? ((i = t[1].length),
                (t = parseInt(t[1], 16)),
                6 === i
                  ? qt(t)
                  : 3 === i
                  ? new Qt(
                      ((t >> 8) & 15) | ((t >> 4) & 240),
                      ((t >> 4) & 15) | (240 & t),
                      ((15 & t) << 4) | (15 & t),
                      1
                    )
                  : 8 === i
                  ? new Qt(
                      (t >> 24) & 255,
                      (t >> 16) & 255,
                      (t >> 8) & 255,
                      (255 & t) / 255
                    )
                  : 4 === i
                  ? new Qt(
                      ((t >> 12) & 15) | ((t >> 8) & 240),
                      ((t >> 8) & 15) | ((t >> 4) & 240),
                      ((t >> 4) & 15) | (240 & t),
                      (((15 & t) << 4) | (15 & t)) / 255
                    )
                  : null)
              : (t = Bt.exec(e))
              ? new Qt(t[1], t[2], t[3], 1)
              : (t = Wt.exec(e))
              ? new Qt(
                  (255 * t[1]) / 100,
                  (255 * t[2]) / 100,
                  (255 * t[3]) / 100,
                  1
                )
              : (t = Yt.exec(e))
              ? Gt(t[1], t[2], t[3], t[4])
              : (t = Ht.exec(e))
              ? Gt(
                  (255 * t[1]) / 100,
                  (255 * t[2]) / 100,
                  (255 * t[3]) / 100,
                  t[4]
                )
              : (t = jt.exec(e))
              ? ii(t[1], t[2] / 100, t[3] / 100, 1)
              : (t = Vt.exec(e))
              ? ii(t[1], t[2] / 100, t[3] / 100, t[4])
              : zt.hasOwnProperty(e)
              ? qt(zt[e])
              : 'transparent' === e
              ? new Qt(NaN, NaN, NaN, 0)
              : null
          );
        }
        function qt(e) {
          return new Qt((e >> 16) & 255, (e >> 8) & 255, 255 & e, 1);
        }
        function Gt(e, t, i, n) {
          return n <= 0 && (e = t = i = NaN), new Qt(e, t, i, n);
        }
        function Zt(e) {
          return (
            e instanceof Tt || (e = Kt(e)),
            e ? new Qt((e = e.rgb()).r, e.g, e.b, e.opacity) : new Qt()
          );
        }
        function Jt(e, t, i, n) {
          return 1 === arguments.length
            ? Zt(e)
            : new Qt(e, t, i, null == n ? 1 : n);
        }
        function Qt(e, t, i, n) {
          (this.r = +e), (this.g = +t), (this.b = +i), (this.opacity = +n);
        }
        function Xt() {
          return '#' + ti(this.r) + ti(this.g) + ti(this.b);
        }
        function ei() {
          var e = this.opacity;
          return (
            (1 === (e = isNaN(e) ? 1 : Math.max(0, Math.min(1, e)))
              ? 'rgb('
              : 'rgba(') +
            Math.max(0, Math.min(255, Math.round(this.r) || 0)) +
            ', ' +
            Math.max(0, Math.min(255, Math.round(this.g) || 0)) +
            ', ' +
            Math.max(0, Math.min(255, Math.round(this.b) || 0)) +
            (1 === e ? ')' : ', ' + e + ')')
          );
        }
        function ti(e) {
          return (
            ((e = Math.max(0, Math.min(255, Math.round(e) || 0))) < 16
              ? '0'
              : '') + e.toString(16)
          );
        }
        function ii(e, t, i, n) {
          return (
            n <= 0
              ? (e = t = i = NaN)
              : i <= 0 || i >= 1
              ? (e = t = NaN)
              : t <= 0 && (e = NaN),
            new si(e, t, i, n)
          );
        }
        function ni(e) {
          if (e instanceof si) return new si(e.h, e.s, e.l, e.opacity);
          if ((e instanceof Tt || (e = Kt(e)), !e)) return new si();
          if (e instanceof si) return e;
          var t = (e = e.rgb()).r / 255,
            i = e.g / 255,
            n = e.b / 255,
            r = Math.min(t, i, n),
            s = Math.max(t, i, n),
            o = NaN,
            a = s - r,
            l = (s + r) / 2;
          return (
            a
              ? ((o =
                  t === s
                    ? (i - n) / a + 6 * (i < n)
                    : i === s
                    ? (n - t) / a + 2
                    : (t - i) / a + 4),
                (a /= l < 0.5 ? s + r : 2 - s - r),
                (o *= 60))
              : (a = l > 0 && l < 1 ? 0 : o),
            new si(o, a, l, e.opacity)
          );
        }
        function ri(e, t, i, n) {
          return 1 === arguments.length
            ? ni(e)
            : new si(e, t, i, null == n ? 1 : n);
        }
        function si(e, t, i, n) {
          (this.h = +e), (this.s = +t), (this.l = +i), (this.opacity = +n);
        }
        function oi(e, t, i) {
          return (
            255 *
            (e < 60
              ? t + ((i - t) * e) / 60
              : e < 180
              ? i
              : e < 240
              ? t + ((i - t) * (240 - e)) / 60
              : t)
          );
        }
        function ai(e, t, i, n, r) {
          var s = e * e,
            o = s * e;
          return (
            ((1 - 3 * e + 3 * s - o) * t +
              (4 - 6 * s + 3 * o) * i +
              (1 + 3 * e + 3 * s - 3 * o) * n +
              o * r) /
            6
          );
        }
        function li(e) {
          var t = e.length - 1;
          return function (i) {
            var n =
                i <= 0
                  ? (i = 0)
                  : i >= 1
                  ? ((i = 1), t - 1)
                  : Math.floor(i * t),
              r = e[n],
              s = e[n + 1],
              o = n > 0 ? e[n - 1] : 2 * r - s,
              a = n < t - 1 ? e[n + 2] : 2 * s - r;
            return ai((i - n / t) * t, o, r, s, a);
          };
        }
        function ci(e) {
          var t = e.length;
          return function (i) {
            var n = Math.floor(((i %= 1) < 0 ? ++i : i) * t),
              r = e[(n + t - 1) % t],
              s = e[n % t],
              o = e[(n + 1) % t],
              a = e[(n + 2) % t];
            return ai((i - n / t) * t, r, s, o, a);
          };
        }
        function di(e) {
          return function () {
            return e;
          };
        }
        function hi(e, t) {
          return function (i) {
            return e + i * t;
          };
        }
        function ui(e, t) {
          var i = t - e;
          return i
            ? hi(e, i > 180 || i < -180 ? i - 360 * Math.round(i / 360) : i)
            : di(isNaN(e) ? t : e);
        }
        function gi(e, t) {
          var i = t - e;
          return i ? hi(e, i) : di(isNaN(e) ? t : e);
        }
        Nt(Tt, Kt, {
          copy: function (e) {
            return Object.assign(new this.constructor(), this, e);
          },
          displayable: function () {
            return this.rgb().displayable();
          },
          hex: Ut,
          formatHex: Ut,
          formatHsl: function () {
            return ni(this).formatHsl();
          },
          formatRgb: $t,
          toString: $t,
        }),
          Nt(
            Qt,
            Jt,
            Et(Tt, {
              brighter: function (e) {
                return (
                  (e = null == e ? Ot : Math.pow(Ot, e)),
                  new Qt(this.r * e, this.g * e, this.b * e, this.opacity)
                );
              },
              darker: function (e) {
                return (
                  (e = null == e ? It : Math.pow(It, e)),
                  new Qt(this.r * e, this.g * e, this.b * e, this.opacity)
                );
              },
              rgb: function () {
                return this;
              },
              displayable: function () {
                return (
                  -0.5 <= this.r &&
                  this.r < 255.5 &&
                  -0.5 <= this.g &&
                  this.g < 255.5 &&
                  -0.5 <= this.b &&
                  this.b < 255.5 &&
                  0 <= this.opacity &&
                  this.opacity <= 1
                );
              },
              hex: Xt,
              formatHex: Xt,
              formatRgb: ei,
              toString: ei,
            })
          ),
          Nt(
            si,
            ri,
            Et(Tt, {
              brighter: function (e) {
                return (
                  (e = null == e ? Ot : Math.pow(Ot, e)),
                  new si(this.h, this.s, this.l * e, this.opacity)
                );
              },
              darker: function (e) {
                return (
                  (e = null == e ? It : Math.pow(It, e)),
                  new si(this.h, this.s, this.l * e, this.opacity)
                );
              },
              rgb: function () {
                var e = (this.h % 360) + 360 * (this.h < 0),
                  t = isNaN(e) || isNaN(this.s) ? 0 : this.s,
                  i = this.l,
                  n = i + (i < 0.5 ? i : 1 - i) * t,
                  r = 2 * i - n;
                return new Qt(
                  oi(e >= 240 ? e - 240 : e + 120, r, n),
                  oi(e, r, n),
                  oi(e < 120 ? e + 240 : e - 120, r, n),
                  this.opacity
                );
              },
              displayable: function () {
                return (
                  ((0 <= this.s && this.s <= 1) || isNaN(this.s)) &&
                  0 <= this.l &&
                  this.l <= 1 &&
                  0 <= this.opacity &&
                  this.opacity <= 1
                );
              },
              formatHsl: function () {
                var e = this.opacity;
                return (
                  (1 === (e = isNaN(e) ? 1 : Math.max(0, Math.min(1, e)))
                    ? 'hsl('
                    : 'hsla(') +
                  (this.h || 0) +
                  ', ' +
                  100 * (this.s || 0) +
                  '%, ' +
                  100 * (this.l || 0) +
                  '%' +
                  (1 === e ? ')' : ', ' + e + ')')
                );
              },
            })
          );
        const fi = (function e(t) {
          var i = (function (e) {
            return 1 == (e = +e)
              ? gi
              : function (t, i) {
                  return i - t
                    ? (function (e, t, i) {
                        return (
                          (e = Math.pow(e, i)),
                          (t = Math.pow(t, i) - e),
                          (i = 1 / i),
                          function (n) {
                            return Math.pow(e + n * t, i);
                          }
                        );
                      })(t, i, e)
                    : di(isNaN(t) ? i : t);
                };
          })(t);
          function n(e, t) {
            var n = i((e = Jt(e)).r, (t = Jt(t)).r),
              r = i(e.g, t.g),
              s = i(e.b, t.b),
              o = gi(e.opacity, t.opacity);
            return function (t) {
              return (
                (e.r = n(t)),
                (e.g = r(t)),
                (e.b = s(t)),
                (e.opacity = o(t)),
                e + ''
              );
            };
          }
          return (n.gamma = e), n;
        })(1);
        function pi(e) {
          return function (t) {
            var i,
              n,
              r = t.length,
              s = new Array(r),
              o = new Array(r),
              a = new Array(r);
            for (i = 0; i < r; ++i)
              (n = Jt(t[i])),
                (s[i] = n.r || 0),
                (o[i] = n.g || 0),
                (a[i] = n.b || 0);
            return (
              (s = e(s)),
              (o = e(o)),
              (a = e(a)),
              (n.opacity = 1),
              function (e) {
                return (n.r = s(e)), (n.g = o(e)), (n.b = a(e)), n + '';
              }
            );
          };
        }
        var mi = pi(li),
          _i = pi(ci);
        function bi(e, t) {
          t || (t = []);
          var i,
            n = e ? Math.min(t.length, e.length) : 0,
            r = t.slice();
          return function (s) {
            for (i = 0; i < n; ++i) r[i] = e[i] * (1 - s) + t[i] * s;
            return r;
          };
        }
        function vi(e) {
          return ArrayBuffer.isView(e) && !(e instanceof DataView);
        }
        function yi(e, t) {
          return (vi(t) ? bi : wi)(e, t);
        }
        function wi(e, t) {
          var i,
            n = t ? t.length : 0,
            r = e ? Math.min(n, e.length) : 0,
            s = new Array(r),
            o = new Array(n);
          for (i = 0; i < r; ++i) s[i] = Di(e[i], t[i]);
          for (; i < n; ++i) o[i] = t[i];
          return function (e) {
            for (i = 0; i < r; ++i) o[i] = s[i](e);
            return o;
          };
        }
        function Ci(e, t) {
          var i = new Date();
          return (
            (e = +e),
            (t = +t),
            function (n) {
              return i.setTime(e * (1 - n) + t * n), i;
            }
          );
        }
        function Si(e, t) {
          return (
            (e = +e),
            (t = +t),
            function (i) {
              return e * (1 - i) + t * i;
            }
          );
        }
        function ki(e, t) {
          var i,
            n = {},
            r = {};
          for (i in ((null !== e && 'object' == typeof e) || (e = {}),
          (null !== t && 'object' == typeof t) || (t = {}),
          t))
            i in e ? (n[i] = Di(e[i], t[i])) : (r[i] = t[i]);
          return function (e) {
            for (i in n) r[i] = n[i](e);
            return r;
          };
        }
        var xi = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
          Li = new RegExp(xi.source, 'g');
        function Mi(e, t) {
          var i,
            n,
            r,
            s = (xi.lastIndex = Li.lastIndex = 0),
            o = -1,
            a = [],
            l = [];
          for (e += '', t += ''; (i = xi.exec(e)) && (n = Li.exec(t)); )
            (r = n.index) > s &&
              ((r = t.slice(s, r)), a[o] ? (a[o] += r) : (a[++o] = r)),
              (i = i[0]) === (n = n[0])
                ? a[o]
                  ? (a[o] += n)
                  : (a[++o] = n)
                : ((a[++o] = null), l.push({ i: o, x: Si(i, n) })),
              (s = Li.lastIndex);
          return (
            s < t.length &&
              ((r = t.slice(s)), a[o] ? (a[o] += r) : (a[++o] = r)),
            a.length < 2
              ? l[0]
                ? (function (e) {
                    return function (t) {
                      return e(t) + '';
                    };
                  })(l[0].x)
                : (function (e) {
                    return function () {
                      return e;
                    };
                  })(t)
              : ((t = l.length),
                function (e) {
                  for (var i, n = 0; n < t; ++n) a[(i = l[n]).i] = i.x(e);
                  return a.join('');
                })
          );
        }
        function Di(e, t) {
          var i,
            n = typeof t;
          return null == t || 'boolean' === n
            ? di(t)
            : ('number' === n
                ? Si
                : 'string' === n
                ? (i = Kt(t))
                  ? ((t = i), fi)
                  : Mi
                : t instanceof Kt
                ? fi
                : t instanceof Date
                ? Ci
                : vi(t)
                ? bi
                : Array.isArray(t)
                ? wi
                : ('function' != typeof t.valueOf &&
                    'function' != typeof t.toString) ||
                  isNaN(t)
                ? ki
                : Si)(e, t);
        }
        function Ni() {
          for (var e, t = dt; (e = t.sourceEvent); ) t = e;
          return t;
        }
        function Ei(e, t) {
          var i = e.ownerSVGElement || e;
          if (i.createSVGPoint) {
            var n = i.createSVGPoint();
            return (
              (n.x = t.clientX),
              (n.y = t.clientY),
              [(n = n.matrixTransform(e.getScreenCTM().inverse())).x, n.y]
            );
          }
          var r = e.getBoundingClientRect();
          return [
            t.clientX - r.left - e.clientLeft,
            t.clientY - r.top - e.clientTop,
          ];
        }
        function Ti(e, t, i) {
          arguments.length < 3 && ((i = t), (t = Ni().changedTouches));
          for (var n, r = 0, s = t ? t.length : 0; r < s; ++r)
            if ((n = t[r]).identifier === i) return Ei(e, n);
          return null;
        }
        function Ii(e) {
          var t = Ni();
          return t.changedTouches && (t = t.changedTouches[0]), Ei(e, t);
        }
        var Oi,
          Ai,
          Ri = 0,
          Pi = 0,
          Fi = 0,
          Bi = 0,
          Wi = 0,
          Yi = 0,
          Hi =
            'object' == typeof performance && performance.now
              ? performance
              : Date,
          ji =
            'object' == typeof window && window.requestAnimationFrame
              ? window.requestAnimationFrame.bind(window)
              : function (e) {
                  setTimeout(e, 17);
                };
        function Vi() {
          return Wi || (ji(zi), (Wi = Hi.now() + Yi));
        }
        function zi() {
          Wi = 0;
        }
        function Ui() {
          this._call = this._time = this._next = null;
        }
        function $i(e, t, i) {
          var n = new Ui();
          return n.restart(e, t, i), n;
        }
        function Ki() {
          Vi(), ++Ri;
          for (var e, t = Oi; t; )
            (e = Wi - t._time) >= 0 && t._call.call(null, e), (t = t._next);
          --Ri;
        }
        function qi() {
          (Wi = (Bi = Hi.now()) + Yi), (Ri = Pi = 0);
          try {
            Ki();
          } finally {
            (Ri = 0),
              (function () {
                for (var e, t, i = Oi, n = 1 / 0; i; )
                  i._call
                    ? (n > i._time && (n = i._time), (e = i), (i = i._next))
                    : ((t = i._next),
                      (i._next = null),
                      (i = e ? (e._next = t) : (Oi = t)));
                (Ai = e), Zi(n);
              })(),
              (Wi = 0);
          }
        }
        function Gi() {
          var e = Hi.now(),
            t = e - Bi;
          t > 1e3 && ((Yi -= t), (Bi = e));
        }
        function Zi(e) {
          Ri ||
            (Pi && (Pi = clearTimeout(Pi)),
            e - Wi > 24
              ? (e < 1 / 0 && (Pi = setTimeout(qi, e - Hi.now() - Yi)),
                Fi && (Fi = clearInterval(Fi)))
              : (Fi || ((Bi = Hi.now()), (Fi = setInterval(Gi, 1e3))),
                (Ri = 1),
                ji(qi)));
        }
        function Ji(e, t, i) {
          var n = new Ui();
          return (
            (t = null == t ? 0 : +t),
            n.restart(
              function (i) {
                n.stop(), e(i + t);
              },
              t,
              i
            ),
            n
          );
        }
        Ui.prototype = $i.prototype = {
          constructor: Ui,
          restart: function (e, t, i) {
            if ('function' != typeof e)
              throw new TypeError('callback is not a function');
            (i = (null == i ? Vi() : +i) + (null == t ? 0 : +t)),
              this._next ||
                Ai === this ||
                (Ai ? (Ai._next = this) : (Oi = this), (Ai = this)),
              (this._call = e),
              (this._time = i),
              Zi();
          },
          stop: function () {
            this._call && ((this._call = null), (this._time = 1 / 0), Zi());
          },
        };
        var Qi = ue('start', 'end', 'cancel', 'interrupt'),
          Xi = [];
        function en(e, t, i, n, r, s) {
          var o = e.__transition;
          if (o) {
            if (i in o) return;
          } else e.__transition = {};
          !(function (e, t, i) {
            var n,
              r = e.__transition;
            function s(l) {
              var c, d, h, u;
              if (1 !== i.state) return a();
              for (c in r)
                if ((u = r[c]).name === i.name) {
                  if (3 === u.state) return Ji(s);
                  4 === u.state
                    ? ((u.state = 6),
                      u.timer.stop(),
                      u.on.call('interrupt', e, e.__data__, u.index, u.group),
                      delete r[c])
                    : +c < t &&
                      ((u.state = 6),
                      u.timer.stop(),
                      u.on.call('cancel', e, e.__data__, u.index, u.group),
                      delete r[c]);
                }
              if (
                (Ji(function () {
                  3 === i.state &&
                    ((i.state = 4), i.timer.restart(o, i.delay, i.time), o(l));
                }),
                (i.state = 2),
                i.on.call('start', e, e.__data__, i.index, i.group),
                2 === i.state)
              ) {
                for (
                  i.state = 3,
                    n = new Array((h = i.tween.length)),
                    c = 0,
                    d = -1;
                  c < h;
                  ++c
                )
                  (u = i.tween[c].value.call(
                    e,
                    e.__data__,
                    i.index,
                    i.group
                  )) && (n[++d] = u);
                n.length = d + 1;
              }
            }
            function o(t) {
              for (
                var r =
                    t < i.duration
                      ? i.ease.call(null, t / i.duration)
                      : (i.timer.restart(a), (i.state = 5), 1),
                  s = -1,
                  o = n.length;
                ++s < o;

              )
                n[s].call(e, r);
              5 === i.state &&
                (i.on.call('end', e, e.__data__, i.index, i.group), a());
            }
            function a() {
              for (var n in ((i.state = 6), i.timer.stop(), delete r[t], r))
                return;
              delete e.__transition;
            }
            (r[t] = i),
              (i.timer = $i(
                function (e) {
                  (i.state = 1),
                    i.timer.restart(s, i.delay, i.time),
                    i.delay <= e && s(e - i.delay);
                },
                0,
                i.time
              ));
          })(e, i, {
            name: t,
            index: n,
            group: r,
            on: Qi,
            tween: Xi,
            time: s.time,
            delay: s.delay,
            duration: s.duration,
            ease: s.ease,
            timer: null,
            state: 0,
          });
        }
        function tn(e, t) {
          var i = rn(e, t);
          if (i.state > 0) throw new Error('too late; already scheduled');
          return i;
        }
        function nn(e, t) {
          var i = rn(e, t);
          if (i.state > 3) throw new Error('too late; already running');
          return i;
        }
        function rn(e, t) {
          var i = e.__transition;
          if (!i || !(i = i[t])) throw new Error('transition not found');
          return i;
        }
        function sn(e, t) {
          var i,
            n,
            r,
            s = e.__transition,
            o = !0;
          if (s) {
            for (r in ((t = null == t ? null : t + ''), s))
              (i = s[r]).name === t
                ? ((n = i.state > 2 && i.state < 5),
                  (i.state = 6),
                  i.timer.stop(),
                  i.on.call(
                    n ? 'interrupt' : 'cancel',
                    e,
                    e.__data__,
                    i.index,
                    i.group
                  ),
                  delete s[r])
                : (o = !1);
            o && delete e.__transition;
          }
        }
        var on,
          an,
          ln,
          cn,
          dn = 180 / Math.PI,
          hn = {
            translateX: 0,
            translateY: 0,
            rotate: 0,
            skewX: 0,
            scaleX: 1,
            scaleY: 1,
          };
        function un(e, t, i, n, r, s) {
          var o, a, l;
          return (
            (o = Math.sqrt(e * e + t * t)) && ((e /= o), (t /= o)),
            (l = e * i + t * n) && ((i -= e * l), (n -= t * l)),
            (a = Math.sqrt(i * i + n * n)) && ((i /= a), (n /= a), (l /= a)),
            e * n < t * i && ((e = -e), (t = -t), (l = -l), (o = -o)),
            {
              translateX: r,
              translateY: s,
              rotate: Math.atan2(t, e) * dn,
              skewX: Math.atan(l) * dn,
              scaleX: o,
              scaleY: a,
            }
          );
        }
        function gn(e, t, i, n) {
          function r(e) {
            return e.length ? e.pop() + ' ' : '';
          }
          return function (s, o) {
            var a = [],
              l = [];
            return (
              (s = e(s)),
              (o = e(o)),
              (function (e, n, r, s, o, a) {
                if (e !== r || n !== s) {
                  var l = o.push('translate(', null, t, null, i);
                  a.push({ i: l - 4, x: Si(e, r) }, { i: l - 2, x: Si(n, s) });
                } else (r || s) && o.push('translate(' + r + t + s + i);
              })(s.translateX, s.translateY, o.translateX, o.translateY, a, l),
              (function (e, t, i, s) {
                e !== t
                  ? (e - t > 180 ? (t += 360) : t - e > 180 && (e += 360),
                    s.push({
                      i: i.push(r(i) + 'rotate(', null, n) - 2,
                      x: Si(e, t),
                    }))
                  : t && i.push(r(i) + 'rotate(' + t + n);
              })(s.rotate, o.rotate, a, l),
              (function (e, t, i, s) {
                e !== t
                  ? s.push({
                      i: i.push(r(i) + 'skewX(', null, n) - 2,
                      x: Si(e, t),
                    })
                  : t && i.push(r(i) + 'skewX(' + t + n);
              })(s.skewX, o.skewX, a, l),
              (function (e, t, i, n, s, o) {
                if (e !== i || t !== n) {
                  var a = s.push(r(s) + 'scale(', null, ',', null, ')');
                  o.push({ i: a - 4, x: Si(e, i) }, { i: a - 2, x: Si(t, n) });
                } else
                  (1 === i && 1 === n) ||
                    s.push(r(s) + 'scale(' + i + ',' + n + ')');
              })(s.scaleX, s.scaleY, o.scaleX, o.scaleY, a, l),
              (s = o = null),
              function (e) {
                for (var t, i = -1, n = l.length; ++i < n; )
                  a[(t = l[i]).i] = t.x(e);
                return a.join('');
              }
            );
          };
        }
        var fn = gn(
            function (e) {
              return 'none' === e
                ? hn
                : (on ||
                    ((on = document.createElement('DIV')),
                    (an = document.documentElement),
                    (ln = document.defaultView)),
                  (on.style.transform = e),
                  (e = ln
                    .getComputedStyle(an.appendChild(on), null)
                    .getPropertyValue('transform')),
                  an.removeChild(on),
                  un(
                    +(e = e.slice(7, -1).split(','))[0],
                    +e[1],
                    +e[2],
                    +e[3],
                    +e[4],
                    +e[5]
                  ));
            },
            'px, ',
            'px)',
            'deg)'
          ),
          pn = gn(
            function (e) {
              return null == e
                ? hn
                : (cn ||
                    (cn = document.createElementNS(
                      'http://www.w3.org/2000/svg',
                      'g'
                    )),
                  cn.setAttribute('transform', e),
                  (e = cn.transform.baseVal.consolidate())
                    ? un((e = e.matrix).a, e.b, e.c, e.d, e.e, e.f)
                    : hn);
            },
            ', ',
            ')',
            ')'
          );
        function mn(e, t) {
          var i, n;
          return function () {
            var r = nn(this, e),
              s = r.tween;
            if (s !== i)
              for (var o = 0, a = (n = i = s).length; o < a; ++o)
                if (n[o].name === t) {
                  (n = n.slice()).splice(o, 1);
                  break;
                }
            r.tween = n;
          };
        }
        function _n(e, t, i) {
          var n, r;
          if ('function' != typeof i) throw new Error();
          return function () {
            var s = nn(this, e),
              o = s.tween;
            if (o !== n) {
              r = (n = o).slice();
              for (
                var a = { name: t, value: i }, l = 0, c = r.length;
                l < c;
                ++l
              )
                if (r[l].name === t) {
                  r[l] = a;
                  break;
                }
              l === c && r.push(a);
            }
            s.tween = r;
          };
        }
        function bn(e, t, i) {
          var n = e._id;
          return (
            e.each(function () {
              var e = nn(this, n);
              (e.value || (e.value = {}))[t] = i.apply(this, arguments);
            }),
            function (e) {
              return rn(e, n).value[t];
            }
          );
        }
        function vn(e, t) {
          var i;
          return ('number' == typeof t
            ? Si
            : t instanceof Kt
            ? fi
            : (i = Kt(t))
            ? ((t = i), fi)
            : Mi)(e, t);
        }
        function yn(e) {
          return function () {
            this.removeAttribute(e);
          };
        }
        function wn(e) {
          return function () {
            this.removeAttributeNS(e.space, e.local);
          };
        }
        function Cn(e, t, i) {
          var n,
            r,
            s = i + '';
          return function () {
            var o = this.getAttribute(e);
            return o === s ? null : o === n ? r : (r = t((n = o), i));
          };
        }
        function Sn(e, t, i) {
          var n,
            r,
            s = i + '';
          return function () {
            var o = this.getAttributeNS(e.space, e.local);
            return o === s ? null : o === n ? r : (r = t((n = o), i));
          };
        }
        function kn(e, t, i) {
          var n, r, s;
          return function () {
            var o,
              a,
              l = i(this);
            if (null != l)
              return (o = this.getAttribute(e)) === (a = l + '')
                ? null
                : o === n && a === r
                ? s
                : ((r = a), (s = t((n = o), l)));
            this.removeAttribute(e);
          };
        }
        function xn(e, t, i) {
          var n, r, s;
          return function () {
            var o,
              a,
              l = i(this);
            if (null != l)
              return (o = this.getAttributeNS(e.space, e.local)) ===
                (a = l + '')
                ? null
                : o === n && a === r
                ? s
                : ((r = a), (s = t((n = o), l)));
            this.removeAttributeNS(e.space, e.local);
          };
        }
        function Ln(e, t) {
          return function (i) {
            this.setAttribute(e, t.call(this, i));
          };
        }
        function Mn(e, t) {
          return function (i) {
            this.setAttributeNS(e.space, e.local, t.call(this, i));
          };
        }
        function Dn(e, t) {
          var i, n;
          function r() {
            var r = t.apply(this, arguments);
            return r !== n && (i = (n = r) && Mn(e, r)), i;
          }
          return (r._value = t), r;
        }
        function Nn(e, t) {
          var i, n;
          function r() {
            var r = t.apply(this, arguments);
            return r !== n && (i = (n = r) && Ln(e, r)), i;
          }
          return (r._value = t), r;
        }
        function En(e, t) {
          return function () {
            tn(this, e).delay = +t.apply(this, arguments);
          };
        }
        function Tn(e, t) {
          return (
            (t = +t),
            function () {
              tn(this, e).delay = t;
            }
          );
        }
        function In(e, t) {
          return function () {
            nn(this, e).duration = +t.apply(this, arguments);
          };
        }
        function On(e, t) {
          return (
            (t = +t),
            function () {
              nn(this, e).duration = t;
            }
          );
        }
        function An(e, t) {
          if ('function' != typeof t) throw new Error();
          return function () {
            nn(this, e).ease = t;
          };
        }
        function Rn(e, t, i) {
          var n,
            r,
            s = (function (e) {
              return (e + '')
                .trim()
                .split(/^|\s+/)
                .every(function (e) {
                  var t = e.indexOf('.');
                  return t >= 0 && (e = e.slice(0, t)), !e || 'start' === e;
                });
            })(t)
              ? tn
              : nn;
          return function () {
            var o = s(this, e),
              a = o.on;
            a !== n && (r = (n = a).copy()).on(t, i), (o.on = r);
          };
        }
        var Pn = St.prototype.constructor;
        function Fn(e) {
          return function () {
            this.style.removeProperty(e);
          };
        }
        function Bn(e, t, i) {
          return function (n) {
            this.style.setProperty(e, t.call(this, n), i);
          };
        }
        function Wn(e, t, i) {
          var n, r;
          function s() {
            var s = t.apply(this, arguments);
            return s !== r && (n = (r = s) && Bn(e, s, i)), n;
          }
          return (s._value = t), s;
        }
        function Yn(e) {
          return function (t) {
            this.textContent = e.call(this, t);
          };
        }
        function Hn(e) {
          var t, i;
          function n() {
            var n = e.apply(this, arguments);
            return n !== i && (t = (i = n) && Yn(n)), t;
          }
          return (n._value = e), n;
        }
        var jn = 0;
        function Vn(e, t, i, n) {
          (this._groups = e),
            (this._parents = t),
            (this._name = i),
            (this._id = n);
        }
        function zn(e) {
          return St().transition(e);
        }
        function Un() {
          return ++jn;
        }
        var $n = St.prototype;
        function Kn(e) {
          return e * e * e;
        }
        function qn(e) {
          return --e * e * e + 1;
        }
        function Gn(e) {
          return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;
        }
        Vn.prototype = zn.prototype = {
          constructor: Vn,
          select: function (e) {
            var t = this._name,
              i = this._id;
            'function' != typeof e && (e = fe(e));
            for (
              var n = this._groups, r = n.length, s = new Array(r), o = 0;
              o < r;
              ++o
            )
              for (
                var a,
                  l,
                  c = n[o],
                  d = c.length,
                  h = (s[o] = new Array(d)),
                  u = 0;
                u < d;
                ++u
              )
                (a = c[u]) &&
                  (l = e.call(a, a.__data__, u, c)) &&
                  ('__data__' in a && (l.__data__ = a.__data__),
                  (h[u] = l),
                  en(h[u], t, i, u, h, rn(a, i)));
            return new Vn(s, this._parents, t, i);
          },
          selectAll: function (e) {
            var t = this._name,
              i = this._id;
            'function' != typeof e && (e = me(e));
            for (
              var n = this._groups, r = n.length, s = [], o = [], a = 0;
              a < r;
              ++a
            )
              for (var l, c = n[a], d = c.length, h = 0; h < d; ++h)
                if ((l = c[h])) {
                  for (
                    var u,
                      g = e.call(l, l.__data__, h, c),
                      f = rn(l, i),
                      p = 0,
                      m = g.length;
                    p < m;
                    ++p
                  )
                    (u = g[p]) && en(u, t, i, p, g, f);
                  s.push(g), o.push(l);
                }
            return new Vn(s, o, t, i);
          },
          filter: function (e) {
            'function' != typeof e && (e = _e(e));
            for (
              var t = this._groups, i = t.length, n = new Array(i), r = 0;
              r < i;
              ++r
            )
              for (
                var s, o = t[r], a = o.length, l = (n[r] = []), c = 0;
                c < a;
                ++c
              )
                (s = o[c]) && e.call(s, s.__data__, c, o) && l.push(s);
            return new Vn(n, this._parents, this._name, this._id);
          },
          merge: function (e) {
            if (e._id !== this._id) throw new Error();
            for (
              var t = this._groups,
                i = e._groups,
                n = t.length,
                r = i.length,
                s = Math.min(n, r),
                o = new Array(n),
                a = 0;
              a < s;
              ++a
            )
              for (
                var l,
                  c = t[a],
                  d = i[a],
                  h = c.length,
                  u = (o[a] = new Array(h)),
                  g = 0;
                g < h;
                ++g
              )
                (l = c[g] || d[g]) && (u[g] = l);
            for (; a < n; ++a) o[a] = t[a];
            return new Vn(o, this._parents, this._name, this._id);
          },
          selection: function () {
            return new Pn(this._groups, this._parents);
          },
          transition: function () {
            for (
              var e = this._name,
                t = this._id,
                i = Un(),
                n = this._groups,
                r = n.length,
                s = 0;
              s < r;
              ++s
            )
              for (var o, a = n[s], l = a.length, c = 0; c < l; ++c)
                if ((o = a[c])) {
                  var d = rn(o, t);
                  en(o, e, i, c, a, {
                    time: d.time + d.delay + d.duration,
                    delay: 0,
                    duration: d.duration,
                    ease: d.ease,
                  });
                }
            return new Vn(n, this._parents, e, i);
          },
          call: $n.call,
          nodes: $n.nodes,
          node: $n.node,
          size: $n.size,
          empty: $n.empty,
          each: $n.each,
          on: function (e, t) {
            var i = this._id;
            return arguments.length < 2
              ? rn(this.node(), i).on.on(e)
              : this.each(Rn(i, e, t));
          },
          attr: function (e, t) {
            var i = xe(e),
              n = 'transform' === i ? pn : vn;
            return this.attrTween(
              e,
              'function' == typeof t
                ? (i.local ? xn : kn)(i, n, bn(this, 'attr.' + e, t))
                : null == t
                ? (i.local ? wn : yn)(i)
                : (i.local ? Sn : Cn)(i, n, t)
            );
          },
          attrTween: function (e, t) {
            var i = 'attr.' + e;
            if (arguments.length < 2) return (i = this.tween(i)) && i._value;
            if (null == t) return this.tween(i, null);
            if ('function' != typeof t) throw new Error();
            var n = xe(e);
            return this.tween(i, (n.local ? Dn : Nn)(n, t));
          },
          style: function (e, t, i) {
            var n = 'transform' == (e += '') ? fn : vn;
            return null == t
              ? this.styleTween(
                  e,
                  (function (e, t) {
                    var i, n, r;
                    return function () {
                      var s = Pe(this, e),
                        o = (this.style.removeProperty(e), Pe(this, e));
                      return s === o
                        ? null
                        : s === i && o === n
                        ? r
                        : (r = t((i = s), (n = o)));
                    };
                  })(e, n)
                ).on('end.style.' + e, Fn(e))
              : 'function' == typeof t
              ? this.styleTween(
                  e,
                  (function (e, t, i) {
                    var n, r, s;
                    return function () {
                      var o = Pe(this, e),
                        a = i(this),
                        l = a + '';
                      return (
                        null == a &&
                          (this.style.removeProperty(e), (l = a = Pe(this, e))),
                        o === l
                          ? null
                          : o === n && l === r
                          ? s
                          : ((r = l), (s = t((n = o), a)))
                      );
                    };
                  })(e, n, bn(this, 'style.' + e, t))
                ).each(
                  (function (e, t) {
                    var i,
                      n,
                      r,
                      s,
                      o = 'style.' + t,
                      a = 'end.' + o;
                    return function () {
                      var l = nn(this, e),
                        c = l.on,
                        d = null == l.value[o] ? s || (s = Fn(t)) : void 0;
                      (c === i && r === d) ||
                        (n = (i = c).copy()).on(a, (r = d)),
                        (l.on = n);
                    };
                  })(this._id, e)
                )
              : this.styleTween(
                  e,
                  (function (e, t, i) {
                    var n,
                      r,
                      s = i + '';
                    return function () {
                      var o = Pe(this, e);
                      return o === s ? null : o === n ? r : (r = t((n = o), i));
                    };
                  })(e, n, t),
                  i
                ).on('end.style.' + e, null);
          },
          styleTween: function (e, t, i) {
            var n = 'style.' + (e += '');
            if (arguments.length < 2) return (n = this.tween(n)) && n._value;
            if (null == t) return this.tween(n, null);
            if ('function' != typeof t) throw new Error();
            return this.tween(n, Wn(e, t, null == i ? '' : i));
          },
          text: function (e) {
            return this.tween(
              'text',
              'function' == typeof e
                ? (function (e) {
                    return function () {
                      var t = e(this);
                      this.textContent = null == t ? '' : t;
                    };
                  })(bn(this, 'text', e))
                : (function (e) {
                    return function () {
                      this.textContent = e;
                    };
                  })(null == e ? '' : e + '')
            );
          },
          textTween: function (e) {
            var t = 'text';
            if (arguments.length < 1) return (t = this.tween(t)) && t._value;
            if (null == e) return this.tween(t, null);
            if ('function' != typeof e) throw new Error();
            return this.tween(t, Hn(e));
          },
          remove: function () {
            return this.on(
              'end.remove',
              (function (e) {
                return function () {
                  var t = this.parentNode;
                  for (var i in this.__transition) if (+i !== e) return;
                  t && t.removeChild(this);
                };
              })(this._id)
            );
          },
          tween: function (e, t) {
            var i = this._id;
            if (((e += ''), arguments.length < 2)) {
              for (
                var n, r = rn(this.node(), i).tween, s = 0, o = r.length;
                s < o;
                ++s
              )
                if ((n = r[s]).name === e) return n.value;
              return null;
            }
            return this.each((null == t ? mn : _n)(i, e, t));
          },
          delay: function (e) {
            var t = this._id;
            return arguments.length
              ? this.each(('function' == typeof e ? En : Tn)(t, e))
              : rn(this.node(), t).delay;
          },
          duration: function (e) {
            var t = this._id;
            return arguments.length
              ? this.each(('function' == typeof e ? In : On)(t, e))
              : rn(this.node(), t).duration;
          },
          ease: function (e) {
            var t = this._id;
            return arguments.length
              ? this.each(An(t, e))
              : rn(this.node(), t).ease;
          },
          end: function () {
            var e,
              t,
              i = this,
              n = i._id,
              r = i.size();
            return new Promise(function (s, o) {
              var a = { value: o },
                l = {
                  value: function () {
                    0 == --r && s();
                  },
                };
              i.each(function () {
                var i = nn(this, n),
                  r = i.on;
                r !== e &&
                  ((t = (e = r).copy())._.cancel.push(a),
                  t._.interrupt.push(a),
                  t._.end.push(l)),
                  (i.on = t);
              });
            });
          },
        };
        var Zn = { time: null, delay: 0, duration: 250, ease: Gn };
        function Jn(e, t) {
          for (var i; !(i = e.__transition) || !(i = i[t]); )
            if (!(e = e.parentNode)) return (Zn.time = Vi()), Zn;
          return i;
        }
        (St.prototype.interrupt = function (e) {
          return this.each(function () {
            sn(this, e);
          });
        }),
          (St.prototype.transition = function (e) {
            var t, i;
            e instanceof Vn
              ? ((t = e._id), (e = e._name))
              : ((t = Un()),
                ((i = Zn).time = Vi()),
                (e = null == e ? null : e + ''));
            for (var n = this._groups, r = n.length, s = 0; s < r; ++s)
              for (var o, a = n[s], l = a.length, c = 0; c < l; ++c)
                (o = a[c]) && en(o, e, t, c, a, i || Jn(o, t));
            return new Vn(n, this._parents, e, t);
          });
        var Qn = [null];
        function Xn(e, t) {
          var i,
            n,
            r = e.__transition;
          if (r)
            for (n in ((t = null == t ? null : t + ''), r))
              if ((i = r[n]).state > 1 && i.name === t)
                return new Vn([[e]], Qn, t, +n);
          return null;
        }
        function er(e) {
          return function () {
            return e;
          };
        }
        function tr(e, t, i) {
          (this.target = e), (this.type = t), (this.selection = i);
        }
        function ir() {
          dt.stopImmediatePropagation();
        }
        function nr() {
          dt.preventDefault(), dt.stopImmediatePropagation();
        }
        var rr = { name: 'drag' },
          sr = { name: 'space' },
          or = { name: 'handle' },
          ar = { name: 'center' };
        function lr(e) {
          return [+e[0], +e[1]];
        }
        function cr(e) {
          return [lr(e[0]), lr(e[1])];
        }
        function dr(e) {
          return function (t) {
            return Ti(t, dt.touches, e);
          };
        }
        var hr = {
            name: 'x',
            handles: ['w', 'e'].map(vr),
            input: function (e, t) {
              return null == e
                ? null
                : [
                    [+e[0], t[0][1]],
                    [+e[1], t[1][1]],
                  ];
            },
            output: function (e) {
              return e && [e[0][0], e[1][0]];
            },
          },
          ur = {
            name: 'y',
            handles: ['n', 's'].map(vr),
            input: function (e, t) {
              return null == e
                ? null
                : [
                    [t[0][0], +e[0]],
                    [t[1][0], +e[1]],
                  ];
            },
            output: function (e) {
              return e && [e[0][1], e[1][1]];
            },
          },
          gr = {
            name: 'xy',
            handles: ['n', 'w', 'e', 's', 'nw', 'ne', 'sw', 'se'].map(vr),
            input: function (e) {
              return null == e ? null : cr(e);
            },
            output: function (e) {
              return e;
            },
          },
          fr = {
            overlay: 'crosshair',
            selection: 'move',
            n: 'ns-resize',
            e: 'ew-resize',
            s: 'ns-resize',
            w: 'ew-resize',
            nw: 'nwse-resize',
            ne: 'nesw-resize',
            se: 'nwse-resize',
            sw: 'nesw-resize',
          },
          pr = { e: 'w', w: 'e', nw: 'ne', ne: 'nw', se: 'sw', sw: 'se' },
          mr = { n: 's', s: 'n', nw: 'sw', ne: 'se', se: 'ne', sw: 'nw' },
          _r = {
            overlay: 1,
            selection: 1,
            n: null,
            e: 1,
            s: null,
            w: -1,
            nw: -1,
            ne: 1,
            se: 1,
            sw: -1,
          },
          br = {
            overlay: 1,
            selection: 1,
            n: -1,
            e: null,
            s: 1,
            w: null,
            nw: -1,
            ne: -1,
            se: 1,
            sw: 1,
          };
        function vr(e) {
          return { type: e };
        }
        function yr() {
          return !dt.ctrlKey && !dt.button;
        }
        function wr() {
          var e = this.ownerSVGElement || this;
          return e.hasAttribute('viewBox')
            ? [
                [(e = e.viewBox.baseVal).x, e.y],
                [e.x + e.width, e.y + e.height],
              ]
            : [
                [0, 0],
                [e.width.baseVal.value, e.height.baseVal.value],
              ];
        }
        function Cr() {
          return navigator.maxTouchPoints || 'ontouchstart' in this;
        }
        function Sr(e) {
          for (; !e.__brush; ) if (!(e = e.parentNode)) return;
          return e.__brush;
        }
        function kr(e) {
          return e[0][0] === e[1][0] || e[0][1] === e[1][1];
        }
        function xr(e) {
          var t = e.__brush;
          return t ? t.dim.output(t.selection) : null;
        }
        function Lr() {
          return Nr(hr);
        }
        function Mr() {
          return Nr(ur);
        }
        function Dr() {
          return Nr(gr);
        }
        function Nr(e) {
          var t,
            i = wr,
            n = yr,
            r = Cr,
            s = !0,
            o = ue('start', 'brush', 'end'),
            a = 6;
          function l(t) {
            var i = t
              .property('__brush', p)
              .selectAll('.overlay')
              .data([vr('overlay')]);
            i
              .enter()
              .append('rect')
              .attr('class', 'overlay')
              .attr('pointer-events', 'all')
              .attr('cursor', fr.overlay)
              .merge(i)
              .each(function () {
                var e = Sr(this).extent;
                kt(this)
                  .attr('x', e[0][0])
                  .attr('y', e[0][1])
                  .attr('width', e[1][0] - e[0][0])
                  .attr('height', e[1][1] - e[0][1]);
              }),
              t
                .selectAll('.selection')
                .data([vr('selection')])
                .enter()
                .append('rect')
                .attr('class', 'selection')
                .attr('cursor', fr.selection)
                .attr('fill', '#777')
                .attr('fill-opacity', 0.3)
                .attr('stroke', '#fff')
                .attr('shape-rendering', 'crispEdges');
            var n = t.selectAll('.handle').data(e.handles, function (e) {
              return e.type;
            });
            n.exit().remove(),
              n
                .enter()
                .append('rect')
                .attr('class', function (e) {
                  return 'handle handle--' + e.type;
                })
                .attr('cursor', function (e) {
                  return fr[e.type];
                }),
              t
                .each(c)
                .attr('fill', 'none')
                .attr('pointer-events', 'all')
                .on('mousedown.brush', u)
                .filter(r)
                .on('touchstart.brush', u)
                .on('touchmove.brush', g)
                .on('touchend.brush touchcancel.brush', f)
                .style('touch-action', 'none')
                .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
          }
          function c() {
            var e = kt(this),
              t = Sr(this).selection;
            t
              ? (e
                  .selectAll('.selection')
                  .style('display', null)
                  .attr('x', t[0][0])
                  .attr('y', t[0][1])
                  .attr('width', t[1][0] - t[0][0])
                  .attr('height', t[1][1] - t[0][1]),
                e
                  .selectAll('.handle')
                  .style('display', null)
                  .attr('x', function (e) {
                    return 'e' === e.type[e.type.length - 1]
                      ? t[1][0] - a / 2
                      : t[0][0] - a / 2;
                  })
                  .attr('y', function (e) {
                    return 's' === e.type[0]
                      ? t[1][1] - a / 2
                      : t[0][1] - a / 2;
                  })
                  .attr('width', function (e) {
                    return 'n' === e.type || 's' === e.type
                      ? t[1][0] - t[0][0] + a
                      : a;
                  })
                  .attr('height', function (e) {
                    return 'e' === e.type || 'w' === e.type
                      ? t[1][1] - t[0][1] + a
                      : a;
                  }))
              : e
                  .selectAll('.selection,.handle')
                  .style('display', 'none')
                  .attr('x', null)
                  .attr('y', null)
                  .attr('width', null)
                  .attr('height', null);
          }
          function d(e, t, i) {
            return (!i && e.__brush.emitter) || new h(e, t);
          }
          function h(e, t) {
            (this.that = e),
              (this.args = t),
              (this.state = e.__brush),
              (this.active = 0);
          }
          function u() {
            if ((!t || dt.touches) && n.apply(this, arguments)) {
              var i,
                r,
                o,
                a,
                l,
                h,
                u,
                g,
                f,
                p,
                m,
                _ = this,
                b = dt.target.__data__.type,
                v =
                  'selection' === (s && dt.metaKey ? (b = 'overlay') : b)
                    ? rr
                    : s && dt.altKey
                    ? ar
                    : or,
                y = e === ur ? null : _r[b],
                w = e === hr ? null : br[b],
                C = Sr(_),
                S = C.extent,
                k = C.selection,
                x = S[0][0],
                L = S[0][1],
                M = S[1][0],
                D = S[1][1],
                N = 0,
                E = 0,
                T = y && w && s && dt.shiftKey,
                I = dt.touches ? dr(dt.changedTouches[0].identifier) : Ii,
                O = I(_),
                A = O,
                R = d(_, arguments, !0).beforestart();
              'overlay' === b
                ? (k && (f = !0),
                  (C.selection = k = [
                    [(i = e === ur ? x : O[0]), (o = e === hr ? L : O[1])],
                    [(l = e === ur ? M : i), (u = e === hr ? D : o)],
                  ]))
                : ((i = k[0][0]), (o = k[0][1]), (l = k[1][0]), (u = k[1][1])),
                (r = i),
                (a = o),
                (h = l),
                (g = u);
              var P = kt(_).attr('pointer-events', 'none'),
                F = P.selectAll('.overlay').attr('cursor', fr[b]);
              if (dt.touches) (R.moved = W), (R.ended = H);
              else {
                var B = kt(dt.view)
                  .on('mousemove.brush', W, !0)
                  .on('mouseup.brush', H, !0);
                s && B.on('keydown.brush', j, !0).on('keyup.brush', V, !0),
                  Mt(dt.view);
              }
              ir(), sn(_), c.call(_), R.start();
            }
            function W() {
              var e = I(_);
              !T ||
                p ||
                m ||
                (Math.abs(e[0] - A[0]) > Math.abs(e[1] - A[1])
                  ? (m = !0)
                  : (p = !0)),
                (A = e),
                (f = !0),
                nr(),
                Y();
            }
            function Y() {
              var e;
              switch (((N = A[0] - O[0]), (E = A[1] - O[1]), v)) {
                case sr:
                case rr:
                  y &&
                    ((N = Math.max(x - i, Math.min(M - l, N))),
                    (r = i + N),
                    (h = l + N)),
                    w &&
                      ((E = Math.max(L - o, Math.min(D - u, E))),
                      (a = o + E),
                      (g = u + E));
                  break;
                case or:
                  y < 0
                    ? ((N = Math.max(x - i, Math.min(M - i, N))),
                      (r = i + N),
                      (h = l))
                    : y > 0 &&
                      ((N = Math.max(x - l, Math.min(M - l, N))),
                      (r = i),
                      (h = l + N)),
                    w < 0
                      ? ((E = Math.max(L - o, Math.min(D - o, E))),
                        (a = o + E),
                        (g = u))
                      : w > 0 &&
                        ((E = Math.max(L - u, Math.min(D - u, E))),
                        (a = o),
                        (g = u + E));
                  break;
                case ar:
                  y &&
                    ((r = Math.max(x, Math.min(M, i - N * y))),
                    (h = Math.max(x, Math.min(M, l + N * y)))),
                    w &&
                      ((a = Math.max(L, Math.min(D, o - E * w))),
                      (g = Math.max(L, Math.min(D, u + E * w))));
              }
              h < r &&
                ((y *= -1),
                (e = i),
                (i = l),
                (l = e),
                (e = r),
                (r = h),
                (h = e),
                b in pr && F.attr('cursor', fr[(b = pr[b])])),
                g < a &&
                  ((w *= -1),
                  (e = o),
                  (o = u),
                  (u = e),
                  (e = a),
                  (a = g),
                  (g = e),
                  b in mr && F.attr('cursor', fr[(b = mr[b])])),
                C.selection && (k = C.selection),
                p && ((r = k[0][0]), (h = k[1][0])),
                m && ((a = k[0][1]), (g = k[1][1])),
                (k[0][0] === r &&
                  k[0][1] === a &&
                  k[1][0] === h &&
                  k[1][1] === g) ||
                  ((C.selection = [
                    [r, a],
                    [h, g],
                  ]),
                  c.call(_),
                  R.brush());
            }
            function H() {
              if ((ir(), dt.touches)) {
                if (dt.touches.length) return;
                t && clearTimeout(t),
                  (t = setTimeout(function () {
                    t = null;
                  }, 500));
              } else
                Dt(dt.view, f),
                  B.on(
                    'keydown.brush keyup.brush mousemove.brush mouseup.brush',
                    null
                  );
              P.attr('pointer-events', 'all'),
                F.attr('cursor', fr.overlay),
                C.selection && (k = C.selection),
                kr(k) && ((C.selection = null), c.call(_)),
                R.end();
            }
            function j() {
              switch (dt.keyCode) {
                case 16:
                  T = y && w;
                  break;
                case 18:
                  v === or &&
                    (y && ((l = h - N * y), (i = r + N * y)),
                    w && ((u = g - E * w), (o = a + E * w)),
                    (v = ar),
                    Y());
                  break;
                case 32:
                  (v !== or && v !== ar) ||
                    (y < 0 ? (l = h - N) : y > 0 && (i = r - N),
                    w < 0 ? (u = g - E) : w > 0 && (o = a - E),
                    (v = sr),
                    F.attr('cursor', fr.selection),
                    Y());
                  break;
                default:
                  return;
              }
              nr();
            }
            function V() {
              switch (dt.keyCode) {
                case 16:
                  T && ((p = m = T = !1), Y());
                  break;
                case 18:
                  v === ar &&
                    (y < 0 ? (l = h) : y > 0 && (i = r),
                    w < 0 ? (u = g) : w > 0 && (o = a),
                    (v = or),
                    Y());
                  break;
                case 32:
                  v === sr &&
                    (dt.altKey
                      ? (y && ((l = h - N * y), (i = r + N * y)),
                        w && ((u = g - E * w), (o = a + E * w)),
                        (v = ar))
                      : (y < 0 ? (l = h) : y > 0 && (i = r),
                        w < 0 ? (u = g) : w > 0 && (o = a),
                        (v = or)),
                    F.attr('cursor', fr[b]),
                    Y());
                  break;
                default:
                  return;
              }
              nr();
            }
          }
          function g() {
            d(this, arguments).moved();
          }
          function f() {
            d(this, arguments).ended();
          }
          function p() {
            var t = this.__brush || { selection: null };
            return (t.extent = cr(i.apply(this, arguments))), (t.dim = e), t;
          }
          return (
            (l.move = function (t, i) {
              t.selection
                ? t
                    .on('start.brush', function () {
                      d(this, arguments).beforestart().start();
                    })
                    .on('interrupt.brush end.brush', function () {
                      d(this, arguments).end();
                    })
                    .tween('brush', function () {
                      var t = this,
                        n = t.__brush,
                        r = d(t, arguments),
                        s = n.selection,
                        o = e.input(
                          'function' == typeof i ? i.apply(this, arguments) : i,
                          n.extent
                        ),
                        a = Di(s, o);
                      function l(e) {
                        (n.selection = 1 === e && null === o ? null : a(e)),
                          c.call(t),
                          r.brush();
                      }
                      return null !== s && null !== o ? l : l(1);
                    })
                : t.each(function () {
                    var t = this,
                      n = arguments,
                      r = t.__brush,
                      s = e.input(
                        'function' == typeof i ? i.apply(t, n) : i,
                        r.extent
                      ),
                      o = d(t, n).beforestart();
                    sn(t),
                      (r.selection = null === s ? null : s),
                      c.call(t),
                      o.start().brush().end();
                  });
            }),
            (l.clear = function (e) {
              l.move(e, null);
            }),
            (h.prototype = {
              beforestart: function () {
                return (
                  1 == ++this.active &&
                    ((this.state.emitter = this), (this.starting = !0)),
                  this
                );
              },
              start: function () {
                return (
                  this.starting
                    ? ((this.starting = !1), this.emit('start'))
                    : this.emit('brush'),
                  this
                );
              },
              brush: function () {
                return this.emit('brush'), this;
              },
              end: function () {
                return (
                  0 == --this.active &&
                    (delete this.state.emitter, this.emit('end')),
                  this
                );
              },
              emit: function (t) {
                mt(new tr(l, t, e.output(this.state.selection)), o.apply, o, [
                  t,
                  this.that,
                  this.args,
                ]);
              },
            }),
            (l.extent = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : er(cr(e))), l)
                : i;
            }),
            (l.filter = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : er(!!e)), l)
                : n;
            }),
            (l.touchable = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : er(!!e)), l)
                : r;
            }),
            (l.handleSize = function (e) {
              return arguments.length ? ((a = +e), l) : a;
            }),
            (l.keyModifiers = function (e) {
              return arguments.length ? ((s = !!e), l) : s;
            }),
            (l.on = function () {
              var e = o.on.apply(o, arguments);
              return e === o ? l : e;
            }),
            l
          );
        }
        var Er = Math.cos,
          Tr = Math.sin,
          Ir = Math.PI,
          Or = Ir / 2,
          Ar = 2 * Ir,
          Rr = Math.max;
        function Pr(e) {
          return function (t, i) {
            return e(
              t.source.value + t.target.value,
              i.source.value + i.target.value
            );
          };
        }
        function Fr() {
          var e = 0,
            t = null,
            i = null,
            n = null;
          function r(r) {
            var s,
              o,
              a,
              l,
              c,
              d,
              h = r.length,
              u = [],
              g = S(h),
              f = [],
              p = [],
              m = (p.groups = new Array(h)),
              _ = new Array(h * h);
            for (s = 0, c = -1; ++c < h; ) {
              for (o = 0, d = -1; ++d < h; ) o += r[c][d];
              u.push(o), f.push(S(h)), (s += o);
            }
            for (
              t &&
                g.sort(function (e, i) {
                  return t(u[e], u[i]);
                }),
                i &&
                  f.forEach(function (e, t) {
                    e.sort(function (e, n) {
                      return i(r[t][e], r[t][n]);
                    });
                  }),
                l = (s = Rr(0, Ar - e * h) / s) ? e : Ar / h,
                o = 0,
                c = -1;
              ++c < h;

            ) {
              for (a = o, d = -1; ++d < h; ) {
                var b = g[c],
                  v = f[b][d],
                  y = r[b][v],
                  w = o,
                  C = (o += y * s);
                _[v * h + b] = {
                  index: b,
                  subindex: v,
                  startAngle: w,
                  endAngle: C,
                  value: y,
                };
              }
              (m[b] = { index: b, startAngle: a, endAngle: o, value: u[b] }),
                (o += l);
            }
            for (c = -1; ++c < h; )
              for (d = c - 1; ++d < h; ) {
                var k = _[d * h + c],
                  x = _[c * h + d];
                (k.value || x.value) &&
                  p.push(
                    k.value < x.value
                      ? { source: x, target: k }
                      : { source: k, target: x }
                  );
              }
            return n ? p.sort(n) : p;
          }
          return (
            (r.padAngle = function (t) {
              return arguments.length ? ((e = Rr(0, t)), r) : e;
            }),
            (r.sortGroups = function (e) {
              return arguments.length ? ((t = e), r) : t;
            }),
            (r.sortSubgroups = function (e) {
              return arguments.length ? ((i = e), r) : i;
            }),
            (r.sortChords = function (e) {
              return arguments.length
                ? (null == e ? (n = null) : ((n = Pr(e))._ = e), r)
                : n && n._;
            }),
            r
          );
        }
        var Br = Array.prototype.slice;
        function Wr(e) {
          return function () {
            return e;
          };
        }
        var Yr = Math.PI,
          Hr = 2 * Yr,
          jr = 1e-6,
          Vr = Hr - jr;
        function zr() {
          (this._x0 = this._y0 = this._x1 = this._y1 = null), (this._ = '');
        }
        function Ur() {
          return new zr();
        }
        zr.prototype = Ur.prototype = {
          constructor: zr,
          moveTo: function (e, t) {
            this._ +=
              'M' +
              (this._x0 = this._x1 = +e) +
              ',' +
              (this._y0 = this._y1 = +t);
          },
          closePath: function () {
            null !== this._x1 &&
              ((this._x1 = this._x0), (this._y1 = this._y0), (this._ += 'Z'));
          },
          lineTo: function (e, t) {
            this._ += 'L' + (this._x1 = +e) + ',' + (this._y1 = +t);
          },
          quadraticCurveTo: function (e, t, i, n) {
            this._ +=
              'Q' +
              +e +
              ',' +
              +t +
              ',' +
              (this._x1 = +i) +
              ',' +
              (this._y1 = +n);
          },
          bezierCurveTo: function (e, t, i, n, r, s) {
            this._ +=
              'C' +
              +e +
              ',' +
              +t +
              ',' +
              +i +
              ',' +
              +n +
              ',' +
              (this._x1 = +r) +
              ',' +
              (this._y1 = +s);
          },
          arcTo: function (e, t, i, n, r) {
            (e = +e), (t = +t), (i = +i), (n = +n), (r = +r);
            var s = this._x1,
              o = this._y1,
              a = i - e,
              l = n - t,
              c = s - e,
              d = o - t,
              h = c * c + d * d;
            if (r < 0) throw new Error('negative radius: ' + r);
            if (null === this._x1)
              this._ += 'M' + (this._x1 = e) + ',' + (this._y1 = t);
            else if (h > jr)
              if (Math.abs(d * a - l * c) > jr && r) {
                var u = i - s,
                  g = n - o,
                  f = a * a + l * l,
                  p = u * u + g * g,
                  m = Math.sqrt(f),
                  _ = Math.sqrt(h),
                  b =
                    r *
                    Math.tan((Yr - Math.acos((f + h - p) / (2 * m * _))) / 2),
                  v = b / _,
                  y = b / m;
                Math.abs(v - 1) > jr &&
                  (this._ += 'L' + (e + v * c) + ',' + (t + v * d)),
                  (this._ +=
                    'A' +
                    r +
                    ',' +
                    r +
                    ',0,0,' +
                    +(d * u > c * g) +
                    ',' +
                    (this._x1 = e + y * a) +
                    ',' +
                    (this._y1 = t + y * l));
              } else this._ += 'L' + (this._x1 = e) + ',' + (this._y1 = t);
          },
          arc: function (e, t, i, n, r, s) {
            (e = +e), (t = +t), (s = !!s);
            var o = (i = +i) * Math.cos(n),
              a = i * Math.sin(n),
              l = e + o,
              c = t + a,
              d = 1 ^ s,
              h = s ? n - r : r - n;
            if (i < 0) throw new Error('negative radius: ' + i);
            null === this._x1
              ? (this._ += 'M' + l + ',' + c)
              : (Math.abs(this._x1 - l) > jr || Math.abs(this._y1 - c) > jr) &&
                (this._ += 'L' + l + ',' + c),
              i &&
                (h < 0 && (h = (h % Hr) + Hr),
                h > Vr
                  ? (this._ +=
                      'A' +
                      i +
                      ',' +
                      i +
                      ',0,1,' +
                      d +
                      ',' +
                      (e - o) +
                      ',' +
                      (t - a) +
                      'A' +
                      i +
                      ',' +
                      i +
                      ',0,1,' +
                      d +
                      ',' +
                      (this._x1 = l) +
                      ',' +
                      (this._y1 = c))
                  : h > jr &&
                    (this._ +=
                      'A' +
                      i +
                      ',' +
                      i +
                      ',0,' +
                      +(h >= Yr) +
                      ',' +
                      d +
                      ',' +
                      (this._x1 = e + i * Math.cos(r)) +
                      ',' +
                      (this._y1 = t + i * Math.sin(r))));
          },
          rect: function (e, t, i, n) {
            this._ +=
              'M' +
              (this._x0 = this._x1 = +e) +
              ',' +
              (this._y0 = this._y1 = +t) +
              'h' +
              +i +
              'v' +
              +n +
              'h' +
              -i +
              'Z';
          },
          toString: function () {
            return this._;
          },
        };
        const $r = Ur;
        function Kr(e) {
          return e.source;
        }
        function qr(e) {
          return e.target;
        }
        function Gr(e) {
          return e.radius;
        }
        function Zr(e) {
          return e.startAngle;
        }
        function Jr(e) {
          return e.endAngle;
        }
        function Qr() {
          var e = Kr,
            t = qr,
            i = Gr,
            n = Zr,
            r = Jr,
            s = null;
          function o() {
            var o,
              a = Br.call(arguments),
              l = e.apply(this, a),
              c = t.apply(this, a),
              d = +i.apply(this, ((a[0] = l), a)),
              h = n.apply(this, a) - Or,
              u = r.apply(this, a) - Or,
              g = d * Er(h),
              f = d * Tr(h),
              p = +i.apply(this, ((a[0] = c), a)),
              m = n.apply(this, a) - Or,
              _ = r.apply(this, a) - Or;
            if (
              (s || (s = o = $r()),
              s.moveTo(g, f),
              s.arc(0, 0, d, h, u),
              (h === m && u === _) ||
                (s.quadraticCurveTo(0, 0, p * Er(m), p * Tr(m)),
                s.arc(0, 0, p, m, _)),
              s.quadraticCurveTo(0, 0, g, f),
              s.closePath(),
              o)
            )
              return (s = null), o + '' || null;
          }
          return (
            (o.radius = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : Wr(+e)), o)
                : i;
            }),
            (o.startAngle = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : Wr(+e)), o)
                : n;
            }),
            (o.endAngle = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : Wr(+e)), o)
                : r;
            }),
            (o.source = function (t) {
              return arguments.length ? ((e = t), o) : e;
            }),
            (o.target = function (e) {
              return arguments.length ? ((t = e), o) : t;
            }),
            (o.context = function (e) {
              return arguments.length ? ((s = null == e ? null : e), o) : s;
            }),
            o
          );
        }
        var Xr = '$';
        function es() {}
        function ts(e, t) {
          var i = new es();
          if (e instanceof es)
            e.each(function (e, t) {
              i.set(t, e);
            });
          else if (Array.isArray(e)) {
            var n,
              r = -1,
              s = e.length;
            if (null == t) for (; ++r < s; ) i.set(r, e[r]);
            else for (; ++r < s; ) i.set(t((n = e[r]), r, e), n);
          } else if (e) for (var o in e) i.set(o, e[o]);
          return i;
        }
        es.prototype = ts.prototype = {
          constructor: es,
          has: function (e) {
            return Xr + e in this;
          },
          get: function (e) {
            return this[Xr + e];
          },
          set: function (e, t) {
            return (this[Xr + e] = t), this;
          },
          remove: function (e) {
            var t = Xr + e;
            return t in this && delete this[t];
          },
          clear: function () {
            for (var e in this) e[0] === Xr && delete this[e];
          },
          keys: function () {
            var e = [];
            for (var t in this) t[0] === Xr && e.push(t.slice(1));
            return e;
          },
          values: function () {
            var e = [];
            for (var t in this) t[0] === Xr && e.push(this[t]);
            return e;
          },
          entries: function () {
            var e = [];
            for (var t in this)
              t[0] === Xr && e.push({ key: t.slice(1), value: this[t] });
            return e;
          },
          size: function () {
            var e = 0;
            for (var t in this) t[0] === Xr && ++e;
            return e;
          },
          empty: function () {
            for (var e in this) if (e[0] === Xr) return !1;
            return !0;
          },
          each: function (e) {
            for (var t in this) t[0] === Xr && e(this[t], t.slice(1), this);
          },
        };
        const is = ts;
        function ns() {
          var e,
            t,
            i,
            n = [],
            r = [];
          function s(i, r, o, a) {
            if (r >= n.length)
              return null != e && i.sort(e), null != t ? t(i) : i;
            for (
              var l, c, d, h = -1, u = i.length, g = n[r++], f = is(), p = o();
              ++h < u;

            )
              (d = f.get((l = g((c = i[h])) + ''))) ? d.push(c) : f.set(l, [c]);
            return (
              f.each(function (e, t) {
                a(p, t, s(e, r, o, a));
              }),
              p
            );
          }
          function o(e, i) {
            if (++i > n.length) return e;
            var s,
              a = r[i - 1];
            return (
              null != t && i >= n.length
                ? (s = e.entries())
                : ((s = []),
                  e.each(function (e, t) {
                    s.push({ key: t, values: o(e, i) });
                  })),
              null != a
                ? s.sort(function (e, t) {
                    return a(e.key, t.key);
                  })
                : s
            );
          }
          return (i = {
            object: function (e) {
              return s(e, 0, rs, ss);
            },
            map: function (e) {
              return s(e, 0, os, as);
            },
            entries: function (e) {
              return o(s(e, 0, os, as), 0);
            },
            key: function (e) {
              return n.push(e), i;
            },
            sortKeys: function (e) {
              return (r[n.length - 1] = e), i;
            },
            sortValues: function (t) {
              return (e = t), i;
            },
            rollup: function (e) {
              return (t = e), i;
            },
          });
        }
        function rs() {
          return {};
        }
        function ss(e, t, i) {
          e[t] = i;
        }
        function os() {
          return is();
        }
        function as(e, t, i) {
          e.set(t, i);
        }
        function ls() {}
        var cs = is.prototype;
        function ds(e, t) {
          var i = new ls();
          if (e instanceof ls)
            e.each(function (e) {
              i.add(e);
            });
          else if (e) {
            var n = -1,
              r = e.length;
            if (null == t) for (; ++n < r; ) i.add(e[n]);
            else for (; ++n < r; ) i.add(t(e[n], n, e));
          }
          return i;
        }
        ls.prototype = ds.prototype = {
          constructor: ls,
          has: cs.has,
          add: function (e) {
            return (this[Xr + (e += '')] = e), this;
          },
          remove: cs.remove,
          clear: cs.clear,
          values: cs.keys,
          size: cs.size,
          empty: cs.empty,
          each: cs.each,
        };
        const hs = ds;
        function us(e) {
          var t = [];
          for (var i in e) t.push(i);
          return t;
        }
        function gs(e) {
          var t = [];
          for (var i in e) t.push(e[i]);
          return t;
        }
        function fs(e) {
          var t = [];
          for (var i in e) t.push({ key: i, value: e[i] });
          return t;
        }
        var ps = Math.PI / 180,
          ms = 180 / Math.PI,
          _s = 0.96422,
          bs = 0.82521,
          vs = 4 / 29,
          ys = 6 / 29,
          ws = 3 * ys * ys;
        function Cs(e) {
          if (e instanceof xs) return new xs(e.l, e.a, e.b, e.opacity);
          if (e instanceof Os) return As(e);
          e instanceof Qt || (e = Zt(e));
          var t,
            i,
            n = Ns(e.r),
            r = Ns(e.g),
            s = Ns(e.b),
            o = Ls((0.2225045 * n + 0.7168786 * r + 0.0606169 * s) / 1);
          return (
            n === r && r === s
              ? (t = i = o)
              : ((t = Ls((0.4360747 * n + 0.3850649 * r + 0.1430804 * s) / _s)),
                (i = Ls((0.0139322 * n + 0.0971045 * r + 0.7141733 * s) / bs))),
            new xs(116 * o - 16, 500 * (t - o), 200 * (o - i), e.opacity)
          );
        }
        function Ss(e, t) {
          return new xs(e, 0, 0, null == t ? 1 : t);
        }
        function ks(e, t, i, n) {
          return 1 === arguments.length
            ? Cs(e)
            : new xs(e, t, i, null == n ? 1 : n);
        }
        function xs(e, t, i, n) {
          (this.l = +e), (this.a = +t), (this.b = +i), (this.opacity = +n);
        }
        function Ls(e) {
          return e > 0.008856451679035631 ? Math.pow(e, 1 / 3) : e / ws + vs;
        }
        function Ms(e) {
          return e > ys ? e * e * e : ws * (e - vs);
        }
        function Ds(e) {
          return (
            255 *
            (e <= 0.0031308 ? 12.92 * e : 1.055 * Math.pow(e, 1 / 2.4) - 0.055)
          );
        }
        function Ns(e) {
          return (e /= 255) <= 0.04045
            ? e / 12.92
            : Math.pow((e + 0.055) / 1.055, 2.4);
        }
        function Es(e) {
          if (e instanceof Os) return new Os(e.h, e.c, e.l, e.opacity);
          if ((e instanceof xs || (e = Cs(e)), 0 === e.a && 0 === e.b))
            return new Os(NaN, 0 < e.l && e.l < 100 ? 0 : NaN, e.l, e.opacity);
          var t = Math.atan2(e.b, e.a) * ms;
          return new Os(
            t < 0 ? t + 360 : t,
            Math.sqrt(e.a * e.a + e.b * e.b),
            e.l,
            e.opacity
          );
        }
        function Ts(e, t, i, n) {
          return 1 === arguments.length
            ? Es(e)
            : new Os(i, t, e, null == n ? 1 : n);
        }
        function Is(e, t, i, n) {
          return 1 === arguments.length
            ? Es(e)
            : new Os(e, t, i, null == n ? 1 : n);
        }
        function Os(e, t, i, n) {
          (this.h = +e), (this.c = +t), (this.l = +i), (this.opacity = +n);
        }
        function As(e) {
          if (isNaN(e.h)) return new xs(e.l, 0, 0, e.opacity);
          var t = e.h * ps;
          return new xs(e.l, Math.cos(t) * e.c, Math.sin(t) * e.c, e.opacity);
        }
        Nt(
          xs,
          ks,
          Et(Tt, {
            brighter: function (e) {
              return new xs(
                this.l + 18 * (null == e ? 1 : e),
                this.a,
                this.b,
                this.opacity
              );
            },
            darker: function (e) {
              return new xs(
                this.l - 18 * (null == e ? 1 : e),
                this.a,
                this.b,
                this.opacity
              );
            },
            rgb: function () {
              var e = (this.l + 16) / 116,
                t = isNaN(this.a) ? e : e + this.a / 500,
                i = isNaN(this.b) ? e : e - this.b / 200;
              return new Qt(
                Ds(
                  3.1338561 * (t = _s * Ms(t)) -
                    1.6168667 * (e = 1 * Ms(e)) -
                    0.4906146 * (i = bs * Ms(i))
                ),
                Ds(-0.9787684 * t + 1.9161415 * e + 0.033454 * i),
                Ds(0.0719453 * t - 0.2289914 * e + 1.4052427 * i),
                this.opacity
              );
            },
          })
        ),
          Nt(
            Os,
            Is,
            Et(Tt, {
              brighter: function (e) {
                return new Os(
                  this.h,
                  this.c,
                  this.l + 18 * (null == e ? 1 : e),
                  this.opacity
                );
              },
              darker: function (e) {
                return new Os(
                  this.h,
                  this.c,
                  this.l - 18 * (null == e ? 1 : e),
                  this.opacity
                );
              },
              rgb: function () {
                return As(this).rgb();
              },
            })
          );
        var Rs = -0.14861,
          Ps = 1.78277,
          Fs = -0.29227,
          Bs = -0.90649,
          Ws = 1.97294,
          Ys = Ws * Bs,
          Hs = Ws * Ps,
          js = Ps * Fs - Bs * Rs;
        function Vs(e) {
          if (e instanceof Us) return new Us(e.h, e.s, e.l, e.opacity);
          e instanceof Qt || (e = Zt(e));
          var t = e.r / 255,
            i = e.g / 255,
            n = e.b / 255,
            r = (js * n + Ys * t - Hs * i) / (js + Ys - Hs),
            s = n - r,
            o = (Ws * (i - r) - Fs * s) / Bs,
            a = Math.sqrt(o * o + s * s) / (Ws * r * (1 - r)),
            l = a ? Math.atan2(o, s) * ms - 120 : NaN;
          return new Us(l < 0 ? l + 360 : l, a, r, e.opacity);
        }
        function zs(e, t, i, n) {
          return 1 === arguments.length
            ? Vs(e)
            : new Us(e, t, i, null == n ? 1 : n);
        }
        function Us(e, t, i, n) {
          (this.h = +e), (this.s = +t), (this.l = +i), (this.opacity = +n);
        }
        Nt(
          Us,
          zs,
          Et(Tt, {
            brighter: function (e) {
              return (
                (e = null == e ? Ot : Math.pow(Ot, e)),
                new Us(this.h, this.s, this.l * e, this.opacity)
              );
            },
            darker: function (e) {
              return (
                (e = null == e ? It : Math.pow(It, e)),
                new Us(this.h, this.s, this.l * e, this.opacity)
              );
            },
            rgb: function () {
              var e = isNaN(this.h) ? 0 : (this.h + 120) * ps,
                t = +this.l,
                i = isNaN(this.s) ? 0 : this.s * t * (1 - t),
                n = Math.cos(e),
                r = Math.sin(e);
              return new Qt(
                255 * (t + i * (Rs * n + Ps * r)),
                255 * (t + i * (Fs * n + Bs * r)),
                255 * (t + i * (Ws * n)),
                this.opacity
              );
            },
          })
        );
        var $s = Array.prototype.slice;
        function Ks(e, t) {
          return e - t;
        }
        function qs(e) {
          return function () {
            return e;
          };
        }
        function Gs(e, t) {
          for (var i, n = -1, r = t.length; ++n < r; )
            if ((i = Zs(e, t[n]))) return i;
          return 0;
        }
        function Zs(e, t) {
          for (
            var i = t[0], n = t[1], r = -1, s = 0, o = e.length, a = o - 1;
            s < o;
            a = s++
          ) {
            var l = e[s],
              c = l[0],
              d = l[1],
              h = e[a],
              u = h[0],
              g = h[1];
            if (Js(l, h, t)) return 0;
            d > n != g > n && i < ((u - c) * (n - d)) / (g - d) + c && (r = -r);
          }
          return r;
        }
        function Js(e, t, i) {
          var n, r, s, o;
          return (
            (function (e, t, i) {
              return (
                (t[0] - e[0]) * (i[1] - e[1]) == (i[0] - e[0]) * (t[1] - e[1])
              );
            })(e, t, i) &&
            ((r = e[(n = +(e[0] === t[0]))]),
            (s = i[n]),
            (o = t[n]),
            (r <= s && s <= o) || (o <= s && s <= r))
          );
        }
        function Qs() {}
        var Xs = [
          [],
          [
            [
              [1, 1.5],
              [0.5, 1],
            ],
          ],
          [
            [
              [1.5, 1],
              [1, 1.5],
            ],
          ],
          [
            [
              [1.5, 1],
              [0.5, 1],
            ],
          ],
          [
            [
              [1, 0.5],
              [1.5, 1],
            ],
          ],
          [
            [
              [1, 1.5],
              [0.5, 1],
            ],
            [
              [1, 0.5],
              [1.5, 1],
            ],
          ],
          [
            [
              [1, 0.5],
              [1, 1.5],
            ],
          ],
          [
            [
              [1, 0.5],
              [0.5, 1],
            ],
          ],
          [
            [
              [0.5, 1],
              [1, 0.5],
            ],
          ],
          [
            [
              [1, 1.5],
              [1, 0.5],
            ],
          ],
          [
            [
              [0.5, 1],
              [1, 0.5],
            ],
            [
              [1.5, 1],
              [1, 1.5],
            ],
          ],
          [
            [
              [1.5, 1],
              [1, 0.5],
            ],
          ],
          [
            [
              [0.5, 1],
              [1.5, 1],
            ],
          ],
          [
            [
              [1, 1.5],
              [1.5, 1],
            ],
          ],
          [
            [
              [0.5, 1],
              [1, 1.5],
            ],
          ],
          [],
        ];
        function eo() {
          var e = 1,
            t = 1,
            i = E,
            n = a;
          function r(e) {
            var t = i(e);
            if (Array.isArray(t)) t = t.slice().sort(Ks);
            else {
              var n = _(e),
                r = n[0],
                o = n[1];
              (t = N(r, o, t)),
                (t = S(Math.floor(r / t) * t, Math.floor(o / t) * t, t));
            }
            return t.map(function (t) {
              return s(e, t);
            });
          }
          function s(i, r) {
            var s = [],
              a = [];
            return (
              (function (i, n, r) {
                var s,
                  a,
                  l,
                  c,
                  d,
                  h,
                  u = new Array(),
                  g = new Array();
                for (
                  s = a = -1, c = i[0] >= n, Xs[c << 1].forEach(f);
                  ++s < e - 1;

                )
                  (l = c), (c = i[s + 1] >= n), Xs[l | (c << 1)].forEach(f);
                for (Xs[c << 0].forEach(f); ++a < t - 1; ) {
                  for (
                    s = -1,
                      c = i[a * e + e] >= n,
                      d = i[a * e] >= n,
                      Xs[(c << 1) | (d << 2)].forEach(f);
                    ++s < e - 1;

                  )
                    (l = c),
                      (c = i[a * e + e + s + 1] >= n),
                      (h = d),
                      (d = i[a * e + s + 1] >= n),
                      Xs[l | (c << 1) | (d << 2) | (h << 3)].forEach(f);
                  Xs[c | (d << 3)].forEach(f);
                }
                for (
                  s = -1, d = i[a * e] >= n, Xs[d << 2].forEach(f);
                  ++s < e - 1;

                )
                  (h = d),
                    (d = i[a * e + s + 1] >= n),
                    Xs[(d << 2) | (h << 3)].forEach(f);
                function f(e) {
                  var t,
                    i,
                    n = [e[0][0] + s, e[0][1] + a],
                    l = [e[1][0] + s, e[1][1] + a],
                    c = o(n),
                    d = o(l);
                  (t = g[c])
                    ? (i = u[d])
                      ? (delete g[t.end],
                        delete u[i.start],
                        t === i
                          ? (t.ring.push(l), r(t.ring))
                          : (u[t.start] = g[i.end] = {
                              start: t.start,
                              end: i.end,
                              ring: t.ring.concat(i.ring),
                            }))
                      : (delete g[t.end], t.ring.push(l), (g[(t.end = d)] = t))
                    : (t = u[d])
                    ? (i = g[c])
                      ? (delete u[t.start],
                        delete g[i.end],
                        t === i
                          ? (t.ring.push(l), r(t.ring))
                          : (u[i.start] = g[t.end] = {
                              start: i.start,
                              end: t.end,
                              ring: i.ring.concat(t.ring),
                            }))
                      : (delete u[t.start],
                        t.ring.unshift(n),
                        (u[(t.start = c)] = t))
                    : (u[c] = g[d] = { start: c, end: d, ring: [n, l] });
                }
                Xs[d << 3].forEach(f);
              })(i, r, function (e) {
                n(e, i, r),
                  (function (e) {
                    for (
                      var t = 0,
                        i = e.length,
                        n = e[i - 1][1] * e[0][0] - e[i - 1][0] * e[0][1];
                      ++t < i;

                    )
                      n += e[t - 1][1] * e[t][0] - e[t - 1][0] * e[t][1];
                    return n;
                  })(e) > 0
                    ? s.push([e])
                    : a.push(e);
              }),
              a.forEach(function (e) {
                for (var t, i = 0, n = s.length; i < n; ++i)
                  if (-1 !== Gs((t = s[i])[0], e)) return void t.push(e);
              }),
              { type: 'MultiPolygon', value: r, coordinates: s }
            );
          }
          function o(t) {
            return 2 * t[0] + t[1] * (e + 1) * 4;
          }
          function a(i, n, r) {
            i.forEach(function (i) {
              var s,
                o = i[0],
                a = i[1],
                l = 0 | o,
                c = 0 | a,
                d = n[c * e + l];
              o > 0 &&
                o < e &&
                l === o &&
                ((s = n[c * e + l - 1]), (i[0] = o + (r - s) / (d - s) - 0.5)),
                a > 0 &&
                  a < t &&
                  c === a &&
                  ((s = n[(c - 1) * e + l]),
                  (i[1] = a + (r - s) / (d - s) - 0.5));
            });
          }
          return (
            (r.contour = s),
            (r.size = function (i) {
              if (!arguments.length) return [e, t];
              var n = Math.ceil(i[0]),
                s = Math.ceil(i[1]);
              if (!(n > 0 && s > 0)) throw new Error('invalid size');
              return (e = n), (t = s), r;
            }),
            (r.thresholds = function (e) {
              return arguments.length
                ? ((i =
                    'function' == typeof e
                      ? e
                      : Array.isArray(e)
                      ? qs($s.call(e))
                      : qs(e)),
                  r)
                : i;
            }),
            (r.smooth = function (e) {
              return arguments.length ? ((n = e ? a : Qs), r) : n === a;
            }),
            r
          );
        }
        function to(e, t, i) {
          for (
            var n = e.width, r = e.height, s = 1 + (i << 1), o = 0;
            o < r;
            ++o
          )
            for (var a = 0, l = 0; a < n + i; ++a)
              a < n && (l += e.data[a + o * n]),
                a >= i &&
                  (a >= s && (l -= e.data[a - s + o * n]),
                  (t.data[a - i + o * n] =
                    l / Math.min(a + 1, n - 1 + s - a, s)));
        }
        function io(e, t, i) {
          for (
            var n = e.width, r = e.height, s = 1 + (i << 1), o = 0;
            o < n;
            ++o
          )
            for (var a = 0, l = 0; a < r + i; ++a)
              a < r && (l += e.data[o + a * n]),
                a >= i &&
                  (a >= s && (l -= e.data[o + (a - s) * n]),
                  (t.data[o + (a - i) * n] =
                    l / Math.min(a + 1, r - 1 + s - a, s)));
        }
        function no(e) {
          return e[0];
        }
        function ro(e) {
          return e[1];
        }
        function so() {
          return 1;
        }
        function oo() {
          var e = no,
            t = ro,
            i = so,
            n = 960,
            r = 500,
            s = 20,
            o = 2,
            a = 3 * s,
            l = (n + 2 * a) >> o,
            c = (r + 2 * a) >> o,
            d = qs(20);
          function h(n) {
            var r = new Float32Array(l * c),
              h = new Float32Array(l * c);
            n.forEach(function (n, s, d) {
              var h = (+e(n, s, d) + a) >> o,
                u = (+t(n, s, d) + a) >> o,
                g = +i(n, s, d);
              h >= 0 && h < l && u >= 0 && u < c && (r[h + u * l] += g);
            }),
              to(
                { width: l, height: c, data: r },
                { width: l, height: c, data: h },
                s >> o
              ),
              io(
                { width: l, height: c, data: h },
                { width: l, height: c, data: r },
                s >> o
              ),
              to(
                { width: l, height: c, data: r },
                { width: l, height: c, data: h },
                s >> o
              ),
              io(
                { width: l, height: c, data: h },
                { width: l, height: c, data: r },
                s >> o
              ),
              to(
                { width: l, height: c, data: r },
                { width: l, height: c, data: h },
                s >> o
              ),
              io(
                { width: l, height: c, data: h },
                { width: l, height: c, data: r },
                s >> o
              );
            var g = d(r);
            if (!Array.isArray(g)) {
              var f = R(r);
              (g = N(0, f, g)), (g = S(0, Math.floor(f / g) * g, g)).shift();
            }
            return eo().thresholds(g).size([l, c])(r).map(u);
          }
          function u(e) {
            return (
              (e.value *= Math.pow(2, -2 * o)), e.coordinates.forEach(g), e
            );
          }
          function g(e) {
            e.forEach(f);
          }
          function f(e) {
            e.forEach(p);
          }
          function p(e) {
            (e[0] = e[0] * Math.pow(2, o) - a),
              (e[1] = e[1] * Math.pow(2, o) - a);
          }
          function m() {
            return (l = (n + 2 * (a = 3 * s)) >> o), (c = (r + 2 * a) >> o), h;
          }
          return (
            (h.x = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : qs(+t)), h)
                : e;
            }),
            (h.y = function (e) {
              return arguments.length
                ? ((t = 'function' == typeof e ? e : qs(+e)), h)
                : t;
            }),
            (h.weight = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : qs(+e)), h)
                : i;
            }),
            (h.size = function (e) {
              if (!arguments.length) return [n, r];
              var t = Math.ceil(e[0]),
                i = Math.ceil(e[1]);
              if (!(t >= 0 || t >= 0)) throw new Error('invalid size');
              return (n = t), (r = i), m();
            }),
            (h.cellSize = function (e) {
              if (!arguments.length) return 1 << o;
              if (!((e = +e) >= 1)) throw new Error('invalid cell size');
              return (o = Math.floor(Math.log(e) / Math.LN2)), m();
            }),
            (h.thresholds = function (e) {
              return arguments.length
                ? ((d =
                    'function' == typeof e
                      ? e
                      : Array.isArray(e)
                      ? qs($s.call(e))
                      : qs(e)),
                  h)
                : d;
            }),
            (h.bandwidth = function (e) {
              if (!arguments.length) return Math.sqrt(s * (s + 1));
              if (!((e = +e) >= 0)) throw new Error('invalid bandwidth');
              return (s = Math.round((Math.sqrt(4 * e * e + 1) - 1) / 2)), m();
            }),
            h
          );
        }
        function ao(e) {
          return function () {
            return e;
          };
        }
        function lo(e, t, i, n, r, s, o, a, l, c) {
          (this.target = e),
            (this.type = t),
            (this.subject = i),
            (this.identifier = n),
            (this.active = r),
            (this.x = s),
            (this.y = o),
            (this.dx = a),
            (this.dy = l),
            (this._ = c);
        }
        function co() {
          return !dt.ctrlKey && !dt.button;
        }
        function ho() {
          return this.parentNode;
        }
        function uo(e) {
          return null == e ? { x: dt.x, y: dt.y } : e;
        }
        function go() {
          return navigator.maxTouchPoints || 'ontouchstart' in this;
        }
        function fo() {
          var e,
            t,
            i,
            n,
            r = co,
            s = ho,
            o = uo,
            a = go,
            l = {},
            c = ue('start', 'drag', 'end'),
            d = 0,
            h = 0;
          function u(e) {
            e.on('mousedown.drag', g)
              .filter(a)
              .on('touchstart.drag', m)
              .on('touchmove.drag', _)
              .on('touchend.drag touchcancel.drag', b)
              .style('touch-action', 'none')
              .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
          }
          function g() {
            if (!n && r.apply(this, arguments)) {
              var o = v('mouse', s.apply(this, arguments), Ii, this, arguments);
              o &&
                (kt(dt.view)
                  .on('mousemove.drag', f, !0)
                  .on('mouseup.drag', p, !0),
                Mt(dt.view),
                xt(),
                (i = !1),
                (e = dt.clientX),
                (t = dt.clientY),
                o('start'));
            }
          }
          function f() {
            if ((Lt(), !i)) {
              var n = dt.clientX - e,
                r = dt.clientY - t;
              i = n * n + r * r > h;
            }
            l.mouse('drag');
          }
          function p() {
            kt(dt.view).on('mousemove.drag mouseup.drag', null),
              Dt(dt.view, i),
              Lt(),
              l.mouse('end');
          }
          function m() {
            if (r.apply(this, arguments)) {
              var e,
                t,
                i = dt.changedTouches,
                n = s.apply(this, arguments),
                o = i.length;
              for (e = 0; e < o; ++e)
                (t = v(i[e].identifier, n, Ti, this, arguments)) &&
                  (xt(), t('start'));
            }
          }
          function _() {
            var e,
              t,
              i = dt.changedTouches,
              n = i.length;
            for (e = 0; e < n; ++e)
              (t = l[i[e].identifier]) && (Lt(), t('drag'));
          }
          function b() {
            var e,
              t,
              i = dt.changedTouches,
              r = i.length;
            for (
              n && clearTimeout(n),
                n = setTimeout(function () {
                  n = null;
                }, 500),
                e = 0;
              e < r;
              ++e
            )
              (t = l[i[e].identifier]) && (xt(), t('end'));
          }
          function v(e, t, i, n, r) {
            var s,
              a,
              h,
              g = i(t, e),
              f = c.copy();
            if (
              mt(
                new lo(u, 'beforestart', s, e, d, g[0], g[1], 0, 0, f),
                function () {
                  return (
                    null != (dt.subject = s = o.apply(n, r)) &&
                    ((a = s.x - g[0] || 0), (h = s.y - g[1] || 0), !0)
                  );
                }
              )
            )
              return function o(c) {
                var p,
                  m = g;
                switch (c) {
                  case 'start':
                    (l[e] = o), (p = d++);
                    break;
                  case 'end':
                    delete l[e], --d;
                  case 'drag':
                    (g = i(t, e)), (p = d);
                }
                mt(
                  new lo(
                    u,
                    c,
                    s,
                    e,
                    p,
                    g[0] + a,
                    g[1] + h,
                    g[0] - m[0],
                    g[1] - m[1],
                    f
                  ),
                  f.apply,
                  f,
                  [c, n, r]
                );
              };
          }
          return (
            (u.filter = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : ao(!!e)), u)
                : r;
            }),
            (u.container = function (e) {
              return arguments.length
                ? ((s = 'function' == typeof e ? e : ao(e)), u)
                : s;
            }),
            (u.subject = function (e) {
              return arguments.length
                ? ((o = 'function' == typeof e ? e : ao(e)), u)
                : o;
            }),
            (u.touchable = function (e) {
              return arguments.length
                ? ((a = 'function' == typeof e ? e : ao(!!e)), u)
                : a;
            }),
            (u.on = function () {
              var e = c.on.apply(c, arguments);
              return e === c ? u : e;
            }),
            (u.clickDistance = function (e) {
              return arguments.length ? ((h = (e = +e) * e), u) : Math.sqrt(h);
            }),
            u
          );
        }
        lo.prototype.on = function () {
          var e = this._.on.apply(this._, arguments);
          return e === this._ ? this : e;
        };
        var po = {},
          mo = {};
        function _o(e) {
          return new Function(
            'd',
            'return {' +
              e
                .map(function (e, t) {
                  return JSON.stringify(e) + ': d[' + t + '] || ""';
                })
                .join(',') +
              '}'
          );
        }
        function bo(e) {
          var t = Object.create(null),
            i = [];
          return (
            e.forEach(function (e) {
              for (var n in e) n in t || i.push((t[n] = n));
            }),
            i
          );
        }
        function vo(e, t) {
          var i = e + '',
            n = i.length;
          return n < t ? new Array(t - n + 1).join(0) + i : i;
        }
        function yo(e) {
          var t = new RegExp('["' + e + '\n\r]'),
            i = e.charCodeAt(0);
          function n(e, t) {
            var n,
              r = [],
              s = e.length,
              o = 0,
              a = 0,
              l = s <= 0,
              c = !1;
            function d() {
              if (l) return mo;
              if (c) return (c = !1), po;
              var t,
                n,
                r = o;
              if (34 === e.charCodeAt(r)) {
                for (
                  ;
                  (o++ < s && 34 !== e.charCodeAt(o)) ||
                  34 === e.charCodeAt(++o);

                );
                return (
                  (t = o) >= s
                    ? (l = !0)
                    : 10 === (n = e.charCodeAt(o++))
                    ? (c = !0)
                    : 13 === n && ((c = !0), 10 === e.charCodeAt(o) && ++o),
                  e.slice(r + 1, t - 1).replace(/""/g, '"')
                );
              }
              for (; o < s; ) {
                if (10 === (n = e.charCodeAt((t = o++)))) c = !0;
                else if (13 === n) (c = !0), 10 === e.charCodeAt(o) && ++o;
                else if (n !== i) continue;
                return e.slice(r, t);
              }
              return (l = !0), e.slice(r, s);
            }
            for (
              10 === e.charCodeAt(s - 1) && --s,
                13 === e.charCodeAt(s - 1) && --s;
              (n = d()) !== mo;

            ) {
              for (var h = []; n !== po && n !== mo; ) h.push(n), (n = d());
              (t && null == (h = t(h, a++))) || r.push(h);
            }
            return r;
          }
          function r(t, i) {
            return t.map(function (t) {
              return i
                .map(function (e) {
                  return o(t[e]);
                })
                .join(e);
            });
          }
          function s(t) {
            return t.map(o).join(e);
          }
          function o(e) {
            return null == e
              ? ''
              : e instanceof Date
              ? (function (e) {
                  var t = e.getUTCHours(),
                    i = e.getUTCMinutes(),
                    n = e.getUTCSeconds(),
                    r = e.getUTCMilliseconds();
                  return isNaN(e)
                    ? 'Invalid Date'
                    : (function (e) {
                        return e < 0
                          ? '-' + vo(-e, 6)
                          : e > 9999
                          ? '+' + vo(e, 6)
                          : vo(e, 4);
                      })(e.getUTCFullYear()) +
                        '-' +
                        vo(e.getUTCMonth() + 1, 2) +
                        '-' +
                        vo(e.getUTCDate(), 2) +
                        (r
                          ? 'T' +
                            vo(t, 2) +
                            ':' +
                            vo(i, 2) +
                            ':' +
                            vo(n, 2) +
                            '.' +
                            vo(r, 3) +
                            'Z'
                          : n
                          ? 'T' +
                            vo(t, 2) +
                            ':' +
                            vo(i, 2) +
                            ':' +
                            vo(n, 2) +
                            'Z'
                          : i || t
                          ? 'T' + vo(t, 2) + ':' + vo(i, 2) + 'Z'
                          : '');
                })(e)
              : t.test((e += ''))
              ? '"' + e.replace(/"/g, '""') + '"'
              : e;
          }
          return {
            parse: function (e, t) {
              var i,
                r,
                s = n(e, function (e, n) {
                  if (i) return i(e, n - 1);
                  (r = e),
                    (i = t
                      ? (function (e, t) {
                          var i = _o(e);
                          return function (n, r) {
                            return t(i(n), r, e);
                          };
                        })(e, t)
                      : _o(e));
                });
              return (s.columns = r || []), s;
            },
            parseRows: n,
            format: function (t, i) {
              return (
                null == i && (i = bo(t)),
                [i.map(o).join(e)].concat(r(t, i)).join('\n')
              );
            },
            formatBody: function (e, t) {
              return null == t && (t = bo(e)), r(e, t).join('\n');
            },
            formatRows: function (e) {
              return e.map(s).join('\n');
            },
            formatRow: s,
            formatValue: o,
          };
        }
        var wo = yo(','),
          Co = wo.parse,
          So = wo.parseRows,
          ko = wo.format,
          xo = wo.formatBody,
          Lo = wo.formatRows,
          Mo = wo.formatRow,
          Do = wo.formatValue,
          No = yo('\t'),
          Eo = No.parse,
          To = No.parseRows,
          Io = No.format,
          Oo = No.formatBody,
          Ao = No.formatRows,
          Ro = No.formatRow,
          Po = No.formatValue;
        function Fo(e) {
          for (var t in e) {
            var i,
              n,
              r = e[t].trim();
            if (r)
              if ('true' === r) r = !0;
              else if ('false' === r) r = !1;
              else if ('NaN' === r) r = NaN;
              else if (isNaN((i = +r))) {
                if (
                  !(n = r.match(
                    /^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/
                  ))
                )
                  continue;
                Bo &&
                  n[4] &&
                  !n[7] &&
                  (r = r.replace(/-/g, '/').replace(/T/, ' ')),
                  (r = new Date(r));
              } else r = i;
            else r = null;
            e[t] = r;
          }
          return e;
        }
        var Bo =
          new Date('2019-01-01T00:00').getHours() ||
          new Date('2019-07-01T00:00').getHours();
        function Wo(e) {
          return +e;
        }
        function Yo(e) {
          return e * e;
        }
        function Ho(e) {
          return e * (2 - e);
        }
        function jo(e) {
          return ((e *= 2) <= 1 ? e * e : --e * (2 - e) + 1) / 2;
        }
        var Vo = (function e(t) {
            function i(e) {
              return Math.pow(e, t);
            }
            return (t = +t), (i.exponent = e), i;
          })(3),
          zo = (function e(t) {
            function i(e) {
              return 1 - Math.pow(1 - e, t);
            }
            return (t = +t), (i.exponent = e), i;
          })(3),
          Uo = (function e(t) {
            function i(e) {
              return (
                ((e *= 2) <= 1 ? Math.pow(e, t) : 2 - Math.pow(2 - e, t)) / 2
              );
            }
            return (t = +t), (i.exponent = e), i;
          })(3),
          $o = Math.PI,
          Ko = $o / 2;
        function qo(e) {
          return 1 - Math.cos(e * Ko);
        }
        function Go(e) {
          return Math.sin(e * Ko);
        }
        function Zo(e) {
          return (1 - Math.cos($o * e)) / 2;
        }
        function Jo(e) {
          return Math.pow(2, 10 * e - 10);
        }
        function Qo(e) {
          return 1 - Math.pow(2, -10 * e);
        }
        function Xo(e) {
          return (
            ((e *= 2) <= 1
              ? Math.pow(2, 10 * e - 10)
              : 2 - Math.pow(2, 10 - 10 * e)) / 2
          );
        }
        function ea(e) {
          return 1 - Math.sqrt(1 - e * e);
        }
        function ta(e) {
          return Math.sqrt(1 - --e * e);
        }
        function ia(e) {
          return (
            ((e *= 2) <= 1
              ? 1 - Math.sqrt(1 - e * e)
              : Math.sqrt(1 - (e -= 2) * e) + 1) / 2
          );
        }
        var na = 7.5625;
        function ra(e) {
          return 1 - sa(1 - e);
        }
        function sa(e) {
          return (e = +e) < 0.36363636363636365
            ? na * e * e
            : e < 0.7272727272727273
            ? na * (e -= 0.5454545454545454) * e + 0.75
            : e < 0.9090909090909091
            ? na * (e -= 0.8181818181818182) * e + 0.9375
            : na * (e -= 0.9545454545454546) * e + 0.984375;
        }
        function oa(e) {
          return ((e *= 2) <= 1 ? 1 - sa(1 - e) : sa(e - 1) + 1) / 2;
        }
        var aa = 1.70158,
          la = (function e(t) {
            function i(e) {
              return e * e * ((t + 1) * e - t);
            }
            return (t = +t), (i.overshoot = e), i;
          })(aa),
          ca = (function e(t) {
            function i(e) {
              return --e * e * ((t + 1) * e + t) + 1;
            }
            return (t = +t), (i.overshoot = e), i;
          })(aa),
          da = (function e(t) {
            function i(e) {
              return (
                ((e *= 2) < 1
                  ? e * e * ((t + 1) * e - t)
                  : (e -= 2) * e * ((t + 1) * e + t) + 2) / 2
              );
            }
            return (t = +t), (i.overshoot = e), i;
          })(aa),
          ha = 2 * Math.PI,
          ua = (function e(t, i) {
            var n = Math.asin(1 / (t = Math.max(1, t))) * (i /= ha);
            function r(e) {
              return t * Math.pow(2, 10 * --e) * Math.sin((n - e) / i);
            }
            return (
              (r.amplitude = function (t) {
                return e(t, i * ha);
              }),
              (r.period = function (i) {
                return e(t, i);
              }),
              r
            );
          })(1, 0.3),
          ga = (function e(t, i) {
            var n = Math.asin(1 / (t = Math.max(1, t))) * (i /= ha);
            function r(e) {
              return (
                1 - t * Math.pow(2, -10 * (e = +e)) * Math.sin((e + n) / i)
              );
            }
            return (
              (r.amplitude = function (t) {
                return e(t, i * ha);
              }),
              (r.period = function (i) {
                return e(t, i);
              }),
              r
            );
          })(1, 0.3),
          fa = (function e(t, i) {
            var n = Math.asin(1 / (t = Math.max(1, t))) * (i /= ha);
            function r(e) {
              return (
                ((e = 2 * e - 1) < 0
                  ? t * Math.pow(2, 10 * e) * Math.sin((n - e) / i)
                  : 2 - t * Math.pow(2, -10 * e) * Math.sin((n + e) / i)) / 2
              );
            }
            return (
              (r.amplitude = function (t) {
                return e(t, i * ha);
              }),
              (r.period = function (i) {
                return e(t, i);
              }),
              r
            );
          })(1, 0.3);
        function pa(e) {
          if (!e.ok) throw new Error(e.status + ' ' + e.statusText);
          return e.blob();
        }
        function ma(e, t) {
          return fetch(e, t).then(pa);
        }
        function _a(e) {
          if (!e.ok) throw new Error(e.status + ' ' + e.statusText);
          return e.arrayBuffer();
        }
        function ba(e, t) {
          return fetch(e, t).then(_a);
        }
        function va(e) {
          if (!e.ok) throw new Error(e.status + ' ' + e.statusText);
          return e.text();
        }
        function ya(e, t) {
          return fetch(e, t).then(va);
        }
        function wa(e) {
          return function (t, i, n) {
            return (
              2 === arguments.length &&
                'function' == typeof i &&
                ((n = i), (i = void 0)),
              ya(t, i).then(function (t) {
                return e(t, n);
              })
            );
          };
        }
        function Ca(e, t, i, n) {
          3 === arguments.length &&
            'function' == typeof i &&
            ((n = i), (i = void 0));
          var r = yo(e);
          return ya(t, i).then(function (e) {
            return r.parse(e, n);
          });
        }
        var Sa = wa(Co),
          ka = wa(Eo);
        function xa(e, t) {
          return new Promise(function (i, n) {
            var r = new Image();
            for (var s in t) r[s] = t[s];
            (r.onerror = n),
              (r.onload = function () {
                i(r);
              }),
              (r.src = e);
          });
        }
        function La(e) {
          if (!e.ok) throw new Error(e.status + ' ' + e.statusText);
          return e.json();
        }
        function Ma(e, t) {
          return fetch(e, t).then(La);
        }
        function Da(e) {
          return function (t, i) {
            return ya(t, i).then(function (t) {
              return new DOMParser().parseFromString(t, e);
            });
          };
        }
        const Na = Da('application/xml');
        var Ea = Da('text/html'),
          Ta = Da('image/svg+xml');
        function Ia(e, t) {
          var i;
          function n() {
            var n,
              r,
              s = i.length,
              o = 0,
              a = 0;
            for (n = 0; n < s; ++n) (o += (r = i[n]).x), (a += r.y);
            for (o = o / s - e, a = a / s - t, n = 0; n < s; ++n)
              ((r = i[n]).x -= o), (r.y -= a);
          }
          return (
            null == e && (e = 0),
            null == t && (t = 0),
            (n.initialize = function (e) {
              i = e;
            }),
            (n.x = function (t) {
              return arguments.length ? ((e = +t), n) : e;
            }),
            (n.y = function (e) {
              return arguments.length ? ((t = +e), n) : t;
            }),
            n
          );
        }
        function Oa(e) {
          return function () {
            return e;
          };
        }
        function Aa() {
          return 1e-6 * (Math.random() - 0.5);
        }
        function Ra(e, t, i, n) {
          if (isNaN(t) || isNaN(i)) return e;
          var r,
            s,
            o,
            a,
            l,
            c,
            d,
            h,
            u,
            g = e._root,
            f = { data: n },
            p = e._x0,
            m = e._y0,
            _ = e._x1,
            b = e._y1;
          if (!g) return (e._root = f), e;
          for (; g.length; )
            if (
              ((c = t >= (s = (p + _) / 2)) ? (p = s) : (_ = s),
              (d = i >= (o = (m + b) / 2)) ? (m = o) : (b = o),
              (r = g),
              !(g = g[(h = (d << 1) | c)]))
            )
              return (r[h] = f), e;
          if (
            ((a = +e._x.call(null, g.data)),
            (l = +e._y.call(null, g.data)),
            t === a && i === l)
          )
            return (f.next = g), r ? (r[h] = f) : (e._root = f), e;
          do {
            (r = r ? (r[h] = new Array(4)) : (e._root = new Array(4))),
              (c = t >= (s = (p + _) / 2)) ? (p = s) : (_ = s),
              (d = i >= (o = (m + b) / 2)) ? (m = o) : (b = o);
          } while ((h = (d << 1) | c) == (u = ((l >= o) << 1) | (a >= s)));
          return (r[u] = g), (r[h] = f), e;
        }
        function Pa(e, t, i, n, r) {
          (this.node = e),
            (this.x0 = t),
            (this.y0 = i),
            (this.x1 = n),
            (this.y1 = r);
        }
        function Fa(e) {
          return e[0];
        }
        function Ba(e) {
          return e[1];
        }
        function Wa(e, t, i) {
          var n = new Ya(
            null == t ? Fa : t,
            null == i ? Ba : i,
            NaN,
            NaN,
            NaN,
            NaN
          );
          return null == e ? n : n.addAll(e);
        }
        function Ya(e, t, i, n, r, s) {
          (this._x = e),
            (this._y = t),
            (this._x0 = i),
            (this._y0 = n),
            (this._x1 = r),
            (this._y1 = s),
            (this._root = void 0);
        }
        function Ha(e) {
          for (var t = { data: e.data }, i = t; (e = e.next); )
            i = i.next = { data: e.data };
          return t;
        }
        var ja = (Wa.prototype = Ya.prototype);
        function Va(e) {
          return e.x + e.vx;
        }
        function za(e) {
          return e.y + e.vy;
        }
        function Ua(e) {
          var t,
            i,
            n = 1,
            r = 1;
          function s() {
            for (var e, s, a, l, c, d, h, u = t.length, g = 0; g < r; ++g)
              for (s = Wa(t, Va, za).visitAfter(o), e = 0; e < u; ++e)
                (a = t[e]),
                  (d = i[a.index]),
                  (h = d * d),
                  (l = a.x + a.vx),
                  (c = a.y + a.vy),
                  s.visit(f);
            function f(e, t, i, r, s) {
              var o = e.data,
                u = e.r,
                g = d + u;
              if (!o) return t > l + g || r < l - g || i > c + g || s < c - g;
              if (o.index > a.index) {
                var f = l - o.x - o.vx,
                  p = c - o.y - o.vy,
                  m = f * f + p * p;
                m < g * g &&
                  (0 === f && (m += (f = Aa()) * f),
                  0 === p && (m += (p = Aa()) * p),
                  (m = ((g - (m = Math.sqrt(m))) / m) * n),
                  (a.vx += (f *= m) * (g = (u *= u) / (h + u))),
                  (a.vy += (p *= m) * g),
                  (o.vx -= f * (g = 1 - g)),
                  (o.vy -= p * g));
              }
            }
          }
          function o(e) {
            if (e.data) return (e.r = i[e.data.index]);
            for (var t = (e.r = 0); t < 4; ++t)
              e[t] && e[t].r > e.r && (e.r = e[t].r);
          }
          function a() {
            if (t) {
              var n,
                r,
                s = t.length;
              for (i = new Array(s), n = 0; n < s; ++n)
                (r = t[n]), (i[r.index] = +e(r, n, t));
            }
          }
          return (
            'function' != typeof e && (e = Oa(null == e ? 1 : +e)),
            (s.initialize = function (e) {
              (t = e), a();
            }),
            (s.iterations = function (e) {
              return arguments.length ? ((r = +e), s) : r;
            }),
            (s.strength = function (e) {
              return arguments.length ? ((n = +e), s) : n;
            }),
            (s.radius = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : Oa(+t)), a(), s)
                : e;
            }),
            s
          );
        }
        function $a(e) {
          return e.index;
        }
        function Ka(e, t) {
          var i = e.get(t);
          if (!i) throw new Error('missing: ' + t);
          return i;
        }
        function qa(e) {
          var t,
            i,
            n,
            r,
            s,
            o = $a,
            a = function (e) {
              return 1 / Math.min(r[e.source.index], r[e.target.index]);
            },
            l = Oa(30),
            c = 1;
          function d(n) {
            for (var r = 0, o = e.length; r < c; ++r)
              for (var a, l, d, h, u, g, f, p = 0; p < o; ++p)
                (l = (a = e[p]).source),
                  (h = (d = a.target).x + d.vx - l.x - l.vx || Aa()),
                  (u = d.y + d.vy - l.y - l.vy || Aa()),
                  (h *= g =
                    (((g = Math.sqrt(h * h + u * u)) - i[p]) / g) * n * t[p]),
                  (u *= g),
                  (d.vx -= h * (f = s[p])),
                  (d.vy -= u * f),
                  (l.vx += h * (f = 1 - f)),
                  (l.vy += u * f);
          }
          function h() {
            if (n) {
              var a,
                l,
                c = n.length,
                d = e.length,
                h = is(n, o);
              for (a = 0, r = new Array(c); a < d; ++a)
                ((l = e[a]).index = a),
                  'object' != typeof l.source && (l.source = Ka(h, l.source)),
                  'object' != typeof l.target && (l.target = Ka(h, l.target)),
                  (r[l.source.index] = (r[l.source.index] || 0) + 1),
                  (r[l.target.index] = (r[l.target.index] || 0) + 1);
              for (a = 0, s = new Array(d); a < d; ++a)
                (l = e[a]),
                  (s[a] =
                    r[l.source.index] /
                    (r[l.source.index] + r[l.target.index]));
              (t = new Array(d)), u(), (i = new Array(d)), g();
            }
          }
          function u() {
            if (n)
              for (var i = 0, r = e.length; i < r; ++i) t[i] = +a(e[i], i, e);
          }
          function g() {
            if (n)
              for (var t = 0, r = e.length; t < r; ++t) i[t] = +l(e[t], t, e);
          }
          return (
            null == e && (e = []),
            (d.initialize = function (e) {
              (n = e), h();
            }),
            (d.links = function (t) {
              return arguments.length ? ((e = t), h(), d) : e;
            }),
            (d.id = function (e) {
              return arguments.length ? ((o = e), d) : o;
            }),
            (d.iterations = function (e) {
              return arguments.length ? ((c = +e), d) : c;
            }),
            (d.strength = function (e) {
              return arguments.length
                ? ((a = 'function' == typeof e ? e : Oa(+e)), u(), d)
                : a;
            }),
            (d.distance = function (e) {
              return arguments.length
                ? ((l = 'function' == typeof e ? e : Oa(+e)), g(), d)
                : l;
            }),
            d
          );
        }
        function Ga(e) {
          return e.x;
        }
        function Za(e) {
          return e.y;
        }
        (ja.copy = function () {
          var e,
            t,
            i = new Ya(
              this._x,
              this._y,
              this._x0,
              this._y0,
              this._x1,
              this._y1
            ),
            n = this._root;
          if (!n) return i;
          if (!n.length) return (i._root = Ha(n)), i;
          for (
            e = [{ source: n, target: (i._root = new Array(4)) }];
            (n = e.pop());

          )
            for (var r = 0; r < 4; ++r)
              (t = n.source[r]) &&
                (t.length
                  ? e.push({ source: t, target: (n.target[r] = new Array(4)) })
                  : (n.target[r] = Ha(t)));
          return i;
        }),
          (ja.add = function (e) {
            var t = +this._x.call(null, e),
              i = +this._y.call(null, e);
            return Ra(this.cover(t, i), t, i, e);
          }),
          (ja.addAll = function (e) {
            var t,
              i,
              n,
              r,
              s = e.length,
              o = new Array(s),
              a = new Array(s),
              l = 1 / 0,
              c = 1 / 0,
              d = -1 / 0,
              h = -1 / 0;
            for (i = 0; i < s; ++i)
              isNaN((n = +this._x.call(null, (t = e[i])))) ||
                isNaN((r = +this._y.call(null, t))) ||
                ((o[i] = n),
                (a[i] = r),
                n < l && (l = n),
                n > d && (d = n),
                r < c && (c = r),
                r > h && (h = r));
            if (l > d || c > h) return this;
            for (this.cover(l, c).cover(d, h), i = 0; i < s; ++i)
              Ra(this, o[i], a[i], e[i]);
            return this;
          }),
          (ja.cover = function (e, t) {
            if (isNaN((e = +e)) || isNaN((t = +t))) return this;
            var i = this._x0,
              n = this._y0,
              r = this._x1,
              s = this._y1;
            if (isNaN(i))
              (r = (i = Math.floor(e)) + 1), (s = (n = Math.floor(t)) + 1);
            else {
              for (
                var o, a, l = r - i, c = this._root;
                i > e || e >= r || n > t || t >= s;

              )
                switch (
                  ((a = ((t < n) << 1) | (e < i)),
                  ((o = new Array(4))[a] = c),
                  (c = o),
                  (l *= 2),
                  a)
                ) {
                  case 0:
                    (r = i + l), (s = n + l);
                    break;
                  case 1:
                    (i = r - l), (s = n + l);
                    break;
                  case 2:
                    (r = i + l), (n = s - l);
                    break;
                  case 3:
                    (i = r - l), (n = s - l);
                }
              this._root && this._root.length && (this._root = c);
            }
            return (
              (this._x0 = i),
              (this._y0 = n),
              (this._x1 = r),
              (this._y1 = s),
              this
            );
          }),
          (ja.data = function () {
            var e = [];
            return (
              this.visit(function (t) {
                if (!t.length)
                  do {
                    e.push(t.data);
                  } while ((t = t.next));
              }),
              e
            );
          }),
          (ja.extent = function (e) {
            return arguments.length
              ? this.cover(+e[0][0], +e[0][1]).cover(+e[1][0], +e[1][1])
              : isNaN(this._x0)
              ? void 0
              : [
                  [this._x0, this._y0],
                  [this._x1, this._y1],
                ];
          }),
          (ja.find = function (e, t, i) {
            var n,
              r,
              s,
              o,
              a,
              l,
              c,
              d = this._x0,
              h = this._y0,
              u = this._x1,
              g = this._y1,
              f = [],
              p = this._root;
            for (
              p && f.push(new Pa(p, d, h, u, g)),
                null == i
                  ? (i = 1 / 0)
                  : ((d = e - i),
                    (h = t - i),
                    (u = e + i),
                    (g = t + i),
                    (i *= i));
              (l = f.pop());

            )
              if (
                !(
                  !(p = l.node) ||
                  (r = l.x0) > u ||
                  (s = l.y0) > g ||
                  (o = l.x1) < d ||
                  (a = l.y1) < h
                )
              )
                if (p.length) {
                  var m = (r + o) / 2,
                    _ = (s + a) / 2;
                  f.push(
                    new Pa(p[3], m, _, o, a),
                    new Pa(p[2], r, _, m, a),
                    new Pa(p[1], m, s, o, _),
                    new Pa(p[0], r, s, m, _)
                  ),
                    (c = ((t >= _) << 1) | (e >= m)) &&
                      ((l = f[f.length - 1]),
                      (f[f.length - 1] = f[f.length - 1 - c]),
                      (f[f.length - 1 - c] = l));
                } else {
                  var b = e - +this._x.call(null, p.data),
                    v = t - +this._y.call(null, p.data),
                    y = b * b + v * v;
                  if (y < i) {
                    var w = Math.sqrt((i = y));
                    (d = e - w),
                      (h = t - w),
                      (u = e + w),
                      (g = t + w),
                      (n = p.data);
                  }
                }
            return n;
          }),
          (ja.remove = function (e) {
            if (
              isNaN((s = +this._x.call(null, e))) ||
              isNaN((o = +this._y.call(null, e)))
            )
              return this;
            var t,
              i,
              n,
              r,
              s,
              o,
              a,
              l,
              c,
              d,
              h,
              u,
              g = this._root,
              f = this._x0,
              p = this._y0,
              m = this._x1,
              _ = this._y1;
            if (!g) return this;
            if (g.length)
              for (;;) {
                if (
                  ((c = s >= (a = (f + m) / 2)) ? (f = a) : (m = a),
                  (d = o >= (l = (p + _) / 2)) ? (p = l) : (_ = l),
                  (t = g),
                  !(g = g[(h = (d << 1) | c)]))
                )
                  return this;
                if (!g.length) break;
                (t[(h + 1) & 3] || t[(h + 2) & 3] || t[(h + 3) & 3]) &&
                  ((i = t), (u = h));
              }
            for (; g.data !== e; ) if (((n = g), !(g = g.next))) return this;
            return (
              (r = g.next) && delete g.next,
              n
                ? (r ? (n.next = r) : delete n.next, this)
                : t
                ? (r ? (t[h] = r) : delete t[h],
                  (g = t[0] || t[1] || t[2] || t[3]) &&
                    g === (t[3] || t[2] || t[1] || t[0]) &&
                    !g.length &&
                    (i ? (i[u] = g) : (this._root = g)),
                  this)
                : ((this._root = r), this)
            );
          }),
          (ja.removeAll = function (e) {
            for (var t = 0, i = e.length; t < i; ++t) this.remove(e[t]);
            return this;
          }),
          (ja.root = function () {
            return this._root;
          }),
          (ja.size = function () {
            var e = 0;
            return (
              this.visit(function (t) {
                if (!t.length)
                  do {
                    ++e;
                  } while ((t = t.next));
              }),
              e
            );
          }),
          (ja.visit = function (e) {
            var t,
              i,
              n,
              r,
              s,
              o,
              a = [],
              l = this._root;
            for (
              l && a.push(new Pa(l, this._x0, this._y0, this._x1, this._y1));
              (t = a.pop());

            )
              if (
                !e(
                  (l = t.node),
                  (n = t.x0),
                  (r = t.y0),
                  (s = t.x1),
                  (o = t.y1)
                ) &&
                l.length
              ) {
                var c = (n + s) / 2,
                  d = (r + o) / 2;
                (i = l[3]) && a.push(new Pa(i, c, d, s, o)),
                  (i = l[2]) && a.push(new Pa(i, n, d, c, o)),
                  (i = l[1]) && a.push(new Pa(i, c, r, s, d)),
                  (i = l[0]) && a.push(new Pa(i, n, r, c, d));
              }
            return this;
          }),
          (ja.visitAfter = function (e) {
            var t,
              i = [],
              n = [];
            for (
              this._root &&
              i.push(
                new Pa(this._root, this._x0, this._y0, this._x1, this._y1)
              );
              (t = i.pop());

            ) {
              var r = t.node;
              if (r.length) {
                var s,
                  o = t.x0,
                  a = t.y0,
                  l = t.x1,
                  c = t.y1,
                  d = (o + l) / 2,
                  h = (a + c) / 2;
                (s = r[0]) && i.push(new Pa(s, o, a, d, h)),
                  (s = r[1]) && i.push(new Pa(s, d, a, l, h)),
                  (s = r[2]) && i.push(new Pa(s, o, h, d, c)),
                  (s = r[3]) && i.push(new Pa(s, d, h, l, c));
              }
              n.push(t);
            }
            for (; (t = n.pop()); ) e(t.node, t.x0, t.y0, t.x1, t.y1);
            return this;
          }),
          (ja.x = function (e) {
            return arguments.length ? ((this._x = e), this) : this._x;
          }),
          (ja.y = function (e) {
            return arguments.length ? ((this._y = e), this) : this._y;
          });
        var Ja = Math.PI * (3 - Math.sqrt(5));
        function Qa(e) {
          var t,
            i = 1,
            n = 0.001,
            r = 1 - Math.pow(n, 1 / 300),
            s = 0,
            o = 0.6,
            a = is(),
            l = $i(d),
            c = ue('tick', 'end');
          function d() {
            h(), c.call('tick', t), i < n && (l.stop(), c.call('end', t));
          }
          function h(n) {
            var l,
              c,
              d = e.length;
            void 0 === n && (n = 1);
            for (var h = 0; h < n; ++h)
              for (
                i += (s - i) * r,
                  a.each(function (e) {
                    e(i);
                  }),
                  l = 0;
                l < d;
                ++l
              )
                null == (c = e[l]).fx
                  ? (c.x += c.vx *= o)
                  : ((c.x = c.fx), (c.vx = 0)),
                  null == c.fy
                    ? (c.y += c.vy *= o)
                    : ((c.y = c.fy), (c.vy = 0));
            return t;
          }
          function u() {
            for (var t, i = 0, n = e.length; i < n; ++i) {
              if (
                (((t = e[i]).index = i),
                null != t.fx && (t.x = t.fx),
                null != t.fy && (t.y = t.fy),
                isNaN(t.x) || isNaN(t.y))
              ) {
                var r = 10 * Math.sqrt(i),
                  s = i * Ja;
                (t.x = r * Math.cos(s)), (t.y = r * Math.sin(s));
              }
              (isNaN(t.vx) || isNaN(t.vy)) && (t.vx = t.vy = 0);
            }
          }
          function g(t) {
            return t.initialize && t.initialize(e), t;
          }
          return (
            null == e && (e = []),
            u(),
            (t = {
              tick: h,
              restart: function () {
                return l.restart(d), t;
              },
              stop: function () {
                return l.stop(), t;
              },
              nodes: function (i) {
                return arguments.length ? ((e = i), u(), a.each(g), t) : e;
              },
              alpha: function (e) {
                return arguments.length ? ((i = +e), t) : i;
              },
              alphaMin: function (e) {
                return arguments.length ? ((n = +e), t) : n;
              },
              alphaDecay: function (e) {
                return arguments.length ? ((r = +e), t) : +r;
              },
              alphaTarget: function (e) {
                return arguments.length ? ((s = +e), t) : s;
              },
              velocityDecay: function (e) {
                return arguments.length ? ((o = 1 - e), t) : 1 - o;
              },
              force: function (e, i) {
                return arguments.length > 1
                  ? (null == i ? a.remove(e) : a.set(e, g(i)), t)
                  : a.get(e);
              },
              find: function (t, i, n) {
                var r,
                  s,
                  o,
                  a,
                  l,
                  c = 0,
                  d = e.length;
                for (null == n ? (n = 1 / 0) : (n *= n), c = 0; c < d; ++c)
                  (o = (r = t - (a = e[c]).x) * r + (s = i - a.y) * s) < n &&
                    ((l = a), (n = o));
                return l;
              },
              on: function (e, i) {
                return arguments.length > 1 ? (c.on(e, i), t) : c.on(e);
              },
            })
          );
        }
        function Xa() {
          var e,
            t,
            i,
            n,
            r = Oa(-30),
            s = 1,
            o = 1 / 0,
            a = 0.81;
          function l(n) {
            var r,
              s = e.length,
              o = Wa(e, Ga, Za).visitAfter(d);
            for (i = n, r = 0; r < s; ++r) (t = e[r]), o.visit(h);
          }
          function c() {
            if (e) {
              var t,
                i,
                s = e.length;
              for (n = new Array(s), t = 0; t < s; ++t)
                (i = e[t]), (n[i.index] = +r(i, t, e));
            }
          }
          function d(e) {
            var t,
              i,
              r,
              s,
              o,
              a = 0,
              l = 0;
            if (e.length) {
              for (r = s = o = 0; o < 4; ++o)
                (t = e[o]) &&
                  (i = Math.abs(t.value)) &&
                  ((a += t.value), (l += i), (r += i * t.x), (s += i * t.y));
              (e.x = r / l), (e.y = s / l);
            } else {
              ((t = e).x = t.data.x), (t.y = t.data.y);
              do {
                a += n[t.data.index];
              } while ((t = t.next));
            }
            e.value = a;
          }
          function h(e, r, l, c) {
            if (!e.value) return !0;
            var d = e.x - t.x,
              h = e.y - t.y,
              u = c - r,
              g = d * d + h * h;
            if ((u * u) / a < g)
              return (
                g < o &&
                  (0 === d && (g += (d = Aa()) * d),
                  0 === h && (g += (h = Aa()) * h),
                  g < s && (g = Math.sqrt(s * g)),
                  (t.vx += (d * e.value * i) / g),
                  (t.vy += (h * e.value * i) / g)),
                !0
              );
            if (!(e.length || g >= o)) {
              (e.data !== t || e.next) &&
                (0 === d && (g += (d = Aa()) * d),
                0 === h && (g += (h = Aa()) * h),
                g < s && (g = Math.sqrt(s * g)));
              do {
                e.data !== t &&
                  ((u = (n[e.data.index] * i) / g),
                  (t.vx += d * u),
                  (t.vy += h * u));
              } while ((e = e.next));
            }
          }
          return (
            (l.initialize = function (t) {
              (e = t), c();
            }),
            (l.strength = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : Oa(+e)), c(), l)
                : r;
            }),
            (l.distanceMin = function (e) {
              return arguments.length ? ((s = e * e), l) : Math.sqrt(s);
            }),
            (l.distanceMax = function (e) {
              return arguments.length ? ((o = e * e), l) : Math.sqrt(o);
            }),
            (l.theta = function (e) {
              return arguments.length ? ((a = e * e), l) : Math.sqrt(a);
            }),
            l
          );
        }
        function el(e, t, i) {
          var n,
            r,
            s,
            o = Oa(0.1);
          function a(e) {
            for (var o = 0, a = n.length; o < a; ++o) {
              var l = n[o],
                c = l.x - t || 1e-6,
                d = l.y - i || 1e-6,
                h = Math.sqrt(c * c + d * d),
                u = ((s[o] - h) * r[o] * e) / h;
              (l.vx += c * u), (l.vy += d * u);
            }
          }
          function l() {
            if (n) {
              var t,
                i = n.length;
              for (r = new Array(i), s = new Array(i), t = 0; t < i; ++t)
                (s[t] = +e(n[t], t, n)),
                  (r[t] = isNaN(s[t]) ? 0 : +o(n[t], t, n));
            }
          }
          return (
            'function' != typeof e && (e = Oa(+e)),
            null == t && (t = 0),
            null == i && (i = 0),
            (a.initialize = function (e) {
              (n = e), l();
            }),
            (a.strength = function (e) {
              return arguments.length
                ? ((o = 'function' == typeof e ? e : Oa(+e)), l(), a)
                : o;
            }),
            (a.radius = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : Oa(+t)), l(), a)
                : e;
            }),
            (a.x = function (e) {
              return arguments.length ? ((t = +e), a) : t;
            }),
            (a.y = function (e) {
              return arguments.length ? ((i = +e), a) : i;
            }),
            a
          );
        }
        function tl(e) {
          var t,
            i,
            n,
            r = Oa(0.1);
          function s(e) {
            for (var r, s = 0, o = t.length; s < o; ++s)
              (r = t[s]).vx += (n[s] - r.x) * i[s] * e;
          }
          function o() {
            if (t) {
              var s,
                o = t.length;
              for (i = new Array(o), n = new Array(o), s = 0; s < o; ++s)
                i[s] = isNaN((n[s] = +e(t[s], s, t))) ? 0 : +r(t[s], s, t);
            }
          }
          return (
            'function' != typeof e && (e = Oa(null == e ? 0 : +e)),
            (s.initialize = function (e) {
              (t = e), o();
            }),
            (s.strength = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : Oa(+e)), o(), s)
                : r;
            }),
            (s.x = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : Oa(+t)), o(), s)
                : e;
            }),
            s
          );
        }
        function il(e) {
          var t,
            i,
            n,
            r = Oa(0.1);
          function s(e) {
            for (var r, s = 0, o = t.length; s < o; ++s)
              (r = t[s]).vy += (n[s] - r.y) * i[s] * e;
          }
          function o() {
            if (t) {
              var s,
                o = t.length;
              for (i = new Array(o), n = new Array(o), s = 0; s < o; ++s)
                i[s] = isNaN((n[s] = +e(t[s], s, t))) ? 0 : +r(t[s], s, t);
            }
          }
          return (
            'function' != typeof e && (e = Oa(null == e ? 0 : +e)),
            (s.initialize = function (e) {
              (t = e), o();
            }),
            (s.strength = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : Oa(+e)), o(), s)
                : r;
            }),
            (s.y = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : Oa(+t)), o(), s)
                : e;
            }),
            s
          );
        }
        function nl(e, t) {
          if (
            (i = (e = t ? e.toExponential(t - 1) : e.toExponential()).indexOf(
              'e'
            )) < 0
          )
            return null;
          var i,
            n = e.slice(0, i);
          return [n.length > 1 ? n[0] + n.slice(2) : n, +e.slice(i + 1)];
        }
        function rl(e) {
          return (e = nl(Math.abs(e))) ? e[1] : NaN;
        }
        var sl,
          ol = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
        function al(e) {
          if (!(t = ol.exec(e))) throw new Error('invalid format: ' + e);
          var t;
          return new ll({
            fill: t[1],
            align: t[2],
            sign: t[3],
            symbol: t[4],
            zero: t[5],
            width: t[6],
            comma: t[7],
            precision: t[8] && t[8].slice(1),
            trim: t[9],
            type: t[10],
          });
        }
        function ll(e) {
          (this.fill = void 0 === e.fill ? ' ' : e.fill + ''),
            (this.align = void 0 === e.align ? '>' : e.align + ''),
            (this.sign = void 0 === e.sign ? '-' : e.sign + ''),
            (this.symbol = void 0 === e.symbol ? '' : e.symbol + ''),
            (this.zero = !!e.zero),
            (this.width = void 0 === e.width ? void 0 : +e.width),
            (this.comma = !!e.comma),
            (this.precision = void 0 === e.precision ? void 0 : +e.precision),
            (this.trim = !!e.trim),
            (this.type = void 0 === e.type ? '' : e.type + '');
        }
        function cl(e, t) {
          var i = nl(e, t);
          if (!i) return e + '';
          var n = i[0],
            r = i[1];
          return r < 0
            ? '0.' + new Array(-r).join('0') + n
            : n.length > r + 1
            ? n.slice(0, r + 1) + '.' + n.slice(r + 1)
            : n + new Array(r - n.length + 2).join('0');
        }
        (al.prototype = ll.prototype),
          (ll.prototype.toString = function () {
            return (
              this.fill +
              this.align +
              this.sign +
              this.symbol +
              (this.zero ? '0' : '') +
              (void 0 === this.width ? '' : Math.max(1, 0 | this.width)) +
              (this.comma ? ',' : '') +
              (void 0 === this.precision
                ? ''
                : '.' + Math.max(0, 0 | this.precision)) +
              (this.trim ? '~' : '') +
              this.type
            );
          });
        const dl = {
          '%': function (e, t) {
            return (100 * e).toFixed(t);
          },
          b: function (e) {
            return Math.round(e).toString(2);
          },
          c: function (e) {
            return e + '';
          },
          d: function (e) {
            return Math.round(e).toString(10);
          },
          e: function (e, t) {
            return e.toExponential(t);
          },
          f: function (e, t) {
            return e.toFixed(t);
          },
          g: function (e, t) {
            return e.toPrecision(t);
          },
          o: function (e) {
            return Math.round(e).toString(8);
          },
          p: function (e, t) {
            return cl(100 * e, t);
          },
          r: cl,
          s: function (e, t) {
            var i = nl(e, t);
            if (!i) return e + '';
            var n = i[0],
              r = i[1],
              s =
                r - (sl = 3 * Math.max(-8, Math.min(8, Math.floor(r / 3)))) + 1,
              o = n.length;
            return s === o
              ? n
              : s > o
              ? n + new Array(s - o + 1).join('0')
              : s > 0
              ? n.slice(0, s) + '.' + n.slice(s)
              : '0.' +
                new Array(1 - s).join('0') +
                nl(e, Math.max(0, t + s - 1))[0];
          },
          X: function (e) {
            return Math.round(e).toString(16).toUpperCase();
          },
          x: function (e) {
            return Math.round(e).toString(16);
          },
        };
        function hl(e) {
          return e;
        }
        var ul,
          gl,
          fl,
          pl = Array.prototype.map,
          ml = [
            'y',
            'z',
            'a',
            'f',
            'p',
            'n',
            'µ',
            'm',
            '',
            'k',
            'M',
            'G',
            'T',
            'P',
            'E',
            'Z',
            'Y',
          ];
        function _l(e) {
          var t,
            i,
            n =
              void 0 === e.grouping || void 0 === e.thousands
                ? hl
                : ((t = pl.call(e.grouping, Number)),
                  (i = e.thousands + ''),
                  function (e, n) {
                    for (
                      var r = e.length, s = [], o = 0, a = t[0], l = 0;
                      r > 0 &&
                      a > 0 &&
                      (l + a + 1 > n && (a = Math.max(1, n - l)),
                      s.push(e.substring((r -= a), r + a)),
                      !((l += a + 1) > n));

                    )
                      a = t[(o = (o + 1) % t.length)];
                    return s.reverse().join(i);
                  }),
            r = void 0 === e.currency ? '' : e.currency[0] + '',
            s = void 0 === e.currency ? '' : e.currency[1] + '',
            o = void 0 === e.decimal ? '.' : e.decimal + '',
            a =
              void 0 === e.numerals
                ? hl
                : (function (e) {
                    return function (t) {
                      return t.replace(/[0-9]/g, function (t) {
                        return e[+t];
                      });
                    };
                  })(pl.call(e.numerals, String)),
            l = void 0 === e.percent ? '%' : e.percent + '',
            c = void 0 === e.minus ? '-' : e.minus + '',
            d = void 0 === e.nan ? 'NaN' : e.nan + '';
          function h(e) {
            var t = (e = al(e)).fill,
              i = e.align,
              h = e.sign,
              u = e.symbol,
              g = e.zero,
              f = e.width,
              p = e.comma,
              m = e.precision,
              _ = e.trim,
              b = e.type;
            'n' === b
              ? ((p = !0), (b = 'g'))
              : dl[b] || (void 0 === m && (m = 12), (_ = !0), (b = 'g')),
              (g || ('0' === t && '=' === i)) &&
                ((g = !0), (t = '0'), (i = '='));
            var v =
                '$' === u
                  ? r
                  : '#' === u && /[boxX]/.test(b)
                  ? '0' + b.toLowerCase()
                  : '',
              y = '$' === u ? s : /[%p]/.test(b) ? l : '',
              w = dl[b],
              C = /[defgprs%]/.test(b);
            function S(e) {
              var r,
                s,
                l,
                u = v,
                S = y;
              if ('c' === b) (S = w(e) + S), (e = '');
              else {
                var k = (e = +e) < 0;
                if (
                  ((e = isNaN(e) ? d : w(Math.abs(e), m)),
                  _ &&
                    (e = (function (e) {
                      e: for (var t, i = e.length, n = 1, r = -1; n < i; ++n)
                        switch (e[n]) {
                          case '.':
                            r = t = n;
                            break;
                          case '0':
                            0 === r && (r = n), (t = n);
                            break;
                          default:
                            if (r > 0) {
                              if (!+e[n]) break e;
                              r = 0;
                            }
                        }
                      return r > 0 ? e.slice(0, r) + e.slice(t + 1) : e;
                    })(e)),
                  k && 0 == +e && (k = !1),
                  (u =
                    (k
                      ? '(' === h
                        ? h
                        : c
                      : '-' === h || '(' === h
                      ? ''
                      : h) + u),
                  (S =
                    ('s' === b ? ml[8 + sl / 3] : '') +
                    S +
                    (k && '(' === h ? ')' : '')),
                  C)
                )
                  for (r = -1, s = e.length; ++r < s; )
                    if (48 > (l = e.charCodeAt(r)) || l > 57) {
                      (S = (46 === l ? o + e.slice(r + 1) : e.slice(r)) + S),
                        (e = e.slice(0, r));
                      break;
                    }
              }
              p && !g && (e = n(e, 1 / 0));
              var x = u.length + e.length + S.length,
                L = x < f ? new Array(f - x + 1).join(t) : '';
              switch (
                (p &&
                  g &&
                  ((e = n(L + e, L.length ? f - S.length : 1 / 0)), (L = '')),
                i)
              ) {
                case '<':
                  e = u + e + S + L;
                  break;
                case '=':
                  e = u + L + e + S;
                  break;
                case '^':
                  e = L.slice(0, (x = L.length >> 1)) + u + e + S + L.slice(x);
                  break;
                default:
                  e = L + u + e + S;
              }
              return a(e);
            }
            return (
              (m =
                void 0 === m
                  ? 6
                  : /[gprs]/.test(b)
                  ? Math.max(1, Math.min(21, m))
                  : Math.max(0, Math.min(20, m))),
              (S.toString = function () {
                return e + '';
              }),
              S
            );
          }
          return {
            format: h,
            formatPrefix: function (e, t) {
              var i = h((((e = al(e)).type = 'f'), e)),
                n = 3 * Math.max(-8, Math.min(8, Math.floor(rl(t) / 3))),
                r = Math.pow(10, -n),
                s = ml[8 + n / 3];
              return function (e) {
                return i(r * e) + s;
              };
            },
          };
        }
        function bl(e) {
          return (ul = _l(e)), (gl = ul.format), (fl = ul.formatPrefix), ul;
        }
        function vl(e) {
          return Math.max(0, -rl(Math.abs(e)));
        }
        function yl(e, t) {
          return Math.max(
            0,
            3 * Math.max(-8, Math.min(8, Math.floor(rl(t) / 3))) -
              rl(Math.abs(e))
          );
        }
        function wl(e, t) {
          return (
            (e = Math.abs(e)),
            (t = Math.abs(t) - e),
            Math.max(0, rl(t) - rl(e)) + 1
          );
        }
        function Cl() {
          return new Sl();
        }
        function Sl() {
          this.reset();
        }
        bl({
          decimal: '.',
          thousands: ',',
          grouping: [3],
          currency: ['$', ''],
          minus: '-',
        }),
          (Sl.prototype = {
            constructor: Sl,
            reset: function () {
              this.s = this.t = 0;
            },
            add: function (e) {
              xl(kl, e, this.t),
                xl(this, kl.s, this.s),
                this.s ? (this.t += kl.t) : (this.s = kl.t);
            },
            valueOf: function () {
              return this.s;
            },
          });
        var kl = new Sl();
        function xl(e, t, i) {
          var n = (e.s = t + i),
            r = n - t,
            s = n - r;
          e.t = t - s + (i - r);
        }
        var Ll = 1e-6,
          Ml = 1e-12,
          Dl = Math.PI,
          Nl = Dl / 2,
          El = Dl / 4,
          Tl = 2 * Dl,
          Il = 180 / Dl,
          Ol = Dl / 180,
          Al = Math.abs,
          Rl = Math.atan,
          Pl = Math.atan2,
          Fl = Math.cos,
          Bl = Math.ceil,
          Wl = Math.exp,
          Yl = (Math.floor, Math.log),
          Hl = Math.pow,
          jl = Math.sin,
          Vl =
            Math.sign ||
            function (e) {
              return e > 0 ? 1 : e < 0 ? -1 : 0;
            },
          zl = Math.sqrt,
          Ul = Math.tan;
        function $l(e) {
          return e > 1 ? 0 : e < -1 ? Dl : Math.acos(e);
        }
        function Kl(e) {
          return e > 1 ? Nl : e < -1 ? -Nl : Math.asin(e);
        }
        function ql(e) {
          return (e = jl(e / 2)) * e;
        }
        function Gl() {}
        function Zl(e, t) {
          e && Ql.hasOwnProperty(e.type) && Ql[e.type](e, t);
        }
        var Jl = {
            Feature: function (e, t) {
              Zl(e.geometry, t);
            },
            FeatureCollection: function (e, t) {
              for (var i = e.features, n = -1, r = i.length; ++n < r; )
                Zl(i[n].geometry, t);
            },
          },
          Ql = {
            Sphere: function (e, t) {
              t.sphere();
            },
            Point: function (e, t) {
              (e = e.coordinates), t.point(e[0], e[1], e[2]);
            },
            MultiPoint: function (e, t) {
              for (var i = e.coordinates, n = -1, r = i.length; ++n < r; )
                (e = i[n]), t.point(e[0], e[1], e[2]);
            },
            LineString: function (e, t) {
              Xl(e.coordinates, t, 0);
            },
            MultiLineString: function (e, t) {
              for (var i = e.coordinates, n = -1, r = i.length; ++n < r; )
                Xl(i[n], t, 0);
            },
            Polygon: function (e, t) {
              ec(e.coordinates, t);
            },
            MultiPolygon: function (e, t) {
              for (var i = e.coordinates, n = -1, r = i.length; ++n < r; )
                ec(i[n], t);
            },
            GeometryCollection: function (e, t) {
              for (var i = e.geometries, n = -1, r = i.length; ++n < r; )
                Zl(i[n], t);
            },
          };
        function Xl(e, t, i) {
          var n,
            r = -1,
            s = e.length - i;
          for (t.lineStart(); ++r < s; ) (n = e[r]), t.point(n[0], n[1], n[2]);
          t.lineEnd();
        }
        function ec(e, t) {
          var i = -1,
            n = e.length;
          for (t.polygonStart(); ++i < n; ) Xl(e[i], t, 1);
          t.polygonEnd();
        }
        function tc(e, t) {
          e && Jl.hasOwnProperty(e.type) ? Jl[e.type](e, t) : Zl(e, t);
        }
        var ic,
          nc,
          rc,
          sc,
          oc,
          ac = Cl(),
          lc = Cl(),
          cc = {
            point: Gl,
            lineStart: Gl,
            lineEnd: Gl,
            polygonStart: function () {
              ac.reset(), (cc.lineStart = dc), (cc.lineEnd = hc);
            },
            polygonEnd: function () {
              var e = +ac;
              lc.add(e < 0 ? Tl + e : e),
                (this.lineStart = this.lineEnd = this.point = Gl);
            },
            sphere: function () {
              lc.add(Tl);
            },
          };
        function dc() {
          cc.point = uc;
        }
        function hc() {
          gc(ic, nc);
        }
        function uc(e, t) {
          (cc.point = gc),
            (ic = e),
            (nc = t),
            (rc = e *= Ol),
            (sc = Fl((t = (t *= Ol) / 2 + El))),
            (oc = jl(t));
        }
        function gc(e, t) {
          var i = (e *= Ol) - rc,
            n = i >= 0 ? 1 : -1,
            r = n * i,
            s = Fl((t = (t *= Ol) / 2 + El)),
            o = jl(t),
            a = oc * o,
            l = sc * s + a * Fl(r),
            c = a * n * jl(r);
          ac.add(Pl(c, l)), (rc = e), (sc = s), (oc = o);
        }
        function fc(e) {
          return lc.reset(), tc(e, cc), 2 * lc;
        }
        function pc(e) {
          return [Pl(e[1], e[0]), Kl(e[2])];
        }
        function mc(e) {
          var t = e[0],
            i = e[1],
            n = Fl(i);
          return [n * Fl(t), n * jl(t), jl(i)];
        }
        function _c(e, t) {
          return e[0] * t[0] + e[1] * t[1] + e[2] * t[2];
        }
        function bc(e, t) {
          return [
            e[1] * t[2] - e[2] * t[1],
            e[2] * t[0] - e[0] * t[2],
            e[0] * t[1] - e[1] * t[0],
          ];
        }
        function vc(e, t) {
          (e[0] += t[0]), (e[1] += t[1]), (e[2] += t[2]);
        }
        function yc(e, t) {
          return [e[0] * t, e[1] * t, e[2] * t];
        }
        function wc(e) {
          var t = zl(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]);
          (e[0] /= t), (e[1] /= t), (e[2] /= t);
        }
        var Cc,
          Sc,
          kc,
          xc,
          Lc,
          Mc,
          Dc,
          Nc,
          Ec,
          Tc,
          Ic,
          Oc,
          Ac,
          Rc,
          Pc,
          Fc,
          Bc,
          Wc,
          Yc,
          Hc,
          jc,
          Vc,
          zc,
          Uc,
          $c,
          Kc,
          qc = Cl(),
          Gc = {
            point: Zc,
            lineStart: Qc,
            lineEnd: Xc,
            polygonStart: function () {
              (Gc.point = ed),
                (Gc.lineStart = td),
                (Gc.lineEnd = id),
                qc.reset(),
                cc.polygonStart();
            },
            polygonEnd: function () {
              cc.polygonEnd(),
                (Gc.point = Zc),
                (Gc.lineStart = Qc),
                (Gc.lineEnd = Xc),
                ac < 0
                  ? ((Cc = -(kc = 180)), (Sc = -(xc = 90)))
                  : qc > Ll
                  ? (xc = 90)
                  : qc < -1e-6 && (Sc = -90),
                (Tc[0] = Cc),
                (Tc[1] = kc);
            },
            sphere: function () {
              (Cc = -(kc = 180)), (Sc = -(xc = 90));
            },
          };
        function Zc(e, t) {
          Ec.push((Tc = [(Cc = e), (kc = e)])),
            t < Sc && (Sc = t),
            t > xc && (xc = t);
        }
        function Jc(e, t) {
          var i = mc([e * Ol, t * Ol]);
          if (Nc) {
            var n = bc(Nc, i),
              r = bc([n[1], -n[0], 0], n);
            wc(r), (r = pc(r));
            var s,
              o = e - Lc,
              a = o > 0 ? 1 : -1,
              l = r[0] * Il * a,
              c = Al(o) > 180;
            c ^ (a * Lc < l && l < a * e)
              ? (s = r[1] * Il) > xc && (xc = s)
              : c ^ (a * Lc < (l = ((l + 360) % 360) - 180) && l < a * e)
              ? (s = -r[1] * Il) < Sc && (Sc = s)
              : (t < Sc && (Sc = t), t > xc && (xc = t)),
              c
                ? e < Lc
                  ? nd(Cc, e) > nd(Cc, kc) && (kc = e)
                  : nd(e, kc) > nd(Cc, kc) && (Cc = e)
                : kc >= Cc
                ? (e < Cc && (Cc = e), e > kc && (kc = e))
                : e > Lc
                ? nd(Cc, e) > nd(Cc, kc) && (kc = e)
                : nd(e, kc) > nd(Cc, kc) && (Cc = e);
          } else Ec.push((Tc = [(Cc = e), (kc = e)]));
          t < Sc && (Sc = t), t > xc && (xc = t), (Nc = i), (Lc = e);
        }
        function Qc() {
          Gc.point = Jc;
        }
        function Xc() {
          (Tc[0] = Cc), (Tc[1] = kc), (Gc.point = Zc), (Nc = null);
        }
        function ed(e, t) {
          if (Nc) {
            var i = e - Lc;
            qc.add(Al(i) > 180 ? i + (i > 0 ? 360 : -360) : i);
          } else (Mc = e), (Dc = t);
          cc.point(e, t), Jc(e, t);
        }
        function td() {
          cc.lineStart();
        }
        function id() {
          ed(Mc, Dc),
            cc.lineEnd(),
            Al(qc) > Ll && (Cc = -(kc = 180)),
            (Tc[0] = Cc),
            (Tc[1] = kc),
            (Nc = null);
        }
        function nd(e, t) {
          return (t -= e) < 0 ? t + 360 : t;
        }
        function rd(e, t) {
          return e[0] - t[0];
        }
        function sd(e, t) {
          return e[0] <= e[1] ? e[0] <= t && t <= e[1] : t < e[0] || e[1] < t;
        }
        function od(e) {
          var t, i, n, r, s, o, a;
          if (
            ((xc = kc = -(Cc = Sc = 1 / 0)),
            (Ec = []),
            tc(e, Gc),
            (i = Ec.length))
          ) {
            for (Ec.sort(rd), t = 1, s = [(n = Ec[0])]; t < i; ++t)
              sd(n, (r = Ec[t])[0]) || sd(n, r[1])
                ? (nd(n[0], r[1]) > nd(n[0], n[1]) && (n[1] = r[1]),
                  nd(r[0], n[1]) > nd(n[0], n[1]) && (n[0] = r[0]))
                : s.push((n = r));
            for (
              o = -1 / 0, t = 0, n = s[(i = s.length - 1)];
              t <= i;
              n = r, ++t
            )
              (r = s[t]),
                (a = nd(n[1], r[0])) > o && ((o = a), (Cc = r[0]), (kc = n[1]));
          }
          return (
            (Ec = Tc = null),
            Cc === 1 / 0 || Sc === 1 / 0
              ? [
                  [NaN, NaN],
                  [NaN, NaN],
                ]
              : [
                  [Cc, Sc],
                  [kc, xc],
                ]
          );
        }
        var ad = {
          sphere: Gl,
          point: ld,
          lineStart: dd,
          lineEnd: gd,
          polygonStart: function () {
            (ad.lineStart = fd), (ad.lineEnd = pd);
          },
          polygonEnd: function () {
            (ad.lineStart = dd), (ad.lineEnd = gd);
          },
        };
        function ld(e, t) {
          e *= Ol;
          var i = Fl((t *= Ol));
          cd(i * Fl(e), i * jl(e), jl(t));
        }
        function cd(e, t, i) {
          ++Ic,
            (Ac += (e - Ac) / Ic),
            (Rc += (t - Rc) / Ic),
            (Pc += (i - Pc) / Ic);
        }
        function dd() {
          ad.point = hd;
        }
        function hd(e, t) {
          e *= Ol;
          var i = Fl((t *= Ol));
          (Uc = i * Fl(e)),
            ($c = i * jl(e)),
            (Kc = jl(t)),
            (ad.point = ud),
            cd(Uc, $c, Kc);
        }
        function ud(e, t) {
          e *= Ol;
          var i = Fl((t *= Ol)),
            n = i * Fl(e),
            r = i * jl(e),
            s = jl(t),
            o = Pl(
              zl(
                (o = $c * s - Kc * r) * o +
                  (o = Kc * n - Uc * s) * o +
                  (o = Uc * r - $c * n) * o
              ),
              Uc * n + $c * r + Kc * s
            );
          (Oc += o),
            (Fc += o * (Uc + (Uc = n))),
            (Bc += o * ($c + ($c = r))),
            (Wc += o * (Kc + (Kc = s))),
            cd(Uc, $c, Kc);
        }
        function gd() {
          ad.point = ld;
        }
        function fd() {
          ad.point = md;
        }
        function pd() {
          _d(Vc, zc), (ad.point = ld);
        }
        function md(e, t) {
          (Vc = e), (zc = t), (e *= Ol), (t *= Ol), (ad.point = _d);
          var i = Fl(t);
          (Uc = i * Fl(e)), ($c = i * jl(e)), (Kc = jl(t)), cd(Uc, $c, Kc);
        }
        function _d(e, t) {
          e *= Ol;
          var i = Fl((t *= Ol)),
            n = i * Fl(e),
            r = i * jl(e),
            s = jl(t),
            o = $c * s - Kc * r,
            a = Kc * n - Uc * s,
            l = Uc * r - $c * n,
            c = zl(o * o + a * a + l * l),
            d = Kl(c),
            h = c && -d / c;
          (Yc += h * o),
            (Hc += h * a),
            (jc += h * l),
            (Oc += d),
            (Fc += d * (Uc + (Uc = n))),
            (Bc += d * ($c + ($c = r))),
            (Wc += d * (Kc + (Kc = s))),
            cd(Uc, $c, Kc);
        }
        function bd(e) {
          (Ic = Oc = Ac = Rc = Pc = Fc = Bc = Wc = Yc = Hc = jc = 0), tc(e, ad);
          var t = Yc,
            i = Hc,
            n = jc,
            r = t * t + i * i + n * n;
          return r < Ml &&
            ((t = Fc),
            (i = Bc),
            (n = Wc),
            Oc < Ll && ((t = Ac), (i = Rc), (n = Pc)),
            (r = t * t + i * i + n * n) < Ml)
            ? [NaN, NaN]
            : [Pl(i, t) * Il, Kl(n / zl(r)) * Il];
        }
        function vd(e) {
          return function () {
            return e;
          };
        }
        function yd(e, t) {
          function i(i, n) {
            return (i = e(i, n)), t(i[0], i[1]);
          }
          return (
            e.invert &&
              t.invert &&
              (i.invert = function (i, n) {
                return (i = t.invert(i, n)) && e.invert(i[0], i[1]);
              }),
            i
          );
        }
        function wd(e, t) {
          return [Al(e) > Dl ? e + Math.round(-e / Tl) * Tl : e, t];
        }
        function Cd(e, t, i) {
          return (e %= Tl)
            ? t || i
              ? yd(kd(e), xd(t, i))
              : kd(e)
            : t || i
            ? xd(t, i)
            : wd;
        }
        function Sd(e) {
          return function (t, i) {
            return [(t += e) > Dl ? t - Tl : t < -Dl ? t + Tl : t, i];
          };
        }
        function kd(e) {
          var t = Sd(e);
          return (t.invert = Sd(-e)), t;
        }
        function xd(e, t) {
          var i = Fl(e),
            n = jl(e),
            r = Fl(t),
            s = jl(t);
          function o(e, t) {
            var o = Fl(t),
              a = Fl(e) * o,
              l = jl(e) * o,
              c = jl(t),
              d = c * i + a * n;
            return [Pl(l * r - d * s, a * i - c * n), Kl(d * r + l * s)];
          }
          return (
            (o.invert = function (e, t) {
              var o = Fl(t),
                a = Fl(e) * o,
                l = jl(e) * o,
                c = jl(t),
                d = c * r - l * s;
              return [Pl(l * r + c * s, a * i + d * n), Kl(d * i - a * n)];
            }),
            o
          );
        }
        function Ld(e) {
          function t(t) {
            return ((t = e(t[0] * Ol, t[1] * Ol))[0] *= Il), (t[1] *= Il), t;
          }
          return (
            (e = Cd(e[0] * Ol, e[1] * Ol, e.length > 2 ? e[2] * Ol : 0)),
            (t.invert = function (t) {
              return (
                ((t = e.invert(t[0] * Ol, t[1] * Ol))[0] *= Il), (t[1] *= Il), t
              );
            }),
            t
          );
        }
        function Md(e, t, i, n, r, s) {
          if (i) {
            var o = Fl(t),
              a = jl(t),
              l = n * i;
            null == r
              ? ((r = t + n * Tl), (s = t - l / 2))
              : ((r = Dd(o, r)),
                (s = Dd(o, s)),
                (n > 0 ? r < s : r > s) && (r += n * Tl));
            for (var c, d = r; n > 0 ? d > s : d < s; d -= l)
              (c = pc([o, -a * Fl(d), -a * jl(d)])), e.point(c[0], c[1]);
          }
        }
        function Dd(e, t) {
          ((t = mc(t))[0] -= e), wc(t);
          var i = $l(-t[1]);
          return ((-t[2] < 0 ? -i : i) + Tl - Ll) % Tl;
        }
        function Nd() {
          var e,
            t,
            i = vd([0, 0]),
            n = vd(90),
            r = vd(6),
            s = {
              point: function (i, n) {
                e.push((i = t(i, n))), (i[0] *= Il), (i[1] *= Il);
              },
            };
          function o() {
            var o = i.apply(this, arguments),
              a = n.apply(this, arguments) * Ol,
              l = r.apply(this, arguments) * Ol;
            return (
              (e = []),
              (t = Cd(-o[0] * Ol, -o[1] * Ol, 0).invert),
              Md(s, a, l, 1),
              (o = { type: 'Polygon', coordinates: [e] }),
              (e = t = null),
              o
            );
          }
          return (
            (o.center = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : vd([+e[0], +e[1]])), o)
                : i;
            }),
            (o.radius = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : vd(+e)), o)
                : n;
            }),
            (o.precision = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : vd(+e)), o)
                : r;
            }),
            o
          );
        }
        function Ed() {
          var e,
            t = [];
          return {
            point: function (t, i) {
              e.push([t, i]);
            },
            lineStart: function () {
              t.push((e = []));
            },
            lineEnd: Gl,
            rejoin: function () {
              t.length > 1 && t.push(t.pop().concat(t.shift()));
            },
            result: function () {
              var i = t;
              return (t = []), (e = null), i;
            },
          };
        }
        function Td(e, t) {
          return Al(e[0] - t[0]) < Ll && Al(e[1] - t[1]) < Ll;
        }
        function Id(e, t, i, n) {
          (this.x = e),
            (this.z = t),
            (this.o = i),
            (this.e = n),
            (this.v = !1),
            (this.n = this.p = null);
        }
        function Od(e, t, i, n, r) {
          var s,
            o,
            a = [],
            l = [];
          if (
            (e.forEach(function (e) {
              if (!((t = e.length - 1) <= 0)) {
                var t,
                  i,
                  n = e[0],
                  o = e[t];
                if (Td(n, o)) {
                  for (r.lineStart(), s = 0; s < t; ++s)
                    r.point((n = e[s])[0], n[1]);
                  r.lineEnd();
                } else
                  a.push((i = new Id(n, e, null, !0))),
                    l.push((i.o = new Id(n, null, i, !1))),
                    a.push((i = new Id(o, e, null, !1))),
                    l.push((i.o = new Id(o, null, i, !0)));
              }
            }),
            a.length)
          ) {
            for (l.sort(t), Ad(a), Ad(l), s = 0, o = l.length; s < o; ++s)
              l[s].e = i = !i;
            for (var c, d, h = a[0]; ; ) {
              for (var u = h, g = !0; u.v; ) if ((u = u.n) === h) return;
              (c = u.z), r.lineStart();
              do {
                if (((u.v = u.o.v = !0), u.e)) {
                  if (g)
                    for (s = 0, o = c.length; s < o; ++s)
                      r.point((d = c[s])[0], d[1]);
                  else n(u.x, u.n.x, 1, r);
                  u = u.n;
                } else {
                  if (g)
                    for (c = u.p.z, s = c.length - 1; s >= 0; --s)
                      r.point((d = c[s])[0], d[1]);
                  else n(u.x, u.p.x, -1, r);
                  u = u.p;
                }
                (c = (u = u.o).z), (g = !g);
              } while (!u.v);
              r.lineEnd();
            }
          }
        }
        function Ad(e) {
          if ((t = e.length)) {
            for (var t, i, n = 0, r = e[0]; ++n < t; )
              (r.n = i = e[n]), (i.p = r), (r = i);
            (r.n = i = e[0]), (i.p = r);
          }
        }
        wd.invert = wd;
        var Rd = Cl();
        function Pd(e) {
          return Al(e[0]) <= Dl
            ? e[0]
            : Vl(e[0]) * (((Al(e[0]) + Dl) % Tl) - Dl);
        }
        function Fd(e, t) {
          var i = Pd(t),
            n = t[1],
            r = jl(n),
            s = [jl(i), -Fl(i), 0],
            o = 0,
            a = 0;
          Rd.reset(), 1 === r ? (n = Nl + Ll) : -1 === r && (n = -Nl - Ll);
          for (var l = 0, c = e.length; l < c; ++l)
            if ((h = (d = e[l]).length))
              for (
                var d,
                  h,
                  u = d[h - 1],
                  g = Pd(u),
                  f = u[1] / 2 + El,
                  p = jl(f),
                  m = Fl(f),
                  _ = 0;
                _ < h;
                ++_, g = v, p = w, m = C, u = b
              ) {
                var b = d[_],
                  v = Pd(b),
                  y = b[1] / 2 + El,
                  w = jl(y),
                  C = Fl(y),
                  S = v - g,
                  k = S >= 0 ? 1 : -1,
                  x = k * S,
                  L = x > Dl,
                  M = p * w;
                if (
                  (Rd.add(Pl(M * k * jl(x), m * C + M * Fl(x))),
                  (o += L ? S + k * Tl : S),
                  L ^ (g >= i) ^ (v >= i))
                ) {
                  var D = bc(mc(u), mc(b));
                  wc(D);
                  var N = bc(s, D);
                  wc(N);
                  var E = (L ^ (S >= 0) ? -1 : 1) * Kl(N[2]);
                  (n > E || (n === E && (D[0] || D[1]))) &&
                    (a += L ^ (S >= 0) ? 1 : -1);
                }
              }
          return (o < -1e-6 || (o < Ll && Rd < -1e-6)) ^ (1 & a);
        }
        function Bd(e, t, i, n) {
          return function (r) {
            var s,
              o,
              a,
              l = t(r),
              c = Ed(),
              d = t(c),
              h = !1,
              u = {
                point: g,
                lineStart: p,
                lineEnd: m,
                polygonStart: function () {
                  (u.point = _),
                    (u.lineStart = b),
                    (u.lineEnd = v),
                    (o = []),
                    (s = []);
                },
                polygonEnd: function () {
                  (u.point = g), (u.lineStart = p), (u.lineEnd = m), (o = B(o));
                  var e = Fd(s, n);
                  o.length
                    ? (h || (r.polygonStart(), (h = !0)), Od(o, Yd, e, i, r))
                    : e &&
                      (h || (r.polygonStart(), (h = !0)),
                      r.lineStart(),
                      i(null, null, 1, r),
                      r.lineEnd()),
                    h && (r.polygonEnd(), (h = !1)),
                    (o = s = null);
                },
                sphere: function () {
                  r.polygonStart(),
                    r.lineStart(),
                    i(null, null, 1, r),
                    r.lineEnd(),
                    r.polygonEnd();
                },
              };
            function g(t, i) {
              e(t, i) && r.point(t, i);
            }
            function f(e, t) {
              l.point(e, t);
            }
            function p() {
              (u.point = f), l.lineStart();
            }
            function m() {
              (u.point = g), l.lineEnd();
            }
            function _(e, t) {
              a.push([e, t]), d.point(e, t);
            }
            function b() {
              d.lineStart(), (a = []);
            }
            function v() {
              _(a[0][0], a[0][1]), d.lineEnd();
              var e,
                t,
                i,
                n,
                l = d.clean(),
                u = c.result(),
                g = u.length;
              if ((a.pop(), s.push(a), (a = null), g))
                if (1 & l) {
                  if ((t = (i = u[0]).length - 1) > 0) {
                    for (
                      h || (r.polygonStart(), (h = !0)), r.lineStart(), e = 0;
                      e < t;
                      ++e
                    )
                      r.point((n = i[e])[0], n[1]);
                    r.lineEnd();
                  }
                } else
                  g > 1 && 2 & l && u.push(u.pop().concat(u.shift())),
                    o.push(u.filter(Wd));
            }
            return u;
          };
        }
        function Wd(e) {
          return e.length > 1;
        }
        function Yd(e, t) {
          return (
            ((e = e.x)[0] < 0 ? e[1] - Nl - Ll : Nl - e[1]) -
            ((t = t.x)[0] < 0 ? t[1] - Nl - Ll : Nl - t[1])
          );
        }
        const Hd = Bd(
          function () {
            return !0;
          },
          function (e) {
            var t,
              i = NaN,
              n = NaN,
              r = NaN;
            return {
              lineStart: function () {
                e.lineStart(), (t = 1);
              },
              point: function (s, o) {
                var a = s > 0 ? Dl : -Dl,
                  l = Al(s - i);
                Al(l - Dl) < Ll
                  ? (e.point(i, (n = (n + o) / 2 > 0 ? Nl : -Nl)),
                    e.point(r, n),
                    e.lineEnd(),
                    e.lineStart(),
                    e.point(a, n),
                    e.point(s, n),
                    (t = 0))
                  : r !== a &&
                    l >= Dl &&
                    (Al(i - r) < Ll && (i -= r * Ll),
                    Al(s - a) < Ll && (s -= a * Ll),
                    (n = (function (e, t, i, n) {
                      var r,
                        s,
                        o = jl(e - i);
                      return Al(o) > Ll
                        ? Rl(
                            (jl(t) * (s = Fl(n)) * jl(i) -
                              jl(n) * (r = Fl(t)) * jl(e)) /
                              (r * s * o)
                          )
                        : (t + n) / 2;
                    })(i, n, s, o)),
                    e.point(r, n),
                    e.lineEnd(),
                    e.lineStart(),
                    e.point(a, n),
                    (t = 0)),
                  e.point((i = s), (n = o)),
                  (r = a);
              },
              lineEnd: function () {
                e.lineEnd(), (i = n = NaN);
              },
              clean: function () {
                return 2 - t;
              },
            };
          },
          function (e, t, i, n) {
            var r;
            if (null == e)
              (r = i * Nl),
                n.point(-Dl, r),
                n.point(0, r),
                n.point(Dl, r),
                n.point(Dl, 0),
                n.point(Dl, -r),
                n.point(0, -r),
                n.point(-Dl, -r),
                n.point(-Dl, 0),
                n.point(-Dl, r);
            else if (Al(e[0] - t[0]) > Ll) {
              var s = e[0] < t[0] ? Dl : -Dl;
              (r = (i * s) / 2), n.point(-s, r), n.point(0, r), n.point(s, r);
            } else n.point(t[0], t[1]);
          },
          [-Dl, -Nl]
        );
        function jd(e) {
          var t = Fl(e),
            i = 6 * Ol,
            n = t > 0,
            r = Al(t) > Ll;
          function s(e, i) {
            return Fl(e) * Fl(i) > t;
          }
          function o(e, i, n) {
            var r = [1, 0, 0],
              s = bc(mc(e), mc(i)),
              o = _c(s, s),
              a = s[0],
              l = o - a * a;
            if (!l) return !n && e;
            var c = (t * o) / l,
              d = (-t * a) / l,
              h = bc(r, s),
              u = yc(r, c);
            vc(u, yc(s, d));
            var g = h,
              f = _c(u, g),
              p = _c(g, g),
              m = f * f - p * (_c(u, u) - 1);
            if (!(m < 0)) {
              var _ = zl(m),
                b = yc(g, (-f - _) / p);
              if ((vc(b, u), (b = pc(b)), !n)) return b;
              var v,
                y = e[0],
                w = i[0],
                C = e[1],
                S = i[1];
              w < y && ((v = y), (y = w), (w = v));
              var k = w - y,
                x = Al(k - Dl) < Ll;
              if (
                (!x && S < C && ((v = C), (C = S), (S = v)),
                x || k < Ll
                  ? x
                    ? (C + S > 0) ^ (b[1] < (Al(b[0] - y) < Ll ? C : S))
                    : C <= b[1] && b[1] <= S
                  : (k > Dl) ^ (y <= b[0] && b[0] <= w))
              ) {
                var L = yc(g, (-f + _) / p);
                return vc(L, u), [b, pc(L)];
              }
            }
          }
          function a(t, i) {
            var r = n ? e : Dl - e,
              s = 0;
            return (
              t < -r ? (s |= 1) : t > r && (s |= 2),
              i < -r ? (s |= 4) : i > r && (s |= 8),
              s
            );
          }
          return Bd(
            s,
            function (e) {
              var t, i, l, c, d;
              return {
                lineStart: function () {
                  (c = l = !1), (d = 1);
                },
                point: function (h, u) {
                  var g,
                    f = [h, u],
                    p = s(h, u),
                    m = n
                      ? p
                        ? 0
                        : a(h, u)
                      : p
                      ? a(h + (h < 0 ? Dl : -Dl), u)
                      : 0;
                  if (
                    (!t && (c = l = p) && e.lineStart(),
                    p !== l &&
                      (!(g = o(t, f)) || Td(t, g) || Td(f, g)) &&
                      ((f[0] += Ll), (f[1] += Ll), (p = s(f[0], f[1]))),
                    p !== l)
                  )
                    (d = 0),
                      p
                        ? (e.lineStart(), (g = o(f, t)), e.point(g[0], g[1]))
                        : ((g = o(t, f)), e.point(g[0], g[1]), e.lineEnd()),
                      (t = g);
                  else if (r && t && n ^ p) {
                    var _;
                    m & i ||
                      !(_ = o(f, t, !0)) ||
                      ((d = 0),
                      n
                        ? (e.lineStart(),
                          e.point(_[0][0], _[0][1]),
                          e.point(_[1][0], _[1][1]),
                          e.lineEnd())
                        : (e.point(_[1][0], _[1][1]),
                          e.lineEnd(),
                          e.lineStart(),
                          e.point(_[0][0], _[0][1])));
                  }
                  !p || (t && Td(t, f)) || e.point(f[0], f[1]),
                    (t = f),
                    (l = p),
                    (i = m);
                },
                lineEnd: function () {
                  l && e.lineEnd(), (t = null);
                },
                clean: function () {
                  return d | ((c && l) << 1);
                },
              };
            },
            function (t, n, r, s) {
              Md(s, e, i, r, t, n);
            },
            n ? [0, -e] : [-Dl, e - Dl]
          );
        }
        var Vd = 1e9,
          zd = -Vd;
        function Ud(e, t, i, n) {
          function r(r, s) {
            return e <= r && r <= i && t <= s && s <= n;
          }
          function s(r, s, a, c) {
            var d = 0,
              h = 0;
            if (
              null == r ||
              (d = o(r, a)) !== (h = o(s, a)) ||
              (l(r, s) < 0) ^ (a > 0)
            )
              do {
                c.point(0 === d || 3 === d ? e : i, d > 1 ? n : t);
              } while ((d = (d + a + 4) % 4) !== h);
            else c.point(s[0], s[1]);
          }
          function o(n, r) {
            return Al(n[0] - e) < Ll
              ? r > 0
                ? 0
                : 3
              : Al(n[0] - i) < Ll
              ? r > 0
                ? 2
                : 1
              : Al(n[1] - t) < Ll
              ? r > 0
                ? 1
                : 0
              : r > 0
              ? 3
              : 2;
          }
          function a(e, t) {
            return l(e.x, t.x);
          }
          function l(e, t) {
            var i = o(e, 1),
              n = o(t, 1);
            return i !== n
              ? i - n
              : 0 === i
              ? t[1] - e[1]
              : 1 === i
              ? e[0] - t[0]
              : 2 === i
              ? e[1] - t[1]
              : t[0] - e[0];
          }
          return function (o) {
            var l,
              c,
              d,
              h,
              u,
              g,
              f,
              p,
              m,
              _,
              b,
              v = o,
              y = Ed(),
              w = {
                point: C,
                lineStart: function () {
                  (w.point = S),
                    c && c.push((d = [])),
                    (_ = !0),
                    (m = !1),
                    (f = p = NaN);
                },
                lineEnd: function () {
                  l && (S(h, u), g && m && y.rejoin(), l.push(y.result())),
                    (w.point = C),
                    m && v.lineEnd();
                },
                polygonStart: function () {
                  (v = y), (l = []), (c = []), (b = !0);
                },
                polygonEnd: function () {
                  var t = (function () {
                      for (var t = 0, i = 0, r = c.length; i < r; ++i)
                        for (
                          var s,
                            o,
                            a = c[i],
                            l = 1,
                            d = a.length,
                            h = a[0],
                            u = h[0],
                            g = h[1];
                          l < d;
                          ++l
                        )
                          (s = u),
                            (o = g),
                            (u = (h = a[l])[0]),
                            (g = h[1]),
                            o <= n
                              ? g > n &&
                                (u - s) * (n - o) > (g - o) * (e - s) &&
                                ++t
                              : g <= n &&
                                (u - s) * (n - o) < (g - o) * (e - s) &&
                                --t;
                      return t;
                    })(),
                    i = b && t,
                    r = (l = B(l)).length;
                  (i || r) &&
                    (o.polygonStart(),
                    i && (o.lineStart(), s(null, null, 1, o), o.lineEnd()),
                    r && Od(l, a, t, s, o),
                    o.polygonEnd()),
                    (v = o),
                    (l = c = d = null);
                },
              };
            function C(e, t) {
              r(e, t) && v.point(e, t);
            }
            function S(s, o) {
              var a = r(s, o);
              if ((c && d.push([s, o]), _))
                (h = s),
                  (u = o),
                  (g = a),
                  (_ = !1),
                  a && (v.lineStart(), v.point(s, o));
              else if (a && m) v.point(s, o);
              else {
                var l = [
                    (f = Math.max(zd, Math.min(Vd, f))),
                    (p = Math.max(zd, Math.min(Vd, p))),
                  ],
                  y = [
                    (s = Math.max(zd, Math.min(Vd, s))),
                    (o = Math.max(zd, Math.min(Vd, o))),
                  ];
                !(function (e, t, i, n, r, s) {
                  var o,
                    a = e[0],
                    l = e[1],
                    c = 0,
                    d = 1,
                    h = t[0] - a,
                    u = t[1] - l;
                  if (((o = i - a), h || !(o > 0))) {
                    if (((o /= h), h < 0)) {
                      if (o < c) return;
                      o < d && (d = o);
                    } else if (h > 0) {
                      if (o > d) return;
                      o > c && (c = o);
                    }
                    if (((o = r - a), h || !(o < 0))) {
                      if (((o /= h), h < 0)) {
                        if (o > d) return;
                        o > c && (c = o);
                      } else if (h > 0) {
                        if (o < c) return;
                        o < d && (d = o);
                      }
                      if (((o = n - l), u || !(o > 0))) {
                        if (((o /= u), u < 0)) {
                          if (o < c) return;
                          o < d && (d = o);
                        } else if (u > 0) {
                          if (o > d) return;
                          o > c && (c = o);
                        }
                        if (((o = s - l), u || !(o < 0))) {
                          if (((o /= u), u < 0)) {
                            if (o > d) return;
                            o > c && (c = o);
                          } else if (u > 0) {
                            if (o < c) return;
                            o < d && (d = o);
                          }
                          return (
                            c > 0 && ((e[0] = a + c * h), (e[1] = l + c * u)),
                            d < 1 && ((t[0] = a + d * h), (t[1] = l + d * u)),
                            !0
                          );
                        }
                      }
                    }
                  }
                })(l, y, e, t, i, n)
                  ? a && (v.lineStart(), v.point(s, o), (b = !1))
                  : (m || (v.lineStart(), v.point(l[0], l[1])),
                    v.point(y[0], y[1]),
                    a || v.lineEnd(),
                    (b = !1));
              }
              (f = s), (p = o), (m = a);
            }
            return w;
          };
        }
        function $d() {
          var e,
            t,
            i,
            n = 0,
            r = 0,
            s = 960,
            o = 500;
          return (i = {
            stream: function (i) {
              return e && t === i ? e : (e = Ud(n, r, s, o)((t = i)));
            },
            extent: function (a) {
              return arguments.length
                ? ((n = +a[0][0]),
                  (r = +a[0][1]),
                  (s = +a[1][0]),
                  (o = +a[1][1]),
                  (e = t = null),
                  i)
                : [
                    [n, r],
                    [s, o],
                  ];
            },
          });
        }
        var Kd,
          qd,
          Gd,
          Zd = Cl(),
          Jd = {
            sphere: Gl,
            point: Gl,
            lineStart: function () {
              (Jd.point = Xd), (Jd.lineEnd = Qd);
            },
            lineEnd: Gl,
            polygonStart: Gl,
            polygonEnd: Gl,
          };
        function Qd() {
          Jd.point = Jd.lineEnd = Gl;
        }
        function Xd(e, t) {
          (Kd = e *= Ol), (qd = jl((t *= Ol))), (Gd = Fl(t)), (Jd.point = eh);
        }
        function eh(e, t) {
          e *= Ol;
          var i = jl((t *= Ol)),
            n = Fl(t),
            r = Al(e - Kd),
            s = Fl(r),
            o = n * jl(r),
            a = Gd * i - qd * n * s,
            l = qd * i + Gd * n * s;
          Zd.add(Pl(zl(o * o + a * a), l)), (Kd = e), (qd = i), (Gd = n);
        }
        function th(e) {
          return Zd.reset(), tc(e, Jd), +Zd;
        }
        var ih = [null, null],
          nh = { type: 'LineString', coordinates: ih };
        function rh(e, t) {
          return (ih[0] = e), (ih[1] = t), th(nh);
        }
        var sh = {
            Feature: function (e, t) {
              return ah(e.geometry, t);
            },
            FeatureCollection: function (e, t) {
              for (var i = e.features, n = -1, r = i.length; ++n < r; )
                if (ah(i[n].geometry, t)) return !0;
              return !1;
            },
          },
          oh = {
            Sphere: function () {
              return !0;
            },
            Point: function (e, t) {
              return lh(e.coordinates, t);
            },
            MultiPoint: function (e, t) {
              for (var i = e.coordinates, n = -1, r = i.length; ++n < r; )
                if (lh(i[n], t)) return !0;
              return !1;
            },
            LineString: function (e, t) {
              return ch(e.coordinates, t);
            },
            MultiLineString: function (e, t) {
              for (var i = e.coordinates, n = -1, r = i.length; ++n < r; )
                if (ch(i[n], t)) return !0;
              return !1;
            },
            Polygon: function (e, t) {
              return dh(e.coordinates, t);
            },
            MultiPolygon: function (e, t) {
              for (var i = e.coordinates, n = -1, r = i.length; ++n < r; )
                if (dh(i[n], t)) return !0;
              return !1;
            },
            GeometryCollection: function (e, t) {
              for (var i = e.geometries, n = -1, r = i.length; ++n < r; )
                if (ah(i[n], t)) return !0;
              return !1;
            },
          };
        function ah(e, t) {
          return !(!e || !oh.hasOwnProperty(e.type)) && oh[e.type](e, t);
        }
        function lh(e, t) {
          return 0 === rh(e, t);
        }
        function ch(e, t) {
          for (var i, n, r, s = 0, o = e.length; s < o; s++) {
            if (0 === (n = rh(e[s], t))) return !0;
            if (
              s > 0 &&
              (r = rh(e[s], e[s - 1])) > 0 &&
              i <= r &&
              n <= r &&
              (i + n - r) * (1 - Math.pow((i - n) / r, 2)) < Ml * r
            )
              return !0;
            i = n;
          }
          return !1;
        }
        function dh(e, t) {
          return !!Fd(e.map(hh), uh(t));
        }
        function hh(e) {
          return (e = e.map(uh)).pop(), e;
        }
        function uh(e) {
          return [e[0] * Ol, e[1] * Ol];
        }
        function gh(e, t) {
          return (e && sh.hasOwnProperty(e.type) ? sh[e.type] : ah)(e, t);
        }
        function fh(e, t, i) {
          var n = S(e, t - Ll, i).concat(t);
          return function (e) {
            return n.map(function (t) {
              return [e, t];
            });
          };
        }
        function ph(e, t, i) {
          var n = S(e, t - Ll, i).concat(t);
          return function (e) {
            return n.map(function (t) {
              return [t, e];
            });
          };
        }
        function mh() {
          var e,
            t,
            i,
            n,
            r,
            s,
            o,
            a,
            l,
            c,
            d,
            h,
            u = 10,
            g = u,
            f = 90,
            p = 360,
            m = 2.5;
          function _() {
            return { type: 'MultiLineString', coordinates: b() };
          }
          function b() {
            return S(Bl(n / f) * f, i, f)
              .map(d)
              .concat(S(Bl(a / p) * p, o, p).map(h))
              .concat(
                S(Bl(t / u) * u, e, u)
                  .filter(function (e) {
                    return Al(e % f) > Ll;
                  })
                  .map(l)
              )
              .concat(
                S(Bl(s / g) * g, r, g)
                  .filter(function (e) {
                    return Al(e % p) > Ll;
                  })
                  .map(c)
              );
          }
          return (
            (_.lines = function () {
              return b().map(function (e) {
                return { type: 'LineString', coordinates: e };
              });
            }),
            (_.outline = function () {
              return {
                type: 'Polygon',
                coordinates: [
                  d(n).concat(
                    h(o).slice(1),
                    d(i).reverse().slice(1),
                    h(a).reverse().slice(1)
                  ),
                ],
              };
            }),
            (_.extent = function (e) {
              return arguments.length
                ? _.extentMajor(e).extentMinor(e)
                : _.extentMinor();
            }),
            (_.extentMajor = function (e) {
              return arguments.length
                ? ((n = +e[0][0]),
                  (i = +e[1][0]),
                  (a = +e[0][1]),
                  (o = +e[1][1]),
                  n > i && ((e = n), (n = i), (i = e)),
                  a > o && ((e = a), (a = o), (o = e)),
                  _.precision(m))
                : [
                    [n, a],
                    [i, o],
                  ];
            }),
            (_.extentMinor = function (i) {
              return arguments.length
                ? ((t = +i[0][0]),
                  (e = +i[1][0]),
                  (s = +i[0][1]),
                  (r = +i[1][1]),
                  t > e && ((i = t), (t = e), (e = i)),
                  s > r && ((i = s), (s = r), (r = i)),
                  _.precision(m))
                : [
                    [t, s],
                    [e, r],
                  ];
            }),
            (_.step = function (e) {
              return arguments.length
                ? _.stepMajor(e).stepMinor(e)
                : _.stepMinor();
            }),
            (_.stepMajor = function (e) {
              return arguments.length ? ((f = +e[0]), (p = +e[1]), _) : [f, p];
            }),
            (_.stepMinor = function (e) {
              return arguments.length ? ((u = +e[0]), (g = +e[1]), _) : [u, g];
            }),
            (_.precision = function (u) {
              return arguments.length
                ? ((m = +u),
                  (l = fh(s, r, 90)),
                  (c = ph(t, e, m)),
                  (d = fh(a, o, 90)),
                  (h = ph(n, i, m)),
                  _)
                : m;
            }),
            _.extentMajor([
              [-180, -89.999999],
              [180, 89.999999],
            ]).extentMinor([
              [-180, -80.000001],
              [180, 80.000001],
            ])
          );
        }
        function _h() {
          return mh()();
        }
        function bh(e, t) {
          var i = e[0] * Ol,
            n = e[1] * Ol,
            r = t[0] * Ol,
            s = t[1] * Ol,
            o = Fl(n),
            a = jl(n),
            l = Fl(s),
            c = jl(s),
            d = o * Fl(i),
            h = o * jl(i),
            u = l * Fl(r),
            g = l * jl(r),
            f = 2 * Kl(zl(ql(s - n) + o * l * ql(r - i))),
            p = jl(f),
            m = f
              ? function (e) {
                  var t = jl((e *= f)) / p,
                    i = jl(f - e) / p,
                    n = i * d + t * u,
                    r = i * h + t * g,
                    s = i * a + t * c;
                  return [Pl(r, n) * Il, Pl(s, zl(n * n + r * r)) * Il];
                }
              : function () {
                  return [i * Il, n * Il];
                };
          return (m.distance = f), m;
        }
        function vh(e) {
          return e;
        }
        var yh,
          wh,
          Ch,
          Sh,
          kh = Cl(),
          xh = Cl(),
          Lh = {
            point: Gl,
            lineStart: Gl,
            lineEnd: Gl,
            polygonStart: function () {
              (Lh.lineStart = Mh), (Lh.lineEnd = Eh);
            },
            polygonEnd: function () {
              (Lh.lineStart = Lh.lineEnd = Lh.point = Gl),
                kh.add(Al(xh)),
                xh.reset();
            },
            result: function () {
              var e = kh / 2;
              return kh.reset(), e;
            },
          };
        function Mh() {
          Lh.point = Dh;
        }
        function Dh(e, t) {
          (Lh.point = Nh), (yh = Ch = e), (wh = Sh = t);
        }
        function Nh(e, t) {
          xh.add(Sh * e - Ch * t), (Ch = e), (Sh = t);
        }
        function Eh() {
          Nh(yh, wh);
        }
        const Th = Lh;
        var Ih = 1 / 0,
          Oh = Ih,
          Ah = -Ih,
          Rh = Ah;
        const Ph = {
          point: function (e, t) {
            e < Ih && (Ih = e),
              e > Ah && (Ah = e),
              t < Oh && (Oh = t),
              t > Rh && (Rh = t);
          },
          lineStart: Gl,
          lineEnd: Gl,
          polygonStart: Gl,
          polygonEnd: Gl,
          result: function () {
            var e = [
              [Ih, Oh],
              [Ah, Rh],
            ];
            return (Ah = Rh = -(Oh = Ih = 1 / 0)), e;
          },
        };
        var Fh,
          Bh,
          Wh,
          Yh,
          Hh = 0,
          jh = 0,
          Vh = 0,
          zh = 0,
          Uh = 0,
          $h = 0,
          Kh = 0,
          qh = 0,
          Gh = 0,
          Zh = {
            point: Jh,
            lineStart: Qh,
            lineEnd: tu,
            polygonStart: function () {
              (Zh.lineStart = iu), (Zh.lineEnd = nu);
            },
            polygonEnd: function () {
              (Zh.point = Jh), (Zh.lineStart = Qh), (Zh.lineEnd = tu);
            },
            result: function () {
              var e = Gh
                ? [Kh / Gh, qh / Gh]
                : $h
                ? [zh / $h, Uh / $h]
                : Vh
                ? [Hh / Vh, jh / Vh]
                : [NaN, NaN];
              return (Hh = jh = Vh = zh = Uh = $h = Kh = qh = Gh = 0), e;
            },
          };
        function Jh(e, t) {
          (Hh += e), (jh += t), ++Vh;
        }
        function Qh() {
          Zh.point = Xh;
        }
        function Xh(e, t) {
          (Zh.point = eu), Jh((Wh = e), (Yh = t));
        }
        function eu(e, t) {
          var i = e - Wh,
            n = t - Yh,
            r = zl(i * i + n * n);
          (zh += (r * (Wh + e)) / 2),
            (Uh += (r * (Yh + t)) / 2),
            ($h += r),
            Jh((Wh = e), (Yh = t));
        }
        function tu() {
          Zh.point = Jh;
        }
        function iu() {
          Zh.point = ru;
        }
        function nu() {
          su(Fh, Bh);
        }
        function ru(e, t) {
          (Zh.point = su), Jh((Fh = Wh = e), (Bh = Yh = t));
        }
        function su(e, t) {
          var i = e - Wh,
            n = t - Yh,
            r = zl(i * i + n * n);
          (zh += (r * (Wh + e)) / 2),
            (Uh += (r * (Yh + t)) / 2),
            ($h += r),
            (Kh += (r = Yh * e - Wh * t) * (Wh + e)),
            (qh += r * (Yh + t)),
            (Gh += 3 * r),
            Jh((Wh = e), (Yh = t));
        }
        const ou = Zh;
        function au(e) {
          this._context = e;
        }
        au.prototype = {
          _radius: 4.5,
          pointRadius: function (e) {
            return (this._radius = e), 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 (e, t) {
            switch (this._point) {
              case 0:
                this._context.moveTo(e, t), (this._point = 1);
                break;
              case 1:
                this._context.lineTo(e, t);
                break;
              default:
                this._context.moveTo(e + this._radius, t),
                  this._context.arc(e, t, this._radius, 0, Tl);
            }
          },
          result: Gl,
        };
        var lu,
          cu,
          du,
          hu,
          uu,
          gu = Cl(),
          fu = {
            point: Gl,
            lineStart: function () {
              fu.point = pu;
            },
            lineEnd: function () {
              lu && mu(cu, du), (fu.point = Gl);
            },
            polygonStart: function () {
              lu = !0;
            },
            polygonEnd: function () {
              lu = null;
            },
            result: function () {
              var e = +gu;
              return gu.reset(), e;
            },
          };
        function pu(e, t) {
          (fu.point = mu), (cu = hu = e), (du = uu = t);
        }
        function mu(e, t) {
          (hu -= e),
            (uu -= t),
            gu.add(zl(hu * hu + uu * uu)),
            (hu = e),
            (uu = t);
        }
        const _u = fu;
        function bu() {
          this._string = [];
        }
        function vu(e) {
          return (
            'm0,' +
            e +
            'a' +
            e +
            ',' +
            e +
            ' 0 1,1 0,' +
            -2 * e +
            'a' +
            e +
            ',' +
            e +
            ' 0 1,1 0,' +
            2 * e +
            'z'
          );
        }
        function yu(e, t) {
          var i,
            n,
            r = 4.5;
          function s(e) {
            return (
              e &&
                ('function' == typeof r &&
                  n.pointRadius(+r.apply(this, arguments)),
                tc(e, i(n))),
              n.result()
            );
          }
          return (
            (s.area = function (e) {
              return tc(e, i(Th)), Th.result();
            }),
            (s.measure = function (e) {
              return tc(e, i(_u)), _u.result();
            }),
            (s.bounds = function (e) {
              return tc(e, i(Ph)), Ph.result();
            }),
            (s.centroid = function (e) {
              return tc(e, i(ou)), ou.result();
            }),
            (s.projection = function (t) {
              return arguments.length
                ? ((i = null == t ? ((e = null), vh) : (e = t).stream), s)
                : e;
            }),
            (s.context = function (e) {
              return arguments.length
                ? ((n = null == e ? ((t = null), new bu()) : new au((t = e))),
                  'function' != typeof r && n.pointRadius(r),
                  s)
                : t;
            }),
            (s.pointRadius = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : (n.pointRadius(+e), +e)),
                  s)
                : r;
            }),
            s.projection(e).context(t)
          );
        }
        function wu(e) {
          return { stream: Cu(e) };
        }
        function Cu(e) {
          return function (t) {
            var i = new Su();
            for (var n in e) i[n] = e[n];
            return (i.stream = t), i;
          };
        }
        function Su() {}
        function ku(e, t, i) {
          var n = e.clipExtent && e.clipExtent();
          return (
            e.scale(150).translate([0, 0]),
            null != n && e.clipExtent(null),
            tc(i, e.stream(Ph)),
            t(Ph.result()),
            null != n && e.clipExtent(n),
            e
          );
        }
        function xu(e, t, i) {
          return ku(
            e,
            function (i) {
              var n = t[1][0] - t[0][0],
                r = t[1][1] - t[0][1],
                s = Math.min(n / (i[1][0] - i[0][0]), r / (i[1][1] - i[0][1])),
                o = +t[0][0] + (n - s * (i[1][0] + i[0][0])) / 2,
                a = +t[0][1] + (r - s * (i[1][1] + i[0][1])) / 2;
              e.scale(150 * s).translate([o, a]);
            },
            i
          );
        }
        function Lu(e, t, i) {
          return xu(e, [[0, 0], t], i);
        }
        function Mu(e, t, i) {
          return ku(
            e,
            function (i) {
              var n = +t,
                r = n / (i[1][0] - i[0][0]),
                s = (n - r * (i[1][0] + i[0][0])) / 2,
                o = -r * i[0][1];
              e.scale(150 * r).translate([s, o]);
            },
            i
          );
        }
        function Du(e, t, i) {
          return ku(
            e,
            function (i) {
              var n = +t,
                r = n / (i[1][1] - i[0][1]),
                s = -r * i[0][0],
                o = (n - r * (i[1][1] + i[0][1])) / 2;
              e.scale(150 * r).translate([s, o]);
            },
            i
          );
        }
        (bu.prototype = {
          _radius: 4.5,
          _circle: vu(4.5),
          pointRadius: function (e) {
            return (
              (e = +e) !== this._radius &&
                ((this._radius = e), (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 (e, t) {
            switch (this._point) {
              case 0:
                this._string.push('M', e, ',', t), (this._point = 1);
                break;
              case 1:
                this._string.push('L', e, ',', t);
                break;
              default:
                null == this._circle && (this._circle = vu(this._radius)),
                  this._string.push('M', e, ',', t, this._circle);
            }
          },
          result: function () {
            if (this._string.length) {
              var e = this._string.join('');
              return (this._string = []), e;
            }
            return null;
          },
        }),
          (Su.prototype = {
            constructor: Su,
            point: function (e, t) {
              this.stream.point(e, t);
            },
            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 Nu = Fl(30 * Ol);
        function Eu(e, t) {
          return +t
            ? (function (e, t) {
                function i(n, r, s, o, a, l, c, d, h, u, g, f, p, m) {
                  var _ = c - n,
                    b = d - r,
                    v = _ * _ + b * b;
                  if (v > 4 * t && p--) {
                    var y = o + u,
                      w = a + g,
                      C = l + f,
                      S = zl(y * y + w * w + C * C),
                      k = Kl((C /= S)),
                      x =
                        Al(Al(C) - 1) < Ll || Al(s - h) < Ll
                          ? (s + h) / 2
                          : Pl(w, y),
                      L = e(x, k),
                      M = L[0],
                      D = L[1],
                      N = M - n,
                      E = D - r,
                      T = b * N - _ * E;
                    ((T * T) / v > t ||
                      Al((_ * N + b * E) / v - 0.5) > 0.3 ||
                      o * u + a * g + l * f < Nu) &&
                      (i(
                        n,
                        r,
                        s,
                        o,
                        a,
                        l,
                        M,
                        D,
                        x,
                        (y /= S),
                        (w /= S),
                        C,
                        p,
                        m
                      ),
                      m.point(M, D),
                      i(M, D, x, y, w, C, c, d, h, u, g, f, p, m));
                  }
                }
                return function (t) {
                  var n,
                    r,
                    s,
                    o,
                    a,
                    l,
                    c,
                    d,
                    h,
                    u,
                    g,
                    f,
                    p = {
                      point: m,
                      lineStart: _,
                      lineEnd: v,
                      polygonStart: function () {
                        t.polygonStart(), (p.lineStart = y);
                      },
                      polygonEnd: function () {
                        t.polygonEnd(), (p.lineStart = _);
                      },
                    };
                  function m(i, n) {
                    (i = e(i, n)), t.point(i[0], i[1]);
                  }
                  function _() {
                    (d = NaN), (p.point = b), t.lineStart();
                  }
                  function b(n, r) {
                    var s = mc([n, r]),
                      o = e(n, r);
                    i(
                      d,
                      h,
                      c,
                      u,
                      g,
                      f,
                      (d = o[0]),
                      (h = o[1]),
                      (c = n),
                      (u = s[0]),
                      (g = s[1]),
                      (f = s[2]),
                      16,
                      t
                    ),
                      t.point(d, h);
                  }
                  function v() {
                    (p.point = m), t.lineEnd();
                  }
                  function y() {
                    _(), (p.point = w), (p.lineEnd = C);
                  }
                  function w(e, t) {
                    b((n = e), t),
                      (r = d),
                      (s = h),
                      (o = u),
                      (a = g),
                      (l = f),
                      (p.point = b);
                  }
                  function C() {
                    i(d, h, c, u, g, f, r, s, n, o, a, l, 16, t),
                      (p.lineEnd = v),
                      v();
                  }
                  return p;
                };
              })(e, t)
            : (function (e) {
                return Cu({
                  point: function (t, i) {
                    (t = e(t, i)), this.stream.point(t[0], t[1]);
                  },
                });
              })(e);
        }
        var Tu = Cu({
          point: function (e, t) {
            this.stream.point(e * Ol, t * Ol);
          },
        });
        function Iu(e, t, i) {
          function n(n, r) {
            return [t + e * n, i - e * r];
          }
          return (
            (n.invert = function (n, r) {
              return [(n - t) / e, (i - r) / e];
            }),
            n
          );
        }
        function Ou(e, t, i, n) {
          var r = Fl(n),
            s = jl(n),
            o = r * e,
            a = s * e,
            l = r / e,
            c = s / e,
            d = (s * i - r * t) / e,
            h = (s * t + r * i) / e;
          function u(e, n) {
            return [o * e - a * n + t, i - a * e - o * n];
          }
          return (
            (u.invert = function (e, t) {
              return [l * e - c * t + d, h - c * e - l * t];
            }),
            u
          );
        }
        function Au(e) {
          return Ru(function () {
            return e;
          })();
        }
        function Ru(e) {
          var t,
            i,
            n,
            r,
            s,
            o,
            a,
            l,
            c,
            d,
            h = 150,
            u = 480,
            g = 250,
            f = 0,
            p = 0,
            m = 0,
            _ = 0,
            b = 0,
            v = 0,
            y = null,
            w = Hd,
            C = null,
            S = vh,
            k = 0.5;
          function x(e) {
            return l(e[0] * Ol, e[1] * Ol);
          }
          function L(e) {
            return (e = l.invert(e[0], e[1])) && [e[0] * Il, e[1] * Il];
          }
          function M() {
            var e = Ou(h, 0, 0, v).apply(null, t(f, p)),
              n = (v ? Ou : Iu)(h, u - e[0], g - e[1], v);
            return (
              (i = Cd(m, _, b)),
              (a = yd(t, n)),
              (l = yd(i, a)),
              (o = Eu(a, k)),
              D()
            );
          }
          function D() {
            return (c = d = null), x;
          }
          return (
            (x.stream = function (e) {
              return c && d === e
                ? c
                : (c = Tu(
                    (function (e) {
                      return Cu({
                        point: function (t, i) {
                          var n = e(t, i);
                          return this.stream.point(n[0], n[1]);
                        },
                      });
                    })(i)(w(o(S((d = e)))))
                  ));
            }),
            (x.preclip = function (e) {
              return arguments.length ? ((w = e), (y = void 0), D()) : w;
            }),
            (x.postclip = function (e) {
              return arguments.length
                ? ((S = e), (C = n = r = s = null), D())
                : S;
            }),
            (x.clipAngle = function (e) {
              return arguments.length
                ? ((w = +e ? jd((y = e * Ol)) : ((y = null), Hd)), D())
                : y * Il;
            }),
            (x.clipExtent = function (e) {
              return arguments.length
                ? ((S =
                    null == e
                      ? ((C = n = r = s = null), vh)
                      : Ud(
                          (C = +e[0][0]),
                          (n = +e[0][1]),
                          (r = +e[1][0]),
                          (s = +e[1][1])
                        )),
                  D())
                : null == C
                ? null
                : [
                    [C, n],
                    [r, s],
                  ];
            }),
            (x.scale = function (e) {
              return arguments.length ? ((h = +e), M()) : h;
            }),
            (x.translate = function (e) {
              return arguments.length
                ? ((u = +e[0]), (g = +e[1]), M())
                : [u, g];
            }),
            (x.center = function (e) {
              return arguments.length
                ? ((f = (e[0] % 360) * Ol), (p = (e[1] % 360) * Ol), M())
                : [f * Il, p * Il];
            }),
            (x.rotate = function (e) {
              return arguments.length
                ? ((m = (e[0] % 360) * Ol),
                  (_ = (e[1] % 360) * Ol),
                  (b = e.length > 2 ? (e[2] % 360) * Ol : 0),
                  M())
                : [m * Il, _ * Il, b * Il];
            }),
            (x.angle = function (e) {
              return arguments.length ? ((v = (e % 360) * Ol), M()) : v * Il;
            }),
            (x.precision = function (e) {
              return arguments.length ? ((o = Eu(a, (k = e * e))), D()) : zl(k);
            }),
            (x.fitExtent = function (e, t) {
              return xu(x, e, t);
            }),
            (x.fitSize = function (e, t) {
              return Lu(x, e, t);
            }),
            (x.fitWidth = function (e, t) {
              return Mu(x, e, t);
            }),
            (x.fitHeight = function (e, t) {
              return Du(x, e, t);
            }),
            function () {
              return (
                (t = e.apply(this, arguments)), (x.invert = t.invert && L), M()
              );
            }
          );
        }
        function Pu(e) {
          var t = 0,
            i = Dl / 3,
            n = Ru(e),
            r = n(t, i);
          return (
            (r.parallels = function (e) {
              return arguments.length
                ? n((t = e[0] * Ol), (i = e[1] * Ol))
                : [t * Il, i * Il];
            }),
            r
          );
        }
        function Fu(e, t) {
          var i = jl(e),
            n = (i + jl(t)) / 2;
          if (Al(n) < Ll)
            return (function (e) {
              var t = Fl(e);
              function i(e, i) {
                return [e * t, jl(i) / t];
              }
              return (
                (i.invert = function (e, i) {
                  return [e / t, Kl(i * t)];
                }),
                i
              );
            })(e);
          var r = 1 + i * (2 * n - i),
            s = zl(r) / n;
          function o(e, t) {
            var i = zl(r - 2 * n * jl(t)) / n;
            return [i * jl((e *= n)), s - i * Fl(e)];
          }
          return (
            (o.invert = function (e, t) {
              var i = s - t;
              return [
                (Pl(e, Al(i)) / n) * Vl(i),
                Kl((r - (e * e + i * i) * n * n) / (2 * n)),
              ];
            }),
            o
          );
        }
        function Bu() {
          return Pu(Fu).scale(155.424).center([0, 33.6442]);
        }
        function Wu() {
          return Bu()
            .parallels([29.5, 45.5])
            .scale(1070)
            .translate([480, 250])
            .rotate([96, 0])
            .center([-0.6, 38.7]);
        }
        function Yu() {
          var e,
            t,
            i,
            n,
            r,
            s,
            o = Wu(),
            a = Bu().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),
            l = Bu().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),
            c = {
              point: function (e, t) {
                s = [e, t];
              },
            };
          function d(e) {
            var t = e[0],
              o = e[1];
            return (
              (s = null),
              i.point(t, o),
              s || (n.point(t, o), s) || (r.point(t, o), s)
            );
          }
          function h() {
            return (e = t = null), d;
          }
          return (
            (d.invert = function (e) {
              var t = o.scale(),
                i = o.translate(),
                n = (e[0] - i[0]) / t,
                r = (e[1] - i[1]) / t;
              return (r >= 0.12 && r < 0.234 && n >= -0.425 && n < -0.214
                ? a
                : r >= 0.166 && r < 0.234 && n >= -0.214 && n < -0.115
                ? l
                : o
              ).invert(e);
            }),
            (d.stream = function (i) {
              return e && t === i
                ? e
                : ((n = [o.stream((t = i)), a.stream(i), l.stream(i)]),
                  (r = n.length),
                  (e = {
                    point: function (e, t) {
                      for (var i = -1; ++i < r; ) n[i].point(e, t);
                    },
                    sphere: function () {
                      for (var e = -1; ++e < r; ) n[e].sphere();
                    },
                    lineStart: function () {
                      for (var e = -1; ++e < r; ) n[e].lineStart();
                    },
                    lineEnd: function () {
                      for (var e = -1; ++e < r; ) n[e].lineEnd();
                    },
                    polygonStart: function () {
                      for (var e = -1; ++e < r; ) n[e].polygonStart();
                    },
                    polygonEnd: function () {
                      for (var e = -1; ++e < r; ) n[e].polygonEnd();
                    },
                  }));
              var n, r;
            }),
            (d.precision = function (e) {
              return arguments.length
                ? (o.precision(e), a.precision(e), l.precision(e), h())
                : o.precision();
            }),
            (d.scale = function (e) {
              return arguments.length
                ? (o.scale(e),
                  a.scale(0.35 * e),
                  l.scale(e),
                  d.translate(o.translate()))
                : o.scale();
            }),
            (d.translate = function (e) {
              if (!arguments.length) return o.translate();
              var t = o.scale(),
                s = +e[0],
                d = +e[1];
              return (
                (i = o
                  .translate(e)
                  .clipExtent([
                    [s - 0.455 * t, d - 0.238 * t],
                    [s + 0.455 * t, d + 0.238 * t],
                  ])
                  .stream(c)),
                (n = a
                  .translate([s - 0.307 * t, d + 0.201 * t])
                  .clipExtent([
                    [s - 0.425 * t + Ll, d + 0.12 * t + Ll],
                    [s - 0.214 * t - Ll, d + 0.234 * t - Ll],
                  ])
                  .stream(c)),
                (r = l
                  .translate([s - 0.205 * t, d + 0.212 * t])
                  .clipExtent([
                    [s - 0.214 * t + Ll, d + 0.166 * t + Ll],
                    [s - 0.115 * t - Ll, d + 0.234 * t - Ll],
                  ])
                  .stream(c)),
                h()
              );
            }),
            (d.fitExtent = function (e, t) {
              return xu(d, e, t);
            }),
            (d.fitSize = function (e, t) {
              return Lu(d, e, t);
            }),
            (d.fitWidth = function (e, t) {
              return Mu(d, e, t);
            }),
            (d.fitHeight = function (e, t) {
              return Du(d, e, t);
            }),
            d.scale(1070)
          );
        }
        function Hu(e) {
          return function (t, i) {
            var n = Fl(t),
              r = Fl(i),
              s = e(n * r);
            return [s * r * jl(t), s * jl(i)];
          };
        }
        function ju(e) {
          return function (t, i) {
            var n = zl(t * t + i * i),
              r = e(n),
              s = jl(r),
              o = Fl(r);
            return [Pl(t * s, n * o), Kl(n && (i * s) / n)];
          };
        }
        var Vu = Hu(function (e) {
          return zl(2 / (1 + e));
        });
        function zu() {
          return Au(Vu).scale(124.75).clipAngle(179.999);
        }
        Vu.invert = ju(function (e) {
          return 2 * Kl(e / 2);
        });
        var Uu = Hu(function (e) {
          return (e = $l(e)) && e / jl(e);
        });
        function $u() {
          return Au(Uu).scale(79.4188).clipAngle(179.999);
        }
        function Ku(e, t) {
          return [e, Yl(Ul((Nl + t) / 2))];
        }
        function qu() {
          return Gu(Ku).scale(961 / Tl);
        }
        function Gu(e) {
          var t,
            i,
            n,
            r = Au(e),
            s = r.center,
            o = r.scale,
            a = r.translate,
            l = r.clipExtent,
            c = null;
          function d() {
            var s = Dl * o(),
              a = r(Ld(r.rotate()).invert([0, 0]));
            return l(
              null == c
                ? [
                    [a[0] - s, a[1] - s],
                    [a[0] + s, a[1] + s],
                  ]
                : e === Ku
                ? [
                    [Math.max(a[0] - s, c), t],
                    [Math.min(a[0] + s, i), n],
                  ]
                : [
                    [c, Math.max(a[1] - s, t)],
                    [i, Math.min(a[1] + s, n)],
                  ]
            );
          }
          return (
            (r.scale = function (e) {
              return arguments.length ? (o(e), d()) : o();
            }),
            (r.translate = function (e) {
              return arguments.length ? (a(e), d()) : a();
            }),
            (r.center = function (e) {
              return arguments.length ? (s(e), d()) : s();
            }),
            (r.clipExtent = function (e) {
              return arguments.length
                ? (null == e
                    ? (c = t = i = n = null)
                    : ((c = +e[0][0]),
                      (t = +e[0][1]),
                      (i = +e[1][0]),
                      (n = +e[1][1])),
                  d())
                : null == c
                ? null
                : [
                    [c, t],
                    [i, n],
                  ];
            }),
            d()
          );
        }
        function Zu(e) {
          return Ul((Nl + e) / 2);
        }
        function Ju(e, t) {
          var i = Fl(e),
            n = e === t ? jl(e) : Yl(i / Fl(t)) / Yl(Zu(t) / Zu(e)),
            r = (i * Hl(Zu(e), n)) / n;
          if (!n) return Ku;
          function s(e, t) {
            r > 0
              ? t < -Nl + Ll && (t = -Nl + Ll)
              : t > Nl - Ll && (t = Nl - Ll);
            var i = r / Hl(Zu(t), n);
            return [i * jl(n * e), r - i * Fl(n * e)];
          }
          return (
            (s.invert = function (e, t) {
              var i = r - t,
                s = Vl(n) * zl(e * e + i * i);
              return [
                (Pl(e, Al(i)) / n) * Vl(i),
                2 * Rl(Hl(r / s, 1 / n)) - Nl,
              ];
            }),
            s
          );
        }
        function Qu() {
          return Pu(Ju).scale(109.5).parallels([30, 30]);
        }
        function Xu(e, t) {
          return [e, t];
        }
        function eg() {
          return Au(Xu).scale(152.63);
        }
        function tg(e, t) {
          var i = Fl(e),
            n = e === t ? jl(e) : (i - Fl(t)) / (t - e),
            r = i / n + e;
          if (Al(n) < Ll) return Xu;
          function s(e, t) {
            var i = r - t,
              s = n * e;
            return [i * jl(s), r - i * Fl(s)];
          }
          return (
            (s.invert = function (e, t) {
              var i = r - t;
              return [
                (Pl(e, Al(i)) / n) * Vl(i),
                r - Vl(n) * zl(e * e + i * i),
              ];
            }),
            s
          );
        }
        function ig() {
          return Pu(tg).scale(131.154).center([0, 13.9389]);
        }
        (Uu.invert = ju(function (e) {
          return e;
        })),
          (Ku.invert = function (e, t) {
            return [e, 2 * Rl(Wl(t)) - Nl];
          }),
          (Xu.invert = Xu);
        var ng = 1.340264,
          rg = -0.081106,
          sg = 893e-6,
          og = 0.003796,
          ag = zl(3) / 2;
        function lg(e, t) {
          var i = Kl(ag * jl(t)),
            n = i * i,
            r = n * n * n;
          return [
            (e * Fl(i)) / (ag * (ng + 3 * rg * n + r * (7 * sg + 9 * og * n))),
            i * (ng + rg * n + r * (sg + og * n)),
          ];
        }
        function cg() {
          return Au(lg).scale(177.158);
        }
        function dg(e, t) {
          var i = Fl(t),
            n = Fl(e) * i;
          return [(i * jl(e)) / n, jl(t) / n];
        }
        function hg() {
          return Au(dg).scale(144.049).clipAngle(60);
        }
        function ug(e, t, i, n) {
          return 1 === e && 1 === t && 0 === i && 0 === n
            ? vh
            : Cu({
                point: function (r, s) {
                  this.stream.point(r * e + i, s * t + n);
                },
              });
        }
        function gg() {
          var e,
            t,
            i,
            n,
            r,
            s,
            o = 1,
            a = 0,
            l = 0,
            c = 1,
            d = 1,
            h = vh,
            u = null,
            g = vh;
          function f() {
            return (n = r = null), s;
          }
          return (s = {
            stream: function (e) {
              return n && r === e ? n : (n = h(g((r = e))));
            },
            postclip: function (n) {
              return arguments.length
                ? ((g = n), (u = e = t = i = null), f())
                : g;
            },
            clipExtent: function (n) {
              return arguments.length
                ? ((g =
                    null == n
                      ? ((u = e = t = i = null), vh)
                      : Ud(
                          (u = +n[0][0]),
                          (e = +n[0][1]),
                          (t = +n[1][0]),
                          (i = +n[1][1])
                        )),
                  f())
                : null == u
                ? null
                : [
                    [u, e],
                    [t, i],
                  ];
            },
            scale: function (e) {
              return arguments.length
                ? ((h = ug((o = +e) * c, o * d, a, l)), f())
                : o;
            },
            translate: function (e) {
              return arguments.length
                ? ((h = ug(o * c, o * d, (a = +e[0]), (l = +e[1]))), f())
                : [a, l];
            },
            reflectX: function (e) {
              return arguments.length
                ? ((h = ug(o * (c = e ? -1 : 1), o * d, a, l)), f())
                : c < 0;
            },
            reflectY: function (e) {
              return arguments.length
                ? ((h = ug(o * c, o * (d = e ? -1 : 1), a, l)), f())
                : d < 0;
            },
            fitExtent: function (e, t) {
              return xu(s, e, t);
            },
            fitSize: function (e, t) {
              return Lu(s, e, t);
            },
            fitWidth: function (e, t) {
              return Mu(s, e, t);
            },
            fitHeight: function (e, t) {
              return Du(s, e, t);
            },
          });
        }
        function fg(e, t) {
          var i = t * t,
            n = i * i;
          return [
            e *
              (0.8707 -
                0.131979 * i +
                n * (n * (0.003971 * i - 0.001529 * n) - 0.013791)),
            t *
              (1.007226 +
                i * (0.015085 + n * (0.028874 * i - 0.044475 - 0.005916 * n))),
          ];
        }
        function pg() {
          return Au(fg).scale(175.295);
        }
        function mg(e, t) {
          return [Fl(t) * jl(e), jl(t)];
        }
        function _g() {
          return Au(mg).scale(249.5).clipAngle(90.000001);
        }
        function bg(e, t) {
          var i = Fl(t),
            n = 1 + Fl(e) * i;
          return [(i * jl(e)) / n, jl(t) / n];
        }
        function vg() {
          return Au(bg).scale(250).clipAngle(142);
        }
        function yg(e, t) {
          return [Yl(Ul((Nl + t) / 2)), -e];
        }
        function wg() {
          var e = Gu(yg),
            t = e.center,
            i = e.rotate;
          return (
            (e.center = function (e) {
              return arguments.length
                ? t([-e[1], e[0]])
                : [(e = t())[1], -e[0]];
            }),
            (e.rotate = function (e) {
              return arguments.length
                ? i([e[0], e[1], e.length > 2 ? e[2] + 90 : 90])
                : [(e = i())[0], e[1], e[2] - 90];
            }),
            i([0, 0, 90]).scale(159.155)
          );
        }
        function Cg(e, t) {
          return e.parent === t.parent ? 1 : 2;
        }
        function Sg(e, t) {
          return e + t.x;
        }
        function kg(e, t) {
          return Math.max(e, t.y);
        }
        function xg() {
          var e = Cg,
            t = 1,
            i = 1,
            n = !1;
          function r(r) {
            var s,
              o = 0;
            r.eachAfter(function (t) {
              var i = t.children;
              i
                ? ((t.x = (function (e) {
                    return e.reduce(Sg, 0) / e.length;
                  })(i)),
                  (t.y = (function (e) {
                    return 1 + e.reduce(kg, 0);
                  })(i)))
                : ((t.x = s ? (o += e(t, s)) : 0), (t.y = 0), (s = t));
            });
            var a = (function (e) {
                for (var t; (t = e.children); ) e = t[0];
                return e;
              })(r),
              l = (function (e) {
                for (var t; (t = e.children); ) e = t[t.length - 1];
                return e;
              })(r),
              c = a.x - e(a, l) / 2,
              d = l.x + e(l, a) / 2;
            return r.eachAfter(
              n
                ? function (e) {
                    (e.x = (e.x - r.x) * t), (e.y = (r.y - e.y) * i);
                  }
                : function (e) {
                    (e.x = ((e.x - c) / (d - c)) * t),
                      (e.y = (1 - (r.y ? e.y / r.y : 1)) * i);
                  }
            );
          }
          return (
            (r.separation = function (t) {
              return arguments.length ? ((e = t), r) : e;
            }),
            (r.size = function (e) {
              return arguments.length
                ? ((n = !1), (t = +e[0]), (i = +e[1]), r)
                : n
                ? null
                : [t, i];
            }),
            (r.nodeSize = function (e) {
              return arguments.length
                ? ((n = !0), (t = +e[0]), (i = +e[1]), r)
                : n
                ? [t, i]
                : null;
            }),
            r
          );
        }
        function Lg(e) {
          var t = 0,
            i = e.children,
            n = i && i.length;
          if (n) for (; --n >= 0; ) t += i[n].value;
          else t = 1;
          e.value = t;
        }
        function Mg(e, t) {
          var i,
            n,
            r,
            s,
            o,
            a = new Tg(e),
            l = +e.value && (a.value = e.value),
            c = [a];
          for (null == t && (t = Dg); (i = c.pop()); )
            if (
              (l && (i.value = +i.data.value),
              (r = t(i.data)) && (o = r.length))
            )
              for (i.children = new Array(o), s = o - 1; s >= 0; --s)
                c.push((n = i.children[s] = new Tg(r[s]))),
                  (n.parent = i),
                  (n.depth = i.depth + 1);
          return a.eachBefore(Eg);
        }
        function Dg(e) {
          return e.children;
        }
        function Ng(e) {
          e.data = e.data.data;
        }
        function Eg(e) {
          var t = 0;
          do {
            e.height = t;
          } while ((e = e.parent) && e.height < ++t);
        }
        function Tg(e) {
          (this.data = e), (this.depth = this.height = 0), (this.parent = null);
        }
        (lg.invert = function (e, t) {
          for (
            var i, n = t, r = n * n, s = r * r * r, o = 0;
            o < 12 &&
            ((s =
              (r =
                (n -= i =
                  (n * (ng + rg * r + s * (sg + og * r)) - t) /
                  (ng + 3 * rg * r + s * (7 * sg + 9 * og * r))) * n) *
              r *
              r),
            !(Al(i) < Ml));
            ++o
          );
          return [
            (ag * e * (ng + 3 * rg * r + s * (7 * sg + 9 * og * r))) / Fl(n),
            Kl(jl(n) / ag),
          ];
        }),
          (dg.invert = ju(Rl)),
          (fg.invert = function (e, t) {
            var i,
              n = t,
              r = 25;
            do {
              var s = n * n,
                o = s * s;
              n -= i =
                (n *
                  (1.007226 +
                    s *
                      (0.015085 +
                        o * (0.028874 * s - 0.044475 - 0.005916 * o))) -
                  t) /
                (1.007226 +
                  s *
                    (0.045255 +
                      o * (0.259866 * s - 0.311325 - 0.005916 * 11 * o)));
            } while (Al(i) > Ll && --r > 0);
            return [
              e /
                (0.8707 +
                  (s = n * n) *
                    (s * (s * s * s * (0.003971 - 0.001529 * s) - 0.013791) -
                      0.131979)),
              n,
            ];
          }),
          (mg.invert = ju(Kl)),
          (bg.invert = ju(function (e) {
            return 2 * Rl(e);
          })),
          (yg.invert = function (e, t) {
            return [-t, 2 * Rl(Wl(e)) - Nl];
          }),
          (Tg.prototype = Mg.prototype = {
            constructor: Tg,
            count: function () {
              return this.eachAfter(Lg);
            },
            each: function (e) {
              var t,
                i,
                n,
                r,
                s = this,
                o = [s];
              do {
                for (t = o.reverse(), o = []; (s = t.pop()); )
                  if ((e(s), (i = s.children)))
                    for (n = 0, r = i.length; n < r; ++n) o.push(i[n]);
              } while (o.length);
              return this;
            },
            eachAfter: function (e) {
              for (var t, i, n, r = this, s = [r], o = []; (r = s.pop()); )
                if ((o.push(r), (t = r.children)))
                  for (i = 0, n = t.length; i < n; ++i) s.push(t[i]);
              for (; (r = o.pop()); ) e(r);
              return this;
            },
            eachBefore: function (e) {
              for (var t, i, n = this, r = [n]; (n = r.pop()); )
                if ((e(n), (t = n.children)))
                  for (i = t.length - 1; i >= 0; --i) r.push(t[i]);
              return this;
            },
            sum: function (e) {
              return this.eachAfter(function (t) {
                for (
                  var i = +e(t.data) || 0, n = t.children, r = n && n.length;
                  --r >= 0;

                )
                  i += n[r].value;
                t.value = i;
              });
            },
            sort: function (e) {
              return this.eachBefore(function (t) {
                t.children && t.children.sort(e);
              });
            },
            path: function (e) {
              for (
                var t = this,
                  i = (function (e, t) {
                    if (e === t) return e;
                    var i = e.ancestors(),
                      n = t.ancestors(),
                      r = null;
                    for (e = i.pop(), t = n.pop(); e === t; )
                      (r = e), (e = i.pop()), (t = n.pop());
                    return r;
                  })(t, e),
                  n = [t];
                t !== i;

              )
                (t = t.parent), n.push(t);
              for (var r = n.length; e !== i; )
                n.splice(r, 0, e), (e = e.parent);
              return n;
            },
            ancestors: function () {
              for (var e = this, t = [e]; (e = e.parent); ) t.push(e);
              return t;
            },
            descendants: function () {
              var e = [];
              return (
                this.each(function (t) {
                  e.push(t);
                }),
                e
              );
            },
            leaves: function () {
              var e = [];
              return (
                this.eachBefore(function (t) {
                  t.children || e.push(t);
                }),
                e
              );
            },
            links: function () {
              var e = this,
                t = [];
              return (
                e.each(function (i) {
                  i !== e && t.push({ source: i.parent, target: i });
                }),
                t
              );
            },
            copy: function () {
              return Mg(this).eachBefore(Ng);
            },
          });
        var Ig = Array.prototype.slice;
        function Og(e) {
          for (
            var t,
              i,
              n = 0,
              r = (e = (function (e) {
                for (var t, i, n = e.length; n; )
                  (i = (Math.random() * n--) | 0),
                    (t = e[n]),
                    (e[n] = e[i]),
                    (e[i] = t);
                return e;
              })(Ig.call(e))).length,
              s = [];
            n < r;

          )
            (t = e[n]),
              i && Pg(i, t) ? ++n : ((i = Bg((s = Ag(s, t)))), (n = 0));
          return i;
        }
        function Ag(e, t) {
          var i, n;
          if (Fg(t, e)) return [t];
          for (i = 0; i < e.length; ++i)
            if (Rg(t, e[i]) && Fg(Wg(e[i], t), e)) return [e[i], t];
          for (i = 0; i < e.length - 1; ++i)
            for (n = i + 1; n < e.length; ++n)
              if (
                Rg(Wg(e[i], e[n]), t) &&
                Rg(Wg(e[i], t), e[n]) &&
                Rg(Wg(e[n], t), e[i]) &&
                Fg(Yg(e[i], e[n], t), e)
              )
                return [e[i], e[n], t];
          throw new Error();
        }
        function Rg(e, t) {
          var i = e.r - t.r,
            n = t.x - e.x,
            r = t.y - e.y;
          return i < 0 || i * i < n * n + r * r;
        }
        function Pg(e, t) {
          var i = e.r - t.r + 1e-6,
            n = t.x - e.x,
            r = t.y - e.y;
          return i > 0 && i * i > n * n + r * r;
        }
        function Fg(e, t) {
          for (var i = 0; i < t.length; ++i) if (!Pg(e, t[i])) return !1;
          return !0;
        }
        function Bg(e) {
          switch (e.length) {
            case 1:
              return (function (e) {
                return { x: e.x, y: e.y, r: e.r };
              })(e[0]);
            case 2:
              return Wg(e[0], e[1]);
            case 3:
              return Yg(e[0], e[1], e[2]);
          }
        }
        function Wg(e, t) {
          var i = e.x,
            n = e.y,
            r = e.r,
            s = t.x,
            o = t.y,
            a = t.r,
            l = s - i,
            c = o - n,
            d = a - r,
            h = Math.sqrt(l * l + c * c);
          return {
            x: (i + s + (l / h) * d) / 2,
            y: (n + o + (c / h) * d) / 2,
            r: (h + r + a) / 2,
          };
        }
        function Yg(e, t, i) {
          var n = e.x,
            r = e.y,
            s = e.r,
            o = t.x,
            a = t.y,
            l = t.r,
            c = i.x,
            d = i.y,
            h = i.r,
            u = n - o,
            g = n - c,
            f = r - a,
            p = r - d,
            m = l - s,
            _ = h - s,
            b = n * n + r * r - s * s,
            v = b - o * o - a * a + l * l,
            y = b - c * c - d * d + h * h,
            w = g * f - u * p,
            C = (f * y - p * v) / (2 * w) - n,
            S = (p * m - f * _) / w,
            k = (g * v - u * y) / (2 * w) - r,
            x = (u * _ - g * m) / w,
            L = S * S + x * x - 1,
            M = 2 * (s + C * S + k * x),
            D = C * C + k * k - s * s,
            N = -(L ? (M + Math.sqrt(M * M - 4 * L * D)) / (2 * L) : D / M);
          return { x: n + C + S * N, y: r + k + x * N, r: N };
        }
        function Hg(e, t, i) {
          var n,
            r,
            s,
            o,
            a = e.x - t.x,
            l = e.y - t.y,
            c = a * a + l * l;
          c
            ? ((r = t.r + i.r),
              (r *= r),
              (o = e.r + i.r),
              r > (o *= o)
                ? ((n = (c + o - r) / (2 * c)),
                  (s = Math.sqrt(Math.max(0, o / c - n * n))),
                  (i.x = e.x - n * a - s * l),
                  (i.y = e.y - n * l + s * a))
                : ((n = (c + r - o) / (2 * c)),
                  (s = Math.sqrt(Math.max(0, r / c - n * n))),
                  (i.x = t.x + n * a - s * l),
                  (i.y = t.y + n * l + s * a)))
            : ((i.x = t.x + i.r), (i.y = t.y));
        }
        function jg(e, t) {
          var i = e.r + t.r - 1e-6,
            n = t.x - e.x,
            r = t.y - e.y;
          return i > 0 && i * i > n * n + r * r;
        }
        function Vg(e) {
          var t = e._,
            i = e.next._,
            n = t.r + i.r,
            r = (t.x * i.r + i.x * t.r) / n,
            s = (t.y * i.r + i.y * t.r) / n;
          return r * r + s * s;
        }
        function zg(e) {
          (this._ = e), (this.next = null), (this.previous = null);
        }
        function Ug(e) {
          if (!(r = e.length)) return 0;
          var t, i, n, r, s, o, a, l, c, d, h;
          if ((((t = e[0]).x = 0), (t.y = 0), !(r > 1))) return t.r;
          if (((i = e[1]), (t.x = -i.r), (i.x = t.r), (i.y = 0), !(r > 2)))
            return t.r + i.r;
          Hg(i, t, (n = e[2])),
            (t = new zg(t)),
            (i = new zg(i)),
            (n = new zg(n)),
            (t.next = n.previous = i),
            (i.next = t.previous = n),
            (n.next = i.previous = t);
          e: for (a = 3; a < r; ++a) {
            Hg(t._, i._, (n = e[a])),
              (n = new zg(n)),
              (l = i.next),
              (c = t.previous),
              (d = i._.r),
              (h = t._.r);
            do {
              if (d <= h) {
                if (jg(l._, n._)) {
                  (i = l), (t.next = i), (i.previous = t), --a;
                  continue e;
                }
                (d += l._.r), (l = l.next);
              } else {
                if (jg(c._, n._)) {
                  ((t = c).next = i), (i.previous = t), --a;
                  continue e;
                }
                (h += c._.r), (c = c.previous);
              }
            } while (l !== c.next);
            for (
              n.previous = t,
                n.next = i,
                t.next = i.previous = i = n,
                s = Vg(t);
              (n = n.next) !== i;

            )
              (o = Vg(n)) < s && ((t = n), (s = o));
            i = t.next;
          }
          for (t = [i._], n = i; (n = n.next) !== i; ) t.push(n._);
          for (n = Og(t), a = 0; a < r; ++a)
            ((t = e[a]).x -= n.x), (t.y -= n.y);
          return n.r;
        }
        function $g(e) {
          return Ug(e), e;
        }
        function Kg(e) {
          return null == e ? null : qg(e);
        }
        function qg(e) {
          if ('function' != typeof e) throw new Error();
          return e;
        }
        function Gg() {
          return 0;
        }
        function Zg(e) {
          return function () {
            return e;
          };
        }
        function Jg(e) {
          return Math.sqrt(e.value);
        }
        function Qg() {
          var e = null,
            t = 1,
            i = 1,
            n = Gg;
          function r(r) {
            return (
              (r.x = t / 2),
              (r.y = i / 2),
              e
                ? r.eachBefore(Xg(e)).eachAfter(ef(n, 0.5)).eachBefore(tf(1))
                : r
                    .eachBefore(Xg(Jg))
                    .eachAfter(ef(Gg, 1))
                    .eachAfter(ef(n, r.r / Math.min(t, i)))
                    .eachBefore(tf(Math.min(t, i) / (2 * r.r))),
              r
            );
          }
          return (
            (r.radius = function (t) {
              return arguments.length ? ((e = Kg(t)), r) : e;
            }),
            (r.size = function (e) {
              return arguments.length ? ((t = +e[0]), (i = +e[1]), r) : [t, i];
            }),
            (r.padding = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : Zg(+e)), r)
                : n;
            }),
            r
          );
        }
        function Xg(e) {
          return function (t) {
            t.children || (t.r = Math.max(0, +e(t) || 0));
          };
        }
        function ef(e, t) {
          return function (i) {
            if ((n = i.children)) {
              var n,
                r,
                s,
                o = n.length,
                a = e(i) * t || 0;
              if (a) for (r = 0; r < o; ++r) n[r].r += a;
              if (((s = Ug(n)), a)) for (r = 0; r < o; ++r) n[r].r -= a;
              i.r = s + a;
            }
          };
        }
        function tf(e) {
          return function (t) {
            var i = t.parent;
            (t.r *= e), i && ((t.x = i.x + e * t.x), (t.y = i.y + e * t.y));
          };
        }
        function nf(e) {
          (e.x0 = Math.round(e.x0)),
            (e.y0 = Math.round(e.y0)),
            (e.x1 = Math.round(e.x1)),
            (e.y1 = Math.round(e.y1));
        }
        function rf(e, t, i, n, r) {
          for (
            var s,
              o = e.children,
              a = -1,
              l = o.length,
              c = e.value && (n - t) / e.value;
            ++a < l;

          )
            ((s = o[a]).y0 = i),
              (s.y1 = r),
              (s.x0 = t),
              (s.x1 = t += s.value * c);
        }
        function sf() {
          var e = 1,
            t = 1,
            i = 0,
            n = !1;
          function r(r) {
            var s = r.height + 1;
            return (
              (r.x0 = r.y0 = i),
              (r.x1 = e),
              (r.y1 = t / s),
              r.eachBefore(
                (function (e, t) {
                  return function (n) {
                    n.children &&
                      rf(
                        n,
                        n.x0,
                        (e * (n.depth + 1)) / t,
                        n.x1,
                        (e * (n.depth + 2)) / t
                      );
                    var r = n.x0,
                      s = n.y0,
                      o = n.x1 - i,
                      a = n.y1 - i;
                    o < r && (r = o = (r + o) / 2),
                      a < s && (s = a = (s + a) / 2),
                      (n.x0 = r),
                      (n.y0 = s),
                      (n.x1 = o),
                      (n.y1 = a);
                  };
                })(t, s)
              ),
              n && r.eachBefore(nf),
              r
            );
          }
          return (
            (r.round = function (e) {
              return arguments.length ? ((n = !!e), r) : n;
            }),
            (r.size = function (i) {
              return arguments.length ? ((e = +i[0]), (t = +i[1]), r) : [e, t];
            }),
            (r.padding = function (e) {
              return arguments.length ? ((i = +e), r) : i;
            }),
            r
          );
        }
        var of = { depth: -1 },
          af = {};
        function lf(e) {
          return e.id;
        }
        function cf(e) {
          return e.parentId;
        }
        function df() {
          var e = lf,
            t = cf;
          function i(i) {
            var n,
              r,
              s,
              o,
              a,
              l,
              c,
              d = i.length,
              h = new Array(d),
              u = {};
            for (r = 0; r < d; ++r)
              (n = i[r]),
                (a = h[r] = new Tg(n)),
                null != (l = e(n, r, i)) &&
                  (l += '') &&
                  (u[(c = '$' + (a.id = l))] = c in u ? af : a);
            for (r = 0; r < d; ++r)
              if (((a = h[r]), null != (l = t(i[r], r, i)) && (l += ''))) {
                if (!(o = u['$' + l])) throw new Error('missing: ' + l);
                if (o === af) throw new Error('ambiguous: ' + l);
                o.children ? o.children.push(a) : (o.children = [a]),
                  (a.parent = o);
              } else {
                if (s) throw new Error('multiple roots');
                s = a;
              }
            if (!s) throw new Error('no root');
            if (
              ((s.parent = of),
              s
                .eachBefore(function (e) {
                  (e.depth = e.parent.depth + 1), --d;
                })
                .eachBefore(Eg),
              (s.parent = null),
              d > 0)
            )
              throw new Error('cycle');
            return s;
          }
          return (
            (i.id = function (t) {
              return arguments.length ? ((e = qg(t)), i) : e;
            }),
            (i.parentId = function (e) {
              return arguments.length ? ((t = qg(e)), i) : t;
            }),
            i
          );
        }
        function hf(e, t) {
          return e.parent === t.parent ? 1 : 2;
        }
        function uf(e) {
          var t = e.children;
          return t ? t[0] : e.t;
        }
        function gf(e) {
          var t = e.children;
          return t ? t[t.length - 1] : e.t;
        }
        function ff(e, t, i) {
          var n = i / (t.i - e.i);
          (t.c -= n), (t.s += i), (e.c += n), (t.z += i), (t.m += i);
        }
        function pf(e, t, i) {
          return e.a.parent === t.parent ? e.a : i;
        }
        function mf(e, t) {
          (this._ = e),
            (this.parent = null),
            (this.children = null),
            (this.A = null),
            (this.a = this),
            (this.z = 0),
            (this.m = 0),
            (this.c = 0),
            (this.s = 0),
            (this.t = null),
            (this.i = t);
        }
        function _f() {
          var e = hf,
            t = 1,
            i = 1,
            n = null;
          function r(r) {
            var l = (function (e) {
              for (
                var t, i, n, r, s, o = new mf(e, 0), a = [o];
                (t = a.pop());

              )
                if ((n = t._.children))
                  for (
                    t.children = new Array((s = n.length)), r = s - 1;
                    r >= 0;
                    --r
                  )
                    a.push((i = t.children[r] = new mf(n[r], r))),
                      (i.parent = t);
              return ((o.parent = new mf(null, 0)).children = [o]), o;
            })(r);
            if ((l.eachAfter(s), (l.parent.m = -l.z), l.eachBefore(o), n))
              r.eachBefore(a);
            else {
              var c = r,
                d = r,
                h = r;
              r.eachBefore(function (e) {
                e.x < c.x && (c = e),
                  e.x > d.x && (d = e),
                  e.depth > h.depth && (h = e);
              });
              var u = c === d ? 1 : e(c, d) / 2,
                g = u - c.x,
                f = t / (d.x + u + g),
                p = i / (h.depth || 1);
              r.eachBefore(function (e) {
                (e.x = (e.x + g) * f), (e.y = e.depth * p);
              });
            }
            return r;
          }
          function s(t) {
            var i = t.children,
              n = t.parent.children,
              r = t.i ? n[t.i - 1] : null;
            if (i) {
              !(function (e) {
                for (
                  var t, i = 0, n = 0, r = e.children, s = r.length;
                  --s >= 0;

                )
                  ((t = r[s]).z += i), (t.m += i), (i += t.s + (n += t.c));
              })(t);
              var s = (i[0].z + i[i.length - 1].z) / 2;
              r ? ((t.z = r.z + e(t._, r._)), (t.m = t.z - s)) : (t.z = s);
            } else r && (t.z = r.z + e(t._, r._));
            t.parent.A = (function (t, i, n) {
              if (i) {
                for (
                  var r,
                    s = t,
                    o = t,
                    a = i,
                    l = s.parent.children[0],
                    c = s.m,
                    d = o.m,
                    h = a.m,
                    u = l.m;
                  (a = gf(a)), (s = uf(s)), a && s;

                )
                  (l = uf(l)),
                    ((o = gf(o)).a = t),
                    (r = a.z + h - s.z - c + e(a._, s._)) > 0 &&
                      (ff(pf(a, t, n), t, r), (c += r), (d += r)),
                    (h += a.m),
                    (c += s.m),
                    (u += l.m),
                    (d += o.m);
                a && !gf(o) && ((o.t = a), (o.m += h - d)),
                  s && !uf(l) && ((l.t = s), (l.m += c - u), (n = t));
              }
              return n;
            })(t, r, t.parent.A || n[0]);
          }
          function o(e) {
            (e._.x = e.z + e.parent.m), (e.m += e.parent.m);
          }
          function a(e) {
            (e.x *= t), (e.y = e.depth * i);
          }
          return (
            (r.separation = function (t) {
              return arguments.length ? ((e = t), r) : e;
            }),
            (r.size = function (e) {
              return arguments.length
                ? ((n = !1), (t = +e[0]), (i = +e[1]), r)
                : n
                ? null
                : [t, i];
            }),
            (r.nodeSize = function (e) {
              return arguments.length
                ? ((n = !0), (t = +e[0]), (i = +e[1]), r)
                : n
                ? [t, i]
                : null;
            }),
            r
          );
        }
        function bf(e, t, i, n, r) {
          for (
            var s,
              o = e.children,
              a = -1,
              l = o.length,
              c = e.value && (r - i) / e.value;
            ++a < l;

          )
            ((s = o[a]).x0 = t),
              (s.x1 = n),
              (s.y0 = i),
              (s.y1 = i += s.value * c);
        }
        mf.prototype = Object.create(Tg.prototype);
        var vf = (1 + Math.sqrt(5)) / 2;
        function yf(e, t, i, n, r, s) {
          for (
            var o,
              a,
              l,
              c,
              d,
              h,
              u,
              g,
              f,
              p,
              m,
              _ = [],
              b = t.children,
              v = 0,
              y = 0,
              w = b.length,
              C = t.value;
            v < w;

          ) {
            (l = r - i), (c = s - n);
            do {
              d = b[y++].value;
            } while (!d && y < w);
            for (
              h = u = d,
                m = d * d * (p = Math.max(c / l, l / c) / (C * e)),
                f = Math.max(u / m, m / h);
              y < w;
              ++y
            ) {
              if (
                ((d += a = b[y].value),
                a < h && (h = a),
                a > u && (u = a),
                (m = d * d * p),
                (g = Math.max(u / m, m / h)) > f)
              ) {
                d -= a;
                break;
              }
              f = g;
            }
            _.push((o = { value: d, dice: l < c, children: b.slice(v, y) })),
              o.dice
                ? rf(o, i, n, r, C ? (n += (c * d) / C) : s)
                : bf(o, i, n, C ? (i += (l * d) / C) : r, s),
              (C -= d),
              (v = y);
          }
          return _;
        }
        const wf = (function e(t) {
          function i(e, i, n, r, s) {
            yf(t, e, i, n, r, s);
          }
          return (
            (i.ratio = function (t) {
              return e((t = +t) > 1 ? t : 1);
            }),
            i
          );
        })(vf);
        function Cf() {
          var e = wf,
            t = !1,
            i = 1,
            n = 1,
            r = [0],
            s = Gg,
            o = Gg,
            a = Gg,
            l = Gg,
            c = Gg;
          function d(e) {
            return (
              (e.x0 = e.y0 = 0),
              (e.x1 = i),
              (e.y1 = n),
              e.eachBefore(h),
              (r = [0]),
              t && e.eachBefore(nf),
              e
            );
          }
          function h(t) {
            var i = r[t.depth],
              n = t.x0 + i,
              d = t.y0 + i,
              h = t.x1 - i,
              u = t.y1 - i;
            h < n && (n = h = (n + h) / 2),
              u < d && (d = u = (d + u) / 2),
              (t.x0 = n),
              (t.y0 = d),
              (t.x1 = h),
              (t.y1 = u),
              t.children &&
                ((i = r[t.depth + 1] = s(t) / 2),
                (n += c(t) - i),
                (d += o(t) - i),
                (h -= a(t) - i) < n && (n = h = (n + h) / 2),
                (u -= l(t) - i) < d && (d = u = (d + u) / 2),
                e(t, n, d, h, u));
          }
          return (
            (d.round = function (e) {
              return arguments.length ? ((t = !!e), d) : t;
            }),
            (d.size = function (e) {
              return arguments.length ? ((i = +e[0]), (n = +e[1]), d) : [i, n];
            }),
            (d.tile = function (t) {
              return arguments.length ? ((e = qg(t)), d) : e;
            }),
            (d.padding = function (e) {
              return arguments.length
                ? d.paddingInner(e).paddingOuter(e)
                : d.paddingInner();
            }),
            (d.paddingInner = function (e) {
              return arguments.length
                ? ((s = 'function' == typeof e ? e : Zg(+e)), d)
                : s;
            }),
            (d.paddingOuter = function (e) {
              return arguments.length
                ? d
                    .paddingTop(e)
                    .paddingRight(e)
                    .paddingBottom(e)
                    .paddingLeft(e)
                : d.paddingTop();
            }),
            (d.paddingTop = function (e) {
              return arguments.length
                ? ((o = 'function' == typeof e ? e : Zg(+e)), d)
                : o;
            }),
            (d.paddingRight = function (e) {
              return arguments.length
                ? ((a = 'function' == typeof e ? e : Zg(+e)), d)
                : a;
            }),
            (d.paddingBottom = function (e) {
              return arguments.length
                ? ((l = 'function' == typeof e ? e : Zg(+e)), d)
                : l;
            }),
            (d.paddingLeft = function (e) {
              return arguments.length
                ? ((c = 'function' == typeof e ? e : Zg(+e)), d)
                : c;
            }),
            d
          );
        }
        function Sf(e, t, i, n, r) {
          var s,
            o,
            a = e.children,
            l = a.length,
            c = new Array(l + 1);
          for (c[0] = o = s = 0; s < l; ++s) c[s + 1] = o += a[s].value;
          !(function e(t, i, n, r, s, o, l) {
            if (t >= i - 1) {
              var d = a[t];
              return (d.x0 = r), (d.y0 = s), (d.x1 = o), void (d.y1 = l);
            }
            for (var h = c[t], u = n / 2 + h, g = t + 1, f = i - 1; g < f; ) {
              var p = (g + f) >>> 1;
              c[p] < u ? (g = p + 1) : (f = p);
            }
            u - c[g - 1] < c[g] - u && t + 1 < g && --g;
            var m = c[g] - h,
              _ = n - m;
            if (o - r > l - s) {
              var b = (r * _ + o * m) / n;
              e(t, g, m, r, s, b, l), e(g, i, _, b, s, o, l);
            } else {
              var v = (s * _ + l * m) / n;
              e(t, g, m, r, s, o, v), e(g, i, _, r, v, o, l);
            }
          })(0, l, e.value, t, i, n, r);
        }
        function kf(e, t, i, n, r) {
          (1 & e.depth ? bf : rf)(e, t, i, n, r);
        }
        const xf = (function e(t) {
          function i(e, i, n, r, s) {
            if ((o = e._squarify) && o.ratio === t)
              for (
                var o, a, l, c, d, h = -1, u = o.length, g = e.value;
                ++h < u;

              ) {
                for (
                  l = (a = o[h]).children, c = a.value = 0, d = l.length;
                  c < d;
                  ++c
                )
                  a.value += l[c].value;
                a.dice
                  ? rf(a, i, n, r, (n += ((s - n) * a.value) / g))
                  : bf(a, i, n, (i += ((r - i) * a.value) / g), s),
                  (g -= a.value);
              }
            else (e._squarify = o = yf(t, e, i, n, r, s)), (o.ratio = t);
          }
          return (
            (i.ratio = function (t) {
              return e((t = +t) > 1 ? t : 1);
            }),
            i
          );
        })(vf);
        function Lf(e) {
          var t = e.length;
          return function (i) {
            return e[Math.max(0, Math.min(t - 1, Math.floor(i * t)))];
          };
        }
        function Mf(e, t) {
          var i = ui(+e, +t);
          return function (e) {
            var t = i(e);
            return t - 360 * Math.floor(t / 360);
          };
        }
        function Df(e, t) {
          return (
            (e = +e),
            (t = +t),
            function (i) {
              return Math.round(e * (1 - i) + t * i);
            }
          );
        }
        var Nf = Math.SQRT2;
        function Ef(e) {
          return ((e = Math.exp(e)) + 1 / e) / 2;
        }
        function Tf(e, t) {
          var i,
            n,
            r = e[0],
            s = e[1],
            o = e[2],
            a = t[0],
            l = t[1],
            c = t[2],
            d = a - r,
            h = l - s,
            u = d * d + h * h;
          if (u < 1e-12)
            (n = Math.log(c / o) / Nf),
              (i = function (e) {
                return [r + e * d, s + e * h, o * Math.exp(Nf * e * n)];
              });
          else {
            var g = Math.sqrt(u),
              f = (c * c - o * o + 4 * u) / (2 * o * 2 * g),
              p = (c * c - o * o - 4 * u) / (2 * c * 2 * g),
              m = Math.log(Math.sqrt(f * f + 1) - f),
              _ = Math.log(Math.sqrt(p * p + 1) - p);
            (n = (_ - m) / Nf),
              (i = function (e) {
                var t,
                  i = e * n,
                  a = Ef(m),
                  l =
                    (o / (2 * g)) *
                    (a *
                      ((t = Nf * i + m),
                      ((t = Math.exp(2 * t)) - 1) / (t + 1)) -
                      (function (e) {
                        return ((e = Math.exp(e)) - 1 / e) / 2;
                      })(m));
                return [r + l * d, s + l * h, (o * a) / Ef(Nf * i + m)];
              });
          }
          return (i.duration = 1e3 * n), i;
        }
        function If(e) {
          return function (t, i) {
            var n = e((t = ri(t)).h, (i = ri(i)).h),
              r = gi(t.s, i.s),
              s = gi(t.l, i.l),
              o = gi(t.opacity, i.opacity);
            return function (e) {
              return (
                (t.h = n(e)),
                (t.s = r(e)),
                (t.l = s(e)),
                (t.opacity = o(e)),
                t + ''
              );
            };
          };
        }
        const Of = If(ui);
        var Af = If(gi);
        function Rf(e, t) {
          var i = gi((e = ks(e)).l, (t = ks(t)).l),
            n = gi(e.a, t.a),
            r = gi(e.b, t.b),
            s = gi(e.opacity, t.opacity);
          return function (t) {
            return (
              (e.l = i(t)),
              (e.a = n(t)),
              (e.b = r(t)),
              (e.opacity = s(t)),
              e + ''
            );
          };
        }
        function Pf(e) {
          return function (t, i) {
            var n = e((t = Is(t)).h, (i = Is(i)).h),
              r = gi(t.c, i.c),
              s = gi(t.l, i.l),
              o = gi(t.opacity, i.opacity);
            return function (e) {
              return (
                (t.h = n(e)),
                (t.c = r(e)),
                (t.l = s(e)),
                (t.opacity = o(e)),
                t + ''
              );
            };
          };
        }
        const Ff = Pf(ui);
        var Bf = Pf(gi);
        function Wf(e) {
          return (function t(i) {
            function n(t, n) {
              var r = e((t = zs(t)).h, (n = zs(n)).h),
                s = gi(t.s, n.s),
                o = gi(t.l, n.l),
                a = gi(t.opacity, n.opacity);
              return function (e) {
                return (
                  (t.h = r(e)),
                  (t.s = s(e)),
                  (t.l = o(Math.pow(e, i))),
                  (t.opacity = a(e)),
                  t + ''
                );
              };
            }
            return (i = +i), (n.gamma = t), n;
          })(1);
        }
        const Yf = Wf(ui);
        var Hf = Wf(gi);
        function jf(e, t) {
          for (
            var i = 0, n = t.length - 1, r = t[0], s = new Array(n < 0 ? 0 : n);
            i < n;

          )
            s[i] = e(r, (r = t[++i]));
          return function (e) {
            var t = Math.max(0, Math.min(n - 1, Math.floor((e *= n))));
            return s[t](e - t);
          };
        }
        function Vf(e, t) {
          for (var i = new Array(t), n = 0; n < t; ++n) i[n] = e(n / (t - 1));
          return i;
        }
        function zf(e) {
          for (var t, i = -1, n = e.length, r = e[n - 1], s = 0; ++i < n; )
            (t = r), (r = e[i]), (s += t[1] * r[0] - t[0] * r[1]);
          return s / 2;
        }
        function Uf(e) {
          for (
            var t, i, n = -1, r = e.length, s = 0, o = 0, a = e[r - 1], l = 0;
            ++n < r;

          )
            (t = a),
              (a = e[n]),
              (l += i = t[0] * a[1] - a[0] * t[1]),
              (s += (t[0] + a[0]) * i),
              (o += (t[1] + a[1]) * i);
          return [s / (l *= 3), o / l];
        }
        function $f(e, t, i) {
          return (t[0] - e[0]) * (i[1] - e[1]) - (t[1] - e[1]) * (i[0] - e[0]);
        }
        function Kf(e, t) {
          return e[0] - t[0] || e[1] - t[1];
        }
        function qf(e) {
          for (var t = e.length, i = [0, 1], n = 2, r = 2; r < t; ++r) {
            for (; n > 1 && $f(e[i[n - 2]], e[i[n - 1]], e[r]) <= 0; ) --n;
            i[n++] = r;
          }
          return i.slice(0, n);
        }
        function Gf(e) {
          if ((i = e.length) < 3) return null;
          var t,
            i,
            n = new Array(i),
            r = new Array(i);
          for (t = 0; t < i; ++t) n[t] = [+e[t][0], +e[t][1], t];
          for (n.sort(Kf), t = 0; t < i; ++t) r[t] = [n[t][0], -n[t][1]];
          var s = qf(n),
            o = qf(r),
            a = o[0] === s[0],
            l = o[o.length - 1] === s[s.length - 1],
            c = [];
          for (t = s.length - 1; t >= 0; --t) c.push(e[n[s[t]][2]]);
          for (t = +a; t < o.length - l; ++t) c.push(e[n[o[t]][2]]);
          return c;
        }
        function Zf(e, t) {
          for (
            var i,
              n,
              r = e.length,
              s = e[r - 1],
              o = t[0],
              a = t[1],
              l = s[0],
              c = s[1],
              d = !1,
              h = 0;
            h < r;
            ++h
          )
            (i = (s = e[h])[0]),
              (n = s[1]) > a != c > a &&
                o < ((l - i) * (a - n)) / (c - n) + i &&
                (d = !d),
              (l = i),
              (c = n);
          return d;
        }
        function Jf(e) {
          for (
            var t,
              i,
              n = -1,
              r = e.length,
              s = e[r - 1],
              o = s[0],
              a = s[1],
              l = 0;
            ++n < r;

          )
            (t = o),
              (i = a),
              (t -= o = (s = e[n])[0]),
              (i -= a = s[1]),
              (l += Math.sqrt(t * t + i * i));
          return l;
        }
        function Qf() {
          return Math.random();
        }
        const Xf = (function e(t) {
            function i(e, i) {
              return (
                (e = null == e ? 0 : +e),
                (i = null == i ? 1 : +i),
                1 === arguments.length ? ((i = e), (e = 0)) : (i -= e),
                function () {
                  return t() * i + e;
                }
              );
            }
            return (i.source = e), i;
          })(Qf),
          ep = (function e(t) {
            function i(e, i) {
              var n, r;
              return (
                (e = null == e ? 0 : +e),
                (i = null == i ? 1 : +i),
                function () {
                  var s;
                  if (null != n) (s = n), (n = null);
                  else
                    do {
                      (n = 2 * t() - 1), (s = 2 * t() - 1), (r = n * n + s * s);
                    } while (!r || r > 1);
                  return e + i * s * Math.sqrt((-2 * Math.log(r)) / r);
                }
              );
            }
            return (i.source = e), i;
          })(Qf),
          tp = (function e(t) {
            function i() {
              var e = ep.source(t).apply(this, arguments);
              return function () {
                return Math.exp(e());
              };
            }
            return (i.source = e), i;
          })(Qf),
          ip = (function e(t) {
            function i(e) {
              return function () {
                for (var i = 0, n = 0; n < e; ++n) i += t();
                return i;
              };
            }
            return (i.source = e), i;
          })(Qf),
          np = (function e(t) {
            function i(e) {
              var i = ip.source(t)(e);
              return function () {
                return i() / e;
              };
            }
            return (i.source = e), i;
          })(Qf),
          rp = (function e(t) {
            function i(e) {
              return function () {
                return -Math.log(1 - t()) / e;
              };
            }
            return (i.source = e), i;
          })(Qf);
        function sp(e, t) {
          switch (arguments.length) {
            case 0:
              break;
            case 1:
              this.range(e);
              break;
            default:
              this.range(t).domain(e);
          }
          return this;
        }
        function op(e, t) {
          switch (arguments.length) {
            case 0:
              break;
            case 1:
              this.interpolator(e);
              break;
            default:
              this.interpolator(t).domain(e);
          }
          return this;
        }
        var ap = Array.prototype,
          lp = ap.map,
          cp = ap.slice,
          dp = { name: 'implicit' };
        function hp() {
          var e = is(),
            t = [],
            i = [],
            n = dp;
          function r(r) {
            var s = r + '',
              o = e.get(s);
            if (!o) {
              if (n !== dp) return n;
              e.set(s, (o = t.push(r)));
            }
            return i[(o - 1) % i.length];
          }
          return (
            (r.domain = function (i) {
              if (!arguments.length) return t.slice();
              (t = []), (e = is());
              for (var n, s, o = -1, a = i.length; ++o < a; )
                e.has((s = (n = i[o]) + '')) || e.set(s, t.push(n));
              return r;
            }),
            (r.range = function (e) {
              return arguments.length ? ((i = cp.call(e)), r) : i.slice();
            }),
            (r.unknown = function (e) {
              return arguments.length ? ((n = e), r) : n;
            }),
            (r.copy = function () {
              return hp(t, i).unknown(n);
            }),
            sp.apply(r, arguments),
            r
          );
        }
        function up() {
          var e,
            t,
            i = hp().unknown(void 0),
            n = i.domain,
            r = i.range,
            s = [0, 1],
            o = !1,
            a = 0,
            l = 0,
            c = 0.5;
          function d() {
            var i = n().length,
              d = s[1] < s[0],
              h = s[d - 0],
              u = s[1 - d];
            (e = (u - h) / Math.max(1, i - a + 2 * l)),
              o && (e = Math.floor(e)),
              (h += (u - h - e * (i - a)) * c),
              (t = e * (1 - a)),
              o && ((h = Math.round(h)), (t = Math.round(t)));
            var g = S(i).map(function (t) {
              return h + e * t;
            });
            return r(d ? g.reverse() : g);
          }
          return (
            delete i.unknown,
            (i.domain = function (e) {
              return arguments.length ? (n(e), d()) : n();
            }),
            (i.range = function (e) {
              return arguments.length ? ((s = [+e[0], +e[1]]), d()) : s.slice();
            }),
            (i.rangeRound = function (e) {
              return (s = [+e[0], +e[1]]), (o = !0), d();
            }),
            (i.bandwidth = function () {
              return t;
            }),
            (i.step = function () {
              return e;
            }),
            (i.round = function (e) {
              return arguments.length ? ((o = !!e), d()) : o;
            }),
            (i.padding = function (e) {
              return arguments.length ? ((a = Math.min(1, (l = +e))), d()) : a;
            }),
            (i.paddingInner = function (e) {
              return arguments.length ? ((a = Math.min(1, e)), d()) : a;
            }),
            (i.paddingOuter = function (e) {
              return arguments.length ? ((l = +e), d()) : l;
            }),
            (i.align = function (e) {
              return arguments.length
                ? ((c = Math.max(0, Math.min(1, e))), d())
                : c;
            }),
            (i.copy = function () {
              return up(n(), s)
                .round(o)
                .paddingInner(a)
                .paddingOuter(l)
                .align(c);
            }),
            sp.apply(d(), arguments)
          );
        }
        function gp(e) {
          var t = e.copy;
          return (
            (e.padding = e.paddingOuter),
            delete e.paddingInner,
            delete e.paddingOuter,
            (e.copy = function () {
              return gp(t());
            }),
            e
          );
        }
        function fp() {
          return gp(up.apply(null, arguments).paddingInner(1));
        }
        function pp(e) {
          return +e;
        }
        var mp = [0, 1];
        function _p(e) {
          return e;
        }
        function bp(e, t) {
          return (t -= e = +e)
            ? function (i) {
                return (i - e) / t;
              }
            : ((i = isNaN(t) ? NaN : 0.5),
              function () {
                return i;
              });
          var i;
        }
        function vp(e) {
          var t,
            i = e[0],
            n = e[e.length - 1];
          return (
            i > n && ((t = i), (i = n), (n = t)),
            function (e) {
              return Math.max(i, Math.min(n, e));
            }
          );
        }
        function yp(e, t, i) {
          var n = e[0],
            r = e[1],
            s = t[0],
            o = t[1];
          return (
            r < n
              ? ((n = bp(r, n)), (s = i(o, s)))
              : ((n = bp(n, r)), (s = i(s, o))),
            function (e) {
              return s(n(e));
            }
          );
        }
        function wp(e, t, i) {
          var n = Math.min(e.length, t.length) - 1,
            r = new Array(n),
            s = new Array(n),
            o = -1;
          for (
            e[n] < e[0] &&
            ((e = e.slice().reverse()), (t = t.slice().reverse()));
            ++o < n;

          )
            (r[o] = bp(e[o], e[o + 1])), (s[o] = i(t[o], t[o + 1]));
          return function (t) {
            var i = c(e, t, 1, n) - 1;
            return s[i](r[i](t));
          };
        }
        function Cp(e, t) {
          return t
            .domain(e.domain())
            .range(e.range())
            .interpolate(e.interpolate())
            .clamp(e.clamp())
            .unknown(e.unknown());
        }
        function Sp() {
          var e,
            t,
            i,
            n,
            r,
            s,
            o = mp,
            a = mp,
            l = Di,
            c = _p;
          function d() {
            return (
              (n = Math.min(o.length, a.length) > 2 ? wp : yp),
              (r = s = null),
              h
            );
          }
          function h(t) {
            return isNaN((t = +t))
              ? i
              : (r || (r = n(o.map(e), a, l)))(e(c(t)));
          }
          return (
            (h.invert = function (i) {
              return c(t((s || (s = n(a, o.map(e), Si)))(i)));
            }),
            (h.domain = function (e) {
              return arguments.length
                ? ((o = lp.call(e, pp)), c === _p || (c = vp(o)), d())
                : o.slice();
            }),
            (h.range = function (e) {
              return arguments.length ? ((a = cp.call(e)), d()) : a.slice();
            }),
            (h.rangeRound = function (e) {
              return (a = cp.call(e)), (l = Df), d();
            }),
            (h.clamp = function (e) {
              return arguments.length ? ((c = e ? vp(o) : _p), h) : c !== _p;
            }),
            (h.interpolate = function (e) {
              return arguments.length ? ((l = e), d()) : l;
            }),
            (h.unknown = function (e) {
              return arguments.length ? ((i = e), h) : i;
            }),
            function (i, n) {
              return (e = i), (t = n), d();
            }
          );
        }
        function kp(e, t) {
          return Sp()(e, t);
        }
        function xp(e, t, i, n) {
          var r,
            s = N(e, t, i);
          switch ((n = al(null == n ? ',f' : n)).type) {
            case 's':
              var o = Math.max(Math.abs(e), Math.abs(t));
              return (
                null != n.precision ||
                  isNaN((r = yl(s, o))) ||
                  (n.precision = r),
                fl(n, o)
              );
            case '':
            case 'e':
            case 'g':
            case 'p':
            case 'r':
              null != n.precision ||
                isNaN((r = wl(s, Math.max(Math.abs(e), Math.abs(t))))) ||
                (n.precision = r - ('e' === n.type));
              break;
            case 'f':
            case '%':
              null != n.precision ||
                isNaN((r = vl(s))) ||
                (n.precision = r - 2 * ('%' === n.type));
          }
          return gl(n);
        }
        function Lp(e) {
          var t = e.domain;
          return (
            (e.ticks = function (e) {
              var i = t();
              return M(i[0], i[i.length - 1], null == e ? 10 : e);
            }),
            (e.tickFormat = function (e, i) {
              var n = t();
              return xp(n[0], n[n.length - 1], null == e ? 10 : e, i);
            }),
            (e.nice = function (i) {
              null == i && (i = 10);
              var n,
                r = t(),
                s = 0,
                o = r.length - 1,
                a = r[s],
                l = r[o];
              return (
                l < a && ((n = a), (a = l), (l = n), (n = s), (s = o), (o = n)),
                (n = D(a, l, i)) > 0
                  ? (n = D(
                      (a = Math.floor(a / n) * n),
                      (l = Math.ceil(l / n) * n),
                      i
                    ))
                  : n < 0 &&
                    (n = D(
                      (a = Math.ceil(a * n) / n),
                      (l = Math.floor(l * n) / n),
                      i
                    )),
                n > 0
                  ? ((r[s] = Math.floor(a / n) * n),
                    (r[o] = Math.ceil(l / n) * n),
                    t(r))
                  : n < 0 &&
                    ((r[s] = Math.ceil(a * n) / n),
                    (r[o] = Math.floor(l * n) / n),
                    t(r)),
                e
              );
            }),
            e
          );
        }
        function Mp() {
          var e = kp(_p, _p);
          return (
            (e.copy = function () {
              return Cp(e, Mp());
            }),
            sp.apply(e, arguments),
            Lp(e)
          );
        }
        function Dp(e) {
          var t;
          function i(e) {
            return isNaN((e = +e)) ? t : e;
          }
          return (
            (i.invert = i),
            (i.domain = i.range = function (t) {
              return arguments.length ? ((e = lp.call(t, pp)), i) : e.slice();
            }),
            (i.unknown = function (e) {
              return arguments.length ? ((t = e), i) : t;
            }),
            (i.copy = function () {
              return Dp(e).unknown(t);
            }),
            (e = arguments.length ? lp.call(e, pp) : [0, 1]),
            Lp(i)
          );
        }
        function Np(e, t) {
          var i,
            n = 0,
            r = (e = e.slice()).length - 1,
            s = e[n],
            o = e[r];
          return (
            o < s && ((i = n), (n = r), (r = i), (i = s), (s = o), (o = i)),
            (e[n] = t.floor(s)),
            (e[r] = t.ceil(o)),
            e
          );
        }
        function Ep(e) {
          return Math.log(e);
        }
        function Tp(e) {
          return Math.exp(e);
        }
        function Ip(e) {
          return -Math.log(-e);
        }
        function Op(e) {
          return -Math.exp(-e);
        }
        function Ap(e) {
          return isFinite(e) ? +('1e' + e) : e < 0 ? 0 : e;
        }
        function Rp(e) {
          return function (t) {
            return -e(-t);
          };
        }
        function Pp(e) {
          var t,
            i,
            n = e(Ep, Tp),
            r = n.domain,
            s = 10;
          function o() {
            return (
              (t = (function (e) {
                return e === Math.E
                  ? Math.log
                  : (10 === e && Math.log10) ||
                      (2 === e && Math.log2) ||
                      ((e = Math.log(e)),
                      function (t) {
                        return Math.log(t) / e;
                      });
              })(s)),
              (i = (function (e) {
                return 10 === e
                  ? Ap
                  : e === Math.E
                  ? Math.exp
                  : function (t) {
                      return Math.pow(e, t);
                    };
              })(s)),
              r()[0] < 0 ? ((t = Rp(t)), (i = Rp(i)), e(Ip, Op)) : e(Ep, Tp),
              n
            );
          }
          return (
            (n.base = function (e) {
              return arguments.length ? ((s = +e), o()) : s;
            }),
            (n.domain = function (e) {
              return arguments.length ? (r(e), o()) : r();
            }),
            (n.ticks = function (e) {
              var n,
                o = r(),
                a = o[0],
                l = o[o.length - 1];
              (n = l < a) && ((u = a), (a = l), (l = u));
              var c,
                d,
                h,
                u = t(a),
                g = t(l),
                f = null == e ? 10 : +e,
                p = [];
              if (!(s % 1) && g - u < f) {
                if (((u = Math.round(u) - 1), (g = Math.round(g) + 1), a > 0)) {
                  for (; u < g; ++u)
                    for (d = 1, c = i(u); d < s; ++d)
                      if (!((h = c * d) < a)) {
                        if (h > l) break;
                        p.push(h);
                      }
                } else
                  for (; u < g; ++u)
                    for (d = s - 1, c = i(u); d >= 1; --d)
                      if (!((h = c * d) < a)) {
                        if (h > l) break;
                        p.push(h);
                      }
              } else p = M(u, g, Math.min(g - u, f)).map(i);
              return n ? p.reverse() : p;
            }),
            (n.tickFormat = function (e, r) {
              if (
                (null == r && (r = 10 === s ? '.0e' : ','),
                'function' != typeof r && (r = gl(r)),
                e === 1 / 0)
              )
                return r;
              null == e && (e = 10);
              var o = Math.max(1, (s * e) / n.ticks().length);
              return function (e) {
                var n = e / i(Math.round(t(e)));
                return n * s < s - 0.5 && (n *= s), n <= o ? r(e) : '';
              };
            }),
            (n.nice = function () {
              return r(
                Np(r(), {
                  floor: function (e) {
                    return i(Math.floor(t(e)));
                  },
                  ceil: function (e) {
                    return i(Math.ceil(t(e)));
                  },
                })
              );
            }),
            n
          );
        }
        function Fp() {
          var e = Pp(Sp()).domain([1, 10]);
          return (
            (e.copy = function () {
              return Cp(e, Fp()).base(e.base());
            }),
            sp.apply(e, arguments),
            e
          );
        }
        function Bp(e) {
          return function (t) {
            return Math.sign(t) * Math.log1p(Math.abs(t / e));
          };
        }
        function Wp(e) {
          return function (t) {
            return Math.sign(t) * Math.expm1(Math.abs(t)) * e;
          };
        }
        function Yp(e) {
          var t = 1,
            i = e(Bp(t), Wp(t));
          return (
            (i.constant = function (i) {
              return arguments.length ? e(Bp((t = +i)), Wp(t)) : t;
            }),
            Lp(i)
          );
        }
        function Hp() {
          var e = Yp(Sp());
          return (
            (e.copy = function () {
              return Cp(e, Hp()).constant(e.constant());
            }),
            sp.apply(e, arguments)
          );
        }
        function jp(e) {
          return function (t) {
            return t < 0 ? -Math.pow(-t, e) : Math.pow(t, e);
          };
        }
        function Vp(e) {
          return e < 0 ? -Math.sqrt(-e) : Math.sqrt(e);
        }
        function zp(e) {
          return e < 0 ? -e * e : e * e;
        }
        function Up(e) {
          var t = e(_p, _p),
            i = 1;
          function n() {
            return 1 === i
              ? e(_p, _p)
              : 0.5 === i
              ? e(Vp, zp)
              : e(jp(i), jp(1 / i));
          }
          return (
            (t.exponent = function (e) {
              return arguments.length ? ((i = +e), n()) : i;
            }),
            Lp(t)
          );
        }
        function $p() {
          var e = Up(Sp());
          return (
            (e.copy = function () {
              return Cp(e, $p()).exponent(e.exponent());
            }),
            sp.apply(e, arguments),
            e
          );
        }
        function Kp() {
          return $p.apply(null, arguments).exponent(0.5);
        }
        function qp() {
          var e,
            t = [],
            i = [],
            n = [];
          function s() {
            var e = 0,
              r = Math.max(1, i.length);
            for (n = new Array(r - 1); ++e < r; ) n[e - 1] = I(t, e / r);
            return o;
          }
          function o(t) {
            return isNaN((t = +t)) ? e : i[c(n, t)];
          }
          return (
            (o.invertExtent = function (e) {
              var r = i.indexOf(e);
              return r < 0
                ? [NaN, NaN]
                : [
                    r > 0 ? n[r - 1] : t[0],
                    r < n.length ? n[r] : t[t.length - 1],
                  ];
            }),
            (o.domain = function (e) {
              if (!arguments.length) return t.slice();
              t = [];
              for (var i, n = 0, o = e.length; n < o; ++n)
                null == (i = e[n]) || isNaN((i = +i)) || t.push(i);
              return t.sort(r), s();
            }),
            (o.range = function (e) {
              return arguments.length ? ((i = cp.call(e)), s()) : i.slice();
            }),
            (o.unknown = function (t) {
              return arguments.length ? ((e = t), o) : e;
            }),
            (o.quantiles = function () {
              return n.slice();
            }),
            (o.copy = function () {
              return qp().domain(t).range(i).unknown(e);
            }),
            sp.apply(o, arguments)
          );
        }
        function Gp() {
          var e,
            t = 0,
            i = 1,
            n = 1,
            r = [0.5],
            s = [0, 1];
          function o(t) {
            return t <= t ? s[c(r, t, 0, n)] : e;
          }
          function a() {
            var e = -1;
            for (r = new Array(n); ++e < n; )
              r[e] = ((e + 1) * i - (e - n) * t) / (n + 1);
            return o;
          }
          return (
            (o.domain = function (e) {
              return arguments.length
                ? ((t = +e[0]), (i = +e[1]), a())
                : [t, i];
            }),
            (o.range = function (e) {
              return arguments.length
                ? ((n = (s = cp.call(e)).length - 1), a())
                : s.slice();
            }),
            (o.invertExtent = function (e) {
              var o = s.indexOf(e);
              return o < 0
                ? [NaN, NaN]
                : o < 1
                ? [t, r[0]]
                : o >= n
                ? [r[n - 1], i]
                : [r[o - 1], r[o]];
            }),
            (o.unknown = function (t) {
              return arguments.length ? ((e = t), o) : o;
            }),
            (o.thresholds = function () {
              return r.slice();
            }),
            (o.copy = function () {
              return Gp().domain([t, i]).range(s).unknown(e);
            }),
            sp.apply(Lp(o), arguments)
          );
        }
        function Zp() {
          var e,
            t = [0.5],
            i = [0, 1],
            n = 1;
          function r(r) {
            return r <= r ? i[c(t, r, 0, n)] : e;
          }
          return (
            (r.domain = function (e) {
              return arguments.length
                ? ((t = cp.call(e)), (n = Math.min(t.length, i.length - 1)), r)
                : t.slice();
            }),
            (r.range = function (e) {
              return arguments.length
                ? ((i = cp.call(e)), (n = Math.min(t.length, i.length - 1)), r)
                : i.slice();
            }),
            (r.invertExtent = function (e) {
              var n = i.indexOf(e);
              return [t[n - 1], t[n]];
            }),
            (r.unknown = function (t) {
              return arguments.length ? ((e = t), r) : e;
            }),
            (r.copy = function () {
              return Zp().domain(t).range(i).unknown(e);
            }),
            sp.apply(r, arguments)
          );
        }
        var Jp = new Date(),
          Qp = new Date();
        function Xp(e, t, i, n) {
          function r(t) {
            return (
              e((t = 0 === arguments.length ? new Date() : new Date(+t))), t
            );
          }
          return (
            (r.floor = function (t) {
              return e((t = new Date(+t))), t;
            }),
            (r.ceil = function (i) {
              return e((i = new Date(i - 1))), t(i, 1), e(i), i;
            }),
            (r.round = function (e) {
              var t = r(e),
                i = r.ceil(e);
              return e - t < i - e ? t : i;
            }),
            (r.offset = function (e, i) {
              return t((e = new Date(+e)), null == i ? 1 : Math.floor(i)), e;
            }),
            (r.range = function (i, n, s) {
              var o,
                a = [];
              if (
                ((i = r.ceil(i)),
                (s = null == s ? 1 : Math.floor(s)),
                !(i < n && s > 0))
              )
                return a;
              do {
                a.push((o = new Date(+i))), t(i, s), e(i);
              } while (o < i && i < n);
              return a;
            }),
            (r.filter = function (i) {
              return Xp(
                function (t) {
                  if (t >= t) for (; e(t), !i(t); ) t.setTime(t - 1);
                },
                function (e, n) {
                  if (e >= e)
                    if (n < 0) for (; ++n <= 0; ) for (; t(e, -1), !i(e); );
                    else for (; --n >= 0; ) for (; t(e, 1), !i(e); );
                }
              );
            }),
            i &&
              ((r.count = function (t, n) {
                return (
                  Jp.setTime(+t),
                  Qp.setTime(+n),
                  e(Jp),
                  e(Qp),
                  Math.floor(i(Jp, Qp))
                );
              }),
              (r.every = function (e) {
                return (
                  (e = Math.floor(e)),
                  isFinite(e) && e > 0
                    ? e > 1
                      ? r.filter(
                          n
                            ? function (t) {
                                return n(t) % e == 0;
                              }
                            : function (t) {
                                return r.count(0, t) % e == 0;
                              }
                        )
                      : r
                    : null
                );
              })),
            r
          );
        }
        var em = Xp(
          function (e) {
            e.setMonth(0, 1), e.setHours(0, 0, 0, 0);
          },
          function (e, t) {
            e.setFullYear(e.getFullYear() + t);
          },
          function (e, t) {
            return t.getFullYear() - e.getFullYear();
          },
          function (e) {
            return e.getFullYear();
          }
        );
        em.every = function (e) {
          return isFinite((e = Math.floor(e))) && e > 0
            ? Xp(
                function (t) {
                  t.setFullYear(Math.floor(t.getFullYear() / e) * e),
                    t.setMonth(0, 1),
                    t.setHours(0, 0, 0, 0);
                },
                function (t, i) {
                  t.setFullYear(t.getFullYear() + i * e);
                }
              )
            : null;
        };
        const tm = em;
        var im = em.range,
          nm = Xp(
            function (e) {
              e.setDate(1), e.setHours(0, 0, 0, 0);
            },
            function (e, t) {
              e.setMonth(e.getMonth() + t);
            },
            function (e, t) {
              return (
                t.getMonth() -
                e.getMonth() +
                12 * (t.getFullYear() - e.getFullYear())
              );
            },
            function (e) {
              return e.getMonth();
            }
          );
        const rm = nm;
        var sm = nm.range,
          om = 1e3,
          am = 6e4,
          lm = 36e5,
          cm = 864e5,
          dm = 6048e5;
        function hm(e) {
          return Xp(
            function (t) {
              t.setDate(t.getDate() - ((t.getDay() + 7 - e) % 7)),
                t.setHours(0, 0, 0, 0);
            },
            function (e, t) {
              e.setDate(e.getDate() + 7 * t);
            },
            function (e, t) {
              return (
                (t - e - (t.getTimezoneOffset() - e.getTimezoneOffset()) * am) /
                dm
              );
            }
          );
        }
        var um = hm(0),
          gm = hm(1),
          fm = hm(2),
          pm = hm(3),
          mm = hm(4),
          _m = hm(5),
          bm = hm(6),
          vm = um.range,
          ym = gm.range,
          wm = fm.range,
          Cm = pm.range,
          Sm = mm.range,
          km = _m.range,
          xm = bm.range,
          Lm = Xp(
            function (e) {
              e.setHours(0, 0, 0, 0);
            },
            function (e, t) {
              e.setDate(e.getDate() + t);
            },
            function (e, t) {
              return (
                (t - e - (t.getTimezoneOffset() - e.getTimezoneOffset()) * am) /
                cm
              );
            },
            function (e) {
              return e.getDate() - 1;
            }
          );
        const Mm = Lm;
        var Dm = Lm.range,
          Nm = Xp(
            function (e) {
              e.setTime(
                e -
                  e.getMilliseconds() -
                  e.getSeconds() * om -
                  e.getMinutes() * am
              );
            },
            function (e, t) {
              e.setTime(+e + t * lm);
            },
            function (e, t) {
              return (t - e) / lm;
            },
            function (e) {
              return e.getHours();
            }
          );
        const Em = Nm;
        var Tm = Nm.range,
          Im = Xp(
            function (e) {
              e.setTime(e - e.getMilliseconds() - e.getSeconds() * om);
            },
            function (e, t) {
              e.setTime(+e + t * am);
            },
            function (e, t) {
              return (t - e) / am;
            },
            function (e) {
              return e.getMinutes();
            }
          );
        const Om = Im;
        var Am = Im.range,
          Rm = Xp(
            function (e) {
              e.setTime(e - e.getMilliseconds());
            },
            function (e, t) {
              e.setTime(+e + t * om);
            },
            function (e, t) {
              return (t - e) / om;
            },
            function (e) {
              return e.getUTCSeconds();
            }
          );
        const Pm = Rm;
        var Fm = Rm.range,
          Bm = Xp(
            function () {},
            function (e, t) {
              e.setTime(+e + t);
            },
            function (e, t) {
              return t - e;
            }
          );
        Bm.every = function (e) {
          return (
            (e = Math.floor(e)),
            isFinite(e) && e > 0
              ? e > 1
                ? Xp(
                    function (t) {
                      t.setTime(Math.floor(t / e) * e);
                    },
                    function (t, i) {
                      t.setTime(+t + i * e);
                    },
                    function (t, i) {
                      return (i - t) / e;
                    }
                  )
                : Bm
              : null
          );
        };
        const Wm = Bm;
        var Ym = Bm.range;
        function Hm(e) {
          return Xp(
            function (t) {
              t.setUTCDate(t.getUTCDate() - ((t.getUTCDay() + 7 - e) % 7)),
                t.setUTCHours(0, 0, 0, 0);
            },
            function (e, t) {
              e.setUTCDate(e.getUTCDate() + 7 * t);
            },
            function (e, t) {
              return (t - e) / dm;
            }
          );
        }
        var jm = Hm(0),
          Vm = Hm(1),
          zm = Hm(2),
          Um = Hm(3),
          $m = Hm(4),
          Km = Hm(5),
          qm = Hm(6),
          Gm = jm.range,
          Zm = Vm.range,
          Jm = zm.range,
          Qm = Um.range,
          Xm = $m.range,
          e_ = Km.range,
          t_ = qm.range,
          i_ = Xp(
            function (e) {
              e.setUTCHours(0, 0, 0, 0);
            },
            function (e, t) {
              e.setUTCDate(e.getUTCDate() + t);
            },
            function (e, t) {
              return (t - e) / cm;
            },
            function (e) {
              return e.getUTCDate() - 1;
            }
          );
        const n_ = i_;
        var r_ = i_.range,
          s_ = Xp(
            function (e) {
              e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0);
            },
            function (e, t) {
              e.setUTCFullYear(e.getUTCFullYear() + t);
            },
            function (e, t) {
              return t.getUTCFullYear() - e.getUTCFullYear();
            },
            function (e) {
              return e.getUTCFullYear();
            }
          );
        s_.every = function (e) {
          return isFinite((e = Math.floor(e))) && e > 0
            ? Xp(
                function (t) {
                  t.setUTCFullYear(Math.floor(t.getUTCFullYear() / e) * e),
                    t.setUTCMonth(0, 1),
                    t.setUTCHours(0, 0, 0, 0);
                },
                function (t, i) {
                  t.setUTCFullYear(t.getUTCFullYear() + i * e);
                }
              )
            : null;
        };
        const o_ = s_;
        var a_ = s_.range;
        function l_(e) {
          if (0 <= e.y && e.y < 100) {
            var t = new Date(-1, e.m, e.d, e.H, e.M, e.S, e.L);
            return t.setFullYear(e.y), t;
          }
          return new Date(e.y, e.m, e.d, e.H, e.M, e.S, e.L);
        }
        function c_(e) {
          if (0 <= e.y && e.y < 100) {
            var t = new Date(Date.UTC(-1, e.m, e.d, e.H, e.M, e.S, e.L));
            return t.setUTCFullYear(e.y), t;
          }
          return new Date(Date.UTC(e.y, e.m, e.d, e.H, e.M, e.S, e.L));
        }
        function d_(e, t, i) {
          return { y: e, m: t, d: i, H: 0, M: 0, S: 0, L: 0 };
        }
        function h_(e) {
          var t = e.dateTime,
            i = e.date,
            n = e.time,
            r = e.periods,
            s = e.days,
            o = e.shortDays,
            a = e.months,
            l = e.shortMonths,
            c = S_(r),
            d = k_(r),
            h = S_(s),
            u = k_(s),
            g = S_(o),
            f = k_(o),
            p = S_(a),
            m = k_(a),
            _ = S_(l),
            b = k_(l),
            v = {
              a: function (e) {
                return o[e.getDay()];
              },
              A: function (e) {
                return s[e.getDay()];
              },
              b: function (e) {
                return l[e.getMonth()];
              },
              B: function (e) {
                return a[e.getMonth()];
              },
              c: null,
              d: U_,
              e: U_,
              f: Z_,
              H: $_,
              I: K_,
              j: q_,
              L: G_,
              m: J_,
              M: Q_,
              p: function (e) {
                return r[+(e.getHours() >= 12)];
              },
              q: function (e) {
                return 1 + ~~(e.getMonth() / 3);
              },
              Q: Lb,
              s: Mb,
              S: X_,
              u: eb,
              U: tb,
              V: ib,
              w: nb,
              W: rb,
              x: null,
              X: null,
              y: sb,
              Y: ob,
              Z: ab,
              '%': xb,
            },
            y = {
              a: function (e) {
                return o[e.getUTCDay()];
              },
              A: function (e) {
                return s[e.getUTCDay()];
              },
              b: function (e) {
                return l[e.getUTCMonth()];
              },
              B: function (e) {
                return a[e.getUTCMonth()];
              },
              c: null,
              d: lb,
              e: lb,
              f: gb,
              H: cb,
              I: db,
              j: hb,
              L: ub,
              m: fb,
              M: pb,
              p: function (e) {
                return r[+(e.getUTCHours() >= 12)];
              },
              q: function (e) {
                return 1 + ~~(e.getUTCMonth() / 3);
              },
              Q: Lb,
              s: Mb,
              S: mb,
              u: _b,
              U: bb,
              V: vb,
              w: yb,
              W: wb,
              x: null,
              X: null,
              y: Cb,
              Y: Sb,
              Z: kb,
              '%': xb,
            },
            w = {
              a: function (e, t, i) {
                var n = g.exec(t.slice(i));
                return n
                  ? ((e.w = f[n[0].toLowerCase()]), i + n[0].length)
                  : -1;
              },
              A: function (e, t, i) {
                var n = h.exec(t.slice(i));
                return n
                  ? ((e.w = u[n[0].toLowerCase()]), i + n[0].length)
                  : -1;
              },
              b: function (e, t, i) {
                var n = _.exec(t.slice(i));
                return n
                  ? ((e.m = b[n[0].toLowerCase()]), i + n[0].length)
                  : -1;
              },
              B: function (e, t, i) {
                var n = p.exec(t.slice(i));
                return n
                  ? ((e.m = m[n[0].toLowerCase()]), i + n[0].length)
                  : -1;
              },
              c: function (e, i, n) {
                return k(e, t, i, n);
              },
              d: R_,
              e: R_,
              f: H_,
              H: F_,
              I: F_,
              j: P_,
              L: Y_,
              m: A_,
              M: B_,
              p: function (e, t, i) {
                var n = c.exec(t.slice(i));
                return n
                  ? ((e.p = d[n[0].toLowerCase()]), i + n[0].length)
                  : -1;
              },
              q: O_,
              Q: V_,
              s: z_,
              S: W_,
              u: L_,
              U: M_,
              V: D_,
              w: x_,
              W: N_,
              x: function (e, t, n) {
                return k(e, i, t, n);
              },
              X: function (e, t, i) {
                return k(e, n, t, i);
              },
              y: T_,
              Y: E_,
              Z: I_,
              '%': j_,
            };
          function C(e, t) {
            return function (i) {
              var n,
                r,
                s,
                o = [],
                a = -1,
                l = 0,
                c = e.length;
              for (i instanceof Date || (i = new Date(+i)); ++a < c; )
                37 === e.charCodeAt(a) &&
                  (o.push(e.slice(l, a)),
                  null != (r = __[(n = e.charAt(++a))])
                    ? (n = e.charAt(++a))
                    : (r = 'e' === n ? ' ' : '0'),
                  (s = t[n]) && (n = s(i, r)),
                  o.push(n),
                  (l = a + 1));
              return o.push(e.slice(l, a)), o.join('');
            };
          }
          function S(e, t) {
            return function (i) {
              var n,
                r,
                s = d_(1900, void 0, 1);
              if (k(s, e, (i += ''), 0) != i.length) return null;
              if ('Q' in s) return new Date(s.Q);
              if ('s' in s) return new Date(1e3 * s.s + ('L' in s ? s.L : 0));
              if (
                (t && !('Z' in s) && (s.Z = 0),
                'p' in s && (s.H = (s.H % 12) + 12 * s.p),
                void 0 === s.m && (s.m = 'q' in s ? s.q : 0),
                'V' in s)
              ) {
                if (s.V < 1 || s.V > 53) return null;
                'w' in s || (s.w = 1),
                  'Z' in s
                    ? ((r = (n = c_(d_(s.y, 0, 1))).getUTCDay()),
                      (n = r > 4 || 0 === r ? Vm.ceil(n) : Vm(n)),
                      (n = n_.offset(n, 7 * (s.V - 1))),
                      (s.y = n.getUTCFullYear()),
                      (s.m = n.getUTCMonth()),
                      (s.d = n.getUTCDate() + ((s.w + 6) % 7)))
                    : ((r = (n = l_(d_(s.y, 0, 1))).getDay()),
                      (n = r > 4 || 0 === r ? gm.ceil(n) : gm(n)),
                      (n = Mm.offset(n, 7 * (s.V - 1))),
                      (s.y = n.getFullYear()),
                      (s.m = n.getMonth()),
                      (s.d = n.getDate() + ((s.w + 6) % 7)));
              } else
                ('W' in s || 'U' in s) &&
                  ('w' in s || (s.w = 'u' in s ? s.u % 7 : 'W' in s ? 1 : 0),
                  (r =
                    'Z' in s
                      ? c_(d_(s.y, 0, 1)).getUTCDay()
                      : l_(d_(s.y, 0, 1)).getDay()),
                  (s.m = 0),
                  (s.d =
                    'W' in s
                      ? ((s.w + 6) % 7) + 7 * s.W - ((r + 5) % 7)
                      : s.w + 7 * s.U - ((r + 6) % 7)));
              return 'Z' in s
                ? ((s.H += (s.Z / 100) | 0), (s.M += s.Z % 100), c_(s))
                : l_(s);
            };
          }
          function k(e, t, i, n) {
            for (var r, s, o = 0, a = t.length, l = i.length; o < a; ) {
              if (n >= l) return -1;
              if (37 === (r = t.charCodeAt(o++))) {
                if (
                  ((r = t.charAt(o++)),
                  !(s = w[r in __ ? t.charAt(o++) : r]) || (n = s(e, i, n)) < 0)
                )
                  return -1;
              } else if (r != i.charCodeAt(n++)) return -1;
            }
            return n;
          }
          return (
            (v.x = C(i, v)),
            (v.X = C(n, v)),
            (v.c = C(t, v)),
            (y.x = C(i, y)),
            (y.X = C(n, y)),
            (y.c = C(t, y)),
            {
              format: function (e) {
                var t = C((e += ''), v);
                return (
                  (t.toString = function () {
                    return e;
                  }),
                  t
                );
              },
              parse: function (e) {
                var t = S((e += ''), !1);
                return (
                  (t.toString = function () {
                    return e;
                  }),
                  t
                );
              },
              utcFormat: function (e) {
                var t = C((e += ''), y);
                return (
                  (t.toString = function () {
                    return e;
                  }),
                  t
                );
              },
              utcParse: function (e) {
                var t = S((e += ''), !0);
                return (
                  (t.toString = function () {
                    return e;
                  }),
                  t
                );
              },
            }
          );
        }
        var u_,
          g_,
          f_,
          p_,
          m_,
          __ = { '-': '', _: ' ', 0: '0' },
          b_ = /^\s*\d+/,
          v_ = /^%/,
          y_ = /[\\^$*+?|[\]().{}]/g;
        function w_(e, t, i) {
          var n = e < 0 ? '-' : '',
            r = (n ? -e : e) + '',
            s = r.length;
          return n + (s < i ? new Array(i - s + 1).join(t) + r : r);
        }
        function C_(e) {
          return e.replace(y_, '\\$&');
        }
        function S_(e) {
          return new RegExp('^(?:' + e.map(C_).join('|') + ')', 'i');
        }
        function k_(e) {
          for (var t = {}, i = -1, n = e.length; ++i < n; )
            t[e[i].toLowerCase()] = i;
          return t;
        }
        function x_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 1));
          return n ? ((e.w = +n[0]), i + n[0].length) : -1;
        }
        function L_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 1));
          return n ? ((e.u = +n[0]), i + n[0].length) : -1;
        }
        function M_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.U = +n[0]), i + n[0].length) : -1;
        }
        function D_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.V = +n[0]), i + n[0].length) : -1;
        }
        function N_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.W = +n[0]), i + n[0].length) : -1;
        }
        function E_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 4));
          return n ? ((e.y = +n[0]), i + n[0].length) : -1;
        }
        function T_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n
            ? ((e.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3)), i + n[0].length)
            : -1;
        }
        function I_(e, t, i) {
          var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(i, i + 6));
          return n
            ? ((e.Z = n[1] ? 0 : -(n[2] + (n[3] || '00'))), i + n[0].length)
            : -1;
        }
        function O_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 1));
          return n ? ((e.q = 3 * n[0] - 3), i + n[0].length) : -1;
        }
        function A_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.m = n[0] - 1), i + n[0].length) : -1;
        }
        function R_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.d = +n[0]), i + n[0].length) : -1;
        }
        function P_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 3));
          return n ? ((e.m = 0), (e.d = +n[0]), i + n[0].length) : -1;
        }
        function F_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.H = +n[0]), i + n[0].length) : -1;
        }
        function B_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.M = +n[0]), i + n[0].length) : -1;
        }
        function W_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 2));
          return n ? ((e.S = +n[0]), i + n[0].length) : -1;
        }
        function Y_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 3));
          return n ? ((e.L = +n[0]), i + n[0].length) : -1;
        }
        function H_(e, t, i) {
          var n = b_.exec(t.slice(i, i + 6));
          return n ? ((e.L = Math.floor(n[0] / 1e3)), i + n[0].length) : -1;
        }
        function j_(e, t, i) {
          var n = v_.exec(t.slice(i, i + 1));
          return n ? i + n[0].length : -1;
        }
        function V_(e, t, i) {
          var n = b_.exec(t.slice(i));
          return n ? ((e.Q = +n[0]), i + n[0].length) : -1;
        }
        function z_(e, t, i) {
          var n = b_.exec(t.slice(i));
          return n ? ((e.s = +n[0]), i + n[0].length) : -1;
        }
        function U_(e, t) {
          return w_(e.getDate(), t, 2);
        }
        function $_(e, t) {
          return w_(e.getHours(), t, 2);
        }
        function K_(e, t) {
          return w_(e.getHours() % 12 || 12, t, 2);
        }
        function q_(e, t) {
          return w_(1 + Mm.count(tm(e), e), t, 3);
        }
        function G_(e, t) {
          return w_(e.getMilliseconds(), t, 3);
        }
        function Z_(e, t) {
          return G_(e, t) + '000';
        }
        function J_(e, t) {
          return w_(e.getMonth() + 1, t, 2);
        }
        function Q_(e, t) {
          return w_(e.getMinutes(), t, 2);
        }
        function X_(e, t) {
          return w_(e.getSeconds(), t, 2);
        }
        function eb(e) {
          var t = e.getDay();
          return 0 === t ? 7 : t;
        }
        function tb(e, t) {
          return w_(um.count(tm(e) - 1, e), t, 2);
        }
        function ib(e, t) {
          var i = e.getDay();
          return (
            (e = i >= 4 || 0 === i ? mm(e) : mm.ceil(e)),
            w_(mm.count(tm(e), e) + (4 === tm(e).getDay()), t, 2)
          );
        }
        function nb(e) {
          return e.getDay();
        }
        function rb(e, t) {
          return w_(gm.count(tm(e) - 1, e), t, 2);
        }
        function sb(e, t) {
          return w_(e.getFullYear() % 100, t, 2);
        }
        function ob(e, t) {
          return w_(e.getFullYear() % 1e4, t, 4);
        }
        function ab(e) {
          var t = e.getTimezoneOffset();
          return (
            (t > 0 ? '-' : ((t *= -1), '+')) +
            w_((t / 60) | 0, '0', 2) +
            w_(t % 60, '0', 2)
          );
        }
        function lb(e, t) {
          return w_(e.getUTCDate(), t, 2);
        }
        function cb(e, t) {
          return w_(e.getUTCHours(), t, 2);
        }
        function db(e, t) {
          return w_(e.getUTCHours() % 12 || 12, t, 2);
        }
        function hb(e, t) {
          return w_(1 + n_.count(o_(e), e), t, 3);
        }
        function ub(e, t) {
          return w_(e.getUTCMilliseconds(), t, 3);
        }
        function gb(e, t) {
          return ub(e, t) + '000';
        }
        function fb(e, t) {
          return w_(e.getUTCMonth() + 1, t, 2);
        }
        function pb(e, t) {
          return w_(e.getUTCMinutes(), t, 2);
        }
        function mb(e, t) {
          return w_(e.getUTCSeconds(), t, 2);
        }
        function _b(e) {
          var t = e.getUTCDay();
          return 0 === t ? 7 : t;
        }
        function bb(e, t) {
          return w_(jm.count(o_(e) - 1, e), t, 2);
        }
        function vb(e, t) {
          var i = e.getUTCDay();
          return (
            (e = i >= 4 || 0 === i ? $m(e) : $m.ceil(e)),
            w_($m.count(o_(e), e) + (4 === o_(e).getUTCDay()), t, 2)
          );
        }
        function yb(e) {
          return e.getUTCDay();
        }
        function wb(e, t) {
          return w_(Vm.count(o_(e) - 1, e), t, 2);
        }
        function Cb(e, t) {
          return w_(e.getUTCFullYear() % 100, t, 2);
        }
        function Sb(e, t) {
          return w_(e.getUTCFullYear() % 1e4, t, 4);
        }
        function kb() {
          return '+0000';
        }
        function xb() {
          return '%';
        }
        function Lb(e) {
          return +e;
        }
        function Mb(e) {
          return Math.floor(+e / 1e3);
        }
        function Db(e) {
          return (
            (u_ = h_(e)),
            (g_ = u_.format),
            (f_ = u_.parse),
            (p_ = u_.utcFormat),
            (m_ = u_.utcParse),
            u_
          );
        }
        Db({
          dateTime: '%x, %X',
          date: '%-m/%-d/%Y',
          time: '%-I:%M:%S %p',
          periods: ['AM', 'PM'],
          days: [
            'Sunday',
            'Monday',
            'Tuesday',
            'Wednesday',
            'Thursday',
            'Friday',
            'Saturday',
          ],
          shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
          months: [
            'January',
            'February',
            'March',
            'April',
            'May',
            'June',
            'July',
            'August',
            'September',
            'October',
            'November',
            'December',
          ],
          shortMonths: [
            'Jan',
            'Feb',
            'Mar',
            'Apr',
            'May',
            'Jun',
            'Jul',
            'Aug',
            'Sep',
            'Oct',
            'Nov',
            'Dec',
          ],
        });
        var Nb = 31536e6;
        function Eb(e) {
          return new Date(e);
        }
        function Tb(e) {
          return e instanceof Date ? +e : +new Date(+e);
        }
        function Ib(e, t, i, n, r, o, a, l, c) {
          var d = kp(_p, _p),
            h = d.invert,
            u = d.domain,
            g = c('.%L'),
            f = c(':%S'),
            p = c('%I:%M'),
            m = c('%I %p'),
            _ = c('%a %d'),
            b = c('%b %d'),
            v = c('%B'),
            y = c('%Y'),
            w = [
              [a, 1, 1e3],
              [a, 5, 5e3],
              [a, 15, 15e3],
              [a, 30, 3e4],
              [o, 1, 6e4],
              [o, 5, 3e5],
              [o, 15, 9e5],
              [o, 30, 18e5],
              [r, 1, 36e5],
              [r, 3, 108e5],
              [r, 6, 216e5],
              [r, 12, 432e5],
              [n, 1, 864e5],
              [n, 2, 1728e5],
              [i, 1, 6048e5],
              [t, 1, 2592e6],
              [t, 3, 7776e6],
              [e, 1, Nb],
            ];
          function C(s) {
            return (a(s) < s
              ? g
              : o(s) < s
              ? f
              : r(s) < s
              ? p
              : n(s) < s
              ? m
              : t(s) < s
              ? i(s) < s
                ? _
                : b
              : e(s) < s
              ? v
              : y)(s);
          }
          function S(t, i, n, r) {
            if ((null == t && (t = 10), 'number' == typeof t)) {
              var o = Math.abs(n - i) / t,
                a = s(function (e) {
                  return e[2];
                }).right(w, o);
              a === w.length
                ? ((r = N(i / Nb, n / Nb, t)), (t = e))
                : a
                ? ((r = (a = w[o / w[a - 1][2] < w[a][2] / o ? a - 1 : a])[1]),
                  (t = a[0]))
                : ((r = Math.max(N(i, n, t), 1)), (t = l));
            }
            return null == r ? t : t.every(r);
          }
          return (
            (d.invert = function (e) {
              return new Date(h(e));
            }),
            (d.domain = function (e) {
              return arguments.length ? u(lp.call(e, Tb)) : u().map(Eb);
            }),
            (d.ticks = function (e, t) {
              var i,
                n = u(),
                r = n[0],
                s = n[n.length - 1],
                o = s < r;
              return (
                o && ((i = r), (r = s), (s = i)),
                (i = (i = S(e, r, s, t)) ? i.range(r, s + 1) : []),
                o ? i.reverse() : i
              );
            }),
            (d.tickFormat = function (e, t) {
              return null == t ? C : c(t);
            }),
            (d.nice = function (e, t) {
              var i = u();
              return (e = S(e, i[0], i[i.length - 1], t)) ? u(Np(i, e)) : d;
            }),
            (d.copy = function () {
              return Cp(d, Ib(e, t, i, n, r, o, a, l, c));
            }),
            d
          );
        }
        function Ob() {
          return sp.apply(
            Ib(tm, rm, um, Mm, Em, Om, Pm, Wm, g_).domain([
              new Date(2e3, 0, 1),
              new Date(2e3, 0, 2),
            ]),
            arguments
          );
        }
        var Ab = Xp(
          function (e) {
            e.setUTCDate(1), e.setUTCHours(0, 0, 0, 0);
          },
          function (e, t) {
            e.setUTCMonth(e.getUTCMonth() + t);
          },
          function (e, t) {
            return (
              t.getUTCMonth() -
              e.getUTCMonth() +
              12 * (t.getUTCFullYear() - e.getUTCFullYear())
            );
          },
          function (e) {
            return e.getUTCMonth();
          }
        );
        const Rb = Ab;
        var Pb = Ab.range,
          Fb = Xp(
            function (e) {
              e.setUTCMinutes(0, 0, 0);
            },
            function (e, t) {
              e.setTime(+e + t * lm);
            },
            function (e, t) {
              return (t - e) / lm;
            },
            function (e) {
              return e.getUTCHours();
            }
          );
        const Bb = Fb;
        var Wb = Fb.range,
          Yb = Xp(
            function (e) {
              e.setUTCSeconds(0, 0);
            },
            function (e, t) {
              e.setTime(+e + t * am);
            },
            function (e, t) {
              return (t - e) / am;
            },
            function (e) {
              return e.getUTCMinutes();
            }
          );
        const Hb = Yb;
        var jb = Yb.range;
        function Vb() {
          return sp.apply(
            Ib(o_, Rb, jm, n_, Bb, Hb, Pm, Wm, p_).domain([
              Date.UTC(2e3, 0, 1),
              Date.UTC(2e3, 0, 2),
            ]),
            arguments
          );
        }
        function zb() {
          var e,
            t,
            i,
            n,
            r,
            s = 0,
            o = 1,
            a = _p,
            l = !1;
          function c(t) {
            return isNaN((t = +t))
              ? r
              : a(
                  0 === i
                    ? 0.5
                    : ((t = (n(t) - e) * i),
                      l ? Math.max(0, Math.min(1, t)) : t)
                );
          }
          return (
            (c.domain = function (r) {
              return arguments.length
                ? ((e = n((s = +r[0]))),
                  (t = n((o = +r[1]))),
                  (i = e === t ? 0 : 1 / (t - e)),
                  c)
                : [s, o];
            }),
            (c.clamp = function (e) {
              return arguments.length ? ((l = !!e), c) : l;
            }),
            (c.interpolator = function (e) {
              return arguments.length ? ((a = e), c) : a;
            }),
            (c.unknown = function (e) {
              return arguments.length ? ((r = e), c) : r;
            }),
            function (r) {
              return (
                (n = r),
                (e = r(s)),
                (t = r(o)),
                (i = e === t ? 0 : 1 / (t - e)),
                c
              );
            }
          );
        }
        function Ub(e, t) {
          return t
            .domain(e.domain())
            .interpolator(e.interpolator())
            .clamp(e.clamp())
            .unknown(e.unknown());
        }
        function $b() {
          var e = Lp(zb()(_p));
          return (
            (e.copy = function () {
              return Ub(e, $b());
            }),
            op.apply(e, arguments)
          );
        }
        function Kb() {
          var e = Pp(zb()).domain([1, 10]);
          return (
            (e.copy = function () {
              return Ub(e, Kb()).base(e.base());
            }),
            op.apply(e, arguments)
          );
        }
        function qb() {
          var e = Yp(zb());
          return (
            (e.copy = function () {
              return Ub(e, qb()).constant(e.constant());
            }),
            op.apply(e, arguments)
          );
        }
        function Gb() {
          var e = Up(zb());
          return (
            (e.copy = function () {
              return Ub(e, Gb()).exponent(e.exponent());
            }),
            op.apply(e, arguments)
          );
        }
        function Zb() {
          return Gb.apply(null, arguments).exponent(0.5);
        }
        function Jb() {
          var e = [],
            t = _p;
          function i(i) {
            if (!isNaN((i = +i))) return t((c(e, i) - 1) / (e.length - 1));
          }
          return (
            (i.domain = function (t) {
              if (!arguments.length) return e.slice();
              e = [];
              for (var n, s = 0, o = t.length; s < o; ++s)
                null == (n = t[s]) || isNaN((n = +n)) || e.push(n);
              return e.sort(r), i;
            }),
            (i.interpolator = function (e) {
              return arguments.length ? ((t = e), i) : t;
            }),
            (i.copy = function () {
              return Jb(t).domain(e);
            }),
            op.apply(i, arguments)
          );
        }
        function Qb() {
          var e,
            t,
            i,
            n,
            r,
            s,
            o,
            a = 0,
            l = 0.5,
            c = 1,
            d = _p,
            h = !1;
          function u(e) {
            return isNaN((e = +e))
              ? o
              : ((e = 0.5 + ((e = +s(e)) - t) * (e < t ? n : r)),
                d(h ? Math.max(0, Math.min(1, e)) : e));
          }
          return (
            (u.domain = function (o) {
              return arguments.length
                ? ((e = s((a = +o[0]))),
                  (t = s((l = +o[1]))),
                  (i = s((c = +o[2]))),
                  (n = e === t ? 0 : 0.5 / (t - e)),
                  (r = t === i ? 0 : 0.5 / (i - t)),
                  u)
                : [a, l, c];
            }),
            (u.clamp = function (e) {
              return arguments.length ? ((h = !!e), u) : h;
            }),
            (u.interpolator = function (e) {
              return arguments.length ? ((d = e), u) : d;
            }),
            (u.unknown = function (e) {
              return arguments.length ? ((o = e), u) : o;
            }),
            function (o) {
              return (
                (s = o),
                (e = o(a)),
                (t = o(l)),
                (i = o(c)),
                (n = e === t ? 0 : 0.5 / (t - e)),
                (r = t === i ? 0 : 0.5 / (i - t)),
                u
              );
            }
          );
        }
        function Xb() {
          var e = Lp(Qb()(_p));
          return (
            (e.copy = function () {
              return Ub(e, Xb());
            }),
            op.apply(e, arguments)
          );
        }
        function ev() {
          var e = Pp(Qb()).domain([0.1, 1, 10]);
          return (
            (e.copy = function () {
              return Ub(e, ev()).base(e.base());
            }),
            op.apply(e, arguments)
          );
        }
        function tv() {
          var e = Yp(Qb());
          return (
            (e.copy = function () {
              return Ub(e, tv()).constant(e.constant());
            }),
            op.apply(e, arguments)
          );
        }
        function iv() {
          var e = Up(Qb());
          return (
            (e.copy = function () {
              return Ub(e, iv()).exponent(e.exponent());
            }),
            op.apply(e, arguments)
          );
        }
        function nv() {
          return iv.apply(null, arguments).exponent(0.5);
        }
        function rv(e) {
          for (var t = (e.length / 6) | 0, i = new Array(t), n = 0; n < t; )
            i[n] = '#' + e.slice(6 * n, 6 * ++n);
          return i;
        }
        const sv = rv(
            '1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf'
          ),
          ov = rv('7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666'),
          av = rv('1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666'),
          lv = rv(
            'a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928'
          ),
          cv = rv('fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2'),
          dv = rv('b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc'),
          hv = rv('e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999'),
          uv = rv('66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3'),
          gv = rv(
            '8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f'
          ),
          fv = rv(
            '4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab'
          );
        function pv(e) {
          return mi(e[e.length - 1]);
        }
        var mv = new Array(3)
          .concat(
            'd8b365f5f5f55ab4ac',
            'a6611adfc27d80cdc1018571',
            'a6611adfc27df5f5f580cdc1018571',
            '8c510ad8b365f6e8c3c7eae55ab4ac01665e',
            '8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e',
            '8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e',
            '8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e',
            '5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30',
            '5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30'
          )
          .map(rv);
        const _v = pv(mv);
        var bv = new Array(3)
          .concat(
            'af8dc3f7f7f77fbf7b',
            '7b3294c2a5cfa6dba0008837',
            '7b3294c2a5cff7f7f7a6dba0008837',
            '762a83af8dc3e7d4e8d9f0d37fbf7b1b7837',
            '762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837',
            '762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837',
            '762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837',
            '40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b',
            '40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b'
          )
          .map(rv);
        const vv = pv(bv);
        var yv = new Array(3)
          .concat(
            'e9a3c9f7f7f7a1d76a',
            'd01c8bf1b6dab8e1864dac26',
            'd01c8bf1b6daf7f7f7b8e1864dac26',
            'c51b7de9a3c9fde0efe6f5d0a1d76a4d9221',
            'c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221',
            'c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221',
            'c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221',
            '8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419',
            '8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419'
          )
          .map(rv);
        const wv = pv(yv);
        var Cv = new Array(3)
          .concat(
            '998ec3f7f7f7f1a340',
            '5e3c99b2abd2fdb863e66101',
            '5e3c99b2abd2f7f7f7fdb863e66101',
            '542788998ec3d8daebfee0b6f1a340b35806',
            '542788998ec3d8daebf7f7f7fee0b6f1a340b35806',
            '5427888073acb2abd2d8daebfee0b6fdb863e08214b35806',
            '5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806',
            '2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08',
            '2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08'
          )
          .map(rv);
        const Sv = pv(Cv);
        var kv = new Array(3)
          .concat(
            'ef8a62f7f7f767a9cf',
            'ca0020f4a58292c5de0571b0',
            'ca0020f4a582f7f7f792c5de0571b0',
            'b2182bef8a62fddbc7d1e5f067a9cf2166ac',
            'b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac',
            'b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac',
            'b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac',
            '67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061',
            '67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061'
          )
          .map(rv);
        const xv = pv(kv);
        var Lv = new Array(3)
          .concat(
            'ef8a62ffffff999999',
            'ca0020f4a582bababa404040',
            'ca0020f4a582ffffffbababa404040',
            'b2182bef8a62fddbc7e0e0e09999994d4d4d',
            'b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d',
            'b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d',
            'b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d',
            '67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a',
            '67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a'
          )
          .map(rv);
        const Mv = pv(Lv);
        var Dv = new Array(3)
          .concat(
            'fc8d59ffffbf91bfdb',
            'd7191cfdae61abd9e92c7bb6',
            'd7191cfdae61ffffbfabd9e92c7bb6',
            'd73027fc8d59fee090e0f3f891bfdb4575b4',
            'd73027fc8d59fee090ffffbfe0f3f891bfdb4575b4',
            'd73027f46d43fdae61fee090e0f3f8abd9e974add14575b4',
            'd73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4',
            'a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695',
            'a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695'
          )
          .map(rv);
        const Nv = pv(Dv);
        var Ev = new Array(3)
          .concat(
            'fc8d59ffffbf91cf60',
            'd7191cfdae61a6d96a1a9641',
            'd7191cfdae61ffffbfa6d96a1a9641',
            'd73027fc8d59fee08bd9ef8b91cf601a9850',
            'd73027fc8d59fee08bffffbfd9ef8b91cf601a9850',
            'd73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850',
            'd73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850',
            'a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837',
            'a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837'
          )
          .map(rv);
        const Tv = pv(Ev);
        var Iv = new Array(3)
          .concat(
            'fc8d59ffffbf99d594',
            'd7191cfdae61abdda42b83ba',
            'd7191cfdae61ffffbfabdda42b83ba',
            'd53e4ffc8d59fee08be6f59899d5943288bd',
            'd53e4ffc8d59fee08bffffbfe6f59899d5943288bd',
            'd53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd',
            'd53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd',
            '9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2',
            '9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2'
          )
          .map(rv);
        const Ov = pv(Iv);
        var Av = new Array(3)
          .concat(
            'e5f5f999d8c92ca25f',
            'edf8fbb2e2e266c2a4238b45',
            'edf8fbb2e2e266c2a42ca25f006d2c',
            'edf8fbccece699d8c966c2a42ca25f006d2c',
            'edf8fbccece699d8c966c2a441ae76238b45005824',
            'f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824',
            'f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b'
          )
          .map(rv);
        const Rv = pv(Av);
        var Pv = new Array(3)
          .concat(
            'e0ecf49ebcda8856a7',
            'edf8fbb3cde38c96c688419d',
            'edf8fbb3cde38c96c68856a7810f7c',
            'edf8fbbfd3e69ebcda8c96c68856a7810f7c',
            'edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b',
            'f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b',
            'f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b'
          )
          .map(rv);
        const Fv = pv(Pv);
        var Bv = new Array(3)
          .concat(
            'e0f3dba8ddb543a2ca',
            'f0f9e8bae4bc7bccc42b8cbe',
            'f0f9e8bae4bc7bccc443a2ca0868ac',
            'f0f9e8ccebc5a8ddb57bccc443a2ca0868ac',
            'f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e',
            'f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e',
            'f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081'
          )
          .map(rv);
        const Wv = pv(Bv);
        var Yv = new Array(3)
          .concat(
            'fee8c8fdbb84e34a33',
            'fef0d9fdcc8afc8d59d7301f',
            'fef0d9fdcc8afc8d59e34a33b30000',
            'fef0d9fdd49efdbb84fc8d59e34a33b30000',
            'fef0d9fdd49efdbb84fc8d59ef6548d7301f990000',
            'fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000',
            'fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000'
          )
          .map(rv);
        const Hv = pv(Yv);
        var jv = new Array(3)
          .concat(
            'ece2f0a6bddb1c9099',
            'f6eff7bdc9e167a9cf02818a',
            'f6eff7bdc9e167a9cf1c9099016c59',
            'f6eff7d0d1e6a6bddb67a9cf1c9099016c59',
            'f6eff7d0d1e6a6bddb67a9cf3690c002818a016450',
            'fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450',
            'fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636'
          )
          .map(rv);
        const Vv = pv(jv);
        var zv = new Array(3)
          .concat(
            'ece7f2a6bddb2b8cbe',
            'f1eef6bdc9e174a9cf0570b0',
            'f1eef6bdc9e174a9cf2b8cbe045a8d',
            'f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d',
            'f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b',
            'fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b',
            'fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858'
          )
          .map(rv);
        const Uv = pv(zv);
        var $v = new Array(3)
          .concat(
            'e7e1efc994c7dd1c77',
            'f1eef6d7b5d8df65b0ce1256',
            'f1eef6d7b5d8df65b0dd1c77980043',
            'f1eef6d4b9dac994c7df65b0dd1c77980043',
            'f1eef6d4b9dac994c7df65b0e7298ace125691003f',
            'f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f',
            'f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f'
          )
          .map(rv);
        const Kv = pv($v);
        var qv = new Array(3)
          .concat(
            'fde0ddfa9fb5c51b8a',
            'feebe2fbb4b9f768a1ae017e',
            'feebe2fbb4b9f768a1c51b8a7a0177',
            'feebe2fcc5c0fa9fb5f768a1c51b8a7a0177',
            'feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177',
            'fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177',
            'fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a'
          )
          .map(rv);
        const Gv = pv(qv);
        var Zv = new Array(3)
          .concat(
            'edf8b17fcdbb2c7fb8',
            'ffffcca1dab441b6c4225ea8',
            'ffffcca1dab441b6c42c7fb8253494',
            'ffffccc7e9b47fcdbb41b6c42c7fb8253494',
            'ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84',
            'ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84',
            'ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58'
          )
          .map(rv);
        const Jv = pv(Zv);
        var Qv = new Array(3)
          .concat(
            'f7fcb9addd8e31a354',
            'ffffccc2e69978c679238443',
            'ffffccc2e69978c67931a354006837',
            'ffffccd9f0a3addd8e78c67931a354006837',
            'ffffccd9f0a3addd8e78c67941ab5d238443005a32',
            'ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32',
            'ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529'
          )
          .map(rv);
        const Xv = pv(Qv);
        var ey = new Array(3)
          .concat(
            'fff7bcfec44fd95f0e',
            'ffffd4fed98efe9929cc4c02',
            'ffffd4fed98efe9929d95f0e993404',
            'ffffd4fee391fec44ffe9929d95f0e993404',
            'ffffd4fee391fec44ffe9929ec7014cc4c028c2d04',
            'ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04',
            'ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506'
          )
          .map(rv);
        const ty = pv(ey);
        var iy = new Array(3)
          .concat(
            'ffeda0feb24cf03b20',
            'ffffb2fecc5cfd8d3ce31a1c',
            'ffffb2fecc5cfd8d3cf03b20bd0026',
            'ffffb2fed976feb24cfd8d3cf03b20bd0026',
            'ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026',
            'ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026',
            'ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026'
          )
          .map(rv);
        const ny = pv(iy);
        var ry = new Array(3)
          .concat(
            'deebf79ecae13182bd',
            'eff3ffbdd7e76baed62171b5',
            'eff3ffbdd7e76baed63182bd08519c',
            'eff3ffc6dbef9ecae16baed63182bd08519c',
            'eff3ffc6dbef9ecae16baed64292c62171b5084594',
            'f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594',
            'f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b'
          )
          .map(rv);
        const sy = pv(ry);
        var oy = new Array(3)
          .concat(
            'e5f5e0a1d99b31a354',
            'edf8e9bae4b374c476238b45',
            'edf8e9bae4b374c47631a354006d2c',
            'edf8e9c7e9c0a1d99b74c47631a354006d2c',
            'edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32',
            'f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32',
            'f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b'
          )
          .map(rv);
        const ay = pv(oy);
        var ly = new Array(3)
          .concat(
            'f0f0f0bdbdbd636363',
            'f7f7f7cccccc969696525252',
            'f7f7f7cccccc969696636363252525',
            'f7f7f7d9d9d9bdbdbd969696636363252525',
            'f7f7f7d9d9d9bdbdbd969696737373525252252525',
            'fffffff0f0f0d9d9d9bdbdbd969696737373525252252525',
            'fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000'
          )
          .map(rv);
        const cy = pv(ly);
        var dy = new Array(3)
          .concat(
            'efedf5bcbddc756bb1',
            'f2f0f7cbc9e29e9ac86a51a3',
            'f2f0f7cbc9e29e9ac8756bb154278f',
            'f2f0f7dadaebbcbddc9e9ac8756bb154278f',
            'f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486',
            'fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486',
            'fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d'
          )
          .map(rv);
        const hy = pv(dy);
        var uy = new Array(3)
          .concat(
            'fee0d2fc9272de2d26',
            'fee5d9fcae91fb6a4acb181d',
            'fee5d9fcae91fb6a4ade2d26a50f15',
            'fee5d9fcbba1fc9272fb6a4ade2d26a50f15',
            'fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d',
            'fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d',
            'fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d'
          )
          .map(rv);
        const gy = pv(uy);
        var fy = new Array(3)
          .concat(
            'fee6cefdae6be6550d',
            'feeddefdbe85fd8d3cd94701',
            'feeddefdbe85fd8d3ce6550da63603',
            'feeddefdd0a2fdae6bfd8d3ce6550da63603',
            'feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04',
            'fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04',
            'fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704'
          )
          .map(rv);
        const py = pv(fy);
        function my(e) {
          return (
            (e = Math.max(0, Math.min(1, e))),
            'rgb(' +
              Math.max(
                0,
                Math.min(
                  255,
                  Math.round(
                    -4.54 -
                      e *
                        (35.34 -
                          e *
                            (2381.73 -
                              e * (6402.7 - e * (7024.72 - 2710.57 * e))))
                  )
                )
              ) +
              ', ' +
              Math.max(
                0,
                Math.min(
                  255,
                  Math.round(
                    32.49 +
                      e *
                        (170.73 +
                          e * (52.82 - e * (131.46 - e * (176.58 - 67.37 * e))))
                  )
                )
              ) +
              ', ' +
              Math.max(
                0,
                Math.min(
                  255,
                  Math.round(
                    81.24 +
                      e *
                        (442.36 -
                          e *
                            (2482.43 -
                              e * (6167.24 - e * (6614.94 - 2475.67 * e))))
                  )
                )
              ) +
              ')'
          );
        }
        const _y = Hf(zs(300, 0.5, 0), zs(-240, 0.5, 1));
        var by = Hf(zs(-100, 0.75, 0.35), zs(80, 1.5, 0.8)),
          vy = Hf(zs(260, 0.75, 0.35), zs(80, 1.5, 0.8)),
          yy = zs();
        function wy(e) {
          (e < 0 || e > 1) && (e -= Math.floor(e));
          var t = Math.abs(e - 0.5);
          return (
            (yy.h = 360 * e - 100),
            (yy.s = 1.5 - 1.5 * t),
            (yy.l = 0.8 - 0.9 * t),
            yy + ''
          );
        }
        var Cy = Jt(),
          Sy = Math.PI / 3,
          ky = (2 * Math.PI) / 3;
        function xy(e) {
          var t;
          return (
            (e = (0.5 - e) * Math.PI),
            (Cy.r = 255 * (t = Math.sin(e)) * t),
            (Cy.g = 255 * (t = Math.sin(e + Sy)) * t),
            (Cy.b = 255 * (t = Math.sin(e + ky)) * t),
            Cy + ''
          );
        }
        function Ly(e) {
          return (
            (e = Math.max(0, Math.min(1, e))),
            'rgb(' +
              Math.max(
                0,
                Math.min(
                  255,
                  Math.round(
                    34.61 +
                      e *
                        (1172.33 -
                          e *
                            (10793.56 -
                              e * (33300.12 - e * (38394.49 - 14825.05 * e))))
                  )
                )
              ) +
              ', ' +
              Math.max(
                0,
                Math.min(
                  255,
                  Math.round(
                    23.31 +
                      e *
                        (557.33 +
                          e *
                            (1225.33 -
                              e * (3574.96 - e * (1073.77 + 707.56 * e))))
                  )
                )
              ) +
              ', ' +
              Math.max(
                0,
                Math.min(
                  255,
                  Math.round(
                    27.2 +
                      e *
                        (3211.1 -
                          e *
                            (15327.97 -
                              e * (27814 - e * (22569.18 - 6838.66 * e))))
                  )
                )
              ) +
              ')'
          );
        }
        function My(e) {
          var t = e.length;
          return function (i) {
            return e[Math.max(0, Math.min(t - 1, Math.floor(i * t)))];
          };
        }
        const Dy = My(
          rv(
            '44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725'
          )
        );
        var Ny = My(
            rv(
              '00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf'
            )
          ),
          Ey = My(
            rv(
              '00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4'
            )
          ),
          Ty = My(
            rv(
              '0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921'
            )
          );
        function Iy(e) {
          return kt(rt(e).call(document.documentElement));
        }
        var Oy = 0;
        function Ay() {
          return new Ry();
        }
        function Ry() {
          this._ = '@' + (++Oy).toString(36);
        }
        function Py(e) {
          return 'string' == typeof e
            ? new wt([document.querySelectorAll(e)], [document.documentElement])
            : new wt([null == e ? [] : e], yt);
        }
        function Fy(e, t) {
          null == t && (t = Ni().touches);
          for (var i = 0, n = t ? t.length : 0, r = new Array(n); i < n; ++i)
            r[i] = Ei(e, t[i]);
          return r;
        }
        function By(e) {
          return function () {
            return e;
          };
        }
        Ry.prototype = Ay.prototype = {
          constructor: Ry,
          get: function (e) {
            for (var t = this._; !(t in e); ) if (!(e = e.parentNode)) return;
            return e[t];
          },
          set: function (e, t) {
            return (e[this._] = t);
          },
          remove: function (e) {
            return this._ in e && delete e[this._];
          },
          toString: function () {
            return this._;
          },
        };
        var Wy = Math.abs,
          Yy = Math.atan2,
          Hy = Math.cos,
          jy = Math.max,
          Vy = Math.min,
          zy = Math.sin,
          Uy = Math.sqrt,
          $y = 1e-12,
          Ky = Math.PI,
          qy = Ky / 2,
          Gy = 2 * Ky;
        function Zy(e) {
          return e > 1 ? 0 : e < -1 ? Ky : Math.acos(e);
        }
        function Jy(e) {
          return e >= 1 ? qy : e <= -1 ? -qy : Math.asin(e);
        }
        function Qy(e) {
          return e.innerRadius;
        }
        function Xy(e) {
          return e.outerRadius;
        }
        function ew(e) {
          return e.startAngle;
        }
        function tw(e) {
          return e.endAngle;
        }
        function iw(e) {
          return e && e.padAngle;
        }
        function nw(e, t, i, n, r, s, o, a) {
          var l = i - e,
            c = n - t,
            d = o - r,
            h = a - s,
            u = h * l - d * c;
          if (!(u * u < $y))
            return [e + (u = (d * (t - s) - h * (e - r)) / u) * l, t + u * c];
        }
        function rw(e, t, i, n, r, s, o) {
          var a = e - i,
            l = t - n,
            c = (o ? s : -s) / Uy(a * a + l * l),
            d = c * l,
            h = -c * a,
            u = e + d,
            g = t + h,
            f = i + d,
            p = n + h,
            m = (u + f) / 2,
            _ = (g + p) / 2,
            b = f - u,
            v = p - g,
            y = b * b + v * v,
            w = r - s,
            C = u * p - f * g,
            S = (v < 0 ? -1 : 1) * Uy(jy(0, w * w * y - C * C)),
            k = (C * v - b * S) / y,
            x = (-C * b - v * S) / y,
            L = (C * v + b * S) / y,
            M = (-C * b + v * S) / y,
            D = k - m,
            N = x - _,
            E = L - m,
            T = M - _;
          return (
            D * D + N * N > E * E + T * T && ((k = L), (x = M)),
            {
              cx: k,
              cy: x,
              x01: -d,
              y01: -h,
              x11: k * (r / w - 1),
              y11: x * (r / w - 1),
            }
          );
        }
        function sw() {
          var e = Qy,
            t = Xy,
            i = By(0),
            n = null,
            r = ew,
            s = tw,
            o = iw,
            a = null;
          function l() {
            var l,
              c,
              d = +e.apply(this, arguments),
              h = +t.apply(this, arguments),
              u = r.apply(this, arguments) - qy,
              g = s.apply(this, arguments) - qy,
              f = Wy(g - u),
              p = g > u;
            if (
              (a || (a = l = $r()),
              h < d && ((c = h), (h = d), (d = c)),
              h > $y)
            )
              if (f > Gy - $y)
                a.moveTo(h * Hy(u), h * zy(u)),
                  a.arc(0, 0, h, u, g, !p),
                  d > $y &&
                    (a.moveTo(d * Hy(g), d * zy(g)), a.arc(0, 0, d, g, u, p));
              else {
                var m,
                  _,
                  b = u,
                  v = g,
                  y = u,
                  w = g,
                  C = f,
                  S = f,
                  k = o.apply(this, arguments) / 2,
                  x =
                    k > $y &&
                    (n ? +n.apply(this, arguments) : Uy(d * d + h * h)),
                  L = Vy(Wy(h - d) / 2, +i.apply(this, arguments)),
                  M = L,
                  D = L;
                if (x > $y) {
                  var N = Jy((x / d) * zy(k)),
                    E = Jy((x / h) * zy(k));
                  (C -= 2 * N) > $y
                    ? ((y += N *= p ? 1 : -1), (w -= N))
                    : ((C = 0), (y = w = (u + g) / 2)),
                    (S -= 2 * E) > $y
                      ? ((b += E *= p ? 1 : -1), (v -= E))
                      : ((S = 0), (b = v = (u + g) / 2));
                }
                var T = h * Hy(b),
                  I = h * zy(b),
                  O = d * Hy(w),
                  A = d * zy(w);
                if (L > $y) {
                  var R,
                    P = h * Hy(v),
                    F = h * zy(v),
                    B = d * Hy(y),
                    W = d * zy(y);
                  if (f < Ky && (R = nw(T, I, B, W, P, F, O, A))) {
                    var Y = T - R[0],
                      H = I - R[1],
                      j = P - R[0],
                      V = F - R[1],
                      z =
                        1 /
                        zy(
                          Zy(
                            (Y * j + H * V) /
                              (Uy(Y * Y + H * H) * Uy(j * j + V * V))
                          ) / 2
                        ),
                      U = Uy(R[0] * R[0] + R[1] * R[1]);
                    (M = Vy(L, (d - U) / (z - 1))),
                      (D = Vy(L, (h - U) / (z + 1)));
                  }
                }
                S > $y
                  ? D > $y
                    ? ((m = rw(B, W, T, I, h, D, p)),
                      (_ = rw(P, F, O, A, h, D, p)),
                      a.moveTo(m.cx + m.x01, m.cy + m.y01),
                      D < L
                        ? a.arc(
                            m.cx,
                            m.cy,
                            D,
                            Yy(m.y01, m.x01),
                            Yy(_.y01, _.x01),
                            !p
                          )
                        : (a.arc(
                            m.cx,
                            m.cy,
                            D,
                            Yy(m.y01, m.x01),
                            Yy(m.y11, m.x11),
                            !p
                          ),
                          a.arc(
                            0,
                            0,
                            h,
                            Yy(m.cy + m.y11, m.cx + m.x11),
                            Yy(_.cy + _.y11, _.cx + _.x11),
                            !p
                          ),
                          a.arc(
                            _.cx,
                            _.cy,
                            D,
                            Yy(_.y11, _.x11),
                            Yy(_.y01, _.x01),
                            !p
                          )))
                    : (a.moveTo(T, I), a.arc(0, 0, h, b, v, !p))
                  : a.moveTo(T, I),
                  d > $y && C > $y
                    ? M > $y
                      ? ((m = rw(O, A, P, F, d, -M, p)),
                        (_ = rw(T, I, B, W, d, -M, p)),
                        a.lineTo(m.cx + m.x01, m.cy + m.y01),
                        M < L
                          ? a.arc(
                              m.cx,
                              m.cy,
                              M,
                              Yy(m.y01, m.x01),
                              Yy(_.y01, _.x01),
                              !p
                            )
                          : (a.arc(
                              m.cx,
                              m.cy,
                              M,
                              Yy(m.y01, m.x01),
                              Yy(m.y11, m.x11),
                              !p
                            ),
                            a.arc(
                              0,
                              0,
                              d,
                              Yy(m.cy + m.y11, m.cx + m.x11),
                              Yy(_.cy + _.y11, _.cx + _.x11),
                              p
                            ),
                            a.arc(
                              _.cx,
                              _.cy,
                              M,
                              Yy(_.y11, _.x11),
                              Yy(_.y01, _.x01),
                              !p
                            )))
                      : a.arc(0, 0, d, w, y, p)
                    : a.lineTo(O, A);
              }
            else a.moveTo(0, 0);
            if ((a.closePath(), l)) return (a = null), l + '' || null;
          }
          return (
            (l.centroid = function () {
              var i =
                  (+e.apply(this, arguments) + +t.apply(this, arguments)) / 2,
                n =
                  (+r.apply(this, arguments) + +s.apply(this, arguments)) / 2 -
                  Ky / 2;
              return [Hy(n) * i, zy(n) * i];
            }),
            (l.innerRadius = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : By(+t)), l)
                : e;
            }),
            (l.outerRadius = function (e) {
              return arguments.length
                ? ((t = 'function' == typeof e ? e : By(+e)), l)
                : t;
            }),
            (l.cornerRadius = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : By(+e)), l)
                : i;
            }),
            (l.padRadius = function (e) {
              return arguments.length
                ? ((n = null == e ? null : 'function' == typeof e ? e : By(+e)),
                  l)
                : n;
            }),
            (l.startAngle = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : By(+e)), l)
                : r;
            }),
            (l.endAngle = function (e) {
              return arguments.length
                ? ((s = 'function' == typeof e ? e : By(+e)), l)
                : s;
            }),
            (l.padAngle = function (e) {
              return arguments.length
                ? ((o = 'function' == typeof e ? e : By(+e)), l)
                : o;
            }),
            (l.context = function (e) {
              return arguments.length ? ((a = null == e ? null : e), l) : a;
            }),
            l
          );
        }
        function ow(e) {
          this._context = e;
        }
        function aw(e) {
          return new ow(e);
        }
        function lw(e) {
          return e[0];
        }
        function cw(e) {
          return e[1];
        }
        function dw() {
          var e = lw,
            t = cw,
            i = By(!0),
            n = null,
            r = aw,
            s = null;
          function o(o) {
            var a,
              l,
              c,
              d = o.length,
              h = !1;
            for (null == n && (s = r((c = $r()))), a = 0; a <= d; ++a)
              !(a < d && i((l = o[a]), a, o)) === h &&
                ((h = !h) ? s.lineStart() : s.lineEnd()),
                h && s.point(+e(l, a, o), +t(l, a, o));
            if (c) return (s = null), c + '' || null;
          }
          return (
            (o.x = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : By(+t)), o)
                : e;
            }),
            (o.y = function (e) {
              return arguments.length
                ? ((t = 'function' == typeof e ? e : By(+e)), o)
                : t;
            }),
            (o.defined = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : By(!!e)), o)
                : i;
            }),
            (o.curve = function (e) {
              return arguments.length
                ? ((r = e), null != n && (s = r(n)), o)
                : r;
            }),
            (o.context = function (e) {
              return arguments.length
                ? (null == e ? (n = s = null) : (s = r((n = e))), o)
                : n;
            }),
            o
          );
        }
        function hw() {
          var e = lw,
            t = null,
            i = By(0),
            n = cw,
            r = By(!0),
            s = null,
            o = aw,
            a = null;
          function l(l) {
            var c,
              d,
              h,
              u,
              g,
              f = l.length,
              p = !1,
              m = new Array(f),
              _ = new Array(f);
            for (null == s && (a = o((g = $r()))), c = 0; c <= f; ++c) {
              if (!(c < f && r((u = l[c]), c, l)) === p)
                if ((p = !p)) (d = c), a.areaStart(), a.lineStart();
                else {
                  for (a.lineEnd(), a.lineStart(), h = c - 1; h >= d; --h)
                    a.point(m[h], _[h]);
                  a.lineEnd(), a.areaEnd();
                }
              p &&
                ((m[c] = +e(u, c, l)),
                (_[c] = +i(u, c, l)),
                a.point(t ? +t(u, c, l) : m[c], n ? +n(u, c, l) : _[c]));
            }
            if (g) return (a = null), g + '' || null;
          }
          function c() {
            return dw().defined(r).curve(o).context(s);
          }
          return (
            (l.x = function (i) {
              return arguments.length
                ? ((e = 'function' == typeof i ? i : By(+i)), (t = null), l)
                : e;
            }),
            (l.x0 = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : By(+t)), l)
                : e;
            }),
            (l.x1 = function (e) {
              return arguments.length
                ? ((t = null == e ? null : 'function' == typeof e ? e : By(+e)),
                  l)
                : t;
            }),
            (l.y = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : By(+e)), (n = null), l)
                : i;
            }),
            (l.y0 = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : By(+e)), l)
                : i;
            }),
            (l.y1 = function (e) {
              return arguments.length
                ? ((n = null == e ? null : 'function' == typeof e ? e : By(+e)),
                  l)
                : n;
            }),
            (l.lineX0 = l.lineY0 = function () {
              return c().x(e).y(i);
            }),
            (l.lineY1 = function () {
              return c().x(e).y(n);
            }),
            (l.lineX1 = function () {
              return c().x(t).y(i);
            }),
            (l.defined = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : By(!!e)), l)
                : r;
            }),
            (l.curve = function (e) {
              return arguments.length
                ? ((o = e), null != s && (a = o(s)), l)
                : o;
            }),
            (l.context = function (e) {
              return arguments.length
                ? (null == e ? (s = a = null) : (a = o((s = e))), l)
                : s;
            }),
            l
          );
        }
        function uw(e, t) {
          return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
        }
        function gw(e) {
          return e;
        }
        function fw() {
          var e = gw,
            t = uw,
            i = null,
            n = By(0),
            r = By(Gy),
            s = By(0);
          function o(o) {
            var a,
              l,
              c,
              d,
              h,
              u = o.length,
              g = 0,
              f = new Array(u),
              p = new Array(u),
              m = +n.apply(this, arguments),
              _ = Math.min(Gy, Math.max(-Gy, r.apply(this, arguments) - m)),
              b = Math.min(Math.abs(_) / u, s.apply(this, arguments)),
              v = b * (_ < 0 ? -1 : 1);
            for (a = 0; a < u; ++a)
              (h = p[(f[a] = a)] = +e(o[a], a, o)) > 0 && (g += h);
            for (
              null != t
                ? f.sort(function (e, i) {
                    return t(p[e], p[i]);
                  })
                : null != i &&
                  f.sort(function (e, t) {
                    return i(o[e], o[t]);
                  }),
                a = 0,
                c = g ? (_ - u * v) / g : 0;
              a < u;
              ++a, m = d
            )
              (l = f[a]),
                (d = m + ((h = p[l]) > 0 ? h * c : 0) + v),
                (p[l] = {
                  data: o[l],
                  index: a,
                  value: h,
                  startAngle: m,
                  endAngle: d,
                  padAngle: b,
                });
            return p;
          }
          return (
            (o.value = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : By(+t)), o)
                : e;
            }),
            (o.sortValues = function (e) {
              return arguments.length ? ((t = e), (i = null), o) : t;
            }),
            (o.sort = function (e) {
              return arguments.length ? ((i = e), (t = null), o) : i;
            }),
            (o.startAngle = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : By(+e)), o)
                : n;
            }),
            (o.endAngle = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : By(+e)), o)
                : r;
            }),
            (o.padAngle = function (e) {
              return arguments.length
                ? ((s = 'function' == typeof e ? e : By(+e)), o)
                : s;
            }),
            o
          );
        }
        ow.prototype = {
          areaStart: function () {
            this._line = 0;
          },
          areaEnd: function () {
            this._line = NaN;
          },
          lineStart: function () {
            this._point = 0;
          },
          lineEnd: function () {
            (this._line || (0 !== this._line && 1 === this._point)) &&
              this._context.closePath(),
              (this._line = 1 - this._line);
          },
          point: function (e, t) {
            switch (((e = +e), (t = +t), this._point)) {
              case 0:
                (this._point = 1),
                  this._line
                    ? this._context.lineTo(e, t)
                    : this._context.moveTo(e, t);
                break;
              case 1:
                this._point = 2;
              default:
                this._context.lineTo(e, t);
            }
          },
        };
        var pw = _w(aw);
        function mw(e) {
          this._curve = e;
        }
        function _w(e) {
          function t(t) {
            return new mw(e(t));
          }
          return (t._curve = e), t;
        }
        function bw(e) {
          var t = e.curve;
          return (
            (e.angle = e.x),
            delete e.x,
            (e.radius = e.y),
            delete e.y,
            (e.curve = function (e) {
              return arguments.length ? t(_w(e)) : t()._curve;
            }),
            e
          );
        }
        function vw() {
          return bw(dw().curve(pw));
        }
        function yw() {
          var e = hw().curve(pw),
            t = e.curve,
            i = e.lineX0,
            n = e.lineX1,
            r = e.lineY0,
            s = e.lineY1;
          return (
            (e.angle = e.x),
            delete e.x,
            (e.startAngle = e.x0),
            delete e.x0,
            (e.endAngle = e.x1),
            delete e.x1,
            (e.radius = e.y),
            delete e.y,
            (e.innerRadius = e.y0),
            delete e.y0,
            (e.outerRadius = e.y1),
            delete e.y1,
            (e.lineStartAngle = function () {
              return bw(i());
            }),
            delete e.lineX0,
            (e.lineEndAngle = function () {
              return bw(n());
            }),
            delete e.lineX1,
            (e.lineInnerRadius = function () {
              return bw(r());
            }),
            delete e.lineY0,
            (e.lineOuterRadius = function () {
              return bw(s());
            }),
            delete e.lineY1,
            (e.curve = function (e) {
              return arguments.length ? t(_w(e)) : t()._curve;
            }),
            e
          );
        }
        function ww(e, t) {
          return [(t = +t) * Math.cos((e -= Math.PI / 2)), t * Math.sin(e)];
        }
        mw.prototype = {
          areaStart: function () {
            this._curve.areaStart();
          },
          areaEnd: function () {
            this._curve.areaEnd();
          },
          lineStart: function () {
            this._curve.lineStart();
          },
          lineEnd: function () {
            this._curve.lineEnd();
          },
          point: function (e, t) {
            this._curve.point(t * Math.sin(e), t * -Math.cos(e));
          },
        };
        var Cw = Array.prototype.slice;
        function Sw(e) {
          return e.source;
        }
        function kw(e) {
          return e.target;
        }
        function xw(e) {
          var t = Sw,
            i = kw,
            n = lw,
            r = cw,
            s = null;
          function o() {
            var o,
              a = Cw.call(arguments),
              l = t.apply(this, a),
              c = i.apply(this, a);
            if (
              (s || (s = o = $r()),
              e(
                s,
                +n.apply(this, ((a[0] = l), a)),
                +r.apply(this, a),
                +n.apply(this, ((a[0] = c), a)),
                +r.apply(this, a)
              ),
              o)
            )
              return (s = null), o + '' || null;
          }
          return (
            (o.source = function (e) {
              return arguments.length ? ((t = e), o) : t;
            }),
            (o.target = function (e) {
              return arguments.length ? ((i = e), o) : i;
            }),
            (o.x = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : By(+e)), o)
                : n;
            }),
            (o.y = function (e) {
              return arguments.length
                ? ((r = 'function' == typeof e ? e : By(+e)), o)
                : r;
            }),
            (o.context = function (e) {
              return arguments.length ? ((s = null == e ? null : e), o) : s;
            }),
            o
          );
        }
        function Lw(e, t, i, n, r) {
          e.moveTo(t, i), e.bezierCurveTo((t = (t + n) / 2), i, t, r, n, r);
        }
        function Mw(e, t, i, n, r) {
          e.moveTo(t, i), e.bezierCurveTo(t, (i = (i + r) / 2), n, i, n, r);
        }
        function Dw(e, t, i, n, r) {
          var s = ww(t, i),
            o = ww(t, (i = (i + r) / 2)),
            a = ww(n, i),
            l = ww(n, r);
          e.moveTo(s[0], s[1]),
            e.bezierCurveTo(o[0], o[1], a[0], a[1], l[0], l[1]);
        }
        function Nw() {
          return xw(Lw);
        }
        function Ew() {
          return xw(Mw);
        }
        function Tw() {
          var e = xw(Dw);
          return (e.angle = e.x), delete e.x, (e.radius = e.y), delete e.y, e;
        }
        const Iw = {
            draw: function (e, t) {
              var i = Math.sqrt(t / Ky);
              e.moveTo(i, 0), e.arc(0, 0, i, 0, Gy);
            },
          },
          Ow = {
            draw: function (e, t) {
              var i = Math.sqrt(t / 5) / 2;
              e.moveTo(-3 * i, -i),
                e.lineTo(-i, -i),
                e.lineTo(-i, -3 * i),
                e.lineTo(i, -3 * i),
                e.lineTo(i, -i),
                e.lineTo(3 * i, -i),
                e.lineTo(3 * i, i),
                e.lineTo(i, i),
                e.lineTo(i, 3 * i),
                e.lineTo(-i, 3 * i),
                e.lineTo(-i, i),
                e.lineTo(-3 * i, i),
                e.closePath();
            },
          };
        var Aw = Math.sqrt(1 / 3),
          Rw = 2 * Aw;
        const Pw = {
          draw: function (e, t) {
            var i = Math.sqrt(t / Rw),
              n = i * Aw;
            e.moveTo(0, -i),
              e.lineTo(n, 0),
              e.lineTo(0, i),
              e.lineTo(-n, 0),
              e.closePath();
          },
        };
        var Fw = Math.sin(Ky / 10) / Math.sin((7 * Ky) / 10),
          Bw = Math.sin(Gy / 10) * Fw,
          Ww = -Math.cos(Gy / 10) * Fw;
        const Yw = {
            draw: function (e, t) {
              var i = Math.sqrt(0.8908130915292852 * t),
                n = Bw * i,
                r = Ww * i;
              e.moveTo(0, -i), e.lineTo(n, r);
              for (var s = 1; s < 5; ++s) {
                var o = (Gy * s) / 5,
                  a = Math.cos(o),
                  l = Math.sin(o);
                e.lineTo(l * i, -a * i), e.lineTo(a * n - l * r, l * n + a * r);
              }
              e.closePath();
            },
          },
          Hw = {
            draw: function (e, t) {
              var i = Math.sqrt(t),
                n = -i / 2;
              e.rect(n, n, i, i);
            },
          };
        var jw = Math.sqrt(3);
        const Vw = {
          draw: function (e, t) {
            var i = -Math.sqrt(t / (3 * jw));
            e.moveTo(0, 2 * i),
              e.lineTo(-jw * i, -i),
              e.lineTo(jw * i, -i),
              e.closePath();
          },
        };
        var zw = -0.5,
          Uw = Math.sqrt(3) / 2,
          $w = 1 / Math.sqrt(12),
          Kw = 3 * ($w / 2 + 1);
        const qw = {
          draw: function (e, t) {
            var i = Math.sqrt(t / Kw),
              n = i / 2,
              r = i * $w,
              s = n,
              o = i * $w + i,
              a = -s,
              l = o;
            e.moveTo(n, r),
              e.lineTo(s, o),
              e.lineTo(a, l),
              e.lineTo(zw * n - Uw * r, Uw * n + zw * r),
              e.lineTo(zw * s - Uw * o, Uw * s + zw * o),
              e.lineTo(zw * a - Uw * l, Uw * a + zw * l),
              e.lineTo(zw * n + Uw * r, zw * r - Uw * n),
              e.lineTo(zw * s + Uw * o, zw * o - Uw * s),
              e.lineTo(zw * a + Uw * l, zw * l - Uw * a),
              e.closePath();
          },
        };
        var Gw = [Iw, Ow, Pw, Hw, Yw, Vw, qw];
        function Zw() {
          var e = By(Iw),
            t = By(64),
            i = null;
          function n() {
            var n;
            if (
              (i || (i = n = $r()),
              e.apply(this, arguments).draw(i, +t.apply(this, arguments)),
              n)
            )
              return (i = null), n + '' || null;
          }
          return (
            (n.type = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : By(t)), n)
                : e;
            }),
            (n.size = function (e) {
              return arguments.length
                ? ((t = 'function' == typeof e ? e : By(+e)), n)
                : t;
            }),
            (n.context = function (e) {
              return arguments.length ? ((i = null == e ? null : e), n) : i;
            }),
            n
          );
        }
        function Jw() {}
        function Qw(e, t, i) {
          e._context.bezierCurveTo(
            (2 * e._x0 + e._x1) / 3,
            (2 * e._y0 + e._y1) / 3,
            (e._x0 + 2 * e._x1) / 3,
            (e._y0 + 2 * e._y1) / 3,
            (e._x0 + 4 * e._x1 + t) / 6,
            (e._y0 + 4 * e._y1 + i) / 6
          );
        }
        function Xw(e) {
          this._context = e;
        }
        function eC(e) {
          return new Xw(e);
        }
        function tC(e) {
          this._context = e;
        }
        function iC(e) {
          return new tC(e);
        }
        function nC(e) {
          this._context = e;
        }
        function rC(e) {
          return new nC(e);
        }
        function sC(e, t) {
          (this._basis = new Xw(e)), (this._beta = t);
        }
        (Xw.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:
                Qw(this, this._x1, this._y1);
              case 2:
                this._context.lineTo(this._x1, this._y1);
            }
            (this._line || (0 !== this._line && 1 === this._point)) &&
              this._context.closePath(),
              (this._line = 1 - this._line);
          },
          point: function (e, t) {
            switch (((e = +e), (t = +t), this._point)) {
              case 0:
                (this._point = 1),
                  this._line
                    ? this._context.lineTo(e, t)
                    : this._context.moveTo(e, t);
                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:
                Qw(this, e, t);
            }
            (this._x0 = this._x1),
              (this._x1 = e),
              (this._y0 = this._y1),
              (this._y1 = t);
          },
        }),
          (tC.prototype = {
            areaStart: Jw,
            areaEnd: Jw,
            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);
              }
            },
            point: function (e, t) {
              switch (((e = +e), (t = +t), this._point)) {
                case 0:
                  (this._point = 1), (this._x2 = e), (this._y2 = t);
                  break;
                case 1:
                  (this._point = 2), (this._x3 = e), (this._y3 = t);
                  break;
                case 2:
                  (this._point = 3),
                    (this._x4 = e),
                    (this._y4 = t),
                    this._context.moveTo(
                      (this._x0 + 4 * this._x1 + e) / 6,
                      (this._y0 + 4 * this._y1 + t) / 6
                    );
                  break;
                default:
                  Qw(this, e, t);
              }
              (this._x0 = this._x1),
                (this._x1 = e),
                (this._y0 = this._y1),
                (this._y1 = t);
            },
          }),
          (nC.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 || (0 !== this._line && 3 === this._point)) &&
                this._context.closePath(),
                (this._line = 1 - this._line);
            },
            point: function (e, t) {
              switch (((e = +e), (t = +t), 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 + e) / 6,
                    n = (this._y0 + 4 * this._y1 + t) / 6;
                  this._line
                    ? this._context.lineTo(i, n)
                    : this._context.moveTo(i, n);
                  break;
                case 3:
                  this._point = 4;
                default:
                  Qw(this, e, t);
              }
              (this._x0 = this._x1),
                (this._x1 = e),
                (this._y0 = this._y1),
                (this._y1 = t);
            },
          }),
          (sC.prototype = {
            lineStart: function () {
              (this._x = []), (this._y = []), this._basis.lineStart();
            },
            lineEnd: function () {
              var e = this._x,
                t = this._y,
                i = e.length - 1;
              if (i > 0)
                for (
                  var n, r = e[0], s = t[0], o = e[i] - r, a = t[i] - s, l = -1;
                  ++l <= i;

                )
                  (n = l / i),
                    this._basis.point(
                      this._beta * e[l] + (1 - this._beta) * (r + n * o),
                      this._beta * t[l] + (1 - this._beta) * (s + n * a)
                    );
              (this._x = this._y = null), this._basis.lineEnd();
            },
            point: function (e, t) {
              this._x.push(+e), this._y.push(+t);
            },
          });
        const oC = (function e(t) {
          function i(e) {
            return 1 === t ? new Xw(e) : new sC(e, t);
          }
          return (
            (i.beta = function (t) {
              return e(+t);
            }),
            i
          );
        })(0.85);
        function aC(e, t, i) {
          e._context.bezierCurveTo(
            e._x1 + e._k * (e._x2 - e._x0),
            e._y1 + e._k * (e._y2 - e._y0),
            e._x2 + e._k * (e._x1 - t),
            e._y2 + e._k * (e._y1 - i),
            e._x2,
            e._y2
          );
        }
        function lC(e, t) {
          (this._context = e), (this._k = (1 - t) / 6);
        }
        lC.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:
                aC(this, this._x1, this._y1);
            }
            (this._line || (0 !== this._line && 1 === this._point)) &&
              this._context.closePath(),
              (this._line = 1 - this._line);
          },
          point: function (e, t) {
            switch (((e = +e), (t = +t), this._point)) {
              case 0:
                (this._point = 1),
                  this._line
                    ? this._context.lineTo(e, t)
                    : this._context.moveTo(e, t);
                break;
              case 1:
                (this._point = 2), (this._x1 = e), (this._y1 = t);
                break;
              case 2:
                this._point = 3;
              default:
                aC(this, e, t);
            }
            (this._x0 = this._x1),
              (this._x1 = this._x2),
              (this._x2 = e),
              (this._y0 = this._y1),
              (this._y1 = this._y2),
              (this._y2 = t);
          },
        };
        const cC = (function e(t) {
          function i(e) {
            return new lC(e, t);
          }
          return (
            (i.tension = function (t) {
              return e(+t);
            }),
            i
          );
        })(0);
        function dC(e, t) {
          (this._context = e), (this._k = (1 - t) / 6);
        }
        dC.prototype = {
          areaStart: Jw,
          areaEnd: Jw,
          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);
            }
          },
          point: function (e, t) {
            switch (((e = +e), (t = +t), this._point)) {
              case 0:
                (this._point = 1), (this._x3 = e), (this._y3 = t);
                break;
              case 1:
                (this._point = 2),
                  this._context.moveTo((this._x4 = e), (this._y4 = t));
                break;
              case 2:
                (this._point = 3), (this._x5 = e), (this._y5 = t);
                break;
              default:
                aC(this, e, t);
            }
            (this._x0 = this._x1),
              (this._x1 = this._x2),
              (this._x2 = e),
              (this._y0 = this._y1),
              (this._y1 = this._y2),
              (this._y2 = t);
          },
        };
        const hC = (function e(t) {
          function i(e) {
            return new dC(e, t);
          }
          return (
            (i.tension = function (t) {
              return e(+t);
            }),
            i
          );
        })(0);
        function uC(e, t) {
          (this._context = e), (this._k = (1 - t) / 6);
        }
        uC.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 || (0 !== this._line && 3 === this._point)) &&
              this._context.closePath(),
              (this._line = 1 - this._line);
          },
          point: function (e, t) {
            switch (((e = +e), (t = +t), 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:
                aC(this, e, t);
            }
            (this._x0 = this._x1),
              (this._x1 = this._x2),
              (this._x2 = e),
              (this._y0 = this._y1),
              (this._y1 = this._y2),
              (this._y2 = t);
          },
        };
        const gC = (function e(t) {
          function i(e) {
            return new uC(e, t);
          }
          return (
            (i.tension = function (t) {
              return e(+t);
            }),
            i
          );
        })(0);
        function fC(e, t, i) {
          var n = e._x1,
            r = e._y1,
            s = e._x2,
            o = e._y2;
          if (e._l01_a > $y) {
            var a = 2 * e._l01_2a + 3 * e._l01_a * e._l12_a + e._l12_2a,
              l = 3 * e._l01_a * (e._l01_a + e._l12_a);
            (n = (n * a - e._x0 * e._l12_2a + e._x2 * e._l01_2a) / l),
              (r = (r * a - e._y0 * e._l12_2a + e._y2 * e._l01_2a) / l);
          }
          if (e._l23_a > $y) {
            var c = 2 * e._l23_2a + 3 * e._l23_a * e._l12_a + e._l12_2a,
              d = 3 * e._l23_a * (e._l23_a + e._l12_a);
            (s = (s * c + e._x1 * e._l23_2a - t * e._l12_2a) / d),
              (o = (o * c + e._y1 * e._l23_2a - i * e._l12_2a) / d);
          }
          e._context.bezierCurveTo(n, r, s, o, e._x2, e._y2);
        }
        function pC(e, t) {
          (this._context = e), (this._alpha = t);
        }
        pC.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);
            }
            (this._line || (0 !== this._line && 1 === this._point)) &&
              this._context.closePath(),
              (this._line = 1 - this._line);
          },
          point: function (e, t) {
            if (((e = +e), (t = +t), this._point)) {
              var i = this._x2 - e,
                n = this._y2 - t;
              this._l23_a = Math.sqrt(
                (this._l23_2a = Math.pow(i * i + n * n, this._alpha))
              );
            }
            switch (this._point) {
              case 0:
                (this._point = 1),
                  this._line
                    ? this._context.lineTo(e, t)
                    : this._context.moveTo(e, t);
                break;
              case 1:
                this._point = 2;
                break;
              case 2:
                this._point = 3;
              default:
                fC(this, e, t);
            }
            (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 = e),
              (this._y0 = this._y1),
              (this._y1 = this._y2),
              (this._y2 = t);
          },
        };
        const mC = (function e(t) {
          function i(e) {
            return t ? new pC(e, t) : new lC(e, 0);
          }
          return (
            (i.alpha = function (t) {
              return e(+t);
            }),
            i
          );
        })(0.5);
        function _C(e, t) {
          (this._context = e), (this._alpha = t);
        }
        _C.prototype = {
          areaStart: Jw,
          areaEnd: Jw,
          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);
            }
          },
          point: function (e, t) {
            if (((e = +e), (t = +t), this._point)) {
              var i = this._x2 - e,
                n = this._y2 - t;
              this._l23_a = Math.sqrt(
                (this._l23_2a = Math.pow(i * i + n * n, this._alpha))
              );
            }
            switch (this._point) {
              case 0:
                (this._point = 1), (this._x3 = e), (this._y3 = t);
                break;
              case 1:
                (this._point = 2),
                  this._context.moveTo((this._x4 = e), (this._y4 = t));
                break;
              case 2:
                (this._point = 3), (this._x5 = e), (this._y5 = t);
                break;
              default:
                fC(this, e, t);
            }
            (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 = e),
              (this._y0 = this._y1),
              (this._y1 = this._y2),
              (this._y2 = t);
          },
        };
        const bC = (function e(t) {
          function i(e) {
            return t ? new _C(e, t) : new dC(e, 0);
          }
          return (
            (i.alpha = function (t) {
              return e(+t);
            }),
            i
          );
        })(0.5);
        function vC(e, t) {
          (this._context = e), (this._alpha = t);
        }
        vC.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 || (0 !== this._line && 3 === this._point)) &&
              this._context.closePath(),
              (this._line = 1 - this._line);
          },
          point: function (e, t) {
            if (((e = +e), (t = +t), this._point)) {
              var i = this._x2 - e,
                n = this._y2 - t;
              this._l23_a = Math.sqrt(
                (this._l23_2a = Math.pow(i * i + n * n, 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:
                fC(this, e, t);
            }
            (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 = e),
              (this._y0 = this._y1),
              (this._y1 = this._y2),
              (this._y2 = t);
          },
        };
        const yC = (function e(t) {
          function i(e) {
            return t ? new vC(e, t) : new uC(e, 0);
          }
          return (
            (i.alpha = function (t) {
              return e(+t);
            }),
            i
          );
        })(0.5);
        function wC(e) {
          this._context = e;
        }
        function CC(e) {
          return new wC(e);
        }
        function SC(e) {
          return e < 0 ? -1 : 1;
        }
        function kC(e, t, i) {
          var n = e._x1 - e._x0,
            r = t - e._x1,
            s = (e._y1 - e._y0) / (n || (r < 0 && -0)),
            o = (i - e._y1) / (r || (n < 0 && -0)),
            a = (s * r + o * n) / (n + r);
          return (
            (SC(s) + SC(o)) *
              Math.min(Math.abs(s), Math.abs(o), 0.5 * Math.abs(a)) || 0
          );
        }
        function xC(e, t) {
          var i = e._x1 - e._x0;
          return i ? ((3 * (e._y1 - e._y0)) / i - t) / 2 : t;
        }
        function LC(e, t, i) {
          var n = e._x0,
            r = e._y0,
            s = e._x1,
            o = e._y1,
            a = (s - n) / 3;
          e._context.bezierCurveTo(n + a, r + a * t, s - a, o - a * i, s, o);
        }
        function MC(e) {
          this._context = e;
        }
        function DC(e) {
          this._context = new NC(e);
        }
        function NC(e) {
          this._context = e;
        }
        function EC(e) {
          return new MC(e);
        }
        function TC(e) {
          return new DC(e);
        }
        function IC(e) {
          this._context = e;
        }
        function OC(e) {
          var t,
            i,
            n = e.length - 1,
            r = new Array(n),
            s = new Array(n),
            o = new Array(n);
          for (
            r[0] = 0, s[0] = 2, o[0] = e[0] + 2 * e[1], t = 1;
            t < n - 1;
            ++t
          )
            (r[t] = 1), (s[t] = 4), (o[t] = 4 * e[t] + 2 * e[t + 1]);
          for (
            r[n - 1] = 2, s[n - 1] = 7, o[n - 1] = 8 * e[n - 1] + e[n], t = 1;
            t < n;
            ++t
          )
            (i = r[t] / s[t - 1]), (s[t] -= i), (o[t] -= i * o[t - 1]);
          for (r[n - 1] = o[n - 1] / s[n - 1], t = n - 2; t >= 0; --t)
            r[t] = (o[t] - r[t + 1]) / s[t];
          for (s[n - 1] = (e[n] + r[n - 1]) / 2, t = 0; t < n - 1; ++t)
            s[t] = 2 * e[t + 1] - r[t + 1];
          return [r, s];
        }
        function AC(e) {
          return new IC(e);
        }
        function RC(e, t) {
          (this._context = e), (this._t = t);
        }
        function PC(e) {
          return new RC(e, 0.5);
        }
        function FC(e) {
          return new RC(e, 0);
        }
        function BC(e) {
          return new RC(e, 1);
        }
        function WC(e, t) {
          if ((r = e.length) > 1)
            for (var i, n, r, s = 1, o = e[t[0]], a = o.length; s < r; ++s)
              for (n = o, o = e[t[s]], i = 0; i < a; ++i)
                o[i][1] += o[i][0] = isNaN(n[i][1]) ? n[i][0] : n[i][1];
        }
        function YC(e) {
          for (var t = e.length, i = new Array(t); --t >= 0; ) i[t] = t;
          return i;
        }
        function HC(e, t) {
          return e[t];
        }
        function jC() {
          var e = By([]),
            t = YC,
            i = WC,
            n = HC;
          function r(r) {
            var s,
              o,
              a = e.apply(this, arguments),
              l = r.length,
              c = a.length,
              d = new Array(c);
            for (s = 0; s < c; ++s) {
              for (
                var h, u = a[s], g = (d[s] = new Array(l)), f = 0;
                f < l;
                ++f
              )
                (g[f] = h = [0, +n(r[f], u, f, r)]), (h.data = r[f]);
              g.key = u;
            }
            for (s = 0, o = t(d); s < c; ++s) d[o[s]].index = s;
            return i(d, o), d;
          }
          return (
            (r.keys = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : By(Cw.call(t))), r)
                : e;
            }),
            (r.value = function (e) {
              return arguments.length
                ? ((n = 'function' == typeof e ? e : By(+e)), r)
                : n;
            }),
            (r.order = function (e) {
              return arguments.length
                ? ((t =
                    null == e
                      ? YC
                      : 'function' == typeof e
                      ? e
                      : By(Cw.call(e))),
                  r)
                : t;
            }),
            (r.offset = function (e) {
              return arguments.length ? ((i = null == e ? WC : e), r) : i;
            }),
            r
          );
        }
        function VC(e, t) {
          if ((n = e.length) > 0) {
            for (var i, n, r, s = 0, o = e[0].length; s < o; ++s) {
              for (r = i = 0; i < n; ++i) r += e[i][s][1] || 0;
              if (r) for (i = 0; i < n; ++i) e[i][s][1] /= r;
            }
            WC(e, t);
          }
        }
        function zC(e, t) {
          if ((a = e.length) > 0)
            for (var i, n, r, s, o, a, l = 0, c = e[t[0]].length; l < c; ++l)
              for (s = o = 0, i = 0; i < a; ++i)
                (r = (n = e[t[i]][l])[1] - n[0]) > 0
                  ? ((n[0] = s), (n[1] = s += r))
                  : r < 0
                  ? ((n[1] = o), (n[0] = o += r))
                  : ((n[0] = 0), (n[1] = r));
        }
        function UC(e, t) {
          if ((i = e.length) > 0) {
            for (var i, n = 0, r = e[t[0]], s = r.length; n < s; ++n) {
              for (var o = 0, a = 0; o < i; ++o) a += e[o][n][1] || 0;
              r[n][1] += r[n][0] = -a / 2;
            }
            WC(e, t);
          }
        }
        function $C(e, t) {
          if ((r = e.length) > 0 && (n = (i = e[t[0]]).length) > 0) {
            for (var i, n, r, s = 0, o = 1; o < n; ++o) {
              for (var a = 0, l = 0, c = 0; a < r; ++a) {
                for (
                  var d = e[t[a]],
                    h = d[o][1] || 0,
                    u = (h - (d[o - 1][1] || 0)) / 2,
                    g = 0;
                  g < a;
                  ++g
                ) {
                  var f = e[t[g]];
                  u += (f[o][1] || 0) - (f[o - 1][1] || 0);
                }
                (l += h), (c += u * h);
              }
              (i[o - 1][1] += i[o - 1][0] = s), l && (s -= c / l);
            }
            (i[o - 1][1] += i[o - 1][0] = s), WC(e, t);
          }
        }
        function KC(e) {
          var t = e.map(qC);
          return YC(e).sort(function (e, i) {
            return t[e] - t[i];
          });
        }
        function qC(e) {
          for (var t, i = -1, n = 0, r = e.length, s = -1 / 0; ++i < r; )
            (t = +e[i][1]) > s && ((s = t), (n = i));
          return n;
        }
        function GC(e) {
          var t = e.map(ZC);
          return YC(e).sort(function (e, i) {
            return t[e] - t[i];
          });
        }
        function ZC(e) {
          for (var t, i = 0, n = -1, r = e.length; ++n < r; )
            (t = +e[n][1]) && (i += t);
          return i;
        }
        function JC(e) {
          return GC(e).reverse();
        }
        function QC(e) {
          var t,
            i,
            n = e.length,
            r = e.map(ZC),
            s = KC(e),
            o = 0,
            a = 0,
            l = [],
            c = [];
          for (t = 0; t < n; ++t)
            (i = s[t]),
              o < a ? ((o += r[i]), l.push(i)) : ((a += r[i]), c.push(i));
          return c.reverse().concat(l);
        }
        function XC(e) {
          return YC(e).reverse();
        }
        (wC.prototype = {
          areaStart: Jw,
          areaEnd: Jw,
          lineStart: function () {
            this._point = 0;
          },
          lineEnd: function () {
            this._point && this._context.closePath();
          },
          point: function (e, t) {
            (e = +e),
              (t = +t),
              this._point
                ? this._context.lineTo(e, t)
                : ((this._point = 1), this._context.moveTo(e, t));
          },
        }),
          (MC.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:
                  LC(this, this._t0, xC(this, this._t0));
              }
              (this._line || (0 !== this._line && 1 === this._point)) &&
                this._context.closePath(),
                (this._line = 1 - this._line);
            },
            point: function (e, t) {
              var i = NaN;
              if (((t = +t), (e = +e) !== this._x1 || t !== this._y1)) {
                switch (this._point) {
                  case 0:
                    (this._point = 1),
                      this._line
                        ? this._context.lineTo(e, t)
                        : this._context.moveTo(e, t);
                    break;
                  case 1:
                    this._point = 2;
                    break;
                  case 2:
                    (this._point = 3),
                      LC(this, xC(this, (i = kC(this, e, t))), i);
                    break;
                  default:
                    LC(this, this._t0, (i = kC(this, e, t)));
                }
                (this._x0 = this._x1),
                  (this._x1 = e),
                  (this._y0 = this._y1),
                  (this._y1 = t),
                  (this._t0 = i);
              }
            },
          }),
          ((DC.prototype = Object.create(MC.prototype)).point = function (
            e,
            t
          ) {
            MC.prototype.point.call(this, t, e);
          }),
          (NC.prototype = {
            moveTo: function (e, t) {
              this._context.moveTo(t, e);
            },
            closePath: function () {
              this._context.closePath();
            },
            lineTo: function (e, t) {
              this._context.lineTo(t, e);
            },
            bezierCurveTo: function (e, t, i, n, r, s) {
              this._context.bezierCurveTo(t, e, n, i, s, r);
            },
          }),
          (IC.prototype = {
            areaStart: function () {
              this._line = 0;
            },
            areaEnd: function () {
              this._line = NaN;
            },
            lineStart: function () {
              (this._x = []), (this._y = []);
            },
            lineEnd: function () {
              var e = this._x,
                t = this._y,
                i = e.length;
              if (i)
                if (
                  (this._line
                    ? this._context.lineTo(e[0], t[0])
                    : this._context.moveTo(e[0], t[0]),
                  2 === i)
                )
                  this._context.lineTo(e[1], t[1]);
                else
                  for (var n = OC(e), r = OC(t), s = 0, o = 1; o < i; ++s, ++o)
                    this._context.bezierCurveTo(
                      n[0][s],
                      r[0][s],
                      n[1][s],
                      r[1][s],
                      e[o],
                      t[o]
                    );
              (this._line || (0 !== this._line && 1 === i)) &&
                this._context.closePath(),
                (this._line = 1 - this._line),
                (this._x = this._y = null);
            },
            point: function (e, t) {
              this._x.push(+e), this._y.push(+t);
            },
          }),
          (RC.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 &&
                2 === this._point &&
                this._context.lineTo(this._x, this._y),
                (this._line || (0 !== this._line && 1 === this._point)) &&
                  this._context.closePath(),
                this._line >= 0 &&
                  ((this._t = 1 - this._t), (this._line = 1 - this._line));
            },
            point: function (e, t) {
              switch (((e = +e), (t = +t), this._point)) {
                case 0:
                  (this._point = 1),
                    this._line
                      ? this._context.lineTo(e, t)
                      : this._context.moveTo(e, t);
                  break;
                case 1:
                  this._point = 2;
                default:
                  if (this._t <= 0)
                    this._context.lineTo(this._x, t),
                      this._context.lineTo(e, t);
                  else {
                    var i = this._x * (1 - this._t) + e * this._t;
                    this._context.lineTo(i, this._y),
                      this._context.lineTo(i, t);
                  }
              }
              (this._x = e), (this._y = t);
            },
          });
        var eS = '%Y-%m-%dT%H:%M:%S.%LZ';
        const tS = Date.prototype.toISOString
            ? function (e) {
                return e.toISOString();
              }
            : p_(eS),
          iS = +new Date('2000-01-01T00:00:00.000Z')
            ? function (e) {
                var t = new Date(e);
                return isNaN(t) ? null : t;
              }
            : m_(eS);
        function nS(e, t, i) {
          var n = new Ui(),
            r = t;
          return null == t
            ? (n.restart(e, t, i), n)
            : ((t = +t),
              (i = null == i ? Vi() : +i),
              n.restart(
                function s(o) {
                  (o += r), n.restart(s, (r += t), i), e(o);
                },
                t,
                i
              ),
              n);
        }
        function rS(e) {
          return function () {
            return e;
          };
        }
        function sS(e) {
          return e[0];
        }
        function oS(e) {
          return e[1];
        }
        function aS() {
          this._ = null;
        }
        function lS(e) {
          e.U = e.C = e.L = e.R = e.P = e.N = null;
        }
        function cS(e, t) {
          var i = t,
            n = t.R,
            r = i.U;
          r ? (r.L === i ? (r.L = n) : (r.R = n)) : (e._ = n),
            (n.U = r),
            (i.U = n),
            (i.R = n.L),
            i.R && (i.R.U = i),
            (n.L = i);
        }
        function dS(e, t) {
          var i = t,
            n = t.L,
            r = i.U;
          r ? (r.L === i ? (r.L = n) : (r.R = n)) : (e._ = n),
            (n.U = r),
            (i.U = n),
            (i.L = n.R),
            i.L && (i.L.U = i),
            (n.R = i);
        }
        function hS(e) {
          for (; e.L; ) e = e.L;
          return e;
        }
        aS.prototype = {
          constructor: aS,
          insert: function (e, t) {
            var i, n, r;
            if (e) {
              if (
                ((t.P = e), (t.N = e.N), e.N && (e.N.P = t), (e.N = t), e.R)
              ) {
                for (e = e.R; e.L; ) e = e.L;
                e.L = t;
              } else e.R = t;
              i = e;
            } else
              this._
                ? ((e = hS(this._)),
                  (t.P = null),
                  (t.N = e),
                  (e.P = e.L = t),
                  (i = e))
                : ((t.P = t.N = null), (this._ = t), (i = null));
            for (t.L = t.R = null, t.U = i, t.C = !0, e = t; i && i.C; )
              i === (n = i.U).L
                ? (r = n.R) && r.C
                  ? ((i.C = r.C = !1), (n.C = !0), (e = n))
                  : (e === i.R && (cS(this, i), (i = (e = i).U)),
                    (i.C = !1),
                    (n.C = !0),
                    dS(this, n))
                : (r = n.L) && r.C
                ? ((i.C = r.C = !1), (n.C = !0), (e = n))
                : (e === i.L && (dS(this, i), (i = (e = i).U)),
                  (i.C = !1),
                  (n.C = !0),
                  cS(this, n)),
                (i = e.U);
            this._.C = !1;
          },
          remove: function (e) {
            e.N && (e.N.P = e.P), e.P && (e.P.N = e.N), (e.N = e.P = null);
            var t,
              i,
              n,
              r = e.U,
              s = e.L,
              o = e.R;
            if (
              ((i = s ? (o ? hS(o) : s) : o),
              r ? (r.L === e ? (r.L = i) : (r.R = i)) : (this._ = i),
              s && o
                ? ((n = i.C),
                  (i.C = e.C),
                  (i.L = s),
                  (s.U = i),
                  i !== o
                    ? ((r = i.U),
                      (i.U = e.U),
                      (e = i.R),
                      (r.L = e),
                      (i.R = o),
                      (o.U = i))
                    : ((i.U = r), (r = i), (e = i.R)))
                : ((n = e.C), (e = i)),
              e && (e.U = r),
              !n)
            )
              if (e && e.C) e.C = !1;
              else {
                do {
                  if (e === this._) break;
                  if (e === r.L) {
                    if (
                      ((t = r.R).C &&
                        ((t.C = !1), (r.C = !0), cS(this, r), (t = r.R)),
                      (t.L && t.L.C) || (t.R && t.R.C))
                    ) {
                      (t.R && t.R.C) ||
                        ((t.L.C = !1), (t.C = !0), dS(this, t), (t = r.R)),
                        (t.C = r.C),
                        (r.C = t.R.C = !1),
                        cS(this, r),
                        (e = this._);
                      break;
                    }
                  } else if (
                    ((t = r.L).C &&
                      ((t.C = !1), (r.C = !0), dS(this, r), (t = r.L)),
                    (t.L && t.L.C) || (t.R && t.R.C))
                  ) {
                    (t.L && t.L.C) ||
                      ((t.R.C = !1), (t.C = !0), cS(this, t), (t = r.L)),
                      (t.C = r.C),
                      (r.C = t.L.C = !1),
                      dS(this, r),
                      (e = this._);
                    break;
                  }
                  (t.C = !0), (e = r), (r = r.U);
                } while (!e.C);
                e && (e.C = !1);
              }
          },
        };
        const uS = aS;
        function gS(e, t, i, n) {
          var r = [null, null],
            s = FS.push(r) - 1;
          return (
            (r.left = e),
            (r.right = t),
            i && pS(r, e, t, i),
            n && pS(r, t, e, n),
            RS[e.index].halfedges.push(s),
            RS[t.index].halfedges.push(s),
            r
          );
        }
        function fS(e, t, i) {
          var n = [t, i];
          return (n.left = e), n;
        }
        function pS(e, t, i, n) {
          e[0] || e[1]
            ? e.left === i
              ? (e[1] = n)
              : (e[0] = n)
            : ((e[0] = n), (e.left = t), (e.right = i));
        }
        function mS(e, t, i, n, r) {
          var s,
            o = e[0],
            a = e[1],
            l = o[0],
            c = o[1],
            d = 0,
            h = 1,
            u = a[0] - l,
            g = a[1] - c;
          if (((s = t - l), u || !(s > 0))) {
            if (((s /= u), u < 0)) {
              if (s < d) return;
              s < h && (h = s);
            } else if (u > 0) {
              if (s > h) return;
              s > d && (d = s);
            }
            if (((s = n - l), u || !(s < 0))) {
              if (((s /= u), u < 0)) {
                if (s > h) return;
                s > d && (d = s);
              } else if (u > 0) {
                if (s < d) return;
                s < h && (h = s);
              }
              if (((s = i - c), g || !(s > 0))) {
                if (((s /= g), g < 0)) {
                  if (s < d) return;
                  s < h && (h = s);
                } else if (g > 0) {
                  if (s > h) return;
                  s > d && (d = s);
                }
                if (((s = r - c), g || !(s < 0))) {
                  if (((s /= g), g < 0)) {
                    if (s > h) return;
                    s > d && (d = s);
                  } else if (g > 0) {
                    if (s < d) return;
                    s < h && (h = s);
                  }
                  return (
                    !(d > 0 || h < 1) ||
                    (d > 0 && (e[0] = [l + d * u, c + d * g]),
                    h < 1 && (e[1] = [l + h * u, c + h * g]),
                    !0)
                  );
                }
              }
            }
          }
        }
        function _S(e, t, i, n, r) {
          var s = e[1];
          if (s) return !0;
          var o,
            a,
            l = e[0],
            c = e.left,
            d = e.right,
            h = c[0],
            u = c[1],
            g = d[0],
            f = d[1],
            p = (h + g) / 2,
            m = (u + f) / 2;
          if (f === u) {
            if (p < t || p >= n) return;
            if (h > g) {
              if (l) {
                if (l[1] >= r) return;
              } else l = [p, i];
              s = [p, r];
            } else {
              if (l) {
                if (l[1] < i) return;
              } else l = [p, r];
              s = [p, i];
            }
          } else if (((a = m - (o = (h - g) / (f - u)) * p), o < -1 || o > 1))
            if (h > g) {
              if (l) {
                if (l[1] >= r) return;
              } else l = [(i - a) / o, i];
              s = [(r - a) / o, r];
            } else {
              if (l) {
                if (l[1] < i) return;
              } else l = [(r - a) / o, r];
              s = [(i - a) / o, i];
            }
          else if (u < f) {
            if (l) {
              if (l[0] >= n) return;
            } else l = [t, o * t + a];
            s = [n, o * n + a];
          } else {
            if (l) {
              if (l[0] < t) return;
            } else l = [n, o * n + a];
            s = [t, o * t + a];
          }
          return (e[0] = l), (e[1] = s), !0;
        }
        function bS(e, t) {
          var i = e.site,
            n = t.left,
            r = t.right;
          return (
            i === r && ((r = n), (n = i)),
            r
              ? Math.atan2(r[1] - n[1], r[0] - n[0])
              : (i === n ? ((n = t[1]), (r = t[0])) : ((n = t[0]), (r = t[1])),
                Math.atan2(n[0] - r[0], r[1] - n[1]))
          );
        }
        function vS(e, t) {
          return t[+(t.left !== e.site)];
        }
        function yS(e, t) {
          return t[+(t.left === e.site)];
        }
        var wS,
          CS = [];
        function SS() {
          lS(this), (this.x = this.y = this.arc = this.site = this.cy = null);
        }
        function kS(e) {
          var t = e.P,
            i = e.N;
          if (t && i) {
            var n = t.site,
              r = e.site,
              s = i.site;
            if (n !== s) {
              var o = r[0],
                a = r[1],
                l = n[0] - o,
                c = n[1] - a,
                d = s[0] - o,
                h = s[1] - a,
                u = 2 * (l * h - c * d);
              if (!(u >= -WS)) {
                var g = l * l + c * c,
                  f = d * d + h * h,
                  p = (h * g - c * f) / u,
                  m = (l * f - d * g) / u,
                  _ = CS.pop() || new SS();
                (_.arc = e),
                  (_.site = r),
                  (_.x = p + o),
                  (_.y = (_.cy = m + a) + Math.sqrt(p * p + m * m)),
                  (e.circle = _);
                for (var b = null, v = PS._; v; )
                  if (_.y < v.y || (_.y === v.y && _.x <= v.x)) {
                    if (!v.L) {
                      b = v.P;
                      break;
                    }
                    v = v.L;
                  } else {
                    if (!v.R) {
                      b = v;
                      break;
                    }
                    v = v.R;
                  }
                PS.insert(b, _), b || (wS = _);
              }
            }
          }
        }
        function xS(e) {
          var t = e.circle;
          t &&
            (t.P || (wS = t.N),
            PS.remove(t),
            CS.push(t),
            lS(t),
            (e.circle = null));
        }
        var LS = [];
        function MS() {
          lS(this), (this.edge = this.site = this.circle = null);
        }
        function DS(e) {
          var t = LS.pop() || new MS();
          return (t.site = e), t;
        }
        function NS(e) {
          xS(e), AS.remove(e), LS.push(e), lS(e);
        }
        function ES(e) {
          var t = e.circle,
            i = t.x,
            n = t.cy,
            r = [i, n],
            s = e.P,
            o = e.N,
            a = [e];
          NS(e);
          for (
            var l = s;
            l.circle &&
            Math.abs(i - l.circle.x) < BS &&
            Math.abs(n - l.circle.cy) < BS;

          )
            (s = l.P), a.unshift(l), NS(l), (l = s);
          a.unshift(l), xS(l);
          for (
            var c = o;
            c.circle &&
            Math.abs(i - c.circle.x) < BS &&
            Math.abs(n - c.circle.cy) < BS;

          )
            (o = c.N), a.push(c), NS(c), (c = o);
          a.push(c), xS(c);
          var d,
            h = a.length;
          for (d = 1; d < h; ++d)
            (c = a[d]), (l = a[d - 1]), pS(c.edge, l.site, c.site, r);
          (l = a[0]),
            ((c = a[h - 1]).edge = gS(l.site, c.site, null, r)),
            kS(l),
            kS(c);
        }
        function TS(e) {
          for (var t, i, n, r, s = e[0], o = e[1], a = AS._; a; )
            if ((n = IS(a, o) - s) > BS) a = a.L;
            else {
              if (!((r = s - OS(a, o)) > BS)) {
                n > -BS
                  ? ((t = a.P), (i = a))
                  : r > -BS
                  ? ((t = a), (i = a.N))
                  : (t = i = a);
                break;
              }
              if (!a.R) {
                t = a;
                break;
              }
              a = a.R;
            }
          !(function (e) {
            RS[e.index] = { site: e, halfedges: [] };
          })(e);
          var l = DS(e);
          if ((AS.insert(t, l), t || i)) {
            if (t === i)
              return (
                xS(t),
                (i = DS(t.site)),
                AS.insert(l, i),
                (l.edge = i.edge = gS(t.site, l.site)),
                kS(t),
                void kS(i)
              );
            if (i) {
              xS(t), xS(i);
              var c = t.site,
                d = c[0],
                h = c[1],
                u = e[0] - d,
                g = e[1] - h,
                f = i.site,
                p = f[0] - d,
                m = f[1] - h,
                _ = 2 * (u * m - g * p),
                b = u * u + g * g,
                v = p * p + m * m,
                y = [(m * b - g * v) / _ + d, (u * v - p * b) / _ + h];
              pS(i.edge, c, f, y),
                (l.edge = gS(c, e, null, y)),
                (i.edge = gS(e, f, null, y)),
                kS(t),
                kS(i);
            } else l.edge = gS(t.site, l.site);
          }
        }
        function IS(e, t) {
          var i = e.site,
            n = i[0],
            r = i[1],
            s = r - t;
          if (!s) return n;
          var o = e.P;
          if (!o) return -1 / 0;
          var a = (i = o.site)[0],
            l = i[1],
            c = l - t;
          if (!c) return a;
          var d = a - n,
            h = 1 / s - 1 / c,
            u = d / c;
          return h
            ? (-u +
                Math.sqrt(
                  u * u - 2 * h * ((d * d) / (-2 * c) - l + c / 2 + r - s / 2)
                )) /
                h +
                n
            : (n + a) / 2;
        }
        function OS(e, t) {
          var i = e.N;
          if (i) return IS(i, t);
          var n = e.site;
          return n[1] === t ? n[0] : 1 / 0;
        }
        var AS,
          RS,
          PS,
          FS,
          BS = 1e-6,
          WS = 1e-12;
        function YS(e, t, i) {
          return (e[0] - i[0]) * (t[1] - e[1]) - (e[0] - t[0]) * (i[1] - e[1]);
        }
        function HS(e, t) {
          return t[1] - e[1] || t[0] - e[0];
        }
        function jS(e, t) {
          var i,
            n,
            r,
            s = e.sort(HS).pop();
          for (
            FS = [], RS = new Array(e.length), AS = new uS(), PS = new uS();
            ;

          )
            if (
              ((r = wS),
              s && (!r || s[1] < r.y || (s[1] === r.y && s[0] < r.x)))
            )
              (s[0] === i && s[1] === n) || (TS(s), (i = s[0]), (n = s[1])),
                (s = e.pop());
            else {
              if (!r) break;
              ES(r.arc);
            }
          if (
            ((function () {
              for (var e, t, i, n, r = 0, s = RS.length; r < s; ++r)
                if ((e = RS[r]) && (n = (t = e.halfedges).length)) {
                  var o = new Array(n),
                    a = new Array(n);
                  for (i = 0; i < n; ++i) (o[i] = i), (a[i] = bS(e, FS[t[i]]));
                  for (
                    o.sort(function (e, t) {
                      return a[t] - a[e];
                    }),
                      i = 0;
                    i < n;
                    ++i
                  )
                    a[i] = t[o[i]];
                  for (i = 0; i < n; ++i) t[i] = a[i];
                }
            })(),
            t)
          ) {
            var o = +t[0][0],
              a = +t[0][1],
              l = +t[1][0],
              c = +t[1][1];
            !(function (e, t, i, n) {
              for (var r, s = FS.length; s--; )
                (_S((r = FS[s]), e, t, i, n) &&
                  mS(r, e, t, i, n) &&
                  (Math.abs(r[0][0] - r[1][0]) > BS ||
                    Math.abs(r[0][1] - r[1][1]) > BS)) ||
                  delete FS[s];
            })(o, a, l, c),
              (function (e, t, i, n) {
                var r,
                  s,
                  o,
                  a,
                  l,
                  c,
                  d,
                  h,
                  u,
                  g,
                  f,
                  p,
                  m = RS.length,
                  _ = !0;
                for (r = 0; r < m; ++r)
                  if ((s = RS[r])) {
                    for (o = s.site, a = (l = s.halfedges).length; a--; )
                      FS[l[a]] || l.splice(a, 1);
                    for (a = 0, c = l.length; a < c; )
                      (f = (g = yS(s, FS[l[a]]))[0]),
                        (p = g[1]),
                        (h = (d = vS(s, FS[l[++a % c]]))[0]),
                        (u = d[1]),
                        (Math.abs(f - h) > BS || Math.abs(p - u) > BS) &&
                          (l.splice(
                            a,
                            0,
                            FS.push(
                              fS(
                                o,
                                g,
                                Math.abs(f - e) < BS && n - p > BS
                                  ? [e, Math.abs(h - e) < BS ? u : n]
                                  : Math.abs(p - n) < BS && i - f > BS
                                  ? [Math.abs(u - n) < BS ? h : i, n]
                                  : Math.abs(f - i) < BS && p - t > BS
                                  ? [i, Math.abs(h - i) < BS ? u : t]
                                  : Math.abs(p - t) < BS && f - e > BS
                                  ? [Math.abs(u - t) < BS ? h : e, t]
                                  : null
                              )
                            ) - 1
                          ),
                          ++c);
                    c && (_ = !1);
                  }
                if (_) {
                  var b,
                    v,
                    y,
                    w = 1 / 0;
                  for (r = 0, _ = null; r < m; ++r)
                    (s = RS[r]) &&
                      (y = (b = (o = s.site)[0] - e) * b + (v = o[1] - t) * v) <
                        w &&
                      ((w = y), (_ = s));
                  if (_) {
                    var C = [e, t],
                      S = [e, n],
                      k = [i, n],
                      x = [i, t];
                    _.halfedges.push(
                      FS.push(fS((o = _.site), C, S)) - 1,
                      FS.push(fS(o, S, k)) - 1,
                      FS.push(fS(o, k, x)) - 1,
                      FS.push(fS(o, x, C)) - 1
                    );
                  }
                }
                for (r = 0; r < m; ++r)
                  (s = RS[r]) && (s.halfedges.length || delete RS[r]);
              })(o, a, l, c);
          }
          (this.edges = FS), (this.cells = RS), (AS = PS = FS = RS = null);
        }
        function VS() {
          var e = sS,
            t = oS,
            i = null;
          function n(n) {
            return new jS(
              n.map(function (i, r) {
                var s = [
                  Math.round(e(i, r, n) / BS) * BS,
                  Math.round(t(i, r, n) / BS) * BS,
                ];
                return (s.index = r), (s.data = i), s;
              }),
              i
            );
          }
          return (
            (n.polygons = function (e) {
              return n(e).polygons();
            }),
            (n.links = function (e) {
              return n(e).links();
            }),
            (n.triangles = function (e) {
              return n(e).triangles();
            }),
            (n.x = function (t) {
              return arguments.length
                ? ((e = 'function' == typeof t ? t : rS(+t)), n)
                : e;
            }),
            (n.y = function (e) {
              return arguments.length
                ? ((t = 'function' == typeof e ? e : rS(+e)), n)
                : t;
            }),
            (n.extent = function (e) {
              return arguments.length
                ? ((i =
                    null == e
                      ? null
                      : [
                          [+e[0][0], +e[0][1]],
                          [+e[1][0], +e[1][1]],
                        ]),
                  n)
                : i && [
                    [i[0][0], i[0][1]],
                    [i[1][0], i[1][1]],
                  ];
            }),
            (n.size = function (e) {
              return arguments.length
                ? ((i =
                    null == e
                      ? null
                      : [
                          [0, 0],
                          [+e[0], +e[1]],
                        ]),
                  n)
                : i && [i[1][0] - i[0][0], i[1][1] - i[0][1]];
            }),
            n
          );
        }
        function zS(e) {
          return function () {
            return e;
          };
        }
        function US(e, t, i) {
          (this.target = e), (this.type = t), (this.transform = i);
        }
        function $S(e, t, i) {
          (this.k = e), (this.x = t), (this.y = i);
        }
        (jS.prototype = {
          constructor: jS,
          polygons: function () {
            var e = this.edges;
            return this.cells.map(function (t) {
              var i = t.halfedges.map(function (i) {
                return vS(t, e[i]);
              });
              return (i.data = t.site.data), i;
            });
          },
          triangles: function () {
            var e = [],
              t = this.edges;
            return (
              this.cells.forEach(function (i, n) {
                if ((s = (r = i.halfedges).length))
                  for (
                    var r,
                      s,
                      o,
                      a = i.site,
                      l = -1,
                      c = t[r[s - 1]],
                      d = c.left === a ? c.right : c.left;
                    ++l < s;

                  )
                    (o = d),
                      (d = (c = t[r[l]]).left === a ? c.right : c.left),
                      o &&
                        d &&
                        n < o.index &&
                        n < d.index &&
                        YS(a, o, d) < 0 &&
                        e.push([a.data, o.data, d.data]);
              }),
              e
            );
          },
          links: function () {
            return this.edges
              .filter(function (e) {
                return e.right;
              })
              .map(function (e) {
                return { source: e.left.data, target: e.right.data };
              });
          },
          find: function (e, t, i) {
            for (
              var n, r, s = this, o = s._found || 0, a = s.cells.length;
              !(r = s.cells[o]);

            )
              if (++o >= a) return null;
            var l = e - r.site[0],
              c = t - r.site[1],
              d = l * l + c * c;
            do {
              (r = s.cells[(n = o)]),
                (o = null),
                r.halfedges.forEach(function (i) {
                  var n = s.edges[i],
                    a = n.left;
                  if ((a !== r.site && a) || (a = n.right)) {
                    var l = e - a[0],
                      c = t - a[1],
                      h = l * l + c * c;
                    h < d && ((d = h), (o = a.index));
                  }
                });
            } while (null !== o);
            return (s._found = n), null == i || d <= i * i ? r.site : null;
          },
        }),
          ($S.prototype = {
            constructor: $S,
            scale: function (e) {
              return 1 === e ? this : new $S(this.k * e, this.x, this.y);
            },
            translate: function (e, t) {
              return (0 === e) & (0 === t)
                ? this
                : new $S(this.k, this.x + this.k * e, this.y + this.k * t);
            },
            apply: function (e) {
              return [e[0] * this.k + this.x, e[1] * this.k + this.y];
            },
            applyX: function (e) {
              return e * this.k + this.x;
            },
            applyY: function (e) {
              return e * this.k + this.y;
            },
            invert: function (e) {
              return [(e[0] - this.x) / this.k, (e[1] - this.y) / this.k];
            },
            invertX: function (e) {
              return (e - this.x) / this.k;
            },
            invertY: function (e) {
              return (e - this.y) / this.k;
            },
            rescaleX: function (e) {
              return e
                .copy()
                .domain(e.range().map(this.invertX, this).map(e.invert, e));
            },
            rescaleY: function (e) {
              return e
                .copy()
                .domain(e.range().map(this.invertY, this).map(e.invert, e));
            },
            toString: function () {
              return (
                'translate(' + this.x + ',' + this.y + ') scale(' + this.k + ')'
              );
            },
          });
        var KS = new $S(1, 0, 0);
        function qS(e) {
          for (; !e.__zoom; ) if (!(e = e.parentNode)) return KS;
          return e.__zoom;
        }
        function GS() {
          dt.stopImmediatePropagation();
        }
        function ZS() {
          dt.preventDefault(), dt.stopImmediatePropagation();
        }
        function JS() {
          return !dt.ctrlKey && !dt.button;
        }
        function QS() {
          var e = this;
          return e instanceof SVGElement
            ? (e = e.ownerSVGElement || e).hasAttribute('viewBox')
              ? [
                  [(e = e.viewBox.baseVal).x, e.y],
                  [e.x + e.width, e.y + e.height],
                ]
              : [
                  [0, 0],
                  [e.width.baseVal.value, e.height.baseVal.value],
                ]
            : [
                [0, 0],
                [e.clientWidth, e.clientHeight],
              ];
        }
        function XS() {
          return this.__zoom || KS;
        }
        function ek() {
          return (
            -dt.deltaY * (1 === dt.deltaMode ? 0.05 : dt.deltaMode ? 1 : 0.002)
          );
        }
        function tk() {
          return navigator.maxTouchPoints || 'ontouchstart' in this;
        }
        function ik(e, t, i) {
          var n = e.invertX(t[0][0]) - i[0][0],
            r = e.invertX(t[1][0]) - i[1][0],
            s = e.invertY(t[0][1]) - i[0][1],
            o = e.invertY(t[1][1]) - i[1][1];
          return e.translate(
            r > n ? (n + r) / 2 : Math.min(0, n) || Math.max(0, r),
            o > s ? (s + o) / 2 : Math.min(0, s) || Math.max(0, o)
          );
        }
        function nk() {
          var e,
            t,
            i = JS,
            n = QS,
            r = ik,
            s = ek,
            o = tk,
            a = [0, 1 / 0],
            l = [
              [-1 / 0, -1 / 0],
              [1 / 0, 1 / 0],
            ],
            c = 250,
            d = Tf,
            h = ue('start', 'zoom', 'end'),
            u = 500,
            g = 0;
          function f(e) {
            e.property('__zoom', XS)
              .on('wheel.zoom', w)
              .on('mousedown.zoom', C)
              .on('dblclick.zoom', S)
              .filter(o)
              .on('touchstart.zoom', k)
              .on('touchmove.zoom', x)
              .on('touchend.zoom touchcancel.zoom', L)
              .style('touch-action', 'none')
              .style('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
          }
          function p(e, t) {
            return (t = Math.max(a[0], Math.min(a[1], t))) === e.k
              ? e
              : new $S(t, e.x, e.y);
          }
          function m(e, t, i) {
            var n = t[0] - i[0] * e.k,
              r = t[1] - i[1] * e.k;
            return n === e.x && r === e.y ? e : new $S(e.k, n, r);
          }
          function _(e) {
            return [(+e[0][0] + +e[1][0]) / 2, (+e[0][1] + +e[1][1]) / 2];
          }
          function b(e, t, i) {
            e.on('start.zoom', function () {
              v(this, arguments).start();
            })
              .on('interrupt.zoom end.zoom', function () {
                v(this, arguments).end();
              })
              .tween('zoom', function () {
                var e = this,
                  r = arguments,
                  s = v(e, r),
                  o = n.apply(e, r),
                  a =
                    null == i
                      ? _(o)
                      : 'function' == typeof i
                      ? i.apply(e, r)
                      : i,
                  l = Math.max(o[1][0] - o[0][0], o[1][1] - o[0][1]),
                  c = e.__zoom,
                  h = 'function' == typeof t ? t.apply(e, r) : t,
                  u = d(
                    c.invert(a).concat(l / c.k),
                    h.invert(a).concat(l / h.k)
                  );
                return function (e) {
                  if (1 === e) e = h;
                  else {
                    var t = u(e),
                      i = l / t[2];
                    e = new $S(i, a[0] - t[0] * i, a[1] - t[1] * i);
                  }
                  s.zoom(null, e);
                };
              });
          }
          function v(e, t, i) {
            return (!i && e.__zooming) || new y(e, t);
          }
          function y(e, t) {
            (this.that = e),
              (this.args = t),
              (this.active = 0),
              (this.extent = n.apply(e, t)),
              (this.taps = 0);
          }
          function w() {
            if (i.apply(this, arguments)) {
              var e = v(this, arguments),
                t = this.__zoom,
                n = Math.max(
                  a[0],
                  Math.min(a[1], t.k * Math.pow(2, s.apply(this, arguments)))
                ),
                o = Ii(this);
              if (e.wheel)
                (e.mouse[0][0] === o[0] && e.mouse[0][1] === o[1]) ||
                  (e.mouse[1] = t.invert((e.mouse[0] = o))),
                  clearTimeout(e.wheel);
              else {
                if (t.k === n) return;
                (e.mouse = [o, t.invert(o)]), sn(this), e.start();
              }
              ZS(),
                (e.wheel = setTimeout(c, 150)),
                e.zoom(
                  'mouse',
                  r(m(p(t, n), e.mouse[0], e.mouse[1]), e.extent, l)
                );
            }
            function c() {
              (e.wheel = null), e.end();
            }
          }
          function C() {
            if (!t && i.apply(this, arguments)) {
              var e = v(this, arguments, !0),
                n = kt(dt.view)
                  .on('mousemove.zoom', c, !0)
                  .on('mouseup.zoom', d, !0),
                s = Ii(this),
                o = dt.clientX,
                a = dt.clientY;
              Mt(dt.view),
                GS(),
                (e.mouse = [s, this.__zoom.invert(s)]),
                sn(this),
                e.start();
            }
            function c() {
              if ((ZS(), !e.moved)) {
                var t = dt.clientX - o,
                  i = dt.clientY - a;
                e.moved = t * t + i * i > g;
              }
              e.zoom(
                'mouse',
                r(
                  m(e.that.__zoom, (e.mouse[0] = Ii(e.that)), e.mouse[1]),
                  e.extent,
                  l
                )
              );
            }
            function d() {
              n.on('mousemove.zoom mouseup.zoom', null),
                Dt(dt.view, e.moved),
                ZS(),
                e.end();
            }
          }
          function S() {
            if (i.apply(this, arguments)) {
              var e = this.__zoom,
                t = Ii(this),
                s = e.invert(t),
                o = e.k * (dt.shiftKey ? 0.5 : 2),
                a = r(m(p(e, o), t, s), n.apply(this, arguments), l);
              ZS(),
                c > 0
                  ? kt(this).transition().duration(c).call(b, a, t)
                  : kt(this).call(f.transform, a);
            }
          }
          function k() {
            if (i.apply(this, arguments)) {
              var t,
                n,
                r,
                s,
                o = dt.touches,
                a = o.length,
                l = v(this, arguments, dt.changedTouches.length === a);
              for (GS(), n = 0; n < a; ++n)
                (s = [
                  (s = Ti(this, o, (r = o[n]).identifier)),
                  this.__zoom.invert(s),
                  r.identifier,
                ]),
                  l.touch0
                    ? l.touch1 ||
                      l.touch0[2] === s[2] ||
                      ((l.touch1 = s), (l.taps = 0))
                    : ((l.touch0 = s), (t = !0), (l.taps = 1 + !!e));
              e && (e = clearTimeout(e)),
                t &&
                  (l.taps < 2 &&
                    (e = setTimeout(function () {
                      e = null;
                    }, u)),
                  sn(this),
                  l.start());
            }
          }
          function x() {
            if (this.__zooming) {
              var t,
                i,
                n,
                s,
                o = v(this, arguments),
                a = dt.changedTouches,
                c = a.length;
              for (
                ZS(), e && (e = clearTimeout(e)), o.taps = 0, t = 0;
                t < c;
                ++t
              )
                (n = Ti(this, a, (i = a[t]).identifier)),
                  o.touch0 && o.touch0[2] === i.identifier
                    ? (o.touch0[0] = n)
                    : o.touch1 &&
                      o.touch1[2] === i.identifier &&
                      (o.touch1[0] = n);
              if (((i = o.that.__zoom), o.touch1)) {
                var d = o.touch0[0],
                  h = o.touch0[1],
                  u = o.touch1[0],
                  g = o.touch1[1],
                  f = (f = u[0] - d[0]) * f + (f = u[1] - d[1]) * f,
                  _ = (_ = g[0] - h[0]) * _ + (_ = g[1] - h[1]) * _;
                (i = p(i, Math.sqrt(f / _))),
                  (n = [(d[0] + u[0]) / 2, (d[1] + u[1]) / 2]),
                  (s = [(h[0] + g[0]) / 2, (h[1] + g[1]) / 2]);
              } else {
                if (!o.touch0) return;
                (n = o.touch0[0]), (s = o.touch0[1]);
              }
              o.zoom('touch', r(m(i, n, s), o.extent, l));
            }
          }
          function L() {
            if (this.__zooming) {
              var e,
                i,
                n = v(this, arguments),
                r = dt.changedTouches,
                s = r.length;
              for (
                GS(),
                  t && clearTimeout(t),
                  t = setTimeout(function () {
                    t = null;
                  }, u),
                  e = 0;
                e < s;
                ++e
              )
                (i = r[e]),
                  n.touch0 && n.touch0[2] === i.identifier
                    ? delete n.touch0
                    : n.touch1 &&
                      n.touch1[2] === i.identifier &&
                      delete n.touch1;
              if (
                (n.touch1 &&
                  !n.touch0 &&
                  ((n.touch0 = n.touch1), delete n.touch1),
                n.touch0)
              )
                n.touch0[1] = this.__zoom.invert(n.touch0[0]);
              else if ((n.end(), 2 === n.taps)) {
                var o = kt(this).on('dblclick.zoom');
                o && o.apply(this, arguments);
              }
            }
          }
          return (
            (f.transform = function (e, t, i) {
              var n = e.selection ? e.selection() : e;
              n.property('__zoom', XS),
                e !== n
                  ? b(e, t, i)
                  : n.interrupt().each(function () {
                      v(this, arguments)
                        .start()
                        .zoom(
                          null,
                          'function' == typeof t ? t.apply(this, arguments) : t
                        )
                        .end();
                    });
            }),
            (f.scaleBy = function (e, t, i) {
              f.scaleTo(
                e,
                function () {
                  var e = this.__zoom.k,
                    i = 'function' == typeof t ? t.apply(this, arguments) : t;
                  return e * i;
                },
                i
              );
            }),
            (f.scaleTo = function (e, t, i) {
              f.transform(
                e,
                function () {
                  var e = n.apply(this, arguments),
                    s = this.__zoom,
                    o =
                      null == i
                        ? _(e)
                        : 'function' == typeof i
                        ? i.apply(this, arguments)
                        : i,
                    a = s.invert(o),
                    c = 'function' == typeof t ? t.apply(this, arguments) : t;
                  return r(m(p(s, c), o, a), e, l);
                },
                i
              );
            }),
            (f.translateBy = function (e, t, i) {
              f.transform(e, function () {
                return r(
                  this.__zoom.translate(
                    'function' == typeof t ? t.apply(this, arguments) : t,
                    'function' == typeof i ? i.apply(this, arguments) : i
                  ),
                  n.apply(this, arguments),
                  l
                );
              });
            }),
            (f.translateTo = function (e, t, i, s) {
              f.transform(
                e,
                function () {
                  var e = n.apply(this, arguments),
                    o = this.__zoom,
                    a =
                      null == s
                        ? _(e)
                        : 'function' == typeof s
                        ? s.apply(this, arguments)
                        : s;
                  return r(
                    KS.translate(a[0], a[1])
                      .scale(o.k)
                      .translate(
                        'function' == typeof t ? -t.apply(this, arguments) : -t,
                        'function' == typeof i ? -i.apply(this, arguments) : -i
                      ),
                    e,
                    l
                  );
                },
                s
              );
            }),
            (y.prototype = {
              start: function () {
                return (
                  1 == ++this.active &&
                    ((this.that.__zooming = this), this.emit('start')),
                  this
                );
              },
              zoom: function (e, t) {
                return (
                  this.mouse &&
                    'mouse' !== e &&
                    (this.mouse[1] = t.invert(this.mouse[0])),
                  this.touch0 &&
                    'touch' !== e &&
                    (this.touch0[1] = t.invert(this.touch0[0])),
                  this.touch1 &&
                    'touch' !== e &&
                    (this.touch1[1] = t.invert(this.touch1[0])),
                  (this.that.__zoom = t),
                  this.emit('zoom'),
                  this
                );
              },
              end: function () {
                return (
                  0 == --this.active &&
                    (delete this.that.__zooming, this.emit('end')),
                  this
                );
              },
              emit: function (e) {
                mt(new US(f, e, this.that.__zoom), h.apply, h, [
                  e,
                  this.that,
                  this.args,
                ]);
              },
            }),
            (f.wheelDelta = function (e) {
              return arguments.length
                ? ((s = 'function' == typeof e ? e : zS(+e)), f)
                : s;
            }),
            (f.filter = function (e) {
              return arguments.length
                ? ((i = 'function' == typeof e ? e : zS(!!e)), f)
                : i;
            }),
            (f.touchable = function (e) {
              return arguments.length
                ? ((o = 'function' == typeof e ? e : zS(!!e)), f)
                : o;
            }),
            (f.extent = function (e) {
              return arguments.length
                ? ((n =
                    'function' == typeof e
                      ? e
                      : zS([
                          [+e[0][0], +e[0][1]],
                          [+e[1][0], +e[1][1]],
                        ])),
                  f)
                : n;
            }),
            (f.scaleExtent = function (e) {
              return arguments.length
                ? ((a[0] = +e[0]), (a[1] = +e[1]), f)
                : [a[0], a[1]];
            }),
            (f.translateExtent = function (e) {
              return arguments.length
                ? ((l[0][0] = +e[0][0]),
                  (l[1][0] = +e[1][0]),
                  (l[0][1] = +e[0][1]),
                  (l[1][1] = +e[1][1]),
                  f)
                : [
                    [l[0][0], l[0][1]],
                    [l[1][0], l[1][1]],
                  ];
            }),
            (f.constrain = function (e) {
              return arguments.length ? ((r = e), f) : r;
            }),
            (f.duration = function (e) {
              return arguments.length ? ((c = +e), f) : c;
            }),
            (f.interpolate = function (e) {
              return arguments.length ? ((d = e), f) : d;
            }),
            (f.on = function () {
              var e = h.on.apply(h, arguments);
              return e === h ? f : e;
            }),
            (f.clickDistance = function (e) {
              return arguments.length ? ((g = (e = +e) * e), f) : Math.sqrt(g);
            }),
            f
          );
        }
        qS.prototype = $S.prototype;
      },
      44949: (e, t, i) => {
        e.exports = {
          graphlib: i(66614),
          dagre: i(51463),
          intersect: i(78114),
          render: i(95787),
          util: i(28355),
          version: i(55689),
        };
      },
      39144: (e, t, i) => {
        var n = i(28355);
        function r(e, t, i, r) {
          var s = e
            .append('marker')
            .attr('id', t)
            .attr('viewBox', '0 0 10 10')
            .attr('refX', 9)
            .attr('refY', 5)
            .attr('markerUnits', 'strokeWidth')
            .attr('markerWidth', 8)
            .attr('markerHeight', 6)
            .attr('orient', 'auto')
            .append('path')
            .attr('d', 'M 0 0 L 10 5 L 0 10 z')
            .style('stroke-width', 1)
            .style('stroke-dasharray', '1,0');
          n.applyStyle(s, i[r + 'Style']),
            i[r + 'Class'] && s.attr('class', i[r + 'Class']);
        }
        e.exports = {
          default: r,
          normal: r,
          vee: function (e, t, i, r) {
            var s = e
              .append('marker')
              .attr('id', t)
              .attr('viewBox', '0 0 10 10')
              .attr('refX', 9)
              .attr('refY', 5)
              .attr('markerUnits', 'strokeWidth')
              .attr('markerWidth', 8)
              .attr('markerHeight', 6)
              .attr('orient', 'auto')
              .append('path')
              .attr('d', 'M 0 0 L 10 5 L 0 10 L 4 5 z')
              .style('stroke-width', 1)
              .style('stroke-dasharray', '1,0');
            n.applyStyle(s, i[r + 'Style']),
              i[r + 'Class'] && s.attr('class', i[r + 'Class']);
          },
          undirected: function (e, t, i, r) {
            var s = e
              .append('marker')
              .attr('id', t)
              .attr('viewBox', '0 0 10 10')
              .attr('refX', 9)
              .attr('refY', 5)
              .attr('markerUnits', 'strokeWidth')
              .attr('markerWidth', 8)
              .attr('markerHeight', 6)
              .attr('orient', 'auto')
              .append('path')
              .attr('d', 'M 0 5 L 10 5')
              .style('stroke-width', 1)
              .style('stroke-dasharray', '1,0');
            n.applyStyle(s, i[r + 'Style']),
              i[r + 'Class'] && s.attr('class', i[r + 'Class']);
          },
        };
      },
      85632: (e, t, i) => {
        var n = i(28355),
          r = i(24322),
          s = i(61322);
        e.exports = function (e, t) {
          var i,
            o = t.nodes().filter(function (e) {
              return n.isSubgraph(t, e);
            }),
            a = e.selectAll('g.cluster').data(o, function (e) {
              return e;
            });
          return (
            a.selectAll('*').remove(),
            a
              .enter()
              .append('g')
              .attr('class', 'cluster')
              .attr('id', function (e) {
                return t.node(e).id;
              })
              .style('opacity', 0),
            (a = e.selectAll('g.cluster')),
            n.applyTransition(a, t).style('opacity', 1),
            a.each(function (e) {
              var i = t.node(e),
                n = r.select(this);
              r.select(this).append('rect');
              var o = n.append('g').attr('class', 'label');
              s(o, i, i.clusterLabelPos);
            }),
            a.selectAll('rect').each(function (e) {
              var i = t.node(e),
                s = r.select(this);
              n.applyStyle(s, i.style);
            }),
            (i = a.exit ? a.exit() : a.selectAll(null)),
            n.applyTransition(i, t).style('opacity', 0).remove(),
            a
          );
        };
      },
      16315: (e, t, i) => {
        'use strict';
        var n = i(91034),
          r = i(61322),
          s = i(28355),
          o = i(24322);
        e.exports = function (e, t) {
          var i,
            a = e
              .selectAll('g.edgeLabel')
              .data(t.edges(), function (e) {
                return s.edgeToId(e);
              })
              .classed('update', !0);
          return (
            a.exit().remove(),
            a.enter().append('g').classed('edgeLabel', !0).style('opacity', 0),
            (a = e.selectAll('g.edgeLabel')).each(function (e) {
              var i = o.select(this);
              i.select('.label').remove();
              var s = t.edge(e),
                a = r(i, t.edge(e), 0, 0).classed('label', !0),
                l = a.node().getBBox();
              s.labelId && a.attr('id', s.labelId),
                n.has(s, 'width') || (s.width = l.width),
                n.has(s, 'height') || (s.height = l.height);
            }),
            (i = a.exit ? a.exit() : a.selectAll(null)),
            s.applyTransition(i, t).style('opacity', 0).remove(),
            a
          );
        };
      },
      70940: (e, t, i) => {
        'use strict';
        var n = i(91034),
          r = i(13042),
          s = i(28355),
          o = i(24322);
        function a(e, t) {
          var i = (o.line || o.svg.line)()
            .x(function (e) {
              return e.x;
            })
            .y(function (e) {
              return e.y;
            });
          return (i.curve || i.interpolate)(e.curve), i(t);
        }
        e.exports = function (e, t, i) {
          var l = e
              .selectAll('g.edgePath')
              .data(t.edges(), function (e) {
                return s.edgeToId(e);
              })
              .classed('update', !0),
            c = (function (e, t) {
              var i = e
                .enter()
                .append('g')
                .attr('class', 'edgePath')
                .style('opacity', 0);
              return (
                i
                  .append('path')
                  .attr('class', 'path')
                  .attr('d', function (e) {
                    var i = t.edge(e),
                      r = t.node(e.v).elem;
                    return a(
                      i,
                      n.range(i.points.length).map(function () {
                        return (
                          (t = (e = r).getBBox()),
                          {
                            x: (i = e.ownerSVGElement
                              .getScreenCTM()
                              .inverse()
                              .multiply(e.getScreenCTM())
                              .translate(t.width / 2, t.height / 2)).e,
                            y: i.f,
                          }
                        );
                        var e, t, i;
                      })
                    );
                  }),
                i.append('defs'),
                i
              );
            })(l, t);
          !(function (e, t) {
            var i = e.exit();
            s.applyTransition(i, t).style('opacity', 0).remove();
          })(l, t);
          var d = void 0 !== l.merge ? l.merge(c) : l;
          return (
            s.applyTransition(d, t).style('opacity', 1),
            d.each(function (e) {
              var i = o.select(this),
                n = t.edge(e);
              (n.elem = this),
                n.id && i.attr('id', n.id),
                s.applyClass(
                  i,
                  n.class,
                  (i.classed('update') ? 'update ' : '') + 'edgePath'
                );
            }),
            d.selectAll('path.path').each(function (e) {
              var i = t.edge(e);
              i.arrowheadId = n.uniqueId('arrowhead');
              var l = o
                .select(this)
                .attr('marker-end', function () {
                  return (
                    'url(' +
                    ((e = location.href),
                    (t = i.arrowheadId),
                    e.split('#')[0] + '#' + t + ')')
                  );
                  var e, t;
                })
                .style('fill', 'none');
              s.applyTransition(l, t).attr('d', function (e) {
                return (function (e, t) {
                  var i = e.edge(t),
                    n = e.node(t.v),
                    s = e.node(t.w),
                    o = i.points.slice(1, i.points.length - 1);
                  return (
                    o.unshift(r(n, o[0])),
                    o.push(r(s, o[o.length - 1])),
                    a(i, o)
                  );
                })(t, e);
              }),
                s.applyStyle(l, i.style);
            }),
            d.selectAll('defs *').remove(),
            d.selectAll('defs').each(function (e) {
              var n = t.edge(e);
              (0,
              i[n.arrowhead])(o.select(this), n.arrowheadId, n, 'arrowhead');
            }),
            d
          );
        };
      },
      10607: (e, t, i) => {
        'use strict';
        var n = i(91034),
          r = i(61322),
          s = i(28355),
          o = i(24322);
        e.exports = function (e, t, i) {
          var a,
            l = t.nodes().filter(function (e) {
              return !s.isSubgraph(t, e);
            }),
            c = e
              .selectAll('g.node')
              .data(l, function (e) {
                return e;
              })
              .classed('update', !0);
          return (
            c.exit().remove(),
            c.enter().append('g').attr('class', 'node').style('opacity', 0),
            (c = e.selectAll('g.node')).each(function (e) {
              var a = t.node(e),
                l = o.select(this);
              s.applyClass(
                l,
                a.class,
                (l.classed('update') ? 'update ' : '') + 'node'
              ),
                l.select('g.label').remove();
              var c = l.append('g').attr('class', 'label'),
                d = r(c, a),
                h = i[a.shape],
                u = n.pick(d.node().getBBox(), 'width', 'height');
              (a.elem = this),
                a.id && l.attr('id', a.id),
                a.labelId && c.attr('id', a.labelId),
                n.has(a, 'width') && (u.width = a.width),
                n.has(a, 'height') && (u.height = a.height),
                (u.width += a.paddingLeft + a.paddingRight),
                (u.height += a.paddingTop + a.paddingBottom),
                c.attr(
                  'transform',
                  'translate(' +
                    (a.paddingLeft - a.paddingRight) / 2 +
                    ',' +
                    (a.paddingTop - a.paddingBottom) / 2 +
                    ')'
                );
              var g = o.select(this);
              g.select('.label-container').remove();
              var f = h(g, u, a).classed('label-container', !0);
              s.applyStyle(f, a.style);
              var p = f.node().getBBox();
              (a.width = p.width), (a.height = p.height);
            }),
            (a = c.exit ? c.exit() : c.selectAll(null)),
            s.applyTransition(a, t).style('opacity', 0).remove(),
            c
          );
        };
      },
      24322: (e, t, i) => {
        var n;
        if (!n)
          try {
            n = i(69362);
          } catch (e) {}
        n || (n = window.d3), (e.exports = n);
      },
      51463: (e, t, i) => {
        var n;
        try {
          n = i(72135);
        } catch (e) {}
        n || (n = window.dagre), (e.exports = n);
      },
      66614: (e, t, i) => {
        var n;
        try {
          n = i(79550);
        } catch (e) {}
        n || (n = window.graphlib), (e.exports = n);
      },
      78114: (e, t, i) => {
        e.exports = {
          node: i(13042),
          circle: i(56587),
          ellipse: i(3260),
          polygon: i(5337),
          rect: i(98049),
        };
      },
      56587: (e, t, i) => {
        var n = i(3260);
        e.exports = function (e, t, i) {
          return n(e, t, t, i);
        };
      },
      3260: (e) => {
        e.exports = function (e, t, i, n) {
          var r = e.x,
            s = e.y,
            o = r - n.x,
            a = s - n.y,
            l = Math.sqrt(t * t * a * a + i * i * o * o),
            c = Math.abs((t * i * o) / l);
          n.x < r && (c = -c);
          var d = Math.abs((t * i * a) / l);
          return n.y < s && (d = -d), { x: r + c, y: s + d };
        };
      },
      36808: (e) => {
        function t(e, t) {
          return e * t > 0;
        }
        e.exports = function (e, i, n, r) {
          var s, o, a, l, c, d, h, u, g, f, p, m, _;
          if (
            !((s = i.y - e.y),
            (a = e.x - i.x),
            (c = i.x * e.y - e.x * i.y),
            (g = s * n.x + a * n.y + c),
            (f = s * r.x + a * r.y + c),
            (0 !== g && 0 !== f && t(g, f)) ||
              ((o = r.y - n.y),
              (l = n.x - r.x),
              (d = r.x * n.y - n.x * r.y),
              (h = o * e.x + l * e.y + d),
              (u = o * i.x + l * i.y + d),
              (0 !== h && 0 !== u && t(h, u)) || 0 == (p = s * l - o * a)))
          )
            return (
              (m = Math.abs(p / 2)),
              {
                x: (_ = a * d - l * c) < 0 ? (_ - m) / p : (_ + m) / p,
                y: (_ = o * c - s * d) < 0 ? (_ - m) / p : (_ + m) / p,
              }
            );
        };
      },
      13042: (e) => {
        e.exports = function (e, t) {
          return e.intersect(t);
        };
      },
      5337: (e, t, i) => {
        var n = i(36808);
        e.exports = function (e, t, i) {
          var r = e.x,
            s = e.y,
            o = [],
            a = Number.POSITIVE_INFINITY,
            l = Number.POSITIVE_INFINITY;
          t.forEach(function (e) {
            (a = Math.min(a, e.x)), (l = Math.min(l, e.y));
          });
          for (
            var c = r - e.width / 2 - a, d = s - e.height / 2 - l, h = 0;
            h < t.length;
            h++
          ) {
            var u = t[h],
              g = t[h < t.length - 1 ? h + 1 : 0],
              f = n(
                e,
                i,
                { x: c + u.x, y: d + u.y },
                { x: c + g.x, y: d + g.y }
              );
            f && o.push(f);
          }
          return o.length
            ? (o.length > 1 &&
                o.sort(function (e, t) {
                  var n = e.x - i.x,
                    r = e.y - i.y,
                    s = Math.sqrt(n * n + r * r),
                    o = t.x - i.x,
                    a = t.y - i.y,
                    l = Math.sqrt(o * o + a * a);
                  return s < l ? -1 : s === l ? 0 : 1;
                }),
              o[0])
            : (console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', e), e);
        };
      },
      98049: (e) => {
        e.exports = function (e, t) {
          var i,
            n,
            r = e.x,
            s = e.y,
            o = t.x - r,
            a = t.y - s,
            l = e.width / 2,
            c = e.height / 2;
          return (
            Math.abs(a) * l > Math.abs(o) * c
              ? (a < 0 && (c = -c), (i = 0 === a ? 0 : (c * o) / a), (n = c))
              : (o < 0 && (l = -l), (i = l), (n = 0 === o ? 0 : (l * a) / o)),
            { x: r + i, y: s + n }
          );
        };
      },
      88284: (e, t, i) => {
        var n = i(28355);
        e.exports = function (e, t) {
          var i = e.append('foreignObject').attr('width', '100000'),
            r = i.append('xhtml:div');
          r.attr('xmlns', 'http://www.w3.org/1999/xhtml');
          var s = t.label;
          switch (typeof s) {
            case 'function':
              r.insert(s);
              break;
            case 'object':
              r.insert(function () {
                return s;
              });
              break;
            default:
              r.html(s);
          }
          n.applyStyle(r, t.labelStyle),
            r.style('display', 'inline-block'),
            r.style('white-space', 'nowrap');
          var o = r.node().getBoundingClientRect();
          return i.attr('width', o.width).attr('height', o.height), i;
        };
      },
      61322: (e, t, i) => {
        var n = i(67318),
          r = i(88284),
          s = i(98287);
        e.exports = function (e, t, i) {
          var o = t.label,
            a = e.append('g');
          'svg' === t.labelType
            ? s(a, t)
            : 'string' != typeof o || 'html' === t.labelType
            ? r(a, t)
            : n(a, t);
          var l,
            c = a.node().getBBox();
          switch (i) {
            case 'top':
              l = -t.height / 2;
              break;
            case 'bottom':
              l = t.height / 2 - c.height;
              break;
            default:
              l = -c.height / 2;
          }
          return (
            a.attr('transform', 'translate(' + -c.width / 2 + ',' + l + ')'), a
          );
        };
      },
      98287: (e, t, i) => {
        var n = i(28355);
        e.exports = function (e, t) {
          var i = e;
          return (
            i.node().appendChild(t.label), n.applyStyle(i, t.labelStyle), i
          );
        };
      },
      67318: (e, t, i) => {
        var n = i(28355);
        e.exports = function (e, t) {
          for (
            var i = e.append('text'),
              r = (function (e) {
                for (var t, i = '', n = !1, r = 0; r < e.length; ++r)
                  if (((t = e[r]), n)) {
                    switch (t) {
                      case 'n':
                        i += '\n';
                        break;
                      default:
                        i += t;
                    }
                    n = !1;
                  } else '\\' === t ? (n = !0) : (i += t);
                return i;
              })(t.label).split('\n'),
              s = 0;
            s < r.length;
            s++
          )
            i.append('tspan')
              .attr('xml:space', 'preserve')
              .attr('dy', '1em')
              .attr('x', '1')
              .text(r[s]);
          return n.applyStyle(i, t.labelStyle), i;
        };
      },
      91034: (e, t, i) => {
        var n;
        try {
          n = {
            defaults: i(91747),
            each: i(66073),
            isFunction: i(23560),
            isPlainObject: i(68630),
            pick: i(78718),
            has: i(18721),
            range: i(96026),
            uniqueId: i(73955),
          };
        } catch (e) {}
        n || (n = window._), (e.exports = n);
      },
      26381: (e, t, i) => {
        'use strict';
        var n = i(28355),
          r = i(24322);
        e.exports = function (e, t) {
          var i = e.filter(function () {
            return !r.select(this).classed('update');
          });
          function s(e) {
            var i = t.node(e);
            return 'translate(' + i.x + ',' + i.y + ')';
          }
          i.attr('transform', s),
            n.applyTransition(e, t).style('opacity', 1).attr('transform', s),
            n
              .applyTransition(i.selectAll('rect'), t)
              .attr('width', function (e) {
                return t.node(e).width;
              })
              .attr('height', function (e) {
                return t.node(e).height;
              })
              .attr('x', function (e) {
                return -t.node(e).width / 2;
              })
              .attr('y', function (e) {
                return -t.node(e).height / 2;
              });
        };
      },
      44577: (e, t, i) => {
        'use strict';
        var n = i(28355),
          r = i(24322),
          s = i(91034);
        e.exports = function (e, t) {
          function i(e) {
            var i = t.edge(e);
            return s.has(i, 'x') ? 'translate(' + i.x + ',' + i.y + ')' : '';
          }
          e
            .filter(function () {
              return !r.select(this).classed('update');
            })
            .attr('transform', i),
            n.applyTransition(e, t).style('opacity', 1).attr('transform', i);
        };
      },
      54849: (e, t, i) => {
        'use strict';
        var n = i(28355),
          r = i(24322);
        e.exports = function (e, t) {
          function i(e) {
            var i = t.node(e);
            return 'translate(' + i.x + ',' + i.y + ')';
          }
          e
            .filter(function () {
              return !r.select(this).classed('update');
            })
            .attr('transform', i),
            n.applyTransition(e, t).style('opacity', 1).attr('transform', i);
        };
      },
      95787: (e, t, i) => {
        var n = i(91034),
          r = i(24322),
          s = i(51463).layout;
        e.exports = function () {
          var e = i(10607),
            t = i(85632),
            r = i(16315),
            c = i(70940),
            d = i(54849),
            h = i(44577),
            u = i(26381),
            g = i(54418),
            f = i(39144),
            p = function (i, p) {
              !(function (e) {
                e.nodes().forEach(function (t) {
                  var i = e.node(t);
                  n.has(i, 'label') || e.children(t).length || (i.label = t),
                    n.has(i, 'paddingX') &&
                      n.defaults(i, {
                        paddingLeft: i.paddingX,
                        paddingRight: i.paddingX,
                      }),
                    n.has(i, 'paddingY') &&
                      n.defaults(i, {
                        paddingTop: i.paddingY,
                        paddingBottom: i.paddingY,
                      }),
                    n.has(i, 'padding') &&
                      n.defaults(i, {
                        paddingLeft: i.padding,
                        paddingRight: i.padding,
                        paddingTop: i.padding,
                        paddingBottom: i.padding,
                      }),
                    n.defaults(i, o),
                    n.each(
                      [
                        'paddingLeft',
                        'paddingRight',
                        'paddingTop',
                        'paddingBottom',
                      ],
                      function (e) {
                        i[e] = Number(i[e]);
                      }
                    ),
                    n.has(i, 'width') && (i._prevWidth = i.width),
                    n.has(i, 'height') && (i._prevHeight = i.height);
                }),
                  e.edges().forEach(function (t) {
                    var i = e.edge(t);
                    n.has(i, 'label') || (i.label = ''), n.defaults(i, a);
                  });
              })(p);
              var m = l(i, 'output'),
                _ = l(m, 'clusters'),
                b = l(m, 'edgePaths'),
                v = r(l(m, 'edgeLabels'), p),
                y = e(l(m, 'nodes'), p, g);
              s(p), d(y, p), h(v, p), c(b, p, f);
              var w = t(_, p);
              u(w, p),
                (function (e) {
                  n.each(e.nodes(), function (t) {
                    var i = e.node(t);
                    n.has(i, '_prevWidth')
                      ? (i.width = i._prevWidth)
                      : delete i.width,
                      n.has(i, '_prevHeight')
                        ? (i.height = i._prevHeight)
                        : delete i.height,
                      delete i._prevWidth,
                      delete i._prevHeight;
                  });
                })(p);
            };
          return (
            (p.createNodes = function (t) {
              return arguments.length ? ((e = t), p) : e;
            }),
            (p.createClusters = function (e) {
              return arguments.length ? ((t = e), p) : t;
            }),
            (p.createEdgeLabels = function (e) {
              return arguments.length ? ((r = e), p) : r;
            }),
            (p.createEdgePaths = function (e) {
              return arguments.length ? ((c = e), p) : c;
            }),
            (p.shapes = function (e) {
              return arguments.length ? ((g = e), p) : g;
            }),
            (p.arrows = function (e) {
              return arguments.length ? ((f = e), p) : f;
            }),
            p
          );
        };
        var o = {
            paddingLeft: 10,
            paddingRight: 10,
            paddingTop: 10,
            paddingBottom: 10,
            rx: 0,
            ry: 0,
            shape: 'rect',
          },
          a = { arrowhead: 'normal', curve: r.curveLinear };
        function l(e, t) {
          var i = e.select('g.' + t);
          return i.empty() && (i = e.append('g').attr('class', t)), i;
        }
      },
      54418: (e, t, i) => {
        'use strict';
        var n = i(98049),
          r = i(3260),
          s = i(56587),
          o = i(5337);
        e.exports = {
          rect: function (e, t, i) {
            var r = e
              .insert('rect', ':first-child')
              .attr('rx', i.rx)
              .attr('ry', i.ry)
              .attr('x', -t.width / 2)
              .attr('y', -t.height / 2)
              .attr('width', t.width)
              .attr('height', t.height);
            return (
              (i.intersect = function (e) {
                return n(i, e);
              }),
              r
            );
          },
          ellipse: function (e, t, i) {
            var n = t.width / 2,
              s = t.height / 2,
              o = e
                .insert('ellipse', ':first-child')
                .attr('x', -t.width / 2)
                .attr('y', -t.height / 2)
                .attr('rx', n)
                .attr('ry', s);
            return (
              (i.intersect = function (e) {
                return r(i, n, s, e);
              }),
              o
            );
          },
          circle: function (e, t, i) {
            var n = Math.max(t.width, t.height) / 2,
              r = e
                .insert('circle', ':first-child')
                .attr('x', -t.width / 2)
                .attr('y', -t.height / 2)
                .attr('r', n);
            return (
              (i.intersect = function (e) {
                return s(i, n, e);
              }),
              r
            );
          },
          diamond: function (e, t, i) {
            var n = (t.width * Math.SQRT2) / 2,
              r = (t.height * Math.SQRT2) / 2,
              s = [
                { x: 0, y: -r },
                { x: -n, y: 0 },
                { x: 0, y: r },
                { x: n, y: 0 },
              ],
              a = e.insert('polygon', ':first-child').attr(
                'points',
                s
                  .map(function (e) {
                    return e.x + ',' + e.y;
                  })
                  .join(' ')
              );
            return (
              (i.intersect = function (e) {
                return o(i, s, e);
              }),
              a
            );
          },
        };
      },
      28355: (e, t, i) => {
        var n = i(91034);
        e.exports = {
          isSubgraph: function (e, t) {
            return !!e.children(t).length;
          },
          edgeToId: function (e) {
            return s(e.v) + ':' + s(e.w) + ':' + s(e.name);
          },
          applyStyle: function (e, t) {
            t && e.attr('style', t);
          },
          applyClass: function (e, t, i) {
            t && e.attr('class', t).attr('class', i + ' ' + e.attr('class'));
          },
          applyTransition: function (e, t) {
            var i = t.graph();
            if (n.isPlainObject(i)) {
              var r = i.transition;
              if (n.isFunction(r)) return r(e);
            }
            return e;
          },
        };
        var r = /:/g;
        function s(e) {
          return e ? String(e).replace(r, '\\:') : '';
        }
      },
      55689: (e) => {
        e.exports = '0.6.4';
      },
      72135: (e, t, i) => {
        e.exports = {
          graphlib: i(33653),
          layout: i(23946),
          debug: i(76181),
          util: { time: i(65029).time, notime: i(65029).notime },
          version: i(96350),
        };
      },
      33717: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(16487);
        e.exports = {
          run: function (e) {
            var t =
              'greedy' === e.graph().acyclicer
                ? r(
                    e,
                    (function (e) {
                      return function (t) {
                        return e.edge(t).weight;
                      };
                    })(e)
                  )
                : (function (e) {
                    var t = [],
                      i = {},
                      r = {};
                    return (
                      n.forEach(e.nodes(), function s(o) {
                        n.has(r, o) ||
                          ((r[o] = !0),
                          (i[o] = !0),
                          n.forEach(e.outEdges(o), function (e) {
                            n.has(i, e.w) ? t.push(e) : s(e.w);
                          }),
                          delete i[o]);
                      }),
                      t
                    );
                  })(e);
            n.forEach(t, function (t) {
              var i = e.edge(t);
              e.removeEdge(t),
                (i.forwardName = t.name),
                (i.reversed = !0),
                e.setEdge(t.w, t.v, i, n.uniqueId('rev'));
            });
          },
          undo: function (e) {
            n.forEach(e.edges(), function (t) {
              var i = e.edge(t);
              if (i.reversed) {
                e.removeEdge(t);
                var n = i.forwardName;
                delete i.reversed,
                  delete i.forwardName,
                  e.setEdge(t.w, t.v, i, n);
              }
            });
          },
        };
      },
      52226: (e, t, i) => {
        var n = i(29603),
          r = i(65029);
        function s(e, t, i, n, s, o) {
          var a = { width: 0, height: 0, rank: o, borderType: t },
            l = s[t][o - 1],
            c = r.addDummyNode(e, 'border', a, i);
          (s[t][o] = c), e.setParent(c, n), l && e.setEdge(l, c, { weight: 1 });
        }
        e.exports = function (e) {
          n.forEach(e.children(), function t(i) {
            var r = e.children(i),
              o = e.node(i);
            if ((r.length && n.forEach(r, t), n.has(o, 'minRank'))) {
              (o.borderLeft = []), (o.borderRight = []);
              for (var a = o.minRank, l = o.maxRank + 1; a < l; ++a)
                s(e, 'borderLeft', '_bl', i, o, a),
                  s(e, 'borderRight', '_br', i, o, a);
            }
          });
        };
      },
      64181: (e, t, i) => {
        'use strict';
        var n = i(29603);
        function r(e) {
          n.forEach(e.nodes(), function (t) {
            s(e.node(t));
          }),
            n.forEach(e.edges(), function (t) {
              s(e.edge(t));
            });
        }
        function s(e) {
          var t = e.width;
          (e.width = e.height), (e.height = t);
        }
        function o(e) {
          e.y = -e.y;
        }
        function a(e) {
          var t = e.x;
          (e.x = e.y), (e.y = t);
        }
        e.exports = {
          adjust: function (e) {
            var t = e.graph().rankdir.toLowerCase();
            ('lr' !== t && 'rl' !== t) || r(e);
          },
          undo: function (e) {
            var t = e.graph().rankdir.toLowerCase();
            ('bt' !== t && 'rl' !== t) ||
              (function (e) {
                n.forEach(e.nodes(), function (t) {
                  o(e.node(t));
                }),
                  n.forEach(e.edges(), function (t) {
                    var i = e.edge(t);
                    n.forEach(i.points, o), n.has(i, 'y') && o(i);
                  });
              })(e),
              ('lr' !== t && 'rl' !== t) ||
                ((function (e) {
                  n.forEach(e.nodes(), function (t) {
                    a(e.node(t));
                  }),
                    n.forEach(e.edges(), function (t) {
                      var i = e.edge(t);
                      n.forEach(i.points, a), n.has(i, 'x') && a(i);
                    });
                })(e),
                r(e));
          },
        };
      },
      21210: (e) => {
        function t() {
          var e = {};
          (e._next = e._prev = e), (this._sentinel = e);
        }
        function i(e) {
          (e._prev._next = e._next),
            (e._next._prev = e._prev),
            delete e._next,
            delete e._prev;
        }
        function n(e, t) {
          if ('_next' !== e && '_prev' !== e) return t;
        }
        (e.exports = t),
          (t.prototype.dequeue = function () {
            var e = this._sentinel,
              t = e._prev;
            if (t !== e) return i(t), t;
          }),
          (t.prototype.enqueue = function (e) {
            var t = this._sentinel;
            e._prev && e._next && i(e),
              (e._next = t._next),
              (t._next._prev = e),
              (t._next = e),
              (e._prev = t);
          }),
          (t.prototype.toString = function () {
            for (var e = [], t = this._sentinel, i = t._prev; i !== t; )
              e.push(JSON.stringify(i, n)), (i = i._prev);
            return '[' + e.join(', ') + ']';
          });
      },
      76181: (e, t, i) => {
        var n = i(29603),
          r = i(65029),
          s = i(33653).Graph;
        e.exports = {
          debugOrdering: function (e) {
            var t = r.buildLayerMatrix(e),
              i = new s({ compound: !0, multigraph: !0 }).setGraph({});
            return (
              n.forEach(e.nodes(), function (t) {
                i.setNode(t, { label: t }),
                  i.setParent(t, 'layer' + e.node(t).rank);
              }),
              n.forEach(e.edges(), function (e) {
                i.setEdge(e.v, e.w, {}, e.name);
              }),
              n.forEach(t, function (e, t) {
                var r = 'layer' + t;
                i.setNode(r, { rank: 'same' }),
                  n.reduce(e, function (e, t) {
                    return i.setEdge(e, t, { style: 'invis' }), t;
                  });
              }),
              i
            );
          },
        };
      },
      33653: (e, t, i) => {
        var n;
        try {
          n = i(79550);
        } catch (e) {}
        n || (n = window.graphlib), (e.exports = n);
      },
      16487: (e, t, i) => {
        var n = i(29603),
          r = i(33653).Graph,
          s = i(21210);
        e.exports = function (e, t) {
          if (e.nodeCount() <= 1) return [];
          var i = (function (e, t) {
              var i = new r(),
                o = 0,
                a = 0;
              n.forEach(e.nodes(), function (e) {
                i.setNode(e, { v: e, in: 0, out: 0 });
              }),
                n.forEach(e.edges(), function (e) {
                  var n = i.edge(e.v, e.w) || 0,
                    r = t(e),
                    s = n + r;
                  i.setEdge(e.v, e.w, s),
                    (a = Math.max(a, (i.node(e.v).out += r))),
                    (o = Math.max(o, (i.node(e.w).in += r)));
                });
              var c = n.range(a + o + 3).map(function () {
                  return new s();
                }),
                d = o + 1;
              return (
                n.forEach(i.nodes(), function (e) {
                  l(c, d, i.node(e));
                }),
                { graph: i, buckets: c, zeroIdx: d }
              );
            })(e, t || o),
            c = (function (e, t, i) {
              for (
                var n, r = [], s = t[t.length - 1], o = t[0];
                e.nodeCount();

              ) {
                for (; (n = o.dequeue()); ) a(e, t, i, n);
                for (; (n = s.dequeue()); ) a(e, t, i, n);
                if (e.nodeCount())
                  for (var l = t.length - 2; l > 0; --l)
                    if ((n = t[l].dequeue())) {
                      r = r.concat(a(e, t, i, n, !0));
                      break;
                    }
              }
              return r;
            })(i.graph, i.buckets, i.zeroIdx);
          return n.flatten(
            n.map(c, function (t) {
              return e.outEdges(t.v, t.w);
            }),
            !0
          );
        };
        var o = n.constant(1);
        function a(e, t, i, r, s) {
          var o = s ? [] : void 0;
          return (
            n.forEach(e.inEdges(r.v), function (n) {
              var r = e.edge(n),
                a = e.node(n.v);
              s && o.push({ v: n.v, w: n.w }), (a.out -= r), l(t, i, a);
            }),
            n.forEach(e.outEdges(r.v), function (n) {
              var r = e.edge(n),
                s = n.w,
                o = e.node(s);
              (o.in -= r), l(t, i, o);
            }),
            e.removeNode(r.v),
            o
          );
        }
        function l(e, t, i) {
          i.out
            ? i.in
              ? e[i.out - i.in + t].enqueue(i)
              : e[e.length - 1].enqueue(i)
            : e[0].enqueue(i);
        }
      },
      23946: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(33717),
          s = i(75399),
          o = i(26833),
          a = i(65029).normalizeRanks,
          l = i(65891),
          c = i(65029).removeEmptyRanks,
          d = i(33956),
          h = i(52226),
          u = i(64181),
          g = i(18095),
          f = i(86587),
          p = i(65029),
          m = i(33653).Graph;
        e.exports = function (e, t) {
          var i = t && t.debugTiming ? p.time : p.notime;
          i('layout', function () {
            var t = i('  buildLayoutGraph', function () {
              return (function (e) {
                var t = new m({ multigraph: !0, compound: !0 }),
                  i = L(e.graph());
                return (
                  t.setGraph(n.merge({}, b, x(i, _), n.pick(i, v))),
                  n.forEach(e.nodes(), function (i) {
                    var r = L(e.node(i));
                    t.setNode(i, n.defaults(x(r, y), w)),
                      t.setParent(i, e.parent(i));
                  }),
                  n.forEach(e.edges(), function (i) {
                    var r = L(e.edge(i));
                    t.setEdge(i, n.merge({}, S, x(r, C), n.pick(r, k)));
                  }),
                  t
                );
              })(e);
            });
            i('  runLayout', function () {
              !(function (e, t) {
                t('    makeSpaceForEdgeLabels', function () {
                  !(function (e) {
                    var t = e.graph();
                    (t.ranksep /= 2),
                      n.forEach(e.edges(), function (i) {
                        var n = e.edge(i);
                        (n.minlen *= 2),
                          'c' !== n.labelpos.toLowerCase() &&
                            ('TB' === t.rankdir || 'BT' === t.rankdir
                              ? (n.width += n.labeloffset)
                              : (n.height += n.labeloffset));
                      });
                  })(e);
                }),
                  t('    removeSelfEdges', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        if (t.v === t.w) {
                          var i = e.node(t.v);
                          i.selfEdges || (i.selfEdges = []),
                            i.selfEdges.push({ e: t, label: e.edge(t) }),
                            e.removeEdge(t);
                        }
                      });
                    })(e);
                  }),
                  t('    acyclic', function () {
                    r.run(e);
                  }),
                  t('    nestingGraph.run', function () {
                    d.run(e);
                  }),
                  t('    rank', function () {
                    o(p.asNonCompoundGraph(e));
                  }),
                  t('    injectEdgeLabelProxies', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i = e.edge(t);
                        if (i.width && i.height) {
                          var n = e.node(t.v),
                            r = {
                              rank: (e.node(t.w).rank - n.rank) / 2 + n.rank,
                              e: t,
                            };
                          p.addDummyNode(e, 'edge-proxy', r, '_ep');
                        }
                      });
                    })(e);
                  }),
                  t('    removeEmptyRanks', function () {
                    c(e);
                  }),
                  t('    nestingGraph.cleanup', function () {
                    d.cleanup(e);
                  }),
                  t('    normalizeRanks', function () {
                    a(e);
                  }),
                  t('    assignRankMinMax', function () {
                    !(function (e) {
                      var t = 0;
                      n.forEach(e.nodes(), function (i) {
                        var r = e.node(i);
                        r.borderTop &&
                          ((r.minRank = e.node(r.borderTop).rank),
                          (r.maxRank = e.node(r.borderBottom).rank),
                          (t = n.max(t, r.maxRank)));
                      }),
                        (e.graph().maxRank = t);
                    })(e);
                  }),
                  t('    removeEdgeLabelProxies', function () {
                    !(function (e) {
                      n.forEach(e.nodes(), function (t) {
                        var i = e.node(t);
                        'edge-proxy' === i.dummy &&
                          ((e.edge(i.e).labelRank = i.rank), e.removeNode(t));
                      });
                    })(e);
                  }),
                  t('    normalize.run', function () {
                    s.run(e);
                  }),
                  t('    parentDummyChains', function () {
                    l(e);
                  }),
                  t('    addBorderSegments', function () {
                    h(e);
                  }),
                  t('    order', function () {
                    g(e);
                  }),
                  t('    insertSelfEdges', function () {
                    !(function (e) {
                      var t = p.buildLayerMatrix(e);
                      n.forEach(t, function (t) {
                        var i = 0;
                        n.forEach(t, function (t, r) {
                          var s = e.node(t);
                          (s.order = r + i),
                            n.forEach(s.selfEdges, function (t) {
                              p.addDummyNode(
                                e,
                                'selfedge',
                                {
                                  width: t.label.width,
                                  height: t.label.height,
                                  rank: s.rank,
                                  order: r + ++i,
                                  e: t.e,
                                  label: t.label,
                                },
                                '_se'
                              );
                            }),
                            delete s.selfEdges;
                        });
                      });
                    })(e);
                  }),
                  t('    adjustCoordinateSystem', function () {
                    u.adjust(e);
                  }),
                  t('    position', function () {
                    f(e);
                  }),
                  t('    positionSelfEdges', function () {
                    !(function (e) {
                      n.forEach(e.nodes(), function (t) {
                        var i = e.node(t);
                        if ('selfedge' === i.dummy) {
                          var n = e.node(i.e.v),
                            r = n.x + n.width / 2,
                            s = n.y,
                            o = i.x - r,
                            a = n.height / 2;
                          e.setEdge(i.e, i.label),
                            e.removeNode(t),
                            (i.label.points = [
                              { x: r + (2 * o) / 3, y: s - a },
                              { x: r + (5 * o) / 6, y: s - a },
                              { x: r + o, y: s },
                              { x: r + (5 * o) / 6, y: s + a },
                              { x: r + (2 * o) / 3, y: s + a },
                            ]),
                            (i.label.x = i.x),
                            (i.label.y = i.y);
                        }
                      });
                    })(e);
                  }),
                  t('    removeBorderNodes', function () {
                    !(function (e) {
                      n.forEach(e.nodes(), function (t) {
                        if (e.children(t).length) {
                          var i = e.node(t),
                            r = e.node(i.borderTop),
                            s = e.node(i.borderBottom),
                            o = e.node(n.last(i.borderLeft)),
                            a = e.node(n.last(i.borderRight));
                          (i.width = Math.abs(a.x - o.x)),
                            (i.height = Math.abs(s.y - r.y)),
                            (i.x = o.x + i.width / 2),
                            (i.y = r.y + i.height / 2);
                        }
                      }),
                        n.forEach(e.nodes(), function (t) {
                          'border' === e.node(t).dummy && e.removeNode(t);
                        });
                    })(e);
                  }),
                  t('    normalize.undo', function () {
                    s.undo(e);
                  }),
                  t('    fixupEdgeLabelCoords', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i = e.edge(t);
                        if (n.has(i, 'x'))
                          switch (
                            (('l' !== i.labelpos && 'r' !== i.labelpos) ||
                              (i.width -= i.labeloffset),
                            i.labelpos)
                          ) {
                            case 'l':
                              i.x -= i.width / 2 + i.labeloffset;
                              break;
                            case 'r':
                              i.x += i.width / 2 + i.labeloffset;
                          }
                      });
                    })(e);
                  }),
                  t('    undoCoordinateSystem', function () {
                    u.undo(e);
                  }),
                  t('    translateGraph', function () {
                    !(function (e) {
                      var t = Number.POSITIVE_INFINITY,
                        i = 0,
                        r = Number.POSITIVE_INFINITY,
                        s = 0,
                        o = e.graph(),
                        a = o.marginx || 0,
                        l = o.marginy || 0;
                      function c(e) {
                        var n = e.x,
                          o = e.y,
                          a = e.width,
                          l = e.height;
                        (t = Math.min(t, n - a / 2)),
                          (i = Math.max(i, n + a / 2)),
                          (r = Math.min(r, o - l / 2)),
                          (s = Math.max(s, o + l / 2));
                      }
                      n.forEach(e.nodes(), function (t) {
                        c(e.node(t));
                      }),
                        n.forEach(e.edges(), function (t) {
                          var i = e.edge(t);
                          n.has(i, 'x') && c(i);
                        }),
                        (t -= a),
                        (r -= l),
                        n.forEach(e.nodes(), function (i) {
                          var n = e.node(i);
                          (n.x -= t), (n.y -= r);
                        }),
                        n.forEach(e.edges(), function (i) {
                          var s = e.edge(i);
                          n.forEach(s.points, function (e) {
                            (e.x -= t), (e.y -= r);
                          }),
                            n.has(s, 'x') && (s.x -= t),
                            n.has(s, 'y') && (s.y -= r);
                        }),
                        (o.width = i - t + a),
                        (o.height = s - r + l);
                    })(e);
                  }),
                  t('    assignNodeIntersects', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i,
                          n,
                          r = e.edge(t),
                          s = e.node(t.v),
                          o = e.node(t.w);
                        r.points
                          ? ((i = r.points[0]),
                            (n = r.points[r.points.length - 1]))
                          : ((r.points = []), (i = o), (n = s)),
                          r.points.unshift(p.intersectRect(s, i)),
                          r.points.push(p.intersectRect(o, n));
                      });
                    })(e);
                  }),
                  t('    reversePoints', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i = e.edge(t);
                        i.reversed && i.points.reverse();
                      });
                    })(e);
                  }),
                  t('    acyclic.undo', function () {
                    r.undo(e);
                  });
              })(t, i);
            }),
              i('  updateInputGraph', function () {
                !(function (e, t) {
                  n.forEach(e.nodes(), function (i) {
                    var n = e.node(i),
                      r = t.node(i);
                    n &&
                      ((n.x = r.x),
                      (n.y = r.y),
                      t.children(i).length &&
                        ((n.width = r.width), (n.height = r.height)));
                  }),
                    n.forEach(e.edges(), function (i) {
                      var r = e.edge(i),
                        s = t.edge(i);
                      (r.points = s.points),
                        n.has(s, 'x') && ((r.x = s.x), (r.y = s.y));
                    }),
                    (e.graph().width = t.graph().width),
                    (e.graph().height = t.graph().height);
                })(e, t);
              });
          });
        };
        var _ = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'],
          b = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' },
          v = ['acyclicer', 'ranker', 'rankdir', 'align'],
          y = ['width', 'height'],
          w = { width: 0, height: 0 },
          C = ['minlen', 'weight', 'width', 'height', 'labeloffset'],
          S = {
            minlen: 1,
            weight: 1,
            width: 0,
            height: 0,
            labeloffset: 10,
            labelpos: 'r',
          },
          k = ['labelpos'];
        function x(e, t) {
          return n.mapValues(n.pick(e, t), Number);
        }
        function L(e) {
          var t = {};
          return (
            n.forEach(e, function (e, i) {
              t[i.toLowerCase()] = e;
            }),
            t
          );
        }
      },
      29603: (e, t, i) => {
        var n;
        try {
          n = {
            cloneDeep: i(50361),
            constant: i(75703),
            defaults: i(91747),
            each: i(66073),
            filter: i(63105),
            find: i(13311),
            flatten: i(85564),
            forEach: i(84486),
            forIn: i(62620),
            has: i(18721),
            isUndefined: i(52353),
            last: i(10928),
            map: i(35161),
            mapValues: i(66604),
            max: i(6162),
            merge: i(82492),
            min: i(53632),
            minBy: i(22762),
            now: i(7771),
            pick: i(78718),
            range: i(96026),
            reduce: i(54061),
            sortBy: i(89734),
            uniqueId: i(73955),
            values: i(52628),
            zipObject: i(7287),
          };
        } catch (e) {}
        n || (n = window._), (e.exports = n);
      },
      33956: (e, t, i) => {
        var n = i(29603),
          r = i(65029);
        function s(e, t, i, o, a, l, c) {
          var d = e.children(c);
          if (d.length) {
            var h = r.addBorderNode(e, '_bt'),
              u = r.addBorderNode(e, '_bb'),
              g = e.node(c);
            e.setParent(h, c),
              (g.borderTop = h),
              e.setParent(u, c),
              (g.borderBottom = u),
              n.forEach(d, function (n) {
                s(e, t, i, o, a, l, n);
                var r = e.node(n),
                  d = r.borderTop ? r.borderTop : n,
                  g = r.borderBottom ? r.borderBottom : n,
                  f = r.borderTop ? o : 2 * o,
                  p = d !== g ? 1 : a - l[c] + 1;
                e.setEdge(h, d, { weight: f, minlen: p, nestingEdge: !0 }),
                  e.setEdge(g, u, { weight: f, minlen: p, nestingEdge: !0 });
              }),
              e.parent(c) || e.setEdge(t, h, { weight: 0, minlen: a + l[c] });
          } else c !== t && e.setEdge(t, c, { weight: 0, minlen: i });
        }
        e.exports = {
          run: function (e) {
            var t = r.addDummyNode(e, 'root', {}, '_root'),
              i = (function (e) {
                var t = {};
                function i(r, s) {
                  var o = e.children(r);
                  o &&
                    o.length &&
                    n.forEach(o, function (e) {
                      i(e, s + 1);
                    }),
                    (t[r] = s);
                }
                return (
                  n.forEach(e.children(), function (e) {
                    i(e, 1);
                  }),
                  t
                );
              })(e),
              o = n.max(n.values(i)) - 1,
              a = 2 * o + 1;
            (e.graph().nestingRoot = t),
              n.forEach(e.edges(), function (t) {
                e.edge(t).minlen *= a;
              });
            var l =
              (function (e) {
                return n.reduce(
                  e.edges(),
                  function (t, i) {
                    return t + e.edge(i).weight;
                  },
                  0
                );
              })(e) + 1;
            n.forEach(e.children(), function (n) {
              s(e, t, a, l, o, i, n);
            }),
              (e.graph().nodeRankFactor = a);
          },
          cleanup: function (e) {
            var t = e.graph();
            e.removeNode(t.nestingRoot),
              delete t.nestingRoot,
              n.forEach(e.edges(), function (t) {
                e.edge(t).nestingEdge && e.removeEdge(t);
              });
          },
        };
      },
      75399: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(65029);
        e.exports = {
          run: function (e) {
            (e.graph().dummyChains = []),
              n.forEach(e.edges(), function (t) {
                !(function (e, t) {
                  var i,
                    n,
                    s,
                    o = t.v,
                    a = e.node(o).rank,
                    l = t.w,
                    c = e.node(l).rank,
                    d = t.name,
                    h = e.edge(t),
                    u = h.labelRank;
                  if (c !== a + 1) {
                    for (e.removeEdge(t), s = 0, ++a; a < c; ++s, ++a)
                      (h.points = []),
                        (n = {
                          width: 0,
                          height: 0,
                          edgeLabel: h,
                          edgeObj: t,
                          rank: a,
                        }),
                        (i = r.addDummyNode(e, 'edge', n, '_d')),
                        a === u &&
                          ((n.width = h.width),
                          (n.height = h.height),
                          (n.dummy = 'edge-label'),
                          (n.labelpos = h.labelpos)),
                        e.setEdge(o, i, { weight: h.weight }, d),
                        0 === s && e.graph().dummyChains.push(i),
                        (o = i);
                    e.setEdge(o, l, { weight: h.weight }, d);
                  }
                })(e, t);
              });
          },
          undo: function (e) {
            n.forEach(e.graph().dummyChains, function (t) {
              var i,
                n = e.node(t),
                r = n.edgeLabel;
              for (e.setEdge(n.edgeObj, r); n.dummy; )
                (i = e.successors(t)[0]),
                  e.removeNode(t),
                  r.points.push({ x: n.x, y: n.y }),
                  'edge-label' === n.dummy &&
                    ((r.x = n.x),
                    (r.y = n.y),
                    (r.width = n.width),
                    (r.height = n.height)),
                  (t = i),
                  (n = e.node(t));
            });
          },
        };
      },
      67266: (e, t, i) => {
        var n = i(29603);
        e.exports = function (e, t, i) {
          var r,
            s = {};
          n.forEach(i, function (i) {
            for (var n, o, a = e.parent(i); a; ) {
              if (
                ((n = e.parent(a))
                  ? ((o = s[n]), (s[n] = a))
                  : ((o = r), (r = a)),
                o && o !== a)
              )
                return void t.setEdge(o, a);
              a = n;
            }
          });
        };
      },
      57210: (e, t, i) => {
        var n = i(29603);
        e.exports = function (e, t) {
          return n.map(t, function (t) {
            var i = e.inEdges(t);
            if (i.length) {
              var r = n.reduce(
                i,
                function (t, i) {
                  var n = e.edge(i),
                    r = e.node(i.v);
                  return {
                    sum: t.sum + n.weight * r.order,
                    weight: t.weight + n.weight,
                  };
                },
                { sum: 0, weight: 0 }
              );
              return { v: t, barycenter: r.sum / r.weight, weight: r.weight };
            }
            return { v: t };
          });
        };
      },
      78007: (e, t, i) => {
        var n = i(29603),
          r = i(33653).Graph;
        e.exports = function (e, t, i) {
          var s = (function (e) {
              for (var t; e.hasNode((t = n.uniqueId('_root'))); );
              return t;
            })(e),
            o = new r({ compound: !0 })
              .setGraph({ root: s })
              .setDefaultNodeLabel(function (t) {
                return e.node(t);
              });
          return (
            n.forEach(e.nodes(), function (r) {
              var a = e.node(r),
                l = e.parent(r);
              (a.rank === t || (a.minRank <= t && t <= a.maxRank)) &&
                (o.setNode(r),
                o.setParent(r, l || s),
                n.forEach(e[i](r), function (t) {
                  var i = t.v === r ? t.w : t.v,
                    s = o.edge(i, r),
                    a = n.isUndefined(s) ? 0 : s.weight;
                  o.setEdge(i, r, { weight: e.edge(t).weight + a });
                }),
                n.has(a, 'minRank') &&
                  o.setNode(r, {
                    borderLeft: a.borderLeft[t],
                    borderRight: a.borderRight[t],
                  }));
            }),
            o
          );
        };
      },
      20434: (e, t, i) => {
        'use strict';
        var n = i(29603);
        function r(e, t, i) {
          for (
            var r = n.zipObject(
                i,
                n.map(i, function (e, t) {
                  return t;
                })
              ),
              s = n.flatten(
                n.map(t, function (t) {
                  return n.sortBy(
                    n.map(e.outEdges(t), function (t) {
                      return { pos: r[t.w], weight: e.edge(t).weight };
                    }),
                    'pos'
                  );
                }),
                !0
              ),
              o = 1;
            o < i.length;

          )
            o <<= 1;
          var a = 2 * o - 1;
          o -= 1;
          var l = n.map(new Array(a), function () {
              return 0;
            }),
            c = 0;
          return (
            n.forEach(
              s.forEach(function (e) {
                var t = e.pos + o;
                l[t] += e.weight;
                for (var i = 0; t > 0; )
                  t % 2 && (i += l[t + 1]), (l[(t = (t - 1) >> 1)] += e.weight);
                c += e.weight * i;
              })
            ),
            c
          );
        }
        e.exports = function (e, t) {
          for (var i = 0, n = 1; n < t.length; ++n) i += r(e, t[n - 1], t[n]);
          return i;
        };
      },
      18095: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(48559),
          s = i(20434),
          o = i(40373),
          a = i(78007),
          l = i(67266),
          c = i(33653).Graph,
          d = i(65029);
        function h(e, t, i) {
          return n.map(t, function (t) {
            return a(e, t, i);
          });
        }
        function u(e, t) {
          var i = new c();
          n.forEach(e, function (e) {
            var r = e.graph().root,
              s = o(e, r, i, t);
            n.forEach(s.vs, function (t, i) {
              e.node(t).order = i;
            }),
              l(e, i, s.vs);
          });
        }
        function g(e, t) {
          n.forEach(t, function (t) {
            n.forEach(t, function (t, i) {
              e.node(t).order = i;
            });
          });
        }
        e.exports = function (e) {
          var t = d.maxRank(e),
            i = h(e, n.range(1, t + 1), 'inEdges'),
            o = h(e, n.range(t - 1, -1, -1), 'outEdges'),
            a = r(e);
          g(e, a);
          for (
            var l, c = Number.POSITIVE_INFINITY, f = 0, p = 0;
            p < 4;
            ++f, ++p
          ) {
            u(f % 2 ? i : o, f % 4 >= 2), (a = d.buildLayerMatrix(e));
            var m = s(e, a);
            m < c && ((p = 0), (l = n.cloneDeep(a)), (c = m));
          }
          g(e, l);
        };
      },
      48559: (e, t, i) => {
        'use strict';
        var n = i(29603);
        e.exports = function (e) {
          var t = {},
            i = n.filter(e.nodes(), function (t) {
              return !e.children(t).length;
            }),
            r = n.max(
              n.map(i, function (t) {
                return e.node(t).rank;
              })
            ),
            s = n.map(n.range(r + 1), function () {
              return [];
            }),
            o = n.sortBy(i, function (t) {
              return e.node(t).rank;
            });
          return (
            n.forEach(o, function i(r) {
              if (!n.has(t, r)) {
                t[r] = !0;
                var o = e.node(r);
                s[o.rank].push(r), n.forEach(e.successors(r), i);
              }
            }),
            s
          );
        };
      },
      91058: (e, t, i) => {
        'use strict';
        var n = i(29603);
        e.exports = function (e, t) {
          var i = {};
          return (
            n.forEach(e, function (e, t) {
              var r = (i[e.v] = {
                indegree: 0,
                in: [],
                out: [],
                vs: [e.v],
                i: t,
              });
              n.isUndefined(e.barycenter) ||
                ((r.barycenter = e.barycenter), (r.weight = e.weight));
            }),
            n.forEach(t.edges(), function (e) {
              var t = i[e.v],
                r = i[e.w];
              n.isUndefined(t) ||
                n.isUndefined(r) ||
                (r.indegree++, t.out.push(i[e.w]));
            }),
            (function (e) {
              var t = [];
              function i(e) {
                return function (t) {
                  var i, r, s, o;
                  t.merged ||
                    ((n.isUndefined(t.barycenter) ||
                      n.isUndefined(e.barycenter) ||
                      t.barycenter >= e.barycenter) &&
                      ((r = t),
                      (s = 0),
                      (o = 0),
                      (i = e).weight &&
                        ((s += i.barycenter * i.weight), (o += i.weight)),
                      r.weight &&
                        ((s += r.barycenter * r.weight), (o += r.weight)),
                      (i.vs = r.vs.concat(i.vs)),
                      (i.barycenter = s / o),
                      (i.weight = o),
                      (i.i = Math.min(r.i, i.i)),
                      (r.merged = !0)));
                };
              }
              function r(t) {
                return function (i) {
                  i.in.push(t), 0 == --i.indegree && e.push(i);
                };
              }
              for (; e.length; ) {
                var s = e.pop();
                t.push(s),
                  n.forEach(s.in.reverse(), i(s)),
                  n.forEach(s.out, r(s));
              }
              return n.map(
                n.filter(t, function (e) {
                  return !e.merged;
                }),
                function (e) {
                  return n.pick(e, ['vs', 'i', 'barycenter', 'weight']);
                }
              );
            })(
              n.filter(i, function (e) {
                return !e.indegree;
              })
            )
          );
        };
      },
      40373: (e, t, i) => {
        var n = i(29603),
          r = i(57210),
          s = i(91058),
          o = i(96779);
        e.exports = function e(t, i, a, l) {
          var c = t.children(i),
            d = t.node(i),
            h = d ? d.borderLeft : void 0,
            u = d ? d.borderRight : void 0,
            g = {};
          h &&
            (c = n.filter(c, function (e) {
              return e !== h && e !== u;
            }));
          var f = r(t, c);
          n.forEach(f, function (i) {
            if (t.children(i.v).length) {
              var r = e(t, i.v, a, l);
              (g[i.v] = r),
                n.has(r, 'barycenter') &&
                  ((s = i),
                  (o = r),
                  n.isUndefined(s.barycenter)
                    ? ((s.barycenter = o.barycenter), (s.weight = o.weight))
                    : ((s.barycenter =
                        (s.barycenter * s.weight + o.barycenter * o.weight) /
                        (s.weight + o.weight)),
                      (s.weight += o.weight)));
            }
            var s, o;
          });
          var p = s(f, a);
          !(function (e, t) {
            n.forEach(e, function (e) {
              e.vs = n.flatten(
                e.vs.map(function (e) {
                  return t[e] ? t[e].vs : e;
                }),
                !0
              );
            });
          })(p, g);
          var m = o(p, l);
          if (
            h &&
            ((m.vs = n.flatten([h, m.vs, u], !0)), t.predecessors(h).length)
          ) {
            var _ = t.node(t.predecessors(h)[0]),
              b = t.node(t.predecessors(u)[0]);
            n.has(m, 'barycenter') || ((m.barycenter = 0), (m.weight = 0)),
              (m.barycenter =
                (m.barycenter * m.weight + _.order + b.order) / (m.weight + 2)),
              (m.weight += 2);
          }
          return m;
        };
      },
      96779: (e, t, i) => {
        var n = i(29603),
          r = i(65029);
        function s(e, t, i) {
          for (var r; t.length && (r = n.last(t)).i <= i; )
            t.pop(), e.push(r.vs), i++;
          return i;
        }
        e.exports = function (e, t) {
          var i,
            o = r.partition(e, function (e) {
              return n.has(e, 'barycenter');
            }),
            a = o.lhs,
            l = n.sortBy(o.rhs, function (e) {
              return -e.i;
            }),
            c = [],
            d = 0,
            h = 0,
            u = 0;
          a.sort(
            ((i = !!t),
            function (e, t) {
              return e.barycenter < t.barycenter
                ? -1
                : e.barycenter > t.barycenter
                ? 1
                : i
                ? t.i - e.i
                : e.i - t.i;
            })
          ),
            (u = s(c, l, u)),
            n.forEach(a, function (e) {
              (u += e.vs.length),
                c.push(e.vs),
                (d += e.barycenter * e.weight),
                (h += e.weight),
                (u = s(c, l, u));
            });
          var g = { vs: n.flatten(c, !0) };
          return h && ((g.barycenter = d / h), (g.weight = h)), g;
        };
      },
      65891: (e, t, i) => {
        var n = i(29603);
        e.exports = function (e) {
          var t = (function (e) {
            var t = {},
              i = 0;
            return (
              n.forEach(e.children(), function r(s) {
                var o = i;
                n.forEach(e.children(s), r), (t[s] = { low: o, lim: i++ });
              }),
              t
            );
          })(e);
          n.forEach(e.graph().dummyChains, function (i) {
            for (
              var n = e.node(i),
                r = n.edgeObj,
                s = (function (e, t, i, n) {
                  var r,
                    s,
                    o = [],
                    a = [],
                    l = Math.min(t[i].low, t[n].low),
                    c = Math.max(t[i].lim, t[n].lim);
                  r = i;
                  do {
                    (r = e.parent(r)), o.push(r);
                  } while (r && (t[r].low > l || c > t[r].lim));
                  for (s = r, r = n; (r = e.parent(r)) !== s; ) a.push(r);
                  return { path: o.concat(a.reverse()), lca: s };
                })(e, t, r.v, r.w),
                o = s.path,
                a = s.lca,
                l = 0,
                c = o[l],
                d = !0;
              i !== r.w;

            ) {
              if (((n = e.node(i)), d)) {
                for (; (c = o[l]) !== a && e.node(c).maxRank < n.rank; ) l++;
                c === a && (d = !1);
              }
              if (!d) {
                for (
                  ;
                  l < o.length - 1 && e.node((c = o[l + 1])).minRank <= n.rank;

                )
                  l++;
                c = o[l];
              }
              e.setParent(i, c), (i = e.successors(i)[0]);
            }
          });
        };
      },
      19998: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(33653).Graph,
          s = i(65029);
        function o(e, t) {
          var i = {};
          return (
            n.reduce(t, function (t, r) {
              var s = 0,
                o = 0,
                a = t.length,
                c = n.last(r);
              return (
                n.forEach(r, function (t, d) {
                  var h = (function (e, t) {
                      if (e.node(t).dummy)
                        return n.find(e.predecessors(t), function (t) {
                          return e.node(t).dummy;
                        });
                    })(e, t),
                    u = h ? e.node(h).order : a;
                  (h || t === c) &&
                    (n.forEach(r.slice(o, d + 1), function (t) {
                      n.forEach(e.predecessors(t), function (n) {
                        var r = e.node(n),
                          o = r.order;
                        !(o < s || u < o) ||
                          (r.dummy && e.node(t).dummy) ||
                          l(i, n, t);
                      });
                    }),
                    (o = d + 1),
                    (s = u));
                }),
                r
              );
            }),
            i
          );
        }
        function a(e, t) {
          var i = {};
          function r(t, r, s, o, a) {
            var c;
            n.forEach(n.range(r, s), function (r) {
              (c = t[r]),
                e.node(c).dummy &&
                  n.forEach(e.predecessors(c), function (t) {
                    var n = e.node(t);
                    n.dummy && (n.order < o || n.order > a) && l(i, t, c);
                  });
            });
          }
          return (
            n.reduce(t, function (t, i) {
              var s,
                o = -1,
                a = 0;
              return (
                n.forEach(i, function (n, l) {
                  if ('border' === e.node(n).dummy) {
                    var c = e.predecessors(n);
                    c.length &&
                      ((s = e.node(c[0]).order),
                      r(i, a, l, o, s),
                      (a = l),
                      (o = s));
                  }
                  r(i, a, i.length, s, t.length);
                }),
                i
              );
            }),
            i
          );
        }
        function l(e, t, i) {
          if (t > i) {
            var n = t;
            (t = i), (i = n);
          }
          var r = e[t];
          r || (e[t] = r = {}), (r[i] = !0);
        }
        function c(e, t, i) {
          if (t > i) {
            var r = t;
            (t = i), (i = r);
          }
          return n.has(e[t], i);
        }
        function d(e, t, i, r) {
          var s = {},
            o = {},
            a = {};
          return (
            n.forEach(t, function (e) {
              n.forEach(e, function (e, t) {
                (s[e] = e), (o[e] = e), (a[e] = t);
              });
            }),
            n.forEach(t, function (e) {
              var t = -1;
              n.forEach(e, function (e) {
                var l = r(e);
                if (l.length)
                  for (
                    var d =
                        ((l = n.sortBy(l, function (e) {
                          return a[e];
                        })).length -
                          1) /
                        2,
                      h = Math.floor(d),
                      u = Math.ceil(d);
                    h <= u;
                    ++h
                  ) {
                    var g = l[h];
                    o[e] === e &&
                      t < a[g] &&
                      !c(i, e, g) &&
                      ((o[g] = e), (o[e] = s[e] = s[g]), (t = a[g]));
                  }
              });
            }),
            { root: s, align: o }
          );
        }
        function h(e, t, i, s, o) {
          var a = {},
            l = (function (e, t, i, s) {
              var o = new r(),
                a = e.graph(),
                l = (function (e, t, i) {
                  return function (r, s, o) {
                    var a,
                      l = r.node(s),
                      c = r.node(o),
                      d = 0;
                    if (((d += l.width / 2), n.has(l, 'labelpos')))
                      switch (l.labelpos.toLowerCase()) {
                        case 'l':
                          a = -l.width / 2;
                          break;
                        case 'r':
                          a = l.width / 2;
                      }
                    if (
                      (a && (d += i ? a : -a),
                      (a = 0),
                      (d += (l.dummy ? t : e) / 2),
                      (d += (c.dummy ? t : e) / 2),
                      (d += c.width / 2),
                      n.has(c, 'labelpos'))
                    )
                      switch (c.labelpos.toLowerCase()) {
                        case 'l':
                          a = c.width / 2;
                          break;
                        case 'r':
                          a = -c.width / 2;
                      }
                    return a && (d += i ? a : -a), (a = 0), d;
                  };
                })(a.nodesep, a.edgesep, s);
              return (
                n.forEach(t, function (t) {
                  var r;
                  n.forEach(t, function (t) {
                    var n = i[t];
                    if ((o.setNode(n), r)) {
                      var s = i[r],
                        a = o.edge(s, n);
                      o.setEdge(s, n, Math.max(l(e, t, r), a || 0));
                    }
                    r = t;
                  });
                }),
                o
              );
            })(e, t, i, o),
            c = o ? 'borderLeft' : 'borderRight';
          function d(e, t) {
            for (var i = l.nodes(), n = i.pop(), r = {}; n; )
              r[n] ? e(n) : ((r[n] = !0), i.push(n), (i = i.concat(t(n)))),
                (n = i.pop());
          }
          return (
            d(function (e) {
              a[e] = l.inEdges(e).reduce(function (e, t) {
                return Math.max(e, a[t.v] + l.edge(t));
              }, 0);
            }, l.predecessors.bind(l)),
            d(function (t) {
              var i = l.outEdges(t).reduce(function (e, t) {
                  return Math.min(e, a[t.w] - l.edge(t));
                }, Number.POSITIVE_INFINITY),
                n = e.node(t);
              i !== Number.POSITIVE_INFINITY &&
                n.borderType !== c &&
                (a[t] = Math.max(a[t], i));
            }, l.successors.bind(l)),
            n.forEach(s, function (e) {
              a[e] = a[i[e]];
            }),
            a
          );
        }
        function u(e, t) {
          return n.minBy(n.values(t), function (t) {
            var i = Number.NEGATIVE_INFINITY,
              r = Number.POSITIVE_INFINITY;
            return (
              n.forIn(t, function (t, n) {
                var s =
                  (function (e, t) {
                    return e.node(t).width;
                  })(e, n) / 2;
                (i = Math.max(t + s, i)), (r = Math.min(t - s, r));
              }),
              i - r
            );
          });
        }
        function g(e, t) {
          var i = n.values(t),
            r = n.min(i),
            s = n.max(i);
          n.forEach(['u', 'd'], function (i) {
            n.forEach(['l', 'r'], function (o) {
              var a,
                l = i + o,
                c = e[l];
              if (c !== t) {
                var d = n.values(c);
                (a = 'l' === o ? r - n.min(d) : s - n.max(d)) &&
                  (e[l] = n.mapValues(c, function (e) {
                    return e + a;
                  }));
              }
            });
          });
        }
        function f(e, t) {
          return n.mapValues(e.ul, function (i, r) {
            if (t) return e[t.toLowerCase()][r];
            var s = n.sortBy(n.map(e, r));
            return (s[1] + s[2]) / 2;
          });
        }
        e.exports = {
          positionX: function (e) {
            var t,
              i = s.buildLayerMatrix(e),
              r = n.merge(o(e, i), a(e, i)),
              l = {};
            n.forEach(['u', 'd'], function (s) {
              (t = 'u' === s ? i : n.values(i).reverse()),
                n.forEach(['l', 'r'], function (i) {
                  'r' === i &&
                    (t = n.map(t, function (e) {
                      return n.values(e).reverse();
                    }));
                  var o = ('u' === s ? e.predecessors : e.successors).bind(e),
                    a = d(0, t, r, o),
                    c = h(e, t, a.root, a.align, 'r' === i);
                  'r' === i &&
                    (c = n.mapValues(c, function (e) {
                      return -e;
                    })),
                    (l[s + i] = c);
                });
            });
            var c = u(e, l);
            return g(l, c), f(l, e.graph().align);
          },
          findType1Conflicts: o,
          findType2Conflicts: a,
          addConflict: l,
          hasConflict: c,
          verticalAlignment: d,
          horizontalCompaction: h,
          alignCoordinates: g,
          findSmallestWidthAlignment: u,
          balance: f,
        };
      },
      86587: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(65029),
          s = i(19998).positionX;
        e.exports = function (e) {
          (function (e) {
            var t = r.buildLayerMatrix(e),
              i = e.graph().ranksep,
              s = 0;
            n.forEach(t, function (t) {
              var r = n.max(
                n.map(t, function (t) {
                  return e.node(t).height;
                })
              );
              n.forEach(t, function (t) {
                e.node(t).y = s + r / 2;
              }),
                (s += r + i);
            });
          })((e = r.asNonCompoundGraph(e))),
            n.forEach(s(e), function (t, i) {
              e.node(i).x = t;
            });
        };
      },
      54434: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(33653).Graph,
          s = i(90697).slack;
        function o(e, t) {
          return (
            n.forEach(e.nodes(), function i(r) {
              n.forEach(t.nodeEdges(r), function (n) {
                var o = n.v,
                  a = r === o ? n.w : o;
                e.hasNode(a) ||
                  s(t, n) ||
                  (e.setNode(a, {}), e.setEdge(r, a, {}), i(a));
              });
            }),
            e.nodeCount()
          );
        }
        function a(e, t) {
          return n.minBy(t.edges(), function (i) {
            if (e.hasNode(i.v) !== e.hasNode(i.w)) return s(t, i);
          });
        }
        function l(e, t, i) {
          n.forEach(e.nodes(), function (e) {
            t.node(e).rank += i;
          });
        }
        e.exports = function (e) {
          var t,
            i,
            n = new r({ directed: !1 }),
            c = e.nodes()[0],
            d = e.nodeCount();
          for (n.setNode(c, {}); o(n, e) < d; )
            (t = a(n, e)),
              (i = n.hasNode(t.v) ? s(e, t) : -s(e, t)),
              l(n, e, i);
          return n;
        };
      },
      26833: (e, t, i) => {
        'use strict';
        var n = i(90697).longestPath,
          r = i(54434),
          s = i(33288);
        e.exports = function (e) {
          switch (e.graph().ranker) {
            case 'network-simplex':
              a(e);
              break;
            case 'tight-tree':
              !(function (e) {
                n(e), r(e);
              })(e);
              break;
            case 'longest-path':
              o(e);
              break;
            default:
              a(e);
          }
        };
        var o = n;
        function a(e) {
          s(e);
        }
      },
      33288: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(54434),
          s = i(90697).slack,
          o = i(90697).longestPath,
          a = i(33653).alg.preorder,
          l = i(33653).alg.postorder,
          c = i(65029).simplify;
        function d(e) {
          (e = c(e)), o(e);
          var t,
            i = r(e);
          for (g(i), h(i, e); (t = p(i)); ) _(i, e, t, m(i, e, t));
        }
        function h(e, t) {
          var i = l(e, e.nodes());
          (i = i.slice(0, i.length - 1)),
            n.forEach(i, function (i) {
              !(function (e, t, i) {
                var n = e.node(i).parent;
                e.edge(i, n).cutvalue = u(e, t, i);
              })(e, t, i);
            });
        }
        function u(e, t, i) {
          var r = e.node(i).parent,
            s = !0,
            o = t.edge(i, r),
            a = 0;
          return (
            o || ((s = !1), (o = t.edge(r, i))),
            (a = o.weight),
            n.forEach(t.nodeEdges(i), function (n) {
              var o,
                l,
                c = n.v === i,
                d = c ? n.w : n.v;
              if (d !== r) {
                var h = c === s,
                  u = t.edge(n).weight;
                if (((a += h ? u : -u), (o = i), (l = d), e.hasEdge(o, l))) {
                  var g = e.edge(i, d).cutvalue;
                  a += h ? -g : g;
                }
              }
            }),
            a
          );
        }
        function g(e, t) {
          arguments.length < 2 && (t = e.nodes()[0]), f(e, {}, 1, t);
        }
        function f(e, t, i, r, s) {
          var o = i,
            a = e.node(r);
          return (
            (t[r] = !0),
            n.forEach(e.neighbors(r), function (s) {
              n.has(t, s) || (i = f(e, t, i, s, r));
            }),
            (a.low = o),
            (a.lim = i++),
            s ? (a.parent = s) : delete a.parent,
            i
          );
        }
        function p(e) {
          return n.find(e.edges(), function (t) {
            return e.edge(t).cutvalue < 0;
          });
        }
        function m(e, t, i) {
          var r = i.v,
            o = i.w;
          t.hasEdge(r, o) || ((r = i.w), (o = i.v));
          var a = e.node(r),
            l = e.node(o),
            c = a,
            d = !1;
          a.lim > l.lim && ((c = l), (d = !0));
          var h = n.filter(t.edges(), function (t) {
            return d === b(0, e.node(t.v), c) && d !== b(0, e.node(t.w), c);
          });
          return n.minBy(h, function (e) {
            return s(t, e);
          });
        }
        function _(e, t, i, r) {
          var s = i.v,
            o = i.w;
          e.removeEdge(s, o),
            e.setEdge(r.v, r.w, {}),
            g(e),
            h(e, t),
            (function (e, t) {
              var i = n.find(e.nodes(), function (e) {
                  return !t.node(e).parent;
                }),
                r = a(e, i);
              (r = r.slice(1)),
                n.forEach(r, function (i) {
                  var n = e.node(i).parent,
                    r = t.edge(i, n),
                    s = !1;
                  r || ((r = t.edge(n, i)), (s = !0)),
                    (t.node(i).rank =
                      t.node(n).rank + (s ? r.minlen : -r.minlen));
                });
            })(e, t);
        }
        function b(e, t, i) {
          return i.low <= t.lim && t.lim <= i.lim;
        }
        (e.exports = d),
          (d.initLowLimValues = g),
          (d.initCutValues = h),
          (d.calcCutValue = u),
          (d.leaveEdge = p),
          (d.enterEdge = m),
          (d.exchangeEdges = _);
      },
      90697: (e, t, i) => {
        'use strict';
        var n = i(29603);
        e.exports = {
          longestPath: function (e) {
            var t = {};
            n.forEach(e.sources(), function i(r) {
              var s = e.node(r);
              if (n.has(t, r)) return s.rank;
              t[r] = !0;
              var o = n.min(
                n.map(e.outEdges(r), function (t) {
                  return i(t.w) - e.edge(t).minlen;
                })
              );
              return (
                (o !== Number.POSITIVE_INFINITY && null != o) || (o = 0),
                (s.rank = o)
              );
            });
          },
          slack: function (e, t) {
            return e.node(t.w).rank - e.node(t.v).rank - e.edge(t).minlen;
          },
        };
      },
      65029: (e, t, i) => {
        'use strict';
        var n = i(29603),
          r = i(33653).Graph;
        function s(e, t, i, r) {
          var s;
          do {
            s = n.uniqueId(r);
          } while (e.hasNode(s));
          return (i.dummy = t), e.setNode(s, i), s;
        }
        function o(e) {
          return n.max(
            n.map(e.nodes(), function (t) {
              var i = e.node(t).rank;
              if (!n.isUndefined(i)) return i;
            })
          );
        }
        e.exports = {
          addDummyNode: s,
          simplify: function (e) {
            var t = new r().setGraph(e.graph());
            return (
              n.forEach(e.nodes(), function (i) {
                t.setNode(i, e.node(i));
              }),
              n.forEach(e.edges(), function (i) {
                var n = t.edge(i.v, i.w) || { weight: 0, minlen: 1 },
                  r = e.edge(i);
                t.setEdge(i.v, i.w, {
                  weight: n.weight + r.weight,
                  minlen: Math.max(n.minlen, r.minlen),
                });
              }),
              t
            );
          },
          asNonCompoundGraph: function (e) {
            var t = new r({ multigraph: e.isMultigraph() }).setGraph(e.graph());
            return (
              n.forEach(e.nodes(), function (i) {
                e.children(i).length || t.setNode(i, e.node(i));
              }),
              n.forEach(e.edges(), function (i) {
                t.setEdge(i, e.edge(i));
              }),
              t
            );
          },
          successorWeights: function (e) {
            var t = n.map(e.nodes(), function (t) {
              var i = {};
              return (
                n.forEach(e.outEdges(t), function (t) {
                  i[t.w] = (i[t.w] || 0) + e.edge(t).weight;
                }),
                i
              );
            });
            return n.zipObject(e.nodes(), t);
          },
          predecessorWeights: function (e) {
            var t = n.map(e.nodes(), function (t) {
              var i = {};
              return (
                n.forEach(e.inEdges(t), function (t) {
                  i[t.v] = (i[t.v] || 0) + e.edge(t).weight;
                }),
                i
              );
            });
            return n.zipObject(e.nodes(), t);
          },
          intersectRect: function (e, t) {
            var i,
              n,
              r = e.x,
              s = e.y,
              o = t.x - r,
              a = t.y - s,
              l = e.width / 2,
              c = e.height / 2;
            if (!o && !a)
              throw new Error(
                'Not possible to find intersection inside of the rectangle'
              );
            return (
              Math.abs(a) * l > Math.abs(o) * c
                ? (a < 0 && (c = -c), (i = (c * o) / a), (n = c))
                : (o < 0 && (l = -l), (i = l), (n = (l * a) / o)),
              { x: r + i, y: s + n }
            );
          },
          buildLayerMatrix: function (e) {
            var t = n.map(n.range(o(e) + 1), function () {
              return [];
            });
            return (
              n.forEach(e.nodes(), function (i) {
                var r = e.node(i),
                  s = r.rank;
                n.isUndefined(s) || (t[s][r.order] = i);
              }),
              t
            );
          },
          normalizeRanks: function (e) {
            var t = n.min(
              n.map(e.nodes(), function (t) {
                return e.node(t).rank;
              })
            );
            n.forEach(e.nodes(), function (i) {
              var r = e.node(i);
              n.has(r, 'rank') && (r.rank -= t);
            });
          },
          removeEmptyRanks: function (e) {
            var t = n.min(
                n.map(e.nodes(), function (t) {
                  return e.node(t).rank;
                })
              ),
              i = [];
            n.forEach(e.nodes(), function (n) {
              var r = e.node(n).rank - t;
              i[r] || (i[r] = []), i[r].push(n);
            });
            var r = 0,
              s = e.graph().nodeRankFactor;
            n.forEach(i, function (t, i) {
              n.isUndefined(t) && i % s != 0
                ? --r
                : r &&
                  n.forEach(t, function (t) {
                    e.node(t).rank += r;
                  });
            });
          },
          addBorderNode: function (e, t, i, n) {
            var r = { width: 0, height: 0 };
            return (
              arguments.length >= 4 && ((r.rank = i), (r.order = n)),
              s(e, 'border', r, t)
            );
          },
          maxRank: o,
          partition: function (e, t) {
            var i = { lhs: [], rhs: [] };
            return (
              n.forEach(e, function (e) {
                t(e) ? i.lhs.push(e) : i.rhs.push(e);
              }),
              i
            );
          },
          time: function (e, t) {
            var i = n.now();
            try {
              return t();
            } finally {
              console.log(e + ' time: ' + (n.now() - i) + 'ms');
            }
          },
          notime: function (e, t) {
            return t();
          },
        };
      },
      96350: (e) => {
        e.exports = '0.8.5';
      },
      79550: (e, t, i) => {
        var n = i(86496);
        e.exports = {
          Graph: n.Graph,
          json: i(72159),
          alg: i(95725),
          version: n.version,
        };
      },
      35318: (e, t, i) => {
        var n = i(23270);
        e.exports = function (e) {
          var t,
            i = {},
            r = [];
          function s(r) {
            n.has(i, r) ||
              ((i[r] = !0),
              t.push(r),
              n.each(e.successors(r), s),
              n.each(e.predecessors(r), s));
          }
          return (
            n.each(e.nodes(), function (e) {
              (t = []), s(e), t.length && r.push(t);
            }),
            r
          );
        };
      },
      1012: (e, t, i) => {
        var n = i(23270);
        function r(e, t, i, s, o, a) {
          n.has(s, t) ||
            ((s[t] = !0),
            i || a.push(t),
            n.each(o(t), function (t) {
              r(e, t, i, s, o, a);
            }),
            i && a.push(t));
        }
        e.exports = function (e, t, i) {
          n.isArray(t) || (t = [t]);
          var s = (e.isDirected() ? e.successors : e.neighbors).bind(e),
            o = [],
            a = {};
          return (
            n.each(t, function (t) {
              if (!e.hasNode(t))
                throw new Error('Graph does not have node: ' + t);
              r(e, t, 'post' === i, a, s, o);
            }),
            o
          );
        };
      },
      60796: (e, t, i) => {
        var n = i(68013),
          r = i(23270);
        e.exports = function (e, t, i) {
          return r.transform(
            e.nodes(),
            function (r, s) {
              r[s] = n(e, s, t, i);
            },
            {}
          );
        };
      },
      68013: (e, t, i) => {
        var n = i(23270),
          r = i(43552);
        e.exports = function (e, t, i, n) {
          return (function (e, t, i, n) {
            var s,
              o,
              a = {},
              l = new r(),
              c = function (e) {
                var t = e.v !== s ? e.v : e.w,
                  n = a[t],
                  r = i(e),
                  c = o.distance + r;
                if (r < 0)
                  throw new Error(
                    'dijkstra does not allow negative edge weights. Bad edge: ' +
                      e +
                      ' Weight: ' +
                      r
                  );
                c < n.distance &&
                  ((n.distance = c), (n.predecessor = s), l.decrease(t, c));
              };
            for (
              e.nodes().forEach(function (e) {
                var i = e === t ? 0 : Number.POSITIVE_INFINITY;
                (a[e] = { distance: i }), l.add(e, i);
              });
              l.size() > 0 &&
              ((s = l.removeMin()),
              (o = a[s]).distance !== Number.POSITIVE_INFINITY);

            )
              n(s).forEach(c);
            return a;
          })(
            e,
            String(t),
            i || s,
            n ||
              function (t) {
                return e.outEdges(t);
              }
          );
        };
        var s = n.constant(1);
      },
      43647: (e, t, i) => {
        var n = i(23270),
          r = i(72109);
        e.exports = function (e) {
          return n.filter(r(e), function (t) {
            return t.length > 1 || (1 === t.length && e.hasEdge(t[0], t[0]));
          });
        };
      },
      61511: (e, t, i) => {
        var n = i(23270);
        e.exports = function (e, t, i) {
          return (function (e, t, i) {
            var n = {},
              r = e.nodes();
            return (
              r.forEach(function (e) {
                (n[e] = {}),
                  (n[e][e] = { distance: 0 }),
                  r.forEach(function (t) {
                    e !== t &&
                      (n[e][t] = { distance: Number.POSITIVE_INFINITY });
                  }),
                  i(e).forEach(function (i) {
                    var r = i.v === e ? i.w : i.v,
                      s = t(i);
                    n[e][r] = { distance: s, predecessor: e };
                  });
              }),
              r.forEach(function (e) {
                var t = n[e];
                r.forEach(function (i) {
                  var s = n[i];
                  r.forEach(function (i) {
                    var n = s[e],
                      r = t[i],
                      o = s[i],
                      a = n.distance + r.distance;
                    a < o.distance &&
                      ((o.distance = a), (o.predecessor = r.predecessor));
                  });
                });
              }),
              n
            );
          })(
            e,
            t || r,
            i ||
              function (t) {
                return e.outEdges(t);
              }
          );
        };
        var r = n.constant(1);
      },
      95725: (e, t, i) => {
        e.exports = {
          components: i(35318),
          dijkstra: i(68013),
          dijkstraAll: i(60796),
          findCycles: i(43647),
          floydWarshall: i(61511),
          isAcyclic: i(42330),
          postorder: i(70126),
          preorder: i(74613),
          prim: i(70646),
          tarjan: i(72109),
          topsort: i(71469),
        };
      },
      42330: (e, t, i) => {
        var n = i(71469);
        e.exports = function (e) {
          try {
            n(e);
          } catch (e) {
            if (e instanceof n.CycleException) return !1;
            throw e;
          }
          return !0;
        };
      },
      70126: (e, t, i) => {
        var n = i(1012);
        e.exports = function (e, t) {
          return n(e, t, 'post');
        };
      },
      74613: (e, t, i) => {
        var n = i(1012);
        e.exports = function (e, t) {
          return n(e, t, 'pre');
        };
      },
      70646: (e, t, i) => {
        var n = i(23270),
          r = i(81380),
          s = i(43552);
        e.exports = function (e, t) {
          var i,
            o = new r(),
            a = {},
            l = new s();
          function c(e) {
            var n = e.v === i ? e.w : e.v,
              r = l.priority(n);
            if (void 0 !== r) {
              var s = t(e);
              s < r && ((a[n] = i), l.decrease(n, s));
            }
          }
          if (0 === e.nodeCount()) return o;
          n.each(e.nodes(), function (e) {
            l.add(e, Number.POSITIVE_INFINITY), o.setNode(e);
          }),
            l.decrease(e.nodes()[0], 0);
          for (var d = !1; l.size() > 0; ) {
            if (((i = l.removeMin()), n.has(a, i))) o.setEdge(i, a[i]);
            else {
              if (d) throw new Error('Input graph is not connected: ' + e);
              d = !0;
            }
            e.nodeEdges(i).forEach(c);
          }
          return o;
        };
      },
      72109: (e, t, i) => {
        var n = i(23270);
        e.exports = function (e) {
          var t = 0,
            i = [],
            r = {},
            s = [];
          function o(a) {
            var l = (r[a] = { onStack: !0, lowlink: t, index: t++ });
            if (
              (i.push(a),
              e.successors(a).forEach(function (e) {
                n.has(r, e)
                  ? r[e].onStack &&
                    (l.lowlink = Math.min(l.lowlink, r[e].index))
                  : (o(e), (l.lowlink = Math.min(l.lowlink, r[e].lowlink)));
              }),
              l.lowlink === l.index)
            ) {
              var c,
                d = [];
              do {
                (c = i.pop()), (r[c].onStack = !1), d.push(c);
              } while (a !== c);
              s.push(d);
            }
          }
          return (
            e.nodes().forEach(function (e) {
              n.has(r, e) || o(e);
            }),
            s
          );
        };
      },
      71469: (e, t, i) => {
        var n = i(23270);
        function r(e) {
          var t = {},
            i = {},
            r = [];
          if (
            (n.each(e.sinks(), function o(a) {
              if (n.has(i, a)) throw new s();
              n.has(t, a) ||
                ((i[a] = !0),
                (t[a] = !0),
                n.each(e.predecessors(a), o),
                delete i[a],
                r.push(a));
            }),
            n.size(t) !== e.nodeCount())
          )
            throw new s();
          return r;
        }
        function s() {}
        (e.exports = r), (r.CycleException = s), (s.prototype = new Error());
      },
      43552: (e, t, i) => {
        var n = i(23270);
        function r() {
          (this._arr = []), (this._keyIndices = {});
        }
        (e.exports = r),
          (r.prototype.size = function () {
            return this._arr.length;
          }),
          (r.prototype.keys = function () {
            return this._arr.map(function (e) {
              return e.key;
            });
          }),
          (r.prototype.has = function (e) {
            return n.has(this._keyIndices, e);
          }),
          (r.prototype.priority = function (e) {
            var t = this._keyIndices[e];
            if (void 0 !== t) return this._arr[t].priority;
          }),
          (r.prototype.min = function () {
            if (0 === this.size()) throw new Error('Queue underflow');
            return this._arr[0].key;
          }),
          (r.prototype.add = function (e, t) {
            var i = this._keyIndices;
            if (((e = String(e)), !n.has(i, e))) {
              var r = this._arr,
                s = r.length;
              return (
                (i[e] = s),
                r.push({ key: e, priority: t }),
                this._decrease(s),
                !0
              );
            }
            return !1;
          }),
          (r.prototype.removeMin = function () {
            this._swap(0, this._arr.length - 1);
            var e = this._arr.pop();
            return delete this._keyIndices[e.key], this._heapify(0), e.key;
          }),
          (r.prototype.decrease = function (e, t) {
            var i = this._keyIndices[e];
            if (t > this._arr[i].priority)
              throw new Error(
                'New priority is greater than current priority. Key: ' +
                  e +
                  ' Old: ' +
                  this._arr[i].priority +
                  ' New: ' +
                  t
              );
            (this._arr[i].priority = t), this._decrease(i);
          }),
          (r.prototype._heapify = function (e) {
            var t = this._arr,
              i = 2 * e,
              n = i + 1,
              r = e;
            i < t.length &&
              ((r = t[i].priority < t[r].priority ? i : r),
              n < t.length && (r = t[n].priority < t[r].priority ? n : r),
              r !== e && (this._swap(e, r), this._heapify(r)));
          }),
          (r.prototype._decrease = function (e) {
            for (
              var t, i = this._arr, n = i[e].priority;
              0 !== e && !(i[(t = e >> 1)].priority < n);

            )
              this._swap(e, t), (e = t);
          }),
          (r.prototype._swap = function (e, t) {
            var i = this._arr,
              n = this._keyIndices,
              r = i[e],
              s = i[t];
            (i[e] = s), (i[t] = r), (n[s.key] = e), (n[r.key] = t);
          });
      },
      81380: (e, t, i) => {
        'use strict';
        var n = i(23270);
        e.exports = s;
        var r = '\0';
        function s(e) {
          (this._isDirected = !n.has(e, 'directed') || e.directed),
            (this._isMultigraph = !!n.has(e, 'multigraph') && e.multigraph),
            (this._isCompound = !!n.has(e, 'compound') && e.compound),
            (this._label = void 0),
            (this._defaultNodeLabelFn = n.constant(void 0)),
            (this._defaultEdgeLabelFn = n.constant(void 0)),
            (this._nodes = {}),
            this._isCompound &&
              ((this._parent = {}),
              (this._children = {}),
              (this._children['\0'] = {})),
            (this._in = {}),
            (this._preds = {}),
            (this._out = {}),
            (this._sucs = {}),
            (this._edgeObjs = {}),
            (this._edgeLabels = {});
        }
        function o(e, t) {
          e[t] ? e[t]++ : (e[t] = 1);
        }
        function a(e, t) {
          --e[t] || delete e[t];
        }
        function l(e, t, i, r) {
          var s = '' + t,
            o = '' + i;
          if (!e && s > o) {
            var a = s;
            (s = o), (o = a);
          }
          return s + '' + o + '' + (n.isUndefined(r) ? '\0' : r);
        }
        function c(e, t, i, n) {
          var r = '' + t,
            s = '' + i;
          if (!e && r > s) {
            var o = r;
            (r = s), (s = o);
          }
          var a = { v: r, w: s };
          return n && (a.name = n), a;
        }
        function d(e, t) {
          return l(e, t.v, t.w, t.name);
        }
        (s.prototype._nodeCount = 0),
          (s.prototype._edgeCount = 0),
          (s.prototype.isDirected = function () {
            return this._isDirected;
          }),
          (s.prototype.isMultigraph = function () {
            return this._isMultigraph;
          }),
          (s.prototype.isCompound = function () {
            return this._isCompound;
          }),
          (s.prototype.setGraph = function (e) {
            return (this._label = e), this;
          }),
          (s.prototype.graph = function () {
            return this._label;
          }),
          (s.prototype.setDefaultNodeLabel = function (e) {
            return (
              n.isFunction(e) || (e = n.constant(e)),
              (this._defaultNodeLabelFn = e),
              this
            );
          }),
          (s.prototype.nodeCount = function () {
            return this._nodeCount;
          }),
          (s.prototype.nodes = function () {
            return n.keys(this._nodes);
          }),
          (s.prototype.sources = function () {
            var e = this;
            return n.filter(this.nodes(), function (t) {
              return n.isEmpty(e._in[t]);
            });
          }),
          (s.prototype.sinks = function () {
            var e = this;
            return n.filter(this.nodes(), function (t) {
              return n.isEmpty(e._out[t]);
            });
          }),
          (s.prototype.setNodes = function (e, t) {
            var i = arguments,
              r = this;
            return (
              n.each(e, function (e) {
                i.length > 1 ? r.setNode(e, t) : r.setNode(e);
              }),
              this
            );
          }),
          (s.prototype.setNode = function (e, t) {
            return n.has(this._nodes, e)
              ? (arguments.length > 1 && (this._nodes[e] = t), this)
              : ((this._nodes[e] =
                  arguments.length > 1 ? t : this._defaultNodeLabelFn(e)),
                this._isCompound &&
                  ((this._parent[e] = r),
                  (this._children[e] = {}),
                  (this._children['\0'][e] = !0)),
                (this._in[e] = {}),
                (this._preds[e] = {}),
                (this._out[e] = {}),
                (this._sucs[e] = {}),
                ++this._nodeCount,
                this);
          }),
          (s.prototype.node = function (e) {
            return this._nodes[e];
          }),
          (s.prototype.hasNode = function (e) {
            return n.has(this._nodes, e);
          }),
          (s.prototype.removeNode = function (e) {
            var t = this;
            if (n.has(this._nodes, e)) {
              var i = function (e) {
                t.removeEdge(t._edgeObjs[e]);
              };
              delete this._nodes[e],
                this._isCompound &&
                  (this._removeFromParentsChildList(e),
                  delete this._parent[e],
                  n.each(this.children(e), function (e) {
                    t.setParent(e);
                  }),
                  delete this._children[e]),
                n.each(n.keys(this._in[e]), i),
                delete this._in[e],
                delete this._preds[e],
                n.each(n.keys(this._out[e]), i),
                delete this._out[e],
                delete this._sucs[e],
                --this._nodeCount;
            }
            return this;
          }),
          (s.prototype.setParent = function (e, t) {
            if (!this._isCompound)
              throw new Error('Cannot set parent in a non-compound graph');
            if (n.isUndefined(t)) t = r;
            else {
              for (var i = (t += ''); !n.isUndefined(i); i = this.parent(i))
                if (i === e)
                  throw new Error(
                    'Setting ' +
                      t +
                      ' as parent of ' +
                      e +
                      ' would create a cycle'
                  );
              this.setNode(t);
            }
            return (
              this.setNode(e),
              this._removeFromParentsChildList(e),
              (this._parent[e] = t),
              (this._children[t][e] = !0),
              this
            );
          }),
          (s.prototype._removeFromParentsChildList = function (e) {
            delete this._children[this._parent[e]][e];
          }),
          (s.prototype.parent = function (e) {
            if (this._isCompound) {
              var t = this._parent[e];
              if (t !== r) return t;
            }
          }),
          (s.prototype.children = function (e) {
            if ((n.isUndefined(e) && (e = r), this._isCompound)) {
              var t = this._children[e];
              if (t) return n.keys(t);
            } else {
              if (e === r) return this.nodes();
              if (this.hasNode(e)) return [];
            }
          }),
          (s.prototype.predecessors = function (e) {
            var t = this._preds[e];
            if (t) return n.keys(t);
          }),
          (s.prototype.successors = function (e) {
            var t = this._sucs[e];
            if (t) return n.keys(t);
          }),
          (s.prototype.neighbors = function (e) {
            var t = this.predecessors(e);
            if (t) return n.union(t, this.successors(e));
          }),
          (s.prototype.isLeaf = function (e) {
            return (
              0 ===
              (this.isDirected() ? this.successors(e) : this.neighbors(e))
                .length
            );
          }),
          (s.prototype.filterNodes = function (e) {
            var t = new this.constructor({
              directed: this._isDirected,
              multigraph: this._isMultigraph,
              compound: this._isCompound,
            });
            t.setGraph(this.graph());
            var i = this;
            n.each(this._nodes, function (i, n) {
              e(n) && t.setNode(n, i);
            }),
              n.each(this._edgeObjs, function (e) {
                t.hasNode(e.v) && t.hasNode(e.w) && t.setEdge(e, i.edge(e));
              });
            var r = {};
            function s(e) {
              var n = i.parent(e);
              return void 0 === n || t.hasNode(n)
                ? ((r[e] = n), n)
                : n in r
                ? r[n]
                : s(n);
            }
            return (
              this._isCompound &&
                n.each(t.nodes(), function (e) {
                  t.setParent(e, s(e));
                }),
              t
            );
          }),
          (s.prototype.setDefaultEdgeLabel = function (e) {
            return (
              n.isFunction(e) || (e = n.constant(e)),
              (this._defaultEdgeLabelFn = e),
              this
            );
          }),
          (s.prototype.edgeCount = function () {
            return this._edgeCount;
          }),
          (s.prototype.edges = function () {
            return n.values(this._edgeObjs);
          }),
          (s.prototype.setPath = function (e, t) {
            var i = this,
              r = arguments;
            return (
              n.reduce(e, function (e, n) {
                return r.length > 1 ? i.setEdge(e, n, t) : i.setEdge(e, n), n;
              }),
              this
            );
          }),
          (s.prototype.setEdge = function () {
            var e,
              t,
              i,
              r,
              s = !1,
              a = arguments[0];
            'object' == typeof a && null !== a && 'v' in a
              ? ((e = a.v),
                (t = a.w),
                (i = a.name),
                2 === arguments.length && ((r = arguments[1]), (s = !0)))
              : ((e = a),
                (t = arguments[1]),
                (i = arguments[3]),
                arguments.length > 2 && ((r = arguments[2]), (s = !0))),
              (e = '' + e),
              (t = '' + t),
              n.isUndefined(i) || (i = '' + i);
            var d = l(this._isDirected, e, t, i);
            if (n.has(this._edgeLabels, d))
              return s && (this._edgeLabels[d] = r), this;
            if (!n.isUndefined(i) && !this._isMultigraph)
              throw new Error(
                'Cannot set a named edge when isMultigraph = false'
              );
            this.setNode(e),
              this.setNode(t),
              (this._edgeLabels[d] = s ? r : this._defaultEdgeLabelFn(e, t, i));
            var h = c(this._isDirected, e, t, i);
            return (
              (e = h.v),
              (t = h.w),
              Object.freeze(h),
              (this._edgeObjs[d] = h),
              o(this._preds[t], e),
              o(this._sucs[e], t),
              (this._in[t][d] = h),
              (this._out[e][d] = h),
              this._edgeCount++,
              this
            );
          }),
          (s.prototype.edge = function (e, t, i) {
            var n =
              1 === arguments.length
                ? d(this._isDirected, arguments[0])
                : l(this._isDirected, e, t, i);
            return this._edgeLabels[n];
          }),
          (s.prototype.hasEdge = function (e, t, i) {
            var r =
              1 === arguments.length
                ? d(this._isDirected, arguments[0])
                : l(this._isDirected, e, t, i);
            return n.has(this._edgeLabels, r);
          }),
          (s.prototype.removeEdge = function (e, t, i) {
            var n =
                1 === arguments.length
                  ? d(this._isDirected, arguments[0])
                  : l(this._isDirected, e, t, i),
              r = this._edgeObjs[n];
            return (
              r &&
                ((e = r.v),
                (t = r.w),
                delete this._edgeLabels[n],
                delete this._edgeObjs[n],
                a(this._preds[t], e),
                a(this._sucs[e], t),
                delete this._in[t][n],
                delete this._out[e][n],
                this._edgeCount--),
              this
            );
          }),
          (s.prototype.inEdges = function (e, t) {
            var i = this._in[e];
            if (i) {
              var r = n.values(i);
              return t
                ? n.filter(r, function (e) {
                    return e.v === t;
                  })
                : r;
            }
          }),
          (s.prototype.outEdges = function (e, t) {
            var i = this._out[e];
            if (i) {
              var r = n.values(i);
              return t
                ? n.filter(r, function (e) {
                    return e.w === t;
                  })
                : r;
            }
          }),
          (s.prototype.nodeEdges = function (e, t) {
            var i = this.inEdges(e, t);
            if (i) return i.concat(this.outEdges(e, t));
          });
      },
      86496: (e, t, i) => {
        e.exports = { Graph: i(81380), version: i(52389) };
      },
      72159: (e, t, i) => {
        var n = i(23270),
          r = i(81380);
        function s(e) {
          return n.map(e.nodes(), function (t) {
            var i = e.node(t),
              r = e.parent(t),
              s = { v: t };
            return (
              n.isUndefined(i) || (s.value = i),
              n.isUndefined(r) || (s.parent = r),
              s
            );
          });
        }
        function o(e) {
          return n.map(e.edges(), function (t) {
            var i = e.edge(t),
              r = { v: t.v, w: t.w };
            return (
              n.isUndefined(t.name) || (r.name = t.name),
              n.isUndefined(i) || (r.value = i),
              r
            );
          });
        }
        e.exports = {
          write: function (e) {
            var t = {
              options: {
                directed: e.isDirected(),
                multigraph: e.isMultigraph(),
                compound: e.isCompound(),
              },
              nodes: s(e),
              edges: o(e),
            };
            return (
              n.isUndefined(e.graph()) || (t.value = n.clone(e.graph())), t
            );
          },
          read: function (e) {
            var t = new r(e.options).setGraph(e.value);
            return (
              n.each(e.nodes, function (e) {
                t.setNode(e.v, e.value), e.parent && t.setParent(e.v, e.parent);
              }),
              n.each(e.edges, function (e) {
                t.setEdge({ v: e.v, w: e.w, name: e.name }, e.value);
              }),
              t
            );
          },
        };
      },
      23270: (e, t, i) => {
        var n;
        try {
          n = {
            clone: i(66678),
            constant: i(75703),
            each: i(66073),
            filter: i(63105),
            has: i(18721),
            isArray: i(1469),
            isEmpty: i(41609),
            isFunction: i(23560),
            isUndefined: i(52353),
            keys: i(3674),
            map: i(35161),
            reduce: i(54061),
            size: i(84238),
            transform: i(68718),
            union: i(93386),
            values: i(52628),
          };
        } catch (e) {}
        n || (n = window._), (e.exports = n);
      },
      52389: (e) => {
        e.exports = '2.1.8';
      },
      70681: (e, t, i) => {
        e.exports = {
          graphlib: i(70574),
          layout: i(98123),
          debug: i(27570),
          util: { time: i(11138).time, notime: i(11138).notime },
          version: i(88177),
        };
      },
      92188: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(74079);
        e.exports = {
          run: function (e) {
            var t =
              'greedy' === e.graph().acyclicer
                ? r(
                    e,
                    (function (e) {
                      return function (t) {
                        return e.edge(t).weight;
                      };
                    })(e)
                  )
                : (function (e) {
                    var t = [],
                      i = {},
                      r = {};
                    return (
                      n.forEach(e.nodes(), function s(o) {
                        n.has(r, o) ||
                          ((r[o] = !0),
                          (i[o] = !0),
                          n.forEach(e.outEdges(o), function (e) {
                            n.has(i, e.w) ? t.push(e) : s(e.w);
                          }),
                          delete i[o]);
                      }),
                      t
                    );
                  })(e);
            n.forEach(t, function (t) {
              var i = e.edge(t);
              e.removeEdge(t),
                (i.forwardName = t.name),
                (i.reversed = !0),
                e.setEdge(t.w, t.v, i, n.uniqueId('rev'));
            });
          },
          undo: function (e) {
            n.forEach(e.edges(), function (t) {
              var i = e.edge(t);
              if (i.reversed) {
                e.removeEdge(t);
                var n = i.forwardName;
                delete i.reversed,
                  delete i.forwardName,
                  e.setEdge(t.w, t.v, i, n);
              }
            });
          },
        };
      },
      61133: (e, t, i) => {
        var n = i(38436),
          r = i(11138);
        function s(e, t, i, n, s, o) {
          var a = { width: 0, height: 0, rank: o, borderType: t },
            l = s[t][o - 1],
            c = r.addDummyNode(e, 'border', a, i);
          (s[t][o] = c), e.setParent(c, n), l && e.setEdge(l, c, { weight: 1 });
        }
        e.exports = function (e) {
          n.forEach(e.children(), function t(i) {
            var r = e.children(i),
              o = e.node(i);
            if ((r.length && n.forEach(r, t), n.has(o, 'minRank'))) {
              (o.borderLeft = []), (o.borderRight = []);
              for (var a = o.minRank, l = o.maxRank + 1; a < l; ++a)
                s(e, 'borderLeft', '_bl', i, o, a),
                  s(e, 'borderRight', '_br', i, o, a);
            }
          });
        };
      },
      53258: (e, t, i) => {
        'use strict';
        var n = i(38436);
        function r(e) {
          n.forEach(e.nodes(), function (t) {
            s(e.node(t));
          }),
            n.forEach(e.edges(), function (t) {
              s(e.edge(t));
            });
        }
        function s(e) {
          var t = e.width;
          (e.width = e.height), (e.height = t);
        }
        function o(e) {
          e.y = -e.y;
        }
        function a(e) {
          var t = e.x;
          (e.x = e.y), (e.y = t);
        }
        e.exports = {
          adjust: function (e) {
            var t = e.graph().rankdir.toLowerCase();
            ('lr' !== t && 'rl' !== t) || r(e);
          },
          undo: function (e) {
            var t = e.graph().rankdir.toLowerCase();
            ('bt' !== t && 'rl' !== t) ||
              (function (e) {
                n.forEach(e.nodes(), function (t) {
                  o(e.node(t));
                }),
                  n.forEach(e.edges(), function (t) {
                    var i = e.edge(t);
                    n.forEach(i.points, o), n.has(i, 'y') && o(i);
                  });
              })(e),
              ('lr' !== t && 'rl' !== t) ||
                ((function (e) {
                  n.forEach(e.nodes(), function (t) {
                    a(e.node(t));
                  }),
                    n.forEach(e.edges(), function (t) {
                      var i = e.edge(t);
                      n.forEach(i.points, a), n.has(i, 'x') && a(i);
                    });
                })(e),
                r(e));
          },
        };
      },
      77822: (e) => {
        function t() {
          var e = {};
          (e._next = e._prev = e), (this._sentinel = e);
        }
        function i(e) {
          (e._prev._next = e._next),
            (e._next._prev = e._prev),
            delete e._next,
            delete e._prev;
        }
        function n(e, t) {
          if ('_next' !== e && '_prev' !== e) return t;
        }
        (e.exports = t),
          (t.prototype.dequeue = function () {
            var e = this._sentinel,
              t = e._prev;
            if (t !== e) return i(t), t;
          }),
          (t.prototype.enqueue = function (e) {
            var t = this._sentinel;
            e._prev && e._next && i(e),
              (e._next = t._next),
              (t._next._prev = e),
              (t._next = e),
              (e._prev = t);
          }),
          (t.prototype.toString = function () {
            for (var e = [], t = this._sentinel, i = t._prev; i !== t; )
              e.push(JSON.stringify(i, n)), (i = i._prev);
            return '[' + e.join(', ') + ']';
          });
      },
      27570: (e, t, i) => {
        var n = i(38436),
          r = i(11138),
          s = i(70574).Graph;
        e.exports = {
          debugOrdering: function (e) {
            var t = r.buildLayerMatrix(e),
              i = new s({ compound: !0, multigraph: !0 }).setGraph({});
            return (
              n.forEach(e.nodes(), function (t) {
                i.setNode(t, { label: t }),
                  i.setParent(t, 'layer' + e.node(t).rank);
              }),
              n.forEach(e.edges(), function (e) {
                i.setEdge(e.v, e.w, {}, e.name);
              }),
              n.forEach(t, function (e, t) {
                var r = 'layer' + t;
                i.setNode(r, { rank: 'same' }),
                  n.reduce(e, function (e, t) {
                    return i.setEdge(e, t, { style: 'invis' }), t;
                  });
              }),
              i
            );
          },
        };
      },
      70574: (e, t, i) => {
        var n;
        try {
          n = i(28282);
        } catch (e) {}
        n || (n = window.graphlib), (e.exports = n);
      },
      74079: (e, t, i) => {
        var n = i(38436),
          r = i(70574).Graph,
          s = i(77822);
        e.exports = function (e, t) {
          if (e.nodeCount() <= 1) return [];
          var i = (function (e, t) {
              var i = new r(),
                o = 0,
                a = 0;
              n.forEach(e.nodes(), function (e) {
                i.setNode(e, { v: e, in: 0, out: 0 });
              }),
                n.forEach(e.edges(), function (e) {
                  var n = i.edge(e.v, e.w) || 0,
                    r = t(e),
                    s = n + r;
                  i.setEdge(e.v, e.w, s),
                    (a = Math.max(a, (i.node(e.v).out += r))),
                    (o = Math.max(o, (i.node(e.w).in += r)));
                });
              var c = n.range(a + o + 3).map(function () {
                  return new s();
                }),
                d = o + 1;
              return (
                n.forEach(i.nodes(), function (e) {
                  l(c, d, i.node(e));
                }),
                { graph: i, buckets: c, zeroIdx: d }
              );
            })(e, t || o),
            c = (function (e, t, i) {
              for (
                var n, r = [], s = t[t.length - 1], o = t[0];
                e.nodeCount();

              ) {
                for (; (n = o.dequeue()); ) a(e, t, i, n);
                for (; (n = s.dequeue()); ) a(e, t, i, n);
                if (e.nodeCount())
                  for (var l = t.length - 2; l > 0; --l)
                    if ((n = t[l].dequeue())) {
                      r = r.concat(a(e, t, i, n, !0));
                      break;
                    }
              }
              return r;
            })(i.graph, i.buckets, i.zeroIdx);
          return n.flatten(
            n.map(c, function (t) {
              return e.outEdges(t.v, t.w);
            }),
            !0
          );
        };
        var o = n.constant(1);
        function a(e, t, i, r, s) {
          var o = s ? [] : void 0;
          return (
            n.forEach(e.inEdges(r.v), function (n) {
              var r = e.edge(n),
                a = e.node(n.v);
              s && o.push({ v: n.v, w: n.w }), (a.out -= r), l(t, i, a);
            }),
            n.forEach(e.outEdges(r.v), function (n) {
              var r = e.edge(n),
                s = n.w,
                o = e.node(s);
              (o.in -= r), l(t, i, o);
            }),
            e.removeNode(r.v),
            o
          );
        }
        function l(e, t, i) {
          i.out
            ? i.in
              ? e[i.out - i.in + t].enqueue(i)
              : e[e.length - 1].enqueue(i)
            : e[0].enqueue(i);
        }
      },
      98123: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(92188),
          s = i(45995),
          o = i(78093),
          a = i(11138).normalizeRanks,
          l = i(24219),
          c = i(11138).removeEmptyRanks,
          d = i(72981),
          h = i(61133),
          u = i(53258),
          g = i(53408),
          f = i(17873),
          p = i(11138),
          m = i(70574).Graph;
        e.exports = function (e, t) {
          var i = t && t.debugTiming ? p.time : p.notime;
          i('layout', function () {
            var t = i('  buildLayoutGraph', function () {
              return (function (e) {
                var t = new m({ multigraph: !0, compound: !0 }),
                  i = L(e.graph());
                return (
                  t.setGraph(n.merge({}, b, x(i, _), n.pick(i, v))),
                  n.forEach(e.nodes(), function (i) {
                    var r = L(e.node(i));
                    t.setNode(i, n.defaults(x(r, y), w)),
                      t.setParent(i, e.parent(i));
                  }),
                  n.forEach(e.edges(), function (i) {
                    var r = L(e.edge(i));
                    t.setEdge(i, n.merge({}, S, x(r, C), n.pick(r, k)));
                  }),
                  t
                );
              })(e);
            });
            i('  runLayout', function () {
              !(function (e, t) {
                t('    makeSpaceForEdgeLabels', function () {
                  !(function (e) {
                    var t = e.graph();
                    (t.ranksep /= 2),
                      n.forEach(e.edges(), function (i) {
                        var n = e.edge(i);
                        (n.minlen *= 2),
                          'c' !== n.labelpos.toLowerCase() &&
                            ('TB' === t.rankdir || 'BT' === t.rankdir
                              ? (n.width += n.labeloffset)
                              : (n.height += n.labeloffset));
                      });
                  })(e);
                }),
                  t('    removeSelfEdges', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        if (t.v === t.w) {
                          var i = e.node(t.v);
                          i.selfEdges || (i.selfEdges = []),
                            i.selfEdges.push({ e: t, label: e.edge(t) }),
                            e.removeEdge(t);
                        }
                      });
                    })(e);
                  }),
                  t('    acyclic', function () {
                    r.run(e);
                  }),
                  t('    nestingGraph.run', function () {
                    d.run(e);
                  }),
                  t('    rank', function () {
                    o(p.asNonCompoundGraph(e));
                  }),
                  t('    injectEdgeLabelProxies', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i = e.edge(t);
                        if (i.width && i.height) {
                          var n = e.node(t.v),
                            r = {
                              rank: (e.node(t.w).rank - n.rank) / 2 + n.rank,
                              e: t,
                            };
                          p.addDummyNode(e, 'edge-proxy', r, '_ep');
                        }
                      });
                    })(e);
                  }),
                  t('    removeEmptyRanks', function () {
                    c(e);
                  }),
                  t('    nestingGraph.cleanup', function () {
                    d.cleanup(e);
                  }),
                  t('    normalizeRanks', function () {
                    a(e);
                  }),
                  t('    assignRankMinMax', function () {
                    !(function (e) {
                      var t = 0;
                      n.forEach(e.nodes(), function (i) {
                        var r = e.node(i);
                        r.borderTop &&
                          ((r.minRank = e.node(r.borderTop).rank),
                          (r.maxRank = e.node(r.borderBottom).rank),
                          (t = n.max(t, r.maxRank)));
                      }),
                        (e.graph().maxRank = t);
                    })(e);
                  }),
                  t('    removeEdgeLabelProxies', function () {
                    !(function (e) {
                      n.forEach(e.nodes(), function (t) {
                        var i = e.node(t);
                        'edge-proxy' === i.dummy &&
                          ((e.edge(i.e).labelRank = i.rank), e.removeNode(t));
                      });
                    })(e);
                  }),
                  t('    normalize.run', function () {
                    s.run(e);
                  }),
                  t('    parentDummyChains', function () {
                    l(e);
                  }),
                  t('    addBorderSegments', function () {
                    h(e);
                  }),
                  t('    order', function () {
                    g(e);
                  }),
                  t('    insertSelfEdges', function () {
                    !(function (e) {
                      var t = p.buildLayerMatrix(e);
                      n.forEach(t, function (t) {
                        var i = 0;
                        n.forEach(t, function (t, r) {
                          var s = e.node(t);
                          (s.order = r + i),
                            n.forEach(s.selfEdges, function (t) {
                              p.addDummyNode(
                                e,
                                'selfedge',
                                {
                                  width: t.label.width,
                                  height: t.label.height,
                                  rank: s.rank,
                                  order: r + ++i,
                                  e: t.e,
                                  label: t.label,
                                },
                                '_se'
                              );
                            }),
                            delete s.selfEdges;
                        });
                      });
                    })(e);
                  }),
                  t('    adjustCoordinateSystem', function () {
                    u.adjust(e);
                  }),
                  t('    position', function () {
                    f(e);
                  }),
                  t('    positionSelfEdges', function () {
                    !(function (e) {
                      n.forEach(e.nodes(), function (t) {
                        var i = e.node(t);
                        if ('selfedge' === i.dummy) {
                          var n = e.node(i.e.v),
                            r = n.x + n.width / 2,
                            s = n.y,
                            o = i.x - r,
                            a = n.height / 2;
                          e.setEdge(i.e, i.label),
                            e.removeNode(t),
                            (i.label.points = [
                              { x: r + (2 * o) / 3, y: s - a },
                              { x: r + (5 * o) / 6, y: s - a },
                              { x: r + o, y: s },
                              { x: r + (5 * o) / 6, y: s + a },
                              { x: r + (2 * o) / 3, y: s + a },
                            ]),
                            (i.label.x = i.x),
                            (i.label.y = i.y);
                        }
                      });
                    })(e);
                  }),
                  t('    removeBorderNodes', function () {
                    !(function (e) {
                      n.forEach(e.nodes(), function (t) {
                        if (e.children(t).length) {
                          var i = e.node(t),
                            r = e.node(i.borderTop),
                            s = e.node(i.borderBottom),
                            o = e.node(n.last(i.borderLeft)),
                            a = e.node(n.last(i.borderRight));
                          (i.width = Math.abs(a.x - o.x)),
                            (i.height = Math.abs(s.y - r.y)),
                            (i.x = o.x + i.width / 2),
                            (i.y = r.y + i.height / 2);
                        }
                      }),
                        n.forEach(e.nodes(), function (t) {
                          'border' === e.node(t).dummy && e.removeNode(t);
                        });
                    })(e);
                  }),
                  t('    normalize.undo', function () {
                    s.undo(e);
                  }),
                  t('    fixupEdgeLabelCoords', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i = e.edge(t);
                        if (n.has(i, 'x'))
                          switch (
                            (('l' !== i.labelpos && 'r' !== i.labelpos) ||
                              (i.width -= i.labeloffset),
                            i.labelpos)
                          ) {
                            case 'l':
                              i.x -= i.width / 2 + i.labeloffset;
                              break;
                            case 'r':
                              i.x += i.width / 2 + i.labeloffset;
                          }
                      });
                    })(e);
                  }),
                  t('    undoCoordinateSystem', function () {
                    u.undo(e);
                  }),
                  t('    translateGraph', function () {
                    !(function (e) {
                      var t = Number.POSITIVE_INFINITY,
                        i = 0,
                        r = Number.POSITIVE_INFINITY,
                        s = 0,
                        o = e.graph(),
                        a = o.marginx || 0,
                        l = o.marginy || 0;
                      function c(e) {
                        var n = e.x,
                          o = e.y,
                          a = e.width,
                          l = e.height;
                        (t = Math.min(t, n - a / 2)),
                          (i = Math.max(i, n + a / 2)),
                          (r = Math.min(r, o - l / 2)),
                          (s = Math.max(s, o + l / 2));
                      }
                      n.forEach(e.nodes(), function (t) {
                        c(e.node(t));
                      }),
                        n.forEach(e.edges(), function (t) {
                          var i = e.edge(t);
                          n.has(i, 'x') && c(i);
                        }),
                        (t -= a),
                        (r -= l),
                        n.forEach(e.nodes(), function (i) {
                          var n = e.node(i);
                          (n.x -= t), (n.y -= r);
                        }),
                        n.forEach(e.edges(), function (i) {
                          var s = e.edge(i);
                          n.forEach(s.points, function (e) {
                            (e.x -= t), (e.y -= r);
                          }),
                            n.has(s, 'x') && (s.x -= t),
                            n.has(s, 'y') && (s.y -= r);
                        }),
                        (o.width = i - t + a),
                        (o.height = s - r + l);
                    })(e);
                  }),
                  t('    assignNodeIntersects', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i,
                          n,
                          r = e.edge(t),
                          s = e.node(t.v),
                          o = e.node(t.w);
                        r.points
                          ? ((i = r.points[0]),
                            (n = r.points[r.points.length - 1]))
                          : ((r.points = []), (i = o), (n = s)),
                          r.points.unshift(p.intersectRect(s, i)),
                          r.points.push(p.intersectRect(o, n));
                      });
                    })(e);
                  }),
                  t('    reversePoints', function () {
                    !(function (e) {
                      n.forEach(e.edges(), function (t) {
                        var i = e.edge(t);
                        i.reversed && i.points.reverse();
                      });
                    })(e);
                  }),
                  t('    acyclic.undo', function () {
                    r.undo(e);
                  });
              })(t, i);
            }),
              i('  updateInputGraph', function () {
                !(function (e, t) {
                  n.forEach(e.nodes(), function (i) {
                    var n = e.node(i),
                      r = t.node(i);
                    n &&
                      ((n.x = r.x),
                      (n.y = r.y),
                      t.children(i).length &&
                        ((n.width = r.width), (n.height = r.height)));
                  }),
                    n.forEach(e.edges(), function (i) {
                      var r = e.edge(i),
                        s = t.edge(i);
                      (r.points = s.points),
                        n.has(s, 'x') && ((r.x = s.x), (r.y = s.y));
                    }),
                    (e.graph().width = t.graph().width),
                    (e.graph().height = t.graph().height);
                })(e, t);
              });
          });
        };
        var _ = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'],
          b = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' },
          v = ['acyclicer', 'ranker', 'rankdir', 'align'],
          y = ['width', 'height'],
          w = { width: 0, height: 0 },
          C = ['minlen', 'weight', 'width', 'height', 'labeloffset'],
          S = {
            minlen: 1,
            weight: 1,
            width: 0,
            height: 0,
            labeloffset: 10,
            labelpos: 'r',
          },
          k = ['labelpos'];
        function x(e, t) {
          return n.mapValues(n.pick(e, t), Number);
        }
        function L(e) {
          var t = {};
          return (
            n.forEach(e, function (e, i) {
              t[i.toLowerCase()] = e;
            }),
            t
          );
        }
      },
      38436: (e, t, i) => {
        var n;
        try {
          n = {
            cloneDeep: i(50361),
            constant: i(75703),
            defaults: i(91747),
            each: i(66073),
            filter: i(63105),
            find: i(13311),
            flatten: i(85564),
            forEach: i(84486),
            forIn: i(62620),
            has: i(18721),
            isUndefined: i(52353),
            last: i(10928),
            map: i(35161),
            mapValues: i(66604),
            max: i(6162),
            merge: i(82492),
            min: i(53632),
            minBy: i(22762),
            now: i(7771),
            pick: i(78718),
            range: i(96026),
            reduce: i(54061),
            sortBy: i(89734),
            uniqueId: i(73955),
            values: i(52628),
            zipObject: i(7287),
          };
        } catch (e) {}
        n || (n = window._), (e.exports = n);
      },
      72981: (e, t, i) => {
        var n = i(38436),
          r = i(11138);
        function s(e, t, i, o, a, l, c) {
          var d = e.children(c);
          if (d.length) {
            var h = r.addBorderNode(e, '_bt'),
              u = r.addBorderNode(e, '_bb'),
              g = e.node(c);
            e.setParent(h, c),
              (g.borderTop = h),
              e.setParent(u, c),
              (g.borderBottom = u),
              n.forEach(d, function (n) {
                s(e, t, i, o, a, l, n);
                var r = e.node(n),
                  d = r.borderTop ? r.borderTop : n,
                  g = r.borderBottom ? r.borderBottom : n,
                  f = r.borderTop ? o : 2 * o,
                  p = d !== g ? 1 : a - l[c] + 1;
                e.setEdge(h, d, { weight: f, minlen: p, nestingEdge: !0 }),
                  e.setEdge(g, u, { weight: f, minlen: p, nestingEdge: !0 });
              }),
              e.parent(c) || e.setEdge(t, h, { weight: 0, minlen: a + l[c] });
          } else c !== t && e.setEdge(t, c, { weight: 0, minlen: i });
        }
        e.exports = {
          run: function (e) {
            var t = r.addDummyNode(e, 'root', {}, '_root'),
              i = (function (e) {
                var t = {};
                function i(r, s) {
                  var o = e.children(r);
                  o &&
                    o.length &&
                    n.forEach(o, function (e) {
                      i(e, s + 1);
                    }),
                    (t[r] = s);
                }
                return (
                  n.forEach(e.children(), function (e) {
                    i(e, 1);
                  }),
                  t
                );
              })(e),
              o = n.max(n.values(i)) - 1,
              a = 2 * o + 1;
            (e.graph().nestingRoot = t),
              n.forEach(e.edges(), function (t) {
                e.edge(t).minlen *= a;
              });
            var l =
              (function (e) {
                return n.reduce(
                  e.edges(),
                  function (t, i) {
                    return t + e.edge(i).weight;
                  },
                  0
                );
              })(e) + 1;
            n.forEach(e.children(), function (n) {
              s(e, t, a, l, o, i, n);
            }),
              (e.graph().nodeRankFactor = a);
          },
          cleanup: function (e) {
            var t = e.graph();
            e.removeNode(t.nestingRoot),
              delete t.nestingRoot,
              n.forEach(e.edges(), function (t) {
                e.edge(t).nestingEdge && e.removeEdge(t);
              });
          },
        };
      },
      45995: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(11138);
        e.exports = {
          run: function (e) {
            (e.graph().dummyChains = []),
              n.forEach(e.edges(), function (t) {
                !(function (e, t) {
                  var i,
                    n,
                    s,
                    o = t.v,
                    a = e.node(o).rank,
                    l = t.w,
                    c = e.node(l).rank,
                    d = t.name,
                    h = e.edge(t),
                    u = h.labelRank;
                  if (c !== a + 1) {
                    for (e.removeEdge(t), s = 0, ++a; a < c; ++s, ++a)
                      (h.points = []),
                        (n = {
                          width: 0,
                          height: 0,
                          edgeLabel: h,
                          edgeObj: t,
                          rank: a,
                        }),
                        (i = r.addDummyNode(e, 'edge', n, '_d')),
                        a === u &&
                          ((n.width = h.width),
                          (n.height = h.height),
                          (n.dummy = 'edge-label'),
                          (n.labelpos = h.labelpos)),
                        e.setEdge(o, i, { weight: h.weight }, d),
                        0 === s && e.graph().dummyChains.push(i),
                        (o = i);
                    e.setEdge(o, l, { weight: h.weight }, d);
                  }
                })(e, t);
              });
          },
          undo: function (e) {
            n.forEach(e.graph().dummyChains, function (t) {
              var i,
                n = e.node(t),
                r = n.edgeLabel;
              for (e.setEdge(n.edgeObj, r); n.dummy; )
                (i = e.successors(t)[0]),
                  e.removeNode(t),
                  r.points.push({ x: n.x, y: n.y }),
                  'edge-label' === n.dummy &&
                    ((r.x = n.x),
                    (r.y = n.y),
                    (r.width = n.width),
                    (r.height = n.height)),
                  (t = i),
                  (n = e.node(t));
            });
          },
        };
      },
      55093: (e, t, i) => {
        var n = i(38436);
        e.exports = function (e, t, i) {
          var r,
            s = {};
          n.forEach(i, function (i) {
            for (var n, o, a = e.parent(i); a; ) {
              if (
                ((n = e.parent(a))
                  ? ((o = s[n]), (s[n] = a))
                  : ((o = r), (r = a)),
                o && o !== a)
              )
                return void t.setEdge(o, a);
              a = n;
            }
          });
        };
      },
      35439: (e, t, i) => {
        var n = i(38436);
        e.exports = function (e, t) {
          return n.map(t, function (t) {
            var i = e.inEdges(t);
            if (i.length) {
              var r = n.reduce(
                i,
                function (t, i) {
                  var n = e.edge(i),
                    r = e.node(i.v);
                  return {
                    sum: t.sum + n.weight * r.order,
                    weight: t.weight + n.weight,
                  };
                },
                { sum: 0, weight: 0 }
              );
              return { v: t, barycenter: r.sum / r.weight, weight: r.weight };
            }
            return { v: t };
          });
        };
      },
      23128: (e, t, i) => {
        var n = i(38436),
          r = i(70574).Graph;
        e.exports = function (e, t, i) {
          var s = (function (e) {
              for (var t; e.hasNode((t = n.uniqueId('_root'))); );
              return t;
            })(e),
            o = new r({ compound: !0 })
              .setGraph({ root: s })
              .setDefaultNodeLabel(function (t) {
                return e.node(t);
              });
          return (
            n.forEach(e.nodes(), function (r) {
              var a = e.node(r),
                l = e.parent(r);
              (a.rank === t || (a.minRank <= t && t <= a.maxRank)) &&
                (o.setNode(r),
                o.setParent(r, l || s),
                n.forEach(e[i](r), function (t) {
                  var i = t.v === r ? t.w : t.v,
                    s = o.edge(i, r),
                    a = n.isUndefined(s) ? 0 : s.weight;
                  o.setEdge(i, r, { weight: e.edge(t).weight + a });
                }),
                n.has(a, 'minRank') &&
                  o.setNode(r, {
                    borderLeft: a.borderLeft[t],
                    borderRight: a.borderRight[t],
                  }));
            }),
            o
          );
        };
      },
      56630: (e, t, i) => {
        'use strict';
        var n = i(38436);
        function r(e, t, i) {
          for (
            var r = n.zipObject(
                i,
                n.map(i, function (e, t) {
                  return t;
                })
              ),
              s = n.flatten(
                n.map(t, function (t) {
                  return n.sortBy(
                    n.map(e.outEdges(t), function (t) {
                      return { pos: r[t.w], weight: e.edge(t).weight };
                    }),
                    'pos'
                  );
                }),
                !0
              ),
              o = 1;
            o < i.length;

          )
            o <<= 1;
          var a = 2 * o - 1;
          o -= 1;
          var l = n.map(new Array(a), function () {
              return 0;
            }),
            c = 0;
          return (
            n.forEach(
              s.forEach(function (e) {
                var t = e.pos + o;
                l[t] += e.weight;
                for (var i = 0; t > 0; )
                  t % 2 && (i += l[t + 1]), (l[(t = (t - 1) >> 1)] += e.weight);
                c += e.weight * i;
              })
            ),
            c
          );
        }
        e.exports = function (e, t) {
          for (var i = 0, n = 1; n < t.length; ++n) i += r(e, t[n - 1], t[n]);
          return i;
        };
      },
      53408: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(2588),
          s = i(56630),
          o = i(61026),
          a = i(23128),
          l = i(55093),
          c = i(70574).Graph,
          d = i(11138);
        function h(e, t, i) {
          return n.map(t, function (t) {
            return a(e, t, i);
          });
        }
        function u(e, t) {
          var i = new c();
          n.forEach(e, function (e) {
            var r = e.graph().root,
              s = o(e, r, i, t);
            n.forEach(s.vs, function (t, i) {
              e.node(t).order = i;
            }),
              l(e, i, s.vs);
          });
        }
        function g(e, t) {
          n.forEach(t, function (t) {
            n.forEach(t, function (t, i) {
              e.node(t).order = i;
            });
          });
        }
        e.exports = function (e) {
          var t = d.maxRank(e),
            i = h(e, n.range(1, t + 1), 'inEdges'),
            o = h(e, n.range(t - 1, -1, -1), 'outEdges'),
            a = r(e);
          g(e, a);
          for (
            var l, c = Number.POSITIVE_INFINITY, f = 0, p = 0;
            p < 4;
            ++f, ++p
          ) {
            u(f % 2 ? i : o, f % 4 >= 2), (a = d.buildLayerMatrix(e));
            var m = s(e, a);
            m < c && ((p = 0), (l = n.cloneDeep(a)), (c = m));
          }
          g(e, l);
        };
      },
      2588: (e, t, i) => {
        'use strict';
        var n = i(38436);
        e.exports = function (e) {
          var t = {},
            i = n.filter(e.nodes(), function (t) {
              return !e.children(t).length;
            }),
            r = n.max(
              n.map(i, function (t) {
                return e.node(t).rank;
              })
            ),
            s = n.map(n.range(r + 1), function () {
              return [];
            }),
            o = n.sortBy(i, function (t) {
              return e.node(t).rank;
            });
          return (
            n.forEach(o, function i(r) {
              if (!n.has(t, r)) {
                t[r] = !0;
                var o = e.node(r);
                s[o.rank].push(r), n.forEach(e.successors(r), i);
              }
            }),
            s
          );
        };
      },
      83678: (e, t, i) => {
        'use strict';
        var n = i(38436);
        e.exports = function (e, t) {
          var i = {};
          return (
            n.forEach(e, function (e, t) {
              var r = (i[e.v] = {
                indegree: 0,
                in: [],
                out: [],
                vs: [e.v],
                i: t,
              });
              n.isUndefined(e.barycenter) ||
                ((r.barycenter = e.barycenter), (r.weight = e.weight));
            }),
            n.forEach(t.edges(), function (e) {
              var t = i[e.v],
                r = i[e.w];
              n.isUndefined(t) ||
                n.isUndefined(r) ||
                (r.indegree++, t.out.push(i[e.w]));
            }),
            (function (e) {
              var t = [];
              function i(e) {
                return function (t) {
                  var i, r, s, o;
                  t.merged ||
                    ((n.isUndefined(t.barycenter) ||
                      n.isUndefined(e.barycenter) ||
                      t.barycenter >= e.barycenter) &&
                      ((r = t),
                      (s = 0),
                      (o = 0),
                      (i = e).weight &&
                        ((s += i.barycenter * i.weight), (o += i.weight)),
                      r.weight &&
                        ((s += r.barycenter * r.weight), (o += r.weight)),
                      (i.vs = r.vs.concat(i.vs)),
                      (i.barycenter = s / o),
                      (i.weight = o),
                      (i.i = Math.min(r.i, i.i)),
                      (r.merged = !0)));
                };
              }
              function r(t) {
                return function (i) {
                  i.in.push(t), 0 == --i.indegree && e.push(i);
                };
              }
              for (; e.length; ) {
                var s = e.pop();
                t.push(s),
                  n.forEach(s.in.reverse(), i(s)),
                  n.forEach(s.out, r(s));
              }
              return n.map(
                n.filter(t, function (e) {
                  return !e.merged;
                }),
                function (e) {
                  return n.pick(e, ['vs', 'i', 'barycenter', 'weight']);
                }
              );
            })(
              n.filter(i, function (e) {
                return !e.indegree;
              })
            )
          );
        };
      },
      61026: (e, t, i) => {
        var n = i(38436),
          r = i(35439),
          s = i(83678),
          o = i(87304);
        e.exports = function e(t, i, a, l) {
          var c = t.children(i),
            d = t.node(i),
            h = d ? d.borderLeft : void 0,
            u = d ? d.borderRight : void 0,
            g = {};
          h &&
            (c = n.filter(c, function (e) {
              return e !== h && e !== u;
            }));
          var f = r(t, c);
          n.forEach(f, function (i) {
            if (t.children(i.v).length) {
              var r = e(t, i.v, a, l);
              (g[i.v] = r),
                n.has(r, 'barycenter') &&
                  ((s = i),
                  (o = r),
                  n.isUndefined(s.barycenter)
                    ? ((s.barycenter = o.barycenter), (s.weight = o.weight))
                    : ((s.barycenter =
                        (s.barycenter * s.weight + o.barycenter * o.weight) /
                        (s.weight + o.weight)),
                      (s.weight += o.weight)));
            }
            var s, o;
          });
          var p = s(f, a);
          !(function (e, t) {
            n.forEach(e, function (e) {
              e.vs = n.flatten(
                e.vs.map(function (e) {
                  return t[e] ? t[e].vs : e;
                }),
                !0
              );
            });
          })(p, g);
          var m = o(p, l);
          if (
            h &&
            ((m.vs = n.flatten([h, m.vs, u], !0)), t.predecessors(h).length)
          ) {
            var _ = t.node(t.predecessors(h)[0]),
              b = t.node(t.predecessors(u)[0]);
            n.has(m, 'barycenter') || ((m.barycenter = 0), (m.weight = 0)),
              (m.barycenter =
                (m.barycenter * m.weight + _.order + b.order) / (m.weight + 2)),
              (m.weight += 2);
          }
          return m;
        };
      },
      87304: (e, t, i) => {
        var n = i(38436),
          r = i(11138);
        function s(e, t, i) {
          for (var r; t.length && (r = n.last(t)).i <= i; )
            t.pop(), e.push(r.vs), i++;
          return i;
        }
        e.exports = function (e, t) {
          var i,
            o = r.partition(e, function (e) {
              return n.has(e, 'barycenter');
            }),
            a = o.lhs,
            l = n.sortBy(o.rhs, function (e) {
              return -e.i;
            }),
            c = [],
            d = 0,
            h = 0,
            u = 0;
          a.sort(
            ((i = !!t),
            function (e, t) {
              return e.barycenter < t.barycenter
                ? -1
                : e.barycenter > t.barycenter
                ? 1
                : i
                ? t.i - e.i
                : e.i - t.i;
            })
          ),
            (u = s(c, l, u)),
            n.forEach(a, function (e) {
              (u += e.vs.length),
                c.push(e.vs),
                (d += e.barycenter * e.weight),
                (h += e.weight),
                (u = s(c, l, u));
            });
          var g = { vs: n.flatten(c, !0) };
          return h && ((g.barycenter = d / h), (g.weight = h)), g;
        };
      },
      24219: (e, t, i) => {
        var n = i(38436);
        e.exports = function (e) {
          var t = (function (e) {
            var t = {},
              i = 0;
            return (
              n.forEach(e.children(), function r(s) {
                var o = i;
                n.forEach(e.children(s), r), (t[s] = { low: o, lim: i++ });
              }),
              t
            );
          })(e);
          n.forEach(e.graph().dummyChains, function (i) {
            for (
              var n = e.node(i),
                r = n.edgeObj,
                s = (function (e, t, i, n) {
                  var r,
                    s,
                    o = [],
                    a = [],
                    l = Math.min(t[i].low, t[n].low),
                    c = Math.max(t[i].lim, t[n].lim);
                  r = i;
                  do {
                    (r = e.parent(r)), o.push(r);
                  } while (r && (t[r].low > l || c > t[r].lim));
                  for (s = r, r = n; (r = e.parent(r)) !== s; ) a.push(r);
                  return { path: o.concat(a.reverse()), lca: s };
                })(e, t, r.v, r.w),
                o = s.path,
                a = s.lca,
                l = 0,
                c = o[l],
                d = !0;
              i !== r.w;

            ) {
              if (((n = e.node(i)), d)) {
                for (; (c = o[l]) !== a && e.node(c).maxRank < n.rank; ) l++;
                c === a && (d = !1);
              }
              if (!d) {
                for (
                  ;
                  l < o.length - 1 && e.node((c = o[l + 1])).minRank <= n.rank;

                )
                  l++;
                c = o[l];
              }
              e.setParent(i, c), (i = e.successors(i)[0]);
            }
          });
        };
      },
      3573: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(70574).Graph,
          s = i(11138);
        function o(e, t) {
          var i = {};
          return (
            n.reduce(t, function (t, r) {
              var s = 0,
                o = 0,
                a = t.length,
                c = n.last(r);
              return (
                n.forEach(r, function (t, d) {
                  var h = (function (e, t) {
                      if (e.node(t).dummy)
                        return n.find(e.predecessors(t), function (t) {
                          return e.node(t).dummy;
                        });
                    })(e, t),
                    u = h ? e.node(h).order : a;
                  (h || t === c) &&
                    (n.forEach(r.slice(o, d + 1), function (t) {
                      n.forEach(e.predecessors(t), function (n) {
                        var r = e.node(n),
                          o = r.order;
                        !(o < s || u < o) ||
                          (r.dummy && e.node(t).dummy) ||
                          l(i, n, t);
                      });
                    }),
                    (o = d + 1),
                    (s = u));
                }),
                r
              );
            }),
            i
          );
        }
        function a(e, t) {
          var i = {};
          function r(t, r, s, o, a) {
            var c;
            n.forEach(n.range(r, s), function (r) {
              (c = t[r]),
                e.node(c).dummy &&
                  n.forEach(e.predecessors(c), function (t) {
                    var n = e.node(t);
                    n.dummy && (n.order < o || n.order > a) && l(i, t, c);
                  });
            });
          }
          return (
            n.reduce(t, function (t, i) {
              var s,
                o = -1,
                a = 0;
              return (
                n.forEach(i, function (n, l) {
                  if ('border' === e.node(n).dummy) {
                    var c = e.predecessors(n);
                    c.length &&
                      ((s = e.node(c[0]).order),
                      r(i, a, l, o, s),
                      (a = l),
                      (o = s));
                  }
                  r(i, a, i.length, s, t.length);
                }),
                i
              );
            }),
            i
          );
        }
        function l(e, t, i) {
          if (t > i) {
            var n = t;
            (t = i), (i = n);
          }
          var r = e[t];
          r || (e[t] = r = {}), (r[i] = !0);
        }
        function c(e, t, i) {
          if (t > i) {
            var r = t;
            (t = i), (i = r);
          }
          return n.has(e[t], i);
        }
        function d(e, t, i, r) {
          var s = {},
            o = {},
            a = {};
          return (
            n.forEach(t, function (e) {
              n.forEach(e, function (e, t) {
                (s[e] = e), (o[e] = e), (a[e] = t);
              });
            }),
            n.forEach(t, function (e) {
              var t = -1;
              n.forEach(e, function (e) {
                var l = r(e);
                if (l.length)
                  for (
                    var d =
                        ((l = n.sortBy(l, function (e) {
                          return a[e];
                        })).length -
                          1) /
                        2,
                      h = Math.floor(d),
                      u = Math.ceil(d);
                    h <= u;
                    ++h
                  ) {
                    var g = l[h];
                    o[e] === e &&
                      t < a[g] &&
                      !c(i, e, g) &&
                      ((o[g] = e), (o[e] = s[e] = s[g]), (t = a[g]));
                  }
              });
            }),
            { root: s, align: o }
          );
        }
        function h(e, t, i, s, o) {
          var a = {},
            l = (function (e, t, i, s) {
              var o = new r(),
                a = e.graph(),
                l = (function (e, t, i) {
                  return function (r, s, o) {
                    var a,
                      l = r.node(s),
                      c = r.node(o),
                      d = 0;
                    if (((d += l.width / 2), n.has(l, 'labelpos')))
                      switch (l.labelpos.toLowerCase()) {
                        case 'l':
                          a = -l.width / 2;
                          break;
                        case 'r':
                          a = l.width / 2;
                      }
                    if (
                      (a && (d += i ? a : -a),
                      (a = 0),
                      (d += (l.dummy ? t : e) / 2),
                      (d += (c.dummy ? t : e) / 2),
                      (d += c.width / 2),
                      n.has(c, 'labelpos'))
                    )
                      switch (c.labelpos.toLowerCase()) {
                        case 'l':
                          a = c.width / 2;
                          break;
                        case 'r':
                          a = -c.width / 2;
                      }
                    return a && (d += i ? a : -a), (a = 0), d;
                  };
                })(a.nodesep, a.edgesep, s);
              return (
                n.forEach(t, function (t) {
                  var r;
                  n.forEach(t, function (t) {
                    var n = i[t];
                    if ((o.setNode(n), r)) {
                      var s = i[r],
                        a = o.edge(s, n);
                      o.setEdge(s, n, Math.max(l(e, t, r), a || 0));
                    }
                    r = t;
                  });
                }),
                o
              );
            })(e, t, i, o),
            c = o ? 'borderLeft' : 'borderRight';
          function d(e, t) {
            for (var i = l.nodes(), n = i.pop(), r = {}; n; )
              r[n] ? e(n) : ((r[n] = !0), i.push(n), (i = i.concat(t(n)))),
                (n = i.pop());
          }
          return (
            d(function (e) {
              a[e] = l.inEdges(e).reduce(function (e, t) {
                return Math.max(e, a[t.v] + l.edge(t));
              }, 0);
            }, l.predecessors.bind(l)),
            d(function (t) {
              var i = l.outEdges(t).reduce(function (e, t) {
                  return Math.min(e, a[t.w] - l.edge(t));
                }, Number.POSITIVE_INFINITY),
                n = e.node(t);
              i !== Number.POSITIVE_INFINITY &&
                n.borderType !== c &&
                (a[t] = Math.max(a[t], i));
            }, l.successors.bind(l)),
            n.forEach(s, function (e) {
              a[e] = a[i[e]];
            }),
            a
          );
        }
        function u(e, t) {
          return n.minBy(n.values(t), function (t) {
            var i = Number.NEGATIVE_INFINITY,
              r = Number.POSITIVE_INFINITY;
            return (
              n.forIn(t, function (t, n) {
                var s =
                  (function (e, t) {
                    return e.node(t).width;
                  })(e, n) / 2;
                (i = Math.max(t + s, i)), (r = Math.min(t - s, r));
              }),
              i - r
            );
          });
        }
        function g(e, t) {
          var i = n.values(t),
            r = n.min(i),
            s = n.max(i);
          n.forEach(['u', 'd'], function (i) {
            n.forEach(['l', 'r'], function (o) {
              var a,
                l = i + o,
                c = e[l];
              if (c !== t) {
                var d = n.values(c);
                (a = 'l' === o ? r - n.min(d) : s - n.max(d)) &&
                  (e[l] = n.mapValues(c, function (e) {
                    return e + a;
                  }));
              }
            });
          });
        }
        function f(e, t) {
          return n.mapValues(e.ul, function (i, r) {
            if (t) return e[t.toLowerCase()][r];
            var s = n.sortBy(n.map(e, r));
            return (s[1] + s[2]) / 2;
          });
        }
        e.exports = {
          positionX: function (e) {
            var t,
              i = s.buildLayerMatrix(e),
              r = n.merge(o(e, i), a(e, i)),
              l = {};
            n.forEach(['u', 'd'], function (s) {
              (t = 'u' === s ? i : n.values(i).reverse()),
                n.forEach(['l', 'r'], function (i) {
                  'r' === i &&
                    (t = n.map(t, function (e) {
                      return n.values(e).reverse();
                    }));
                  var o = ('u' === s ? e.predecessors : e.successors).bind(e),
                    a = d(0, t, r, o),
                    c = h(e, t, a.root, a.align, 'r' === i);
                  'r' === i &&
                    (c = n.mapValues(c, function (e) {
                      return -e;
                    })),
                    (l[s + i] = c);
                });
            });
            var c = u(e, l);
            return g(l, c), f(l, e.graph().align);
          },
          findType1Conflicts: o,
          findType2Conflicts: a,
          addConflict: l,
          hasConflict: c,
          verticalAlignment: d,
          horizontalCompaction: h,
          alignCoordinates: g,
          findSmallestWidthAlignment: u,
          balance: f,
        };
      },
      17873: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(11138),
          s = i(3573).positionX;
        e.exports = function (e) {
          (function (e) {
            var t = r.buildLayerMatrix(e),
              i = e.graph().ranksep,
              s = 0;
            n.forEach(t, function (t) {
              var r = n.max(
                n.map(t, function (t) {
                  return e.node(t).height;
                })
              );
              n.forEach(t, function (t) {
                e.node(t).y = s + r / 2;
              }),
                (s += r + i);
            });
          })((e = r.asNonCompoundGraph(e))),
            n.forEach(s(e), function (t, i) {
              e.node(i).x = t;
            });
        };
      },
      20300: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(70574).Graph,
          s = i(76681).slack;
        function o(e, t) {
          return (
            n.forEach(e.nodes(), function i(r) {
              n.forEach(t.nodeEdges(r), function (n) {
                var o = n.v,
                  a = r === o ? n.w : o;
                e.hasNode(a) ||
                  s(t, n) ||
                  (e.setNode(a, {}), e.setEdge(r, a, {}), i(a));
              });
            }),
            e.nodeCount()
          );
        }
        function a(e, t) {
          return n.minBy(t.edges(), function (i) {
            if (e.hasNode(i.v) !== e.hasNode(i.w)) return s(t, i);
          });
        }
        function l(e, t, i) {
          n.forEach(e.nodes(), function (e) {
            t.node(e).rank += i;
          });
        }
        e.exports = function (e) {
          var t,
            i,
            n = new r({ directed: !1 }),
            c = e.nodes()[0],
            d = e.nodeCount();
          for (n.setNode(c, {}); o(n, e) < d; )
            (t = a(n, e)),
              (i = n.hasNode(t.v) ? s(e, t) : -s(e, t)),
              l(n, e, i);
          return n;
        };
      },
      78093: (e, t, i) => {
        'use strict';
        var n = i(76681).longestPath,
          r = i(20300),
          s = i(42472);
        e.exports = function (e) {
          switch (e.graph().ranker) {
            case 'network-simplex':
              a(e);
              break;
            case 'tight-tree':
              !(function (e) {
                n(e), r(e);
              })(e);
              break;
            case 'longest-path':
              o(e);
              break;
            default:
              a(e);
          }
        };
        var o = n;
        function a(e) {
          s(e);
        }
      },
      42472: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(20300),
          s = i(76681).slack,
          o = i(76681).longestPath,
          a = i(70574).alg.preorder,
          l = i(70574).alg.postorder,
          c = i(11138).simplify;
        function d(e) {
          (e = c(e)), o(e);
          var t,
            i = r(e);
          for (g(i), h(i, e); (t = p(i)); ) _(i, e, t, m(i, e, t));
        }
        function h(e, t) {
          var i = l(e, e.nodes());
          (i = i.slice(0, i.length - 1)),
            n.forEach(i, function (i) {
              !(function (e, t, i) {
                var n = e.node(i).parent;
                e.edge(i, n).cutvalue = u(e, t, i);
              })(e, t, i);
            });
        }
        function u(e, t, i) {
          var r = e.node(i).parent,
            s = !0,
            o = t.edge(i, r),
            a = 0;
          return (
            o || ((s = !1), (o = t.edge(r, i))),
            (a = o.weight),
            n.forEach(t.nodeEdges(i), function (n) {
              var o,
                l,
                c = n.v === i,
                d = c ? n.w : n.v;
              if (d !== r) {
                var h = c === s,
                  u = t.edge(n).weight;
                if (((a += h ? u : -u), (o = i), (l = d), e.hasEdge(o, l))) {
                  var g = e.edge(i, d).cutvalue;
                  a += h ? -g : g;
                }
              }
            }),
            a
          );
        }
        function g(e, t) {
          arguments.length < 2 && (t = e.nodes()[0]), f(e, {}, 1, t);
        }
        function f(e, t, i, r, s) {
          var o = i,
            a = e.node(r);
          return (
            (t[r] = !0),
            n.forEach(e.neighbors(r), function (s) {
              n.has(t, s) || (i = f(e, t, i, s, r));
            }),
            (a.low = o),
            (a.lim = i++),
            s ? (a.parent = s) : delete a.parent,
            i
          );
        }
        function p(e) {
          return n.find(e.edges(), function (t) {
            return e.edge(t).cutvalue < 0;
          });
        }
        function m(e, t, i) {
          var r = i.v,
            o = i.w;
          t.hasEdge(r, o) || ((r = i.w), (o = i.v));
          var a = e.node(r),
            l = e.node(o),
            c = a,
            d = !1;
          a.lim > l.lim && ((c = l), (d = !0));
          var h = n.filter(t.edges(), function (t) {
            return d === b(0, e.node(t.v), c) && d !== b(0, e.node(t.w), c);
          });
          return n.minBy(h, function (e) {
            return s(t, e);
          });
        }
        function _(e, t, i, r) {
          var s = i.v,
            o = i.w;
          e.removeEdge(s, o),
            e.setEdge(r.v, r.w, {}),
            g(e),
            h(e, t),
            (function (e, t) {
              var i = n.find(e.nodes(), function (e) {
                  return !t.node(e).parent;
                }),
                r = a(e, i);
              (r = r.slice(1)),
                n.forEach(r, function (i) {
                  var n = e.node(i).parent,
                    r = t.edge(i, n),
                    s = !1;
                  r || ((r = t.edge(n, i)), (s = !0)),
                    (t.node(i).rank =
                      t.node(n).rank + (s ? r.minlen : -r.minlen));
                });
            })(e, t);
        }
        function b(e, t, i) {
          return i.low <= t.lim && t.lim <= i.lim;
        }
        (e.exports = d),
          (d.initLowLimValues = g),
          (d.initCutValues = h),
          (d.calcCutValue = u),
          (d.leaveEdge = p),
          (d.enterEdge = m),
          (d.exchangeEdges = _);
      },
      76681: (e, t, i) => {
        'use strict';
        var n = i(38436);
        e.exports = {
          longestPath: function (e) {
            var t = {};
            n.forEach(e.sources(), function i(r) {
              var s = e.node(r);
              if (n.has(t, r)) return s.rank;
              t[r] = !0;
              var o = n.min(
                n.map(e.outEdges(r), function (t) {
                  return i(t.w) - e.edge(t).minlen;
                })
              );
              return (
                (o !== Number.POSITIVE_INFINITY && null != o) || (o = 0),
                (s.rank = o)
              );
            });
          },
          slack: function (e, t) {
            return e.node(t.w).rank - e.node(t.v).rank - e.edge(t).minlen;
          },
        };
      },
      11138: (e, t, i) => {
        'use strict';
        var n = i(38436),
          r = i(70574).Graph;
        function s(e, t, i, r) {
          var s;
          do {
            s = n.uniqueId(r);
          } while (e.hasNode(s));
          return (i.dummy = t), e.setNode(s, i), s;
        }
        function o(e) {
          return n.max(
            n.map(e.nodes(), function (t) {
              var i = e.node(t).rank;
              if (!n.isUndefined(i)) return i;
            })
          );
        }
        e.exports = {
          addDummyNode: s,
          simplify: function (e) {
            var t = new r().setGraph(e.graph());
            return (
              n.forEach(e.nodes(), function (i) {
                t.setNode(i, e.node(i));
              }),
              n.forEach(e.edges(), function (i) {
                var n = t.edge(i.v, i.w) || { weight: 0, minlen: 1 },
                  r = e.edge(i);
                t.setEdge(i.v, i.w, {
                  weight: n.weight + r.weight,
                  minlen: Math.max(n.minlen, r.minlen),
                });
              }),
              t
            );
          },
          asNonCompoundGraph: function (e) {
            var t = new r({ multigraph: e.isMultigraph() }).setGraph(e.graph());
            return (
              n.forEach(e.nodes(), function (i) {
                e.children(i).length || t.setNode(i, e.node(i));
              }),
              n.forEach(e.edges(), function (i) {
                t.setEdge(i, e.edge(i));
              }),
              t
            );
          },
          successorWeights: function (e) {
            var t = n.map(e.nodes(), function (t) {
              var i = {};
              return (
                n.forEach(e.outEdges(t), function (t) {
                  i[t.w] = (i[t.w] || 0) + e.edge(t).weight;
                }),
                i
              );
            });
            return n.zipObject(e.nodes(), t);
          },
          predecessorWeights: function (e) {
            var t = n.map(e.nodes(), function (t) {
              var i = {};
              return (
                n.forEach(e.inEdges(t), function (t) {
                  i[t.v] = (i[t.v] || 0) + e.edge(t).weight;
                }),
                i
              );
            });
            return n.zipObject(e.nodes(), t);
          },
          intersectRect: function (e, t) {
            var i,
              n,
              r = e.x,
              s = e.y,
              o = t.x - r,
              a = t.y - s,
              l = e.width / 2,
              c = e.height / 2;
            if (!o && !a)
              throw new Error(
                'Not possible to find intersection inside of the rectangle'
              );
            return (
              Math.abs(a) * l > Math.abs(o) * c
                ? (a < 0 && (c = -c), (i = (c * o) / a), (n = c))
                : (o < 0 && (l = -l), (i = l), (n = (l * a) / o)),
              { x: r + i, y: s + n }
            );
          },
          buildLayerMatrix: function (e) {
            var t = n.map(n.range(o(e) + 1), function () {
              return [];
            });
            return (
              n.forEach(e.nodes(), function (i) {
                var r = e.node(i),
                  s = r.rank;
                n.isUndefined(s) || (t[s][r.order] = i);
              }),
              t
            );
          },
          normalizeRanks: function (e) {
            var t = n.min(
              n.map(e.nodes(), function (t) {
                return e.node(t).rank;
              })
            );
            n.forEach(e.nodes(), function (i) {
              var r = e.node(i);
              n.has(r, 'rank') && (r.rank -= t);
            });
          },
          removeEmptyRanks: function (e) {
            var t = n.min(
                n.map(e.nodes(), function (t) {
                  return e.node(t).rank;
                })
              ),
              i = [];
            n.forEach(e.nodes(), function (n) {
              var r = e.node(n).rank - t;
              i[r] || (i[r] = []), i[r].push(n);
            });
            var r = 0,
              s = e.graph().nodeRankFactor;
            n.forEach(i, function (t, i) {
              n.isUndefined(t) && i % s != 0
                ? --r
                : r &&
                  n.forEach(t, function (t) {
                    e.node(t).rank += r;
                  });
            });
          },
          addBorderNode: function (e, t, i, n) {
            var r = { width: 0, height: 0 };
            return (
              arguments.length >= 4 && ((r.rank = i), (r.order = n)),
              s(e, 'border', r, t)
            );
          },
          maxRank: o,
          partition: function (e, t) {
            var i = { lhs: [], rhs: [] };
            return (
              n.forEach(e, function (e) {
                t(e) ? i.lhs.push(e) : i.rhs.push(e);
              }),
              i
            );
          },
          time: function (e, t) {
            var i = n.now();
            try {
              return t();
            } finally {
              console.log(e + ' time: ' + (n.now() - i) + 'ms');
            }
          },
          notime: function (e, t) {
            return t();
          },
        };
      },
      88177: (e) => {
        e.exports = '0.8.4';
      },
      2268: (e) => {
        'use strict';
        var t = (e.exports = {});
        (t.isIE = function (e) {
          return !(
            (-1 === (t = navigator.userAgent.toLowerCase()).indexOf('msie') &&
              -1 === t.indexOf('trident') &&
              -1 === t.indexOf(' edge/')) ||
            (e &&
              e !==
                (function () {
                  var e = 3,
                    t = document.createElement('div'),
                    i = t.getElementsByTagName('i');
                  do {
                    t.innerHTML =
                      '\x3c!--[if gt IE ' + ++e + ']><i></i><![endif]--\x3e';
                  } while (i[0]);
                  return e > 4 ? e : void 0;
                })())
          );
          var t;
        }),
          (t.isLegacyOpera = function () {
            return !!window.opera;
          });
      },
      17900: (e) => {
        'use strict';
        (e.exports = {}).forEach = function (e, t) {
          for (var i = 0; i < e.length; i++) {
            var n = t(e[i]);
            if (n) return n;
          }
        };
      },
      58229: (e, t, i) => {
        'use strict';
        var n = i(2268);
        e.exports = function (e) {
          var t = (e = e || {}).reporter,
            i = e.batchProcessor,
            r = e.stateHandler.getState;
          if (!t) throw new Error('Missing required dependency: reporter.');
          function s(t) {
            var i = e.important ? ' !important; ' : '; ';
            return (t.join(i) + i).trim();
          }
          function o(e) {
            return r(e).object;
          }
          return {
            makeDetectable: function (e, o, a) {
              a || ((a = o), (o = e), (e = null)),
                (e = e || {}).debug,
                n.isIE(8)
                  ? a(o)
                  : (function (o, a) {
                      var l = s([
                          'display: block',
                          'position: absolute',
                          'top: 0',
                          'left: 0',
                          'width: 100%',
                          'height: 100%',
                          'border: none',
                          'padding: 0',
                          'margin: 0',
                          'opacity: 0',
                          'z-index: -1000',
                          'pointer-events: none',
                        ]),
                        c = !1,
                        d = window.getComputedStyle(o),
                        h = o.offsetWidth,
                        u = o.offsetHeight;
                      function g() {
                        function i() {
                          if ('static' === d.position) {
                            o.style.setProperty(
                              'position',
                              'relative',
                              e.important ? 'important' : ''
                            );
                            var i = function (t, i, n, r) {
                              var s = n[r];
                              'auto' !== s &&
                                '0' !==
                                  (function (e) {
                                    return e.replace(/[^-\d\.]/g, '');
                                  })(s) &&
                                (t.warn(
                                  'An element that is positioned static has style.' +
                                    r +
                                    '=' +
                                    s +
                                    ' which is ignored due to the static positioning. The element will need to be positioned relative, so the style.' +
                                    r +
                                    ' will be set to 0. Element: ',
                                  i
                                ),
                                i.style.setProperty(
                                  r,
                                  '0',
                                  e.important ? 'important' : ''
                                ));
                            };
                            i(t, o, d, 'top'),
                              i(t, o, d, 'right'),
                              i(t, o, d, 'bottom'),
                              i(t, o, d, 'left');
                          }
                        }
                        '' !== d.position && (i(), (c = !0));
                        var s = document.createElement('object');
                        (s.style.cssText = l),
                          (s.tabIndex = -1),
                          (s.type = 'text/html'),
                          s.setAttribute('aria-hidden', 'true'),
                          (s.onload = function () {
                            c || i(),
                              (function e(t, i) {
                                if (!t.contentDocument) {
                                  var n = r(t);
                                  return (
                                    n.checkForObjectDocumentTimeoutId &&
                                      window.clearTimeout(
                                        n.checkForObjectDocumentTimeoutId
                                      ),
                                    void (n.checkForObjectDocumentTimeoutId = setTimeout(
                                      function () {
                                        (n.checkForObjectDocumentTimeoutId = 0),
                                          e(t, i);
                                      },
                                      100
                                    ))
                                  );
                                }
                                i(t.contentDocument);
                              })(this, function (e) {
                                a(o);
                              });
                          }),
                          n.isIE() || (s.data = 'about:blank'),
                          r(o) &&
                            (o.appendChild(s),
                            (r(o).object = s),
                            n.isIE() && (s.data = 'about:blank'));
                      }
                      (r(o).startSize = { width: h, height: u }),
                        i ? i.add(g) : g();
                    })(o, a);
            },
            addListener: function (e, t) {
              function i() {
                t(e);
              }
              if (n.isIE(8))
                (r(e).object = { proxy: i }), e.attachEvent('onresize', i);
              else {
                var s = o(e);
                if (!s)
                  throw new Error(
                    'Element is not detectable by this strategy.'
                  );
                s.contentDocument.defaultView.addEventListener('resize', i);
              }
            },
            uninstall: function (e) {
              if (r(e)) {
                var t = o(e);
                t &&
                  (n.isIE(8)
                    ? e.detachEvent('onresize', t.proxy)
                    : e.removeChild(t),
                  r(e).checkForObjectDocumentTimeoutId &&
                    window.clearTimeout(r(e).checkForObjectDocumentTimeoutId),
                  delete r(e).object);
              }
            },
          };
        };
      },
      60787: (e, t, i) => {
        'use strict';
        var n = i(17900).forEach;
        e.exports = function (e) {
          var t = (e = e || {}).reporter,
            i = e.batchProcessor,
            r = e.stateHandler.getState,
            s = (e.stateHandler.hasState, e.idHandler);
          if (!i)
            throw new Error('Missing required dependency: batchProcessor');
          if (!t) throw new Error('Missing required dependency: reporter.');
          var o = (function () {
              var e = document.createElement('div');
              e.style.cssText = c([
                'position: absolute',
                'width: 1000px',
                'height: 1000px',
                'visibility: hidden',
                'margin: 0',
                'padding: 0',
              ]);
              var t = document.createElement('div');
              (t.style.cssText = c([
                'position: absolute',
                'width: 500px',
                'height: 500px',
                'overflow: scroll',
                'visibility: none',
                'top: -1500px',
                'left: -1500px',
                'visibility: hidden',
                'margin: 0',
                'padding: 0',
              ])),
                t.appendChild(e),
                document.body.insertBefore(t, document.body.firstChild);
              var i = 500 - t.clientWidth,
                n = 500 - t.clientHeight;
              return document.body.removeChild(t), { width: i, height: n };
            })(),
            a = 'erd_scroll_detection_container';
          function l(e) {
            !(function (e, t, i) {
              if (!e.getElementById(t)) {
                var n = i + '_animation',
                  r = '/* Created by the element-resize-detector library. */\n';
                (r +=
                  '.' +
                  i +
                  ' > div::-webkit-scrollbar { ' +
                  c(['display: none']) +
                  ' }\n\n'),
                  (r +=
                    '.erd_scroll_detection_container_animation_active { ' +
                    c([
                      '-webkit-animation-duration: 0.1s',
                      'animation-duration: 0.1s',
                      '-webkit-animation-name: ' + n,
                      'animation-name: ' + n,
                    ]) +
                    ' }\n'),
                  (r +=
                    '@-webkit-keyframes ' +
                    n +
                    ' { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n'),
                  (function (i, n) {
                    n =
                      n ||
                      function (t) {
                        e.head.appendChild(t);
                      };
                    var r = e.createElement('style');
                    (r.innerHTML = i), (r.id = t), n(r);
                  })(
                    (r +=
                      '@keyframes ' +
                      n +
                      ' { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }')
                  );
              }
            })(e, 'erd_scroll_detection_scrollbar_style', a);
          }
          function c(t) {
            var i = e.important ? ' !important; ' : '; ';
            return (t.join(i) + i).trim();
          }
          function d(e, i, n) {
            if (e.addEventListener) e.addEventListener(i, n);
            else {
              if (!e.attachEvent)
                return t.error(
                  "[scroll] Don't know how to add event listeners."
                );
              e.attachEvent('on' + i, n);
            }
          }
          function h(e, i, n) {
            if (e.removeEventListener) e.removeEventListener(i, n);
            else {
              if (!e.detachEvent)
                return t.error(
                  "[scroll] Don't know how to remove event listeners."
                );
              e.detachEvent('on' + i, n);
            }
          }
          function u(e) {
            return r(e).container.childNodes[0].childNodes[0].childNodes[0];
          }
          function g(e) {
            return r(e).container.childNodes[0].childNodes[0].childNodes[1];
          }
          return (
            l(window.document),
            {
              makeDetectable: function (e, l, h) {
                function f() {
                  if (e.debug) {
                    var i = Array.prototype.slice.call(arguments);
                    if ((i.unshift(s.get(l), 'Scroll: '), t.log.apply))
                      t.log.apply(null, i);
                    else for (var n = 0; n < i.length; n++) t.log(i[n]);
                  }
                }
                function p(e) {
                  var t = r(e).container.childNodes[0],
                    i = window.getComputedStyle(t);
                  return !i.width || -1 === i.width.indexOf('px');
                }
                function m() {
                  var e = window.getComputedStyle(l),
                    t = {};
                  return (
                    (t.position = e.position),
                    (t.width = l.offsetWidth),
                    (t.height = l.offsetHeight),
                    (t.top = e.top),
                    (t.right = e.right),
                    (t.bottom = e.bottom),
                    (t.left = e.left),
                    (t.widthCSS = e.width),
                    (t.heightCSS = e.height),
                    t
                  );
                }
                function _() {
                  if ((f('storeStyle invoked.'), r(l))) {
                    var e = m();
                    r(l).style = e;
                  } else f('Aborting because element has been uninstalled');
                }
                function b(e, t, i) {
                  (r(e).lastWidth = t), (r(e).lastHeight = i);
                }
                function v() {
                  return 2 * o.width + 1;
                }
                function y() {
                  return 2 * o.height + 1;
                }
                function w(e) {
                  return e + 10 + v();
                }
                function C(e) {
                  return e + 10 + y();
                }
                function S(e, t, i) {
                  var n = u(e),
                    r = g(e),
                    s = w(t),
                    o = C(i),
                    a = (function (e) {
                      return 2 * e + v();
                    })(t),
                    l = (function (e) {
                      return 2 * e + y();
                    })(i);
                  (n.scrollLeft = s),
                    (n.scrollTop = o),
                    (r.scrollLeft = a),
                    (r.scrollTop = l);
                }
                function k() {
                  var e = r(l).container;
                  if (!e) {
                    ((e = document.createElement('div')).className = a),
                      (e.style.cssText = c([
                        'visibility: hidden',
                        'display: inline',
                        'width: 0px',
                        'height: 0px',
                        'z-index: -1',
                        'overflow: hidden',
                        'margin: 0',
                        'padding: 0',
                      ])),
                      (r(l).container = e),
                      (function (e) {
                        e.className += ' ' + a + '_animation_active';
                      })(e),
                      l.appendChild(e);
                    var t = function () {
                      r(l).onRendered && r(l).onRendered();
                    };
                    d(e, 'animationstart', t), (r(l).onAnimationStart = t);
                  }
                  return e;
                }
                function x() {
                  if ((f('Injecting elements'), r(l))) {
                    !(function () {
                      var i = r(l).style;
                      if ('static' === i.position) {
                        l.style.setProperty(
                          'position',
                          'relative',
                          e.important ? 'important' : ''
                        );
                        var n = function (e, t, i, n) {
                          var r = i[n];
                          'auto' !== r &&
                            '0' !==
                              (function (e) {
                                return e.replace(/[^-\d\.]/g, '');
                              })(r) &&
                            (e.warn(
                              'An element that is positioned static has style.' +
                                n +
                                '=' +
                                r +
                                ' which is ignored due to the static positioning. The element will need to be positioned relative, so the style.' +
                                n +
                                ' will be set to 0. Element: ',
                              t
                            ),
                            (t.style[n] = 0));
                        };
                        n(t, l, i, 'top'),
                          n(t, l, i, 'right'),
                          n(t, l, i, 'bottom'),
                          n(t, l, i, 'left');
                      }
                    })();
                    var i = r(l).container;
                    i || (i = k());
                    var n,
                      s,
                      h,
                      u,
                      g = o.width,
                      p = o.height,
                      m = c([
                        'position: absolute',
                        'flex: none',
                        'overflow: hidden',
                        'z-index: -1',
                        'visibility: hidden',
                        'width: 100%',
                        'height: 100%',
                        'left: 0px',
                        'top: 0px',
                      ]),
                      _ = c(
                        [
                          'position: absolute',
                          'flex: none',
                          'overflow: hidden',
                          'z-index: -1',
                          'visibility: hidden',
                        ].concat([
                          'left: ' + (n = (n = -(1 + g)) ? n + 'px' : '0'),
                          'top: ' + (s = (s = -(1 + p)) ? s + 'px' : '0'),
                          'right: ' + (u = (u = -g) ? u + 'px' : '0'),
                          'bottom: ' + (h = (h = -p) ? h + 'px' : '0'),
                        ])
                      ),
                      b = c([
                        'position: absolute',
                        'flex: none',
                        'overflow: scroll',
                        'z-index: -1',
                        'visibility: hidden',
                        'width: 100%',
                        'height: 100%',
                      ]),
                      v = c([
                        'position: absolute',
                        'flex: none',
                        'overflow: scroll',
                        'z-index: -1',
                        'visibility: hidden',
                        'width: 100%',
                        'height: 100%',
                      ]),
                      y = c(['position: absolute', 'left: 0', 'top: 0']),
                      w = c([
                        'position: absolute',
                        'width: 200%',
                        'height: 200%',
                      ]),
                      C = document.createElement('div'),
                      S = document.createElement('div'),
                      x = document.createElement('div'),
                      L = document.createElement('div'),
                      M = document.createElement('div'),
                      D = document.createElement('div');
                    (C.dir = 'ltr'),
                      (C.style.cssText = m),
                      (C.className = a),
                      (S.className = a),
                      (S.style.cssText = _),
                      (x.style.cssText = b),
                      (L.style.cssText = y),
                      (M.style.cssText = v),
                      (D.style.cssText = w),
                      x.appendChild(L),
                      M.appendChild(D),
                      S.appendChild(x),
                      S.appendChild(M),
                      C.appendChild(S),
                      i.appendChild(C),
                      d(x, 'scroll', N),
                      d(M, 'scroll', E),
                      (r(l).onExpandScroll = N),
                      (r(l).onShrinkScroll = E);
                  } else f('Aborting because element has been uninstalled');
                  function N() {
                    r(l).onExpand && r(l).onExpand();
                  }
                  function E() {
                    r(l).onShrink && r(l).onShrink();
                  }
                }
                function L() {
                  function o(t, i, n) {
                    var r = (function (e) {
                        return u(e).childNodes[0];
                      })(t),
                      s = w(i),
                      o = C(n);
                    r.style.setProperty(
                      'width',
                      s + 'px',
                      e.important ? 'important' : ''
                    ),
                      r.style.setProperty(
                        'height',
                        o + 'px',
                        e.important ? 'important' : ''
                      );
                  }
                  function a(n) {
                    var a = l.offsetWidth,
                      d = l.offsetHeight,
                      h = a !== r(l).lastWidth || d !== r(l).lastHeight;
                    f('Storing current size', a, d),
                      b(l, a, d),
                      i.add(0, function () {
                        if (h)
                          if (r(l))
                            if (c()) {
                              if (e.debug) {
                                var i = l.offsetWidth,
                                  n = l.offsetHeight;
                                (i === a && n === d) ||
                                  t.warn(
                                    s.get(l),
                                    'Scroll: Size changed before updating detector elements.'
                                  );
                              }
                              o(l, a, d);
                            } else
                              f(
                                'Aborting because element container has not been initialized'
                              );
                          else
                            f('Aborting because element has been uninstalled');
                      }),
                      i.add(1, function () {
                        r(l)
                          ? c()
                            ? S(l, a, d)
                            : f(
                                'Aborting because element container has not been initialized'
                              )
                          : f('Aborting because element has been uninstalled');
                      }),
                      h &&
                        n &&
                        i.add(2, function () {
                          r(l)
                            ? c()
                              ? n()
                              : f(
                                  'Aborting because element container has not been initialized'
                                )
                            : f(
                                'Aborting because element has been uninstalled'
                              );
                        });
                  }
                  function c() {
                    return !!r(l).container;
                  }
                  function d() {
                    f('notifyListenersIfNeeded invoked');
                    var e = r(l);
                    return void 0 === r(l).lastNotifiedWidth &&
                      e.lastWidth === e.startSize.width &&
                      e.lastHeight === e.startSize.height
                      ? f(
                          'Not notifying: Size is the same as the start size, and there has been no notification yet.'
                        )
                      : e.lastWidth === e.lastNotifiedWidth &&
                        e.lastHeight === e.lastNotifiedHeight
                      ? f('Not notifying: Size already notified')
                      : (f('Current size not notified, notifying...'),
                        (e.lastNotifiedWidth = e.lastWidth),
                        (e.lastNotifiedHeight = e.lastHeight),
                        void n(r(l).listeners, function (e) {
                          e(l);
                        }));
                  }
                  function h() {
                    f('Scroll detected.'),
                      p(l)
                        ? f('Scroll event fired while unrendered. Ignoring...')
                        : a(d);
                  }
                  if (
                    (f('registerListenersAndPositionElements invoked.'), r(l))
                  ) {
                    (r(l).onRendered = function () {
                      if ((f('startanimation triggered.'), p(l)))
                        f('Ignoring since element is still unrendered...');
                      else {
                        f('Element rendered.');
                        var e = u(l),
                          t = g(l);
                        (0 !== e.scrollLeft &&
                          0 !== e.scrollTop &&
                          0 !== t.scrollLeft &&
                          0 !== t.scrollTop) ||
                          (f(
                            'Scrollbars out of sync. Updating detector elements...'
                          ),
                          a(d));
                      }
                    }),
                      (r(l).onExpand = h),
                      (r(l).onShrink = h);
                    var m = r(l).style;
                    o(l, m.width, m.height);
                  } else f('Aborting because element has been uninstalled');
                }
                function M() {
                  if ((f('finalizeDomMutation invoked.'), r(l))) {
                    var e = r(l).style;
                    b(l, e.width, e.height), S(l, e.width, e.height);
                  } else f('Aborting because element has been uninstalled');
                }
                function D() {
                  h(l);
                }
                function N() {
                  var e;
                  f('Installing...'),
                    (r(l).listeners = []),
                    (e = m()),
                    (r(l).startSize = { width: e.width, height: e.height }),
                    f('Element start size', r(l).startSize),
                    i.add(0, _),
                    i.add(1, x),
                    i.add(2, L),
                    i.add(3, M),
                    i.add(4, D);
                }
                h || ((h = l), (l = e), (e = null)),
                  (e = e || {}),
                  f('Making detectable...'),
                  (function (e) {
                    return (
                      !(function (e) {
                        return (
                          e === e.ownerDocument.body ||
                          e.ownerDocument.body.contains(e)
                        );
                      })(e) || null === window.getComputedStyle(e)
                    );
                  })(l)
                    ? (f('Element is detached'),
                      k(),
                      f('Waiting until element is attached...'),
                      (r(l).onRendered = function () {
                        f('Element is now attached'), N();
                      }))
                    : N();
              },
              addListener: function (e, t) {
                if (!r(e).listeners.push)
                  throw new Error(
                    'Cannot add listener to an element that is not detectable.'
                  );
                r(e).listeners.push(t);
              },
              uninstall: function (e) {
                var t = r(e);
                t &&
                  (t.onExpandScroll && h(u(e), 'scroll', t.onExpandScroll),
                  t.onShrinkScroll && h(g(e), 'scroll', t.onShrinkScroll),
                  t.onAnimationStart &&
                    h(t.container, 'animationstart', t.onAnimationStart),
                  t.container && e.removeChild(t.container));
              },
              initDocument: l,
            }
          );
        };
      },
      63844: (e, t, i) => {
        'use strict';
        var n = i(17900).forEach,
          r = i(68452),
          s = i(96199),
          o = i(75805),
          a = i(79799),
          l = i(71724),
          c = i(2268),
          d = i(98129),
          h = i(21931),
          u = i(58229),
          g = i(60787);
        function f(e) {
          return Array.isArray(e) || void 0 !== e.length;
        }
        function p(e) {
          if (Array.isArray(e)) return e;
          var t = [];
          return (
            n(e, function (e) {
              t.push(e);
            }),
            t
          );
        }
        function m(e) {
          return e && 1 === e.nodeType;
        }
        function _(e, t, i) {
          var n = e[t];
          return null == n && void 0 !== i ? i : n;
        }
        e.exports = function (e) {
          var t;
          if ((e = e || {}).idHandler)
            t = {
              get: function (t) {
                return e.idHandler.get(t, !0);
              },
              set: e.idHandler.set,
            };
          else {
            var i = o(),
              b = a({ idGenerator: i, stateHandler: h });
            t = b;
          }
          var v = e.reporter;
          v || (v = l(!1 === v));
          var y = _(e, 'batchProcessor', d({ reporter: v })),
            w = {};
          (w.callOnAdd = !!_(e, 'callOnAdd', !0)),
            (w.debug = !!_(e, 'debug', !1));
          var C,
            S = s(t),
            k = r({ stateHandler: h }),
            x = _(e, 'strategy', 'object'),
            L = _(e, 'important', !1),
            M = {
              reporter: v,
              batchProcessor: y,
              stateHandler: h,
              idHandler: t,
              important: L,
            };
          if (
            ('scroll' === x &&
              (c.isLegacyOpera()
                ? (v.warn(
                    'Scroll strategy is not supported on legacy Opera. Changing to object strategy.'
                  ),
                  (x = 'object'))
                : c.isIE(9) &&
                  (v.warn(
                    'Scroll strategy is not supported on IE9. Changing to object strategy.'
                  ),
                  (x = 'object'))),
            'scroll' === x)
          )
            C = g(M);
          else {
            if ('object' !== x) throw new Error('Invalid strategy name: ' + x);
            C = u(M);
          }
          var D = {};
          return {
            listenTo: function (e, i, r) {
              function s(e) {
                var t = S.get(e);
                n(t, function (t) {
                  t(e);
                });
              }
              function o(e, t, i) {
                S.add(t, i), e && i(t);
              }
              if ((r || ((r = i), (i = e), (e = {})), !i))
                throw new Error('At least one element required.');
              if (!r) throw new Error('Listener required.');
              if (m(i)) i = [i];
              else {
                if (!f(i))
                  return v.error(
                    'Invalid arguments. Must be a DOM element or a collection of DOM elements.'
                  );
                i = p(i);
              }
              var a = 0,
                l = _(e, 'callOnAdd', w.callOnAdd),
                c = _(e, 'onReady', function () {}),
                d = _(e, 'debug', w.debug);
              n(i, function (e) {
                h.getState(e) || (h.initState(e), t.set(e));
                var u = t.get(e);
                if (
                  (d && v.log('Attaching listener to element', u, e),
                  !k.isDetectable(e))
                )
                  return (
                    d && v.log(u, 'Not detectable.'),
                    k.isBusy(e)
                      ? (d && v.log(u, 'System busy making it detectable'),
                        o(l, e, r),
                        (D[u] = D[u] || []),
                        void D[u].push(function () {
                          ++a === i.length && c();
                        }))
                      : (d && v.log(u, 'Making detectable...'),
                        k.markBusy(e, !0),
                        C.makeDetectable(
                          { debug: d, important: L },
                          e,
                          function (e) {
                            if (
                              (d && v.log(u, 'onElementDetectable'),
                              h.getState(e))
                            ) {
                              k.markAsDetectable(e),
                                k.markBusy(e, !1),
                                C.addListener(e, s),
                                o(l, e, r);
                              var t = h.getState(e);
                              if (t && t.startSize) {
                                var g = e.offsetWidth,
                                  f = e.offsetHeight;
                                (t.startSize.width === g &&
                                  t.startSize.height === f) ||
                                  s(e);
                              }
                              D[u] &&
                                n(D[u], function (e) {
                                  e();
                                });
                            } else
                              d &&
                                v.log(
                                  u,
                                  'Element uninstalled before being detectable.'
                                );
                            delete D[u], ++a === i.length && c();
                          }
                        ))
                  );
                d && v.log(u, 'Already detecable, adding listener.'),
                  o(l, e, r),
                  a++;
              }),
                a === i.length && c();
            },
            removeListener: S.removeListener,
            removeAllListeners: S.removeAllListeners,
            uninstall: function (e) {
              if (!e) return v.error('At least one element is required.');
              if (m(e)) e = [e];
              else {
                if (!f(e))
                  return v.error(
                    'Invalid arguments. Must be a DOM element or a collection of DOM elements.'
                  );
                e = p(e);
              }
              n(e, function (e) {
                S.removeAllListeners(e), C.uninstall(e), h.cleanState(e);
              });
            },
            initDocument: function (e) {
              C.initDocument && C.initDocument(e);
            },
          };
        };
      },
      68452: (e) => {
        'use strict';
        e.exports = function (e) {
          var t = e.stateHandler.getState;
          return {
            isDetectable: function (e) {
              var i = t(e);
              return i && !!i.isDetectable;
            },
            markAsDetectable: function (e) {
              t(e).isDetectable = !0;
            },
            isBusy: function (e) {
              return !!t(e).busy;
            },
            markBusy: function (e, i) {
              t(e).busy = !!i;
            },
          };
        };
      },
      75805: (e) => {
        'use strict';
        e.exports = function () {
          var e = 1;
          return {
            generate: function () {
              return e++;
            },
          };
        };
      },
      79799: (e) => {
        'use strict';
        e.exports = function (e) {
          var t = e.idGenerator,
            i = e.stateHandler.getState;
          return {
            get: function (e) {
              var t = i(e);
              return t && void 0 !== t.id ? t.id : null;
            },
            set: function (e) {
              var n = i(e);
              if (!n)
                throw new Error(
                  'setId required the element to have a resize detection state.'
                );
              var r = t.generate();
              return (n.id = r), r;
            },
          };
        };
      },
      96199: (e) => {
        'use strict';
        e.exports = function (e) {
          var t = {};
          function i(i) {
            var n = e.get(i);
            return void 0 === n ? [] : t[n] || [];
          }
          return {
            get: i,
            add: function (i, n) {
              var r = e.get(i);
              t[r] || (t[r] = []), t[r].push(n);
            },
            removeListener: function (e, t) {
              for (var n = i(e), r = 0, s = n.length; r < s; ++r)
                if (n[r] === t) {
                  n.splice(r, 1);
                  break;
                }
            },
            removeAllListeners: function (e) {
              var t = i(e);
              t && (t.length = 0);
            },
          };
        };
      },
      71724: (e) => {
        'use strict';
        e.exports = function (e) {
          function t() {}
          var i = { log: t, warn: t, error: t };
          if (!e && window.console) {
            var n = function (e, t) {
              e[t] = function () {
                var e = console[t];
                if (e.apply) e.apply(console, arguments);
                else for (var i = 0; i < arguments.length; i++) e(arguments[i]);
              };
            };
            n(i, 'log'), n(i, 'warn'), n(i, 'error');
          }
          return i;
        };
      },
      21931: (e) => {
        'use strict';
        function t(e) {
          return e._erd;
        }
        e.exports = {
          initState: function (e) {
            return (e._erd = {}), t(e);
          },
          getState: t,
          cleanState: function (e) {
            delete e._erd;
          },
        };
      },
      42859: (e, t, i) => {
        'use strict';
        var n;
        function r(e) {
          return (
            (n = n || document.createElement('div')),
            (e = escape(e)
              .replace(/%26/g, '&')
              .replace(/%23/g, '#')
              .replace(/%3B/g, ';')),
            (n.innerHTML = e),
            unescape(n.textContent)
          );
        }
        i.r(t), i.d(t, { default: () => r });
      },
      28282: (e, t, i) => {
        var n = i(82354);
        e.exports = {
          Graph: n.Graph,
          json: i(28974),
          alg: i(12440),
          version: n.version,
        };
      },
      2842: (e, t, i) => {
        var n = i(89126);
        e.exports = function (e) {
          var t,
            i = {},
            r = [];
          function s(r) {
            n.has(i, r) ||
              ((i[r] = !0),
              t.push(r),
              n.each(e.successors(r), s),
              n.each(e.predecessors(r), s));
          }
          return (
            n.each(e.nodes(), function (e) {
              (t = []), s(e), t.length && r.push(t);
            }),
            r
          );
        };
      },
      53984: (e, t, i) => {
        var n = i(89126);
        function r(e, t, i, s, o, a) {
          n.has(s, t) ||
            ((s[t] = !0),
            i || a.push(t),
            n.each(o(t), function (t) {
              r(e, t, i, s, o, a);
            }),
            i && a.push(t));
        }
        e.exports = function (e, t, i) {
          n.isArray(t) || (t = [t]);
          var s = (e.isDirected() ? e.successors : e.neighbors).bind(e),
            o = [],
            a = {};
          return (
            n.each(t, function (t) {
              if (!e.hasNode(t))
                throw new Error('Graph does not have node: ' + t);
              r(e, t, 'post' === i, a, s, o);
            }),
            o
          );
        };
      },
      84847: (e, t, i) => {
        var n = i(63763),
          r = i(89126);
        e.exports = function (e, t, i) {
          return r.transform(
            e.nodes(),
            function (r, s) {
              r[s] = n(e, s, t, i);
            },
            {}
          );
        };
      },
      63763: (e, t, i) => {
        var n = i(89126),
          r = i(75639);
        e.exports = function (e, t, i, n) {
          return (function (e, t, i, n) {
            var s,
              o,
              a = {},
              l = new r(),
              c = function (e) {
                var t = e.v !== s ? e.v : e.w,
                  n = a[t],
                  r = i(e),
                  c = o.distance + r;
                if (r < 0)
                  throw new Error(
                    'dijkstra does not allow negative edge weights. Bad edge: ' +
                      e +
                      ' Weight: ' +
                      r
                  );
                c < n.distance &&
                  ((n.distance = c), (n.predecessor = s), l.decrease(t, c));
              };
            for (
              e.nodes().forEach(function (e) {
                var i = e === t ? 0 : Number.POSITIVE_INFINITY;
                (a[e] = { distance: i }), l.add(e, i);
              });
              l.size() > 0 &&
              ((s = l.removeMin()),
              (o = a[s]).distance !== Number.POSITIVE_INFINITY);

            )
              n(s).forEach(c);
            return a;
          })(
            e,
            String(t),
            i || s,
            n ||
              function (t) {
                return e.outEdges(t);
              }
          );
        };
        var s = n.constant(1);
      },
      9096: (e, t, i) => {
        var n = i(89126),
          r = i(5023);
        e.exports = function (e) {
          return n.filter(r(e), function (t) {
            return t.length > 1 || (1 === t.length && e.hasEdge(t[0], t[0]));
          });
        };
      },
      38924: (e, t, i) => {
        var n = i(89126);
        e.exports = function (e, t, i) {
          return (function (e, t, i) {
            var n = {},
              r = e.nodes();
            return (
              r.forEach(function (e) {
                (n[e] = {}),
                  (n[e][e] = { distance: 0 }),
                  r.forEach(function (t) {
                    e !== t &&
                      (n[e][t] = { distance: Number.POSITIVE_INFINITY });
                  }),
                  i(e).forEach(function (i) {
                    var r = i.v === e ? i.w : i.v,
                      s = t(i);
                    n[e][r] = { distance: s, predecessor: e };
                  });
              }),
              r.forEach(function (e) {
                var t = n[e];
                r.forEach(function (i) {
                  var s = n[i];
                  r.forEach(function (i) {
                    var n = s[e],
                      r = t[i],
                      o = s[i],
                      a = n.distance + r.distance;
                    a < o.distance &&
                      ((o.distance = a), (o.predecessor = r.predecessor));
                  });
                });
              }),
              n
            );
          })(
            e,
            t || r,
            i ||
              function (t) {
                return e.outEdges(t);
              }
          );
        };
        var r = n.constant(1);
      },
      12440: (e, t, i) => {
        e.exports = {
          components: i(2842),
          dijkstra: i(63763),
          dijkstraAll: i(84847),
          findCycles: i(9096),
          floydWarshall: i(38924),
          isAcyclic: i(62707),
          postorder: i(58828),
          preorder: i(92648),
          prim: i(80514),
          tarjan: i(5023),
          topsort: i(2166),
        };
      },
      62707: (e, t, i) => {
        var n = i(2166);
        e.exports = function (e) {
          try {
            n(e);
          } catch (e) {
            if (e instanceof n.CycleException) return !1;
            throw e;
          }
          return !0;
        };
      },
      58828: (e, t, i) => {
        var n = i(53984);
        e.exports = function (e, t) {
          return n(e, t, 'post');
        };
      },
      92648: (e, t, i) => {
        var n = i(53984);
        e.exports = function (e, t) {
          return n(e, t, 'pre');
        };
      },
      80514: (e, t, i) => {
        var n = i(89126),
          r = i(30771),
          s = i(75639);
        e.exports = function (e, t) {
          var i,
            o = new r(),
            a = {},
            l = new s();
          function c(e) {
            var n = e.v === i ? e.w : e.v,
              r = l.priority(n);
            if (void 0 !== r) {
              var s = t(e);
              s < r && ((a[n] = i), l.decrease(n, s));
            }
          }
          if (0 === e.nodeCount()) return o;
          n.each(e.nodes(), function (e) {
            l.add(e, Number.POSITIVE_INFINITY), o.setNode(e);
          }),
            l.decrease(e.nodes()[0], 0);
          for (var d = !1; l.size() > 0; ) {
            if (((i = l.removeMin()), n.has(a, i))) o.setEdge(i, a[i]);
            else {
              if (d) throw new Error('Input graph is not connected: ' + e);
              d = !0;
            }
            e.nodeEdges(i).forEach(c);
          }
          return o;
        };
      },
      5023: (e, t, i) => {
        var n = i(89126);
        e.exports = function (e) {
          var t = 0,
            i = [],
            r = {},
            s = [];
          function o(a) {
            var l = (r[a] = { onStack: !0, lowlink: t, index: t++ });
            if (
              (i.push(a),
              e.successors(a).forEach(function (e) {
                n.has(r, e)
                  ? r[e].onStack &&
                    (l.lowlink = Math.min(l.lowlink, r[e].index))
                  : (o(e), (l.lowlink = Math.min(l.lowlink, r[e].lowlink)));
              }),
              l.lowlink === l.index)
            ) {
              var c,
                d = [];
              do {
                (c = i.pop()), (r[c].onStack = !1), d.push(c);
              } while (a !== c);
              s.push(d);
            }
          }
          return (
            e.nodes().forEach(function (e) {
              n.has(r, e) || o(e);
            }),
            s
          );
        };
      },
      2166: (e, t, i) => {
        var n = i(89126);
        function r(e) {
          var t = {},
            i = {},
            r = [];
          if (
            (n.each(e.sinks(), function o(a) {
              if (n.has(i, a)) throw new s();
              n.has(t, a) ||
                ((i[a] = !0),
                (t[a] = !0),
                n.each(e.predecessors(a), o),
                delete i[a],
                r.push(a));
            }),
            n.size(t) !== e.nodeCount())
          )
            throw new s();
          return r;
        }
        function s() {}
        (e.exports = r), (r.CycleException = s), (s.prototype = new Error());
      },
      75639: (e, t, i) => {
        var n = i(89126);
        function r() {
          (this._arr = []), (this._keyIndices = {});
        }
        (e.exports = r),
          (r.prototype.size = function () {
            return this._arr.length;
          }),
          (r.prototype.keys = function () {
            return this._arr.map(function (e) {
              return e.key;
            });
          }),
          (r.prototype.has = function (e) {
            return n.has(this._keyIndices, e);
          }),
          (r.prototype.priority = function (e) {
            var t = this._keyIndices[e];
            if (void 0 !== t) return this._arr[t].priority;
          }),
          (r.prototype.min = function () {
            if (0 === this.size()) throw new Error('Queue underflow');
            return this._arr[0].key;
          }),
          (r.prototype.add = function (e, t) {
            var i = this._keyIndices;
            if (((e = String(e)), !n.has(i, e))) {
              var r = this._arr,
                s = r.length;
              return (
                (i[e] = s),
                r.push({ key: e, priority: t }),
                this._decrease(s),
                !0
              );
            }
            return !1;
          }),
          (r.prototype.removeMin = function () {
            this._swap(0, this._arr.length - 1);
            var e = this._arr.pop();
            return delete this._keyIndices[e.key], this._heapify(0), e.key;
          }),
          (r.prototype.decrease = function (e, t) {
            var i = this._keyIndices[e];
            if (t > this._arr[i].priority)
              throw new Error(
                'New priority is greater than current priority. Key: ' +
                  e +
                  ' Old: ' +
                  this._arr[i].priority +
                  ' New: ' +
                  t
              );
            (this._arr[i].priority = t), this._decrease(i);
          }),
          (r.prototype._heapify = function (e) {
            var t = this._arr,
              i = 2 * e,
              n = i + 1,
              r = e;
            i < t.length &&
              ((r = t[i].priority < t[r].priority ? i : r),
              n < t.length && (r = t[n].priority < t[r].priority ? n : r),
              r !== e && (this._swap(e, r), this._heapify(r)));
          }),
          (r.prototype._decrease = function (e) {
            for (
              var t, i = this._arr, n = i[e].priority;
              0 !== e && !(i[(t = e >> 1)].priority < n);

            )
              this._swap(e, t), (e = t);
          }),
          (r.prototype._swap = function (e, t) {
            var i = this._arr,
              n = this._keyIndices,
              r = i[e],
              s = i[t];
            (i[e] = s), (i[t] = r), (n[s.key] = e), (n[r.key] = t);
          });
      },
      30771: (e, t, i) => {
        'use strict';
        var n = i(89126);
        e.exports = s;
        var r = '\0';
        function s(e) {
          (this._isDirected = !n.has(e, 'directed') || e.directed),
            (this._isMultigraph = !!n.has(e, 'multigraph') && e.multigraph),
            (this._isCompound = !!n.has(e, 'compound') && e.compound),
            (this._label = void 0),
            (this._defaultNodeLabelFn = n.constant(void 0)),
            (this._defaultEdgeLabelFn = n.constant(void 0)),
            (this._nodes = {}),
            this._isCompound &&
              ((this._parent = {}),
              (this._children = {}),
              (this._children['\0'] = {})),
            (this._in = {}),
            (this._preds = {}),
            (this._out = {}),
            (this._sucs = {}),
            (this._edgeObjs = {}),
            (this._edgeLabels = {});
        }
        function o(e, t) {
          e[t] ? e[t]++ : (e[t] = 1);
        }
        function a(e, t) {
          --e[t] || delete e[t];
        }
        function l(e, t, i, r) {
          var s = '' + t,
            o = '' + i;
          if (!e && s > o) {
            var a = s;
            (s = o), (o = a);
          }
          return s + '' + o + '' + (n.isUndefined(r) ? '\0' : r);
        }
        function c(e, t, i, n) {
          var r = '' + t,
            s = '' + i;
          if (!e && r > s) {
            var o = r;
            (r = s), (s = o);
          }
          var a = { v: r, w: s };
          return n && (a.name = n), a;
        }
        function d(e, t) {
          return l(e, t.v, t.w, t.name);
        }
        (s.prototype._nodeCount = 0),
          (s.prototype._edgeCount = 0),
          (s.prototype.isDirected = function () {
            return this._isDirected;
          }),
          (s.prototype.isMultigraph = function () {
            return this._isMultigraph;
          }),
          (s.prototype.isCompound = function () {
            return this._isCompound;
          }),
          (s.prototype.setGraph = function (e) {
            return (this._label = e), this;
          }),
          (s.prototype.graph = function () {
            return this._label;
          }),
          (s.prototype.setDefaultNodeLabel = function (e) {
            return (
              n.isFunction(e) || (e = n.constant(e)),
              (this._defaultNodeLabelFn = e),
              this
            );
          }),
          (s.prototype.nodeCount = function () {
            return this._nodeCount;
          }),
          (s.prototype.nodes = function () {
            return n.keys(this._nodes);
          }),
          (s.prototype.sources = function () {
            var e = this;
            return n.filter(this.nodes(), function (t) {
              return n.isEmpty(e._in[t]);
            });
          }),
          (s.prototype.sinks = function () {
            var e = this;
            return n.filter(this.nodes(), function (t) {
              return n.isEmpty(e._out[t]);
            });
          }),
          (s.prototype.setNodes = function (e, t) {
            var i = arguments,
              r = this;
            return (
              n.each(e, function (e) {
                i.length > 1 ? r.setNode(e, t) : r.setNode(e);
              }),
              this
            );
          }),
          (s.prototype.setNode = function (e, t) {
            return n.has(this._nodes, e)
              ? (arguments.length > 1 && (this._nodes[e] = t), this)
              : ((this._nodes[e] =
                  arguments.length > 1 ? t : this._defaultNodeLabelFn(e)),
                this._isCompound &&
                  ((this._parent[e] = r),
                  (this._children[e] = {}),
                  (this._children['\0'][e] = !0)),
                (this._in[e] = {}),
                (this._preds[e] = {}),
                (this._out[e] = {}),
                (this._sucs[e] = {}),
                ++this._nodeCount,
                this);
          }),
          (s.prototype.node = function (e) {
            return this._nodes[e];
          }),
          (s.prototype.hasNode = function (e) {
            return n.has(this._nodes, e);
          }),
          (s.prototype.removeNode = function (e) {
            var t = this;
            if (n.has(this._nodes, e)) {
              var i = function (e) {
                t.removeEdge(t._edgeObjs[e]);
              };
              delete this._nodes[e],
                this._isCompound &&
                  (this._removeFromParentsChildList(e),
                  delete this._parent[e],
                  n.each(this.children(e), function (e) {
                    t.setParent(e);
                  }),
                  delete this._children[e]),
                n.each(n.keys(this._in[e]), i),
                delete this._in[e],
                delete this._preds[e],
                n.each(n.keys(this._out[e]), i),
                delete this._out[e],
                delete this._sucs[e],
                --this._nodeCount;
            }
            return this;
          }),
          (s.prototype.setParent = function (e, t) {
            if (!this._isCompound)
              throw new Error('Cannot set parent in a non-compound graph');
            if (n.isUndefined(t)) t = r;
            else {
              for (var i = (t += ''); !n.isUndefined(i); i = this.parent(i))
                if (i === e)
                  throw new Error(
                    'Setting ' +
                      t +
                      ' as parent of ' +
                      e +
                      ' would create a cycle'
                  );
              this.setNode(t);
            }
            return (
              this.setNode(e),
              this._removeFromParentsChildList(e),
              (this._parent[e] = t),
              (this._children[t][e] = !0),
              this
            );
          }),
          (s.prototype._removeFromParentsChildList = function (e) {
            delete this._children[this._parent[e]][e];
          }),
          (s.prototype.parent = function (e) {
            if (this._isCompound) {
              var t = this._parent[e];
              if (t !== r) return t;
            }
          }),
          (s.prototype.children = function (e) {
            if ((n.isUndefined(e) && (e = r), this._isCompound)) {
              var t = this._children[e];
              if (t) return n.keys(t);
            } else {
              if (e === r) return this.nodes();
              if (this.hasNode(e)) return [];
            }
          }),
          (s.prototype.predecessors = function (e) {
            var t = this._preds[e];
            if (t) return n.keys(t);
          }),
          (s.prototype.successors = function (e) {
            var t = this._sucs[e];
            if (t) return n.keys(t);
          }),
          (s.prototype.neighbors = function (e) {
            var t = this.predecessors(e);
            if (t) return n.union(t, this.successors(e));
          }),
          (s.prototype.isLeaf = function (e) {
            return (
              0 ===
              (this.isDirected() ? this.successors(e) : this.neighbors(e))
                .length
            );
          }),
          (s.prototype.filterNodes = function (e) {
            var t = new this.constructor({
              directed: this._isDirected,
              multigraph: this._isMultigraph,
              compound: this._isCompound,
            });
            t.setGraph(this.graph());
            var i = this;
            n.each(this._nodes, function (i, n) {
              e(n) && t.setNode(n, i);
            }),
              n.each(this._edgeObjs, function (e) {
                t.hasNode(e.v) && t.hasNode(e.w) && t.setEdge(e, i.edge(e));
              });
            var r = {};
            function s(e) {
              var n = i.parent(e);
              return void 0 === n || t.hasNode(n)
                ? ((r[e] = n), n)
                : n in r
                ? r[n]
                : s(n);
            }
            return (
              this._isCompound &&
                n.each(t.nodes(), function (e) {
                  t.setParent(e, s(e));
                }),
              t
            );
          }),
          (s.prototype.setDefaultEdgeLabel = function (e) {
            return (
              n.isFunction(e) || (e = n.constant(e)),
              (this._defaultEdgeLabelFn = e),
              this
            );
          }),
          (s.prototype.edgeCount = function () {
            return this._edgeCount;
          }),
          (s.prototype.edges = function () {
            return n.values(this._edgeObjs);
          }),
          (s.prototype.setPath = function (e, t) {
            var i = this,
              r = arguments;
            return (
              n.reduce(e, function (e, n) {
                return r.length > 1 ? i.setEdge(e, n, t) : i.setEdge(e, n), n;
              }),
              this
            );
          }),
          (s.prototype.setEdge = function () {
            var e,
              t,
              i,
              r,
              s = !1,
              a = arguments[0];
            'object' == typeof a && null !== a && 'v' in a
              ? ((e = a.v),
                (t = a.w),
                (i = a.name),
                2 === arguments.length && ((r = arguments[1]), (s = !0)))
              : ((e = a),
                (t = arguments[1]),
                (i = arguments[3]),
                arguments.length > 2 && ((r = arguments[2]), (s = !0))),
              (e = '' + e),
              (t = '' + t),
              n.isUndefined(i) || (i = '' + i);
            var d = l(this._isDirected, e, t, i);
            if (n.has(this._edgeLabels, d))
              return s && (this._edgeLabels[d] = r), this;
            if (!n.isUndefined(i) && !this._isMultigraph)
              throw new Error(
                'Cannot set a named edge when isMultigraph = false'
              );
            this.setNode(e),
              this.setNode(t),
              (this._edgeLabels[d] = s ? r : this._defaultEdgeLabelFn(e, t, i));
            var h = c(this._isDirected, e, t, i);
            return (
              (e = h.v),
              (t = h.w),
              Object.freeze(h),
              (this._edgeObjs[d] = h),
              o(this._preds[t], e),
              o(this._sucs[e], t),
              (this._in[t][d] = h),
              (this._out[e][d] = h),
              this._edgeCount++,
              this
            );
          }),
          (s.prototype.edge = function (e, t, i) {
            var n =
              1 === arguments.length
                ? d(this._isDirected, arguments[0])
                : l(this._isDirected, e, t, i);
            return this._edgeLabels[n];
          }),
          (s.prototype.hasEdge = function (e, t, i) {
            var r =
              1 === arguments.length
                ? d(this._isDirected, arguments[0])
                : l(this._isDirected, e, t, i);
            return n.has(this._edgeLabels, r);
          }),
          (s.prototype.removeEdge = function (e, t, i) {
            var n =
                1 === arguments.length
                  ? d(this._isDirected, arguments[0])
                  : l(this._isDirected, e, t, i),
              r = this._edgeObjs[n];
            return (
              r &&
                ((e = r.v),
                (t = r.w),
                delete this._edgeLabels[n],
                delete this._edgeObjs[n],
                a(this._preds[t], e),
                a(this._sucs[e], t),
                delete this._in[t][n],
                delete this._out[e][n],
                this._edgeCount--),
              this
            );
          }),
          (s.prototype.inEdges = function (e, t) {
            var i = this._in[e];
            if (i) {
              var r = n.values(i);
              return t
                ? n.filter(r, function (e) {
                    return e.v === t;
                  })
                : r;
            }
          }),
          (s.prototype.outEdges = function (e, t) {
            var i = this._out[e];
            if (i) {
              var r = n.values(i);
              return t
                ? n.filter(r, function (e) {
                    return e.w === t;
                  })
                : r;
            }
          }),
          (s.prototype.nodeEdges = function (e, t) {
            var i = this.inEdges(e, t);
            if (i) return i.concat(this.outEdges(e, t));
          });
      },
      82354: (e, t, i) => {
        e.exports = { Graph: i(30771), version: i(49631) };
      },
      28974: (e, t, i) => {
        var n = i(89126),
          r = i(30771);
        function s(e) {
          return n.map(e.nodes(), function (t) {
            var i = e.node(t),
              r = e.parent(t),
              s = { v: t };
            return (
              n.isUndefined(i) || (s.value = i),
              n.isUndefined(r) || (s.parent = r),
              s
            );
          });
        }
        function o(e) {
          return n.map(e.edges(), function (t) {
            var i = e.edge(t),
              r = { v: t.v, w: t.w };
            return (
              n.isUndefined(t.name) || (r.name = t.name),
              n.isUndefined(i) || (r.value = i),
              r
            );
          });
        }
        e.exports = {
          write: function (e) {
            var t = {
              options: {
                directed: e.isDirected(),
                multigraph: e.isMultigraph(),
                compound: e.isCompound(),
              },
              nodes: s(e),
              edges: o(e),
            };
            return (
              n.isUndefined(e.graph()) || (t.value = n.clone(e.graph())), t
            );
          },
          read: function (e) {
            var t = new r(e.options).setGraph(e.value);
            return (
              n.each(e.nodes, function (e) {
                t.setNode(e.v, e.value), e.parent && t.setParent(e.v, e.parent);
              }),
              n.each(e.edges, function (e) {
                t.setEdge({ v: e.v, w: e.w, name: e.name }, e.value);
              }),
              t
            );
          },
        };
      },
      89126: (e, t, i) => {
        var n;
        try {
          n = {
            clone: i(66678),
            constant: i(75703),
            each: i(66073),
            filter: i(63105),
            has: i(18721),
            isArray: i(1469),
            isEmpty: i(41609),
            isFunction: i(23560),
            isUndefined: i(52353),
            keys: i(3674),
            map: i(35161),
            reduce: i(54061),
            size: i(84238),
            transform: i(68718),
            union: i(93386),
            values: i(52628),
          };
        } catch (e) {}
        n || (n = window._), (e.exports = n);
      },
      49631: (e) => {
        e.exports = '2.1.7';
      },
      61773: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(2536),
          s = i(7628),
          o = (function () {
            function e(e, t) {
              (this.color = t),
                (this.changed = !1),
                (this.data = e),
                (this.type = new s.default());
            }
            return (
              (e.prototype.set = function (e, t) {
                return (
                  (this.color = t),
                  (this.changed = !1),
                  (this.data = e),
                  (this.type.type = r.TYPE.ALL),
                  this
                );
              }),
              (e.prototype._ensureHSL = function () {
                void 0 === this.data.h &&
                  (this.data.h = n.default.channel.rgb2hsl(this.data, 'h')),
                  void 0 === this.data.s &&
                    (this.data.s = n.default.channel.rgb2hsl(this.data, 's')),
                  void 0 === this.data.l &&
                    (this.data.l = n.default.channel.rgb2hsl(this.data, 'l'));
              }),
              (e.prototype._ensureRGB = function () {
                void 0 === this.data.r &&
                  (this.data.r = n.default.channel.hsl2rgb(this.data, 'r')),
                  void 0 === this.data.g &&
                    (this.data.g = n.default.channel.hsl2rgb(this.data, 'g')),
                  void 0 === this.data.b &&
                    (this.data.b = n.default.channel.hsl2rgb(this.data, 'b'));
              }),
              Object.defineProperty(e.prototype, 'r', {
                get: function () {
                  return this.type.is(r.TYPE.HSL) || void 0 === this.data.r
                    ? (this._ensureHSL(),
                      n.default.channel.hsl2rgb(this.data, 'r'))
                    : this.data.r;
                },
                set: function (e) {
                  this.type.set(r.TYPE.RGB),
                    (this.changed = !0),
                    (this.data.r = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'g', {
                get: function () {
                  return this.type.is(r.TYPE.HSL) || void 0 === this.data.g
                    ? (this._ensureHSL(),
                      n.default.channel.hsl2rgb(this.data, 'g'))
                    : this.data.g;
                },
                set: function (e) {
                  this.type.set(r.TYPE.RGB),
                    (this.changed = !0),
                    (this.data.g = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'b', {
                get: function () {
                  return this.type.is(r.TYPE.HSL) || void 0 === this.data.b
                    ? (this._ensureHSL(),
                      n.default.channel.hsl2rgb(this.data, 'b'))
                    : this.data.b;
                },
                set: function (e) {
                  this.type.set(r.TYPE.RGB),
                    (this.changed = !0),
                    (this.data.b = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'h', {
                get: function () {
                  return this.type.is(r.TYPE.RGB) || void 0 === this.data.h
                    ? (this._ensureRGB(),
                      n.default.channel.rgb2hsl(this.data, 'h'))
                    : this.data.h;
                },
                set: function (e) {
                  this.type.set(r.TYPE.HSL),
                    (this.changed = !0),
                    (this.data.h = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 's', {
                get: function () {
                  return this.type.is(r.TYPE.RGB) || void 0 === this.data.s
                    ? (this._ensureRGB(),
                      n.default.channel.rgb2hsl(this.data, 's'))
                    : this.data.s;
                },
                set: function (e) {
                  this.type.set(r.TYPE.HSL),
                    (this.changed = !0),
                    (this.data.s = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'l', {
                get: function () {
                  return this.type.is(r.TYPE.RGB) || void 0 === this.data.l
                    ? (this._ensureRGB(),
                      n.default.channel.rgb2hsl(this.data, 'l'))
                    : this.data.l;
                },
                set: function (e) {
                  this.type.set(r.TYPE.HSL),
                    (this.changed = !0),
                    (this.data.l = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'a', {
                get: function () {
                  return this.data.a;
                },
                set: function (e) {
                  (this.changed = !0), (this.data.a = e);
                },
                enumerable: !0,
                configurable: !0,
              }),
              e
            );
          })();
        t.default = o;
      },
      28167: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = new (i(61773).default)(
          { r: 0, g: 0, b: 0, a: 0 },
          'transparent'
        );
        t.default = n;
      },
      7628: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(2536),
          r = (function () {
            function e() {
              this.type = n.TYPE.ALL;
            }
            return (
              (e.prototype.get = function () {
                return this.type;
              }),
              (e.prototype.set = function (e) {
                if (this.type && this.type !== e)
                  throw new Error(
                    'Cannot change both RGB and HSL channels at the same time'
                  );
                this.type = e;
              }),
              (e.prototype.reset = function () {
                this.type = n.TYPE.ALL;
              }),
              (e.prototype.is = function (e) {
                return this.type === e;
              }),
              e
            );
          })();
        t.default = r;
      },
      51655: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(28167),
          s = i(66061),
          o = {
            re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
            parse: function (e) {
              if (35 === e.charCodeAt(0)) {
                var t = e.match(o.re);
                if (t) {
                  var i = t[1],
                    n = parseInt(i, 16),
                    s = i.length,
                    a = s % 4 == 0,
                    l = s > 4,
                    c = l ? 1 : 17,
                    d = l ? 8 : 4,
                    h = a ? 0 : -1,
                    u = l ? 255 : 15;
                  return r.default.set(
                    {
                      r: ((n >> (d * (h + 3))) & u) * c,
                      g: ((n >> (d * (h + 2))) & u) * c,
                      b: ((n >> (d * (h + 1))) & u) * c,
                      a: a ? ((n & u) * c) / 255 : 1,
                    },
                    e
                  );
                }
              }
            },
            stringify: function (e) {
              return e.a < 1
                ? '#' +
                    s.DEC2HEX[Math.round(e.r)] +
                    s.DEC2HEX[Math.round(e.g)] +
                    s.DEC2HEX[Math.round(e.b)] +
                    n.default.unit.frac2hex(e.a)
                : '#' +
                    s.DEC2HEX[Math.round(e.r)] +
                    s.DEC2HEX[Math.round(e.g)] +
                    s.DEC2HEX[Math.round(e.b)];
            },
          };
        t.default = o;
      },
      58589: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(28167),
          s = {
            re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
            hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
            _hue2deg: function (e) {
              var t = e.match(s.hueRe);
              if (t) {
                var i = t[1];
                switch (t[2]) {
                  case 'grad':
                    return n.default.channel.clamp.h(0.9 * parseFloat(i));
                  case 'rad':
                    return n.default.channel.clamp.h(
                      (180 * parseFloat(i)) / Math.PI
                    );
                  case 'turn':
                    return n.default.channel.clamp.h(360 * parseFloat(i));
                }
              }
              return n.default.channel.clamp.h(parseFloat(e));
            },
            parse: function (e) {
              var t = e.charCodeAt(0);
              if (104 === t || 72 === t) {
                var i = e.match(s.re);
                if (i) {
                  var o = i[1],
                    a = i[2],
                    l = i[3],
                    c = i[4],
                    d = i[5];
                  return r.default.set(
                    {
                      h: s._hue2deg(o),
                      s: n.default.channel.clamp.s(parseFloat(a)),
                      l: n.default.channel.clamp.l(parseFloat(l)),
                      a: c
                        ? n.default.channel.clamp.a(
                            d ? parseFloat(c) / 100 : parseFloat(c)
                          )
                        : 1,
                    },
                    e
                  );
                }
              }
            },
            stringify: function (e) {
              return e.a < 1
                ? 'hsla(' +
                    n.default.lang.round(e.h) +
                    ', ' +
                    n.default.lang.round(e.s) +
                    '%, ' +
                    n.default.lang.round(e.l) +
                    '%, ' +
                    e.a +
                    ')'
                : 'hsl(' +
                    n.default.lang.round(e.h) +
                    ', ' +
                    n.default.lang.round(e.s) +
                    '%, ' +
                    n.default.lang.round(e.l) +
                    '%)';
            },
          };
        t.default = s;
      },
      32191: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(2536),
          r = i(51655),
          s = i(7538),
          o = i(76762),
          a = i(58589),
          l = {
            format: {
              keyword: s.default,
              hex: r.default,
              rgb: o.default,
              rgba: o.default,
              hsl: a.default,
              hsla: a.default,
            },
            parse: function (e) {
              if ('string' != typeof e) return e;
              var t =
                r.default.parse(e) ||
                o.default.parse(e) ||
                a.default.parse(e) ||
                s.default.parse(e);
              if (t) return t;
              throw new Error('Unsupported color format: "' + e + '"');
            },
            stringify: function (e) {
              return !e.changed && e.color
                ? e.color
                : e.type.is(n.TYPE.HSL) || void 0 === e.data.r
                ? a.default.stringify(e)
                : e.a < 1 ||
                  !Number.isInteger(e.r) ||
                  !Number.isInteger(e.g) ||
                  !Number.isInteger(e.b)
                ? o.default.stringify(e)
                : r.default.stringify(e);
            },
          };
        t.default = l;
      },
      7538: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(51655),
          r = {
            colors: {
              aliceblue: '#f0f8ff',
              antiquewhite: '#faebd7',
              aqua: '#00ffff',
              aquamarine: '#7fffd4',
              azure: '#f0ffff',
              beige: '#f5f5dc',
              bisque: '#ffe4c4',
              black: '#000000',
              blanchedalmond: '#ffebcd',
              blue: '#0000ff',
              blueviolet: '#8a2be2',
              brown: '#a52a2a',
              burlywood: '#deb887',
              cadetblue: '#5f9ea0',
              chartreuse: '#7fff00',
              chocolate: '#d2691e',
              coral: '#ff7f50',
              cornflowerblue: '#6495ed',
              cornsilk: '#fff8dc',
              crimson: '#dc143c',
              cyanaqua: '#00ffff',
              darkblue: '#00008b',
              darkcyan: '#008b8b',
              darkgoldenrod: '#b8860b',
              darkgray: '#a9a9a9',
              darkgreen: '#006400',
              darkgrey: '#a9a9a9',
              darkkhaki: '#bdb76b',
              darkmagenta: '#8b008b',
              darkolivegreen: '#556b2f',
              darkorange: '#ff8c00',
              darkorchid: '#9932cc',
              darkred: '#8b0000',
              darksalmon: '#e9967a',
              darkseagreen: '#8fbc8f',
              darkslateblue: '#483d8b',
              darkslategray: '#2f4f4f',
              darkslategrey: '#2f4f4f',
              darkturquoise: '#00ced1',
              darkviolet: '#9400d3',
              deeppink: '#ff1493',
              deepskyblue: '#00bfff',
              dimgray: '#696969',
              dimgrey: '#696969',
              dodgerblue: '#1e90ff',
              firebrick: '#b22222',
              floralwhite: '#fffaf0',
              forestgreen: '#228b22',
              fuchsia: '#ff00ff',
              gainsboro: '#dcdcdc',
              ghostwhite: '#f8f8ff',
              gold: '#ffd700',
              goldenrod: '#daa520',
              gray: '#808080',
              green: '#008000',
              greenyellow: '#adff2f',
              grey: '#808080',
              honeydew: '#f0fff0',
              hotpink: '#ff69b4',
              indianred: '#cd5c5c',
              indigo: '#4b0082',
              ivory: '#fffff0',
              khaki: '#f0e68c',
              lavender: '#e6e6fa',
              lavenderblush: '#fff0f5',
              lawngreen: '#7cfc00',
              lemonchiffon: '#fffacd',
              lightblue: '#add8e6',
              lightcoral: '#f08080',
              lightcyan: '#e0ffff',
              lightgoldenrodyellow: '#fafad2',
              lightgray: '#d3d3d3',
              lightgreen: '#90ee90',
              lightgrey: '#d3d3d3',
              lightpink: '#ffb6c1',
              lightsalmon: '#ffa07a',
              lightseagreen: '#20b2aa',
              lightskyblue: '#87cefa',
              lightslategray: '#778899',
              lightslategrey: '#778899',
              lightsteelblue: '#b0c4de',
              lightyellow: '#ffffe0',
              lime: '#00ff00',
              limegreen: '#32cd32',
              linen: '#faf0e6',
              magenta: '#ff00ff',
              maroon: '#800000',
              mediumaquamarine: '#66cdaa',
              mediumblue: '#0000cd',
              mediumorchid: '#ba55d3',
              mediumpurple: '#9370db',
              mediumseagreen: '#3cb371',
              mediumslateblue: '#7b68ee',
              mediumspringgreen: '#00fa9a',
              mediumturquoise: '#48d1cc',
              mediumvioletred: '#c71585',
              midnightblue: '#191970',
              mintcream: '#f5fffa',
              mistyrose: '#ffe4e1',
              moccasin: '#ffe4b5',
              navajowhite: '#ffdead',
              navy: '#000080',
              oldlace: '#fdf5e6',
              olive: '#808000',
              olivedrab: '#6b8e23',
              orange: '#ffa500',
              orangered: '#ff4500',
              orchid: '#da70d6',
              palegoldenrod: '#eee8aa',
              palegreen: '#98fb98',
              paleturquoise: '#afeeee',
              palevioletred: '#db7093',
              papayawhip: '#ffefd5',
              peachpuff: '#ffdab9',
              peru: '#cd853f',
              pink: '#ffc0cb',
              plum: '#dda0dd',
              powderblue: '#b0e0e6',
              purple: '#800080',
              rebeccapurple: '#663399',
              red: '#ff0000',
              rosybrown: '#bc8f8f',
              royalblue: '#4169e1',
              saddlebrown: '#8b4513',
              salmon: '#fa8072',
              sandybrown: '#f4a460',
              seagreen: '#2e8b57',
              seashell: '#fff5ee',
              sienna: '#a0522d',
              silver: '#c0c0c0',
              skyblue: '#87ceeb',
              slateblue: '#6a5acd',
              slategray: '#708090',
              slategrey: '#708090',
              snow: '#fffafa',
              springgreen: '#00ff7f',
              tan: '#d2b48c',
              teal: '#008080',
              thistle: '#d8bfd8',
              transparent: '#00000000',
              turquoise: '#40e0d0',
              violet: '#ee82ee',
              wheat: '#f5deb3',
              white: '#ffffff',
              whitesmoke: '#f5f5f5',
              yellow: '#ffff00',
              yellowgreen: '#9acd32',
            },
            parse: function (e) {
              e = e.toLowerCase();
              var t = r.colors[e];
              if (t) return n.default.parse(t);
            },
            stringify: function (e) {
              var t = n.default.stringify(e);
              for (var i in r.colors) if (r.colors[i] === t) return i;
            },
          };
        t.default = r;
      },
      76762: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(28167),
          s = {
            re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
            parse: function (e) {
              var t = e.charCodeAt(0);
              if (114 === t || 82 === t) {
                var i = e.match(s.re);
                if (i) {
                  var o = i[1],
                    a = i[2],
                    l = i[3],
                    c = i[4],
                    d = i[5],
                    h = i[6],
                    u = i[7],
                    g = i[8];
                  return r.default.set(
                    {
                      r: n.default.channel.clamp.r(
                        a ? 2.55 * parseFloat(o) : parseFloat(o)
                      ),
                      g: n.default.channel.clamp.g(
                        c ? 2.55 * parseFloat(l) : parseFloat(l)
                      ),
                      b: n.default.channel.clamp.b(
                        h ? 2.55 * parseFloat(d) : parseFloat(d)
                      ),
                      a: u
                        ? n.default.channel.clamp.a(
                            g ? parseFloat(u) / 100 : parseFloat(u)
                          )
                        : 1,
                    },
                    e
                  );
                }
              }
            },
            stringify: function (e) {
              return e.a < 1
                ? 'rgba(' +
                    n.default.lang.round(e.r) +
                    ', ' +
                    n.default.lang.round(e.g) +
                    ', ' +
                    n.default.lang.round(e.b) +
                    ', ' +
                    n.default.lang.round(e.a) +
                    ')'
                : 'rgb(' +
                    n.default.lang.round(e.r) +
                    ', ' +
                    n.default.lang.round(e.g) +
                    ', ' +
                    n.default.lang.round(e.b) +
                    ')';
            },
          };
        t.default = s;
      },
      66061: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = {};
        t.DEC2HEX = r;
        for (var s = 0; s <= 255; s++) r[s] = n.default.unit.dec2hex(s);
      },
      8613: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 }),
          (function (e) {
            for (var i in e) t.hasOwnProperty(i) || (t[i] = e[i]);
          })(i(21203));
      },
      45371: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(32191),
          r = i(50418);
        t.default = function (e, t) {
          var i = n.default.parse(e),
            s = {};
          for (var o in t) t[o] && (s[o] = i[o] + t[o]);
          return r.default(e, s);
        };
      },
      11416: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(32191);
        t.default = function (e, t, i) {
          var s = r.default.parse(e),
            o = s[t],
            a = n.default.channel.clamp[t](o + i);
          return o !== a && (s[t] = a), r.default.stringify(s);
        };
      },
      89353: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 'a');
        };
      },
      63394: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 'b');
        };
      },
      50418: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(32191);
        t.default = function (e, t) {
          var i = r.default.parse(e);
          for (var s in t) i[s] = n.default.channel.clamp[s](t[s]);
          return r.default.stringify(i);
        };
      },
      6197: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(32191);
        t.default = function (e, t) {
          return n.default.lang.round(r.default.parse(e)[t]);
        };
      },
      77361: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e) {
          return n.default(e, 'h', 180);
        };
      },
      61364: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e, t) {
          return n.default(e, 'l', -t);
        };
      },
      49610: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e, t) {
          return n.default(e, 's', -t);
        };
      },
      40572: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(50418);
        t.default = function (e) {
          return n.default(e, { s: 0 });
        };
      },
      12299: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 'g');
        };
      },
      43116: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(28167),
          s = i(32191);
        t.default = function (e, t, i, o) {
          void 0 === o && (o = 1);
          var a = r.default.set({
            h: n.default.channel.clamp.h(e),
            s: n.default.channel.clamp.s(t),
            l: n.default.channel.clamp.l(i),
            a: n.default.channel.clamp.a(o),
          });
          return s.default.stringify(a);
        };
      },
      23008: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 'h');
        };
      },
      21203: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(76538);
        t.hex = n.default;
        var r = i(76538);
        t.rgb = r.default;
        var s = i(76538);
        t.rgba = s.default;
        var o = i(43116);
        t.hsl = o.default;
        var a = i(43116);
        t.hsla = a.default;
        var l = i(6197);
        t.channel = l.default;
        var c = i(79640);
        t.red = c.default;
        var d = i(12299);
        t.green = d.default;
        var h = i(63394);
        t.blue = h.default;
        var u = i(23008);
        t.hue = u.default;
        var g = i(46451);
        t.saturation = g.default;
        var f = i(29235);
        t.lightness = f.default;
        var p = i(89353);
        t.alpha = p.default;
        var m = i(89353);
        t.opacity = m.default;
        var _ = i(68346);
        t.luminance = _.default;
        var b = i(4117);
        t.isDark = b.default;
        var v = i(82224);
        t.isLight = v.default;
        var y = i(20585);
        t.isValid = y.default;
        var w = i(61080);
        t.saturate = w.default;
        var C = i(49610);
        t.desaturate = C.default;
        var S = i(23235);
        t.lighten = S.default;
        var k = i(61364);
        t.darken = k.default;
        var x = i(27189);
        t.opacify = x.default;
        var L = i(27189);
        t.fadeIn = L.default;
        var M = i(24989);
        t.transparentize = M.default;
        var D = i(24989);
        t.fadeOut = D.default;
        var N = i(77361);
        t.complement = N.default;
        var E = i(40572);
        t.grayscale = E.default;
        var T = i(45371);
        t.adjust = T.default;
        var I = i(50418);
        t.change = I.default;
        var O = i(566);
        t.invert = O.default;
        var A = i(51861);
        t.mix = A.default;
        var R = i(7081);
        t.scale = R.default;
      },
      566: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(32191),
          r = i(51861);
        t.default = function (e, t) {
          void 0 === t && (t = 100);
          var i = n.default.parse(e);
          return (
            (i.r = 255 - i.r),
            (i.g = 255 - i.g),
            (i.b = 255 - i.b),
            r.default(i, e, t)
          );
        };
      },
      4117: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(82224);
        t.default = function (e) {
          return !n.default(e);
        };
      },
      82224: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(68346);
        t.default = function (e) {
          return n.default(e) >= 0.5;
        };
      },
      20585: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(32191);
        t.default = function (e) {
          try {
            return n.default.parse(e), !0;
          } catch (e) {
            return !1;
          }
        };
      },
      23235: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e, t) {
          return n.default(e, 'l', t);
        };
      },
      29235: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 'l');
        };
      },
      68346: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(32191);
        t.default = function (e) {
          var t = r.default.parse(e),
            i = t.r,
            s = t.g,
            o = t.b,
            a =
              0.2126 * n.default.channel.toLinear(i) +
              0.7152 * n.default.channel.toLinear(s) +
              0.0722 * n.default.channel.toLinear(o);
          return n.default.lang.round(a);
        };
      },
      51861: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(32191),
          r = i(76538);
        t.default = function (e, t, i) {
          void 0 === i && (i = 50);
          var s = n.default.parse(e),
            o = s.r,
            a = s.g,
            l = s.b,
            c = s.a,
            d = n.default.parse(t),
            h = d.r,
            u = d.g,
            g = d.b,
            f = d.a,
            p = i / 100,
            m = 2 * p - 1,
            _ = c - f,
            b = ((m * _ == -1 ? m : (m + _) / (1 + m * _)) + 1) / 2,
            v = 1 - b,
            y = o * b + h * v,
            w = a * b + u * v,
            C = l * b + g * v,
            S = c * p + f * (1 - p);
          return r.default(y, w, C, S);
        };
      },
      27189: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e, t) {
          return n.default(e, 'a', t);
        };
      },
      79640: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 'r');
        };
      },
      76538: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(28167),
          s = i(32191),
          o = i(50418);
        t.default = function (e, t, i, a) {
          if (
            (void 0 === i && (i = 0),
            void 0 === a && (a = 1),
            'number' != typeof e)
          )
            return o.default(e, { a: t });
          var l = r.default.set({
            r: n.default.channel.clamp.r(e),
            g: n.default.channel.clamp.g(t),
            b: n.default.channel.clamp.b(i),
            a: n.default.channel.clamp.a(a),
          });
          return s.default.stringify(l);
        };
      },
      61080: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e, t) {
          return n.default(e, 's', t);
        };
      },
      46451: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(6197);
        t.default = function (e) {
          return n.default(e, 's');
        };
      },
      7081: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(81083),
          r = i(32191),
          s = i(45371);
        t.default = function (e, t) {
          var i,
            o,
            a,
            l = r.default.parse(e),
            c = {};
          for (var d in t)
            c[d] =
              ((i = l[d]),
              (o = t[d]),
              (a = n.default.channel.max[d]),
              o > 0 ? ((a - i) * o) / 100 : (i * o) / 100);
          return s.default(e, c);
        };
      },
      24989: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(11416);
        t.default = function (e, t) {
          return n.default(e, 'a', -t);
        };
      },
      2536: (e, t) => {
        'use strict';
        var i;
        Object.defineProperty(t, '__esModule', { value: !0 }),
          (function (e) {
            (e[(e.ALL = 0)] = 'ALL'),
              (e[(e.RGB = 1)] = 'RGB'),
              (e[(e.HSL = 2)] = 'HSL');
          })(i || (i = {})),
          (t.TYPE = i);
      },
      47994: (e, t) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var i = {
          min: { r: 0, g: 0, b: 0, s: 0, l: 0, a: 0 },
          max: { r: 255, g: 255, b: 255, h: 360, s: 100, l: 100, a: 1 },
          clamp: {
            r: function (e) {
              return e >= 255 ? 255 : e < 0 ? 0 : e;
            },
            g: function (e) {
              return e >= 255 ? 255 : e < 0 ? 0 : e;
            },
            b: function (e) {
              return e >= 255 ? 255 : e < 0 ? 0 : e;
            },
            h: function (e) {
              return e % 360;
            },
            s: function (e) {
              return e >= 100 ? 100 : e < 0 ? 0 : e;
            },
            l: function (e) {
              return e >= 100 ? 100 : e < 0 ? 0 : e;
            },
            a: function (e) {
              return e >= 1 ? 1 : e < 0 ? 0 : e;
            },
          },
          toLinear: function (e) {
            var t = e / 255;
            return e > 0.03928 ? Math.pow((t + 0.055) / 1.055, 2.4) : t / 12.92;
          },
          hue2rgb: function (e, t, i) {
            return (
              i < 0 && (i += 1),
              i > 1 && (i -= 1),
              i < 1 / 6
                ? e + 6 * (t - e) * i
                : i < 0.5
                ? t
                : i < 2 / 3
                ? e + (t - e) * (2 / 3 - i) * 6
                : e
            );
          },
          hsl2rgb: function (e, t) {
            var n = e.h,
              r = e.s,
              s = e.l;
            if (100 === r) return 2.55 * s;
            (n /= 360), (r /= 100);
            var o = (s /= 100) < 0.5 ? s * (1 + r) : s + r - s * r,
              a = 2 * s - o;
            switch (t) {
              case 'r':
                return 255 * i.hue2rgb(a, o, n + 1 / 3);
              case 'g':
                return 255 * i.hue2rgb(a, o, n);
              case 'b':
                return 255 * i.hue2rgb(a, o, n - 1 / 3);
            }
          },
          rgb2hsl: function (e, t) {
            var i = e.r,
              n = e.g,
              r = e.b;
            (i /= 255), (n /= 255), (r /= 255);
            var s = Math.max(i, n, r),
              o = Math.min(i, n, r),
              a = (s + o) / 2;
            if ('l' === t) return 100 * a;
            if (s === o) return 0;
            var l = s - o;
            if ('s' === t)
              return 100 * (a > 0.5 ? l / (2 - s - o) : l / (s + o));
            switch (s) {
              case i:
                return 60 * ((n - r) / l + (n < r ? 6 : 0));
              case n:
                return 60 * ((r - i) / l + 2);
              case r:
                return 60 * ((i - n) / l + 4);
              default:
                return -1;
            }
          },
        };
        t.default = i;
      },
      81083: (e, t, i) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var n = i(47994),
          r = i(64027),
          s = i(10318),
          o = { channel: n.default, lang: r.default, unit: s.default };
        t.default = o;
      },
      64027: (e, t) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var i = {
          round: function (e) {
            return Math.round(1e10 * e) / 1e10;
          },
        };
        t.default = i;
      },
      10318: (e, t) => {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var i = {
          frac2hex: function (e) {
            var t = Math.round(255 * e).toString(16);
            return t.length > 1 ? t : '0' + t;
          },
          dec2hex: function (e) {
            var t = Math.round(e).toString(16);
            return t.length > 1 ? t : '0' + t;
          },
        };
        t.default = i;
      },
      18552: (e, t, i) => {
        var n = i(10852)(i(55639), 'DataView');
        e.exports = n;
      },
      1989: (e, t, i) => {
        var n = i(51789),
          r = i(80401),
          s = i(57667),
          o = i(21327),
          a = i(81866);
        function l(e) {
          var t = -1,
            i = null == e ? 0 : e.length;
          for (this.clear(); ++t < i; ) {
            var n = e[t];
            this.set(n[0], n[1]);
          }
        }
        (l.prototype.clear = n),
          (l.prototype.delete = r),
          (l.prototype.get = s),
          (l.prototype.has = o),
          (l.prototype.set = a),
          (e.exports = l);
      },
      38407: (e, t, i) => {
        var n = i(27040),
          r = i(14125),
          s = i(82117),
          o = i(67518),
          a = i(54705);
        function l(e) {
          var t = -1,
            i = null == e ? 0 : e.length;
          for (this.clear(); ++t < i; ) {
            var n = e[t];
            this.set(n[0], n[1]);
          }
        }
        (l.prototype.clear = n),
          (l.prototype.delete = r),
          (l.prototype.get = s),
          (l.prototype.has = o),
          (l.prototype.set = a),
          (e.exports = l);
      },
      57071: (e, t, i) => {
        var n = i(10852)(i(55639), 'Map');
        e.exports = n;
      },
      83369: (e, t, i) => {
        var n = i(24785),
          r = i(11285),
          s = i(96e3),
          o = i(49916),
          a = i(95265);
        function l(e) {
          var t = -1,
            i = null == e ? 0 : e.length;
          for (this.clear(); ++t < i; ) {
            var n = e[t];
            this.set(n[0], n[1]);
          }
        }
        (l.prototype.clear = n),
          (l.prototype.delete = r),
          (l.prototype.get = s),
          (l.prototype.has = o),
          (l.prototype.set = a),
          (e.exports = l);
      },
      53818: (e, t, i) => {
        var n = i(10852)(i(55639), 'Promise');
        e.exports = n;
      },
      58525: (e, t, i) => {
        var n = i(10852)(i(55639), 'Set');
        e.exports = n;
      },
      88668: (e, t, i) => {
        var n = i(83369),
          r = i(90619),
          s = i(72385);
        function o(e) {
          var t = -1,
            i = null == e ? 0 : e.length;
          for (this.__data__ = new n(); ++t < i; ) this.add(e[t]);
        }
        (o.prototype.add = o.prototype.push = r),
          (o.prototype.has = s),
          (e.exports = o);
      },
      46384: (e, t, i) => {
        var n = i(38407),
          r = i(37465),
          s = i(63779),
          o = i(67599),
          a = i(44758),
          l = i(34309);
        function c(e) {
          var t = (this.__data__ = new n(e));
          this.size = t.size;
        }
        (c.prototype.clear = r),
          (c.prototype.delete = s),
          (c.prototype.get = o),
          (c.prototype.has = a),
          (c.prototype.set = l),
          (e.exports = c);
      },
      62705: (e, t, i) => {
        var n = i(55639).Symbol;
        e.exports = n;
      },
      11149: (e, t, i) => {
        var n = i(55639).Uint8Array;
        e.exports = n;
      },
      70577: (e, t, i) => {
        var n = i(10852)(i(55639), 'WeakMap');
        e.exports = n;
      },
      96874: (e) => {
        e.exports = function (e, t, i) {
          switch (i.length) {
            case 0:
              return e.call(t);
            case 1:
              return e.call(t, i[0]);
            case 2:
              return e.call(t, i[0], i[1]);
            case 3:
              return e.call(t, i[0], i[1], i[2]);
          }
          return e.apply(t, i);
        };
      },
      77412: (e) => {
        e.exports = function (e, t) {
          for (
            var i = -1, n = null == e ? 0 : e.length;
            ++i < n && !1 !== t(e[i], i, e);

          );
          return e;
        };
      },
      34963: (e) => {
        e.exports = function (e, t) {
          for (
            var i = -1, n = null == e ? 0 : e.length, r = 0, s = [];
            ++i < n;

          ) {
            var o = e[i];
            t(o, i, e) && (s[r++] = o);
          }
          return s;
        };
      },
      47443: (e, t, i) => {
        var n = i(42118);
        e.exports = function (e, t) {
          return !(null == e || !e.length) && n(e, t, 0) > -1;
        };
      },
      1196: (e) => {
        e.exports = function (e, t, i) {
          for (var n = -1, r = null == e ? 0 : e.length; ++n < r; )
            if (i(t, e[n])) return !0;
          return !1;
        };
      },
      14636: (e, t, i) => {
        var n = i(22545),
          r = i(35694),
          s = i(1469),
          o = i(44144),
          a = i(65776),
          l = i(36719),
          c = Object.prototype.hasOwnProperty;
        e.exports = function (e, t) {
          var i = s(e),
            d = !i && r(e),
            h = !i && !d && o(e),
            u = !i && !d && !h && l(e),
            g = i || d || h || u,
            f = g ? n(e.length, String) : [],
            p = f.length;
          for (var m in e)
            (!t && !c.call(e, m)) ||
              (g &&
                ('length' == m ||
                  (h && ('offset' == m || 'parent' == m)) ||
                  (u &&
                    ('buffer' == m ||
                      'byteLength' == m ||
                      'byteOffset' == m)) ||
                  a(m, p))) ||
              f.push(m);
          return f;
        };
      },
      29932: (e) => {
        e.exports = function (e, t) {
          for (
            var i = -1, n = null == e ? 0 : e.length, r = Array(n);
            ++i < n;

          )
            r[i] = t(e[i], i, e);
          return r;
        };
      },
      62488: (e) => {
        e.exports = function (e, t) {
          for (var i = -1, n = t.length, r = e.length; ++i < n; )
            e[r + i] = t[i];
          return e;
        };
      },
      62663: (e) => {
        e.exports = function (e, t, i, n) {
          var r = -1,
            s = null == e ? 0 : e.length;
          for (n && s && (i = e[++r]); ++r < s; ) i = t(i, e[r], r, e);
          return i;
        };
      },
      82908: (e) => {
        e.exports = function (e, t) {
          for (var i = -1, n = null == e ? 0 : e.length; ++i < n; )
            if (t(e[i], i, e)) return !0;
          return !1;
        };
      },
      48983: (e, t, i) => {
        var n = i(40371)('length');
        e.exports = n;
      },
      86556: (e, t, i) => {
        var n = i(89465),
          r = i(77813);
        e.exports = function (e, t, i) {
          ((void 0 !== i && !r(e[t], i)) || (void 0 === i && !(t in e))) &&
            n(e, t, i);
        };
      },
      34865: (e, t, i) => {
        var n = i(89465),
          r = i(77813),
          s = Object.prototype.hasOwnProperty;
        e.exports = function (e, t, i) {
          var o = e[t];
          (s.call(e, t) && r(o, i) && (void 0 !== i || t in e)) || n(e, t, i);
        };
      },
      18470: (e, t, i) => {
        var n = i(77813);
        e.exports = function (e, t) {
          for (var i = e.length; i--; ) if (n(e[i][0], t)) return i;
          return -1;
        };
      },
      44037: (e, t, i) => {
        var n = i(98363),
          r = i(3674);
        e.exports = function (e, t) {
          return e && n(t, r(t), e);
        };
      },
      63886: (e, t, i) => {
        var n = i(98363),
          r = i(81704);
        e.exports = function (e, t) {
          return e && n(t, r(t), e);
        };
      },
      89465: (e, t, i) => {
        var n = i(38777);
        e.exports = function (e, t, i) {
          '__proto__' == t && n
            ? n(e, t, {
                configurable: !0,
                enumerable: !0,
                value: i,
                writable: !0,
              })
            : (e[t] = i);
        };
      },
      85990: (e, t, i) => {
        var n = i(46384),
          r = i(77412),
          s = i(34865),
          o = i(44037),
          a = i(63886),
          l = i(64626),
          c = i(278),
          d = i(18805),
          h = i(1911),
          u = i(58234),
          g = i(46904),
          f = i(64160),
          p = i(43824),
          m = i(29148),
          _ = i(38517),
          b = i(1469),
          v = i(44144),
          y = i(56688),
          w = i(13218),
          C = i(72928),
          S = i(3674),
          k = '[object Arguments]',
          x = '[object Function]',
          L = '[object Object]',
          M = {};
        (M[k] = M['[object Array]'] = M['[object ArrayBuffer]'] = M[
          '[object DataView]'
        ] = M['[object Boolean]'] = M['[object Date]'] = M[
          '[object Float32Array]'
        ] = M['[object Float64Array]'] = M['[object Int8Array]'] = M[
          '[object Int16Array]'
        ] = M['[object Int32Array]'] = M['[object Map]'] = M[
          '[object Number]'
        ] = M[L] = M['[object RegExp]'] = M['[object Set]'] = M[
          '[object String]'
        ] = M['[object Symbol]'] = M['[object Uint8Array]'] = M[
          '[object Uint8ClampedArray]'
        ] = M['[object Uint16Array]'] = M['[object Uint32Array]'] = !0),
          (M['[object Error]'] = M[x] = M['[object WeakMap]'] = !1),
          (e.exports = function e(t, i, D, N, E, T) {
            var I,
              O = 1 & i,
              A = 2 & i,
              R = 4 & i;
            if ((D && (I = E ? D(t, N, E, T) : D(t)), void 0 !== I)) return I;
            if (!w(t)) return t;
            var P = b(t);
            if (P) {
              if (((I = p(t)), !O)) return c(t, I);
            } else {
              var F = f(t),
                B = F == x || '[object GeneratorFunction]' == F;
              if (v(t)) return l(t, O);
              if (F == L || F == k || (B && !E)) {
                if (((I = A || B ? {} : _(t)), !O))
                  return A ? h(t, a(I, t)) : d(t, o(I, t));
              } else {
                if (!M[F]) return E ? t : {};
                I = m(t, F, O);
              }
            }
            T || (T = new n());
            var W = T.get(t);
            if (W) return W;
            T.set(t, I),
              C(t)
                ? t.forEach(function (n) {
                    I.add(e(n, i, D, n, t, T));
                  })
                : y(t) &&
                  t.forEach(function (n, r) {
                    I.set(r, e(n, i, D, r, t, T));
                  });
            var Y = R ? (A ? g : u) : A ? keysIn : S,
              H = P ? void 0 : Y(t);
            return (
              r(H || t, function (n, r) {
                H && (n = t[(r = n)]), s(I, r, e(n, i, D, r, t, T));
              }),
              I
            );
          });
      },
      3118: (e, t, i) => {
        var n = i(13218),
          r = Object.create,
          s = (function () {
            function e() {}
            return function (t) {
              if (!n(t)) return {};
              if (r) return r(t);
              e.prototype = t;
              var i = new e();
              return (e.prototype = void 0), i;
            };
          })();
        e.exports = s;
      },
      89881: (e, t, i) => {
        var n = i(47816),
          r = i(99291)(n);
        e.exports = r;
      },
      56029: (e, t, i) => {
        var n = i(33448);
        e.exports = function (e, t, i) {
          for (var r = -1, s = e.length; ++r < s; ) {
            var o = e[r],
              a = t(o);
            if (null != a && (void 0 === l ? a == a && !n(a) : i(a, l)))
              var l = a,
                c = o;
          }
          return c;
        };
      },
      80760: (e, t, i) => {
        var n = i(89881);
        e.exports = function (e, t) {
          var i = [];
          return (
            n(e, function (e, n, r) {
              t(e, n, r) && i.push(e);
            }),
            i
          );
        };
      },
      41848: (e) => {
        e.exports = function (e, t, i, n) {
          for (var r = e.length, s = i + (n ? 1 : -1); n ? s-- : ++s < r; )
            if (t(e[s], s, e)) return s;
          return -1;
        };
      },
      21078: (e, t, i) => {
        var n = i(62488),
          r = i(37285);
        e.exports = function e(t, i, s, o, a) {
          var l = -1,
            c = t.length;
          for (s || (s = r), a || (a = []); ++l < c; ) {
            var d = t[l];
            i > 0 && s(d)
              ? i > 1
                ? e(d, i - 1, s, o, a)
                : n(a, d)
              : o || (a[a.length] = d);
          }
          return a;
        };
      },
      28483: (e, t, i) => {
        var n = i(25063)();
        e.exports = n;
      },
      47816: (e, t, i) => {
        var n = i(28483),
          r = i(3674);
        e.exports = function (e, t) {
          return e && n(e, t, r);
        };
      },
      97786: (e, t, i) => {
        var n = i(71811),
          r = i(40327);
        e.exports = function (e, t) {
          for (var i = 0, s = (t = n(t, e)).length; null != e && i < s; )
            e = e[r(t[i++])];
          return i && i == s ? e : void 0;
        };
      },
      68866: (e, t, i) => {
        var n = i(62488),
          r = i(1469);
        e.exports = function (e, t, i) {
          var s = t(e);
          return r(e) ? s : n(s, i(e));
        };
      },
      44239: (e, t, i) => {
        var n = i(62705),
          r = i(89607),
          s = i(2333),
          o = n ? n.toStringTag : void 0;
        e.exports = function (e) {
          return null == e
            ? void 0 === e
              ? '[object Undefined]'
              : '[object Null]'
            : o && o in Object(e)
            ? r(e)
            : s(e);
        };
      },
      53325: (e) => {
        e.exports = function (e, t) {
          return e > t;
        };
      },
      78565: (e) => {
        var t = Object.prototype.hasOwnProperty;
        e.exports = function (e, i) {
          return null != e && t.call(e, i);
        };
      },
      13: (e) => {
        e.exports = function (e, t) {
          return null != e && t in Object(e);
        };
      },
      42118: (e, t, i) => {
        var n = i(41848),
          r = i(62722),
          s = i(42351);
        e.exports = function (e, t, i) {
          return t == t ? s(e, t, i) : n(e, r, i);
        };
      },
      9454: (e, t, i) => {
        var n = i(44239),
          r = i(37005);
        e.exports = function (e) {
          return r(e) && '[object Arguments]' == n(e);
        };
      },
      90939: (e, t, i) => {
        var n = i(2492),
          r = i(37005);
        e.exports = function e(t, i, s, o, a) {
          return (
            t === i ||
            (null == t || null == i || (!r(t) && !r(i))
              ? t != t && i != i
              : n(t, i, s, o, e, a))
          );
        };
      },
      2492: (e, t, i) => {
        var n = i(46384),
          r = i(67114),
          s = i(18351),
          o = i(16096),
          a = i(64160),
          l = i(1469),
          c = i(44144),
          d = i(36719),
          h = '[object Arguments]',
          u = '[object Array]',
          g = '[object Object]',
          f = Object.prototype.hasOwnProperty;
        e.exports = function (e, t, i, p, m, _) {
          var b = l(e),
            v = l(t),
            y = b ? u : a(e),
            w = v ? u : a(t),
            C = (y = y == h ? g : y) == g,
            S = (w = w == h ? g : w) == g,
            k = y == w;
          if (k && c(e)) {
            if (!c(t)) return !1;
            (b = !0), (C = !1);
          }
          if (k && !C)
            return (
              _ || (_ = new n()),
              b || d(e) ? r(e, t, i, p, m, _) : s(e, t, y, i, p, m, _)
            );
          if (!(1 & i)) {
            var x = C && f.call(e, '__wrapped__'),
              L = S && f.call(t, '__wrapped__');
            if (x || L) {
              var M = x ? e.value() : e,
                D = L ? t.value() : t;
              return _ || (_ = new n()), m(M, D, i, p, _);
            }
          }
          return !!k && (_ || (_ = new n()), o(e, t, i, p, m, _));
        };
      },
      25588: (e, t, i) => {
        var n = i(64160),
          r = i(37005);
        e.exports = function (e) {
          return r(e) && '[object Map]' == n(e);
        };
      },
      2958: (e, t, i) => {
        var n = i(46384),
          r = i(90939);
        e.exports = function (e, t, i, s) {
          var o = i.length,
            a = o,
            l = !s;
          if (null == e) return !a;
          for (e = Object(e); o--; ) {
            var c = i[o];
            if (l && c[2] ? c[1] !== e[c[0]] : !(c[0] in e)) return !1;
          }
          for (; ++o < a; ) {
            var d = (c = i[o])[0],
              h = e[d],
              u = c[1];
            if (l && c[2]) {
              if (void 0 === h && !(d in e)) return !1;
            } else {
              var g = new n();
              if (s) var f = s(h, u, d, e, t, g);
              if (!(void 0 === f ? r(u, h, 3, s, g) : f)) return !1;
            }
          }
          return !0;
        };
      },
      62722: (e) => {
        e.exports = function (e) {
          return e != e;
        };
      },
      28458: (e, t, i) => {
        var n = i(23560),
          r = i(15346),
          s = i(13218),
          o = i(80346),
          a = /^\[object .+?Constructor\]$/,
          l = Function.prototype,
          c = Object.prototype,
          d = l.toString,
          h = c.hasOwnProperty,
          u = RegExp(
            '^' +
              d
                .call(h)
                .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
                .replace(
                  /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,
                  '$1.*?'
                ) +
              '$'
          );
        e.exports = function (e) {
          return !(!s(e) || r(e)) && (n(e) ? u : a).test(o(e));
        };
      },
      29221: (e, t, i) => {
        var n = i(64160),
          r = i(37005);
        e.exports = function (e) {
          return r(e) && '[object Set]' == n(e);
        };
      },
      38749: (e, t, i) => {
        var n = i(44239),
          r = i(41780),
          s = i(37005),
          o = {};
        (o['[object Float32Array]'] = o['[object Float64Array]'] = o[
          '[object Int8Array]'
        ] = o['[object Int16Array]'] = o['[object Int32Array]'] = o[
          '[object Uint8Array]'
        ] = o['[object Uint8ClampedArray]'] = o['[object Uint16Array]'] = o[
          '[object Uint32Array]'
        ] = !0),
          (o['[object Arguments]'] = o['[object Array]'] = o[
            '[object ArrayBuffer]'
          ] = o['[object Boolean]'] = o['[object DataView]'] = o[
            '[object Date]'
          ] = o['[object Error]'] = o['[object Function]'] = o[
            '[object Map]'
          ] = o['[object Number]'] = o['[object Object]'] = o[
            '[object RegExp]'
          ] = o['[object Set]'] = o['[object String]'] = o[
            '[object WeakMap]'
          ] = !1),
          (e.exports = function (e) {
            return s(e) && r(e.length) && !!o[n(e)];
          });
      },
      67206: (e, t, i) => {
        var n = i(91573),
          r = i(16432),
          s = i(6557),
          o = i(1469),
          a = i(39601);
        e.exports = function (e) {
          return 'function' == typeof e
            ? e
            : null == e
            ? s
            : 'object' == typeof e
            ? o(e)
              ? r(e[0], e[1])
              : n(e)
            : a(e);
        };
      },
      280: (e, t, i) => {
        var n = i(25726),
          r = i(86916),
          s = Object.prototype.hasOwnProperty;
        e.exports = function (e) {
          if (!n(e)) return r(e);
          var t = [];
          for (var i in Object(e))
            s.call(e, i) && 'constructor' != i && t.push(i);
          return t;
        };
      },
      10313: (e, t, i) => {
        var n = i(13218),
          r = i(25726),
          s = i(33498),
          o = Object.prototype.hasOwnProperty;
        e.exports = function (e) {
          if (!n(e)) return s(e);
          var t = r(e),
            i = [];
          for (var a in e)
            ('constructor' != a || (!t && o.call(e, a))) && i.push(a);
          return i;
        };
      },
      70433: (e) => {
        e.exports = function (e, t) {
          return e < t;
        };
      },
      69199: (e, t, i) => {
        var n = i(89881),
          r = i(98612);
        e.exports = function (e, t) {
          var i = -1,
            s = r(e) ? Array(e.length) : [];
          return (
            n(e, function (e, n, r) {
              s[++i] = t(e, n, r);
            }),
            s
          );
        };
      },
      91573: (e, t, i) => {
        var n = i(2958),
          r = i(1499),
          s = i(42634);
        e.exports = function (e) {
          var t = r(e);
          return 1 == t.length && t[0][2]
            ? s(t[0][0], t[0][1])
            : function (i) {
                return i === e || n(i, e, t);
              };
        };
      },
      16432: (e, t, i) => {
        var n = i(90939),
          r = i(27361),
          s = i(79095),
          o = i(15403),
          a = i(89162),
          l = i(42634),
          c = i(40327);
        e.exports = function (e, t) {
          return o(e) && a(t)
            ? l(c(e), t)
            : function (i) {
                var o = r(i, e);
                return void 0 === o && o === t ? s(i, e) : n(t, o, 3);
              };
        };
      },
      42980: (e, t, i) => {
        var n = i(46384),
          r = i(86556),
          s = i(28483),
          o = i(59783),
          a = i(13218),
          l = i(81704),
          c = i(36390);
        e.exports = function e(t, i, d, h, u) {
          t !== i &&
            s(
              i,
              function (s, l) {
                if ((u || (u = new n()), a(s))) o(t, i, l, d, e, h, u);
                else {
                  var g = h ? h(c(t, l), s, l + '', t, i, u) : void 0;
                  void 0 === g && (g = s), r(t, l, g);
                }
              },
              l
            );
        };
      },
      59783: (e, t, i) => {
        var n = i(86556),
          r = i(64626),
          s = i(77133),
          o = i(278),
          a = i(38517),
          l = i(35694),
          c = i(1469),
          d = i(29246),
          h = i(44144),
          u = i(23560),
          g = i(13218),
          f = i(68630),
          p = i(36719),
          m = i(36390),
          _ = i(59881);
        e.exports = function (e, t, i, b, v, y, w) {
          var C = m(e, i),
            S = m(t, i),
            k = w.get(S);
          if (k) n(e, i, k);
          else {
            var x = y ? y(C, S, i + '', e, t, w) : void 0,
              L = void 0 === x;
            if (L) {
              var M = c(S),
                D = !M && h(S),
                N = !M && !D && p(S);
              (x = S),
                M || D || N
                  ? c(C)
                    ? (x = C)
                    : d(C)
                    ? (x = o(C))
                    : D
                    ? ((L = !1), (x = r(S, !0)))
                    : N
                    ? ((L = !1), (x = s(S, !0)))
                    : (x = [])
                  : f(S) || l(S)
                  ? ((x = C), l(C) ? (x = _(C)) : (g(C) && !u(C)) || (x = a(S)))
                  : (L = !1);
            }
            L && (w.set(S, x), v(x, S, b, y, w), w.delete(S)), n(e, i, x);
          }
        };
      },
      82689: (e, t, i) => {
        var n = i(29932),
          r = i(67206),
          s = i(69199),
          o = i(71131),
          a = i(7518),
          l = i(85022),
          c = i(6557);
        e.exports = function (e, t, i) {
          var d = -1;
          t = n(t.length ? t : [c], a(r));
          var h = s(e, function (e, i, r) {
            return {
              criteria: n(t, function (t) {
                return t(e);
              }),
              index: ++d,
              value: e,
            };
          });
          return o(h, function (e, t) {
            return l(e, t, i);
          });
        };
      },
      25970: (e, t, i) => {
        var n = i(63012),
          r = i(79095);
        e.exports = function (e, t) {
          return n(e, t, function (t, i) {
            return r(e, i);
          });
        };
      },
      63012: (e, t, i) => {
        var n = i(97786),
          r = i(10611),
          s = i(71811);
        e.exports = function (e, t, i) {
          for (var o = -1, a = t.length, l = {}; ++o < a; ) {
            var c = t[o],
              d = n(e, c);
            i(d, c) && r(l, s(c, e), d);
          }
          return l;
        };
      },
      40371: (e) => {
        e.exports = function (e) {
          return function (t) {
            return null == t ? void 0 : t[e];
          };
        };
      },
      79152: (e, t, i) => {
        var n = i(97786);
        e.exports = function (e) {
          return function (t) {
            return n(t, e);
          };
        };
      },
      40098: (e) => {
        var t = Math.ceil,
          i = Math.max;
        e.exports = function (e, n, r, s) {
          for (var o = -1, a = i(t((n - e) / (r || 1)), 0), l = Array(a); a--; )
            (l[s ? a : ++o] = e), (e += r);
          return l;
        };
      },
      10107: (e) => {
        e.exports = function (e, t, i, n, r) {
          return (
            r(e, function (e, r, s) {
              i = n ? ((n = !1), e) : t(i, e, r, s);
            }),
            i
          );
        };
      },
      18460: (e, t, i) => {
        var n = i(6557),
          r = i(45357),
          s = i(30061);
        e.exports = function (e, t) {
          return s(r(e, t, n), e + '');
        };
      },
      10611: (e, t, i) => {
        var n = i(34865),
          r = i(71811),
          s = i(65776),
          o = i(13218),
          a = i(40327);
        e.exports = function (e, t, i, l) {
          if (!o(e)) return e;
          for (
            var c = -1, d = (t = r(t, e)).length, h = d - 1, u = e;
            null != u && ++c < d;

          ) {
            var g = a(t[c]),
              f = i;
            if (c != h) {
              var p = u[g];
              void 0 === (f = l ? l(p, g, u) : void 0) &&
                (f = o(p) ? p : s(t[c + 1]) ? [] : {});
            }
            n(u, g, f), (u = u[g]);
          }
          return e;
        };
      },
      56560: (e, t, i) => {
        var n = i(75703),
          r = i(38777),
          s = i(6557),
          o = r
            ? function (e, t) {
                return r(e, 'toString', {
                  configurable: !0,
                  enumerable: !1,
                  value: n(t),
                  writable: !0,
                });
              }
            : s;
        e.exports = o;
      },
      71131: (e) => {
        e.exports = function (e, t) {
          var i = e.length;
          for (e.sort(t); i--; ) e[i] = e[i].value;
          return e;
        };
      },
      22545: (e) => {
        e.exports = function (e, t) {
          for (var i = -1, n = Array(e); ++i < e; ) n[i] = t(i);
          return n;
        };
      },
      80531: (e, t, i) => {
        var n = i(62705),
          r = i(29932),
          s = i(1469),
          o = i(33448),
          a = n ? n.prototype : void 0,
          l = a ? a.toString : void 0;
        e.exports = function e(t) {
          if ('string' == typeof t) return t;
          if (s(t)) return r(t, e) + '';
          if (o(t)) return l ? l.call(t) : '';
          var i = t + '';
          return '0' == i && 1 / t == -1 / 0 ? '-0' : i;
        };
      },
      7518: (e) => {
        e.exports = function (e) {
          return function (t) {
            return e(t);
          };
        };
      },
      45652: (e, t, i) => {
        var n = i(88668),
          r = i(47443),
          s = i(1196),
          o = i(74757),
          a = i(23593),
          l = i(21814);
        e.exports = function (e, t, i) {
          var c = -1,
            d = r,
            h = e.length,
            u = !0,
            g = [],
            f = g;
          if (i) (u = !1), (d = s);
          else if (h >= 200) {
            var p = t ? null : a(e);
            if (p) return l(p);
            (u = !1), (d = o), (f = new n());
          } else f = t ? [] : g;
          e: for (; ++c < h; ) {
            var m = e[c],
              _ = t ? t(m) : m;
            if (((m = i || 0 !== m ? m : 0), u && _ == _)) {
              for (var b = f.length; b--; ) if (f[b] === _) continue e;
              t && f.push(_), g.push(m);
            } else d(f, _, i) || (f !== g && f.push(_), g.push(m));
          }
          return g;
        };
      },
      47415: (e, t, i) => {
        var n = i(29932);
        e.exports = function (e, t) {
          return n(t, function (t) {
            return e[t];
          });
        };
      },
      1757: (e) => {
        e.exports = function (e, t, i) {
          for (var n = -1, r = e.length, s = t.length, o = {}; ++n < r; ) {
            var a = n < s ? t[n] : void 0;
            i(o, e[n], a);
          }
          return o;
        };
      },
      74757: (e) => {
        e.exports = function (e, t) {
          return e.has(t);
        };
      },
      54290: (e, t, i) => {
        var n = i(6557);
        e.exports = function (e) {
          return 'function' == typeof e ? e : n;
        };
      },
      71811: (e, t, i) => {
        var n = i(1469),
          r = i(15403),
          s = i(55514),
          o = i(79833);
        e.exports = function (e, t) {
          return n(e) ? e : r(e, t) ? [e] : s(o(e));
        };
      },
      74318: (e, t, i) => {
        var n = i(11149);
        e.exports = function (e) {
          var t = new e.constructor(e.byteLength);
          return new n(t).set(new n(e)), t;
        };
      },
      64626: (e, t, i) => {
        e = i.nmd(e);
        var n = i(55639),
          r = t && !t.nodeType && t,
          s = r && e && !e.nodeType && e,
          o = s && s.exports === r ? n.Buffer : void 0,
          a = o ? o.allocUnsafe : void 0;
        e.exports = function (e, t) {
          if (t) return e.slice();
          var i = e.length,
            n = a ? a(i) : new e.constructor(i);
          return e.copy(n), n;
        };
      },
      57157: (e, t, i) => {
        var n = i(74318);
        e.exports = function (e, t) {
          var i = t ? n(e.buffer) : e.buffer;
          return new e.constructor(i, e.byteOffset, e.byteLength);
        };
      },
      93147: (e) => {
        var t = /\w*$/;
        e.exports = function (e) {
          var i = new e.constructor(e.source, t.exec(e));
          return (i.lastIndex = e.lastIndex), i;
        };
      },
      40419: (e, t, i) => {
        var n = i(62705),
          r = n ? n.prototype : void 0,
          s = r ? r.valueOf : void 0;
        e.exports = function (e) {
          return s ? Object(s.call(e)) : {};
        };
      },
      77133: (e, t, i) => {
        var n = i(74318);
        e.exports = function (e, t) {
          var i = t ? n(e.buffer) : e.buffer;
          return new e.constructor(i, e.byteOffset, e.length);
        };
      },
      26393: (e, t, i) => {
        var n = i(33448);
        e.exports = function (e, t) {
          if (e !== t) {
            var i = void 0 !== e,
              r = null === e,
              s = e == e,
              o = n(e),
              a = void 0 !== t,
              l = null === t,
              c = t == t,
              d = n(t);
            if (
              (!l && !d && !o && e > t) ||
              (o && a && c && !l && !d) ||
              (r && a && c) ||
              (!i && c) ||
              !s
            )
              return 1;
            if (
              (!r && !o && !d && e < t) ||
              (d && i && s && !r && !o) ||
              (l && i && s) ||
              (!a && s) ||
              !c
            )
              return -1;
          }
          return 0;
        };
      },
      85022: (e, t, i) => {
        var n = i(26393);
        e.exports = function (e, t, i) {
          for (
            var r = -1,
              s = e.criteria,
              o = t.criteria,
              a = s.length,
              l = i.length;
            ++r < a;

          ) {
            var c = n(s[r], o[r]);
            if (c) return r >= l ? c : c * ('desc' == i[r] ? -1 : 1);
          }
          return e.index - t.index;
        };
      },
      278: (e) => {
        e.exports = function (e, t) {
          var i = -1,
            n = e.length;
          for (t || (t = Array(n)); ++i < n; ) t[i] = e[i];
          return t;
        };
      },
      98363: (e, t, i) => {
        var n = i(34865),
          r = i(89465);
        e.exports = function (e, t, i, s) {
          var o = !i;
          i || (i = {});
          for (var a = -1, l = t.length; ++a < l; ) {
            var c = t[a],
              d = s ? s(i[c], e[c], c, i, e) : void 0;
            void 0 === d && (d = e[c]), o ? r(i, c, d) : n(i, c, d);
          }
          return i;
        };
      },
      18805: (e, t, i) => {
        var n = i(98363),
          r = i(99551);
        e.exports = function (e, t) {
          return n(e, r(e), t);
        };
      },
      1911: (e, t, i) => {
        var n = i(98363),
          r = i(51442);
        e.exports = function (e, t) {
          return n(e, r(e), t);
        };
      },
      14429: (e, t, i) => {
        var n = i(55639)['__core-js_shared__'];
        e.exports = n;
      },
      21463: (e, t, i) => {
        var n = i(18460),
          r = i(16612);
        e.exports = function (e) {
          return n(function (t, i) {
            var n = -1,
              s = i.length,
              o = s > 1 ? i[s - 1] : void 0,
              a = s > 2 ? i[2] : void 0;
            for (
              o = e.length > 3 && 'function' == typeof o ? (s--, o) : void 0,
                a && r(i[0], i[1], a) && ((o = s < 3 ? void 0 : o), (s = 1)),
                t = Object(t);
              ++n < s;

            ) {
              var l = i[n];
              l && e(t, l, n, o);
            }
            return t;
          });
        };
      },
      99291: (e, t, i) => {
        var n = i(98612);
        e.exports = function (e, t) {
          return function (i, r) {
            if (null == i) return i;
            if (!n(i)) return e(i, r);
            for (
              var s = i.length, o = t ? s : -1, a = Object(i);
              (t ? o-- : ++o < s) && !1 !== r(a[o], o, a);

            );
            return i;
          };
        };
      },
      25063: (e) => {
        e.exports = function (e) {
          return function (t, i, n) {
            for (var r = -1, s = Object(t), o = n(t), a = o.length; a--; ) {
              var l = o[e ? a : ++r];
              if (!1 === i(s[l], l, s)) break;
            }
            return t;
          };
        };
      },
      67740: (e, t, i) => {
        var n = i(67206),
          r = i(98612),
          s = i(3674);
        e.exports = function (e) {
          return function (t, i, o) {
            var a = Object(t);
            if (!r(t)) {
              var l = n(i, 3);
              (t = s(t)),
                (i = function (e) {
                  return l(a[e], e, a);
                });
            }
            var c = e(t, i, o);
            return c > -1 ? a[l ? t[c] : c] : void 0;
          };
        };
      },
      47445: (e, t, i) => {
        var n = i(40098),
          r = i(16612),
          s = i(18601);
        e.exports = function (e) {
          return function (t, i, o) {
            return (
              o && 'number' != typeof o && r(t, i, o) && (i = o = void 0),
              (t = s(t)),
              void 0 === i ? ((i = t), (t = 0)) : (i = s(i)),
              (o = void 0 === o ? (t < i ? 1 : -1) : s(o)),
              n(t, i, o, e)
            );
          };
        };
      },
      23593: (e, t, i) => {
        var n = i(58525),
          r = i(50308),
          s = i(21814),
          o =
            n && 1 / s(new n([, -0]))[1] == 1 / 0
              ? function (e) {
                  return new n(e);
                }
              : r;
        e.exports = o;
      },
      38777: (e, t, i) => {
        var n = i(10852),
          r = (function () {
            try {
              var e = n(Object, 'defineProperty');
              return e({}, '', {}), e;
            } catch (e) {}
          })();
        e.exports = r;
      },
      67114: (e, t, i) => {
        var n = i(88668),
          r = i(82908),
          s = i(74757);
        e.exports = function (e, t, i, o, a, l) {
          var c = 1 & i,
            d = e.length,
            h = t.length;
          if (d != h && !(c && h > d)) return !1;
          var u = l.get(e);
          if (u && l.get(t)) return u == t;
          var g = -1,
            f = !0,
            p = 2 & i ? new n() : void 0;
          for (l.set(e, t), l.set(t, e); ++g < d; ) {
            var m = e[g],
              _ = t[g];
            if (o) var b = c ? o(_, m, g, t, e, l) : o(m, _, g, e, t, l);
            if (void 0 !== b) {
              if (b) continue;
              f = !1;
              break;
            }
            if (p) {
              if (
                !r(t, function (e, t) {
                  if (!s(p, t) && (m === e || a(m, e, i, o, l)))
                    return p.push(t);
                })
              ) {
                f = !1;
                break;
              }
            } else if (m !== _ && !a(m, _, i, o, l)) {
              f = !1;
              break;
            }
          }
          return l.delete(e), l.delete(t), f;
        };
      },
      18351: (e, t, i) => {
        var n = i(62705),
          r = i(11149),
          s = i(77813),
          o = i(67114),
          a = i(68776),
          l = i(21814),
          c = n ? n.prototype : void 0,
          d = c ? c.valueOf : void 0;
        e.exports = function (e, t, i, n, c, h, u) {
          switch (i) {
            case '[object DataView]':
              if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset)
                return !1;
              (e = e.buffer), (t = t.buffer);
            case '[object ArrayBuffer]':
              return !(e.byteLength != t.byteLength || !h(new r(e), new r(t)));
            case '[object Boolean]':
            case '[object Date]':
            case '[object Number]':
              return s(+e, +t);
            case '[object Error]':
              return e.name == t.name && e.message == t.message;
            case '[object RegExp]':
            case '[object String]':
              return e == t + '';
            case '[object Map]':
              var g = a;
            case '[object Set]':
              var f = 1 & n;
              if ((g || (g = l), e.size != t.size && !f)) return !1;
              var p = u.get(e);
              if (p) return p == t;
              (n |= 2), u.set(e, t);
              var m = o(g(e), g(t), n, c, h, u);
              return u.delete(e), m;
            case '[object Symbol]':
              if (d) return d.call(e) == d.call(t);
          }
          return !1;
        };
      },
      16096: (e, t, i) => {
        var n = i(58234),
          r = Object.prototype.hasOwnProperty;
        e.exports = function (e, t, i, s, o, a) {
          var l = 1 & i,
            c = n(e),
            d = c.length;
          if (d != n(t).length && !l) return !1;
          for (var h = d; h--; ) {
            var u = c[h];
            if (!(l ? u in t : r.call(t, u))) return !1;
          }
          var g = a.get(e);
          if (g && a.get(t)) return g == t;
          var f = !0;
          a.set(e, t), a.set(t, e);
          for (var p = l; ++h < d; ) {
            var m = e[(u = c[h])],
              _ = t[u];
            if (s) var b = l ? s(_, m, u, t, e, a) : s(m, _, u, e, t, a);
            if (!(void 0 === b ? m === _ || o(m, _, i, s, a) : b)) {
              f = !1;
              break;
            }
            p || (p = 'constructor' == u);
          }
          if (f && !p) {
            var v = e.constructor,
              y = t.constructor;
            v == y ||
              !('constructor' in e) ||
              !('constructor' in t) ||
              ('function' == typeof v &&
                v instanceof v &&
                'function' == typeof y &&
                y instanceof y) ||
              (f = !1);
          }
          return a.delete(e), a.delete(t), f;
        };
      },
      99021: (e, t, i) => {
        var n = i(85564),
          r = i(45357),
          s = i(30061);
        e.exports = function (e) {
          return s(r(e, void 0, n), e + '');
        };
      },
      31957: (e, t, i) => {
        var n = 'object' == typeof i.g && i.g && i.g.Object === Object && i.g;
        e.exports = n;
      },
      58234: (e, t, i) => {
        var n = i(68866),
          r = i(99551),
          s = i(3674);
        e.exports = function (e) {
          return n(e, s, r);
        };
      },
      46904: (e, t, i) => {
        var n = i(68866),
          r = i(51442),
          s = i(81704);
        e.exports = function (e) {
          return n(e, s, r);
        };
      },
      45050: (e, t, i) => {
        var n = i(37019);
        e.exports = function (e, t) {
          var i = e.__data__;
          return n(t) ? i['string' == typeof t ? 'string' : 'hash'] : i.map;
        };
      },
      1499: (e, t, i) => {
        var n = i(89162),
          r = i(3674);
        e.exports = function (e) {
          for (var t = r(e), i = t.length; i--; ) {
            var s = t[i],
              o = e[s];
            t[i] = [s, o, n(o)];
          }
          return t;
        };
      },
      10852: (e, t, i) => {
        var n = i(28458),
          r = i(47801);
        e.exports = function (e, t) {
          var i = r(e, t);
          return n(i) ? i : void 0;
        };
      },
      85924: (e, t, i) => {
        var n = i(5569)(Object.getPrototypeOf, Object);
        e.exports = n;
      },
      89607: (e, t, i) => {
        var n = i(62705),
          r = Object.prototype,
          s = r.hasOwnProperty,
          o = r.toString,
          a = n ? n.toStringTag : void 0;
        e.exports = function (e) {
          var t = s.call(e, a),
            i = e[a];
          try {
            e[a] = void 0;
            var n = !0;
          } catch (e) {}
          var r = o.call(e);
          return n && (t ? (e[a] = i) : delete e[a]), r;
        };
      },
      99551: (e, t, i) => {
        var n = i(34963),
          r = i(70479),
          s = Object.prototype.propertyIsEnumerable,
          o = Object.getOwnPropertySymbols,
          a = o
            ? function (e) {
                return null == e
                  ? []
                  : ((e = Object(e)),
                    n(o(e), function (t) {
                      return s.call(e, t);
                    }));
              }
            : r;
        e.exports = a;
      },
      51442: (e, t, i) => {
        var n = i(62488),
          r = i(85924),
          s = i(99551),
          o = i(70479),
          a = Object.getOwnPropertySymbols
            ? function (e) {
                for (var t = []; e; ) n(t, s(e)), (e = r(e));
                return t;
              }
            : o;
        e.exports = a;
      },
      64160: (e, t, i) => {
        var n = i(18552),
          r = i(57071),
          s = i(53818),
          o = i(58525),
          a = i(70577),
          l = i(44239),
          c = i(80346),
          d = '[object Map]',
          h = '[object Promise]',
          u = '[object Set]',
          g = '[object WeakMap]',
          f = '[object DataView]',
          p = c(n),
          m = c(r),
          _ = c(s),
          b = c(o),
          v = c(a),
          y = l;
        ((n && y(new n(new ArrayBuffer(1))) != f) ||
          (r && y(new r()) != d) ||
          (s && y(s.resolve()) != h) ||
          (o && y(new o()) != u) ||
          (a && y(new a()) != g)) &&
          (y = function (e) {
            var t = l(e),
              i = '[object Object]' == t ? e.constructor : void 0,
              n = i ? c(i) : '';
            if (n)
              switch (n) {
                case p:
                  return f;
                case m:
                  return d;
                case _:
                  return h;
                case b:
                  return u;
                case v:
                  return g;
              }
            return t;
          }),
          (e.exports = y);
      },
      47801: (e) => {
        e.exports = function (e, t) {
          return null == e ? void 0 : e[t];
        };
      },
      222: (e, t, i) => {
        var n = i(71811),
          r = i(35694),
          s = i(1469),
          o = i(65776),
          a = i(41780),
          l = i(40327);
        e.exports = function (e, t, i) {
          for (var c = -1, d = (t = n(t, e)).length, h = !1; ++c < d; ) {
            var u = l(t[c]);
            if (!(h = null != e && i(e, u))) break;
            e = e[u];
          }
          return h || ++c != d
            ? h
            : !!(d = null == e ? 0 : e.length) &&
                a(d) &&
                o(u, d) &&
                (s(e) || r(e));
        };
      },
      62689: (e) => {
        var t = RegExp(
          '[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]'
        );
        e.exports = function (e) {
          return t.test(e);
        };
      },
      51789: (e, t, i) => {
        var n = i(94536);
        e.exports = function () {
          (this.__data__ = n ? n(null) : {}), (this.size = 0);
        };
      },
      80401: (e) => {
        e.exports = function (e) {
          var t = this.has(e) && delete this.__data__[e];
          return (this.size -= t ? 1 : 0), t;
        };
      },
      57667: (e, t, i) => {
        var n = i(94536),
          r = Object.prototype.hasOwnProperty;
        e.exports = function (e) {
          var t = this.__data__;
          if (n) {
            var i = t[e];
            return '__lodash_hash_undefined__' === i ? void 0 : i;
          }
          return r.call(t, e) ? t[e] : void 0;
        };
      },
      21327: (e, t, i) => {
        var n = i(94536),
          r = Object.prototype.hasOwnProperty;
        e.exports = function (e) {
          var t = this.__data__;
          return n ? void 0 !== t[e] : r.call(t, e);
        };
      },
      81866: (e, t, i) => {
        var n = i(94536);
        e.exports = function (e, t) {
          var i = this.__data__;
          return (
            (this.size += this.has(e) ? 0 : 1),
            (i[e] = n && void 0 === t ? '__lodash_hash_undefined__' : t),
            this
          );
        };
      },
      43824: (e) => {
        var t = Object.prototype.hasOwnProperty;
        e.exports = function (e) {
          var i = e.length,
            n = new e.constructor(i);
          return (
            i &&
              'string' == typeof e[0] &&
              t.call(e, 'index') &&
              ((n.index = e.index), (n.input = e.input)),
            n
          );
        };
      },
      29148: (e, t, i) => {
        var n = i(74318),
          r = i(57157),
          s = i(93147),
          o = i(40419),
          a = i(77133);
        e.exports = function (e, t, i) {
          var l = e.constructor;
          switch (t) {
            case '[object ArrayBuffer]':
              return n(e);
            case '[object Boolean]':
            case '[object Date]':
              return new l(+e);
            case '[object DataView]':
              return r(e, i);
            case '[object Float32Array]':
            case '[object Float64Array]':
            case '[object Int8Array]':
            case '[object Int16Array]':
            case '[object Int32Array]':
            case '[object Uint8Array]':
            case '[object Uint8ClampedArray]':
            case '[object Uint16Array]':
            case '[object Uint32Array]':
              return a(e, i);
            case '[object Map]':
              return new l();
            case '[object Number]':
            case '[object String]':
              return new l(e);
            case '[object RegExp]':
              return s(e);
            case '[object Set]':
              return new l();
            case '[object Symbol]':
              return o(e);
          }
        };
      },
      38517: (e, t, i) => {
        var n = i(3118),
          r = i(85924),
          s = i(25726);
        e.exports = function (e) {
          return 'function' != typeof e.constructor || s(e) ? {} : n(r(e));
        };
      },
      37285: (e, t, i) => {
        var n = i(62705),
          r = i(35694),
          s = i(1469),
          o = n ? n.isConcatSpreadable : void 0;
        e.exports = function (e) {
          return s(e) || r(e) || !!(o && e && e[o]);
        };
      },
      65776: (e) => {
        var t = /^(?:0|[1-9]\d*)$/;
        e.exports = function (e, i) {
          var n = typeof e;
          return (
            !!(i = null == i ? 9007199254740991 : i) &&
            ('number' == n || ('symbol' != n && t.test(e))) &&
            e > -1 &&
            e % 1 == 0 &&
            e < i
          );
        };
      },
      16612: (e, t, i) => {
        var n = i(77813),
          r = i(98612),
          s = i(65776),
          o = i(13218);
        e.exports = function (e, t, i) {
          if (!o(i)) return !1;
          var a = typeof t;
          return (
            !!('number' == a
              ? r(i) && s(t, i.length)
              : 'string' == a && t in i) && n(i[t], e)
          );
        };
      },
      15403: (e, t, i) => {
        var n = i(1469),
          r = i(33448),
          s = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
          o = /^\w*$/;
        e.exports = function (e, t) {
          if (n(e)) return !1;
          var i = typeof e;
          return (
            !(
              'number' != i &&
              'symbol' != i &&
              'boolean' != i &&
              null != e &&
              !r(e)
            ) ||
            o.test(e) ||
            !s.test(e) ||
            (null != t && e in Object(t))
          );
        };
      },
      37019: (e) => {
        e.exports = function (e) {
          var t = typeof e;
          return 'string' == t ||
            'number' == t ||
            'symbol' == t ||
            'boolean' == t
            ? '__proto__' !== e
            : null === e;
        };
      },
      15346: (e, t, i) => {
        var n,
          r = i(14429),
          s = (n = /[^.]+$/.exec((r && r.keys && r.keys.IE_PROTO) || ''))
            ? 'Symbol(src)_1.' + n
            : '';
        e.exports = function (e) {
          return !!s && s in e;
        };
      },
      25726: (e) => {
        var t = Object.prototype;
        e.exports = function (e) {
          var i = e && e.constructor;
          return e === (('function' == typeof i && i.prototype) || t);
        };
      },
      89162: (e, t, i) => {
        var n = i(13218);
        e.exports = function (e) {
          return e == e && !n(e);
        };
      },
      27040: (e) => {
        e.exports = function () {
          (this.__data__ = []), (this.size = 0);
        };
      },
      14125: (e, t, i) => {
        var n = i(18470),
          r = Array.prototype.splice;
        e.exports = function (e) {
          var t = this.__data__,
            i = n(t, e);
          return !(
            i < 0 ||
            (i == t.length - 1 ? t.pop() : r.call(t, i, 1), --this.size, 0)
          );
        };
      },
      82117: (e, t, i) => {
        var n = i(18470);
        e.exports = function (e) {
          var t = this.__data__,
            i = n(t, e);
          return i < 0 ? void 0 : t[i][1];
        };
      },
      67518: (e, t, i) => {
        var n = i(18470);
        e.exports = function (e) {
          return n(this.__data__, e) > -1;
        };
      },
      54705: (e, t, i) => {
        var n = i(18470);
        e.exports = function (e, t) {
          var i = this.__data__,
            r = n(i, e);
          return r < 0 ? (++this.size, i.push([e, t])) : (i[r][1] = t), this;
        };
      },
      24785: (e, t, i) => {
        var n = i(1989),
          r = i(38407),
          s = i(57071);
        e.exports = function () {
          (this.size = 0),
            (this.__data__ = {
              hash: new n(),
              map: new (s || r)(),
              string: new n(),
            });
        };
      },
      11285: (e, t, i) => {
        var n = i(45050);
        e.exports = function (e) {
          var t = n(this, e).delete(e);
          return (this.size -= t ? 1 : 0), t;
        };
      },
      96e3: (e, t, i) => {
        var n = i(45050);
        e.exports = function (e) {
          return n(this, e).get(e);
        };
      },
      49916: (e, t, i) => {
        var n = i(45050);
        e.exports = function (e) {
          return n(this, e).has(e);
        };
      },
      95265: (e, t, i) => {
        var n = i(45050);
        e.exports = function (e, t) {
          var i = n(this, e),
            r = i.size;
          return i.set(e, t), (this.size += i.size == r ? 0 : 1), this;
        };
      },
      68776: (e) => {
        e.exports = function (e) {
          var t = -1,
            i = Array(e.size);
          return (
            e.forEach(function (e, n) {
              i[++t] = [n, e];
            }),
            i
          );
        };
      },
      42634: (e) => {
        e.exports = function (e, t) {
          return function (i) {
            return null != i && i[e] === t && (void 0 !== t || e in Object(i));
          };
        };
      },
      24523: (e, t, i) => {
        var n = i(88306);
        e.exports = function (e) {
          var t = n(e, function (e) {
              return 500 === i.size && i.clear(), e;
            }),
            i = t.cache;
          return t;
        };
      },
      94536: (e, t, i) => {
        var n = i(10852)(Object, 'create');
        e.exports = n;
      },
      86916: (e, t, i) => {
        var n = i(5569)(Object.keys, Object);
        e.exports = n;
      },
      33498: (e) => {
        e.exports = function (e) {
          var t = [];
          if (null != e) for (var i in Object(e)) t.push(i);
          return t;
        };
      },
      31167: (e, t, i) => {
        e = i.nmd(e);
        var n = i(31957),
          r = t && !t.nodeType && t,
          s = r && e && !e.nodeType && e,
          o = s && s.exports === r && n.process,
          a = (function () {
            try {
              return (
                (s && s.require && s.require('util').types) ||
                (o && o.binding && o.binding('util'))
              );
            } catch (e) {}
          })();
        e.exports = a;
      },
      2333: (e) => {
        var t = Object.prototype.toString;
        e.exports = function (e) {
          return t.call(e);
        };
      },
      5569: (e) => {
        e.exports = function (e, t) {
          return function (i) {
            return e(t(i));
          };
        };
      },
      45357: (e, t, i) => {
        var n = i(96874),
          r = Math.max;
        e.exports = function (e, t, i) {
          return (
            (t = r(void 0 === t ? e.length - 1 : t, 0)),
            function () {
              for (
                var s = arguments, o = -1, a = r(s.length - t, 0), l = Array(a);
                ++o < a;

              )
                l[o] = s[t + o];
              o = -1;
              for (var c = Array(t + 1); ++o < t; ) c[o] = s[o];
              return (c[t] = i(l)), n(e, this, c);
            }
          );
        };
      },
      55639: (e, t, i) => {
        var n = i(31957),
          r = 'object' == typeof self && self && self.Object === Object && self,
          s = n || r || Function('return this')();
        e.exports = s;
      },
      36390: (e) => {
        e.exports = function (e, t) {
          if (
            ('constructor' !== t || 'function' != typeof e[t]) &&
            '__proto__' != t
          )
            return e[t];
        };
      },
      90619: (e) => {
        e.exports = function (e) {
          return this.__data__.set(e, '__lodash_hash_undefined__'), this;
        };
      },
      72385: (e) => {
        e.exports = function (e) {
          return this.__data__.has(e);
        };
      },
      21814: (e) => {
        e.exports = function (e) {
          var t = -1,
            i = Array(e.size);
          return (
            e.forEach(function (e) {
              i[++t] = e;
            }),
            i
          );
        };
      },
      30061: (e, t, i) => {
        var n = i(56560),
          r = i(21275)(n);
        e.exports = r;
      },
      21275: (e) => {
        var t = Date.now;
        e.exports = function (e) {
          var i = 0,
            n = 0;
          return function () {
            var r = t(),
              s = 16 - (r - n);
            if (((n = r), s > 0)) {
              if (++i >= 800) return arguments[0];
            } else i = 0;
            return e.apply(void 0, arguments);
          };
        };
      },
      37465: (e, t, i) => {
        var n = i(38407);
        e.exports = function () {
          (this.__data__ = new n()), (this.size = 0);
        };
      },
      63779: (e) => {
        e.exports = function (e) {
          var t = this.__data__,
            i = t.delete(e);
          return (this.size = t.size), i;
        };
      },
      67599: (e) => {
        e.exports = function (e) {
          return this.__data__.get(e);
        };
      },
      44758: (e) => {
        e.exports = function (e) {
          return this.__data__.has(e);
        };
      },
      34309: (e, t, i) => {
        var n = i(38407),
          r = i(57071),
          s = i(83369);
        e.exports = function (e, t) {
          var i = this.__data__;
          if (i instanceof n) {
            var o = i.__data__;
            if (!r || o.length < 199)
              return o.push([e, t]), (this.size = ++i.size), this;
            i = this.__data__ = new s(o);
          }
          return i.set(e, t), (this.size = i.size), this;
        };
      },
      42351: (e) => {
        e.exports = function (e, t, i) {
          for (var n = i - 1, r = e.length; ++n < r; ) if (e[n] === t) return n;
          return -1;
        };
      },
      88016: (e, t, i) => {
        var n = i(48983),
          r = i(62689),
          s = i(21903);
        e.exports = function (e) {
          return r(e) ? s(e) : n(e);
        };
      },
      55514: (e, t, i) => {
        var n = i(24523),
          r = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
          s = /\\(\\)?/g,
          o = n(function (e) {
            var t = [];
            return (
              46 === e.charCodeAt(0) && t.push(''),
              e.replace(r, function (e, i, n, r) {
                t.push(n ? r.replace(s, '$1') : i || e);
              }),
              t
            );
          });
        e.exports = o;
      },
      40327: (e, t, i) => {
        var n = i(33448);
        e.exports = function (e) {
          if ('string' == typeof e || n(e)) return e;
          var t = e + '';
          return '0' == t && 1 / e == -1 / 0 ? '-0' : t;
        };
      },
      80346: (e) => {
        var t = Function.prototype.toString;
        e.exports = function (e) {
          if (null != e) {
            try {
              return t.call(e);
            } catch (e) {}
            try {
              return e + '';
            } catch (e) {}
          }
          return '';
        };
      },
      21903: (e) => {
        var t = '[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]',
          i = '\\ud83c[\\udffb-\\udfff]',
          n = '[^\\ud800-\\udfff]',
          r = '(?:\\ud83c[\\udde6-\\uddff]){2}',
          s = '[\\ud800-\\udbff][\\udc00-\\udfff]',
          o = '(?:' + t + '|' + i + ')?',
          a = '[\\ufe0e\\ufe0f]?',
          l =
            a + o + '(?:\\u200d(?:' + [n, r, s].join('|') + ')' + a + o + ')*',
          c =
            '(?:' + [n + t + '?', t, r, s, '[\\ud800-\\udfff]'].join('|') + ')',
          d = RegExp(i + '(?=' + i + ')|' + c + l, 'g');
        e.exports = function (e) {
          for (var t = (d.lastIndex = 0); d.test(e); ) ++t;
          return t;
        };
      },
      66678: (e, t, i) => {
        var n = i(85990);
        e.exports = function (e) {
          return n(e, 4);
        };
      },
      50361: (e, t, i) => {
        var n = i(85990);
        e.exports = function (e) {
          return n(e, 5);
        };
      },
      75703: (e) => {
        e.exports = function (e) {
          return function () {
            return e;
          };
        };
      },
      91747: (e, t, i) => {
        var n = i(18460),
          r = i(77813),
          s = i(16612),
          o = i(81704),
          a = Object.prototype,
          l = a.hasOwnProperty,
          c = n(function (e, t) {
            e = Object(e);
            var i = -1,
              n = t.length,
              c = n > 2 ? t[2] : void 0;
            for (c && s(t[0], t[1], c) && (n = 1); ++i < n; )
              for (var d = t[i], h = o(d), u = -1, g = h.length; ++u < g; ) {
                var f = h[u],
                  p = e[f];
                (void 0 === p || (r(p, a[f]) && !l.call(e, f))) &&
                  (e[f] = d[f]);
              }
            return e;
          });
        e.exports = c;
      },
      66073: (e, t, i) => {
        e.exports = i(84486);
      },
      77813: (e) => {
        e.exports = function (e, t) {
          return e === t || (e != e && t != t);
        };
      },
      63105: (e, t, i) => {
        var n = i(34963),
          r = i(80760),
          s = i(67206),
          o = i(1469);
        e.exports = function (e, t) {
          return (o(e) ? n : r)(e, s(t, 3));
        };
      },
      13311: (e, t, i) => {
        var n = i(67740)(i(30998));
        e.exports = n;
      },
      30998: (e, t, i) => {
        var n = i(41848),
          r = i(67206),
          s = i(40554),
          o = Math.max;
        e.exports = function (e, t, i) {
          var a = null == e ? 0 : e.length;
          if (!a) return -1;
          var l = null == i ? 0 : s(i);
          return l < 0 && (l = o(a + l, 0)), n(e, r(t, 3), l);
        };
      },
      85564: (e, t, i) => {
        var n = i(21078);
        e.exports = function (e) {
          return null != e && e.length ? n(e, 1) : [];
        };
      },
      84486: (e, t, i) => {
        var n = i(77412),
          r = i(89881),
          s = i(54290),
          o = i(1469);
        e.exports = function (e, t) {
          return (o(e) ? n : r)(e, s(t));
        };
      },
      62620: (e, t, i) => {
        var n = i(28483),
          r = i(54290),
          s = i(81704);
        e.exports = function (e, t) {
          return null == e ? e : n(e, r(t), s);
        };
      },
      27361: (e, t, i) => {
        var n = i(97786);
        e.exports = function (e, t, i) {
          var r = null == e ? void 0 : n(e, t);
          return void 0 === r ? i : r;
        };
      },
      18721: (e, t, i) => {
        var n = i(78565),
          r = i(222);
        e.exports = function (e, t) {
          return null != e && r(e, t, n);
        };
      },
      79095: (e, t, i) => {
        var n = i(13),
          r = i(222);
        e.exports = function (e, t) {
          return null != e && r(e, t, n);
        };
      },
      6557: (e) => {
        e.exports = function (e) {
          return e;
        };
      },
      35694: (e, t, i) => {
        var n = i(9454),
          r = i(37005),
          s = Object.prototype,
          o = s.hasOwnProperty,
          a = s.propertyIsEnumerable,
          l = n(
            (function () {
              return arguments;
            })()
          )
            ? n
            : function (e) {
                return r(e) && o.call(e, 'callee') && !a.call(e, 'callee');
              };
        e.exports = l;
      },
      1469: (e) => {
        var t = Array.isArray;
        e.exports = t;
      },
      98612: (e, t, i) => {
        var n = i(23560),
          r = i(41780);
        e.exports = function (e) {
          return null != e && r(e.length) && !n(e);
        };
      },
      29246: (e, t, i) => {
        var n = i(98612),
          r = i(37005);
        e.exports = function (e) {
          return r(e) && n(e);
        };
      },
      44144: (e, t, i) => {
        e = i.nmd(e);
        var n = i(55639),
          r = i(95062),
          s = t && !t.nodeType && t,
          o = s && e && !e.nodeType && e,
          a = o && o.exports === s ? n.Buffer : void 0,
          l = (a ? a.isBuffer : void 0) || r;
        e.exports = l;
      },
      41609: (e, t, i) => {
        var n = i(280),
          r = i(64160),
          s = i(35694),
          o = i(1469),
          a = i(98612),
          l = i(44144),
          c = i(25726),
          d = i(36719),
          h = Object.prototype.hasOwnProperty;
        e.exports = function (e) {
          if (null == e) return !0;
          if (
            a(e) &&
            (o(e) ||
              'string' == typeof e ||
              'function' == typeof e.splice ||
              l(e) ||
              d(e) ||
              s(e))
          )
            return !e.length;
          var t = r(e);
          if ('[object Map]' == t || '[object Set]' == t) return !e.size;
          if (c(e)) return !n(e).length;
          for (var i in e) if (h.call(e, i)) return !1;
          return !0;
        };
      },
      23560: (e, t, i) => {
        var n = i(44239),
          r = i(13218);
        e.exports = function (e) {
          if (!r(e)) return !1;
          var t = n(e);
          return (
            '[object Function]' == t ||
            '[object GeneratorFunction]' == t ||
            '[object AsyncFunction]' == t ||
            '[object Proxy]' == t
          );
        };
      },
      41780: (e) => {
        e.exports = function (e) {
          return (
            'number' == typeof e &&
            e > -1 &&
            e % 1 == 0 &&
            e <= 9007199254740991
          );
        };
      },
      56688: (e, t, i) => {
        var n = i(25588),
          r = i(7518),
          s = i(31167),
          o = s && s.isMap,
          a = o ? r(o) : n;
        e.exports = a;
      },
      13218: (e) => {
        e.exports = function (e) {
          var t = typeof e;
          return null != e && ('object' == t || 'function' == t);
        };
      },
      37005: (e) => {
        e.exports = function (e) {
          return null != e && 'object' == typeof e;
        };
      },
      68630: (e, t, i) => {
        var n = i(44239),
          r = i(85924),
          s = i(37005),
          o = Function.prototype,
          a = Object.prototype,
          l = o.toString,
          c = a.hasOwnProperty,
          d = l.call(Object);
        e.exports = function (e) {
          if (!s(e) || '[object Object]' != n(e)) return !1;
          var t = r(e);
          if (null === t) return !0;
          var i = c.call(t, 'constructor') && t.constructor;
          return 'function' == typeof i && i instanceof i && l.call(i) == d;
        };
      },
      72928: (e, t, i) => {
        var n = i(29221),
          r = i(7518),
          s = i(31167),
          o = s && s.isSet,
          a = o ? r(o) : n;
        e.exports = a;
      },
      47037: (e, t, i) => {
        var n = i(44239),
          r = i(1469),
          s = i(37005);
        e.exports = function (e) {
          return (
            'string' == typeof e || (!r(e) && s(e) && '[object String]' == n(e))
          );
        };
      },
      33448: (e, t, i) => {
        var n = i(44239),
          r = i(37005);
        e.exports = function (e) {
          return 'symbol' == typeof e || (r(e) && '[object Symbol]' == n(e));
        };
      },
      36719: (e, t, i) => {
        var n = i(38749),
          r = i(7518),
          s = i(31167),
          o = s && s.isTypedArray,
          a = o ? r(o) : n;
        e.exports = a;
      },
      52353: (e) => {
        e.exports = function (e) {
          return void 0 === e;
        };
      },
      3674: (e, t, i) => {
        var n = i(14636),
          r = i(280),
          s = i(98612);
        e.exports = function (e) {
          return s(e) ? n(e) : r(e);
        };
      },
      81704: (e, t, i) => {
        var n = i(14636),
          r = i(10313),
          s = i(98612);
        e.exports = function (e) {
          return s(e) ? n(e, !0) : r(e);
        };
      },
      10928: (e) => {
        e.exports = function (e) {
          var t = null == e ? 0 : e.length;
          return t ? e[t - 1] : void 0;
        };
      },
      35161: (e, t, i) => {
        var n = i(29932),
          r = i(67206),
          s = i(69199),
          o = i(1469);
        e.exports = function (e, t) {
          return (o(e) ? n : s)(e, r(t, 3));
        };
      },
      66604: (e, t, i) => {
        var n = i(89465),
          r = i(47816),
          s = i(67206);
        e.exports = function (e, t) {
          var i = {};
          return (
            (t = s(t, 3)),
            r(e, function (e, r, s) {
              n(i, r, t(e, r, s));
            }),
            i
          );
        };
      },
      6162: (e, t, i) => {
        var n = i(56029),
          r = i(53325),
          s = i(6557);
        e.exports = function (e) {
          return e && e.length ? n(e, s, r) : void 0;
        };
      },
      88306: (e, t, i) => {
        var n = i(83369);
        function r(e, t) {
          if ('function' != typeof e || (null != t && 'function' != typeof t))
            throw new TypeError('Expected a function');
          var i = function () {
            var n = arguments,
              r = t ? t.apply(this, n) : n[0],
              s = i.cache;
            if (s.has(r)) return s.get(r);
            var o = e.apply(this, n);
            return (i.cache = s.set(r, o) || s), o;
          };
          return (i.cache = new (r.Cache || n)()), i;
        }
        (r.Cache = n), (e.exports = r);
      },
      82492: (e, t, i) => {
        var n = i(42980),
          r = i(21463)(function (e, t, i) {
            n(e, t, i);
          });
        e.exports = r;
      },
      53632: (e, t, i) => {
        var n = i(56029),
          r = i(70433),
          s = i(6557);
        e.exports = function (e) {
          return e && e.length ? n(e, s, r) : void 0;
        };
      },
      22762: (e, t, i) => {
        var n = i(56029),
          r = i(67206),
          s = i(70433);
        e.exports = function (e, t) {
          return e && e.length ? n(e, r(t, 2), s) : void 0;
        };
      },
      50308: (e) => {
        e.exports = function () {};
      },
      7771: (e, t, i) => {
        var n = i(55639);
        e.exports = function () {
          return n.Date.now();
        };
      },
      78718: (e, t, i) => {
        var n = i(25970),
          r = i(99021)(function (e, t) {
            return null == e ? {} : n(e, t);
          });
        e.exports = r;
      },
      39601: (e, t, i) => {
        var n = i(40371),
          r = i(79152),
          s = i(15403),
          o = i(40327);
        e.exports = function (e) {
          return s(e) ? n(o(e)) : r(e);
        };
      },
      96026: (e, t, i) => {
        var n = i(47445)();
        e.exports = n;
      },
      54061: (e, t, i) => {
        var n = i(62663),
          r = i(89881),
          s = i(67206),
          o = i(10107),
          a = i(1469);
        e.exports = function (e, t, i) {
          var l = a(e) ? n : o,
            c = arguments.length < 3;
          return l(e, s(t, 4), i, c, r);
        };
      },
      84238: (e, t, i) => {
        var n = i(280),
          r = i(64160),
          s = i(98612),
          o = i(47037),
          a = i(88016);
        e.exports = function (e) {
          if (null == e) return 0;
          if (s(e)) return o(e) ? a(e) : e.length;
          var t = r(e);
          return '[object Map]' == t || '[object Set]' == t
            ? e.size
            : n(e).length;
        };
      },
      89734: (e, t, i) => {
        var n = i(21078),
          r = i(82689),
          s = i(18460),
          o = i(16612),
          a = s(function (e, t) {
            if (null == e) return [];
            var i = t.length;
            return (
              i > 1 && o(e, t[0], t[1])
                ? (t = [])
                : i > 2 && o(t[0], t[1], t[2]) && (t = [t[0]]),
              r(e, n(t, 1), [])
            );
          });
        e.exports = a;
      },
      70479: (e) => {
        e.exports = function () {
          return [];
        };
      },
      95062: (e) => {
        e.exports = function () {
          return !1;
        };
      },
      18601: (e, t, i) => {
        var n = i(14841);
        e.exports = function (e) {
          return e
            ? Infinity === (e = n(e)) || e === -1 / 0
              ? 17976931348623157e292 * (e < 0 ? -1 : 1)
              : e == e
              ? e
              : 0
            : 0 === e
            ? e
            : 0;
        };
      },
      40554: (e, t, i) => {
        var n = i(18601);
        e.exports = function (e) {
          var t = n(e),
            i = t % 1;
          return t == t ? (i ? t - i : t) : 0;
        };
      },
      14841: (e, t, i) => {
        var n = i(13218),
          r = i(33448),
          s = /^\s+|\s+$/g,
          o = /^[-+]0x[0-9a-f]+$/i,
          a = /^0b[01]+$/i,
          l = /^0o[0-7]+$/i,
          c = parseInt;
        e.exports = function (e) {
          if ('number' == typeof e) return e;
          if (r(e)) return NaN;
          if (n(e)) {
            var t = 'function' == typeof e.valueOf ? e.valueOf() : e;
            e = n(t) ? t + '' : t;
          }
          if ('string' != typeof e) return 0 === e ? e : +e;
          e = e.replace(s, '');
          var i = a.test(e);
          return i || l.test(e)
            ? c(e.slice(2), i ? 2 : 8)
            : o.test(e)
            ? NaN
            : +e;
        };
      },
      59881: (e, t, i) => {
        var n = i(98363),
          r = i(81704);
        e.exports = function (e) {
          return n(e, r(e));
        };
      },
      79833: (e, t, i) => {
        var n = i(80531);
        e.exports = function (e) {
          return null == e ? '' : n(e);
        };
      },
      68718: (e, t, i) => {
        var n = i(77412),
          r = i(3118),
          s = i(47816),
          o = i(67206),
          a = i(85924),
          l = i(1469),
          c = i(44144),
          d = i(23560),
          h = i(13218),
          u = i(36719);
        e.exports = function (e, t, i) {
          var g = l(e),
            f = g || c(e) || u(e);
          if (((t = o(t, 4)), null == i)) {
            var p = e && e.constructor;
            i = f ? (g ? new p() : []) : h(e) && d(p) ? r(a(e)) : {};
          }
          return (
            (f ? n : s)(e, function (e, n, r) {
              return t(i, e, n, r);
            }),
            i
          );
        };
      },
      93386: (e, t, i) => {
        var n = i(21078),
          r = i(18460),
          s = i(45652),
          o = i(29246),
          a = r(function (e) {
            return s(n(e, 1, o, !0));
          });
        e.exports = a;
      },
      73955: (e, t, i) => {
        var n = i(79833),
          r = 0;
        e.exports = function (e) {
          var t = ++r;
          return n(e) + t;
        };
      },
      52628: (e, t, i) => {
        var n = i(47415),
          r = i(3674);
        e.exports = function (e) {
          return null == e ? [] : n(e, r(e));
        };
      },
      7287: (e, t, i) => {
        var n = i(34865),
          r = i(1757);
        e.exports = function (e, t) {
          return r(e || [], t || [], n);
        };
      },
      21140: function (e, t, i) {
        var n;
        'undefined' != typeof self && self,
          (n = function () {
            return (function (e) {
              var t = {};
              function i(n) {
                if (t[n]) return t[n].exports;
                var r = (t[n] = { i: n, l: !1, exports: {} });
                return (
                  e[n].call(r.exports, r, r.exports, i), (r.l = !0), r.exports
                );
              }
              return (
                (i.m = e),
                (i.c = t),
                (i.d = function (e, t, n) {
                  i.o(e, t) ||
                    Object.defineProperty(e, t, { enumerable: !0, get: n });
                }),
                (i.r = function (e) {
                  'undefined' != typeof Symbol &&
                    Symbol.toStringTag &&
                    Object.defineProperty(e, Symbol.toStringTag, {
                      value: 'Module',
                    }),
                    Object.defineProperty(e, '__esModule', { value: !0 });
                }),
                (i.t = function (e, t) {
                  if ((1 & t && (e = i(e)), 8 & t)) return e;
                  if (4 & t && 'object' == typeof e && e && e.__esModule)
                    return e;
                  var n = Object.create(null);
                  if (
                    (i.r(n),
                    Object.defineProperty(n, 'default', {
                      enumerable: !0,
                      value: e,
                    }),
                    2 & t && 'string' != typeof e)
                  )
                    for (var r in e)
                      i.d(
                        n,
                        r,
                        function (t) {
                          return e[t];
                        }.bind(null, r)
                      );
                  return n;
                }),
                (i.n = function (e) {
                  var t =
                    e && e.__esModule
                      ? function () {
                          return e.default;
                        }
                      : function () {
                          return e;
                        };
                  return i.d(t, 'a', t), t;
                }),
                (i.o = function (e, t) {
                  return Object.prototype.hasOwnProperty.call(e, t);
                }),
                (i.p = ''),
                i((i.s = './src/mermaid.js'))
              );
            })({
              './node_modules/node-libs-browser/mock/empty.js': function (
                e,
                t
              ) {},
              './node_modules/path-browserify/index.js': function (e, t, i) {
                (function (e) {
                  function i(e, t) {
                    for (var i = 0, n = e.length - 1; n >= 0; n--) {
                      var r = e[n];
                      '.' === r
                        ? e.splice(n, 1)
                        : '..' === r
                        ? (e.splice(n, 1), i++)
                        : i && (e.splice(n, 1), i--);
                    }
                    if (t) for (; i--; i) e.unshift('..');
                    return e;
                  }
                  function n(e, t) {
                    if (e.filter) return e.filter(t);
                    for (var i = [], n = 0; n < e.length; n++)
                      t(e[n], n, e) && i.push(e[n]);
                    return i;
                  }
                  (t.resolve = function () {
                    for (
                      var t = '', r = !1, s = arguments.length - 1;
                      s >= -1 && !r;
                      s--
                    ) {
                      var o = s >= 0 ? arguments[s] : e.cwd();
                      if ('string' != typeof o)
                        throw new TypeError(
                          'Arguments to path.resolve must be strings'
                        );
                      o && ((t = o + '/' + t), (r = '/' === o.charAt(0)));
                    }
                    return (
                      (r ? '/' : '') +
                        (t = i(
                          n(t.split('/'), function (e) {
                            return !!e;
                          }),
                          !r
                        ).join('/')) || '.'
                    );
                  }),
                    (t.normalize = function (e) {
                      var s = t.isAbsolute(e),
                        o = '/' === r(e, -1);
                      return (
                        (e = i(
                          n(e.split('/'), function (e) {
                            return !!e;
                          }),
                          !s
                        ).join('/')) ||
                          s ||
                          (e = '.'),
                        e && o && (e += '/'),
                        (s ? '/' : '') + e
                      );
                    }),
                    (t.isAbsolute = function (e) {
                      return '/' === e.charAt(0);
                    }),
                    (t.join = function () {
                      var e = Array.prototype.slice.call(arguments, 0);
                      return t.normalize(
                        n(e, function (e, t) {
                          if ('string' != typeof e)
                            throw new TypeError(
                              'Arguments to path.join must be strings'
                            );
                          return e;
                        }).join('/')
                      );
                    }),
                    (t.relative = function (e, i) {
                      function n(e) {
                        for (var t = 0; t < e.length && '' === e[t]; t++);
                        for (var i = e.length - 1; i >= 0 && '' === e[i]; i--);
                        return t > i ? [] : e.slice(t, i - t + 1);
                      }
                      (e = t.resolve(e).substr(1)),
                        (i = t.resolve(i).substr(1));
                      for (
                        var r = n(e.split('/')),
                          s = n(i.split('/')),
                          o = Math.min(r.length, s.length),
                          a = o,
                          l = 0;
                        l < o;
                        l++
                      )
                        if (r[l] !== s[l]) {
                          a = l;
                          break;
                        }
                      var c = [];
                      for (l = a; l < r.length; l++) c.push('..');
                      return (c = c.concat(s.slice(a))).join('/');
                    }),
                    (t.sep = '/'),
                    (t.delimiter = ':'),
                    (t.dirname = function (e) {
                      if (('string' != typeof e && (e += ''), 0 === e.length))
                        return '.';
                      for (
                        var t = e.charCodeAt(0),
                          i = 47 === t,
                          n = -1,
                          r = !0,
                          s = e.length - 1;
                        s >= 1;
                        --s
                      )
                        if (47 === (t = e.charCodeAt(s))) {
                          if (!r) {
                            n = s;
                            break;
                          }
                        } else r = !1;
                      return -1 === n
                        ? i
                          ? '/'
                          : '.'
                        : i && 1 === n
                        ? '/'
                        : e.slice(0, n);
                    }),
                    (t.basename = function (e, t) {
                      var i = (function (e) {
                        'string' != typeof e && (e += '');
                        var t,
                          i = 0,
                          n = -1,
                          r = !0;
                        for (t = e.length - 1; t >= 0; --t)
                          if (47 === e.charCodeAt(t)) {
                            if (!r) {
                              i = t + 1;
                              break;
                            }
                          } else -1 === n && ((r = !1), (n = t + 1));
                        return -1 === n ? '' : e.slice(i, n);
                      })(e);
                      return (
                        t &&
                          i.substr(-1 * t.length) === t &&
                          (i = i.substr(0, i.length - t.length)),
                        i
                      );
                    }),
                    (t.extname = function (e) {
                      'string' != typeof e && (e += '');
                      for (
                        var t = -1,
                          i = 0,
                          n = -1,
                          r = !0,
                          s = 0,
                          o = e.length - 1;
                        o >= 0;
                        --o
                      ) {
                        var a = e.charCodeAt(o);
                        if (47 !== a)
                          -1 === n && ((r = !1), (n = o + 1)),
                            46 === a
                              ? -1 === t
                                ? (t = o)
                                : 1 !== s && (s = 1)
                              : -1 !== t && (s = -1);
                        else if (!r) {
                          i = o + 1;
                          break;
                        }
                      }
                      return -1 === t ||
                        -1 === n ||
                        0 === s ||
                        (1 === s && t === n - 1 && t === i + 1)
                        ? ''
                        : e.slice(t, n);
                    });
                  var r = function (e, t, i) {
                    return e.substr(t, i);
                  };
                }.call(this, i('./node_modules/process/browser.js')));
              },
              './node_modules/process/browser.js': function (e, t) {
                var i,
                  n,
                  r = (e.exports = {});
                function s() {
                  throw new Error('setTimeout has not been defined');
                }
                function o() {
                  throw new Error('clearTimeout has not been defined');
                }
                function a(e) {
                  if (i === setTimeout) return setTimeout(e, 0);
                  if ((i === s || !i) && setTimeout)
                    return (i = setTimeout), setTimeout(e, 0);
                  try {
                    return i(e, 0);
                  } catch (t) {
                    try {
                      return i.call(null, e, 0);
                    } catch (t) {
                      return i.call(this, e, 0);
                    }
                  }
                }
                !(function () {
                  try {
                    i = 'function' == typeof setTimeout ? setTimeout : s;
                  } catch (e) {
                    i = s;
                  }
                  try {
                    n = 'function' == typeof clearTimeout ? clearTimeout : o;
                  } catch (e) {
                    n = o;
                  }
                })();
                var l,
                  c = [],
                  d = !1,
                  h = -1;
                function u() {
                  d &&
                    l &&
                    ((d = !1),
                    l.length ? (c = l.concat(c)) : (h = -1),
                    c.length && g());
                }
                function g() {
                  if (!d) {
                    var e = a(u);
                    d = !0;
                    for (var t = c.length; t; ) {
                      for (l = c, c = []; ++h < t; ) l && l[h].run();
                      (h = -1), (t = c.length);
                    }
                    (l = null),
                      (d = !1),
                      (function (e) {
                        if (n === clearTimeout) return clearTimeout(e);
                        if ((n === o || !n) && clearTimeout)
                          return (n = clearTimeout), clearTimeout(e);
                        try {
                          n(e);
                        } catch (t) {
                          try {
                            return n.call(null, e);
                          } catch (t) {
                            return n.call(this, e);
                          }
                        }
                      })(e);
                  }
                }
                function f(e, t) {
                  (this.fun = e), (this.array = t);
                }
                function p() {}
                (r.nextTick = function (e) {
                  var t = new Array(arguments.length - 1);
                  if (arguments.length > 1)
                    for (var i = 1; i < arguments.length; i++)
                      t[i - 1] = arguments[i];
                  c.push(new f(e, t)), 1 !== c.length || d || a(g);
                }),
                  (f.prototype.run = function () {
                    this.fun.apply(null, this.array);
                  }),
                  (r.title = 'browser'),
                  (r.browser = !0),
                  (r.env = {}),
                  (r.argv = []),
                  (r.version = ''),
                  (r.versions = {}),
                  (r.on = p),
                  (r.addListener = p),
                  (r.once = p),
                  (r.off = p),
                  (r.removeListener = p),
                  (r.removeAllListeners = p),
                  (r.emit = p),
                  (r.prependListener = p),
                  (r.prependOnceListener = p),
                  (r.listeners = function (e) {
                    return [];
                  }),
                  (r.binding = function (e) {
                    throw new Error('process.binding is not supported');
                  }),
                  (r.cwd = function () {
                    return '/';
                  }),
                  (r.chdir = function (e) {
                    throw new Error('process.chdir is not supported');
                  }),
                  (r.umask = function () {
                    return 0;
                  });
              },
              './node_modules/webpack/buildin/module.js': function (e, t) {
                e.exports = function (e) {
                  return (
                    e.webpackPolyfill ||
                      ((e.deprecate = function () {}),
                      (e.paths = []),
                      e.children || (e.children = []),
                      Object.defineProperty(e, 'loaded', {
                        enumerable: !0,
                        get: function () {
                          return e.l;
                        },
                      }),
                      Object.defineProperty(e, 'id', {
                        enumerable: !0,
                        get: function () {
                          return e.i;
                        },
                      }),
                      (e.webpackPolyfill = 1)),
                    e
                  );
                };
              },
              './package.json': function (e) {
                e.exports = JSON.parse(
                  '{"name":"mermaid","version":"8.9.3","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --progress --colors","build:production":"yarn build:development -p --config webpack.config.prod.babel.js","build":"yarn build:development && yarn build:production","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build --watch","minify":"minify ./dist/mermaid.js > ./dist/mermaid.min.js","release":"yarn build","lint":"eslint src","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"percy exec -- cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack-dev-server --config webpack.config.e2e.js","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"yarn build"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","d3":"^5.7.0","dagre":"^0.8.4","dagre-d3":"^0.6.4","entity-decode":"^2.0.2","graphlib":"^2.1.7","he":"^1.2.0","khroma":"^1.1.0","minify":"^4.1.1","moment-mini":"^2.22.1","stylis":"^3.5.2"},"devDependencies":{"@babel/core":"^7.2.2","@babel/preset-env":"^7.8.4","@babel/register":"^7.0.0","@percy/cypress":"*","babel-core":"7.0.0-bridge.0","babel-eslint":"^10.1.0","babel-jest":"^24.9.0","babel-loader":"^8.0.4","coveralls":"^3.0.2","css-loader":"^2.0.1","css-to-string-loader":"^0.1.3","cypress":"4.0.1","documentation":"^12.0.1","eslint":"^6.3.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.0","husky":"^1.2.1","identity-obj-proxy":"^3.0.0","jest":"^24.9.0","jison":"^0.4.18","moment":"^2.23.0","node-sass":"^5.0.0","prettier":"^1.18.2","puppeteer":"^1.17.0","sass-loader":"^7.1.0","start-server-and-test":"^1.10.6","terser-webpack-plugin":"^2.2.2","webpack":"^4.41.2","webpack-bundle-analyzer":"^3.7.0","webpack-cli":"^3.1.2","webpack-dev-server":"^3.4.1","webpack-node-externals":"^1.7.2","yarn-upgrade-all":"^0.5.0"},"files":["dist"],"yarn-upgrade-all":{"ignore":["babel-core"]},"sideEffects":["**/*.css","**/*.scss"],"husky":{"hooks":{"pre-push":"yarn test"}}}'
                );
              },
              './src/config.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'defaultConfig', function () {
                    return c;
                  }),
                  i.d(t, 'updateCurrentConfig', function () {
                    return g;
                  }),
                  i.d(t, 'setSiteConfig', function () {
                    return f;
                  }),
                  i.d(t, 'saveConfigFromInitilize', function () {
                    return p;
                  }),
                  i.d(t, 'updateSiteConfig', function () {
                    return m;
                  }),
                  i.d(t, 'getSiteConfig', function () {
                    return _;
                  }),
                  i.d(t, 'setConfig', function () {
                    return b;
                  }),
                  i.d(t, 'getConfig', function () {
                    return v;
                  }),
                  i.d(t, 'sanitize', function () {
                    return y;
                  }),
                  i.d(t, 'addDirective', function () {
                    return w;
                  }),
                  i.d(t, 'reset', function () {
                    return C;
                  });
                var n = i('./src/utils.js'),
                  r = i('./src/logger.js'),
                  s = i('./src/themes/index.js'),
                  o = i('./src/defaultConfig.js');
                function a(e) {
                  return (a =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                var l,
                  c = Object.freeze(o.default),
                  d = Object(n.assignWithDepth)({}, c),
                  h = [],
                  u = Object(n.assignWithDepth)({}, c),
                  g = function (e, t) {
                    for (
                      var i = Object(n.assignWithDepth)({}, e), r = {}, o = 0;
                      o < t.length;
                      o++
                    ) {
                      var a = t[o];
                      y(a), (r = Object(n.assignWithDepth)(r, a));
                    }
                    if (((i = Object(n.assignWithDepth)(i, r)), r.theme)) {
                      var c = Object(n.assignWithDepth)({}, l),
                        d = Object(n.assignWithDepth)(
                          c.themeVariables || {},
                          r.themeVariables
                        );
                      i.themeVariables = s.default[i.theme].getThemeVariables(
                        d
                      );
                    }
                    return (u = i), i;
                  },
                  f = function (e) {
                    return (
                      (d = Object(n.assignWithDepth)({}, c)),
                      (d = Object(n.assignWithDepth)(d, e)),
                      e.theme &&
                        (d.themeVariables = s.default[
                          e.theme
                        ].getThemeVariables(e.themeVariables)),
                      (u = g(d, h)),
                      d
                    );
                  },
                  p = function (e) {
                    l = Object(n.assignWithDepth)({}, e);
                  },
                  m = function (e) {
                    return (d = Object(n.assignWithDepth)(d, e)), g(d, h), d;
                  },
                  _ = function () {
                    return Object(n.assignWithDepth)({}, d);
                  },
                  b = function (e) {
                    return Object(n.assignWithDepth)(u, e), v();
                  },
                  v = function () {
                    return Object(n.assignWithDepth)({}, u);
                  },
                  y = function e(t) {
                    Object.keys(d.secure).forEach(function (e) {
                      void 0 !== t[d.secure[e]] &&
                        (r.log.debug(
                          'Denied attempt to modify a secure key '.concat(
                            d.secure[e]
                          ),
                          t[d.secure[e]]
                        ),
                        delete t[d.secure[e]]);
                    }),
                      Object.keys(t).forEach(function (e) {
                        0 === e.indexOf('__') && delete t[e];
                      }),
                      Object.keys(t).forEach(function (i) {
                        'string' == typeof t[i] &&
                          (t[i].indexOf('<') > -1 ||
                            t[i].indexOf('>') > -1 ||
                            t[i].indexOf('url(data:') > -1) &&
                          delete t[i],
                          'object' === a(t[i]) && e(t[i]);
                      });
                  },
                  w = function (e) {
                    e.fontFamily &&
                      ((e.themeVariables && e.themeVariables.fontFamily) ||
                        (e.themeVariables = { fontFamily: e.fontFamily })),
                      h.push(e),
                      g(d, h);
                  },
                  C = function () {
                    g(d, (h = []));
                  };
              },
              './src/dagre-wrapper/clusters.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'insertCluster', function () {
                    return d;
                  }),
                  i.d(t, 'getClusterTitleWidth', function () {
                    return h;
                  }),
                  i.d(t, 'clear', function () {
                    return u;
                  }),
                  i.d(t, 'positionCluster', function () {
                    return g;
                  });
                var n = i('./src/dagre-wrapper/intersect/intersect-rect.js'),
                  r = i('./src/logger.js'),
                  s = i('./src/dagre-wrapper/createLabel.js'),
                  o = i('d3'),
                  a = i('./src/config.js'),
                  l = {
                    rect: function (e, t) {
                      r.log.trace('Creating subgraph rect for ', t.id, t);
                      var i = e
                          .insert('g')
                          .attr(
                            'class',
                            'cluster' + (t.class ? ' ' + t.class : '')
                          )
                          .attr('id', t.id),
                        l = i.insert('rect', ':first-child'),
                        c = i.insert('g').attr('class', 'cluster-label'),
                        d = c
                          .node()
                          .appendChild(
                            Object(s.default)(
                              t.labelText,
                              t.labelStyle,
                              void 0,
                              !0
                            )
                          ),
                        h = d.getBBox();
                      if (Object(a.getConfig)().flowchart.htmlLabels) {
                        var u = d.children[0],
                          g = Object(o.select)(d);
                        (h = u.getBoundingClientRect()),
                          g.attr('width', h.width),
                          g.attr('height', h.height);
                      }
                      var f = 0 * t.padding,
                        p = f / 2;
                      r.log.trace('Data ', t, JSON.stringify(t)),
                        l
                          .attr('style', t.style)
                          .attr('rx', t.rx)
                          .attr('ry', t.ry)
                          .attr('x', t.x - t.width / 2 - p)
                          .attr('y', t.y - t.height / 2 - p)
                          .attr('width', t.width + f)
                          .attr('height', t.height + f),
                        c.attr(
                          'transform',
                          'translate(' +
                            (t.x - h.width / 2) +
                            ', ' +
                            (t.y - t.height / 2 + t.padding / 3) +
                            ')'
                        );
                      var m = l.node().getBBox();
                      return (
                        (t.width = m.width),
                        (t.height = m.height),
                        (t.intersect = function (e) {
                          return Object(n.default)(t, e);
                        }),
                        i
                      );
                    },
                    roundedWithTitle: function (e, t) {
                      var i = e
                          .insert('g')
                          .attr('class', t.classes)
                          .attr('id', t.id),
                        r = i.insert('rect', ':first-child'),
                        l = i.insert('g').attr('class', 'cluster-label'),
                        c = i.append('rect'),
                        d = l
                          .node()
                          .appendChild(
                            Object(s.default)(
                              t.labelText,
                              t.labelStyle,
                              void 0,
                              !0
                            )
                          ),
                        h = d.getBBox();
                      if (Object(a.getConfig)().flowchart.htmlLabels) {
                        var u = d.children[0],
                          g = Object(o.select)(d);
                        (h = u.getBoundingClientRect()),
                          g.attr('width', h.width),
                          g.attr('height', h.height);
                      }
                      h = d.getBBox();
                      var f = 0 * t.padding,
                        p = f / 2;
                      r
                        .attr('class', 'outer')
                        .attr('x', t.x - t.width / 2 - p)
                        .attr('y', t.y - t.height / 2 - p)
                        .attr('width', t.width + f)
                        .attr('height', t.height + f),
                        c
                          .attr('class', 'inner')
                          .attr('x', t.x - t.width / 2 - p)
                          .attr('y', t.y - t.height / 2 - p + h.height - 1)
                          .attr('width', t.width + f)
                          .attr('height', t.height + f - h.height - 3),
                        l.attr(
                          'transform',
                          'translate(' +
                            (t.x - h.width / 2) +
                            ', ' +
                            (t.y -
                              t.height / 2 -
                              t.padding / 3 +
                              (Object(a.getConfig)().flowchart.htmlLabels
                                ? 5
                                : 3)) +
                            ')'
                        );
                      var m = r.node().getBBox();
                      return (
                        (t.width = m.width),
                        (t.height = m.height),
                        (t.intersect = function (e) {
                          return Object(n.default)(t, e);
                        }),
                        i
                      );
                    },
                    noteGroup: function (e, t) {
                      var i = e
                          .insert('g')
                          .attr('class', 'note-cluster')
                          .attr('id', t.id),
                        r = i.insert('rect', ':first-child'),
                        s = 0 * t.padding,
                        o = s / 2;
                      r.attr('rx', t.rx)
                        .attr('ry', t.ry)
                        .attr('x', t.x - t.width / 2 - o)
                        .attr('y', t.y - t.height / 2 - o)
                        .attr('width', t.width + s)
                        .attr('height', t.height + s)
                        .attr('fill', 'none');
                      var a = r.node().getBBox();
                      return (
                        (t.width = a.width),
                        (t.height = a.height),
                        (t.intersect = function (e) {
                          return Object(n.default)(t, e);
                        }),
                        i
                      );
                    },
                    divider: function (e, t) {
                      var i = e
                          .insert('g')
                          .attr('class', t.classes)
                          .attr('id', t.id),
                        r = i.insert('rect', ':first-child'),
                        s = 0 * t.padding,
                        o = s / 2;
                      r.attr('class', 'divider')
                        .attr('x', t.x - t.width / 2 - o)
                        .attr('y', t.y - t.height / 2)
                        .attr('width', t.width + s)
                        .attr('height', t.height + s);
                      var a = r.node().getBBox();
                      return (
                        (t.width = a.width),
                        (t.height = a.height),
                        (t.intersect = function (e) {
                          return Object(n.default)(t, e);
                        }),
                        i
                      );
                    },
                  },
                  c = {},
                  d = function (e, t) {
                    r.log.trace('Inserting cluster');
                    var i = t.shape || 'rect';
                    c[t.id] = l[i](e, t);
                  },
                  h = function (e, t) {
                    var i = Object(s.default)(
                      t.labelText,
                      t.labelStyle,
                      void 0,
                      !0
                    );
                    e.node().appendChild(i);
                    var n = i.getBBox().width;
                    return e.node().removeChild(i), n;
                  },
                  u = function () {
                    c = {};
                  },
                  g = function (e) {
                    r.log.info('Position cluster'),
                      c[e.id].attr(
                        'transform',
                        'translate(' + e.x + ', ' + e.y + ')'
                      );
                  };
              },
              './src/dagre-wrapper/createLabel.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = i('d3'),
                  r = i('./src/logger.js'),
                  s = i('./src/config.js');
                t.default = function (e, t, i, o) {
                  var a,
                    l,
                    c,
                    d,
                    h,
                    u,
                    g = e || '';
                  if (Object(s.getConfig)().flowchart.htmlLabels)
                    return (
                      (g = g.replace(/\\n|\n/g, '<br />')),
                      r.log.info('vertexText' + g),
                      (a = {
                        isNode: o,
                        label: g.replace(/fa[lrsb]?:fa-[\w-]+/g, function (e) {
                          return "<i class='".concat(
                            e.replace(':', ' '),
                            "'></i>"
                          );
                        }),
                        labelStyle: t.replace('fill:', 'color:'),
                      }),
                      (c = Object(n.select)(
                        document.createElementNS(
                          'http://www.w3.org/2000/svg',
                          'foreignObject'
                        )
                      )),
                      (d = c.append('xhtml:div')),
                      (h = a.label),
                      (u = a.isNode ? 'nodeLabel' : 'edgeLabel'),
                      d.html(
                        '<span class="' +
                          u +
                          '" ' +
                          (a.labelStyle ? 'style="' + a.labelStyle + '"' : '') +
                          '>' +
                          h +
                          '</span>'
                      ),
                      (l = a.labelStyle) && d.attr('style', l),
                      d.style('display', 'inline-block'),
                      d.style('white-space', 'nowrap'),
                      d.attr('xmlns', 'http://www.w3.org/1999/xhtml'),
                      c.node()
                    );
                  var f = document.createElementNS(
                    'http://www.w3.org/2000/svg',
                    'text'
                  );
                  f.setAttribute('style', t.replace('color:', 'fill:'));
                  var p = [];
                  p =
                    'string' == typeof g
                      ? g.split(/\\n|\n|<br\s*\/?>/gi)
                      : Array.isArray(g)
                      ? g
                      : [];
                  for (var m = 0; m < p.length; m++) {
                    var _ = document.createElementNS(
                      'http://www.w3.org/2000/svg',
                      'tspan'
                    );
                    _.setAttributeNS(
                      'http://www.w3.org/XML/1998/namespace',
                      'xml:space',
                      'preserve'
                    ),
                      _.setAttribute('dy', '1em'),
                      _.setAttribute('x', '0'),
                      i
                        ? _.setAttribute('class', 'title-row')
                        : _.setAttribute('class', 'row'),
                      (_.textContent = p[m].trim()),
                      f.appendChild(_);
                  }
                  return f;
                };
              },
              './src/dagre-wrapper/edges.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'clear', function () {
                    return d;
                  }),
                  i.d(t, 'insertEdgeLabel', function () {
                    return h;
                  }),
                  i.d(t, 'positionEdgeLabel', function () {
                    return u;
                  }),
                  i.d(t, 'intersection', function () {
                    return f;
                  }),
                  i.d(t, 'insertEdge', function () {
                    return p;
                  });
                var n = i('./src/logger.js'),
                  r = i('./src/dagre-wrapper/createLabel.js'),
                  s = i('d3'),
                  o = i('./src/config.js'),
                  a = i('./src/utils.js'),
                  l = {},
                  c = {},
                  d = function () {
                    (l = {}), (c = {});
                  },
                  h = function (e, t) {
                    var i = Object(r.default)(t.label, t.labelStyle),
                      n = e.insert('g').attr('class', 'edgeLabel'),
                      a = n.insert('g').attr('class', 'label');
                    a.node().appendChild(i);
                    var d = i.getBBox();
                    if (Object(o.getConfig)().flowchart.htmlLabels) {
                      var h = i.children[0],
                        u = Object(s.select)(i);
                      (d = h.getBoundingClientRect()),
                        u.attr('width', d.width),
                        u.attr('height', d.height);
                    }
                    if (
                      (a.attr(
                        'transform',
                        'translate(' + -d.width / 2 + ', ' + -d.height / 2 + ')'
                      ),
                      (l[t.id] = n),
                      (t.width = d.width),
                      (t.height = d.height),
                      t.startLabelLeft)
                    ) {
                      var g = Object(r.default)(t.startLabelLeft, t.labelStyle),
                        f = e.insert('g').attr('class', 'edgeTerminals'),
                        p = f.insert('g').attr('class', 'inner');
                      p.node().appendChild(g);
                      var m = g.getBBox();
                      p.attr(
                        'transform',
                        'translate(' + -m.width / 2 + ', ' + -m.height / 2 + ')'
                      ),
                        c[t.id] || (c[t.id] = {}),
                        (c[t.id].startLeft = f);
                    }
                    if (t.startLabelRight) {
                      var _ = Object(r.default)(
                          t.startLabelRight,
                          t.labelStyle
                        ),
                        b = e.insert('g').attr('class', 'edgeTerminals'),
                        v = b.insert('g').attr('class', 'inner');
                      b.node().appendChild(_), v.node().appendChild(_);
                      var y = _.getBBox();
                      v.attr(
                        'transform',
                        'translate(' + -y.width / 2 + ', ' + -y.height / 2 + ')'
                      ),
                        c[t.id] || (c[t.id] = {}),
                        (c[t.id].startRight = b);
                    }
                    if (t.endLabelLeft) {
                      var w = Object(r.default)(t.endLabelLeft, t.labelStyle),
                        C = e.insert('g').attr('class', 'edgeTerminals'),
                        S = C.insert('g').attr('class', 'inner');
                      S.node().appendChild(w);
                      var k = w.getBBox();
                      S.attr(
                        'transform',
                        'translate(' + -k.width / 2 + ', ' + -k.height / 2 + ')'
                      ),
                        C.node().appendChild(w),
                        c[t.id] || (c[t.id] = {}),
                        (c[t.id].endLeft = C);
                    }
                    if (t.endLabelRight) {
                      var x = Object(r.default)(t.endLabelRight, t.labelStyle),
                        L = e.insert('g').attr('class', 'edgeTerminals'),
                        M = L.insert('g').attr('class', 'inner');
                      M.node().appendChild(x);
                      var D = x.getBBox();
                      M.attr(
                        'transform',
                        'translate(' + -D.width / 2 + ', ' + -D.height / 2 + ')'
                      ),
                        L.node().appendChild(x),
                        c[t.id] || (c[t.id] = {}),
                        (c[t.id].endRight = L);
                    }
                  },
                  u = function (e, t) {
                    n.log.info('Moving label', e.id, e.label, l[e.id]);
                    var i = t.updatedPath ? t.updatedPath : t.originalPath;
                    if (e.label) {
                      var r = l[e.id],
                        s = e.x,
                        o = e.y;
                      if (i) {
                        var d = a.default.calcLabelPosition(i);
                        n.log.info(
                          'Moving label from (',
                          s,
                          ',',
                          o,
                          ') to (',
                          d.x,
                          ',',
                          d.y,
                          ')'
                        );
                      }
                      r.attr('transform', 'translate(' + s + ', ' + o + ')');
                    }
                    if (e.startLabelLeft) {
                      var h = c[e.id].startLeft,
                        u = e.x,
                        g = e.y;
                      if (i) {
                        var f = a.default.calcTerminalLabelPosition(
                          0,
                          'start_left',
                          i
                        );
                        (u = f.x), (g = f.y);
                      }
                      h.attr('transform', 'translate(' + u + ', ' + g + ')');
                    }
                    if (e.startLabelRight) {
                      var p = c[e.id].startRight,
                        m = e.x,
                        _ = e.y;
                      if (i) {
                        var b = a.default.calcTerminalLabelPosition(
                          0,
                          'start_right',
                          i
                        );
                        (m = b.x), (_ = b.y);
                      }
                      p.attr('transform', 'translate(' + m + ', ' + _ + ')');
                    }
                    if (e.endLabelLeft) {
                      var v = c[e.id].endLeft,
                        y = e.x,
                        w = e.y;
                      if (i) {
                        var C = a.default.calcTerminalLabelPosition(
                          0,
                          'end_left',
                          i
                        );
                        (y = C.x), (w = C.y);
                      }
                      v.attr('transform', 'translate(' + y + ', ' + w + ')');
                    }
                    if (e.endLabelRight) {
                      var S = c[e.id].endRight,
                        k = e.x,
                        x = e.y;
                      if (i) {
                        var L = a.default.calcTerminalLabelPosition(
                          0,
                          'end_right',
                          i
                        );
                        (k = L.x), (x = L.y);
                      }
                      S.attr('transform', 'translate(' + k + ', ' + x + ')');
                    }
                  },
                  g = function (e, t) {
                    var i = e.x,
                      n = e.y,
                      r = Math.abs(t.x - i),
                      s = Math.abs(t.y - n),
                      o = e.width / 2,
                      a = e.height / 2;
                    return r >= o || s >= a;
                  },
                  f = function (e, t, i) {
                    n.log.warn('intersection calc o:', t, ' i:', i, e);
                    var r = e.x,
                      s = e.y,
                      o = Math.abs(r - i.x),
                      a = e.width / 2,
                      l = i.x < t.x ? a - o : a + o,
                      c = e.height / 2,
                      d = r - a,
                      h = r + a,
                      u = s - c,
                      g = s + c;
                    if (t.x === d || t.x === h || t.y === u || t.y === g)
                      return n.log.warn('calc equals on edge'), t;
                    var f = Math.abs(t.y - i.y),
                      p = Math.abs(t.x - i.x);
                    if (Math.abs(s - t.y) * a > Math.abs(r - t.x) * c) {
                      var m = i.y < t.y ? t.y - c - s : s - c - t.y;
                      l = (p * m) / f;
                      var _ = {
                        x: i.x < t.x ? i.x + p - l : i.x - l,
                        y: i.y < t.y ? i.y + f - m : i.y - m,
                      };
                      return (
                        n.log.warn(
                          'topp/bott calc, Q '
                            .concat(f, ', q ')
                            .concat(m, ', R ')
                            .concat(p, ', r ')
                            .concat(l),
                          _
                        ),
                        _
                      );
                    }
                    var b = (b =
                      (f * (l = i.x < t.x ? t.x - a - r : r - a - t.x)) / p);
                    return (
                      n.log.warn(
                        'sides calc, Q '
                          .concat(f, ', q ')
                          .concat(b, ', R ')
                          .concat(p, ', r ')
                          .concat(l),
                        {
                          x: i.x < t.x ? i.x + p - l : i.x + o - a,
                          y: i.y < t.y ? i.y + b : i.y - b,
                        }
                      ),
                      {
                        x: i.x < t.x ? i.x + p - l : i.x + o - a,
                        y: i.y < t.y ? i.y + b : i.y - b,
                      }
                    );
                  },
                  p = function (e, t, i, r, a, l) {
                    var c = i.points,
                      d = !1,
                      h = l.node(t.v),
                      u = l.node(t.w);
                    if (
                      (u.intersect &&
                        h.intersect &&
                        ((c = c.slice(1, i.points.length - 1)).unshift(
                          h.intersect(c[0])
                        ),
                        n.log.info(
                          'Last point',
                          c[c.length - 1],
                          u,
                          u.intersect(c[c.length - 1])
                        ),
                        c.push(u.intersect(c[c.length - 1]))),
                      i.toCluster)
                    ) {
                      var p;
                      n.log.trace('edge', i),
                        n.log.trace('to cluster', r[i.toCluster]),
                        (c = []);
                      var m = !1;
                      i.points.forEach(function (e) {
                        var t = r[i.toCluster].node;
                        if (g(t, e) || m) m || c.push(e);
                        else {
                          n.log.trace('inside', i.toCluster, e, p);
                          var s = f(t, p, e),
                            o = !1;
                          c.forEach(function (e) {
                            o = o || (e.x === s.x && e.y === s.y);
                          }),
                            c.find(function (e) {
                              return e.x === s.x && e.y === s.y;
                            })
                              ? n.log.warn('no intersect', s, c)
                              : c.push(s),
                            (m = !0);
                        }
                        p = e;
                      }),
                        (d = !0);
                    }
                    if (i.fromCluster) {
                      n.log.trace('edge', i),
                        n.log.warn('from cluster', r[i.fromCluster]);
                      for (
                        var _, b = [], v = !1, y = c.length - 1;
                        y >= 0;
                        y--
                      ) {
                        var w = c[y],
                          C = r[i.fromCluster].node;
                        if (g(C, w) || v)
                          n.log.trace('Outside point', w), v || b.unshift(w);
                        else {
                          n.log.warn('inside', i.fromCluster, w, C);
                          var S = f(C, _, w);
                          b.unshift(S), (v = !0);
                        }
                        _ = w;
                      }
                      (c = b), (d = !0);
                    }
                    var k,
                      x = c.filter(function (e) {
                        return !Number.isNaN(e.y);
                      });
                    k =
                      (('graph' === a || 'flowchart' === a) && i.curve) ||
                      s.curveBasis;
                    var L,
                      M = Object(s.line)()
                        .x(function (e) {
                          return e.x;
                        })
                        .y(function (e) {
                          return e.y;
                        })
                        .curve(k);
                    switch (i.thickness) {
                      case 'normal':
                        L = 'edge-thickness-normal';
                        break;
                      case 'thick':
                        L = 'edge-thickness-thick';
                        break;
                      default:
                        L = '';
                    }
                    switch (i.pattern) {
                      case 'solid':
                        L += ' edge-pattern-solid';
                        break;
                      case 'dotted':
                        L += ' edge-pattern-dotted';
                        break;
                      case 'dashed':
                        L += ' edge-pattern-dashed';
                    }
                    var D = e
                        .append('path')
                        .attr('d', M(x))
                        .attr('id', i.id)
                        .attr(
                          'class',
                          ' ' + L + (i.classes ? ' ' + i.classes : '')
                        )
                        .attr('style', i.style),
                      N = '';
                    switch (
                      (Object(o.getConfig)().state.arrowMarkerAbsolute &&
                        (N = (N = (N =
                          window.location.protocol +
                          '//' +
                          window.location.host +
                          window.location.pathname +
                          window.location.search).replace(
                          /\(/g,
                          '\\('
                        )).replace(/\)/g, '\\)')),
                      n.log.info('arrowTypeStart', i.arrowTypeStart),
                      n.log.info('arrowTypeEnd', i.arrowTypeEnd),
                      i.arrowTypeStart)
                    ) {
                      case 'arrow_cross':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-crossStart)'
                        );
                        break;
                      case 'arrow_point':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-pointStart)'
                        );
                        break;
                      case 'arrow_barb':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-barbStart)'
                        );
                        break;
                      case 'arrow_circle':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-circleStart)'
                        );
                        break;
                      case 'aggregation':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-aggregationStart)'
                        );
                        break;
                      case 'extension':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-extensionStart)'
                        );
                        break;
                      case 'composition':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-compositionStart)'
                        );
                        break;
                      case 'dependency':
                        D.attr(
                          'marker-start',
                          'url(' + N + '#' + a + '-dependencyStart)'
                        );
                    }
                    switch (i.arrowTypeEnd) {
                      case 'arrow_cross':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-crossEnd)'
                        );
                        break;
                      case 'arrow_point':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-pointEnd)'
                        );
                        break;
                      case 'arrow_barb':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-barbEnd)'
                        );
                        break;
                      case 'arrow_circle':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-circleEnd)'
                        );
                        break;
                      case 'aggregation':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-aggregationEnd)'
                        );
                        break;
                      case 'extension':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-extensionEnd)'
                        );
                        break;
                      case 'composition':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-compositionEnd)'
                        );
                        break;
                      case 'dependency':
                        D.attr(
                          'marker-end',
                          'url(' + N + '#' + a + '-dependencyEnd)'
                        );
                    }
                    var E = {};
                    return (
                      d && (E.updatedPath = c), (E.originalPath = i.points), E
                    );
                  };
              },
              './src/dagre-wrapper/index.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'render', function () {
                    return p;
                  });
                var n = i('dagre'),
                  r = i.n(n),
                  s = i('graphlib'),
                  o = i.n(s),
                  a = i('./src/dagre-wrapper/markers.js'),
                  l = i('./src/dagre-wrapper/shapes/util.js'),
                  c = i('./src/dagre-wrapper/mermaid-graphlib.js'),
                  d = i('./src/dagre-wrapper/nodes.js'),
                  h = i('./src/dagre-wrapper/clusters.js'),
                  u = i('./src/dagre-wrapper/edges.js'),
                  g = i('./src/logger.js'),
                  f = function e(t, i, n, s) {
                    g.log.info(
                      'Graph in recursive render: XXX',
                      o.a.json.write(i),
                      s
                    );
                    var a = i.graph().rankdir;
                    g.log.warn('Dir in recursive render - dir:', a);
                    var f = t.insert('g').attr('class', 'root');
                    i.nodes()
                      ? g.log.info('Recursive render XXX', i.nodes())
                      : g.log.info('No nodes found for', i),
                      i.edges().length > 0 &&
                        g.log.info('Recursive edges', i.edge(i.edges()[0]));
                    var p = f.insert('g').attr('class', 'clusters'),
                      m = f.insert('g').attr('class', 'edgePaths'),
                      _ = f.insert('g').attr('class', 'edgeLabels'),
                      b = f.insert('g').attr('class', 'nodes');
                    return (
                      i.nodes().forEach(function (t) {
                        var r = i.node(t);
                        if (void 0 !== s) {
                          var o = JSON.parse(JSON.stringify(s.clusterData));
                          g.log.info(
                            'Setting data for cluster XXX (',
                            t,
                            ') ',
                            o,
                            s
                          ),
                            i.setNode(s.id, o),
                            i.parent(t) ||
                              (g.log.warn('Setting parent', t, s.id),
                              i.setParent(t, s.id, o));
                        }
                        if (
                          (g.log.info(
                            '(Insert) Node XXX' +
                              t +
                              ': ' +
                              JSON.stringify(i.node(t))
                          ),
                          r && r.clusterNode)
                        ) {
                          g.log.info('Cluster identified', t, r, i.node(t));
                          var h = e(b, r.graph, n, i.node(t));
                          Object(l.updateNodeBounds)(r, h),
                            Object(d.setNodeElem)(h, r),
                            g.log.warn('Recursive render complete', h, r);
                        } else i.children(t).length > 0 ? (g.log.info('Cluster - the non recursive path XXX', t, r.id, r, i), g.log.info(Object(c.findNonClusterChild)(r.id, i)), (c.clusterDb[r.id] = { id: Object(c.findNonClusterChild)(r.id, i), node: r })) : (g.log.info('Node - the non recursive path', t, r.id, r), Object(d.insertNode)(b, i.node(t), a));
                      }),
                      i.edges().forEach(function (e) {
                        var t = i.edge(e.v, e.w, e.name);
                        g.log.info(
                          'Edge ' +
                            e.v +
                            ' -> ' +
                            e.w +
                            ': ' +
                            JSON.stringify(e)
                        ),
                          g.log.info(
                            'Edge ' + e.v + ' -> ' + e.w + ': ',
                            e,
                            ' ',
                            JSON.stringify(i.edge(e))
                          ),
                          g.log.info(
                            'Fix',
                            c.clusterDb,
                            'ids:',
                            e.v,
                            e.w,
                            'Translateing: ',
                            c.clusterDb[e.v],
                            c.clusterDb[e.w]
                          ),
                          Object(u.insertEdgeLabel)(_, t);
                      }),
                      i.edges().forEach(function (e) {
                        g.log.info(
                          'Edge ' +
                            e.v +
                            ' -> ' +
                            e.w +
                            ': ' +
                            JSON.stringify(e)
                        );
                      }),
                      g.log.info(
                        '#############################################'
                      ),
                      g.log.info(
                        '###                Layout                 ###'
                      ),
                      g.log.info(
                        '#############################################'
                      ),
                      g.log.info(i),
                      r.a.layout(i),
                      g.log.info('Graph after layout:', o.a.json.write(i)),
                      Object(c.sortNodesByHierarchy)(i).forEach(function (e) {
                        var t = i.node(e);
                        g.log.info(
                          'Position ' + e + ': ' + JSON.stringify(i.node(e))
                        ),
                          g.log.info(
                            'Position ' + e + ': (' + t.x,
                            ',' + t.y,
                            ') width: ',
                            t.width,
                            ' height: ',
                            t.height
                          ),
                          t && t.clusterNode
                            ? Object(d.positionNode)(t)
                            : i.children(e).length > 0
                            ? (Object(h.insertCluster)(p, t),
                              (c.clusterDb[t.id].node = t))
                            : Object(d.positionNode)(t);
                      }),
                      i.edges().forEach(function (e) {
                        var t = i.edge(e);
                        g.log.info(
                          'Edge ' +
                            e.v +
                            ' -> ' +
                            e.w +
                            ': ' +
                            JSON.stringify(t),
                          t
                        );
                        var r = Object(u.insertEdge)(
                          m,
                          e,
                          t,
                          c.clusterDb,
                          n,
                          i
                        );
                        Object(u.positionEdgeLabel)(t, r);
                      }),
                      f
                    );
                  },
                  p = function (e, t, i, n, r) {
                    Object(a.default)(e, i, n, r),
                      Object(d.clear)(),
                      Object(u.clear)(),
                      Object(h.clear)(),
                      Object(c.clear)(),
                      g.log.warn('Graph at first:', o.a.json.write(t)),
                      Object(c.adjustClustersAndEdges)(t),
                      g.log.warn('Graph after:', o.a.json.write(t)),
                      f(e, t, n);
                  };
              },
              './src/dagre-wrapper/intersect/index.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = i('./src/dagre-wrapper/intersect/intersect-node.js'),
                  r = i.n(n),
                  s = i('./src/dagre-wrapper/intersect/intersect-circle.js'),
                  o = i('./src/dagre-wrapper/intersect/intersect-ellipse.js'),
                  a = i('./src/dagre-wrapper/intersect/intersect-polygon.js'),
                  l = i('./src/dagre-wrapper/intersect/intersect-rect.js');
                t.default = {
                  node: r.a,
                  circle: s.default,
                  ellipse: o.default,
                  polygon: a.default,
                  rect: l.default,
                };
              },
              './src/dagre-wrapper/intersect/intersect-circle.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t);
                var n = i('./src/dagre-wrapper/intersect/intersect-ellipse.js');
                t.default = function (e, t, i) {
                  return Object(n.default)(e, t, t, i);
                };
              },
              './src/dagre-wrapper/intersect/intersect-ellipse.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  (t.default = function (e, t, i, n) {
                    var r = e.x,
                      s = e.y,
                      o = r - n.x,
                      a = s - n.y,
                      l = Math.sqrt(t * t * a * a + i * i * o * o),
                      c = Math.abs((t * i * o) / l);
                    n.x < r && (c = -c);
                    var d = Math.abs((t * i * a) / l);
                    return n.y < s && (d = -d), { x: r + c, y: s + d };
                  });
              },
              './src/dagre-wrapper/intersect/intersect-line.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                function n(e, t) {
                  return e * t > 0;
                }
                i.r(t),
                  (t.default = function (e, t, i, r) {
                    var s, o, a, l, c, d, h, u, g, f, p, m, _;
                    if (
                      ((s = t.y - e.y),
                      (a = e.x - t.x),
                      (c = t.x * e.y - e.x * t.y),
                      (g = s * i.x + a * i.y + c),
                      (f = s * r.x + a * r.y + c),
                      !(
                        (0 !== g && 0 !== f && n(g, f)) ||
                        ((o = r.y - i.y),
                        (l = i.x - r.x),
                        (d = r.x * i.y - i.x * r.y),
                        (h = o * e.x + l * e.y + d),
                        (u = o * t.x + l * t.y + d),
                        (0 !== h && 0 !== u && n(h, u)) ||
                          0 == (p = s * l - o * a))
                      ))
                    )
                      return (
                        (m = Math.abs(p / 2)),
                        {
                          x:
                            (_ = a * d - l * c) < 0 ? (_ - m) / p : (_ + m) / p,
                          y:
                            (_ = o * c - s * d) < 0 ? (_ - m) / p : (_ + m) / p,
                        }
                      );
                  });
              },
              './src/dagre-wrapper/intersect/intersect-node.js': function (
                e,
                t
              ) {
                e.exports = function (e, t) {
                  return e.intersect(t);
                };
              },
              './src/dagre-wrapper/intersect/intersect-polygon.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t);
                var n = i('./src/dagre-wrapper/intersect/intersect-line.js');
                t.default = function (e, t, i) {
                  var r = e.x,
                    s = e.y,
                    o = [],
                    a = Number.POSITIVE_INFINITY,
                    l = Number.POSITIVE_INFINITY;
                  'function' == typeof t.forEach
                    ? t.forEach(function (e) {
                        (a = Math.min(a, e.x)), (l = Math.min(l, e.y));
                      })
                    : ((a = Math.min(a, t.x)), (l = Math.min(l, t.y)));
                  for (
                    var c = r - e.width / 2 - a,
                      d = s - e.height / 2 - l,
                      h = 0;
                    h < t.length;
                    h++
                  ) {
                    var u = t[h],
                      g = t[h < t.length - 1 ? h + 1 : 0],
                      f = Object(n.default)(
                        e,
                        i,
                        { x: c + u.x, y: d + u.y },
                        { x: c + g.x, y: d + g.y }
                      );
                    f && o.push(f);
                  }
                  return o.length
                    ? (o.length > 1 &&
                        o.sort(function (e, t) {
                          var n = e.x - i.x,
                            r = e.y - i.y,
                            s = Math.sqrt(n * n + r * r),
                            o = t.x - i.x,
                            a = t.y - i.y,
                            l = Math.sqrt(o * o + a * a);
                          return s < l ? -1 : s === l ? 0 : 1;
                        }),
                      o[0])
                    : e;
                };
              },
              './src/dagre-wrapper/intersect/intersect-rect.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  (t.default = function (e, t) {
                    var i,
                      n,
                      r = e.x,
                      s = e.y,
                      o = t.x - r,
                      a = t.y - s,
                      l = e.width / 2,
                      c = e.height / 2;
                    return (
                      Math.abs(a) * l > Math.abs(o) * c
                        ? (a < 0 && (c = -c),
                          (i = 0 === a ? 0 : (c * o) / a),
                          (n = c))
                        : (o < 0 && (l = -l),
                          (i = l),
                          (n = 0 === o ? 0 : (l * a) / o)),
                      { x: r + i, y: s + n }
                    );
                  });
              },
              './src/dagre-wrapper/markers.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = i('./src/logger.js'),
                  r = {
                    extension: function (e, t, i) {
                      n.log.trace('Making markers for ', i),
                        e
                          .append('defs')
                          .append('marker')
                          .attr('id', t + '-extensionStart')
                          .attr('class', 'marker extension ' + t)
                          .attr('refX', 0)
                          .attr('refY', 7)
                          .attr('markerWidth', 190)
                          .attr('markerHeight', 240)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 1,7 L18,13 V 1 Z'),
                        e
                          .append('defs')
                          .append('marker')
                          .attr('id', t + '-extensionEnd')
                          .attr('class', 'marker extension ' + t)
                          .attr('refX', 19)
                          .attr('refY', 7)
                          .attr('markerWidth', 20)
                          .attr('markerHeight', 28)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 1,1 V 13 L18,7 Z');
                    },
                    composition: function (e, t) {
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', t + '-compositionStart')
                        .attr('class', 'marker composition ' + t)
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
                        e
                          .append('defs')
                          .append('marker')
                          .attr('id', t + '-compositionEnd')
                          .attr('class', 'marker composition ' + t)
                          .attr('refX', 19)
                          .attr('refY', 7)
                          .attr('markerWidth', 20)
                          .attr('markerHeight', 28)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
                    },
                    aggregation: function (e, t) {
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', t + '-aggregationStart')
                        .attr('class', 'marker aggregation ' + t)
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
                        e
                          .append('defs')
                          .append('marker')
                          .attr('id', t + '-aggregationEnd')
                          .attr('class', 'marker aggregation ' + t)
                          .attr('refX', 19)
                          .attr('refY', 7)
                          .attr('markerWidth', 20)
                          .attr('markerHeight', 28)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');
                    },
                    dependency: function (e, t) {
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', t + '-dependencyStart')
                        .attr('class', 'marker dependency ' + t)
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z'),
                        e
                          .append('defs')
                          .append('marker')
                          .attr('id', t + '-dependencyEnd')
                          .attr('class', 'marker dependency ' + t)
                          .attr('refX', 19)
                          .attr('refY', 7)
                          .attr('markerWidth', 20)
                          .attr('markerHeight', 28)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');
                    },
                    point: function (e, t) {
                      e
                        .append('marker')
                        .attr('id', t + '-pointEnd')
                        .attr('class', 'marker ' + t)
                        .attr('viewBox', '0 0 10 10')
                        .attr('refX', 9)
                        .attr('refY', 5)
                        .attr('markerUnits', 'userSpaceOnUse')
                        .attr('markerWidth', 12)
                        .attr('markerHeight', 12)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 0 0 L 10 5 L 0 10 z')
                        .attr('class', 'arrowMarkerPath')
                        .style('stroke-width', 1)
                        .style('stroke-dasharray', '1,0'),
                        e
                          .append('marker')
                          .attr('id', t + '-pointStart')
                          .attr('class', 'marker ' + t)
                          .attr('viewBox', '0 0 10 10')
                          .attr('refX', 0)
                          .attr('refY', 5)
                          .attr('markerUnits', 'userSpaceOnUse')
                          .attr('markerWidth', 12)
                          .attr('markerHeight', 12)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 0 5 L 10 10 L 10 0 z')
                          .attr('class', 'arrowMarkerPath')
                          .style('stroke-width', 1)
                          .style('stroke-dasharray', '1,0');
                    },
                    circle: function (e, t) {
                      e
                        .append('marker')
                        .attr('id', t + '-circleEnd')
                        .attr('class', 'marker ' + t)
                        .attr('viewBox', '0 0 10 10')
                        .attr('refX', 11)
                        .attr('refY', 5)
                        .attr('markerUnits', 'userSpaceOnUse')
                        .attr('markerWidth', 11)
                        .attr('markerHeight', 11)
                        .attr('orient', 'auto')
                        .append('circle')
                        .attr('cx', '5')
                        .attr('cy', '5')
                        .attr('r', '5')
                        .attr('class', 'arrowMarkerPath')
                        .style('stroke-width', 1)
                        .style('stroke-dasharray', '1,0'),
                        e
                          .append('marker')
                          .attr('id', t + '-circleStart')
                          .attr('class', 'marker ' + t)
                          .attr('viewBox', '0 0 10 10')
                          .attr('refX', -1)
                          .attr('refY', 5)
                          .attr('markerUnits', 'userSpaceOnUse')
                          .attr('markerWidth', 11)
                          .attr('markerHeight', 11)
                          .attr('orient', 'auto')
                          .append('circle')
                          .attr('cx', '5')
                          .attr('cy', '5')
                          .attr('r', '5')
                          .attr('class', 'arrowMarkerPath')
                          .style('stroke-width', 1)
                          .style('stroke-dasharray', '1,0');
                    },
                    cross: function (e, t) {
                      e
                        .append('marker')
                        .attr('id', t + '-crossEnd')
                        .attr('class', 'marker cross ' + t)
                        .attr('viewBox', '0 0 11 11')
                        .attr('refX', 12)
                        .attr('refY', 5.2)
                        .attr('markerUnits', 'userSpaceOnUse')
                        .attr('markerWidth', 11)
                        .attr('markerHeight', 11)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')
                        .attr('class', 'arrowMarkerPath')
                        .style('stroke-width', 2)
                        .style('stroke-dasharray', '1,0'),
                        e
                          .append('marker')
                          .attr('id', t + '-crossStart')
                          .attr('class', 'marker cross ' + t)
                          .attr('viewBox', '0 0 11 11')
                          .attr('refX', -1)
                          .attr('refY', 5.2)
                          .attr('markerUnits', 'userSpaceOnUse')
                          .attr('markerWidth', 11)
                          .attr('markerHeight', 11)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')
                          .attr('class', 'arrowMarkerPath')
                          .style('stroke-width', 2)
                          .style('stroke-dasharray', '1,0');
                    },
                    barb: function (e, t) {
                      e.append('defs')
                        .append('marker')
                        .attr('id', t + '-barbEnd')
                        .attr('refX', 19)
                        .attr('refY', 7)
                        .attr('markerWidth', 20)
                        .attr('markerHeight', 14)
                        .attr('markerUnits', 'strokeWidth')
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');
                    },
                  };
                t.default = function (e, t, i, n) {
                  t.forEach(function (t) {
                    r[t](e, i, n);
                  });
                };
              },
              './src/dagre-wrapper/mermaid-graphlib.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'clusterDb', function () {
                    return o;
                  }),
                  i.d(t, 'clear', function () {
                    return c;
                  }),
                  i.d(t, 'extractDecendants', function () {
                    return u;
                  }),
                  i.d(t, 'validate', function () {
                    return g;
                  }),
                  i.d(t, 'findNonClusterChild', function () {
                    return f;
                  }),
                  i.d(t, 'adjustClustersAndEdges', function () {
                    return m;
                  }),
                  i.d(t, 'extractor', function () {
                    return _;
                  }),
                  i.d(t, 'sortNodesByHierarchy', function () {
                    return v;
                  });
                var n = i('./src/logger.js'),
                  r = i('graphlib'),
                  s = i.n(r),
                  o = {},
                  a = {},
                  l = {},
                  c = function () {
                    (a = {}), (l = {}), (o = {});
                  },
                  d = function (e, t) {
                    return (
                      n.log.debug(
                        'In isDecendant',
                        t,
                        ' ',
                        e,
                        ' = ',
                        a[t].indexOf(e) >= 0
                      ),
                      a[t].indexOf(e) >= 0
                    );
                  },
                  h = function e(t, i, r, s) {
                    n.log.warn(
                      'Copying children of ',
                      t,
                      'root',
                      s,
                      'data',
                      i.node(t),
                      s
                    );
                    var o = i.children(t) || [];
                    t !== s && o.push(t),
                      n.log.warn('Copying (nodes) clusterId', t, 'nodes', o),
                      o.forEach(function (o) {
                        if (i.children(o).length > 0) e(o, i, r, s);
                        else {
                          var l = i.node(o);
                          n.log.info('cp ', o, ' to ', s, ' with parent ', t),
                            r.setNode(o, l),
                            s !== i.parent(o) &&
                              (n.log.warn('Setting parent', o, i.parent(o)),
                              r.setParent(o, i.parent(o))),
                            t !== s && o !== t
                              ? (n.log.debug('Setting parent', o, t),
                                r.setParent(o, t))
                              : (n.log.info(
                                  'In copy ',
                                  t,
                                  'root',
                                  s,
                                  'data',
                                  i.node(t),
                                  s
                                ),
                                n.log.debug(
                                  'Not Setting parent for node=',
                                  o,
                                  'cluster!==rootId',
                                  t !== s,
                                  'node!==clusterId',
                                  o !== t
                                ));
                          var c = i.edges(o);
                          n.log.debug('Copying Edges', c),
                            c.forEach(function (e) {
                              n.log.info('Edge', e);
                              var o = i.edge(e.v, e.w, e.name);
                              n.log.info('Edge data', o, s);
                              try {
                                !(function (e, t) {
                                  return (
                                    n.log.info(
                                      'Decendants of ',
                                      t,
                                      ' is ',
                                      a[t]
                                    ),
                                    n.log.info('Edge is ', e),
                                    e.v !== t &&
                                      e.w !== t &&
                                      (a[t]
                                        ? (n.log.info('Here '),
                                          a[t].indexOf(e.v) >= 0 ||
                                            !!d(e.v, t) ||
                                            !!d(e.w, t) ||
                                            a[t].indexOf(e.w) >= 0)
                                        : (n.log.debug(
                                            'Tilt, ',
                                            t,
                                            ',not in decendants'
                                          ),
                                          !1))
                                  );
                                })(e, s)
                                  ? n.log.info(
                                      'Skipping copy of edge ',
                                      e.v,
                                      '--\x3e',
                                      e.w,
                                      ' rootId: ',
                                      s,
                                      ' clusterId:',
                                      t
                                    )
                                  : (n.log.info(
                                      'Copying as ',
                                      e.v,
                                      e.w,
                                      o,
                                      e.name
                                    ),
                                    r.setEdge(e.v, e.w, o, e.name),
                                    n.log.info(
                                      'newGraph edges ',
                                      r.edges(),
                                      r.edge(r.edges()[0])
                                    ));
                              } catch (e) {
                                n.log.error(e);
                              }
                            });
                        }
                        n.log.debug('Removing node', o), i.removeNode(o);
                      });
                  },
                  u = function e(t, i) {
                    for (
                      var n = i.children(t), r = [].concat(n), s = 0;
                      s < n.length;
                      s++
                    )
                      (l[n[s]] = t), (r = r.concat(e(n[s], i)));
                    return r;
                  },
                  g = function (e) {
                    var t = e.edges();
                    n.log.trace('Edges: ', t);
                    for (var i = 0; i < t.length; i++) {
                      if (e.children(t[i].v).length > 0)
                        return (
                          n.log.trace(
                            'The node ',
                            t[i].v,
                            ' is part of and edge even though it has children'
                          ),
                          !1
                        );
                      if (e.children(t[i].w).length > 0)
                        return (
                          n.log.trace(
                            'The node ',
                            t[i].w,
                            ' is part of and edge even though it has children'
                          ),
                          !1
                        );
                    }
                    return !0;
                  },
                  f = function e(t, i) {
                    n.log.trace('Searching', t);
                    var r = i.children(t);
                    if (
                      (n.log.trace('Searching children of id ', t, r),
                      r.length < 1)
                    )
                      return n.log.trace('This is a valid node', t), t;
                    for (var s = 0; s < r.length; s++) {
                      var o = e(r[s], i);
                      if (o)
                        return (
                          n.log.trace('Found replacement for', t, ' => ', o), o
                        );
                    }
                  },
                  p = function (e) {
                    return o[e] && o[e].externalConnections && o[e]
                      ? o[e].id
                      : e;
                  },
                  m = function (e, t) {
                    !e || t > 10
                      ? n.log.debug('Opting out, no graph ')
                      : (n.log.debug('Opting in, graph '),
                        e.nodes().forEach(function (t) {
                          e.children(t).length > 0 &&
                            (n.log.warn(
                              'Cluster identified',
                              t,
                              ' Replacement id in edges: ',
                              f(t, e)
                            ),
                            (a[t] = u(t, e)),
                            (o[t] = { id: f(t, e), clusterData: e.node(t) }));
                        }),
                        e.nodes().forEach(function (t) {
                          var i = e.children(t),
                            r = e.edges();
                          i.length > 0
                            ? (n.log.debug('Cluster identified', t, a),
                              r.forEach(function (e) {
                                e.v !== t &&
                                  e.w !== t &&
                                  d(e.v, t) ^ d(e.w, t) &&
                                  (n.log.warn(
                                    'Edge: ',
                                    e,
                                    ' leaves cluster ',
                                    t
                                  ),
                                  n.log.warn(
                                    'Decendants of XXX ',
                                    t,
                                    ': ',
                                    a[t]
                                  ),
                                  (o[t].externalConnections = !0));
                              }))
                            : n.log.debug('Not a cluster ', t, a);
                        }),
                        e.edges().forEach(function (t) {
                          var i = e.edge(t);
                          n.log.warn(
                            'Edge ' +
                              t.v +
                              ' -> ' +
                              t.w +
                              ': ' +
                              JSON.stringify(t)
                          ),
                            n.log.warn(
                              'Edge ' +
                                t.v +
                                ' -> ' +
                                t.w +
                                ': ' +
                                JSON.stringify(e.edge(t))
                            );
                          var r = t.v,
                            s = t.w;
                          n.log.warn(
                            'Fix XXX',
                            o,
                            'ids:',
                            t.v,
                            t.w,
                            'Translateing: ',
                            o[t.v],
                            ' --- ',
                            o[t.w]
                          ),
                            (o[t.v] || o[t.w]) &&
                              (n.log.warn(
                                'Fixing and trixing - removing XXX',
                                t.v,
                                t.w,
                                t.name
                              ),
                              (r = p(t.v)),
                              (s = p(t.w)),
                              e.removeEdge(t.v, t.w, t.name),
                              r !== t.v && (i.fromCluster = t.v),
                              s !== t.w && (i.toCluster = t.w),
                              n.log.warn(
                                'Fix Replacing with XXX',
                                r,
                                s,
                                t.name
                              ),
                              e.setEdge(r, s, i, t.name));
                        }),
                        n.log.warn('Adjusted Graph', s.a.json.write(e)),
                        _(e, 0),
                        n.log.trace(o));
                  },
                  _ = function e(t, i) {
                    if (
                      (n.log.warn(
                        'extractor - ',
                        i,
                        s.a.json.write(t),
                        t.children('D')
                      ),
                      i > 10)
                    )
                      n.log.error('Bailing out');
                    else {
                      for (
                        var r = t.nodes(), a = !1, l = 0;
                        l < r.length;
                        l++
                      ) {
                        var c = r[l],
                          d = t.children(c);
                        a = a || d.length > 0;
                      }
                      if (a) {
                        n.log.debug('Nodes = ', r, i);
                        for (var u = 0; u < r.length; u++) {
                          var g = r[u];
                          if (
                            (n.log.debug(
                              'Extracting node',
                              g,
                              o,
                              o[g] && !o[g].externalConnections,
                              !t.parent(g),
                              t.node(g),
                              t.children('D'),
                              ' Depth ',
                              i
                            ),
                            o[g])
                          )
                            if (
                              !o[g].externalConnections &&
                              t.children(g) &&
                              t.children(g).length > 0
                            ) {
                              n.log.warn(
                                'Cluster without external connections, without a parent and with children',
                                g,
                                i
                              );
                              var f = t.graph(),
                                p = new s.a.Graph({
                                  multigraph: !0,
                                  compound: !0,
                                })
                                  .setGraph({
                                    rankdir: 'TB' === f.rankdir ? 'LR' : 'TB',
                                    nodesep: 50,
                                    ranksep: 50,
                                    marginx: 8,
                                    marginy: 8,
                                  })
                                  .setDefaultEdgeLabel(function () {
                                    return {};
                                  });
                              n.log.warn(
                                'Old graph before copy',
                                s.a.json.write(t)
                              ),
                                h(g, t, p, g),
                                t.setNode(g, {
                                  clusterNode: !0,
                                  id: g,
                                  clusterData: o[g].clusterData,
                                  labelText: o[g].labelText,
                                  graph: p,
                                }),
                                n.log.warn(
                                  'New graph after copy node: (',
                                  g,
                                  ')',
                                  s.a.json.write(p)
                                ),
                                n.log.debug(
                                  'Old graph after copy',
                                  s.a.json.write(t)
                                );
                            } else
                              n.log.warn(
                                'Cluster ** ',
                                g,
                                ' **not meeting the criteria !externalConnections:',
                                !o[g].externalConnections,
                                ' no parent: ',
                                !t.parent(g),
                                ' children ',
                                t.children(g) && t.children(g).length > 0,
                                t.children('D'),
                                i
                              ),
                                n.log.debug(o);
                          else n.log.debug('Not a cluster', g, i);
                        }
                        (r = t.nodes()), n.log.warn('New list of nodes', r);
                        for (var m = 0; m < r.length; m++) {
                          var _ = r[m],
                            b = t.node(_);
                          n.log.warn(' Now next level', _, b),
                            b.clusterNode && e(b.graph, i + 1);
                        }
                      } else
                        n.log.debug('Done, no node has children', t.nodes());
                    }
                  },
                  b = function e(t, i) {
                    if (0 === i.length) return [];
                    var n = Object.assign(i);
                    return (
                      i.forEach(function (i) {
                        var r = t.children(i),
                          s = e(t, r);
                        n = n.concat(s);
                      }),
                      n
                    );
                  },
                  v = function (e) {
                    return b(e, e.children());
                  };
              },
              './src/dagre-wrapper/nodes.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'insertNode', function () {
                    return f;
                  }),
                  i.d(t, 'setNodeElem', function () {
                    return p;
                  }),
                  i.d(t, 'clear', function () {
                    return m;
                  }),
                  i.d(t, 'positionNode', function () {
                    return _;
                  });
                var n = i('d3'),
                  r = i('./src/logger.js'),
                  s = i('./src/dagre-wrapper/shapes/util.js'),
                  o = i('./src/config.js'),
                  a = i('./src/dagre-wrapper/intersect/index.js'),
                  l = i('./src/dagre-wrapper/createLabel.js'),
                  c = i('./src/dagre-wrapper/shapes/note.js'),
                  d = i('./src/diagrams/class/svgDraw.js'),
                  h = function (e, t, i) {
                    var n = e
                        .insert('g')
                        .attr('class', 'node default')
                        .attr('id', t.domId || t.id),
                      r = 70,
                      o = 10;
                    'LR' === i && ((r = 10), (o = 70));
                    var l = n
                      .append('rect')
                      .style('stroke', 'black')
                      .style('fill', 'black')
                      .attr('x', (-1 * r) / 2)
                      .attr('y', (-1 * o) / 2)
                      .attr('width', r)
                      .attr('height', o)
                      .attr('class', 'fork-join');
                    return (
                      Object(s.updateNodeBounds)(t, l),
                      (t.height = t.height + t.padding / 2),
                      (t.width = t.width + t.padding / 2),
                      (t.intersect = function (e) {
                        return a.default.rect(t, e);
                      }),
                      n
                    );
                  },
                  u = {
                    question: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        o = i.bbox,
                        l = o.width + t.padding + (o.height + t.padding),
                        c = [
                          { x: l / 2, y: 0 },
                          { x: l, y: -l / 2 },
                          { x: l / 2, y: -l },
                          { x: 0, y: -l / 2 },
                        ];
                      r.log.info('Question main (Circle)');
                      var d = Object(s.insertPolygonShape)(n, l, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return (
                            r.log.warn('Intersect called'),
                            a.default.polygon(t, c, e)
                          );
                        }),
                        n
                      );
                    },
                    rect: function (e, t) {
                      var i = Object(s.labelHelper)(
                          e,
                          t,
                          'node ' + t.classes,
                          !0
                        ),
                        n = i.shapeSvg,
                        o = i.bbox,
                        l = i.halfPadding;
                      r.log.trace('Classes = ', t.classes);
                      var c = n.insert('rect', ':first-child');
                      return (
                        c
                          .attr('class', 'basic label-container')
                          .attr('style', t.style)
                          .attr('rx', t.rx)
                          .attr('ry', t.ry)
                          .attr('x', -o.width / 2 - l)
                          .attr('y', -o.height / 2 - l)
                          .attr('width', o.width + t.padding)
                          .attr('height', o.height + t.padding),
                        Object(s.updateNodeBounds)(t, c),
                        (t.intersect = function (e) {
                          return a.default.rect(t, e);
                        }),
                        n
                      );
                    },
                    rectWithTitle: function (e, t) {
                      var i;
                      i = t.classes ? 'node ' + t.classes : 'node default';
                      var c = e
                          .insert('g')
                          .attr('class', i)
                          .attr('id', t.domId || t.id),
                        d = c.insert('rect', ':first-child'),
                        h = c.insert('line'),
                        u = c.insert('g').attr('class', 'label'),
                        g = t.labelText.flat();
                      r.log.info('Label text', g[0]);
                      var f,
                        p = u
                          .node()
                          .appendChild(
                            Object(l.default)(g[0], t.labelStyle, !0, !0)
                          );
                      if (Object(o.getConfig)().flowchart.htmlLabels) {
                        var m = p.children[0],
                          _ = Object(n.select)(p);
                        (f = m.getBoundingClientRect()),
                          _.attr('width', f.width),
                          _.attr('height', f.height);
                      }
                      r.log.info('Text 2', g);
                      var b = g.slice(1, g.length),
                        v = p.getBBox(),
                        y = u
                          .node()
                          .appendChild(
                            Object(l.default)(
                              b.join('<br/>'),
                              t.labelStyle,
                              !0,
                              !0
                            )
                          );
                      if (Object(o.getConfig)().flowchart.htmlLabels) {
                        var w = y.children[0],
                          C = Object(n.select)(y);
                        (f = w.getBoundingClientRect()),
                          C.attr('width', f.width),
                          C.attr('height', f.height);
                      }
                      var S = t.padding / 2;
                      return (
                        Object(n.select)(y).attr(
                          'transform',
                          'translate( ' +
                            (f.width > v.width ? 0 : (v.width - f.width) / 2) +
                            ', ' +
                            (v.height + S + 5) +
                            ')'
                        ),
                        Object(n.select)(p).attr(
                          'transform',
                          'translate( ' +
                            (f.width < v.width ? 0 : -(v.width - f.width) / 2) +
                            ', 0)'
                        ),
                        (f = u.node().getBBox()),
                        u.attr(
                          'transform',
                          'translate(' +
                            -f.width / 2 +
                            ', ' +
                            (-f.height / 2 - S + 3) +
                            ')'
                        ),
                        d
                          .attr('class', 'outer title-state')
                          .attr('x', -f.width / 2 - S)
                          .attr('y', -f.height / 2 - S)
                          .attr('width', f.width + t.padding)
                          .attr('height', f.height + t.padding),
                        h
                          .attr('class', 'divider')
                          .attr('x1', -f.width / 2 - S)
                          .attr('x2', f.width / 2 + S)
                          .attr('y1', -f.height / 2 - S + v.height + S)
                          .attr('y2', -f.height / 2 - S + v.height + S),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.rect(t, e);
                        }),
                        c
                      );
                    },
                    circle: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        o = i.bbox,
                        l = i.halfPadding,
                        c = n.insert('circle', ':first-child');
                      return (
                        c
                          .attr('style', t.style)
                          .attr('rx', t.rx)
                          .attr('ry', t.ry)
                          .attr('r', o.width / 2 + l)
                          .attr('width', o.width + t.padding)
                          .attr('height', o.height + t.padding),
                        r.log.info('Circle main'),
                        Object(s.updateNodeBounds)(t, c),
                        (t.intersect = function (e) {
                          return (
                            r.log.info(
                              'Circle intersect',
                              t,
                              o.width / 2 + l,
                              e
                            ),
                            a.default.circle(t, o.width / 2 + l, e)
                          );
                        }),
                        n
                      );
                    },
                    stadium: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.height + t.padding,
                        l = r.width + o / 4 + t.padding,
                        c = n
                          .insert('rect', ':first-child')
                          .attr('style', t.style)
                          .attr('rx', o / 2)
                          .attr('ry', o / 2)
                          .attr('x', -l / 2)
                          .attr('y', -o / 2)
                          .attr('width', l)
                          .attr('height', o);
                      return (
                        Object(s.updateNodeBounds)(t, c),
                        (t.intersect = function (e) {
                          return a.default.rect(t, e);
                        }),
                        n
                      );
                    },
                    hexagon: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.height + t.padding,
                        l = o / 4,
                        c = r.width + 2 * l + t.padding,
                        d = [
                          { x: l, y: 0 },
                          { x: c - l, y: 0 },
                          { x: c, y: -o / 2 },
                          { x: c - l, y: -o },
                          { x: l, y: -o },
                          { x: 0, y: -o / 2 },
                        ],
                        h = Object(s.insertPolygonShape)(n, c, o, d);
                      return (
                        h.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, h),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, d, e);
                        }),
                        n
                      );
                    },
                    rect_left_inv_arrow: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: -l / 2, y: 0 },
                          { x: o, y: 0 },
                          { x: o, y: -l },
                          { x: -l / 2, y: -l },
                          { x: 0, y: -l / 2 },
                        ];
                      return (
                        Object(s.insertPolygonShape)(n, o, l, c).attr(
                          'style',
                          t.style
                        ),
                        (t.width = o + l),
                        (t.height = l),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    lean_right: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: (-2 * l) / 6, y: 0 },
                          { x: o - l / 6, y: 0 },
                          { x: o + (2 * l) / 6, y: -l },
                          { x: l / 6, y: -l },
                        ],
                        d = Object(s.insertPolygonShape)(n, o, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    lean_left: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: (2 * l) / 6, y: 0 },
                          { x: o + l / 6, y: 0 },
                          { x: o - (2 * l) / 6, y: -l },
                          { x: -l / 6, y: -l },
                        ],
                        d = Object(s.insertPolygonShape)(n, o, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    trapezoid: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: (-2 * l) / 6, y: 0 },
                          { x: o + (2 * l) / 6, y: 0 },
                          { x: o - l / 6, y: -l },
                          { x: l / 6, y: -l },
                        ],
                        d = Object(s.insertPolygonShape)(n, o, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    inv_trapezoid: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: l / 6, y: 0 },
                          { x: o - l / 6, y: 0 },
                          { x: o + (2 * l) / 6, y: -l },
                          { x: (-2 * l) / 6, y: -l },
                        ],
                        d = Object(s.insertPolygonShape)(n, o, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    rect_right_inv_arrow: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: 0, y: 0 },
                          { x: o + l / 2, y: 0 },
                          { x: o, y: -l / 2 },
                          { x: o + l / 2, y: -l },
                          { x: 0, y: -l },
                        ],
                        d = Object(s.insertPolygonShape)(n, o, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    cylinder: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = o / 2,
                        c = l / (2.5 + o / 50),
                        d = r.height + c + t.padding,
                        h =
                          'M 0,' +
                          c +
                          ' a ' +
                          l +
                          ',' +
                          c +
                          ' 0,0,0 ' +
                          o +
                          ' 0 a ' +
                          l +
                          ',' +
                          c +
                          ' 0,0,0 ' +
                          -o +
                          ' 0 l 0,' +
                          d +
                          ' a ' +
                          l +
                          ',' +
                          c +
                          ' 0,0,0 ' +
                          o +
                          ' 0 l 0,' +
                          -d,
                        u = n
                          .attr('label-offset-y', c)
                          .insert('path', ':first-child')
                          .attr('style', t.style)
                          .attr('d', h)
                          .attr(
                            'transform',
                            'translate(' + -o / 2 + ',' + -(d / 2 + c) + ')'
                          );
                      return (
                        Object(s.updateNodeBounds)(t, u),
                        (t.intersect = function (e) {
                          var i = a.default.rect(t, e),
                            n = i.x - t.x;
                          if (
                            0 != l &&
                            (Math.abs(n) < t.width / 2 ||
                              (Math.abs(n) == t.width / 2 &&
                                Math.abs(i.y - t.y) > t.height / 2 - c))
                          ) {
                            var r = c * c * (1 - (n * n) / (l * l));
                            0 != r && (r = Math.sqrt(r)),
                              (r = c - r),
                              e.y - t.y > 0 && (r = -r),
                              (i.y += r);
                          }
                          return i;
                        }),
                        n
                      );
                    },
                    start: function (e, t) {
                      var i = e
                          .insert('g')
                          .attr('class', 'node default')
                          .attr('id', t.domId || t.id),
                        n = i.insert('circle', ':first-child');
                      return (
                        n
                          .attr('class', 'state-start')
                          .attr('r', 7)
                          .attr('width', 14)
                          .attr('height', 14),
                        Object(s.updateNodeBounds)(t, n),
                        (t.intersect = function (e) {
                          return a.default.circle(t, 7, e);
                        }),
                        i
                      );
                    },
                    end: function (e, t) {
                      var i = e
                          .insert('g')
                          .attr('class', 'node default')
                          .attr('id', t.domId || t.id),
                        n = i.insert('circle', ':first-child'),
                        r = i.insert('circle', ':first-child');
                      return (
                        r
                          .attr('class', 'state-start')
                          .attr('r', 7)
                          .attr('width', 14)
                          .attr('height', 14),
                        n
                          .attr('class', 'state-end')
                          .attr('r', 5)
                          .attr('width', 10)
                          .attr('height', 10),
                        Object(s.updateNodeBounds)(t, r),
                        (t.intersect = function (e) {
                          return a.default.circle(t, 7, e);
                        }),
                        i
                      );
                    },
                    note: c.default,
                    subroutine: function (e, t) {
                      var i = Object(s.labelHelper)(e, t, void 0, !0),
                        n = i.shapeSvg,
                        r = i.bbox,
                        o = r.width + t.padding,
                        l = r.height + t.padding,
                        c = [
                          { x: 0, y: 0 },
                          { x: o, y: 0 },
                          { x: o, y: -l },
                          { x: 0, y: -l },
                          { x: 0, y: 0 },
                          { x: -8, y: 0 },
                          { x: o + 8, y: 0 },
                          { x: o + 8, y: -l },
                          { x: -8, y: -l },
                          { x: -8, y: 0 },
                        ],
                        d = Object(s.insertPolygonShape)(n, o, l, c);
                      return (
                        d.attr('style', t.style),
                        Object(s.updateNodeBounds)(t, d),
                        (t.intersect = function (e) {
                          return a.default.polygon(t, c, e);
                        }),
                        n
                      );
                    },
                    fork: h,
                    join: h,
                    class_box: function (e, t) {
                      var i,
                        r = t.padding / 2;
                      i = t.classes ? 'node ' + t.classes : 'node default';
                      var c = e
                          .insert('g')
                          .attr('class', i)
                          .attr('id', t.domId || t.id),
                        h = c.insert('rect', ':first-child'),
                        u = c.insert('line'),
                        g = c.insert('line'),
                        f = 0,
                        p = 4,
                        m = c.insert('g').attr('class', 'label'),
                        _ = 0,
                        b =
                          t.classData.annotations && t.classData.annotations[0],
                        v = t.classData.annotations[0]
                          ? '«' + t.classData.annotations[0] + '»'
                          : '',
                        y = m
                          .node()
                          .appendChild(
                            Object(l.default)(v, t.labelStyle, !0, !0)
                          ),
                        w = y.getBBox();
                      if (Object(o.getConfig)().flowchart.htmlLabels) {
                        var C = y.children[0],
                          S = Object(n.select)(y);
                        (w = C.getBoundingClientRect()),
                          S.attr('width', w.width),
                          S.attr('height', w.height);
                      }
                      t.classData.annotations[0] &&
                        ((p += w.height + 4), (f += w.width));
                      var k = t.classData.id;
                      void 0 !== t.classData.type &&
                        '' !== t.classData.type &&
                        (k += '<' + t.classData.type + '>');
                      var x = m
                        .node()
                        .appendChild(
                          Object(l.default)(k, t.labelStyle, !0, !0)
                        );
                      Object(n.select)(x).attr('class', 'classTitle');
                      var L = x.getBBox();
                      if (Object(o.getConfig)().flowchart.htmlLabels) {
                        var M = x.children[0],
                          D = Object(n.select)(x);
                        (L = M.getBoundingClientRect()),
                          D.attr('width', L.width),
                          D.attr('height', L.height);
                      }
                      (p += L.height + 4), L.width > f && (f = L.width);
                      var N = [];
                      t.classData.members.forEach(function (e) {
                        var i = Object(d.parseMember)(e).displayText,
                          r = m
                            .node()
                            .appendChild(
                              Object(l.default)(i, t.labelStyle, !0, !0)
                            ),
                          s = r.getBBox();
                        if (Object(o.getConfig)().flowchart.htmlLabels) {
                          var a = r.children[0],
                            c = Object(n.select)(r);
                          (s = a.getBoundingClientRect()),
                            c.attr('width', s.width),
                            c.attr('height', s.height);
                        }
                        s.width > f && (f = s.width),
                          (p += s.height + 4),
                          N.push(r);
                      }),
                        (p += 8);
                      var E = [];
                      if (
                        (t.classData.methods.forEach(function (e) {
                          var i = Object(d.parseMember)(e).displayText,
                            r = m
                              .node()
                              .appendChild(
                                Object(l.default)(i, t.labelStyle, !0, !0)
                              ),
                            s = r.getBBox();
                          if (Object(o.getConfig)().flowchart.htmlLabels) {
                            var a = r.children[0],
                              c = Object(n.select)(r);
                            (s = a.getBoundingClientRect()),
                              c.attr('width', s.width),
                              c.attr('height', s.height);
                          }
                          s.width > f && (f = s.width),
                            (p += s.height + 4),
                            E.push(r);
                        }),
                        (p += 8),
                        b)
                      ) {
                        var T = (f - w.width) / 2;
                        Object(n.select)(y).attr(
                          'transform',
                          'translate( ' +
                            ((-1 * f) / 2 + T) +
                            ', ' +
                            (-1 * p) / 2 +
                            ')'
                        ),
                          (_ = w.height + 4);
                      }
                      var I = (f - L.width) / 2;
                      return (
                        Object(n.select)(x).attr(
                          'transform',
                          'translate( ' +
                            ((-1 * f) / 2 + I) +
                            ', ' +
                            ((-1 * p) / 2 + _) +
                            ')'
                        ),
                        (_ += L.height + 4),
                        u
                          .attr('class', 'divider')
                          .attr('x1', -f / 2 - r)
                          .attr('x2', f / 2 + r)
                          .attr('y1', -p / 2 - r + 8 + _)
                          .attr('y2', -p / 2 - r + 8 + _),
                        (_ += 8),
                        N.forEach(function (e) {
                          Object(n.select)(e).attr(
                            'transform',
                            'translate( ' +
                              -f / 2 +
                              ', ' +
                              ((-1 * p) / 2 + _ + 4) +
                              ')'
                          ),
                            (_ += L.height + 4);
                        }),
                        (_ += 8),
                        g
                          .attr('class', 'divider')
                          .attr('x1', -f / 2 - r)
                          .attr('x2', f / 2 + r)
                          .attr('y1', -p / 2 - r + 8 + _)
                          .attr('y2', -p / 2 - r + 8 + _),
                        (_ += 8),
                        E.forEach(function (e) {
                          Object(n.select)(e).attr(
                            'transform',
                            'translate( ' +
                              -f / 2 +
                              ', ' +
                              ((-1 * p) / 2 + _) +
                              ')'
                          ),
                            (_ += L.height + 4);
                        }),
                        h
                          .attr('class', 'outer title-state')
                          .attr('x', -f / 2 - r)
                          .attr('y', -p / 2 - r)
                          .attr('width', f + t.padding)
                          .attr('height', p + t.padding),
                        Object(s.updateNodeBounds)(t, h),
                        (t.intersect = function (e) {
                          return a.default.rect(t, e);
                        }),
                        c
                      );
                    },
                  },
                  g = {},
                  f = function (e, t, i) {
                    var n, r;
                    t.link
                      ? ((n = e
                          .insert('svg:a')
                          .attr('xlink:href', t.link)
                          .attr('target', t.linkTarget || '_blank')),
                        (r = u[t.shape](n, t, i)))
                      : (n = r = u[t.shape](e, t, i)),
                      t.tooltip && r.attr('title', t.tooltip),
                      t.class && r.attr('class', 'node default ' + t.class),
                      (g[t.id] = n),
                      t.haveCallback &&
                        g[t.id].attr(
                          'class',
                          g[t.id].attr('class') + ' clickable'
                        );
                  },
                  p = function (e, t) {
                    g[t.id] = e;
                  },
                  m = function () {
                    g = {};
                  },
                  _ = function (e) {
                    var t = g[e.id];
                    r.log.trace(
                      'Transforming node',
                      e,
                      'translate(' +
                        (e.x - e.width / 2 - 5) +
                        ', ' +
                        (e.y - e.height / 2 - 5) +
                        ')'
                    ),
                      e.clusterNode
                        ? t.attr(
                            'transform',
                            'translate(' +
                              (e.x - e.width / 2 - 8) +
                              ', ' +
                              (e.y - e.height / 2 - 8) +
                              ')'
                          )
                        : t.attr(
                            'transform',
                            'translate(' + e.x + ', ' + e.y + ')'
                          );
                  };
              },
              './src/dagre-wrapper/shapes/note.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = i('./src/dagre-wrapper/shapes/util.js'),
                  r = i('./src/logger.js'),
                  s = i('./src/dagre-wrapper/intersect/index.js');
                t.default = function (e, t) {
                  var i = Object(n.labelHelper)(e, t, 'node ' + t.classes, !0),
                    o = i.shapeSvg,
                    a = i.bbox,
                    l = i.halfPadding;
                  r.log.info('Classes = ', t.classes);
                  var c = o.insert('rect', ':first-child');
                  return (
                    c
                      .attr('rx', t.rx)
                      .attr('ry', t.ry)
                      .attr('x', -a.width / 2 - l)
                      .attr('y', -a.height / 2 - l)
                      .attr('width', a.width + t.padding)
                      .attr('height', a.height + t.padding),
                    Object(n.updateNodeBounds)(t, c),
                    (t.intersect = function (e) {
                      return s.default.rect(t, e);
                    }),
                    o
                  );
                };
              },
              './src/dagre-wrapper/shapes/util.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'labelHelper', function () {
                    return o;
                  }),
                  i.d(t, 'updateNodeBounds', function () {
                    return a;
                  }),
                  i.d(t, 'insertPolygonShape', function () {
                    return l;
                  });
                var n = i('./src/dagre-wrapper/createLabel.js'),
                  r = i('./src/config.js'),
                  s = i('d3'),
                  o = function (e, t, i, o) {
                    var a;
                    a = i || 'node default';
                    var l = e
                        .insert('g')
                        .attr('class', a)
                        .attr('id', t.domId || t.id),
                      c = l
                        .insert('g')
                        .attr('class', 'label')
                        .attr('style', t.labelStyle),
                      d = c
                        .node()
                        .appendChild(
                          Object(n.default)(t.labelText, t.labelStyle, !1, o)
                        ),
                      h = d.getBBox();
                    if (Object(r.getConfig)().flowchart.htmlLabels) {
                      var u = d.children[0],
                        g = Object(s.select)(d);
                      (h = u.getBoundingClientRect()),
                        g.attr('width', h.width),
                        g.attr('height', h.height);
                    }
                    var f = t.padding / 2;
                    return (
                      c.attr(
                        'transform',
                        'translate(' + -h.width / 2 + ', ' + -h.height / 2 + ')'
                      ),
                      { shapeSvg: l, bbox: h, halfPadding: f, label: c }
                    );
                  },
                  a = function (e, t) {
                    var i = t.node().getBBox();
                    (e.width = i.width), (e.height = i.height);
                  };
                function l(e, t, i, n) {
                  return e
                    .insert('polygon', ':first-child')
                    .attr(
                      'points',
                      n
                        .map(function (e) {
                          return e.x + ',' + e.y;
                        })
                        .join(' ')
                    )
                    .attr('class', 'label-container')
                    .attr(
                      'transform',
                      'translate(' + -t / 2 + ',' + i / 2 + ')'
                    );
                }
              },
              './src/defaultConfig.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = {
                  theme: 'default',
                  themeVariables: i(
                    './src/themes/index.js'
                  ).default.default.getThemeVariables(),
                  themeCSS: void 0,
                  maxTextSize: 5e4,
                  fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
                  logLevel: 5,
                  securityLevel: 'strict',
                  startOnLoad: !0,
                  arrowMarkerAbsolute: !1,
                  secure: [
                    'secure',
                    'securityLevel',
                    'startOnLoad',
                    'maxTextSize',
                  ],
                  deterministicIds: !1,
                  deterministicIDSeed: void 0,
                  flowchart: {
                    diagramPadding: 8,
                    htmlLabels: !0,
                    nodeSpacing: 50,
                    rankSpacing: 50,
                    curve: 'basis',
                    padding: 15,
                    useMaxWidth: !0,
                  },
                  sequence: {
                    activationWidth: 10,
                    diagramMarginX: 50,
                    diagramMarginY: 10,
                    actorMargin: 50,
                    width: 150,
                    height: 65,
                    boxMargin: 10,
                    boxTextMargin: 5,
                    noteMargin: 10,
                    messageMargin: 35,
                    messageAlign: 'center',
                    mirrorActors: !0,
                    bottomMarginAdj: 1,
                    useMaxWidth: !0,
                    rightAngles: !1,
                    showSequenceNumbers: !1,
                    actorFontSize: 14,
                    actorFontFamily: '"Open-Sans", "sans-serif"',
                    actorFontWeight: 400,
                    noteFontSize: 14,
                    noteFontFamily:
                      '"trebuchet ms", verdana, arial, sans-serif',
                    noteFontWeight: 400,
                    noteAlign: 'center',
                    messageFontSize: 16,
                    messageFontFamily:
                      '"trebuchet ms", verdana, arial, sans-serif',
                    messageFontWeight: 400,
                    wrap: !1,
                    wrapPadding: 10,
                    labelBoxWidth: 50,
                    labelBoxHeight: 20,
                    messageFont: function () {
                      return {
                        fontFamily: this.messageFontFamily,
                        fontSize: this.messageFontSize,
                        fontWeight: this.messageFontWeight,
                      };
                    },
                    noteFont: function () {
                      return {
                        fontFamily: this.noteFontFamily,
                        fontSize: this.noteFontSize,
                        fontWeight: this.noteFontWeight,
                      };
                    },
                    actorFont: function () {
                      return {
                        fontFamily: this.actorFontFamily,
                        fontSize: this.actorFontSize,
                        fontWeight: this.actorFontWeight,
                      };
                    },
                  },
                  gantt: {
                    titleTopMargin: 25,
                    barHeight: 20,
                    barGap: 4,
                    topPadding: 50,
                    rightPadding: 75,
                    leftPadding: 75,
                    gridLineStartPadding: 35,
                    fontSize: 11,
                    sectionFontSize: 11,
                    numberSectionStyles: 4,
                    axisFormat: '%Y-%m-%d',
                    useMaxWidth: !0,
                    topAxis: !1,
                    useWidth: void 0,
                  },
                  journey: {
                    diagramMarginX: 50,
                    diagramMarginY: 10,
                    leftMargin: 150,
                    width: 150,
                    height: 50,
                    boxMargin: 10,
                    boxTextMargin: 5,
                    noteMargin: 10,
                    messageMargin: 35,
                    messageAlign: 'center',
                    bottomMarginAdj: 1,
                    useMaxWidth: !0,
                    rightAngles: !1,
                    taskFontSize: 14,
                    taskFontFamily: '"Open-Sans", "sans-serif"',
                    taskMargin: 50,
                    activationWidth: 10,
                    textPlacement: 'fo',
                    actorColours: [
                      '#8FBC8F',
                      '#7CFC00',
                      '#00FFFF',
                      '#20B2AA',
                      '#B0E0E6',
                      '#FFFFE0',
                    ],
                    sectionFills: [
                      '#191970',
                      '#8B008B',
                      '#4B0082',
                      '#2F4F4F',
                      '#800000',
                      '#8B4513',
                      '#00008B',
                    ],
                    sectionColours: ['#fff'],
                  },
                  class: { arrowMarkerAbsolute: !1, useMaxWidth: !0 },
                  git: {
                    arrowMarkerAbsolute: !1,
                    useWidth: void 0,
                    useMaxWidth: !0,
                  },
                  state: {
                    dividerMargin: 10,
                    sizeUnit: 5,
                    padding: 8,
                    textHeight: 10,
                    titleShift: -15,
                    noteMargin: 10,
                    forkWidth: 70,
                    forkHeight: 7,
                    miniPadding: 2,
                    fontSizeFactor: 5.02,
                    fontSize: 24,
                    labelHeight: 16,
                    edgeLengthFactor: '20',
                    compositTitleSize: 35,
                    radius: 5,
                    useMaxWidth: !0,
                  },
                  er: {
                    diagramPadding: 20,
                    layoutDirection: 'TB',
                    minEntityWidth: 100,
                    minEntityHeight: 75,
                    entityPadding: 15,
                    stroke: 'gray',
                    fill: 'honeydew',
                    fontSize: 12,
                    useMaxWidth: !0,
                  },
                  pie: { useWidth: void 0, useMaxWidth: !0 },
                  requirement: {
                    useWidth: void 0,
                    useMaxWidth: !0,
                    rect_fill: '#f9f9f9',
                    text_color: '#333',
                    rect_border_size: '0.5px',
                    rect_border_color: '#bbb',
                    rect_min_width: 200,
                    rect_min_height: 200,
                    fontSize: 14,
                    rect_padding: 10,
                    line_height: 20,
                  },
                };
                (n.class.arrowMarkerAbsolute = n.arrowMarkerAbsolute),
                  (n.git.arrowMarkerAbsolute = n.arrowMarkerAbsolute),
                  (t.default = n);
              },
              './src/diagrams/class/classDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return f;
                  }),
                  i.d(t, 'addClass', function () {
                    return m;
                  }),
                  i.d(t, 'lookUpDomId', function () {
                    return _;
                  }),
                  i.d(t, 'clear', function () {
                    return b;
                  }),
                  i.d(t, 'getClass', function () {
                    return v;
                  }),
                  i.d(t, 'getClasses', function () {
                    return y;
                  }),
                  i.d(t, 'getRelations', function () {
                    return w;
                  }),
                  i.d(t, 'addRelation', function () {
                    return C;
                  }),
                  i.d(t, 'addAnnotation', function () {
                    return S;
                  }),
                  i.d(t, 'addMember', function () {
                    return k;
                  }),
                  i.d(t, 'addMembers', function () {
                    return x;
                  }),
                  i.d(t, 'cleanupLabel', function () {
                    return L;
                  }),
                  i.d(t, 'setCssClass', function () {
                    return M;
                  }),
                  i.d(t, 'setLink', function () {
                    return D;
                  }),
                  i.d(t, 'setClickEvent', function () {
                    return N;
                  }),
                  i.d(t, 'bindFunctions', function () {
                    return T;
                  }),
                  i.d(t, 'lineType', function () {
                    return I;
                  }),
                  i.d(t, 'relationType', function () {
                    return O;
                  });
                var n = i('d3'),
                  r = i('./src/logger.js'),
                  s = i('./src/config.js'),
                  o = i('./src/diagrams/common/common.js'),
                  a = i('./src/utils.js'),
                  l = i('./src/mermaidAPI.js');
                var c = 'classid-',
                  d = [],
                  h = {},
                  u = 0,
                  g = [],
                  f = function (e, t, i) {
                    l.default.parseDirective(this, e, t, i);
                  },
                  p = function (e) {
                    var t = '',
                      i = e;
                    if (e.indexOf('~') > 0) {
                      var n = e.split('~');
                      (i = n[0]), (t = n[1]);
                    }
                    return { className: i, type: t };
                  },
                  m = function (e) {
                    var t = p(e);
                    void 0 === h[t.className] &&
                      ((h[t.className] = {
                        id: t.className,
                        type: t.type,
                        cssClasses: [],
                        methods: [],
                        members: [],
                        annotations: [],
                        domId: c + t.className + '-' + u,
                      }),
                      u++);
                  },
                  _ = function (e) {
                    for (var t = Object.keys(h), i = 0; i < t.length; i++)
                      if (h[t[i]].id === e) return h[t[i]].domId;
                  },
                  b = function () {
                    (d = []), (h = {}), (g = []).push(A);
                  },
                  v = function (e) {
                    return h[e];
                  },
                  y = function () {
                    return h;
                  },
                  w = function () {
                    return d;
                  },
                  C = function (e) {
                    r.log.debug('Adding relation: ' + JSON.stringify(e)),
                      m(e.id1),
                      m(e.id2),
                      (e.id1 = p(e.id1).className),
                      (e.id2 = p(e.id2).className),
                      d.push(e);
                  },
                  S = function (e, t) {
                    var i = p(e).className;
                    h[i].annotations.push(t);
                  },
                  k = function (e, t) {
                    var i = p(e).className,
                      n = h[i];
                    if ('string' == typeof t) {
                      var r = t.trim();
                      r.startsWith('<<') && r.endsWith('>>')
                        ? n.annotations.push(r.substring(2, r.length - 2))
                        : r.indexOf(')') > 0
                        ? n.methods.push(r)
                        : r && n.members.push(r);
                    }
                  },
                  x = function (e, t) {
                    Array.isArray(t) &&
                      (t.reverse(),
                      t.forEach(function (t) {
                        return k(e, t);
                      }));
                  },
                  L = function (e) {
                    return ':' === e.substring(0, 1)
                      ? e.substr(1).trim()
                      : e.trim();
                  },
                  M = function (e, t) {
                    e.split(',').forEach(function (e) {
                      var i = e;
                      e[0].match(/\d/) && (i = c + i),
                        void 0 !== h[i] && h[i].cssClasses.push(t);
                    });
                  },
                  D = function (e, t, i) {
                    var n = s.getConfig();
                    e.split(',').forEach(function (e) {
                      var r = e;
                      e[0].match(/\d/) && (r = c + r),
                        void 0 !== h[r] &&
                          ((h[r].link = a.default.formatUrl(t, n)),
                          (h[r].linkTarget =
                            'string' == typeof i ? i : '_blank'));
                    }),
                      M(e, 'clickable');
                  },
                  N = function (e, t, i) {
                    e.split(',').forEach(function (e) {
                      E(e, t, i), (h[e].haveCallback = !0);
                    }),
                      M(e, 'clickable');
                  },
                  E = function (e, t, i) {
                    var n = s.getConfig(),
                      r = e,
                      o = _(r);
                    if (
                      'loose' === n.securityLevel &&
                      void 0 !== t &&
                      void 0 !== h[r]
                    ) {
                      var l = [];
                      if ('string' == typeof i) {
                        l = i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
                        for (var c = 0; c < l.length; c++) {
                          var d = l[c].trim();
                          '"' === d.charAt(0) &&
                            '"' === d.charAt(d.length - 1) &&
                            (d = d.substr(1, d.length - 2)),
                            (l[c] = d);
                        }
                      }
                      0 === l.length && l.push(o),
                        g.push(function () {
                          var e = document.querySelector(
                            '[id="'.concat(o, '"]')
                          );
                          null !== e &&
                            e.addEventListener(
                              'click',
                              function () {
                                var e;
                                a.default.runFunc.apply(
                                  a.default,
                                  [t].concat(
                                    (function (e) {
                                      if (Array.isArray(e)) {
                                        for (
                                          var t = 0, i = new Array(e.length);
                                          t < e.length;
                                          t++
                                        )
                                          i[t] = e[t];
                                        return i;
                                      }
                                    })((e = l)) ||
                                      (function (e) {
                                        if (
                                          Symbol.iterator in Object(e) ||
                                          '[object Arguments]' ===
                                            Object.prototype.toString.call(e)
                                        )
                                          return Array.from(e);
                                      })(e) ||
                                      (function () {
                                        throw new TypeError(
                                          'Invalid attempt to spread non-iterable instance'
                                        );
                                      })()
                                  )
                                );
                              },
                              !1
                            );
                        });
                    }
                  },
                  T = function (e) {
                    g.forEach(function (t) {
                      t(e);
                    });
                  },
                  I = { LINE: 0, DOTTED_LINE: 1 },
                  O = {
                    AGGREGATION: 0,
                    EXTENSION: 1,
                    COMPOSITION: 2,
                    DEPENDENCY: 3,
                  },
                  A = function (e) {
                    var t = Object(n.select)('.mermaidTooltip');
                    null === (t._groups || t)[0][0] &&
                      (t = Object(n.select)('body')
                        .append('div')
                        .attr('class', 'mermaidTooltip')
                        .style('opacity', 0)),
                      Object(n.select)(e)
                        .select('svg')
                        .selectAll('g.node')
                        .on('mouseover', function () {
                          var e = Object(n.select)(this);
                          if (null !== e.attr('title')) {
                            var i = this.getBoundingClientRect();
                            t.transition().duration(200).style('opacity', '.9'),
                              t
                                .html(e.attr('title'))
                                .style(
                                  'left',
                                  window.scrollX +
                                    i.left +
                                    (i.right - i.left) / 2 +
                                    'px'
                                )
                                .style(
                                  'top',
                                  window.scrollY +
                                    i.top -
                                    14 +
                                    document.body.scrollTop +
                                    'px'
                                ),
                              e.classed('hover', !0);
                          }
                        })
                        .on('mouseout', function () {
                          t.transition().duration(500).style('opacity', 0),
                            Object(n.select)(this).classed('hover', !1);
                        });
                  };
                g.push(A),
                  (t.default = {
                    parseDirective: f,
                    getConfig: function () {
                      return s.getConfig().class;
                    },
                    addClass: m,
                    bindFunctions: T,
                    clear: b,
                    getClass: v,
                    getClasses: y,
                    addAnnotation: S,
                    getRelations: w,
                    addRelation: C,
                    addMember: k,
                    addMembers: x,
                    cleanupLabel: L,
                    lineType: I,
                    relationType: O,
                    setClickEvent: N,
                    setCssClass: M,
                    setLink: D,
                    setTooltip: function (e, t) {
                      var i = s.getConfig();
                      e.split(',').forEach(function (e) {
                        void 0 !== t &&
                          (h[e].tooltip = o.default.sanitizeText(t, i));
                      });
                    },
                    lookUpDomId: _,
                  });
              },
              './src/diagrams/class/classRenderer-v2.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'addClasses', function () {
                    return b;
                  }),
                  i.d(t, 'addRelations', function () {
                    return v;
                  }),
                  i.d(t, 'setConf', function () {
                    return w;
                  }),
                  i.d(t, 'drawOld', function () {
                    return C;
                  }),
                  i.d(t, 'draw', function () {
                    return S;
                  });
                var n = i('d3'),
                  r = i('dagre'),
                  s = i.n(r),
                  o = i('graphlib'),
                  a = i.n(o),
                  l = i('./src/logger.js'),
                  c = i('./src/diagrams/class/classDb.js'),
                  d = i('./src/diagrams/class/parser/classDiagram.jison'),
                  h = i('./src/diagrams/class/svgDraw.js'),
                  u = i('./src/config.js'),
                  g = i('./src/dagre-wrapper/index.js'),
                  f = i('./src/utils.js'),
                  p = i('./src/diagrams/common/common.js');
                d.parser.yy = c.default;
                var m = {},
                  _ = { dividerMargin: 10, padding: 5, textHeight: 10 },
                  b = function (e, t) {
                    var i = Object.keys(e);
                    l.log.info('keys:', i),
                      l.log.info(e),
                      i.forEach(function (i) {
                        var n = e[i],
                          r = '';
                        n.cssClasses.length > 0 &&
                          (r = r + ' ' + n.cssClasses.join(' '));
                        var s = { labelStyle: '' },
                          o = void 0 !== n.text ? n.text : n.id,
                          a = '';
                        switch (n.type) {
                          case 'class':
                            a = 'class_box';
                            break;
                          default:
                            a = 'class_box';
                        }
                        t.setNode(n.id, {
                          labelStyle: s.labelStyle,
                          shape: a,
                          labelText: o,
                          classData: n,
                          rx: 0,
                          ry: 0,
                          class: r,
                          style: s.style,
                          id: n.id,
                          domId: n.domId,
                          haveCallback: n.haveCallback,
                          link: n.link,
                          width: 'group' === n.type ? 500 : void 0,
                          type: n.type,
                          padding: Object(u.getConfig)().flowchart.padding,
                        }),
                          l.log.info('setNode', {
                            labelStyle: s.labelStyle,
                            shape: a,
                            labelText: o,
                            rx: 0,
                            ry: 0,
                            class: r,
                            style: s.style,
                            id: n.id,
                            width: 'group' === n.type ? 500 : void 0,
                            type: n.type,
                            padding: Object(u.getConfig)().flowchart.padding,
                          });
                      });
                  },
                  v = function (e, t) {
                    var i = 0;
                    e.forEach(function (r) {
                      i++;
                      var s = { classes: 'relation' };
                      (s.pattern =
                        1 == r.relation.lineType ? 'dashed' : 'solid'),
                        (s.id = 'id' + i),
                        'arrow_open' === r.type
                          ? (s.arrowhead = 'none')
                          : (s.arrowhead = 'normal'),
                        l.log.info(s, r),
                        (s.startLabelRight =
                          'none' === r.relationTitle1 ? '' : r.relationTitle1),
                        (s.endLabelLeft =
                          'none' === r.relationTitle2 ? '' : r.relationTitle2),
                        (s.arrowTypeStart = k(r.relation.type1)),
                        (s.arrowTypeEnd = k(r.relation.type2));
                      var o = '',
                        a = '';
                      if (void 0 !== r.style) {
                        var c = Object(f.getStylesFromArray)(r.style);
                        (o = c.style), (a = c.labelStyle);
                      } else o = 'fill:none';
                      (s.style = o),
                        (s.labelStyle = a),
                        void 0 !== r.interpolate
                          ? (s.curve = Object(f.interpolateToCurve)(
                              r.interpolate,
                              n.curveLinear
                            ))
                          : void 0 !== e.defaultInterpolate
                          ? (s.curve = Object(f.interpolateToCurve)(
                              e.defaultInterpolate,
                              n.curveLinear
                            ))
                          : (s.curve = Object(f.interpolateToCurve)(
                              _.curve,
                              n.curveLinear
                            )),
                        (r.text = r.title),
                        void 0 === r.text
                          ? void 0 !== r.style &&
                            (s.arrowheadStyle = 'fill: #333')
                          : ((s.arrowheadStyle = 'fill: #333'),
                            (s.labelpos = 'c'),
                            Object(u.getConfig)().flowchart.htmlLabels,
                            (s.labelType = 'text'),
                            (s.label = r.text.replace(
                              p.default.lineBreakRegex,
                              '\n'
                            )),
                            void 0 === r.style &&
                              (s.style =
                                s.style ||
                                'stroke: #333; stroke-width: 1.5px;fill:none'),
                            (s.labelStyle = s.labelStyle.replace(
                              'color:',
                              'fill:'
                            ))),
                        t.setEdge(r.id1, r.id2, s, i);
                    });
                  },
                  y = function (e) {
                    for (var t = Object.keys(m), i = 0; i < t.length; i++)
                      if (m[t[i]].label === e) return t[i];
                  },
                  w = function (e) {
                    Object.keys(e).forEach(function (t) {
                      _[t] = e[t];
                    });
                  },
                  C = function (e, t) {
                    (m = {}),
                      d.parser.yy.clear(),
                      d.parser.parse(e),
                      l.log.info('Rendering diagram ' + e);
                    var i = Object(n.select)("[id='".concat(t, "']")),
                      r = new a.a.Graph({ multigraph: !0 });
                    r.setGraph({ isMultiGraph: !0 }),
                      r.setDefaultEdgeLabel(function () {
                        return {};
                      });
                    var o = c.default.getClasses();
                    l.log.info('classes:'), l.log.info(o);
                    for (var u = Object.keys(o), g = 0; g < u.length; g++) {
                      var p = o[u[g]],
                        b = h.default.drawClass(i, p, _);
                      (m[b.id] = b),
                        r.setNode(b.id, b),
                        l.log.info('Org height: ' + b.height);
                    }
                    var v = c.default.getRelations();
                    l.log.info('relations:', v),
                      v.forEach(function (e) {
                        l.log.info(
                          'tjoho' + y(e.id1) + y(e.id2) + JSON.stringify(e)
                        ),
                          r.setEdge(
                            y(e.id1),
                            y(e.id2),
                            { relation: e },
                            e.title || 'DEFAULT'
                          );
                      }),
                      s.a.layout(r),
                      r.nodes().forEach(function (e) {
                        void 0 !== e &&
                          void 0 !== r.node(e) &&
                          (l.log.debug(
                            'Node ' + e + ': ' + JSON.stringify(r.node(e))
                          ),
                          Object(n.select)('#' + Object(c.lookUpDomId)(e)).attr(
                            'transform',
                            'translate(' +
                              (r.node(e).x - r.node(e).width / 2) +
                              ',' +
                              (r.node(e).y - r.node(e).height / 2) +
                              ' )'
                          ));
                      }),
                      r.edges().forEach(function (e) {
                        void 0 !== e &&
                          void 0 !== r.edge(e) &&
                          (l.log.debug(
                            'Edge ' +
                              e.v +
                              ' -> ' +
                              e.w +
                              ': ' +
                              JSON.stringify(r.edge(e))
                          ),
                          h.default.drawEdge(
                            i,
                            r.edge(e),
                            r.edge(e).relation,
                            _
                          ));
                      });
                    var w = i.node().getBBox(),
                      C = w.width + 40,
                      S = w.height + 40;
                    Object(f.configureSvgSize)(i, S, C, _.useMaxWidth);
                    var k = ''
                      .concat(w.x - 20, ' ')
                      .concat(w.y - 20, ' ')
                      .concat(C, ' ')
                      .concat(S);
                    l.log.debug('viewBox '.concat(k)), i.attr('viewBox', k);
                  },
                  S = function (e, t) {
                    l.log.info('Drawing class'),
                      c.default.clear(),
                      d.parser.parse(e);
                    var i = Object(u.getConfig)().flowchart;
                    l.log.info('config:', i);
                    var r = i.nodeSpacing || 50,
                      s = i.rankSpacing || 50,
                      o = new a.a.Graph({ multigraph: !0, compound: !0 })
                        .setGraph({
                          rankdir: 'TD',
                          nodesep: r,
                          ranksep: s,
                          marginx: 8,
                          marginy: 8,
                        })
                        .setDefaultEdgeLabel(function () {
                          return {};
                        }),
                      h = c.default.getClasses(),
                      p = c.default.getRelations();
                    l.log.info(p), b(h, o, t), v(p, o);
                    var m = Object(n.select)('[id="'.concat(t, '"]'));
                    m.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');
                    var _ = Object(n.select)('#' + t + ' g');
                    Object(g.render)(
                      _,
                      o,
                      ['aggregation', 'extension', 'composition', 'dependency'],
                      'classDiagram',
                      t
                    );
                    var y = m.node().getBBox(),
                      w = y.width + 16,
                      C = y.height + 16;
                    if (
                      (l.log.debug(
                        'new ViewBox 0 0 '.concat(w, ' ').concat(C),
                        'translate('
                          .concat(8 - o._label.marginx, ', ')
                          .concat(8 - o._label.marginy, ')')
                      ),
                      Object(f.configureSvgSize)(m, C, w, i.useMaxWidth),
                      m.attr('viewBox', '0 0 '.concat(w, ' ').concat(C)),
                      m
                        .select('g')
                        .attr(
                          'transform',
                          'translate('
                            .concat(8 - o._label.marginx, ', ')
                            .concat(8 - y.y, ')')
                        ),
                      !i.htmlLabels)
                    )
                      for (
                        var S = document.querySelectorAll(
                            '[id="' + t + '"] .edgeLabel .label'
                          ),
                          k = 0;
                        k < S.length;
                        k++
                      ) {
                        var x = S[k],
                          L = x.getBBox(),
                          M = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'rect'
                          );
                        M.setAttribute('rx', 0),
                          M.setAttribute('ry', 0),
                          M.setAttribute('width', L.width),
                          M.setAttribute('height', L.height),
                          M.setAttribute('style', 'fill:#e8e8e8;'),
                          x.insertBefore(M, x.firstChild);
                      }
                  };
                function k(e) {
                  var t;
                  switch (e) {
                    case 0:
                      t = 'aggregation';
                      break;
                    case 1:
                      t = 'extension';
                      break;
                    case 2:
                      t = 'composition';
                      break;
                    case 3:
                      t = 'dependency';
                      break;
                    default:
                      t = 'none';
                  }
                  return t;
                }
                t.default = { setConf: w, draw: S };
              },
              './src/diagrams/class/classRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return m;
                  }),
                  i.d(t, 'draw', function () {
                    return _;
                  });
                var n = i('d3'),
                  r = i('dagre'),
                  s = i.n(r),
                  o = i('graphlib'),
                  a = i.n(o),
                  l = i('./src/logger.js'),
                  c = i('./src/diagrams/class/classDb.js'),
                  d = i('./src/diagrams/class/parser/classDiagram.jison'),
                  h = i('./src/diagrams/class/svgDraw.js'),
                  u = i('./src/utils.js');
                d.parser.yy = c.default;
                var g = {},
                  f = { dividerMargin: 10, padding: 5, textHeight: 10 },
                  p = function (e) {
                    for (var t = Object.keys(g), i = 0; i < t.length; i++)
                      if (g[t[i]].label === e) return t[i];
                  },
                  m = function (e) {
                    Object.keys(e).forEach(function (t) {
                      f[t] = e[t];
                    });
                  },
                  _ = function (e, t) {
                    (g = {}),
                      d.parser.yy.clear(),
                      d.parser.parse(e),
                      l.log.info('Rendering diagram ' + e);
                    var i,
                      r = Object(n.select)("[id='".concat(t, "']"));
                    r.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink'),
                      (i = r)
                        .append('defs')
                        .append('marker')
                        .attr('id', 'extensionStart')
                        .attr('class', 'extension')
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 1,7 L18,13 V 1 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'extensionEnd')
                        .attr('refX', 19)
                        .attr('refY', 7)
                        .attr('markerWidth', 20)
                        .attr('markerHeight', 28)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 1,1 V 13 L18,7 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'compositionStart')
                        .attr('class', 'extension')
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'compositionEnd')
                        .attr('refX', 19)
                        .attr('refY', 7)
                        .attr('markerWidth', 20)
                        .attr('markerHeight', 28)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'aggregationStart')
                        .attr('class', 'extension')
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'aggregationEnd')
                        .attr('refX', 19)
                        .attr('refY', 7)
                        .attr('markerWidth', 20)
                        .attr('markerHeight', 28)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'dependencyStart')
                        .attr('class', 'extension')
                        .attr('refX', 0)
                        .attr('refY', 7)
                        .attr('markerWidth', 190)
                        .attr('markerHeight', 240)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z'),
                      i
                        .append('defs')
                        .append('marker')
                        .attr('id', 'dependencyEnd')
                        .attr('refX', 19)
                        .attr('refY', 7)
                        .attr('markerWidth', 20)
                        .attr('markerHeight', 28)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');
                    var o = new a.a.Graph({ multigraph: !0 });
                    o.setGraph({ isMultiGraph: !0 }),
                      o.setDefaultEdgeLabel(function () {
                        return {};
                      });
                    for (
                      var m = c.default.getClasses(), _ = Object.keys(m), b = 0;
                      b < _.length;
                      b++
                    ) {
                      var v = m[_[b]],
                        y = h.default.drawClass(r, v, f);
                      (g[y.id] = y),
                        o.setNode(y.id, y),
                        l.log.info('Org height: ' + y.height);
                    }
                    c.default.getRelations().forEach(function (e) {
                      l.log.info(
                        'tjoho' + p(e.id1) + p(e.id2) + JSON.stringify(e)
                      ),
                        o.setEdge(
                          p(e.id1),
                          p(e.id2),
                          { relation: e },
                          e.title || 'DEFAULT'
                        );
                    }),
                      s.a.layout(o),
                      o.nodes().forEach(function (e) {
                        void 0 !== e &&
                          void 0 !== o.node(e) &&
                          (l.log.debug(
                            'Node ' + e + ': ' + JSON.stringify(o.node(e))
                          ),
                          Object(n.select)('#' + Object(c.lookUpDomId)(e)).attr(
                            'transform',
                            'translate(' +
                              (o.node(e).x - o.node(e).width / 2) +
                              ',' +
                              (o.node(e).y - o.node(e).height / 2) +
                              ' )'
                          ));
                      }),
                      o.edges().forEach(function (e) {
                        void 0 !== e &&
                          void 0 !== o.edge(e) &&
                          (l.log.debug(
                            'Edge ' +
                              e.v +
                              ' -> ' +
                              e.w +
                              ': ' +
                              JSON.stringify(o.edge(e))
                          ),
                          h.default.drawEdge(
                            r,
                            o.edge(e),
                            o.edge(e).relation,
                            f
                          ));
                      });
                    var w = r.node().getBBox(),
                      C = w.width + 40,
                      S = w.height + 40;
                    Object(u.configureSvgSize)(r, S, C, f.useMaxWidth);
                    var k = ''
                      .concat(w.x - 20, ' ')
                      .concat(w.y - 20, ' ')
                      .concat(C, ' ')
                      .concat(S);
                    l.log.debug('viewBox '.concat(k)), r.attr('viewBox', k);
                  };
                t.default = { setConf: m, draw: _ };
              },
              './src/diagrams/class/parser/classDiagram.jison': function (
                e,
                t,
                i
              ) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 7],
                      i = [1, 6],
                      n = [1, 14],
                      r = [1, 25],
                      s = [1, 28],
                      o = [1, 26],
                      a = [1, 27],
                      l = [1, 29],
                      c = [1, 30],
                      d = [1, 31],
                      h = [1, 32],
                      u = [1, 35],
                      g = [1, 36],
                      f = [1, 37],
                      p = [1, 38],
                      m = [10, 19],
                      _ = [1, 50],
                      b = [1, 51],
                      v = [1, 52],
                      y = [1, 53],
                      w = [1, 54],
                      C = [1, 55],
                      S = [
                        10,
                        19,
                        26,
                        33,
                        34,
                        42,
                        45,
                        46,
                        47,
                        48,
                        49,
                        50,
                        55,
                        57,
                      ],
                      k = [
                        10,
                        19,
                        24,
                        26,
                        33,
                        34,
                        38,
                        42,
                        45,
                        46,
                        47,
                        48,
                        49,
                        50,
                        55,
                        57,
                        72,
                        73,
                        74,
                        75,
                      ],
                      x = [10, 13, 17, 19],
                      L = [42, 72, 73, 74, 75],
                      M = [42, 49, 50, 72, 73, 74, 75],
                      D = [42, 45, 46, 47, 48, 72, 73, 74, 75],
                      N = [10, 19, 26],
                      E = [1, 87],
                      T = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          mermaidDoc: 4,
                          directive: 5,
                          graphConfig: 6,
                          openDirective: 7,
                          typeDirective: 8,
                          closeDirective: 9,
                          NEWLINE: 10,
                          ':': 11,
                          argDirective: 12,
                          open_directive: 13,
                          type_directive: 14,
                          arg_directive: 15,
                          close_directive: 16,
                          CLASS_DIAGRAM: 17,
                          statements: 18,
                          EOF: 19,
                          statement: 20,
                          className: 21,
                          alphaNumToken: 22,
                          classLiteralName: 23,
                          GENERICTYPE: 24,
                          relationStatement: 25,
                          LABEL: 26,
                          classStatement: 27,
                          methodStatement: 28,
                          annotationStatement: 29,
                          clickStatement: 30,
                          cssClassStatement: 31,
                          CLASS: 32,
                          STYLE_SEPARATOR: 33,
                          STRUCT_START: 34,
                          members: 35,
                          STRUCT_STOP: 36,
                          ANNOTATION_START: 37,
                          ANNOTATION_END: 38,
                          MEMBER: 39,
                          SEPARATOR: 40,
                          relation: 41,
                          STR: 42,
                          relationType: 43,
                          lineType: 44,
                          AGGREGATION: 45,
                          EXTENSION: 46,
                          COMPOSITION: 47,
                          DEPENDENCY: 48,
                          LINE: 49,
                          DOTTED_LINE: 50,
                          CALLBACK: 51,
                          LINK: 52,
                          LINK_TARGET: 53,
                          CLICK: 54,
                          CALLBACK_NAME: 55,
                          CALLBACK_ARGS: 56,
                          HREF: 57,
                          CSSCLASS: 58,
                          commentToken: 59,
                          textToken: 60,
                          graphCodeTokens: 61,
                          textNoTagsToken: 62,
                          TAGSTART: 63,
                          TAGEND: 64,
                          '==': 65,
                          '--': 66,
                          PCT: 67,
                          DEFAULT: 68,
                          SPACE: 69,
                          MINUS: 70,
                          keywords: 71,
                          UNICODE_TEXT: 72,
                          NUM: 73,
                          ALPHA: 74,
                          BQUOTE_STR: 75,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          10: 'NEWLINE',
                          11: ':',
                          13: 'open_directive',
                          14: 'type_directive',
                          15: 'arg_directive',
                          16: 'close_directive',
                          17: 'CLASS_DIAGRAM',
                          19: 'EOF',
                          24: 'GENERICTYPE',
                          26: 'LABEL',
                          32: 'CLASS',
                          33: 'STYLE_SEPARATOR',
                          34: 'STRUCT_START',
                          36: 'STRUCT_STOP',
                          37: 'ANNOTATION_START',
                          38: 'ANNOTATION_END',
                          39: 'MEMBER',
                          40: 'SEPARATOR',
                          42: 'STR',
                          45: 'AGGREGATION',
                          46: 'EXTENSION',
                          47: 'COMPOSITION',
                          48: 'DEPENDENCY',
                          49: 'LINE',
                          50: 'DOTTED_LINE',
                          51: 'CALLBACK',
                          52: 'LINK',
                          53: 'LINK_TARGET',
                          54: 'CLICK',
                          55: 'CALLBACK_NAME',
                          56: 'CALLBACK_ARGS',
                          57: 'HREF',
                          58: 'CSSCLASS',
                          61: 'graphCodeTokens',
                          63: 'TAGSTART',
                          64: 'TAGEND',
                          65: '==',
                          66: '--',
                          67: 'PCT',
                          68: 'DEFAULT',
                          69: 'SPACE',
                          70: 'MINUS',
                          71: 'keywords',
                          72: 'UNICODE_TEXT',
                          73: 'NUM',
                          74: 'ALPHA',
                          75: 'BQUOTE_STR',
                        },
                        productions_: [
                          0,
                          [3, 1],
                          [3, 2],
                          [4, 1],
                          [5, 4],
                          [5, 6],
                          [7, 1],
                          [8, 1],
                          [12, 1],
                          [9, 1],
                          [6, 4],
                          [18, 1],
                          [18, 2],
                          [18, 3],
                          [21, 1],
                          [21, 1],
                          [21, 2],
                          [21, 2],
                          [21, 2],
                          [20, 1],
                          [20, 2],
                          [20, 1],
                          [20, 1],
                          [20, 1],
                          [20, 1],
                          [20, 1],
                          [20, 1],
                          [27, 2],
                          [27, 4],
                          [27, 5],
                          [27, 7],
                          [29, 4],
                          [35, 1],
                          [35, 2],
                          [28, 1],
                          [28, 2],
                          [28, 1],
                          [28, 1],
                          [25, 3],
                          [25, 4],
                          [25, 4],
                          [25, 5],
                          [41, 3],
                          [41, 2],
                          [41, 2],
                          [41, 1],
                          [43, 1],
                          [43, 1],
                          [43, 1],
                          [43, 1],
                          [44, 1],
                          [44, 1],
                          [30, 3],
                          [30, 4],
                          [30, 3],
                          [30, 4],
                          [30, 4],
                          [30, 5],
                          [30, 3],
                          [30, 4],
                          [30, 4],
                          [30, 5],
                          [30, 3],
                          [30, 4],
                          [30, 4],
                          [30, 5],
                          [31, 3],
                          [59, 1],
                          [59, 1],
                          [60, 1],
                          [60, 1],
                          [60, 1],
                          [60, 1],
                          [60, 1],
                          [60, 1],
                          [60, 1],
                          [62, 1],
                          [62, 1],
                          [62, 1],
                          [62, 1],
                          [22, 1],
                          [22, 1],
                          [22, 1],
                          [23, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 6:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 7:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 8:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 9:
                              n.parseDirective(
                                '}%%',
                                'close_directive',
                                'class'
                              );
                              break;
                            case 14:
                            case 15:
                              this.$ = s[a];
                              break;
                            case 16:
                              this.$ = s[a - 1] + s[a];
                              break;
                            case 17:
                            case 18:
                              this.$ = s[a - 1] + '~' + s[a];
                              break;
                            case 19:
                              n.addRelation(s[a]);
                              break;
                            case 20:
                              (s[a - 1].title = n.cleanupLabel(s[a])),
                                n.addRelation(s[a - 1]);
                              break;
                            case 27:
                              n.addClass(s[a]);
                              break;
                            case 28:
                              n.addClass(s[a - 2]),
                                n.setCssClass(s[a - 2], s[a]);
                              break;
                            case 29:
                              n.addClass(s[a - 3]),
                                n.addMembers(s[a - 3], s[a - 1]);
                              break;
                            case 30:
                              n.addClass(s[a - 5]),
                                n.setCssClass(s[a - 5], s[a - 3]),
                                n.addMembers(s[a - 5], s[a - 1]);
                              break;
                            case 31:
                              n.addAnnotation(s[a], s[a - 2]);
                              break;
                            case 32:
                              this.$ = [s[a]];
                              break;
                            case 33:
                              s[a].push(s[a - 1]), (this.$ = s[a]);
                              break;
                            case 34:
                              break;
                            case 35:
                              n.addMember(s[a - 1], n.cleanupLabel(s[a]));
                              break;
                            case 36:
                            case 37:
                              break;
                            case 38:
                              this.$ = {
                                id1: s[a - 2],
                                id2: s[a],
                                relation: s[a - 1],
                                relationTitle1: 'none',
                                relationTitle2: 'none',
                              };
                              break;
                            case 39:
                              this.$ = {
                                id1: s[a - 3],
                                id2: s[a],
                                relation: s[a - 1],
                                relationTitle1: s[a - 2],
                                relationTitle2: 'none',
                              };
                              break;
                            case 40:
                              this.$ = {
                                id1: s[a - 3],
                                id2: s[a],
                                relation: s[a - 2],
                                relationTitle1: 'none',
                                relationTitle2: s[a - 1],
                              };
                              break;
                            case 41:
                              this.$ = {
                                id1: s[a - 4],
                                id2: s[a],
                                relation: s[a - 2],
                                relationTitle1: s[a - 3],
                                relationTitle2: s[a - 1],
                              };
                              break;
                            case 42:
                              this.$ = {
                                type1: s[a - 2],
                                type2: s[a],
                                lineType: s[a - 1],
                              };
                              break;
                            case 43:
                              this.$ = {
                                type1: 'none',
                                type2: s[a],
                                lineType: s[a - 1],
                              };
                              break;
                            case 44:
                              this.$ = {
                                type1: s[a - 1],
                                type2: 'none',
                                lineType: s[a],
                              };
                              break;
                            case 45:
                              this.$ = {
                                type1: 'none',
                                type2: 'none',
                                lineType: s[a],
                              };
                              break;
                            case 46:
                              this.$ = n.relationType.AGGREGATION;
                              break;
                            case 47:
                              this.$ = n.relationType.EXTENSION;
                              break;
                            case 48:
                              this.$ = n.relationType.COMPOSITION;
                              break;
                            case 49:
                              this.$ = n.relationType.DEPENDENCY;
                              break;
                            case 50:
                              this.$ = n.lineType.LINE;
                              break;
                            case 51:
                              this.$ = n.lineType.DOTTED_LINE;
                              break;
                            case 52:
                            case 58:
                              (this.$ = s[a - 2]),
                                n.setClickEvent(s[a - 1], s[a]);
                              break;
                            case 53:
                            case 59:
                              (this.$ = s[a - 3]),
                                n.setClickEvent(s[a - 2], s[a - 1]),
                                n.setTooltip(s[a - 2], s[a]);
                              break;
                            case 54:
                            case 62:
                              (this.$ = s[a - 2]), n.setLink(s[a - 1], s[a]);
                              break;
                            case 55:
                              (this.$ = s[a - 3]),
                                n.setLink(s[a - 2], s[a - 1], s[a]);
                              break;
                            case 56:
                            case 64:
                              (this.$ = s[a - 3]),
                                n.setLink(s[a - 2], s[a - 1]),
                                n.setTooltip(s[a - 2], s[a]);
                              break;
                            case 57:
                            case 65:
                              (this.$ = s[a - 4]),
                                n.setLink(s[a - 3], s[a - 2], s[a]),
                                n.setTooltip(s[a - 3], s[a - 1]);
                              break;
                            case 60:
                              (this.$ = s[a - 3]),
                                n.setClickEvent(s[a - 2], s[a - 1], s[a]);
                              break;
                            case 61:
                              (this.$ = s[a - 4]),
                                n.setClickEvent(s[a - 3], s[a - 2], s[a - 1]),
                                n.setTooltip(s[a - 3], s[a]);
                              break;
                            case 63:
                              (this.$ = s[a - 3]),
                                n.setLink(s[a - 2], s[a - 1], s[a]);
                              break;
                            case 66:
                              n.setCssClass(s[a - 1], s[a]);
                          }
                        },
                        table: [
                          { 3: 1, 4: 2, 5: 3, 6: 4, 7: 5, 13: t, 17: i },
                          { 1: [3] },
                          { 1: [2, 1] },
                          { 3: 8, 4: 2, 5: 3, 6: 4, 7: 5, 13: t, 17: i },
                          { 1: [2, 3] },
                          { 8: 9, 14: [1, 10] },
                          { 10: [1, 11] },
                          { 14: [2, 6] },
                          { 1: [2, 2] },
                          { 9: 12, 11: [1, 13], 16: n },
                          e([11, 16], [2, 7]),
                          {
                            5: 23,
                            7: 5,
                            13: t,
                            18: 15,
                            20: 16,
                            21: 24,
                            22: 33,
                            23: 34,
                            25: 17,
                            27: 18,
                            28: 19,
                            29: 20,
                            30: 21,
                            31: 22,
                            32: r,
                            37: s,
                            39: o,
                            40: a,
                            51: l,
                            52: c,
                            54: d,
                            58: h,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          { 10: [1, 39] },
                          { 12: 40, 15: [1, 41] },
                          { 10: [2, 9] },
                          { 19: [1, 42] },
                          { 10: [1, 43], 19: [2, 11] },
                          e(m, [2, 19], { 26: [1, 44] }),
                          e(m, [2, 21]),
                          e(m, [2, 22]),
                          e(m, [2, 23]),
                          e(m, [2, 24]),
                          e(m, [2, 25]),
                          e(m, [2, 26]),
                          e(m, [2, 34], {
                            41: 45,
                            43: 48,
                            44: 49,
                            26: [1, 47],
                            42: [1, 46],
                            45: _,
                            46: b,
                            47: v,
                            48: y,
                            49: w,
                            50: C,
                          }),
                          {
                            21: 56,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          e(m, [2, 36]),
                          e(m, [2, 37]),
                          { 22: 57, 72: u, 73: g, 74: f },
                          {
                            21: 58,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          {
                            21: 59,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          {
                            21: 60,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          { 42: [1, 61] },
                          e(S, [2, 14], {
                            22: 33,
                            23: 34,
                            21: 62,
                            24: [1, 63],
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          }),
                          e(S, [2, 15], { 24: [1, 64] }),
                          e(k, [2, 80]),
                          e(k, [2, 81]),
                          e(k, [2, 82]),
                          e(
                            [
                              10,
                              19,
                              24,
                              26,
                              33,
                              34,
                              42,
                              45,
                              46,
                              47,
                              48,
                              49,
                              50,
                              55,
                              57,
                            ],
                            [2, 83]
                          ),
                          e(x, [2, 4]),
                          { 9: 65, 16: n },
                          { 16: [2, 8] },
                          { 1: [2, 10] },
                          {
                            5: 23,
                            7: 5,
                            13: t,
                            18: 66,
                            19: [2, 12],
                            20: 16,
                            21: 24,
                            22: 33,
                            23: 34,
                            25: 17,
                            27: 18,
                            28: 19,
                            29: 20,
                            30: 21,
                            31: 22,
                            32: r,
                            37: s,
                            39: o,
                            40: a,
                            51: l,
                            52: c,
                            54: d,
                            58: h,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          e(m, [2, 20]),
                          {
                            21: 67,
                            22: 33,
                            23: 34,
                            42: [1, 68],
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          {
                            41: 69,
                            43: 48,
                            44: 49,
                            45: _,
                            46: b,
                            47: v,
                            48: y,
                            49: w,
                            50: C,
                          },
                          e(m, [2, 35]),
                          { 44: 70, 49: w, 50: C },
                          e(L, [2, 45], { 43: 71, 45: _, 46: b, 47: v, 48: y }),
                          e(M, [2, 46]),
                          e(M, [2, 47]),
                          e(M, [2, 48]),
                          e(M, [2, 49]),
                          e(D, [2, 50]),
                          e(D, [2, 51]),
                          e(m, [2, 27], { 33: [1, 72], 34: [1, 73] }),
                          { 38: [1, 74] },
                          { 42: [1, 75] },
                          { 42: [1, 76] },
                          { 55: [1, 77], 57: [1, 78] },
                          { 22: 79, 72: u, 73: g, 74: f },
                          e(S, [2, 16]),
                          e(S, [2, 17]),
                          e(S, [2, 18]),
                          { 10: [1, 80] },
                          { 19: [2, 13] },
                          e(N, [2, 38]),
                          {
                            21: 81,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          {
                            21: 82,
                            22: 33,
                            23: 34,
                            42: [1, 83],
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          e(L, [2, 44], { 43: 84, 45: _, 46: b, 47: v, 48: y }),
                          e(L, [2, 43]),
                          { 22: 85, 72: u, 73: g, 74: f },
                          { 35: 86, 39: E },
                          {
                            21: 88,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          e(m, [2, 52], { 42: [1, 89] }),
                          e(m, [2, 54], { 42: [1, 91], 53: [1, 90] }),
                          e(m, [2, 58], { 42: [1, 92], 56: [1, 93] }),
                          e(m, [2, 62], { 42: [1, 95], 53: [1, 94] }),
                          e(m, [2, 66]),
                          e(x, [2, 5]),
                          e(N, [2, 40]),
                          e(N, [2, 39]),
                          {
                            21: 96,
                            22: 33,
                            23: 34,
                            72: u,
                            73: g,
                            74: f,
                            75: p,
                          },
                          e(L, [2, 42]),
                          e(m, [2, 28], { 34: [1, 97] }),
                          { 36: [1, 98] },
                          { 35: 99, 36: [2, 32], 39: E },
                          e(m, [2, 31]),
                          e(m, [2, 53]),
                          e(m, [2, 55]),
                          e(m, [2, 56], { 53: [1, 100] }),
                          e(m, [2, 59]),
                          e(m, [2, 60], { 42: [1, 101] }),
                          e(m, [2, 63]),
                          e(m, [2, 64], { 53: [1, 102] }),
                          e(N, [2, 41]),
                          { 35: 103, 39: E },
                          e(m, [2, 29]),
                          { 36: [2, 33] },
                          e(m, [2, 57]),
                          e(m, [2, 61]),
                          e(m, [2, 65]),
                          { 36: [1, 104] },
                          e(m, [2, 30]),
                        ],
                        defaultActions: {
                          2: [2, 1],
                          4: [2, 3],
                          7: [2, 6],
                          8: [2, 2],
                          14: [2, 9],
                          41: [2, 8],
                          42: [2, 10],
                          66: [2, 13],
                          99: [2, 33],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      I = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: {},
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 13;
                            case 1:
                              return this.begin('type_directive'), 14;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 11
                              );
                            case 3:
                              return this.popState(), this.popState(), 16;
                            case 4:
                              return 15;
                            case 5:
                            case 6:
                              break;
                            case 7:
                              return 10;
                            case 8:
                              break;
                            case 9:
                            case 10:
                              return 17;
                            case 11:
                              return this.begin('struct'), 34;
                            case 12:
                              return 'EOF_IN_STRUCT';
                            case 13:
                              return 'OPEN_IN_STRUCT';
                            case 14:
                              return this.popState(), 36;
                            case 15:
                              break;
                            case 16:
                              return 'MEMBER';
                            case 17:
                              return 32;
                            case 18:
                              return 58;
                            case 19:
                              return 51;
                            case 20:
                              return 52;
                            case 21:
                              return 54;
                            case 22:
                              return 37;
                            case 23:
                              return 38;
                            case 24:
                              this.begin('generic');
                              break;
                            case 25:
                              this.popState();
                              break;
                            case 26:
                              return 'GENERICTYPE';
                            case 27:
                              this.begin('string');
                              break;
                            case 28:
                              this.popState();
                              break;
                            case 29:
                              return 'STR';
                            case 30:
                              this.begin('bqstring');
                              break;
                            case 31:
                              this.popState();
                              break;
                            case 32:
                              return 'BQUOTE_STR';
                            case 33:
                              this.begin('href');
                              break;
                            case 34:
                              this.popState();
                              break;
                            case 35:
                              return 57;
                            case 36:
                              this.begin('callback_name');
                              break;
                            case 37:
                              this.popState();
                              break;
                            case 38:
                              this.popState(), this.begin('callback_args');
                              break;
                            case 39:
                              return 55;
                            case 40:
                              this.popState();
                              break;
                            case 41:
                              return 56;
                            case 42:
                            case 43:
                            case 44:
                            case 45:
                              return 53;
                            case 46:
                            case 47:
                              return 46;
                            case 48:
                            case 49:
                              return 48;
                            case 50:
                              return 47;
                            case 51:
                              return 45;
                            case 52:
                              return 49;
                            case 53:
                              return 50;
                            case 54:
                              return 26;
                            case 55:
                              return 33;
                            case 56:
                              return 70;
                            case 57:
                              return 'DOT';
                            case 58:
                              return 'PLUS';
                            case 59:
                              return 67;
                            case 60:
                            case 61:
                              return 'EQUALS';
                            case 62:
                              return 74;
                            case 63:
                              return 'PUNCTUATION';
                            case 64:
                              return 73;
                            case 65:
                              return 72;
                            case 66:
                              return 69;
                            case 67:
                              return 19;
                          }
                        },
                        rules: [
                          /^(?:%%\{)/,
                          /^(?:((?:(?!\}%%)[^:.])*))/,
                          /^(?::)/,
                          /^(?:\}%%)/,
                          /^(?:((?:(?!\}%%).|\n)*))/,
                          /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,
                          /^(?:%%[^\n]*(\r?\n)*)/,
                          /^(?:(\r?\n)+)/,
                          /^(?:\s+)/,
                          /^(?:classDiagram-v2\b)/,
                          /^(?:classDiagram\b)/,
                          /^(?:[{])/,
                          /^(?:$)/,
                          /^(?:[{])/,
                          /^(?:[}])/,
                          /^(?:[\n])/,
                          /^(?:[^{}\n]*)/,
                          /^(?:class\b)/,
                          /^(?:cssClass\b)/,
                          /^(?:callback\b)/,
                          /^(?:link\b)/,
                          /^(?:click\b)/,
                          /^(?:<<)/,
                          /^(?:>>)/,
                          /^(?:[~])/,
                          /^(?:[~])/,
                          /^(?:[^~]*)/,
                          /^(?:["])/,
                          /^(?:["])/,
                          /^(?:[^"]*)/,
                          /^(?:[`])/,
                          /^(?:[`])/,
                          /^(?:[^`]+)/,
                          /^(?:href[\s]+["])/,
                          /^(?:["])/,
                          /^(?:[^"]*)/,
                          /^(?:call[\s]+)/,
                          /^(?:\([\s]*\))/,
                          /^(?:\()/,
                          /^(?:[^(]*)/,
                          /^(?:\))/,
                          /^(?:[^)]*)/,
                          /^(?:_self\b)/,
                          /^(?:_blank\b)/,
                          /^(?:_parent\b)/,
                          /^(?:_top\b)/,
                          /^(?:\s*<\|)/,
                          /^(?:\s*\|>)/,
                          /^(?:\s*>)/,
                          /^(?:\s*<)/,
                          /^(?:\s*\*)/,
                          /^(?:\s*o\b)/,
                          /^(?:--)/,
                          /^(?:\.\.)/,
                          /^(?::{1}[^:\n;]+)/,
                          /^(?::{3})/,
                          /^(?:-)/,
                          /^(?:\.)/,
                          /^(?:\+)/,
                          /^(?:%)/,
                          /^(?:=)/,
                          /^(?:=)/,
                          /^(?:\w+)/,
                          /^(?:[!"#$%&'*+,-.`?\\/])/,
                          /^(?:[0-9]+)/,
                          /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,
                          /^(?:\s)/,
                          /^(?:$)/,
                        ],
                        conditions: {
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          open_directive: { rules: [1], inclusive: !1 },
                          callback_args: { rules: [40, 41], inclusive: !1 },
                          callback_name: { rules: [37, 38, 39], inclusive: !1 },
                          href: { rules: [34, 35], inclusive: !1 },
                          struct: {
                            rules: [12, 13, 14, 15, 16],
                            inclusive: !1,
                          },
                          generic: { rules: [25, 26], inclusive: !1 },
                          bqstring: { rules: [31, 32], inclusive: !1 },
                          string: { rules: [28, 29], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10,
                              11,
                              17,
                              18,
                              19,
                              20,
                              21,
                              22,
                              23,
                              24,
                              27,
                              30,
                              33,
                              36,
                              42,
                              43,
                              44,
                              45,
                              46,
                              47,
                              48,
                              49,
                              50,
                              51,
                              52,
                              53,
                              54,
                              55,
                              56,
                              57,
                              58,
                              59,
                              60,
                              61,
                              62,
                              63,
                              64,
                              65,
                              66,
                              67,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function O() {
                      this.yy = {};
                    }
                    return (
                      (T.lexer = I), (O.prototype = T), (T.Parser = O), new O()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/class/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return 'g.classGroup text {\n  fill: '
                      .concat(e.nodeBorder, ';\n  fill: ')
                      .concat(
                        e.classText,
                        ';\n  stroke: none;\n  font-family: '
                      )
                      .concat(
                        e.fontFamily,
                        ';\n  font-size: 10px;\n\n  .title {\n    font-weight: bolder;\n  }\n\n}\n\n.classTitle {\n  font-weight: bolder;\n}\n.node rect,\n  .node circle,\n  .node ellipse,\n  .node polygon,\n  .node path {\n    fill: '
                      )
                      .concat(e.mainBkg, ';\n    stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n    stroke-width: 1px;\n  }\n\n\n.divider {\n  stroke: '
                      )
                      .concat(
                        e.nodeBorder,
                        ';\n  stroke: 1;\n}\n\ng.clickable {\n  cursor: pointer;\n}\n\ng.classGroup rect {\n  fill: '
                      )
                      .concat(e.mainBkg, ';\n  stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n}\n\ng.classGroup line {\n  stroke: '
                      )
                      .concat(
                        e.nodeBorder,
                        ';\n  stroke-width: 1;\n}\n\n.classLabel .box {\n  stroke: none;\n  stroke-width: 0;\n  fill: '
                      )
                      .concat(
                        e.mainBkg,
                        ';\n  opacity: 0.5;\n}\n\n.classLabel .label {\n  fill: '
                      )
                      .concat(
                        e.nodeBorder,
                        ';\n  font-size: 10px;\n}\n\n.relation {\n  stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n  stroke-width: 1;\n  fill: none;\n}\n\n.dashed-line{\n  stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n  fill: '
                      )
                      .concat(e.lineColor, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n  fill: '
                      )
                      .concat(e.lineColor, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n  fill: '
                      )
                      .concat(e.lineColor, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n  fill: '
                      )
                      .concat(e.lineColor, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#extensionStart, .extension {\n  fill: '
                      )
                      .concat(e.lineColor, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n  fill: '
                      )
                      .concat(e.lineColor, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n  fill: '
                      )
                      .concat(e.mainBkg, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n  fill: '
                      )
                      .concat(e.mainBkg, ' !important;\n  stroke: ')
                      .concat(
                        e.lineColor,
                        ' !important;\n  stroke-width: 1;\n}\n\n.edgeTerminals {\n  font-size: 11px;\n}\n\n'
                      );
                  });
              },
              './src/diagrams/class/svgDraw.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'drawEdge', function () {
                    return l;
                  }),
                  i.d(t, 'drawClass', function () {
                    return c;
                  }),
                  i.d(t, 'parseMember', function () {
                    return d;
                  });
                var n = i('d3'),
                  r = i('./src/diagrams/class/classDb.js'),
                  s = i('./src/utils.js'),
                  o = i('./src/logger.js'),
                  a = 0,
                  l = function (e, t, i, l) {
                    var c = function (e) {
                      switch (e) {
                        case r.relationType.AGGREGATION:
                          return 'aggregation';
                        case r.relationType.EXTENSION:
                          return 'extension';
                        case r.relationType.COMPOSITION:
                          return 'composition';
                        case r.relationType.DEPENDENCY:
                          return 'dependency';
                      }
                    };
                    t.points = t.points.filter(function (e) {
                      return !Number.isNaN(e.y);
                    });
                    var d,
                      h,
                      u = t.points,
                      g = Object(n.line)()
                        .x(function (e) {
                          return e.x;
                        })
                        .y(function (e) {
                          return e.y;
                        })
                        .curve(n.curveBasis),
                      f = e
                        .append('path')
                        .attr('d', g(u))
                        .attr('id', 'edge' + a)
                        .attr('class', 'relation'),
                      p = '';
                    l.arrowMarkerAbsolute &&
                      (p = (p = (p =
                        window.location.protocol +
                        '//' +
                        window.location.host +
                        window.location.pathname +
                        window.location.search).replace(/\(/g, '\\(')).replace(
                        /\)/g,
                        '\\)'
                      )),
                      1 == i.relation.lineType &&
                        f.attr('class', 'relation dashed-line'),
                      'none' !== i.relation.type1 &&
                        f.attr(
                          'marker-start',
                          'url(' + p + '#' + c(i.relation.type1) + 'Start)'
                        ),
                      'none' !== i.relation.type2 &&
                        f.attr(
                          'marker-end',
                          'url(' + p + '#' + c(i.relation.type2) + 'End)'
                        );
                    var m,
                      _,
                      b,
                      v,
                      y = t.points.length,
                      w = s.default.calcLabelPosition(t.points);
                    if (((d = w.x), (h = w.y), y % 2 != 0 && y > 1)) {
                      var C = s.default.calcCardinalityPosition(
                          'none' !== i.relation.type1,
                          t.points,
                          t.points[0]
                        ),
                        S = s.default.calcCardinalityPosition(
                          'none' !== i.relation.type2,
                          t.points,
                          t.points[y - 1]
                        );
                      o.log.debug('cardinality_1_point ' + JSON.stringify(C)),
                        o.log.debug('cardinality_2_point ' + JSON.stringify(S)),
                        (m = C.x),
                        (_ = C.y),
                        (b = S.x),
                        (v = S.y);
                    }
                    if (void 0 !== i.title) {
                      var k = e.append('g').attr('class', 'classLabel'),
                        x = k
                          .append('text')
                          .attr('class', 'label')
                          .attr('x', d)
                          .attr('y', h)
                          .attr('fill', 'red')
                          .attr('text-anchor', 'middle')
                          .text(i.title);
                      window.label = x;
                      var L = x.node().getBBox();
                      k.insert('rect', ':first-child')
                        .attr('class', 'box')
                        .attr('x', L.x - l.padding / 2)
                        .attr('y', L.y - l.padding / 2)
                        .attr('width', L.width + l.padding)
                        .attr('height', L.height + l.padding);
                    }
                    o.log.info('Rendering relation ' + JSON.stringify(i)),
                      void 0 !== i.relationTitle1 &&
                        'none' !== i.relationTitle1 &&
                        e
                          .append('g')
                          .attr('class', 'cardinality')
                          .append('text')
                          .attr('class', 'type1')
                          .attr('x', m)
                          .attr('y', _)
                          .attr('fill', 'black')
                          .attr('font-size', '6')
                          .text(i.relationTitle1),
                      void 0 !== i.relationTitle2 &&
                        'none' !== i.relationTitle2 &&
                        e
                          .append('g')
                          .attr('class', 'cardinality')
                          .append('text')
                          .attr('class', 'type2')
                          .attr('x', b)
                          .attr('y', v)
                          .attr('fill', 'black')
                          .attr('font-size', '6')
                          .text(i.relationTitle2),
                      a++;
                  },
                  c = function (e, t, i) {
                    o.log.info('Rendering class ' + t);
                    var n,
                      s = t.id,
                      a = { id: s, label: t.id, width: 0, height: 0 },
                      l = e
                        .append('g')
                        .attr('id', Object(r.lookUpDomId)(s))
                        .attr('class', 'classGroup');
                    n = t.link
                      ? l
                          .append('svg:a')
                          .attr('xlink:href', t.link)
                          .attr('target', t.linkTarget)
                          .append('text')
                          .attr('y', i.textHeight + i.padding)
                          .attr('x', 0)
                      : l
                          .append('text')
                          .attr('y', i.textHeight + i.padding)
                          .attr('x', 0);
                    var c = !0;
                    t.annotations.forEach(function (e) {
                      var t = n.append('tspan').text('«' + e + '»');
                      c || t.attr('dy', i.textHeight), (c = !1);
                    });
                    var d = t.id;
                    void 0 !== t.type &&
                      '' !== t.type &&
                      (d += '<' + t.type + '>');
                    var h = n.append('tspan').text(d).attr('class', 'title');
                    c || h.attr('dy', i.textHeight);
                    var u = n.node().getBBox().height,
                      g = l
                        .append('line')
                        .attr('x1', 0)
                        .attr('y1', i.padding + u + i.dividerMargin / 2)
                        .attr('y2', i.padding + u + i.dividerMargin / 2),
                      p = l
                        .append('text')
                        .attr('x', i.padding)
                        .attr('y', u + i.dividerMargin + i.textHeight)
                        .attr('fill', 'white')
                        .attr('class', 'classText');
                    (c = !0),
                      t.members.forEach(function (e) {
                        f(p, e, c, i), (c = !1);
                      });
                    var m = p.node().getBBox(),
                      _ = l
                        .append('line')
                        .attr('x1', 0)
                        .attr('y1', i.padding + u + i.dividerMargin + m.height)
                        .attr('y2', i.padding + u + i.dividerMargin + m.height),
                      b = l
                        .append('text')
                        .attr('x', i.padding)
                        .attr(
                          'y',
                          u + 2 * i.dividerMargin + m.height + i.textHeight
                        )
                        .attr('fill', 'white')
                        .attr('class', 'classText');
                    (c = !0),
                      t.methods.forEach(function (e) {
                        f(b, e, c, i), (c = !1);
                      });
                    var v = l.node().getBBox(),
                      y = ' ';
                    t.cssClasses.length > 0 && (y += t.cssClasses.join(' '));
                    var w = l
                      .insert('rect', ':first-child')
                      .attr('x', 0)
                      .attr('y', 0)
                      .attr('width', v.width + 2 * i.padding)
                      .attr(
                        'height',
                        v.height + i.padding + 0.5 * i.dividerMargin
                      )
                      .attr('class', y)
                      .node()
                      .getBBox().width;
                    return (
                      n.node().childNodes.forEach(function (e) {
                        e.setAttribute('x', (w - e.getBBox().width) / 2);
                      }),
                      t.tooltip && n.insert('title').text(t.tooltip),
                      g.attr('x2', w),
                      _.attr('x2', w),
                      (a.width = w),
                      (a.height = v.height + i.padding + 0.5 * i.dividerMargin),
                      a
                    );
                  },
                  d = function (e) {
                    var t = e.match(/(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+)/),
                      i = e.match(
                        /^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/
                      );
                    return t && !i ? h(t) : i ? u(i) : g(e);
                  },
                  h = function (e) {
                    var t = '';
                    try {
                      t =
                        (e[1] ? e[1].trim() : '') +
                        (e[2] ? e[2].trim() : '') +
                        (e[3] ? p(e[3].trim()) : '') +
                        ' ' +
                        (e[4] ? e[4].trim() : '');
                    } catch (i) {
                      t = e;
                    }
                    return { displayText: t, cssStyle: '' };
                  },
                  u = function (e) {
                    var t = '',
                      i = '';
                    try {
                      var n = e[1] ? e[1].trim() : '',
                        r = e[2] ? e[2].trim() : '',
                        s = e[3] ? p(e[3].trim()) : '',
                        o = e[4] ? e[4].trim() : '';
                      (i =
                        n +
                        r +
                        '(' +
                        s +
                        ')' +
                        (e[5] ? ' : ' + p(e[5]).trim() : '')),
                        (t = m(o));
                    } catch (t) {
                      i = e;
                    }
                    return { displayText: i, cssStyle: t };
                  },
                  g = function (e) {
                    var t = '',
                      i = '',
                      n = '',
                      r = e.indexOf('('),
                      s = e.indexOf(')');
                    if (r > 1 && s > r && s <= e.length) {
                      var o = '',
                        a = '',
                        l = e.substring(0, 1);
                      l.match(/\w/)
                        ? (a = e.substring(0, r).trim())
                        : (l.match(/\+|-|~|#/) && (o = l),
                          (a = e.substring(1, r).trim()));
                      var c = e.substring(r + 1, s),
                        d = e.substring(s + 1, 1);
                      (i = m(d)),
                        (t = o + a + '(' + p(c.trim()) + ')'),
                        s < ''.length &&
                          '' !== (n = e.substring(s + 2).trim()) &&
                          (n = ' : ' + p(n));
                    } else t = p(e);
                    return { displayText: t, cssStyle: i };
                  },
                  f = function (e, t, i, n) {
                    var r = d(t),
                      s = e
                        .append('tspan')
                        .attr('x', n.padding)
                        .text(r.displayText);
                    '' !== r.cssStyle && s.attr('style', r.cssStyle),
                      i || s.attr('dy', n.textHeight);
                  },
                  p = function e(t) {
                    var i = t;
                    return -1 != t.indexOf('~')
                      ? e((i = (i = i.replace('~', '<')).replace('~', '>')))
                      : i;
                  },
                  m = function (e) {
                    switch (e) {
                      case '*':
                        return 'font-style:italic;';
                      case '$':
                        return 'text-decoration:underline;';
                      default:
                        return '';
                    }
                  };
                t.default = { drawClass: c, drawEdge: l, parseMember: d };
              },
              './src/diagrams/common/common.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'getRows', function () {
                    return n;
                  }),
                  i.d(t, 'removeScript', function () {
                    return r;
                  }),
                  i.d(t, 'sanitizeText', function () {
                    return s;
                  }),
                  i.d(t, 'lineBreakRegex', function () {
                    return o;
                  }),
                  i.d(t, 'hasBreaks', function () {
                    return a;
                  }),
                  i.d(t, 'splitBreaks', function () {
                    return l;
                  });
                var n = function (e) {
                    if (!e) return 1;
                    var t = c(e);
                    return (t = t.replace(/\\n/g, '#br#')).split('#br#');
                  },
                  r = function (e) {
                    for (var t = '', i = 0; i >= 0; ) {
                      if (!((i = e.indexOf('<script')) >= 0)) {
                        (t += e), (i = -1);
                        break;
                      }
                      (t += e.substr(0, i)),
                        (i = (e = e.substr(i + 1)).indexOf('</script>')) >= 0 &&
                          ((i += 9), (e = e.substr(i)));
                    }
                    return t;
                  },
                  s = function (e, t) {
                    var i = e,
                      n = !0;
                    if (
                      (!t.flowchart ||
                        (!1 !== t.flowchart.htmlLabels &&
                          'false' !== t.flowchart.htmlLabels) ||
                        (n = !1),
                      n)
                    ) {
                      var s = t.securityLevel;
                      'antiscript' === s
                        ? (i = r(i))
                        : 'loose' !== s &&
                          ((i = (i = (i = c(i))
                            .replace(/</g, '&lt;')
                            .replace(/>/g, '&gt;')).replace(/=/g, '&equals;')),
                          (i = d(i)));
                    }
                    return i;
                  },
                  o = /<br\s*\/?>/gi,
                  a = function (e) {
                    return /<br\s*[/]?>/gi.test(e);
                  },
                  l = function (e) {
                    return e.split(/<br\s*[/]?>/gi);
                  },
                  c = function (e) {
                    return e.replace(o, '#br#');
                  },
                  d = function (e) {
                    return e.replace(/#br#/g, '<br/>');
                  };
                t.default = {
                  getRows: n,
                  sanitizeText: s,
                  hasBreaks: a,
                  splitBreaks: l,
                  lineBreakRegex: o,
                  removeScript: r,
                  getUrl: function (e) {
                    var t = '';
                    return (
                      e &&
                        (t = (t = (t =
                          window.location.protocol +
                          '//' +
                          window.location.host +
                          window.location.pathname +
                          window.location.search).replace(
                          /\(/g,
                          '\\('
                        )).replace(/\)/g, '\\)')),
                      t
                    );
                  },
                };
              },
              './src/diagrams/er/erDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return c;
                  });
                var n = i('./src/logger.js'),
                  r = i('./src/mermaidAPI.js'),
                  s = i('./src/config.js'),
                  o = {},
                  a = [],
                  l = '',
                  c = function (e, t, i) {
                    r.default.parseDirective(this, e, t, i);
                  },
                  d = function (e) {
                    return (
                      void 0 === o[e] &&
                        ((o[e] = { attributes: [] }),
                        n.log.info('Added new entity :', e)),
                      o[e]
                    );
                  };
                t.default = {
                  Cardinality: {
                    ZERO_OR_ONE: 'ZERO_OR_ONE',
                    ZERO_OR_MORE: 'ZERO_OR_MORE',
                    ONE_OR_MORE: 'ONE_OR_MORE',
                    ONLY_ONE: 'ONLY_ONE',
                  },
                  Identification: {
                    NON_IDENTIFYING: 'NON_IDENTIFYING',
                    IDENTIFYING: 'IDENTIFYING',
                  },
                  parseDirective: c,
                  getConfig: function () {
                    return s.getConfig().er;
                  },
                  addEntity: d,
                  addAttributes: function (e, t) {
                    var i,
                      r = d(e);
                    for (i = t.length - 1; i >= 0; i--)
                      r.attributes.push(t[i]),
                        n.log.debug('Added attribute ', t[i].attributeName);
                  },
                  getEntities: function () {
                    return o;
                  },
                  addRelationship: function (e, t, i, r) {
                    var s = { entityA: e, roleA: t, entityB: i, relSpec: r };
                    a.push(s), n.log.debug('Added new relationship :', s);
                  },
                  getRelationships: function () {
                    return a;
                  },
                  clear: function () {
                    (o = {}), (a = []), (l = '');
                  },
                  setTitle: function (e) {
                    l = e;
                  },
                  getTitle: function () {
                    return l;
                  },
                };
              },
              './src/diagrams/er/erMarkers.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = {
                  ONLY_ONE_START: 'ONLY_ONE_START',
                  ONLY_ONE_END: 'ONLY_ONE_END',
                  ZERO_OR_ONE_START: 'ZERO_OR_ONE_START',
                  ZERO_OR_ONE_END: 'ZERO_OR_ONE_END',
                  ONE_OR_MORE_START: 'ONE_OR_MORE_START',
                  ONE_OR_MORE_END: 'ONE_OR_MORE_END',
                  ZERO_OR_MORE_START: 'ZERO_OR_MORE_START',
                  ZERO_OR_MORE_END: 'ZERO_OR_MORE_END',
                };
                t.default = {
                  ERMarkers: n,
                  insertMarkers: function (e, t) {
                    var i;
                    e
                      .append('defs')
                      .append('marker')
                      .attr('id', n.ONLY_ONE_START)
                      .attr('refX', 0)
                      .attr('refY', 9)
                      .attr('markerWidth', 18)
                      .attr('markerHeight', 18)
                      .attr('orient', 'auto')
                      .append('path')
                      .attr('stroke', t.stroke)
                      .attr('fill', 'none')
                      .attr('d', 'M9,0 L9,18 M15,0 L15,18'),
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ONLY_ONE_END)
                        .attr('refX', 18)
                        .attr('refY', 9)
                        .attr('markerWidth', 18)
                        .attr('markerHeight', 18)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr('d', 'M3,0 L3,18 M9,0 L9,18'),
                      (i = e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ZERO_OR_ONE_START)
                        .attr('refX', 0)
                        .attr('refY', 9)
                        .attr('markerWidth', 30)
                        .attr('markerHeight', 18)
                        .attr('orient', 'auto'))
                        .append('circle')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'white')
                        .attr('cx', 21)
                        .attr('cy', 9)
                        .attr('r', 6),
                      i
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr('d', 'M9,0 L9,18'),
                      (i = e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ZERO_OR_ONE_END)
                        .attr('refX', 30)
                        .attr('refY', 9)
                        .attr('markerWidth', 30)
                        .attr('markerHeight', 18)
                        .attr('orient', 'auto'))
                        .append('circle')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'white')
                        .attr('cx', 9)
                        .attr('cy', 9)
                        .attr('r', 6),
                      i
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr('d', 'M21,0 L21,18'),
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ONE_OR_MORE_START)
                        .attr('refX', 18)
                        .attr('refY', 18)
                        .attr('markerWidth', 45)
                        .attr('markerHeight', 36)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr(
                          'd',
                          'M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27'
                        ),
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ONE_OR_MORE_END)
                        .attr('refX', 27)
                        .attr('refY', 18)
                        .attr('markerWidth', 45)
                        .attr('markerHeight', 36)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr('d', 'M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18'),
                      (i = e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ZERO_OR_MORE_START)
                        .attr('refX', 18)
                        .attr('refY', 18)
                        .attr('markerWidth', 57)
                        .attr('markerHeight', 36)
                        .attr('orient', 'auto'))
                        .append('circle')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'white')
                        .attr('cx', 48)
                        .attr('cy', 18)
                        .attr('r', 6),
                      i
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr('d', 'M0,18 Q18,0 36,18 Q18,36 0,18'),
                      (i = e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ZERO_OR_MORE_END)
                        .attr('refX', 39)
                        .attr('refY', 18)
                        .attr('markerWidth', 57)
                        .attr('markerHeight', 36)
                        .attr('orient', 'auto'))
                        .append('circle')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'white')
                        .attr('cx', 9)
                        .attr('cy', 18)
                        .attr('r', 6),
                      i
                        .append('path')
                        .attr('stroke', t.stroke)
                        .attr('fill', 'none')
                        .attr('d', 'M21,18 Q39,0 57,18 Q39,36 21,18');
                  },
                };
              },
              './src/diagrams/er/erRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return m;
                  }),
                  i.d(t, 'draw', function () {
                    return v;
                  });
                var n = i('graphlib'),
                  r = i.n(n),
                  s = i('d3'),
                  o = i('./src/diagrams/er/erDb.js'),
                  a = i('./src/diagrams/er/parser/erDiagram.jison'),
                  l = i.n(a),
                  c = i('dagre'),
                  d = i.n(c),
                  h = i('./src/config.js'),
                  u = i('./src/logger.js'),
                  g = i('./src/diagrams/er/erMarkers.js'),
                  f = i('./src/utils.js'),
                  p = {},
                  m = function (e) {
                    for (var t = Object.keys(e), i = 0; i < t.length; i++)
                      p[t[i]] = e[t[i]];
                  },
                  _ = function (e) {
                    return (e.entityA + e.roleA + e.entityB).replace(/\s/g, '');
                  },
                  b = 0,
                  v = function (e, t) {
                    u.log.info('Drawing ER diagram'), o.default.clear();
                    var i = l.a.parser;
                    i.yy = o.default;
                    try {
                      i.parse(e);
                    } catch (e) {
                      u.log.debug('Parsing failed');
                    }
                    var n,
                      a = Object(s.select)("[id='".concat(t, "']"));
                    g.default.insertMarkers(a, p),
                      (n = new r.a.Graph({
                        multigraph: !0,
                        directed: !0,
                        compound: !1,
                      })
                        .setGraph({
                          rankdir: p.layoutDirection,
                          marginx: 20,
                          marginy: 20,
                          nodesep: 100,
                          edgesep: 100,
                          ranksep: 100,
                        })
                        .setDefaultEdgeLabel(function () {
                          return {};
                        }));
                    var c,
                      m,
                      v = (function (e, t, i) {
                        var n;
                        return (
                          Object.keys(t).forEach(function (r) {
                            var s = e.append('g').attr('id', r);
                            n = void 0 === n ? r : n;
                            var o = 'entity-' + r,
                              a = s
                                .append('text')
                                .attr('class', 'er entityLabel')
                                .attr('id', o)
                                .attr('x', 0)
                                .attr('y', 0)
                                .attr('dominant-baseline', 'middle')
                                .attr('text-anchor', 'middle')
                                .attr(
                                  'style',
                                  'font-family: ' +
                                    Object(h.getConfig)().fontFamily +
                                    '; font-size: ' +
                                    p.fontSize +
                                    'px'
                                )
                                .text(r),
                              l = (function (e, t, i) {
                                var n = p.entityPadding / 3,
                                  r = p.entityPadding / 3,
                                  s = 0.85 * p.fontSize,
                                  o = t.node().getBBox(),
                                  a = [],
                                  l = 0,
                                  c = 0,
                                  d = o.height + 2 * n,
                                  u = 1;
                                i.forEach(function (i) {
                                  var r = ''
                                      .concat(t.node().id, '-attr-')
                                      .concat(u),
                                    o = e
                                      .append('text')
                                      .attr('class', 'er entityLabel')
                                      .attr('id', ''.concat(r, '-type'))
                                      .attr('x', 0)
                                      .attr('y', 0)
                                      .attr('dominant-baseline', 'middle')
                                      .attr('text-anchor', 'left')
                                      .attr(
                                        'style',
                                        'font-family: ' +
                                          Object(h.getConfig)().fontFamily +
                                          '; font-size: ' +
                                          s +
                                          'px'
                                      )
                                      .text(i.attributeType),
                                    g = e
                                      .append('text')
                                      .attr('class', 'er entityLabel')
                                      .attr('id', ''.concat(r, '-name'))
                                      .attr('x', 0)
                                      .attr('y', 0)
                                      .attr('dominant-baseline', 'middle')
                                      .attr('text-anchor', 'left')
                                      .attr(
                                        'style',
                                        'font-family: ' +
                                          Object(h.getConfig)().fontFamily +
                                          '; font-size: ' +
                                          s +
                                          'px'
                                      )
                                      .text(i.attributeName);
                                  a.push({ tn: o, nn: g });
                                  var f = o.node().getBBox(),
                                    p = g.node().getBBox();
                                  (l = Math.max(l, f.width)),
                                    (c = Math.max(c, p.width)),
                                    (d += Math.max(f.height, p.height) + 2 * n),
                                    (u += 1);
                                });
                                var g = {
                                    width: Math.max(
                                      p.minEntityWidth,
                                      Math.max(
                                        o.width + 2 * p.entityPadding,
                                        l + c + 4 * r
                                      )
                                    ),
                                    height:
                                      i.length > 0
                                        ? d
                                        : Math.max(
                                            p.minEntityHeight,
                                            o.height + 2 * p.entityPadding
                                          ),
                                  },
                                  f = Math.max(0, g.width - (l + c) - 4 * r);
                                if (i.length > 0) {
                                  t.attr(
                                    'transform',
                                    'translate(' +
                                      g.width / 2 +
                                      ',' +
                                      (n + o.height / 2) +
                                      ')'
                                  );
                                  var m = o.height + 2 * n,
                                    _ = 'attributeBoxOdd';
                                  a.forEach(function (t) {
                                    var i =
                                      m +
                                      n +
                                      Math.max(
                                        t.tn.node().getBBox().height,
                                        t.nn.node().getBBox().height
                                      ) /
                                        2;
                                    t.tn.attr(
                                      'transform',
                                      'translate(' + r + ',' + i + ')'
                                    );
                                    var s = e
                                      .insert('rect', '#' + t.tn.node().id)
                                      .attr('class', 'er '.concat(_))
                                      .attr('fill', p.fill)
                                      .attr('fill-opacity', '100%')
                                      .attr('stroke', p.stroke)
                                      .attr('x', 0)
                                      .attr('y', m)
                                      .attr('width', l + 2 * r + f / 2)
                                      .attr(
                                        'height',
                                        t.tn.node().getBBox().height + 2 * n
                                      );
                                    t.nn.attr(
                                      'transform',
                                      'translate(' +
                                        (parseFloat(s.attr('width')) + r) +
                                        ',' +
                                        i +
                                        ')'
                                    ),
                                      e
                                        .insert('rect', '#' + t.nn.node().id)
                                        .attr('class', 'er '.concat(_))
                                        .attr('fill', p.fill)
                                        .attr('fill-opacity', '100%')
                                        .attr('stroke', p.stroke)
                                        .attr(
                                          'x',
                                          ''.concat(
                                            s.attr('x') + s.attr('width')
                                          )
                                        )
                                        .attr('y', m)
                                        .attr('width', c + 2 * r + f / 2)
                                        .attr(
                                          'height',
                                          t.nn.node().getBBox().height + 2 * n
                                        ),
                                      (m +=
                                        Math.max(
                                          t.tn.node().getBBox().height,
                                          t.nn.node().getBBox().height
                                        ) +
                                        2 * n),
                                      (_ =
                                        'attributeBoxOdd' == _
                                          ? 'attributeBoxEven'
                                          : 'attributeBoxOdd');
                                  });
                                } else
                                  (g.height = Math.max(p.minEntityHeight, d)),
                                    t.attr(
                                      'transform',
                                      'translate(' +
                                        g.width / 2 +
                                        ',' +
                                        g.height / 2 +
                                        ')'
                                    );
                                return g;
                              })(s, a, t[r].attributes),
                              c = l.width,
                              d = l.height,
                              u = s
                                .insert('rect', '#' + o)
                                .attr('class', 'er entityBox')
                                .attr('fill', p.fill)
                                .attr('fill-opacity', '100%')
                                .attr('stroke', p.stroke)
                                .attr('x', 0)
                                .attr('y', 0)
                                .attr('width', c)
                                .attr('height', d)
                                .node()
                                .getBBox();
                            i.setNode(r, {
                              width: u.width,
                              height: u.height,
                              shape: 'rect',
                              id: r,
                            });
                          }),
                          n
                        );
                      })(a, o.default.getEntities(), n),
                      y = (function (e, t) {
                        return (
                          e.forEach(function (e) {
                            t.setEdge(
                              e.entityA,
                              e.entityB,
                              { relationship: e },
                              _(e)
                            );
                          }),
                          e
                        );
                      })(o.default.getRelationships(), n);
                    d.a.layout(n),
                      (c = a),
                      (m = n).nodes().forEach(function (e) {
                        void 0 !== e &&
                          void 0 !== m.node(e) &&
                          c
                            .select('#' + e)
                            .attr(
                              'transform',
                              'translate(' +
                                (m.node(e).x - m.node(e).width / 2) +
                                ',' +
                                (m.node(e).y - m.node(e).height / 2) +
                                ' )'
                            );
                      }),
                      y.forEach(function (e) {
                        !(function (e, t, i, n) {
                          b++;
                          var r = i.edge(t.entityA, t.entityB, _(t)),
                            a = Object(s.line)()
                              .x(function (e) {
                                return e.x;
                              })
                              .y(function (e) {
                                return e.y;
                              })
                              .curve(s.curveBasis),
                            l = e
                              .insert('path', '#' + n)
                              .attr('class', 'er relationshipLine')
                              .attr('d', a(r.points))
                              .attr('stroke', p.stroke)
                              .attr('fill', 'none');
                          t.relSpec.relType ===
                            o.default.Identification.NON_IDENTIFYING &&
                            l.attr('stroke-dasharray', '8,8');
                          var c = '';
                          switch (
                            (p.arrowMarkerAbsolute &&
                              (c = (c = (c =
                                window.location.protocol +
                                '//' +
                                window.location.host +
                                window.location.pathname +
                                window.location.search).replace(
                                /\(/g,
                                '\\('
                              )).replace(/\)/g, '\\)')),
                            t.relSpec.cardA)
                          ) {
                            case o.default.Cardinality.ZERO_OR_ONE:
                              l.attr(
                                'marker-end',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ZERO_OR_ONE_END +
                                  ')'
                              );
                              break;
                            case o.default.Cardinality.ZERO_OR_MORE:
                              l.attr(
                                'marker-end',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ZERO_OR_MORE_END +
                                  ')'
                              );
                              break;
                            case o.default.Cardinality.ONE_OR_MORE:
                              l.attr(
                                'marker-end',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ONE_OR_MORE_END +
                                  ')'
                              );
                              break;
                            case o.default.Cardinality.ONLY_ONE:
                              l.attr(
                                'marker-end',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ONLY_ONE_END +
                                  ')'
                              );
                          }
                          switch (t.relSpec.cardB) {
                            case o.default.Cardinality.ZERO_OR_ONE:
                              l.attr(
                                'marker-start',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ZERO_OR_ONE_START +
                                  ')'
                              );
                              break;
                            case o.default.Cardinality.ZERO_OR_MORE:
                              l.attr(
                                'marker-start',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ZERO_OR_MORE_START +
                                  ')'
                              );
                              break;
                            case o.default.Cardinality.ONE_OR_MORE:
                              l.attr(
                                'marker-start',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ONE_OR_MORE_START +
                                  ')'
                              );
                              break;
                            case o.default.Cardinality.ONLY_ONE:
                              l.attr(
                                'marker-start',
                                'url(' +
                                  c +
                                  '#' +
                                  g.default.ERMarkers.ONLY_ONE_START +
                                  ')'
                              );
                          }
                          var d = l.node().getTotalLength(),
                            u = l.node().getPointAtLength(0.5 * d),
                            f = 'rel' + b,
                            m = e
                              .append('text')
                              .attr('class', 'er relationshipLabel')
                              .attr('id', f)
                              .attr('x', u.x)
                              .attr('y', u.y)
                              .attr('text-anchor', 'middle')
                              .attr('dominant-baseline', 'middle')
                              .attr(
                                'style',
                                'font-family: ' +
                                  Object(h.getConfig)().fontFamily +
                                  '; font-size: ' +
                                  p.fontSize +
                                  'px'
                              )
                              .text(t.roleA)
                              .node()
                              .getBBox();
                          e.insert('rect', '#' + f)
                            .attr('class', 'er relationshipLabelBox')
                            .attr('x', u.x - m.width / 2)
                            .attr('y', u.y - m.height / 2)
                            .attr('width', m.width)
                            .attr('height', m.height)
                            .attr('fill', 'white')
                            .attr('fill-opacity', '85%');
                        })(a, e, n, v);
                      });
                    var w = p.diagramPadding,
                      C = a.node().getBBox(),
                      S = C.width + 2 * w,
                      k = C.height + 2 * w;
                    Object(f.configureSvgSize)(a, k, S, p.useMaxWidth),
                      a.attr(
                        'viewBox',
                        ''
                          .concat(C.x - w, ' ')
                          .concat(C.y - w, ' ')
                          .concat(S, ' ')
                          .concat(k)
                      );
                  };
                t.default = { setConf: m, draw: v };
              },
              './src/diagrams/er/parser/erDiagram.jison': function (e, t, i) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 2],
                      i = [1, 5],
                      n = [6, 9, 11, 23, 37],
                      r = [1, 17],
                      s = [1, 20],
                      o = [1, 25],
                      a = [1, 26],
                      l = [1, 27],
                      c = [1, 28],
                      d = [1, 37],
                      h = [23, 34, 35],
                      u = [4, 6, 9, 11, 23, 37],
                      g = [30, 31, 32, 33],
                      f = [22, 27],
                      p = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          ER_DIAGRAM: 4,
                          document: 5,
                          EOF: 6,
                          directive: 7,
                          line: 8,
                          SPACE: 9,
                          statement: 10,
                          NEWLINE: 11,
                          openDirective: 12,
                          typeDirective: 13,
                          closeDirective: 14,
                          ':': 15,
                          argDirective: 16,
                          entityName: 17,
                          relSpec: 18,
                          role: 19,
                          BLOCK_START: 20,
                          attributes: 21,
                          BLOCK_STOP: 22,
                          ALPHANUM: 23,
                          attribute: 24,
                          attributeType: 25,
                          attributeName: 26,
                          ATTRIBUTE_WORD: 27,
                          cardinality: 28,
                          relType: 29,
                          ZERO_OR_ONE: 30,
                          ZERO_OR_MORE: 31,
                          ONE_OR_MORE: 32,
                          ONLY_ONE: 33,
                          NON_IDENTIFYING: 34,
                          IDENTIFYING: 35,
                          WORD: 36,
                          open_directive: 37,
                          type_directive: 38,
                          arg_directive: 39,
                          close_directive: 40,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          4: 'ER_DIAGRAM',
                          6: 'EOF',
                          9: 'SPACE',
                          11: 'NEWLINE',
                          15: ':',
                          20: 'BLOCK_START',
                          22: 'BLOCK_STOP',
                          23: 'ALPHANUM',
                          27: 'ATTRIBUTE_WORD',
                          30: 'ZERO_OR_ONE',
                          31: 'ZERO_OR_MORE',
                          32: 'ONE_OR_MORE',
                          33: 'ONLY_ONE',
                          34: 'NON_IDENTIFYING',
                          35: 'IDENTIFYING',
                          36: 'WORD',
                          37: 'open_directive',
                          38: 'type_directive',
                          39: 'arg_directive',
                          40: 'close_directive',
                        },
                        productions_: [
                          0,
                          [3, 3],
                          [3, 2],
                          [5, 0],
                          [5, 2],
                          [8, 2],
                          [8, 1],
                          [8, 1],
                          [8, 1],
                          [7, 4],
                          [7, 6],
                          [10, 1],
                          [10, 5],
                          [10, 4],
                          [10, 3],
                          [10, 1],
                          [17, 1],
                          [21, 1],
                          [21, 2],
                          [24, 2],
                          [25, 1],
                          [26, 1],
                          [18, 3],
                          [28, 1],
                          [28, 1],
                          [28, 1],
                          [28, 1],
                          [29, 1],
                          [29, 1],
                          [19, 1],
                          [19, 1],
                          [12, 1],
                          [13, 1],
                          [16, 1],
                          [14, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 1:
                              break;
                            case 3:
                              this.$ = [];
                              break;
                            case 4:
                              s[a - 1].push(s[a]), (this.$ = s[a - 1]);
                              break;
                            case 5:
                            case 6:
                              this.$ = s[a];
                              break;
                            case 7:
                            case 8:
                              this.$ = [];
                              break;
                            case 12:
                              n.addEntity(s[a - 4]),
                                n.addEntity(s[a - 2]),
                                n.addRelationship(
                                  s[a - 4],
                                  s[a],
                                  s[a - 2],
                                  s[a - 3]
                                );
                              break;
                            case 13:
                              n.addEntity(s[a - 3]),
                                n.addAttributes(s[a - 3], s[a - 1]);
                              break;
                            case 14:
                              n.addEntity(s[a - 2]);
                              break;
                            case 15:
                              n.addEntity(s[a]);
                              break;
                            case 16:
                              this.$ = s[a];
                              break;
                            case 17:
                              this.$ = [s[a]];
                              break;
                            case 18:
                              s[a].push(s[a - 1]), (this.$ = s[a]);
                              break;
                            case 19:
                              this.$ = {
                                attributeType: s[a - 1],
                                attributeName: s[a],
                              };
                              break;
                            case 20:
                            case 21:
                              this.$ = s[a];
                              break;
                            case 22:
                              this.$ = {
                                cardA: s[a],
                                relType: s[a - 1],
                                cardB: s[a - 2],
                              };
                              break;
                            case 23:
                              this.$ = n.Cardinality.ZERO_OR_ONE;
                              break;
                            case 24:
                              this.$ = n.Cardinality.ZERO_OR_MORE;
                              break;
                            case 25:
                              this.$ = n.Cardinality.ONE_OR_MORE;
                              break;
                            case 26:
                              this.$ = n.Cardinality.ONLY_ONE;
                              break;
                            case 27:
                              this.$ = n.Identification.NON_IDENTIFYING;
                              break;
                            case 28:
                              this.$ = n.Identification.IDENTIFYING;
                              break;
                            case 29:
                              this.$ = s[a].replace(/"/g, '');
                              break;
                            case 30:
                              this.$ = s[a];
                              break;
                            case 31:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 32:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 33:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 34:
                              n.parseDirective('}%%', 'close_directive', 'er');
                          }
                        },
                        table: [
                          { 3: 1, 4: t, 7: 3, 12: 4, 37: i },
                          { 1: [3] },
                          e(n, [2, 3], { 5: 6 }),
                          { 3: 7, 4: t, 7: 3, 12: 4, 37: i },
                          { 13: 8, 38: [1, 9] },
                          { 38: [2, 31] },
                          {
                            6: [1, 10],
                            7: 15,
                            8: 11,
                            9: [1, 12],
                            10: 13,
                            11: [1, 14],
                            12: 4,
                            17: 16,
                            23: r,
                            37: i,
                          },
                          { 1: [2, 2] },
                          { 14: 18, 15: [1, 19], 40: s },
                          e([15, 40], [2, 32]),
                          e(n, [2, 8], { 1: [2, 1] }),
                          e(n, [2, 4]),
                          { 7: 15, 10: 21, 12: 4, 17: 16, 23: r, 37: i },
                          e(n, [2, 6]),
                          e(n, [2, 7]),
                          e(n, [2, 11]),
                          e(n, [2, 15], {
                            18: 22,
                            28: 24,
                            20: [1, 23],
                            30: o,
                            31: a,
                            32: l,
                            33: c,
                          }),
                          e(
                            [6, 9, 11, 15, 20, 23, 30, 31, 32, 33, 37],
                            [2, 16]
                          ),
                          { 11: [1, 29] },
                          { 16: 30, 39: [1, 31] },
                          { 11: [2, 34] },
                          e(n, [2, 5]),
                          { 17: 32, 23: r },
                          { 21: 33, 22: [1, 34], 24: 35, 25: 36, 27: d },
                          { 29: 38, 34: [1, 39], 35: [1, 40] },
                          e(h, [2, 23]),
                          e(h, [2, 24]),
                          e(h, [2, 25]),
                          e(h, [2, 26]),
                          e(u, [2, 9]),
                          { 14: 41, 40: s },
                          { 40: [2, 33] },
                          { 15: [1, 42] },
                          { 22: [1, 43] },
                          e(n, [2, 14]),
                          { 21: 44, 22: [2, 17], 24: 35, 25: 36, 27: d },
                          { 26: 45, 27: [1, 46] },
                          { 27: [2, 20] },
                          { 28: 47, 30: o, 31: a, 32: l, 33: c },
                          e(g, [2, 27]),
                          e(g, [2, 28]),
                          { 11: [1, 48] },
                          { 19: 49, 23: [1, 51], 36: [1, 50] },
                          e(n, [2, 13]),
                          { 22: [2, 18] },
                          e(f, [2, 19]),
                          e(f, [2, 21]),
                          { 23: [2, 22] },
                          e(u, [2, 10]),
                          e(n, [2, 12]),
                          e(n, [2, 29]),
                          e(n, [2, 30]),
                        ],
                        defaultActions: {
                          5: [2, 31],
                          7: [2, 2],
                          20: [2, 34],
                          31: [2, 33],
                          37: [2, 20],
                          44: [2, 18],
                          47: [2, 22],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      m = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 37;
                            case 1:
                              return this.begin('type_directive'), 38;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 15
                              );
                            case 3:
                              return this.popState(), this.popState(), 40;
                            case 4:
                              return 39;
                            case 5:
                            case 6:
                              break;
                            case 7:
                              return 11;
                            case 8:
                              break;
                            case 9:
                              return 9;
                            case 10:
                              return 36;
                            case 11:
                              return 4;
                            case 12:
                              return this.begin('block'), 20;
                            case 13:
                              break;
                            case 14:
                              return 27;
                            case 15:
                              break;
                            case 16:
                              return this.popState(), 22;
                            case 17:
                              return t.yytext[0];
                            case 18:
                              return 30;
                            case 19:
                              return 31;
                            case 20:
                              return 32;
                            case 21:
                              return 33;
                            case 22:
                              return 30;
                            case 23:
                              return 31;
                            case 24:
                              return 32;
                            case 25:
                              return 34;
                            case 26:
                              return 35;
                            case 27:
                            case 28:
                              return 34;
                            case 29:
                              return 23;
                            case 30:
                              return t.yytext[0];
                            case 31:
                              return 6;
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:%(?!\{)[^\n]*)/i,
                          /^(?:[^\}]%%[^\n]*)/i,
                          /^(?:[\n]+)/i,
                          /^(?:\s+)/i,
                          /^(?:[\s]+)/i,
                          /^(?:"[^"]*")/i,
                          /^(?:erDiagram\b)/i,
                          /^(?:\{)/i,
                          /^(?:\s+)/i,
                          /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,
                          /^(?:[\n]+)/i,
                          /^(?:\})/i,
                          /^(?:.)/i,
                          /^(?:\|o\b)/i,
                          /^(?:\}o\b)/i,
                          /^(?:\}\|)/i,
                          /^(?:\|\|)/i,
                          /^(?:o\|)/i,
                          /^(?:o\{)/i,
                          /^(?:\|\{)/i,
                          /^(?:\.\.)/i,
                          /^(?:--)/i,
                          /^(?:\.-)/i,
                          /^(?:-\.)/i,
                          /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,
                          /^(?:.)/i,
                          /^(?:$)/i,
                        ],
                        conditions: {
                          open_directive: { rules: [1], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          block: { rules: [13, 14, 15, 16, 17], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10,
                              11,
                              12,
                              18,
                              19,
                              20,
                              21,
                              22,
                              23,
                              24,
                              25,
                              26,
                              27,
                              28,
                              29,
                              30,
                              31,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function _() {
                      this.yy = {};
                    }
                    return (
                      (p.lexer = m), (_.prototype = p), (p.Parser = _), new _()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/er/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return '\n  .entityBox {\n    fill: '
                      .concat(e.mainBkg, ';\n    stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n  }\n\n  .attributeBoxOdd {\n    fill: #ffffff;\n    stroke: '
                      )
                      .concat(
                        e.nodeBorder,
                        ';\n  }\n\n  .attributeBoxEven {\n    fill: #f2f2f2;\n    stroke: '
                      )
                      .concat(
                        e.nodeBorder,
                        ';\n  }\n\n  .relationshipLabelBox {\n    fill: '
                      )
                      .concat(
                        e.tertiaryColor,
                        ';\n    opacity: 0.7;\n    background-color: '
                      )
                      .concat(
                        e.tertiaryColor,
                        ';\n      rect {\n        opacity: 0.5;\n      }\n  }\n\n    .relationshipLine {\n      stroke: '
                      )
                      .concat(e.lineColor, ';\n    }\n');
                  });
              },
              './src/diagrams/flowchart/flowChartShapes.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  i.d(t, 'addToRender', function () {
                    return m;
                  }),
                  i.d(t, 'addToRenderV2', function () {
                    return _;
                  });
                var n = i('dagre-d3'),
                  r = i.n(n);
                function s(e, t, i) {
                  var n = 0.9 * (t.width + t.height),
                    s = [
                      { x: n / 2, y: 0 },
                      { x: n, y: -n / 2 },
                      { x: n / 2, y: -n },
                      { x: 0, y: -n / 2 },
                    ],
                    o = b(e, n, n, s);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, s, e);
                    }),
                    o
                  );
                }
                function o(e, t, i) {
                  var n = t.height,
                    s = n / 4,
                    o = t.width + 2 * s,
                    a = [
                      { x: s, y: 0 },
                      { x: o - s, y: 0 },
                      { x: o, y: -n / 2 },
                      { x: o - s, y: -n },
                      { x: s, y: -n },
                      { x: 0, y: -n / 2 },
                    ],
                    l = b(e, o, n, a);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, a, e);
                    }),
                    l
                  );
                }
                function a(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: -s / 2, y: 0 },
                      { x: n, y: 0 },
                      { x: n, y: -s },
                      { x: -s / 2, y: -s },
                      { x: 0, y: -s / 2 },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function l(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: (-2 * s) / 6, y: 0 },
                      { x: n - s / 6, y: 0 },
                      { x: n + (2 * s) / 6, y: -s },
                      { x: s / 6, y: -s },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function c(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: (2 * s) / 6, y: 0 },
                      { x: n + s / 6, y: 0 },
                      { x: n - (2 * s) / 6, y: -s },
                      { x: -s / 6, y: -s },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function d(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: (-2 * s) / 6, y: 0 },
                      { x: n + (2 * s) / 6, y: 0 },
                      { x: n - s / 6, y: -s },
                      { x: s / 6, y: -s },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function h(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: s / 6, y: 0 },
                      { x: n - s / 6, y: 0 },
                      { x: n + (2 * s) / 6, y: -s },
                      { x: (-2 * s) / 6, y: -s },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function u(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: 0, y: 0 },
                      { x: n + s / 2, y: 0 },
                      { x: n, y: -s / 2 },
                      { x: n + s / 2, y: -s },
                      { x: 0, y: -s },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function g(e, t, i) {
                  var n = t.height,
                    s = t.width + n / 4,
                    o = e
                      .insert('rect', ':first-child')
                      .attr('rx', n / 2)
                      .attr('ry', n / 2)
                      .attr('x', -s / 2)
                      .attr('y', -n / 2)
                      .attr('width', s)
                      .attr('height', n);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.rect(i, e);
                    }),
                    o
                  );
                }
                function f(e, t, i) {
                  var n = t.width,
                    s = t.height,
                    o = [
                      { x: 0, y: 0 },
                      { x: n, y: 0 },
                      { x: n, y: -s },
                      { x: 0, y: -s },
                      { x: 0, y: 0 },
                      { x: -8, y: 0 },
                      { x: n + 8, y: 0 },
                      { x: n + 8, y: -s },
                      { x: -8, y: -s },
                      { x: -8, y: 0 },
                    ],
                    a = b(e, n, s, o);
                  return (
                    (i.intersect = function (e) {
                      return r.a.intersect.polygon(i, o, e);
                    }),
                    a
                  );
                }
                function p(e, t, i) {
                  var n = t.width,
                    s = n / 2,
                    o = s / (2.5 + n / 50),
                    a = t.height + o,
                    l =
                      'M 0,' +
                      o +
                      ' a ' +
                      s +
                      ',' +
                      o +
                      ' 0,0,0 ' +
                      n +
                      ' 0 a ' +
                      s +
                      ',' +
                      o +
                      ' 0,0,0 ' +
                      -n +
                      ' 0 l 0,' +
                      a +
                      ' a ' +
                      s +
                      ',' +
                      o +
                      ' 0,0,0 ' +
                      n +
                      ' 0 l 0,' +
                      -a,
                    c = e
                      .attr('label-offset-y', o)
                      .insert('path', ':first-child')
                      .attr('d', l)
                      .attr(
                        'transform',
                        'translate(' + -n / 2 + ',' + -(a / 2 + o) + ')'
                      );
                  return (
                    (i.intersect = function (e) {
                      var t = r.a.intersect.rect(i, e),
                        n = t.x - i.x;
                      if (
                        0 != s &&
                        (Math.abs(n) < i.width / 2 ||
                          (Math.abs(n) == i.width / 2 &&
                            Math.abs(t.y - i.y) > i.height / 2 - o))
                      ) {
                        var a = o * o * (1 - (n * n) / (s * s));
                        0 != a && (a = Math.sqrt(a)),
                          (a = o - a),
                          e.y - i.y > 0 && (a = -a),
                          (t.y += a);
                      }
                      return t;
                    }),
                    c
                  );
                }
                function m(e) {
                  (e.shapes().question = s),
                    (e.shapes().hexagon = o),
                    (e.shapes().stadium = g),
                    (e.shapes().subroutine = f),
                    (e.shapes().cylinder = p),
                    (e.shapes().rect_left_inv_arrow = a),
                    (e.shapes().lean_right = l),
                    (e.shapes().lean_left = c),
                    (e.shapes().trapezoid = d),
                    (e.shapes().inv_trapezoid = h),
                    (e.shapes().rect_right_inv_arrow = u);
                }
                function _(e) {
                  e({ question: s }),
                    e({ hexagon: o }),
                    e({ stadium: g }),
                    e({ subroutine: f }),
                    e({ cylinder: p }),
                    e({ rect_left_inv_arrow: a }),
                    e({ lean_right: l }),
                    e({ lean_left: c }),
                    e({ trapezoid: d }),
                    e({ inv_trapezoid: h }),
                    e({ rect_right_inv_arrow: u });
                }
                function b(e, t, i, n) {
                  return e
                    .insert('polygon', ':first-child')
                    .attr(
                      'points',
                      n
                        .map(function (e) {
                          return e.x + ',' + e.y;
                        })
                        .join(' ')
                    )
                    .attr(
                      'transform',
                      'translate(' + -t / 2 + ',' + i / 2 + ')'
                    );
                }
                t.default = { addToRender: m, addToRenderV2: _ };
              },
              './src/diagrams/flowchart/flowDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return S;
                  }),
                  i.d(t, 'lookUpDomId', function () {
                    return k;
                  }),
                  i.d(t, 'addVertex', function () {
                    return x;
                  }),
                  i.d(t, 'addSingleLink', function () {
                    return L;
                  }),
                  i.d(t, 'addLink', function () {
                    return M;
                  }),
                  i.d(t, 'updateLinkInterpolate', function () {
                    return D;
                  }),
                  i.d(t, 'updateLink', function () {
                    return N;
                  }),
                  i.d(t, 'addClass', function () {
                    return E;
                  }),
                  i.d(t, 'setDirection', function () {
                    return T;
                  }),
                  i.d(t, 'setClass', function () {
                    return I;
                  }),
                  i.d(t, 'setLink', function () {
                    return O;
                  }),
                  i.d(t, 'getTooltip', function () {
                    return A;
                  }),
                  i.d(t, 'setClickEvent', function () {
                    return R;
                  }),
                  i.d(t, 'bindFunctions', function () {
                    return P;
                  }),
                  i.d(t, 'getDirection', function () {
                    return F;
                  }),
                  i.d(t, 'getVertices', function () {
                    return B;
                  }),
                  i.d(t, 'getEdges', function () {
                    return W;
                  }),
                  i.d(t, 'getClasses', function () {
                    return Y;
                  }),
                  i.d(t, 'clear', function () {
                    return j;
                  }),
                  i.d(t, 'setGen', function () {
                    return V;
                  }),
                  i.d(t, 'defaultStyle', function () {
                    return z;
                  }),
                  i.d(t, 'addSubGraph', function () {
                    return U;
                  }),
                  i.d(t, 'getDepthFirstPos', function () {
                    return Z;
                  }),
                  i.d(t, 'indexNodes', function () {
                    return J;
                  }),
                  i.d(t, 'getSubGraphs', function () {
                    return Q;
                  }),
                  i.d(t, 'firstGraph', function () {
                    return X;
                  });
                var n = i('d3'),
                  r = i('./src/utils.js'),
                  s = i('./src/config.js'),
                  o = i('./src/diagrams/common/common.js'),
                  a = i('./src/mermaidAPI.js'),
                  l = i('./src/logger.js');
                function c(e) {
                  return (c =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                var d,
                  h,
                  u = 0,
                  g = s.getConfig(),
                  f = {},
                  p = [],
                  m = [],
                  _ = [],
                  b = {},
                  v = {},
                  y = 0,
                  w = !0,
                  C = [],
                  S = function (e, t, i) {
                    a.default.parseDirective(this, e, t, i);
                  },
                  k = function (e) {
                    for (var t = Object.keys(f), i = 0; i < t.length; i++)
                      if (f[t[i]].id === e) return f[t[i]].domId;
                    return e;
                  },
                  x = function (e, t, i, n, r) {
                    var a,
                      l = e;
                    void 0 !== l &&
                      0 !== l.trim().length &&
                      (void 0 === f[l] &&
                        (f[l] = {
                          id: l,
                          domId: 'flowchart-' + l + '-' + u,
                          styles: [],
                          classes: [],
                        }),
                      u++,
                      void 0 !== t
                        ? ((g = s.getConfig()),
                          '"' ===
                            (a = o.default.sanitizeText(t.trim(), g))[0] &&
                            '"' === a[a.length - 1] &&
                            (a = a.substring(1, a.length - 1)),
                          (f[l].text = a))
                        : void 0 === f[l].text && (f[l].text = e),
                      void 0 !== i && (f[l].type = i),
                      null != n &&
                        n.forEach(function (e) {
                          f[l].styles.push(e);
                        }),
                      null != r &&
                        r.forEach(function (e) {
                          f[l].classes.push(e);
                        }));
                  },
                  L = function (e, t, i, n) {
                    var r = { start: e, end: t, type: void 0, text: '' };
                    void 0 !== (n = i.text) &&
                      ((r.text = o.default.sanitizeText(n.trim(), g)),
                      '"' === r.text[0] &&
                        '"' === r.text[r.text.length - 1] &&
                        (r.text = r.text.substring(1, r.text.length - 1))),
                      void 0 !== i &&
                        ((r.type = i.type),
                        (r.stroke = i.stroke),
                        (r.length = i.length)),
                      p.push(r);
                  },
                  M = function (e, t, i, n) {
                    var r, s;
                    for (r = 0; r < e.length; r++)
                      for (s = 0; s < t.length; s++) L(e[r], t[s], i, n);
                  },
                  D = function (e, t) {
                    e.forEach(function (e) {
                      'default' === e
                        ? (p.defaultInterpolate = t)
                        : (p[e].interpolate = t);
                    });
                  },
                  N = function (e, t) {
                    e.forEach(function (e) {
                      'default' === e
                        ? (p.defaultStyle = t)
                        : (-1 === r.default.isSubstringInArray('fill', t) &&
                            t.push('fill:none'),
                          (p[e].style = t));
                    });
                  },
                  E = function (e, t) {
                    void 0 === m[e] &&
                      (m[e] = { id: e, styles: [], textStyles: [] }),
                      null != t &&
                        t.forEach(function (t) {
                          if (t.match('color')) {
                            var i = t
                              .replace('fill', 'bgFill')
                              .replace('color', 'fill');
                            m[e].textStyles.push(i);
                          }
                          m[e].styles.push(t);
                        });
                  },
                  T = function (e) {
                    (d = e).match(/.*</) && (d = 'RL'),
                      d.match(/.*\^/) && (d = 'BT'),
                      d.match(/.*>/) && (d = 'LR'),
                      d.match(/.*v/) && (d = 'TB');
                  },
                  I = function (e, t) {
                    e.split(',').forEach(function (e) {
                      var i = e;
                      void 0 !== f[i] && f[i].classes.push(t),
                        void 0 !== b[i] && b[i].classes.push(t);
                    });
                  },
                  O = function (e, t, i) {
                    e.split(',').forEach(function (e) {
                      void 0 !== f[e] &&
                        ((f[e].link = r.default.formatUrl(t, g)),
                        (f[e].linkTarget = i));
                    }),
                      I(e, 'clickable');
                  },
                  A = function (e) {
                    return v[e];
                  },
                  R = function (e, t, i) {
                    e.split(',').forEach(function (e) {
                      !(function (e, t, i) {
                        var n = k(e);
                        if (
                          'loose' === s.getConfig().securityLevel &&
                          void 0 !== t
                        ) {
                          var o = [];
                          if ('string' == typeof i) {
                            o = i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
                            for (var a = 0; a < o.length; a++) {
                              var l = o[a].trim();
                              '"' === l.charAt(0) &&
                                '"' === l.charAt(l.length - 1) &&
                                (l = l.substr(1, l.length - 2)),
                                (o[a] = l);
                            }
                          }
                          0 === o.length && o.push(e),
                            void 0 !== f[e] &&
                              ((f[e].haveCallback = !0),
                              C.push(function () {
                                var e = document.querySelector(
                                  '[id="'.concat(n, '"]')
                                );
                                null !== e &&
                                  e.addEventListener(
                                    'click',
                                    function () {
                                      var e;
                                      r.default.runFunc.apply(
                                        r.default,
                                        [t].concat(
                                          (function (e) {
                                            if (Array.isArray(e)) {
                                              for (
                                                var t = 0,
                                                  i = new Array(e.length);
                                                t < e.length;
                                                t++
                                              )
                                                i[t] = e[t];
                                              return i;
                                            }
                                          })((e = o)) ||
                                            (function (e) {
                                              if (
                                                Symbol.iterator in Object(e) ||
                                                '[object Arguments]' ===
                                                  Object.prototype.toString.call(
                                                    e
                                                  )
                                              )
                                                return Array.from(e);
                                            })(e) ||
                                            (function () {
                                              throw new TypeError(
                                                'Invalid attempt to spread non-iterable instance'
                                              );
                                            })()
                                        )
                                      );
                                    },
                                    !1
                                  );
                              }));
                        }
                      })(e, t, i);
                    }),
                      I(e, 'clickable');
                  },
                  P = function (e) {
                    C.forEach(function (t) {
                      t(e);
                    });
                  },
                  F = function () {
                    return d.trim();
                  },
                  B = function () {
                    return f;
                  },
                  W = function () {
                    return p;
                  },
                  Y = function () {
                    return m;
                  },
                  H = function (e) {
                    var t = Object(n.select)('.mermaidTooltip');
                    null === (t._groups || t)[0][0] &&
                      (t = Object(n.select)('body')
                        .append('div')
                        .attr('class', 'mermaidTooltip')
                        .style('opacity', 0)),
                      Object(n.select)(e)
                        .select('svg')
                        .selectAll('g.node')
                        .on('mouseover', function () {
                          var e = Object(n.select)(this);
                          if (null !== e.attr('title')) {
                            var i = this.getBoundingClientRect();
                            t.transition().duration(200).style('opacity', '.9'),
                              t
                                .html(e.attr('title'))
                                .style(
                                  'left',
                                  window.scrollX +
                                    i.left +
                                    (i.right - i.left) / 2 +
                                    'px'
                                )
                                .style(
                                  'top',
                                  window.scrollY +
                                    i.top -
                                    14 +
                                    document.body.scrollTop +
                                    'px'
                                ),
                              e.classed('hover', !0);
                          }
                        })
                        .on('mouseout', function () {
                          t.transition().duration(500).style('opacity', 0),
                            Object(n.select)(this).classed('hover', !1);
                        });
                  };
                C.push(H);
                var j = function (e) {
                    (f = {}),
                      (m = {}),
                      (p = []),
                      (C = []).push(H),
                      (_ = []),
                      (b = {}),
                      (y = 0),
                      (v = []),
                      (w = !0),
                      (h = e || 'gen-1');
                  },
                  V = function (e) {
                    h = e || 'gen-1';
                  },
                  z = function () {
                    return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
                  },
                  U = function (e, t, i) {
                    var n = e.trim(),
                      r = i;
                    e === i && i.match(/\s/) && (n = void 0);
                    var s,
                      a,
                      d,
                      u = [];
                    if (
                      ((s = u.concat.apply(u, t)),
                      (a = { boolean: {}, number: {}, string: {} }),
                      (d = []),
                      (u = s.filter(function (e) {
                        var t = c(e);
                        return (
                          '' !== e.trim() &&
                          (t in a
                            ? !a[t].hasOwnProperty(e) && (a[t][e] = !0)
                            : !(d.indexOf(e) >= 0) && d.push(e))
                        );
                      })),
                      'gen-1' === h)
                    ) {
                      l.log.warn('LOOKING UP');
                      for (var f = 0; f < u.length; f++) u[f] = k(u[f]);
                    }
                    (n = n || 'subGraph' + y),
                      (r = r || ''),
                      (r = o.default.sanitizeText(r, g)),
                      (y += 1);
                    var p = { id: n, nodes: u, title: r.trim(), classes: [] };
                    return (
                      l.log.info('Adding', p.id, p.nodes),
                      (p.nodes = te(p, _).nodes),
                      _.push(p),
                      (b[n] = p),
                      n
                    );
                  },
                  $ = function (e) {
                    for (var t = 0; t < _.length; t++)
                      if (_[t].id === e) return t;
                    return -1;
                  },
                  K = -1,
                  q = [],
                  G = function e(t, i) {
                    var n = _[i].nodes;
                    if (!((K += 1) > 2e3)) {
                      if (((q[K] = i), _[i].id === t))
                        return { result: !0, count: 0 };
                      for (var r = 0, s = 1; r < n.length; ) {
                        var o = $(n[r]);
                        if (o >= 0) {
                          var a = e(t, o);
                          if (a.result)
                            return { result: !0, count: s + a.count };
                          s += a.count;
                        }
                        r += 1;
                      }
                      return { result: !1, count: s };
                    }
                  },
                  Z = function (e) {
                    return q[e];
                  },
                  J = function () {
                    (K = -1), _.length > 0 && G('none', _.length - 1);
                  },
                  Q = function () {
                    return _;
                  },
                  X = function () {
                    return !!w && ((w = !1), !0);
                  },
                  ee = function (e, t) {
                    var i = !1;
                    return (
                      e.forEach(function (e) {
                        e.nodes.indexOf(t) >= 0 && (i = !0);
                      }),
                      i
                    );
                  },
                  te = function (e, t) {
                    var i = [];
                    return (
                      e.nodes.forEach(function (n, r) {
                        ee(t, n) || i.push(e.nodes[r]);
                      }),
                      { nodes: i }
                    );
                  };
                t.default = {
                  parseDirective: S,
                  defaultConfig: function () {
                    return s.defaultConfig.flowchart;
                  },
                  addVertex: x,
                  lookUpDomId: k,
                  addLink: M,
                  updateLinkInterpolate: D,
                  updateLink: N,
                  addClass: E,
                  setDirection: T,
                  setClass: I,
                  setTooltip: function (e, t) {
                    e.split(',').forEach(function (e) {
                      void 0 !== t &&
                        (v['gen-1' === h ? k(e) : e] = o.default.sanitizeText(
                          t,
                          g
                        ));
                    });
                  },
                  getTooltip: A,
                  setClickEvent: R,
                  setLink: O,
                  bindFunctions: P,
                  getDirection: F,
                  getVertices: B,
                  getEdges: W,
                  getClasses: Y,
                  clear: j,
                  setGen: V,
                  defaultStyle: z,
                  addSubGraph: U,
                  getDepthFirstPos: Z,
                  indexNodes: J,
                  getSubGraphs: Q,
                  destructLink: function (e, t) {
                    var i,
                      n = (function (e) {
                        var t = e.trim(),
                          i = t.slice(0, -1),
                          n = 'arrow_open';
                        switch (t.slice(-1)) {
                          case 'x':
                            (n = 'arrow_cross'),
                              'x' === t[0] &&
                                ((n = 'double_' + n), (i = i.slice(1)));
                            break;
                          case '>':
                            (n = 'arrow_point'),
                              '<' === t[0] &&
                                ((n = 'double_' + n), (i = i.slice(1)));
                            break;
                          case 'o':
                            (n = 'arrow_circle'),
                              'o' === t[0] &&
                                ((n = 'double_' + n), (i = i.slice(1)));
                        }
                        var r = 'normal',
                          s = i.length - 1;
                        '=' === i[0] && (r = 'thick');
                        var o = (function (e, t) {
                          for (var i = t.length, n = 0, r = 0; r < i; ++r)
                            '.' === t[r] && ++n;
                          return n;
                        })(0, i);
                        return (
                          o && ((r = 'dotted'), (s = o)),
                          { type: n, stroke: r, length: s }
                        );
                      })(e);
                    if (t) {
                      if (
                        (i = (function (e) {
                          var t = e.trim(),
                            i = 'arrow_open';
                          switch (t[0]) {
                            case '<':
                              (i = 'arrow_point'), (t = t.slice(1));
                              break;
                            case 'x':
                              (i = 'arrow_cross'), (t = t.slice(1));
                              break;
                            case 'o':
                              (i = 'arrow_circle'), (t = t.slice(1));
                          }
                          var n = 'normal';
                          return (
                            -1 !== t.indexOf('=') && (n = 'thick'),
                            -1 !== t.indexOf('.') && (n = 'dotted'),
                            { type: i, stroke: n }
                          );
                        })(t)).stroke !== n.stroke
                      )
                        return { type: 'INVALID', stroke: 'INVALID' };
                      if ('arrow_open' === i.type) i.type = n.type;
                      else {
                        if (i.type !== n.type)
                          return { type: 'INVALID', stroke: 'INVALID' };
                        i.type = 'double_' + i.type;
                      }
                      return (
                        'double_arrow' === i.type &&
                          (i.type = 'double_arrow_point'),
                        (i.length = n.length),
                        i
                      );
                    }
                    return n;
                  },
                  lex: { firstGraph: X },
                  exists: ee,
                  makeUniq: te,
                };
              },
              './src/diagrams/flowchart/flowRenderer-v2.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return _;
                  }),
                  i.d(t, 'addVertices', function () {
                    return b;
                  }),
                  i.d(t, 'addEdges', function () {
                    return v;
                  }),
                  i.d(t, 'getClasses', function () {
                    return y;
                  }),
                  i.d(t, 'draw', function () {
                    return w;
                  });
                var n = i('graphlib'),
                  r = i.n(n),
                  s = i('d3'),
                  o = i('./src/diagrams/flowchart/flowDb.js'),
                  a = i('./src/diagrams/flowchart/parser/flow.jison'),
                  l = i.n(a),
                  c = i('./src/config.js'),
                  d = i('./src/dagre-wrapper/index.js'),
                  h = i('dagre-d3/lib/label/add-html-label.js'),
                  u = i.n(h),
                  g = i('./src/logger.js'),
                  f = i('./src/diagrams/common/common.js'),
                  p = i('./src/utils.js'),
                  m = {},
                  _ = function (e) {
                    for (var t = Object.keys(e), i = 0; i < t.length; i++)
                      m[t[i]] = e[t[i]];
                  },
                  b = function (e, t, i) {
                    var n = Object(s.select)('[id="'.concat(i, '"]'));
                    Object.keys(e).forEach(function (i) {
                      var r = e[i],
                        s = 'default';
                      r.classes.length > 0 && (s = r.classes.join(' '));
                      var a,
                        l = Object(p.getStylesFromArray)(r.styles),
                        d = void 0 !== r.text ? r.text : r.id;
                      if (Object(c.getConfig)().flowchart.htmlLabels) {
                        var h = {
                          label: d.replace(
                            /fa[lrsb]?:fa-[\w-]+/g,
                            function (e) {
                              return "<i class='".concat(
                                e.replace(':', ' '),
                                "'></i>"
                              );
                            }
                          ),
                        };
                        (a = u()(n, h).node()).parentNode.removeChild(a);
                      } else {
                        var m = document.createElementNS(
                          'http://www.w3.org/2000/svg',
                          'text'
                        );
                        m.setAttribute(
                          'style',
                          l.labelStyle.replace('color:', 'fill:')
                        );
                        for (
                          var _ = d.split(f.default.lineBreakRegex), b = 0;
                          b < _.length;
                          b++
                        ) {
                          var v = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'tspan'
                          );
                          v.setAttributeNS(
                            'http://www.w3.org/XML/1998/namespace',
                            'xml:space',
                            'preserve'
                          ),
                            v.setAttribute('dy', '1em'),
                            v.setAttribute('x', '1'),
                            (v.textContent = _[b]),
                            m.appendChild(v);
                        }
                        a = m;
                      }
                      var y = 0,
                        w = '';
                      switch (r.type) {
                        case 'round':
                          (y = 5), (w = 'rect');
                          break;
                        case 'square':
                          w = 'rect';
                          break;
                        case 'diamond':
                          w = 'question';
                          break;
                        case 'hexagon':
                          w = 'hexagon';
                          break;
                        case 'odd':
                          w = 'rect_left_inv_arrow';
                          break;
                        case 'lean_right':
                          w = 'lean_right';
                          break;
                        case 'lean_left':
                          w = 'lean_left';
                          break;
                        case 'trapezoid':
                          w = 'trapezoid';
                          break;
                        case 'inv_trapezoid':
                          w = 'inv_trapezoid';
                          break;
                        case 'odd_right':
                          w = 'rect_left_inv_arrow';
                          break;
                        case 'circle':
                          w = 'circle';
                          break;
                        case 'ellipse':
                          w = 'ellipse';
                          break;
                        case 'stadium':
                          w = 'stadium';
                          break;
                        case 'subroutine':
                          w = 'subroutine';
                          break;
                        case 'cylinder':
                          w = 'cylinder';
                          break;
                        case 'group':
                          w = 'rect';
                          break;
                        default:
                          w = 'rect';
                      }
                      t.setNode(r.id, {
                        labelStyle: l.labelStyle,
                        shape: w,
                        labelText: d,
                        rx: y,
                        ry: y,
                        class: s,
                        style: l.style,
                        id: r.id,
                        link: r.link,
                        linkTarget: r.linkTarget,
                        tooltip: o.default.getTooltip(r.id) || '',
                        domId: o.default.lookUpDomId(r.id),
                        haveCallback: r.haveCallback,
                        width: 'group' === r.type ? 500 : void 0,
                        type: r.type,
                        padding: Object(c.getConfig)().flowchart.padding,
                      }),
                        g.log.info('setNode', {
                          labelStyle: l.labelStyle,
                          shape: w,
                          labelText: d,
                          rx: y,
                          ry: y,
                          class: s,
                          style: l.style,
                          id: r.id,
                          domId: o.default.lookUpDomId(r.id),
                          width: 'group' === r.type ? 500 : void 0,
                          type: r.type,
                          padding: Object(c.getConfig)().flowchart.padding,
                        });
                    });
                  },
                  v = function (e, t) {
                    var i,
                      n,
                      r = 0;
                    if (void 0 !== e.defaultStyle) {
                      var o = Object(p.getStylesFromArray)(e.defaultStyle);
                      (i = o.style), (n = o.labelStyle);
                    }
                    e.forEach(function (o) {
                      r++;
                      var a = 'L-' + o.start + '-' + o.end,
                        l = 'LS-' + o.start,
                        c = 'LE-' + o.end,
                        d = { style: '', labelStyle: '' };
                      switch (
                        ((d.minlen = o.length || 1),
                        'arrow_open' === o.type
                          ? (d.arrowhead = 'none')
                          : (d.arrowhead = 'normal'),
                        (d.arrowTypeStart = 'arrow_open'),
                        (d.arrowTypeEnd = 'arrow_open'),
                        o.type)
                      ) {
                        case 'double_arrow_cross':
                          d.arrowTypeStart = 'arrow_cross';
                        case 'arrow_cross':
                          d.arrowTypeEnd = 'arrow_cross';
                          break;
                        case 'double_arrow_point':
                          d.arrowTypeStart = 'arrow_point';
                        case 'arrow_point':
                          d.arrowTypeEnd = 'arrow_point';
                          break;
                        case 'double_arrow_circle':
                          d.arrowTypeStart = 'arrow_circle';
                        case 'arrow_circle':
                          d.arrowTypeEnd = 'arrow_circle';
                      }
                      var h = '',
                        u = '';
                      switch (o.stroke) {
                        case 'normal':
                          (h = 'fill:none;'),
                            void 0 !== i && (h = i),
                            void 0 !== n && (u = n),
                            (d.thickness = 'normal'),
                            (d.pattern = 'solid');
                          break;
                        case 'dotted':
                          (d.thickness = 'normal'),
                            (d.pattern = 'dotted'),
                            (d.style =
                              'fill:none;stroke-width:2px;stroke-dasharray:3;');
                          break;
                        case 'thick':
                          (d.thickness = 'thick'),
                            (d.pattern = 'solid'),
                            (d.style = 'stroke-width: 3.5px;fill:none;');
                      }
                      if (void 0 !== o.style) {
                        var g = Object(p.getStylesFromArray)(o.style);
                        (h = g.style), (u = g.labelStyle);
                      }
                      (d.style = d.style += h),
                        (d.labelStyle = d.labelStyle += u),
                        void 0 !== o.interpolate
                          ? (d.curve = Object(p.interpolateToCurve)(
                              o.interpolate,
                              s.curveLinear
                            ))
                          : void 0 !== e.defaultInterpolate
                          ? (d.curve = Object(p.interpolateToCurve)(
                              e.defaultInterpolate,
                              s.curveLinear
                            ))
                          : (d.curve = Object(p.interpolateToCurve)(
                              m.curve,
                              s.curveLinear
                            )),
                        void 0 === o.text
                          ? void 0 !== o.style &&
                            (d.arrowheadStyle = 'fill: #333')
                          : ((d.arrowheadStyle = 'fill: #333'),
                            (d.labelpos = 'c')),
                        (d.labelType = 'text'),
                        (d.label = o.text.replace(
                          f.default.lineBreakRegex,
                          '\n'
                        )),
                        void 0 === o.style &&
                          (d.style =
                            d.style ||
                            'stroke: #333; stroke-width: 1.5px;fill:none;'),
                        (d.labelStyle = d.labelStyle.replace(
                          'color:',
                          'fill:'
                        )),
                        (d.id = a),
                        (d.classes = 'flowchart-link ' + l + ' ' + c),
                        t.setEdge(o.start, o.end, d, r);
                    });
                  },
                  y = function (e) {
                    g.log.info('Extracting classes'), o.default.clear();
                    var t = l.a.parser;
                    t.yy = o.default;
                    try {
                      t.parse(e);
                    } catch (e) {
                      return;
                    }
                    return o.default.getClasses();
                  },
                  w = function (e, t) {
                    g.log.info('Drawing flowchart'),
                      o.default.clear(),
                      o.default.setGen('gen-2');
                    var i = l.a.parser;
                    (i.yy = o.default), i.parse(e);
                    var n = o.default.getDirection();
                    void 0 === n && (n = 'TD');
                    var a,
                      h = Object(c.getConfig)().flowchart,
                      u = h.nodeSpacing || 50,
                      f = h.rankSpacing || 50,
                      m = new r.a.Graph({ multigraph: !0, compound: !0 })
                        .setGraph({
                          rankdir: n,
                          nodesep: u,
                          ranksep: f,
                          marginx: 8,
                          marginy: 8,
                        })
                        .setDefaultEdgeLabel(function () {
                          return {};
                        }),
                      _ = o.default.getSubGraphs();
                    g.log.info('Subgraphs - ', _);
                    for (var y = _.length - 1; y >= 0; y--)
                      (a = _[y]),
                        g.log.info('Subgraph - ', a),
                        o.default.addVertex(
                          a.id,
                          a.title,
                          'group',
                          void 0,
                          a.classes
                        );
                    var w = o.default.getVertices(),
                      C = o.default.getEdges();
                    g.log.info(C);
                    var S = 0;
                    for (S = _.length - 1; S >= 0; S--) {
                      (a = _[S]), Object(s.selectAll)('cluster').append('text');
                      for (var k = 0; k < a.nodes.length; k++)
                        g.log.info('Setting up subgraphs', a.nodes[k], a.id),
                          m.setParent(a.nodes[k], a.id);
                    }
                    b(w, m, t), v(C, m);
                    var x = Object(s.select)('[id="'.concat(t, '"]'));
                    x.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');
                    var L = Object(s.select)('#' + t + ' g');
                    Object(d.render)(
                      L,
                      m,
                      ['point', 'circle', 'cross'],
                      'flowchart',
                      t
                    );
                    var M = h.diagramPadding,
                      D = x.node().getBBox(),
                      N = D.width + 2 * M,
                      E = D.height + 2 * M;
                    if (
                      (g.log.debug(
                        'new ViewBox 0 0 '.concat(N, ' ').concat(E),
                        'translate('
                          .concat(M - m._label.marginx, ', ')
                          .concat(M - m._label.marginy, ')')
                      ),
                      Object(p.configureSvgSize)(x, E, N, h.useMaxWidth),
                      x.attr('viewBox', '0 0 '.concat(N, ' ').concat(E)),
                      x
                        .select('g')
                        .attr(
                          'transform',
                          'translate('
                            .concat(M - m._label.marginx, ', ')
                            .concat(M - D.y, ')')
                        ),
                      o.default.indexNodes('subGraph' + S),
                      !h.htmlLabels)
                    )
                      for (
                        var T = document.querySelectorAll(
                            '[id="' + t + '"] .edgeLabel .label'
                          ),
                          I = 0;
                        I < T.length;
                        I++
                      ) {
                        var O = T[I],
                          A = O.getBBox(),
                          R = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'rect'
                          );
                        R.setAttribute('rx', 0),
                          R.setAttribute('ry', 0),
                          R.setAttribute('width', A.width),
                          R.setAttribute('height', A.height),
                          O.insertBefore(R, O.firstChild);
                      }
                    Object.keys(w).forEach(function (e) {
                      var i = w[e];
                      if (i.link) {
                        var n = Object(s.select)('#' + t + ' [id="' + e + '"]');
                        if (n) {
                          var r = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'a'
                          );
                          r.setAttributeNS(
                            'http://www.w3.org/2000/svg',
                            'class',
                            i.classes.join(' ')
                          ),
                            r.setAttributeNS(
                              'http://www.w3.org/2000/svg',
                              'href',
                              i.link
                            ),
                            r.setAttributeNS(
                              'http://www.w3.org/2000/svg',
                              'rel',
                              'noopener'
                            ),
                            i.linkTarget &&
                              r.setAttributeNS(
                                'http://www.w3.org/2000/svg',
                                'target',
                                i.linkTarget
                              );
                          var o = n.insert(function () {
                              return r;
                            }, ':first-child'),
                            a = n.select('.label-container');
                          a &&
                            o.append(function () {
                              return a.node();
                            });
                          var l = n.select('.label');
                          l &&
                            o.append(function () {
                              return l.node();
                            });
                        }
                      }
                    });
                  };
                t.default = {
                  setConf: _,
                  addVertices: b,
                  addEdges: v,
                  getClasses: y,
                  draw: w,
                };
              },
              './src/diagrams/flowchart/flowRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return v;
                  }),
                  i.d(t, 'addVertices', function () {
                    return y;
                  }),
                  i.d(t, 'addEdges', function () {
                    return w;
                  }),
                  i.d(t, 'getClasses', function () {
                    return C;
                  }),
                  i.d(t, 'draw', function () {
                    return S;
                  });
                var n = i('graphlib'),
                  r = i.n(n),
                  s = i('d3'),
                  o = i('./src/diagrams/flowchart/flowDb.js'),
                  a = i('./src/diagrams/flowchart/parser/flow.jison'),
                  l = i.n(a),
                  c = i('./src/config.js'),
                  d = i('dagre-d3'),
                  h = i.n(d),
                  u = i('dagre-d3/lib/label/add-html-label.js'),
                  g = i.n(u),
                  f = i('./src/logger.js'),
                  p = i('./src/diagrams/common/common.js'),
                  m = i('./src/utils.js'),
                  _ = i('./src/diagrams/flowchart/flowChartShapes.js'),
                  b = {},
                  v = function (e) {
                    for (var t = Object.keys(e), i = 0; i < t.length; i++)
                      b[t[i]] = e[t[i]];
                  },
                  y = function (e, t, i) {
                    var n = Object(s.select)('[id="'.concat(i, '"]'));
                    Object.keys(e).forEach(function (i) {
                      var r = e[i],
                        s = 'default';
                      r.classes.length > 0 && (s = r.classes.join(' '));
                      var a,
                        l = Object(m.getStylesFromArray)(r.styles),
                        d = void 0 !== r.text ? r.text : r.id;
                      if (Object(c.getConfig)().flowchart.htmlLabels) {
                        var h = {
                          label: d.replace(
                            /fa[lrsb]?:fa-[\w-]+/g,
                            function (e) {
                              return "<i class='".concat(
                                e.replace(':', ' '),
                                "'></i>"
                              );
                            }
                          ),
                        };
                        (a = g()(n, h).node()).parentNode.removeChild(a);
                      } else {
                        var u = document.createElementNS(
                          'http://www.w3.org/2000/svg',
                          'text'
                        );
                        u.setAttribute(
                          'style',
                          l.labelStyle.replace('color:', 'fill:')
                        );
                        for (
                          var _ = d.split(p.default.lineBreakRegex), b = 0;
                          b < _.length;
                          b++
                        ) {
                          var v = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'tspan'
                          );
                          v.setAttributeNS(
                            'http://www.w3.org/XML/1998/namespace',
                            'xml:space',
                            'preserve'
                          ),
                            v.setAttribute('dy', '1em'),
                            v.setAttribute('x', '1'),
                            (v.textContent = _[b]),
                            u.appendChild(v);
                        }
                        a = u;
                      }
                      var y = 0,
                        w = '';
                      switch (r.type) {
                        case 'round':
                          (y = 5), (w = 'rect');
                          break;
                        case 'square':
                          w = 'rect';
                          break;
                        case 'diamond':
                          w = 'question';
                          break;
                        case 'hexagon':
                          w = 'hexagon';
                          break;
                        case 'odd':
                          w = 'rect_left_inv_arrow';
                          break;
                        case 'lean_right':
                          w = 'lean_right';
                          break;
                        case 'lean_left':
                          w = 'lean_left';
                          break;
                        case 'trapezoid':
                          w = 'trapezoid';
                          break;
                        case 'inv_trapezoid':
                          w = 'inv_trapezoid';
                          break;
                        case 'odd_right':
                          w = 'rect_left_inv_arrow';
                          break;
                        case 'circle':
                          w = 'circle';
                          break;
                        case 'ellipse':
                          w = 'ellipse';
                          break;
                        case 'stadium':
                          w = 'stadium';
                          break;
                        case 'subroutine':
                          w = 'subroutine';
                          break;
                        case 'cylinder':
                          w = 'cylinder';
                          break;
                        case 'group':
                          w = 'rect';
                          break;
                        default:
                          w = 'rect';
                      }
                      f.log.warn('Adding node', r.id, r.domId),
                        t.setNode(o.default.lookUpDomId(r.id), {
                          labelType: 'svg',
                          labelStyle: l.labelStyle,
                          shape: w,
                          label: a,
                          rx: y,
                          ry: y,
                          class: s,
                          style: l.style,
                          id: o.default.lookUpDomId(r.id),
                        });
                    });
                  },
                  w = function (e, t) {
                    var i,
                      n,
                      r = 0;
                    if (void 0 !== e.defaultStyle) {
                      var a = Object(m.getStylesFromArray)(e.defaultStyle);
                      (i = a.style), (n = a.labelStyle);
                    }
                    e.forEach(function (a) {
                      r++;
                      var l = 'L-' + a.start + '-' + a.end,
                        d = 'LS-' + a.start,
                        h = 'LE-' + a.end,
                        u = {};
                      'arrow_open' === a.type
                        ? (u.arrowhead = 'none')
                        : (u.arrowhead = 'normal');
                      var g = '',
                        f = '';
                      if (void 0 !== a.style) {
                        var _ = Object(m.getStylesFromArray)(a.style);
                        (g = _.style), (f = _.labelStyle);
                      } else
                        switch (a.stroke) {
                          case 'normal':
                            (g = 'fill:none'),
                              void 0 !== i && (g = i),
                              void 0 !== n && (f = n);
                            break;
                          case 'dotted':
                            g =
                              'fill:none;stroke-width:2px;stroke-dasharray:3;';
                            break;
                          case 'thick':
                            g = ' stroke-width: 3.5px;fill:none';
                        }
                      (u.style = g),
                        (u.labelStyle = f),
                        void 0 !== a.interpolate
                          ? (u.curve = Object(m.interpolateToCurve)(
                              a.interpolate,
                              s.curveLinear
                            ))
                          : void 0 !== e.defaultInterpolate
                          ? (u.curve = Object(m.interpolateToCurve)(
                              e.defaultInterpolate,
                              s.curveLinear
                            ))
                          : (u.curve = Object(m.interpolateToCurve)(
                              b.curve,
                              s.curveLinear
                            )),
                        void 0 === a.text
                          ? void 0 !== a.style &&
                            (u.arrowheadStyle = 'fill: #333')
                          : ((u.arrowheadStyle = 'fill: #333'),
                            (u.labelpos = 'c'),
                            Object(c.getConfig)().flowchart.htmlLabels
                              ? ((u.labelType = 'html'),
                                (u.label = '<span id="L-'
                                  .concat(l, '" class="edgeLabel L-')
                                  .concat(d, "' L-")
                                  .concat(h, '">')
                                  .concat(
                                    a.text.replace(
                                      /fa[lrsb]?:fa-[\w-]+/g,
                                      function (e) {
                                        return "<i class='".concat(
                                          e.replace(':', ' '),
                                          "'></i>"
                                        );
                                      }
                                    ),
                                    '</span>'
                                  )))
                              : ((u.labelType = 'text'),
                                (u.label = a.text.replace(
                                  p.default.lineBreakRegex,
                                  '\n'
                                )),
                                void 0 === a.style &&
                                  (u.style =
                                    u.style ||
                                    'stroke: #333; stroke-width: 1.5px;fill:none'),
                                (u.labelStyle = u.labelStyle.replace(
                                  'color:',
                                  'fill:'
                                )))),
                        (u.id = l),
                        (u.class = d + ' ' + h),
                        (u.minlen = a.length || 1),
                        t.setEdge(
                          o.default.lookUpDomId(a.start),
                          o.default.lookUpDomId(a.end),
                          u,
                          r
                        );
                    });
                  },
                  C = function (e) {
                    f.log.info('Extracting classes'), o.default.clear();
                    try {
                      var t = l.a.parser;
                      return (
                        (t.yy = o.default), t.parse(e), o.default.getClasses()
                      );
                    } catch (e) {
                      return;
                    }
                  },
                  S = function (e, t) {
                    f.log.info('Drawing flowchart'),
                      o.default.clear(),
                      o.default.setGen('gen-1');
                    var i = l.a.parser;
                    (i.yy = o.default), i.parse(e);
                    var n = o.default.getDirection();
                    void 0 === n && (n = 'TD');
                    for (
                      var a,
                        d = Object(c.getConfig)().flowchart,
                        u = d.nodeSpacing || 50,
                        g = d.rankSpacing || 50,
                        p = new r.a.Graph({ multigraph: !0, compound: !0 })
                          .setGraph({
                            rankdir: n,
                            nodesep: u,
                            ranksep: g,
                            marginx: 8,
                            marginy: 8,
                          })
                          .setDefaultEdgeLabel(function () {
                            return {};
                          }),
                        b = o.default.getSubGraphs(),
                        v = b.length - 1;
                      v >= 0;
                      v--
                    )
                      (a = b[v]),
                        o.default.addVertex(
                          a.id,
                          a.title,
                          'group',
                          void 0,
                          a.classes
                        );
                    var C = o.default.getVertices();
                    f.log.warn('Get vertices', C);
                    var S = o.default.getEdges(),
                      k = 0;
                    for (k = b.length - 1; k >= 0; k--) {
                      (a = b[k]), Object(s.selectAll)('cluster').append('text');
                      for (var x = 0; x < a.nodes.length; x++)
                        f.log.warn(
                          'Setting subgraph',
                          a.nodes[x],
                          o.default.lookUpDomId(a.nodes[x]),
                          o.default.lookUpDomId(a.id)
                        ),
                          p.setParent(
                            o.default.lookUpDomId(a.nodes[x]),
                            o.default.lookUpDomId(a.id)
                          );
                    }
                    y(C, p, t), w(S, p);
                    var L = new (0, h.a.render)();
                    _.default.addToRender(L),
                      (L.arrows().none = function (e, t, i, n) {
                        var r = e
                          .append('marker')
                          .attr('id', t)
                          .attr('viewBox', '0 0 10 10')
                          .attr('refX', 9)
                          .attr('refY', 5)
                          .attr('markerUnits', 'strokeWidth')
                          .attr('markerWidth', 8)
                          .attr('markerHeight', 6)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 0 0 L 0 0 L 0 0 z');
                        h.a.util.applyStyle(r, i[n + 'Style']);
                      }),
                      (L.arrows().normal = function (e, t) {
                        e.append('marker')
                          .attr('id', t)
                          .attr('viewBox', '0 0 10 10')
                          .attr('refX', 9)
                          .attr('refY', 5)
                          .attr('markerUnits', 'strokeWidth')
                          .attr('markerWidth', 8)
                          .attr('markerHeight', 6)
                          .attr('orient', 'auto')
                          .append('path')
                          .attr('d', 'M 0 0 L 10 5 L 0 10 z')
                          .attr('class', 'arrowheadPath')
                          .style('stroke-width', 1)
                          .style('stroke-dasharray', '1,0');
                      });
                    var M = Object(s.select)('[id="'.concat(t, '"]'));
                    M.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink'),
                      f.log.warn(p);
                    var D = Object(s.select)('#' + t + ' g');
                    L(D, p),
                      D.selectAll('g.node').attr('title', function () {
                        return o.default.getTooltip(this.id);
                      });
                    var N = d.diagramPadding,
                      E = M.node().getBBox(),
                      T = E.width + 2 * N,
                      I = E.height + 2 * N;
                    Object(m.configureSvgSize)(M, I, T, d.useMaxWidth);
                    var O = ''
                      .concat(E.x - N, ' ')
                      .concat(E.y - N, ' ')
                      .concat(T, ' ')
                      .concat(I);
                    for (
                      f.log.debug('viewBox '.concat(O)),
                        M.attr('viewBox', O),
                        o.default.indexNodes('subGraph' + k),
                        k = 0;
                      k < b.length;
                      k++
                    )
                      if ('undefined' !== (a = b[k]).title) {
                        var A = document.querySelectorAll(
                            '#' +
                              t +
                              ' [id="' +
                              o.default.lookUpDomId(a.id) +
                              '"] rect'
                          ),
                          R = document.querySelectorAll(
                            '#' +
                              t +
                              ' [id="' +
                              o.default.lookUpDomId(a.id) +
                              '"]'
                          ),
                          P = A[0].x.baseVal.value,
                          F = A[0].y.baseVal.value,
                          B = A[0].width.baseVal.value,
                          W = Object(s.select)(R[0]).select('.label');
                        W.attr(
                          'transform',
                          'translate('
                            .concat(P + B / 2, ', ')
                            .concat(F + 14, ')')
                        ),
                          W.attr('id', t + 'Text');
                        for (var Y = 0; Y < a.classes.length; Y++)
                          R[0].classList.add(a.classes[Y]);
                      }
                    d.htmlLabels;
                    for (
                      var H = document.querySelectorAll(
                          '[id="' + t + '"] .edgeLabel .label'
                        ),
                        j = 0;
                      j < H.length;
                      j++
                    ) {
                      var V = H[j],
                        z = V.getBBox(),
                        U = document.createElementNS(
                          'http://www.w3.org/2000/svg',
                          'rect'
                        );
                      U.setAttribute('rx', 0),
                        U.setAttribute('ry', 0),
                        U.setAttribute('width', z.width),
                        U.setAttribute('height', z.height),
                        V.insertBefore(U, V.firstChild);
                    }
                    Object.keys(C).forEach(function (e) {
                      var i = C[e];
                      if (i.link) {
                        var n = Object(s.select)(
                          '#' + t + ' [id="' + o.default.lookUpDomId(e) + '"]'
                        );
                        if (n) {
                          var r = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'a'
                          );
                          r.setAttributeNS(
                            'http://www.w3.org/2000/svg',
                            'class',
                            i.classes.join(' ')
                          ),
                            r.setAttributeNS(
                              'http://www.w3.org/2000/svg',
                              'href',
                              i.link
                            ),
                            r.setAttributeNS(
                              'http://www.w3.org/2000/svg',
                              'rel',
                              'noopener'
                            ),
                            i.linkTarget &&
                              r.setAttributeNS(
                                'http://www.w3.org/2000/svg',
                                'target',
                                i.linkTarget
                              );
                          var a = n.insert(function () {
                              return r;
                            }, ':first-child'),
                            l = n.select('.label-container');
                          l &&
                            a.append(function () {
                              return l.node();
                            });
                          var c = n.select('.label');
                          c &&
                            a.append(function () {
                              return c.node();
                            });
                        }
                      }
                    });
                  };
                t.default = {
                  setConf: v,
                  addVertices: y,
                  addEdges: w,
                  getClasses: C,
                  draw: S,
                };
              },
              './src/diagrams/flowchart/parser/flow.jison': function (e, t, i) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 9],
                      i = [1, 7],
                      n = [1, 6],
                      r = [1, 8],
                      s = [
                        1,
                        20,
                        21,
                        22,
                        23,
                        38,
                        46,
                        75,
                        76,
                        77,
                        78,
                        79,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      o = [2, 10],
                      a = [1, 20],
                      l = [1, 21],
                      c = [1, 22],
                      d = [1, 23],
                      h = [1, 30],
                      u = [1, 54],
                      g = [1, 32],
                      f = [1, 33],
                      p = [1, 34],
                      m = [1, 35],
                      _ = [1, 36],
                      b = [1, 48],
                      v = [1, 43],
                      y = [1, 45],
                      w = [1, 40],
                      C = [1, 44],
                      S = [1, 47],
                      k = [1, 51],
                      x = [1, 52],
                      L = [1, 53],
                      M = [1, 42],
                      D = [1, 46],
                      N = [1, 49],
                      E = [1, 50],
                      T = [1, 41],
                      I = [1, 57],
                      O = [1, 62],
                      A = [
                        1,
                        20,
                        21,
                        22,
                        23,
                        38,
                        42,
                        46,
                        75,
                        76,
                        77,
                        78,
                        79,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      R = [1, 66],
                      P = [1, 65],
                      F = [1, 67],
                      B = [20, 21, 23, 69, 70],
                      W = [1, 88],
                      Y = [1, 93],
                      H = [1, 90],
                      j = [1, 95],
                      V = [1, 98],
                      z = [1, 96],
                      U = [1, 97],
                      $ = [1, 91],
                      K = [1, 103],
                      q = [1, 102],
                      G = [1, 92],
                      Z = [1, 94],
                      J = [1, 99],
                      Q = [1, 100],
                      X = [1, 101],
                      ee = [1, 104],
                      te = [20, 21, 22, 23, 69, 70],
                      ie = [20, 21, 22, 23, 47, 69, 70],
                      ne = [
                        20,
                        21,
                        22,
                        23,
                        40,
                        46,
                        47,
                        49,
                        51,
                        53,
                        55,
                        57,
                        59,
                        61,
                        62,
                        64,
                        69,
                        70,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      re = [20, 21, 23],
                      se = [
                        20,
                        21,
                        23,
                        46,
                        69,
                        70,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      oe = [
                        1,
                        12,
                        20,
                        21,
                        22,
                        23,
                        24,
                        38,
                        42,
                        46,
                        75,
                        76,
                        77,
                        78,
                        79,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      ae = [
                        46,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      le = [1, 136],
                      ce = [1, 144],
                      de = [1, 145],
                      he = [1, 146],
                      ue = [1, 147],
                      ge = [1, 131],
                      fe = [1, 132],
                      pe = [1, 128],
                      me = [1, 139],
                      _e = [1, 140],
                      be = [1, 141],
                      ve = [1, 142],
                      ye = [1, 143],
                      we = [1, 148],
                      Ce = [1, 149],
                      Se = [1, 134],
                      ke = [1, 137],
                      xe = [1, 133],
                      Le = [1, 130],
                      Me = [
                        20,
                        21,
                        22,
                        23,
                        38,
                        42,
                        46,
                        75,
                        76,
                        77,
                        78,
                        79,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      De = [1, 152],
                      Ne = [
                        20,
                        21,
                        22,
                        23,
                        26,
                        46,
                        80,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      Ee = [
                        20,
                        21,
                        22,
                        23,
                        24,
                        26,
                        38,
                        40,
                        41,
                        42,
                        46,
                        50,
                        52,
                        54,
                        56,
                        58,
                        60,
                        61,
                        63,
                        65,
                        69,
                        70,
                        71,
                        75,
                        76,
                        77,
                        78,
                        79,
                        80,
                        81,
                        84,
                        94,
                        95,
                        98,
                        99,
                        100,
                        102,
                        103,
                        104,
                        105,
                        109,
                        110,
                        111,
                        112,
                        113,
                        114,
                      ],
                      Te = [12, 21, 22, 24],
                      Ie = [22, 95],
                      Oe = [1, 233],
                      Ae = [1, 237],
                      Re = [1, 234],
                      Pe = [1, 231],
                      Fe = [1, 228],
                      Be = [1, 229],
                      We = [1, 230],
                      Ye = [1, 232],
                      He = [1, 235],
                      je = [1, 236],
                      Ve = [1, 238],
                      ze = [1, 255],
                      Ue = [20, 21, 23, 95],
                      $e = [
                        20,
                        21,
                        22,
                        23,
                        75,
                        91,
                        94,
                        95,
                        98,
                        99,
                        100,
                        101,
                        102,
                        103,
                        104,
                      ],
                      Ke = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          mermaidDoc: 4,
                          directive: 5,
                          openDirective: 6,
                          typeDirective: 7,
                          closeDirective: 8,
                          separator: 9,
                          ':': 10,
                          argDirective: 11,
                          open_directive: 12,
                          type_directive: 13,
                          arg_directive: 14,
                          close_directive: 15,
                          graphConfig: 16,
                          document: 17,
                          line: 18,
                          statement: 19,
                          SEMI: 20,
                          NEWLINE: 21,
                          SPACE: 22,
                          EOF: 23,
                          GRAPH: 24,
                          NODIR: 25,
                          DIR: 26,
                          FirstStmtSeperator: 27,
                          ending: 28,
                          endToken: 29,
                          spaceList: 30,
                          spaceListNewline: 31,
                          verticeStatement: 32,
                          styleStatement: 33,
                          linkStyleStatement: 34,
                          classDefStatement: 35,
                          classStatement: 36,
                          clickStatement: 37,
                          subgraph: 38,
                          text: 39,
                          SQS: 40,
                          SQE: 41,
                          end: 42,
                          link: 43,
                          node: 44,
                          vertex: 45,
                          AMP: 46,
                          STYLE_SEPARATOR: 47,
                          idString: 48,
                          PS: 49,
                          PE: 50,
                          '(-': 51,
                          '-)': 52,
                          STADIUMSTART: 53,
                          STADIUMEND: 54,
                          SUBROUTINESTART: 55,
                          SUBROUTINEEND: 56,
                          CYLINDERSTART: 57,
                          CYLINDEREND: 58,
                          DIAMOND_START: 59,
                          DIAMOND_STOP: 60,
                          TAGEND: 61,
                          TRAPSTART: 62,
                          TRAPEND: 63,
                          INVTRAPSTART: 64,
                          INVTRAPEND: 65,
                          linkStatement: 66,
                          arrowText: 67,
                          TESTSTR: 68,
                          START_LINK: 69,
                          LINK: 70,
                          PIPE: 71,
                          textToken: 72,
                          STR: 73,
                          keywords: 74,
                          STYLE: 75,
                          LINKSTYLE: 76,
                          CLASSDEF: 77,
                          CLASS: 78,
                          CLICK: 79,
                          DOWN: 80,
                          UP: 81,
                          textNoTags: 82,
                          textNoTagsToken: 83,
                          DEFAULT: 84,
                          stylesOpt: 85,
                          alphaNum: 86,
                          CALLBACKNAME: 87,
                          CALLBACKARGS: 88,
                          HREF: 89,
                          LINK_TARGET: 90,
                          HEX: 91,
                          numList: 92,
                          INTERPOLATE: 93,
                          NUM: 94,
                          COMMA: 95,
                          style: 96,
                          styleComponent: 97,
                          ALPHA: 98,
                          COLON: 99,
                          MINUS: 100,
                          UNIT: 101,
                          BRKT: 102,
                          DOT: 103,
                          PCT: 104,
                          TAGSTART: 105,
                          alphaNumToken: 106,
                          idStringToken: 107,
                          alphaNumStatement: 108,
                          PUNCTUATION: 109,
                          UNICODE_TEXT: 110,
                          PLUS: 111,
                          EQUALS: 112,
                          MULT: 113,
                          UNDERSCORE: 114,
                          graphCodeTokens: 115,
                          ARROW_CROSS: 116,
                          ARROW_POINT: 117,
                          ARROW_CIRCLE: 118,
                          ARROW_OPEN: 119,
                          QUOTE: 120,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          10: ':',
                          12: 'open_directive',
                          13: 'type_directive',
                          14: 'arg_directive',
                          15: 'close_directive',
                          20: 'SEMI',
                          21: 'NEWLINE',
                          22: 'SPACE',
                          23: 'EOF',
                          24: 'GRAPH',
                          25: 'NODIR',
                          26: 'DIR',
                          38: 'subgraph',
                          40: 'SQS',
                          41: 'SQE',
                          42: 'end',
                          46: 'AMP',
                          47: 'STYLE_SEPARATOR',
                          49: 'PS',
                          50: 'PE',
                          51: '(-',
                          52: '-)',
                          53: 'STADIUMSTART',
                          54: 'STADIUMEND',
                          55: 'SUBROUTINESTART',
                          56: 'SUBROUTINEEND',
                          57: 'CYLINDERSTART',
                          58: 'CYLINDEREND',
                          59: 'DIAMOND_START',
                          60: 'DIAMOND_STOP',
                          61: 'TAGEND',
                          62: 'TRAPSTART',
                          63: 'TRAPEND',
                          64: 'INVTRAPSTART',
                          65: 'INVTRAPEND',
                          68: 'TESTSTR',
                          69: 'START_LINK',
                          70: 'LINK',
                          71: 'PIPE',
                          73: 'STR',
                          75: 'STYLE',
                          76: 'LINKSTYLE',
                          77: 'CLASSDEF',
                          78: 'CLASS',
                          79: 'CLICK',
                          80: 'DOWN',
                          81: 'UP',
                          84: 'DEFAULT',
                          87: 'CALLBACKNAME',
                          88: 'CALLBACKARGS',
                          89: 'HREF',
                          90: 'LINK_TARGET',
                          91: 'HEX',
                          93: 'INTERPOLATE',
                          94: 'NUM',
                          95: 'COMMA',
                          98: 'ALPHA',
                          99: 'COLON',
                          100: 'MINUS',
                          101: 'UNIT',
                          102: 'BRKT',
                          103: 'DOT',
                          104: 'PCT',
                          105: 'TAGSTART',
                          109: 'PUNCTUATION',
                          110: 'UNICODE_TEXT',
                          111: 'PLUS',
                          112: 'EQUALS',
                          113: 'MULT',
                          114: 'UNDERSCORE',
                          116: 'ARROW_CROSS',
                          117: 'ARROW_POINT',
                          118: 'ARROW_CIRCLE',
                          119: 'ARROW_OPEN',
                          120: 'QUOTE',
                        },
                        productions_: [
                          0,
                          [3, 1],
                          [3, 2],
                          [5, 4],
                          [5, 6],
                          [6, 1],
                          [7, 1],
                          [11, 1],
                          [8, 1],
                          [4, 2],
                          [17, 0],
                          [17, 2],
                          [18, 1],
                          [18, 1],
                          [18, 1],
                          [18, 1],
                          [18, 1],
                          [16, 2],
                          [16, 2],
                          [16, 2],
                          [16, 3],
                          [28, 2],
                          [28, 1],
                          [29, 1],
                          [29, 1],
                          [29, 1],
                          [27, 1],
                          [27, 1],
                          [27, 2],
                          [31, 2],
                          [31, 2],
                          [31, 1],
                          [31, 1],
                          [30, 2],
                          [30, 1],
                          [19, 2],
                          [19, 2],
                          [19, 2],
                          [19, 2],
                          [19, 2],
                          [19, 2],
                          [19, 9],
                          [19, 6],
                          [19, 4],
                          [9, 1],
                          [9, 1],
                          [9, 1],
                          [32, 3],
                          [32, 4],
                          [32, 2],
                          [32, 1],
                          [44, 1],
                          [44, 5],
                          [44, 3],
                          [45, 4],
                          [45, 6],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 6],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 4],
                          [45, 1],
                          [43, 2],
                          [43, 3],
                          [43, 3],
                          [43, 1],
                          [43, 3],
                          [66, 1],
                          [67, 3],
                          [39, 1],
                          [39, 2],
                          [39, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [74, 1],
                          [82, 1],
                          [82, 2],
                          [35, 5],
                          [35, 5],
                          [36, 5],
                          [37, 2],
                          [37, 4],
                          [37, 3],
                          [37, 5],
                          [37, 2],
                          [37, 4],
                          [37, 4],
                          [37, 6],
                          [37, 2],
                          [37, 4],
                          [37, 2],
                          [37, 4],
                          [37, 4],
                          [37, 6],
                          [33, 5],
                          [33, 5],
                          [34, 5],
                          [34, 5],
                          [34, 9],
                          [34, 9],
                          [34, 7],
                          [34, 7],
                          [92, 1],
                          [92, 3],
                          [85, 1],
                          [85, 3],
                          [96, 1],
                          [96, 2],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [97, 1],
                          [72, 1],
                          [72, 1],
                          [72, 1],
                          [72, 1],
                          [72, 1],
                          [72, 1],
                          [83, 1],
                          [83, 1],
                          [83, 1],
                          [83, 1],
                          [48, 1],
                          [48, 2],
                          [86, 1],
                          [86, 2],
                          [108, 1],
                          [108, 1],
                          [108, 1],
                          [108, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [106, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [107, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                          [115, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 5:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 6:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 7:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 8:
                              n.parseDirective(
                                '}%%',
                                'close_directive',
                                'flowchart'
                              );
                              break;
                            case 10:
                              this.$ = [];
                              break;
                            case 11:
                              s[a] !== [] && s[a - 1].push(s[a]),
                                (this.$ = s[a - 1]);
                              break;
                            case 12:
                            case 76:
                            case 78:
                            case 90:
                            case 146:
                            case 148:
                            case 149:
                              this.$ = s[a];
                              break;
                            case 19:
                              n.setDirection('TB'), (this.$ = 'TB');
                              break;
                            case 20:
                              n.setDirection(s[a - 1]), (this.$ = s[a - 1]);
                              break;
                            case 35:
                              this.$ = s[a - 1].nodes;
                              break;
                            case 36:
                            case 37:
                            case 38:
                            case 39:
                            case 40:
                              this.$ = [];
                              break;
                            case 41:
                              this.$ = n.addSubGraph(
                                s[a - 6],
                                s[a - 1],
                                s[a - 4]
                              );
                              break;
                            case 42:
                              this.$ = n.addSubGraph(
                                s[a - 3],
                                s[a - 1],
                                s[a - 3]
                              );
                              break;
                            case 43:
                              this.$ = n.addSubGraph(void 0, s[a - 1], void 0);
                              break;
                            case 47:
                              n.addLink(s[a - 2].stmt, s[a], s[a - 1]),
                                (this.$ = {
                                  stmt: s[a],
                                  nodes: s[a].concat(s[a - 2].nodes),
                                });
                              break;
                            case 48:
                              n.addLink(s[a - 3].stmt, s[a - 1], s[a - 2]),
                                (this.$ = {
                                  stmt: s[a - 1],
                                  nodes: s[a - 1].concat(s[a - 3].nodes),
                                });
                              break;
                            case 49:
                              this.$ = { stmt: s[a - 1], nodes: s[a - 1] };
                              break;
                            case 50:
                              this.$ = { stmt: s[a], nodes: s[a] };
                              break;
                            case 51:
                              this.$ = [s[a]];
                              break;
                            case 52:
                              this.$ = s[a - 4].concat(s[a]);
                              break;
                            case 53:
                              (this.$ = [s[a - 2]]), n.setClass(s[a - 2], s[a]);
                              break;
                            case 54:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'square');
                              break;
                            case 55:
                              (this.$ = s[a - 5]),
                                n.addVertex(s[a - 5], s[a - 2], 'circle');
                              break;
                            case 56:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'ellipse');
                              break;
                            case 57:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'stadium');
                              break;
                            case 58:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'subroutine');
                              break;
                            case 59:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'cylinder');
                              break;
                            case 60:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'round');
                              break;
                            case 61:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'diamond');
                              break;
                            case 62:
                              (this.$ = s[a - 5]),
                                n.addVertex(s[a - 5], s[a - 2], 'hexagon');
                              break;
                            case 63:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'odd');
                              break;
                            case 64:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'trapezoid');
                              break;
                            case 65:
                              (this.$ = s[a - 3]),
                                n.addVertex(
                                  s[a - 3],
                                  s[a - 1],
                                  'inv_trapezoid'
                                );
                              break;
                            case 66:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'lean_right');
                              break;
                            case 67:
                              (this.$ = s[a - 3]),
                                n.addVertex(s[a - 3], s[a - 1], 'lean_left');
                              break;
                            case 68:
                              (this.$ = s[a]), n.addVertex(s[a]);
                              break;
                            case 69:
                              (s[a - 1].text = s[a]), (this.$ = s[a - 1]);
                              break;
                            case 70:
                            case 71:
                              (s[a - 2].text = s[a - 1]), (this.$ = s[a - 2]);
                              break;
                            case 72:
                              this.$ = s[a];
                              break;
                            case 73:
                              var l = n.destructLink(s[a], s[a - 2]);
                              this.$ = {
                                type: l.type,
                                stroke: l.stroke,
                                length: l.length,
                                text: s[a - 1],
                              };
                              break;
                            case 74:
                              (l = n.destructLink(s[a])),
                                (this.$ = {
                                  type: l.type,
                                  stroke: l.stroke,
                                  length: l.length,
                                });
                              break;
                            case 75:
                              this.$ = s[a - 1];
                              break;
                            case 77:
                            case 91:
                            case 147:
                              this.$ = s[a - 1] + '' + s[a];
                              break;
                            case 92:
                            case 93:
                              (this.$ = s[a - 4]), n.addClass(s[a - 2], s[a]);
                              break;
                            case 94:
                              (this.$ = s[a - 4]), n.setClass(s[a - 2], s[a]);
                              break;
                            case 95:
                            case 103:
                              (this.$ = s[a - 1]),
                                n.setClickEvent(s[a - 1], s[a]);
                              break;
                            case 96:
                            case 104:
                              (this.$ = s[a - 3]),
                                n.setClickEvent(s[a - 3], s[a - 2]),
                                n.setTooltip(s[a - 3], s[a]);
                              break;
                            case 97:
                              (this.$ = s[a - 2]),
                                n.setClickEvent(s[a - 2], s[a - 1], s[a]);
                              break;
                            case 98:
                              (this.$ = s[a - 4]),
                                n.setClickEvent(s[a - 4], s[a - 3], s[a - 2]),
                                n.setTooltip(s[a - 4], s[a]);
                              break;
                            case 99:
                            case 105:
                              (this.$ = s[a - 1]), n.setLink(s[a - 1], s[a]);
                              break;
                            case 100:
                            case 106:
                              (this.$ = s[a - 3]),
                                n.setLink(s[a - 3], s[a - 2]),
                                n.setTooltip(s[a - 3], s[a]);
                              break;
                            case 101:
                            case 107:
                              (this.$ = s[a - 3]),
                                n.setLink(s[a - 3], s[a - 2], s[a]);
                              break;
                            case 102:
                            case 108:
                              (this.$ = s[a - 5]),
                                n.setLink(s[a - 5], s[a - 4], s[a]),
                                n.setTooltip(s[a - 5], s[a - 2]);
                              break;
                            case 109:
                              (this.$ = s[a - 4]),
                                n.addVertex(s[a - 2], void 0, void 0, s[a]);
                              break;
                            case 110:
                            case 112:
                              (this.$ = s[a - 4]), n.updateLink(s[a - 2], s[a]);
                              break;
                            case 111:
                              (this.$ = s[a - 4]),
                                n.updateLink([s[a - 2]], s[a]);
                              break;
                            case 113:
                              (this.$ = s[a - 8]),
                                n.updateLinkInterpolate([s[a - 6]], s[a - 2]),
                                n.updateLink([s[a - 6]], s[a]);
                              break;
                            case 114:
                              (this.$ = s[a - 8]),
                                n.updateLinkInterpolate(s[a - 6], s[a - 2]),
                                n.updateLink(s[a - 6], s[a]);
                              break;
                            case 115:
                              (this.$ = s[a - 6]),
                                n.updateLinkInterpolate([s[a - 4]], s[a]);
                              break;
                            case 116:
                              (this.$ = s[a - 6]),
                                n.updateLinkInterpolate(s[a - 4], s[a]);
                              break;
                            case 117:
                            case 119:
                              this.$ = [s[a]];
                              break;
                            case 118:
                            case 120:
                              s[a - 2].push(s[a]), (this.$ = s[a - 2]);
                              break;
                            case 122:
                              this.$ = s[a - 1] + s[a];
                              break;
                            case 144:
                              this.$ = s[a];
                              break;
                            case 145:
                              this.$ = s[a - 1] + '' + s[a];
                              break;
                            case 150:
                              this.$ = 'v';
                              break;
                            case 151:
                              this.$ = '-';
                          }
                        },
                        table: [
                          {
                            3: 1,
                            4: 2,
                            5: 3,
                            6: 5,
                            12: t,
                            16: 4,
                            21: i,
                            22: n,
                            24: r,
                          },
                          { 1: [3] },
                          { 1: [2, 1] },
                          {
                            3: 10,
                            4: 2,
                            5: 3,
                            6: 5,
                            12: t,
                            16: 4,
                            21: i,
                            22: n,
                            24: r,
                          },
                          e(s, o, { 17: 11 }),
                          { 7: 12, 13: [1, 13] },
                          { 16: 14, 21: i, 22: n, 24: r },
                          { 16: 15, 21: i, 22: n, 24: r },
                          { 25: [1, 16], 26: [1, 17] },
                          { 13: [2, 5] },
                          { 1: [2, 2] },
                          {
                            1: [2, 9],
                            18: 18,
                            19: 19,
                            20: a,
                            21: l,
                            22: c,
                            23: d,
                            32: 24,
                            33: 25,
                            34: 26,
                            35: 27,
                            36: 28,
                            37: 29,
                            38: h,
                            44: 31,
                            45: 37,
                            46: u,
                            48: 38,
                            75: g,
                            76: f,
                            77: p,
                            78: m,
                            79: _,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          { 8: 55, 10: [1, 56], 15: I },
                          e([10, 15], [2, 6]),
                          e(s, [2, 17]),
                          e(s, [2, 18]),
                          e(s, [2, 19]),
                          { 20: [1, 59], 21: [1, 60], 22: O, 27: 58, 30: 61 },
                          e(A, [2, 11]),
                          e(A, [2, 12]),
                          e(A, [2, 13]),
                          e(A, [2, 14]),
                          e(A, [2, 15]),
                          e(A, [2, 16]),
                          {
                            9: 63,
                            20: R,
                            21: P,
                            23: F,
                            43: 64,
                            66: 68,
                            69: [1, 69],
                            70: [1, 70],
                          },
                          { 9: 71, 20: R, 21: P, 23: F },
                          { 9: 72, 20: R, 21: P, 23: F },
                          { 9: 73, 20: R, 21: P, 23: F },
                          { 9: 74, 20: R, 21: P, 23: F },
                          { 9: 75, 20: R, 21: P, 23: F },
                          { 9: 77, 20: R, 21: P, 22: [1, 76], 23: F },
                          e(B, [2, 50], { 30: 78, 22: O }),
                          { 22: [1, 79] },
                          { 22: [1, 80] },
                          { 22: [1, 81] },
                          { 22: [1, 82] },
                          {
                            26: W,
                            46: Y,
                            73: [1, 86],
                            80: H,
                            86: 85,
                            87: [1, 83],
                            89: [1, 84],
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(te, [2, 51], { 47: [1, 105] }),
                          e(ie, [2, 68], {
                            107: 116,
                            40: [1, 106],
                            46: u,
                            49: [1, 107],
                            51: [1, 108],
                            53: [1, 109],
                            55: [1, 110],
                            57: [1, 111],
                            59: [1, 112],
                            61: [1, 113],
                            62: [1, 114],
                            64: [1, 115],
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          }),
                          e(ne, [2, 144]),
                          e(ne, [2, 165]),
                          e(ne, [2, 166]),
                          e(ne, [2, 167]),
                          e(ne, [2, 168]),
                          e(ne, [2, 169]),
                          e(ne, [2, 170]),
                          e(ne, [2, 171]),
                          e(ne, [2, 172]),
                          e(ne, [2, 173]),
                          e(ne, [2, 174]),
                          e(ne, [2, 175]),
                          e(ne, [2, 176]),
                          e(ne, [2, 177]),
                          e(ne, [2, 178]),
                          e(ne, [2, 179]),
                          { 9: 117, 20: R, 21: P, 23: F },
                          { 11: 118, 14: [1, 119] },
                          e(re, [2, 8]),
                          e(s, [2, 20]),
                          e(s, [2, 26]),
                          e(s, [2, 27]),
                          { 21: [1, 120] },
                          e(se, [2, 34], { 30: 121, 22: O }),
                          e(A, [2, 35]),
                          {
                            44: 122,
                            45: 37,
                            46: u,
                            48: 38,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          e(oe, [2, 44]),
                          e(oe, [2, 45]),
                          e(oe, [2, 46]),
                          e(ae, [2, 72], {
                            67: 123,
                            68: [1, 124],
                            71: [1, 125],
                          }),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 126,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(
                            [
                              46,
                              68,
                              71,
                              80,
                              94,
                              95,
                              98,
                              99,
                              100,
                              102,
                              103,
                              109,
                              110,
                              111,
                              112,
                              113,
                              114,
                            ],
                            [2, 74]
                          ),
                          e(A, [2, 36]),
                          e(A, [2, 37]),
                          e(A, [2, 38]),
                          e(A, [2, 39]),
                          e(A, [2, 40]),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 150,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(Me, o, { 17: 151 }),
                          e(B, [2, 49], { 46: De }),
                          {
                            26: W,
                            46: Y,
                            80: H,
                            86: 153,
                            91: [1, 154],
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          { 84: [1, 155], 92: 156, 94: [1, 157] },
                          {
                            26: W,
                            46: Y,
                            80: H,
                            84: [1, 158],
                            86: 159,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            26: W,
                            46: Y,
                            80: H,
                            86: 160,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(re, [2, 95], { 22: [1, 161], 88: [1, 162] }),
                          e(re, [2, 99], { 22: [1, 163] }),
                          e(re, [2, 103], {
                            106: 89,
                            108: 165,
                            22: [1, 164],
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          }),
                          e(re, [2, 105], { 22: [1, 166] }),
                          e(Ne, [2, 146]),
                          e(Ne, [2, 148]),
                          e(Ne, [2, 149]),
                          e(Ne, [2, 150]),
                          e(Ne, [2, 151]),
                          e(Ee, [2, 152]),
                          e(Ee, [2, 153]),
                          e(Ee, [2, 154]),
                          e(Ee, [2, 155]),
                          e(Ee, [2, 156]),
                          e(Ee, [2, 157]),
                          e(Ee, [2, 158]),
                          e(Ee, [2, 159]),
                          e(Ee, [2, 160]),
                          e(Ee, [2, 161]),
                          e(Ee, [2, 162]),
                          e(Ee, [2, 163]),
                          e(Ee, [2, 164]),
                          {
                            46: u,
                            48: 167,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 168,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 170,
                            42: ue,
                            46: Y,
                            49: [1, 169],
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 171,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 172,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 173,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 174,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 175,
                            42: ue,
                            46: Y,
                            59: [1, 176],
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 177,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 178,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 179,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(ne, [2, 145]),
                          e(Te, [2, 3]),
                          { 8: 180, 15: I },
                          { 15: [2, 7] },
                          e(s, [2, 28]),
                          e(se, [2, 33]),
                          e(B, [2, 47], { 30: 181, 22: O }),
                          e(ae, [2, 69], { 22: [1, 182] }),
                          { 22: [1, 183] },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 184,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            70: [1, 185],
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(Ee, [2, 76]),
                          e(Ee, [2, 78]),
                          e(Ee, [2, 134]),
                          e(Ee, [2, 135]),
                          e(Ee, [2, 136]),
                          e(Ee, [2, 137]),
                          e(Ee, [2, 138]),
                          e(Ee, [2, 139]),
                          e(Ee, [2, 140]),
                          e(Ee, [2, 141]),
                          e(Ee, [2, 142]),
                          e(Ee, [2, 143]),
                          e(Ee, [2, 79]),
                          e(Ee, [2, 80]),
                          e(Ee, [2, 81]),
                          e(Ee, [2, 82]),
                          e(Ee, [2, 83]),
                          e(Ee, [2, 84]),
                          e(Ee, [2, 85]),
                          e(Ee, [2, 86]),
                          e(Ee, [2, 87]),
                          e(Ee, [2, 88]),
                          e(Ee, [2, 89]),
                          {
                            9: 188,
                            20: R,
                            21: P,
                            22: le,
                            23: F,
                            24: ce,
                            26: de,
                            38: he,
                            40: [1, 187],
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            18: 18,
                            19: 19,
                            20: a,
                            21: l,
                            22: c,
                            23: d,
                            32: 24,
                            33: 25,
                            34: 26,
                            35: 27,
                            36: 28,
                            37: 29,
                            38: h,
                            42: [1, 189],
                            44: 31,
                            45: 37,
                            46: u,
                            48: 38,
                            75: g,
                            76: f,
                            77: p,
                            78: m,
                            79: _,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          { 22: O, 30: 190 },
                          {
                            22: [1, 191],
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 165,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          { 22: [1, 192] },
                          { 22: [1, 193] },
                          { 22: [1, 194], 95: [1, 195] },
                          e(Ie, [2, 117]),
                          { 22: [1, 196] },
                          {
                            22: [1, 197],
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 165,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: [1, 198],
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 165,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          { 73: [1, 199] },
                          e(re, [2, 97], { 22: [1, 200] }),
                          { 73: [1, 201], 90: [1, 202] },
                          { 73: [1, 203] },
                          e(Ne, [2, 147]),
                          { 73: [1, 204], 90: [1, 205] },
                          e(te, [2, 53], {
                            107: 116,
                            46: u,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          }),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            41: [1, 206],
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 207,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            50: [1, 208],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            52: [1, 209],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            54: [1, 210],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            56: [1, 211],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            58: [1, 212],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            60: [1, 213],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 214,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            41: [1, 215],
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            61: ge,
                            63: [1, 216],
                            65: [1, 217],
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            61: ge,
                            63: [1, 219],
                            65: [1, 218],
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          { 9: 220, 20: R, 21: P, 23: F },
                          e(B, [2, 48], { 46: De }),
                          e(ae, [2, 71]),
                          e(ae, [2, 70]),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            71: [1, 221],
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(ae, [2, 73]),
                          e(Ee, [2, 77]),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            39: 222,
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 127,
                            73: pe,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(Me, o, { 17: 223 }),
                          e(A, [2, 43]),
                          {
                            45: 224,
                            46: u,
                            48: 38,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 225,
                            91: Re,
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 239,
                            91: Re,
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 240,
                            91: Re,
                            93: [1, 241],
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 242,
                            91: Re,
                            93: [1, 243],
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          { 94: [1, 244] },
                          {
                            22: Oe,
                            75: Ae,
                            85: 245,
                            91: Re,
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 246,
                            91: Re,
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          {
                            26: W,
                            46: Y,
                            80: H,
                            86: 247,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(re, [2, 96]),
                          { 73: [1, 248] },
                          e(re, [2, 100], { 22: [1, 249] }),
                          e(re, [2, 101]),
                          e(re, [2, 104]),
                          e(re, [2, 106], { 22: [1, 250] }),
                          e(re, [2, 107]),
                          e(ie, [2, 54]),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            50: [1, 251],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(ie, [2, 60]),
                          e(ie, [2, 56]),
                          e(ie, [2, 57]),
                          e(ie, [2, 58]),
                          e(ie, [2, 59]),
                          e(ie, [2, 61]),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            42: ue,
                            46: Y,
                            60: [1, 252],
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(ie, [2, 63]),
                          e(ie, [2, 64]),
                          e(ie, [2, 66]),
                          e(ie, [2, 65]),
                          e(ie, [2, 67]),
                          e(Te, [2, 4]),
                          e(
                            [
                              22,
                              46,
                              80,
                              94,
                              95,
                              98,
                              99,
                              100,
                              102,
                              103,
                              109,
                              110,
                              111,
                              112,
                              113,
                              114,
                            ],
                            [2, 75]
                          ),
                          {
                            22: le,
                            24: ce,
                            26: de,
                            38: he,
                            41: [1, 253],
                            42: ue,
                            46: Y,
                            61: ge,
                            69: fe,
                            72: 186,
                            74: 138,
                            75: me,
                            76: _e,
                            77: be,
                            78: ve,
                            79: ye,
                            80: we,
                            81: Ce,
                            83: 129,
                            84: Se,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: ke,
                            102: K,
                            103: q,
                            104: xe,
                            105: Le,
                            106: 135,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            18: 18,
                            19: 19,
                            20: a,
                            21: l,
                            22: c,
                            23: d,
                            32: 24,
                            33: 25,
                            34: 26,
                            35: 27,
                            36: 28,
                            37: 29,
                            38: h,
                            42: [1, 254],
                            44: 31,
                            45: 37,
                            46: u,
                            48: 38,
                            75: g,
                            76: f,
                            77: p,
                            78: m,
                            79: _,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          e(te, [2, 52]),
                          e(re, [2, 109], { 95: ze }),
                          e(Ue, [2, 119], {
                            97: 256,
                            22: Oe,
                            75: Ae,
                            91: Re,
                            94: Pe,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          }),
                          e($e, [2, 121]),
                          e($e, [2, 123]),
                          e($e, [2, 124]),
                          e($e, [2, 125]),
                          e($e, [2, 126]),
                          e($e, [2, 127]),
                          e($e, [2, 128]),
                          e($e, [2, 129]),
                          e($e, [2, 130]),
                          e($e, [2, 131]),
                          e($e, [2, 132]),
                          e($e, [2, 133]),
                          e(re, [2, 110], { 95: ze }),
                          e(re, [2, 111], { 95: ze }),
                          { 22: [1, 257] },
                          e(re, [2, 112], { 95: ze }),
                          { 22: [1, 258] },
                          e(Ie, [2, 118]),
                          e(re, [2, 92], { 95: ze }),
                          e(re, [2, 93], { 95: ze }),
                          e(re, [2, 94], {
                            106: 89,
                            108: 165,
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          }),
                          e(re, [2, 98]),
                          { 90: [1, 259] },
                          { 90: [1, 260] },
                          { 50: [1, 261] },
                          { 60: [1, 262] },
                          { 9: 263, 20: R, 21: P, 23: F },
                          e(A, [2, 42]),
                          {
                            22: Oe,
                            75: Ae,
                            91: Re,
                            94: Pe,
                            96: 264,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          e($e, [2, 122]),
                          {
                            26: W,
                            46: Y,
                            80: H,
                            86: 265,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          {
                            26: W,
                            46: Y,
                            80: H,
                            86: 266,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            106: 89,
                            108: 87,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          },
                          e(re, [2, 102]),
                          e(re, [2, 108]),
                          e(ie, [2, 55]),
                          e(ie, [2, 62]),
                          e(Me, o, { 17: 267 }),
                          e(Ue, [2, 120], {
                            97: 256,
                            22: Oe,
                            75: Ae,
                            91: Re,
                            94: Pe,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          }),
                          e(re, [2, 115], {
                            106: 89,
                            108: 165,
                            22: [1, 268],
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          }),
                          e(re, [2, 116], {
                            106: 89,
                            108: 165,
                            22: [1, 269],
                            26: W,
                            46: Y,
                            80: H,
                            94: j,
                            95: V,
                            98: z,
                            99: U,
                            100: $,
                            102: K,
                            103: q,
                            109: G,
                            110: Z,
                            111: J,
                            112: Q,
                            113: X,
                            114: ee,
                          }),
                          {
                            18: 18,
                            19: 19,
                            20: a,
                            21: l,
                            22: c,
                            23: d,
                            32: 24,
                            33: 25,
                            34: 26,
                            35: 27,
                            36: 28,
                            37: 29,
                            38: h,
                            42: [1, 270],
                            44: 31,
                            45: 37,
                            46: u,
                            48: 38,
                            75: g,
                            76: f,
                            77: p,
                            78: m,
                            79: _,
                            80: b,
                            94: v,
                            95: y,
                            98: w,
                            99: C,
                            100: S,
                            102: k,
                            103: x,
                            107: 39,
                            109: L,
                            110: M,
                            111: D,
                            112: N,
                            113: E,
                            114: T,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 271,
                            91: Re,
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          {
                            22: Oe,
                            75: Ae,
                            85: 272,
                            91: Re,
                            94: Pe,
                            96: 226,
                            97: 227,
                            98: Fe,
                            99: Be,
                            100: We,
                            101: Ye,
                            102: He,
                            103: je,
                            104: Ve,
                          },
                          e(A, [2, 41]),
                          e(re, [2, 113], { 95: ze }),
                          e(re, [2, 114], { 95: ze }),
                        ],
                        defaultActions: {
                          2: [2, 1],
                          9: [2, 5],
                          10: [2, 2],
                          119: [2, 7],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      qe = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: {},
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 12;
                            case 1:
                              return this.begin('type_directive'), 13;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 10
                              );
                            case 3:
                              return this.popState(), this.popState(), 15;
                            case 4:
                              return 14;
                            case 5:
                            case 6:
                              break;
                            case 7:
                              this.begin('string');
                              break;
                            case 8:
                              this.popState();
                              break;
                            case 9:
                              return 'STR';
                            case 10:
                              return 75;
                            case 11:
                              return 84;
                            case 12:
                              return 76;
                            case 13:
                              return 93;
                            case 14:
                              return 77;
                            case 15:
                              return 78;
                            case 16:
                              this.begin('href');
                              break;
                            case 17:
                              this.popState();
                              break;
                            case 18:
                              return 89;
                            case 19:
                              this.begin('callbackname');
                              break;
                            case 20:
                              this.popState();
                              break;
                            case 21:
                              this.popState(), this.begin('callbackargs');
                              break;
                            case 22:
                              return 87;
                            case 23:
                              this.popState();
                              break;
                            case 24:
                              return 88;
                            case 25:
                              this.begin('click');
                              break;
                            case 26:
                              this.popState();
                              break;
                            case 27:
                              return 79;
                            case 28:
                            case 29:
                              return (
                                e.lex.firstGraph() && this.begin('dir'), 24
                              );
                            case 30:
                              return 38;
                            case 31:
                              return 42;
                            case 32:
                            case 33:
                            case 34:
                            case 35:
                              return 90;
                            case 36:
                              return this.popState(), 25;
                            case 37:
                            case 38:
                            case 39:
                            case 40:
                            case 41:
                            case 42:
                            case 43:
                            case 44:
                            case 45:
                            case 46:
                              return this.popState(), 26;
                            case 47:
                              return 94;
                            case 48:
                              return 102;
                            case 49:
                              return 47;
                            case 50:
                              return 99;
                            case 51:
                              return 46;
                            case 52:
                              return 20;
                            case 53:
                              return 95;
                            case 54:
                              return 113;
                            case 55:
                            case 56:
                            case 57:
                              return 70;
                            case 58:
                            case 59:
                            case 60:
                              return 69;
                            case 61:
                              return 51;
                            case 62:
                              return 52;
                            case 63:
                              return 53;
                            case 64:
                              return 54;
                            case 65:
                              return 55;
                            case 66:
                              return 56;
                            case 67:
                              return 57;
                            case 68:
                              return 58;
                            case 69:
                              return 100;
                            case 70:
                              return 103;
                            case 71:
                              return 114;
                            case 72:
                              return 111;
                            case 73:
                              return 104;
                            case 74:
                            case 75:
                              return 112;
                            case 76:
                              return 105;
                            case 77:
                              return 61;
                            case 78:
                              return 81;
                            case 79:
                              return 'SEP';
                            case 80:
                              return 80;
                            case 81:
                              return 98;
                            case 82:
                              return 63;
                            case 83:
                              return 62;
                            case 84:
                              return 65;
                            case 85:
                              return 64;
                            case 86:
                              return 109;
                            case 87:
                              return 110;
                            case 88:
                              return 71;
                            case 89:
                              return 49;
                            case 90:
                              return 50;
                            case 91:
                              return 40;
                            case 92:
                              return 41;
                            case 93:
                              return 59;
                            case 94:
                              return 60;
                            case 95:
                              return 120;
                            case 96:
                              return 21;
                            case 97:
                              return 22;
                            case 98:
                              return 23;
                          }
                        },
                        rules: [
                          /^(?:%%\{)/,
                          /^(?:((?:(?!\}%%)[^:.])*))/,
                          /^(?::)/,
                          /^(?:\}%%)/,
                          /^(?:((?:(?!\}%%).|\n)*))/,
                          /^(?:%%(?!\{)[^\n]*)/,
                          /^(?:[^\}]%%[^\n]*)/,
                          /^(?:["])/,
                          /^(?:["])/,
                          /^(?:[^"]*)/,
                          /^(?:style\b)/,
                          /^(?:default\b)/,
                          /^(?:linkStyle\b)/,
                          /^(?:interpolate\b)/,
                          /^(?:classDef\b)/,
                          /^(?:class\b)/,
                          /^(?:href[\s]+["])/,
                          /^(?:["])/,
                          /^(?:[^"]*)/,
                          /^(?:call[\s]+)/,
                          /^(?:\([\s]*\))/,
                          /^(?:\()/,
                          /^(?:[^(]*)/,
                          /^(?:\))/,
                          /^(?:[^)]*)/,
                          /^(?:click[\s]+)/,
                          /^(?:[\s\n])/,
                          /^(?:[^\s\n]*)/,
                          /^(?:graph\b)/,
                          /^(?:flowchart\b)/,
                          /^(?:subgraph\b)/,
                          /^(?:end\b\s*)/,
                          /^(?:_self\b)/,
                          /^(?:_blank\b)/,
                          /^(?:_parent\b)/,
                          /^(?:_top\b)/,
                          /^(?:(\r?\n)*\s*\n)/,
                          /^(?:\s*LR\b)/,
                          /^(?:\s*RL\b)/,
                          /^(?:\s*TB\b)/,
                          /^(?:\s*BT\b)/,
                          /^(?:\s*TD\b)/,
                          /^(?:\s*BR\b)/,
                          /^(?:\s*<)/,
                          /^(?:\s*>)/,
                          /^(?:\s*\^)/,
                          /^(?:\s*v\b)/,
                          /^(?:[0-9]+)/,
                          /^(?:#)/,
                          /^(?::::)/,
                          /^(?::)/,
                          /^(?:&)/,
                          /^(?:;)/,
                          /^(?:,)/,
                          /^(?:\*)/,
                          /^(?:\s*[xo<]?--+[-xo>]\s*)/,
                          /^(?:\s*[xo<]?==+[=xo>]\s*)/,
                          /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,
                          /^(?:\s*[xo<]?--\s*)/,
                          /^(?:\s*[xo<]?==\s*)/,
                          /^(?:\s*[xo<]?-\.\s*)/,
                          /^(?:\(-)/,
                          /^(?:-\))/,
                          /^(?:\(\[)/,
                          /^(?:\]\))/,
                          /^(?:\[\[)/,
                          /^(?:\]\])/,
                          /^(?:\[\()/,
                          /^(?:\)\])/,
                          /^(?:-)/,
                          /^(?:\.)/,
                          /^(?:[\_])/,
                          /^(?:\+)/,
                          /^(?:%)/,
                          /^(?:=)/,
                          /^(?:=)/,
                          /^(?:<)/,
                          /^(?:>)/,
                          /^(?:\^)/,
                          /^(?:\\\|)/,
                          /^(?:v\b)/,
                          /^(?:[A-Za-z]+)/,
                          /^(?:\\\])/,
                          /^(?:\[\/)/,
                          /^(?:\/\])/,
                          /^(?:\[\\)/,
                          /^(?:[!"#$%&'*+,-.`?\\_/])/,
                          /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,
                          /^(?:\|)/,
                          /^(?:\()/,
                          /^(?:\))/,
                          /^(?:\[)/,
                          /^(?:\])/,
                          /^(?:\{)/,
                          /^(?:\})/,
                          /^(?:")/,
                          /^(?:(\r?\n)+)/,
                          /^(?:\s)/,
                          /^(?:$)/,
                        ],
                        conditions: {
                          close_directive: { rules: [], inclusive: !1 },
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          open_directive: { rules: [1], inclusive: !1 },
                          callbackargs: { rules: [23, 24], inclusive: !1 },
                          callbackname: { rules: [20, 21, 22], inclusive: !1 },
                          href: { rules: [17, 18], inclusive: !1 },
                          click: { rules: [26, 27], inclusive: !1 },
                          vertex: { rules: [], inclusive: !1 },
                          dir: {
                            rules: [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46],
                            inclusive: !1,
                          },
                          string: { rules: [8, 9], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              10,
                              11,
                              12,
                              13,
                              14,
                              15,
                              16,
                              19,
                              25,
                              28,
                              29,
                              30,
                              31,
                              32,
                              33,
                              34,
                              35,
                              47,
                              48,
                              49,
                              50,
                              51,
                              52,
                              53,
                              54,
                              55,
                              56,
                              57,
                              58,
                              59,
                              60,
                              61,
                              62,
                              63,
                              64,
                              65,
                              66,
                              67,
                              68,
                              69,
                              70,
                              71,
                              72,
                              73,
                              74,
                              75,
                              76,
                              77,
                              78,
                              79,
                              80,
                              81,
                              82,
                              83,
                              84,
                              85,
                              86,
                              87,
                              88,
                              89,
                              90,
                              91,
                              92,
                              93,
                              94,
                              95,
                              96,
                              97,
                              98,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function Ge() {
                      this.yy = {};
                    }
                    return (
                      (Ke.lexer = qe),
                      (Ge.prototype = Ke),
                      (Ke.Parser = Ge),
                      new Ge()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/flowchart/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return '.label {\n    font-family: '
                      .concat(e.fontFamily, ';\n    color: ')
                      .concat(
                        e.nodeTextColor || e.textColor,
                        ';\n  }\n  .cluster-label text {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n  .cluster-label span {\n    color: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n\n  .label text,span {\n    fill: '
                      )
                      .concat(e.nodeTextColor || e.textColor, ';\n    color: ')
                      .concat(
                        e.nodeTextColor || e.textColor,
                        ';\n  }\n\n  .node rect,\n  .node circle,\n  .node ellipse,\n  .node polygon,\n  .node path {\n    fill: '
                      )
                      .concat(e.mainBkg, ';\n    stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n    stroke-width: 1px;\n  }\n\n  .node .label {\n    text-align: center;\n  }\n  .node.clickable {\n    cursor: pointer;\n  }\n\n  .arrowheadPath {\n    fill: '
                      )
                      .concat(
                        e.arrowheadColor,
                        ';\n  }\n\n  .edgePath .path {\n    stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n    stroke-width: 1.5px;\n  }\n\n  .flowchart-link {\n    stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n    fill: none;\n  }\n\n  .edgeLabel {\n    background-color: '
                      )
                      .concat(
                        e.edgeLabelBackground,
                        ';\n    rect {\n      opacity: 0.5;\n      background-color: '
                      )
                      .concat(e.edgeLabelBackground, ';\n      fill: ')
                      .concat(
                        e.edgeLabelBackground,
                        ';\n    }\n    text-align: center;\n  }\n\n  .cluster rect {\n    fill: '
                      )
                      .concat(e.clusterBkg, ';\n    stroke: ')
                      .concat(
                        e.clusterBorder,
                        ';\n    stroke-width: 1px;\n  }\n\n  .cluster text {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n\n  .cluster span {\n    color: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n  // .cluster div {\n  //   color: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  // }\n\n  div.mermaidTooltip {\n    position: absolute;\n    text-align: center;\n    max-width: 200px;\n    padding: 2px;\n    font-family: '
                      )
                      .concat(
                        e.fontFamily,
                        ';\n    font-size: 12px;\n    background: '
                      )
                      .concat(e.tertiaryColor, ';\n    border: 1px solid ')
                      .concat(
                        e.border2,
                        ';\n    border-radius: 2px;\n    pointer-events: none;\n    z-index: 100;\n  }\n'
                      );
                  });
              },
              './src/diagrams/gantt/ganttDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return x;
                  }),
                  i.d(t, 'clear', function () {
                    return L;
                  }),
                  i.d(t, 'setAxisFormat', function () {
                    return M;
                  }),
                  i.d(t, 'getAxisFormat', function () {
                    return D;
                  }),
                  i.d(t, 'setTodayMarker', function () {
                    return N;
                  }),
                  i.d(t, 'getTodayMarker', function () {
                    return E;
                  }),
                  i.d(t, 'setDateFormat', function () {
                    return T;
                  }),
                  i.d(t, 'enableInclusiveEndDates', function () {
                    return I;
                  }),
                  i.d(t, 'endDatesAreInclusive', function () {
                    return O;
                  }),
                  i.d(t, 'enableTopAxis', function () {
                    return A;
                  }),
                  i.d(t, 'topAxisEnabled', function () {
                    return R;
                  }),
                  i.d(t, 'getDateFormat', function () {
                    return P;
                  }),
                  i.d(t, 'setExcludes', function () {
                    return F;
                  }),
                  i.d(t, 'getExcludes', function () {
                    return B;
                  }),
                  i.d(t, 'setTitle', function () {
                    return W;
                  }),
                  i.d(t, 'getTitle', function () {
                    return Y;
                  }),
                  i.d(t, 'addSection', function () {
                    return H;
                  }),
                  i.d(t, 'getSections', function () {
                    return j;
                  }),
                  i.d(t, 'getTasks', function () {
                    return V;
                  }),
                  i.d(t, 'addTask', function () {
                    return ee;
                  }),
                  i.d(t, 'findTaskById', function () {
                    return te;
                  }),
                  i.d(t, 'addTaskOrg', function () {
                    return ie;
                  }),
                  i.d(t, 'setLink', function () {
                    return re;
                  }),
                  i.d(t, 'setClass', function () {
                    return se;
                  }),
                  i.d(t, 'setClickEvent', function () {
                    return ae;
                  }),
                  i.d(t, 'bindFunctions', function () {
                    return le;
                  });
                var n = i('moment-mini'),
                  r = i.n(n),
                  s = i('@braintree/sanitize-url'),
                  o = i('./src/logger.js'),
                  a = i('./src/config.js'),
                  l = i('./src/utils.js'),
                  c = i('./src/mermaidAPI.js');
                var d,
                  h,
                  u = '',
                  g = '',
                  f = '',
                  p = [],
                  m = '',
                  _ = [],
                  b = [],
                  v = '',
                  y = ['active', 'done', 'crit', 'milestone'],
                  w = [],
                  C = !1,
                  S = !1,
                  k = 0,
                  x = function (e, t, i) {
                    c.default.parseDirective(this, e, t, i);
                  },
                  L = function () {
                    (_ = []),
                      (b = []),
                      (v = ''),
                      (w = []),
                      (m = ''),
                      (Z = 0),
                      (d = void 0),
                      (h = void 0),
                      (Q = []),
                      (u = ''),
                      (g = ''),
                      (f = ''),
                      (p = []),
                      (C = !1),
                      (S = !1),
                      (k = 0);
                  },
                  M = function (e) {
                    g = e;
                  },
                  D = function () {
                    return g;
                  },
                  N = function (e) {
                    f = e;
                  },
                  E = function () {
                    return f;
                  },
                  T = function (e) {
                    u = e;
                  },
                  I = function () {
                    C = !0;
                  },
                  O = function () {
                    return C;
                  },
                  A = function () {
                    S = !0;
                  },
                  R = function () {
                    return S;
                  },
                  P = function () {
                    return u;
                  },
                  F = function (e) {
                    p = e.toLowerCase().split(/[\s,]+/);
                  },
                  B = function () {
                    return p;
                  },
                  W = function (e) {
                    m = e;
                  },
                  Y = function () {
                    return m;
                  },
                  H = function (e) {
                    (v = e), _.push(e);
                  },
                  j = function () {
                    return _;
                  },
                  V = function () {
                    for (var e = ne(), t = 0; !e && t < 10; ) (e = ne()), t++;
                    return (b = Q);
                  },
                  z = function (e, t, i) {
                    return (
                      (e.isoWeekday() >= 6 && i.indexOf('weekends') >= 0) ||
                      i.indexOf(e.format('dddd').toLowerCase()) >= 0 ||
                      i.indexOf(e.format(t.trim())) >= 0
                    );
                  },
                  U = function (e, t, i) {
                    if (i.length && !e.manualEndTime) {
                      var n = r()(e.startTime, t, !0);
                      n.add(1, 'd');
                      var s = r()(e.endTime, t, !0),
                        o = $(n, s, t, i);
                      (e.endTime = s.toDate()), (e.renderEndTime = o);
                    }
                  },
                  $ = function (e, t, i, n) {
                    for (var r = !1, s = null; e <= t; )
                      r || (s = t.toDate()),
                        (r = z(e, i, n)) && t.add(1, 'd'),
                        e.add(1, 'd');
                    return s;
                  },
                  K = function (e, t, i) {
                    i = i.trim();
                    var n = /^after\s+([\d\w- ]+)/.exec(i.trim());
                    if (null !== n) {
                      var s = null;
                      if (
                        (n[1].split(' ').forEach(function (e) {
                          var t = te(e);
                          void 0 !== t &&
                            (s ? t.endTime > s.endTime && (s = t) : (s = t));
                        }),
                        s)
                      )
                        return s.endTime;
                      var a = new Date();
                      return a.setHours(0, 0, 0, 0), a;
                    }
                    var l = r()(i, t.trim(), !0);
                    return l.isValid()
                      ? l.toDate()
                      : (o.log.debug('Invalid date:' + i),
                        o.log.debug('With date format:' + t.trim()),
                        new Date());
                  },
                  q = function (e, t) {
                    if (null !== e)
                      switch (e[2]) {
                        case 's':
                          t.add(e[1], 'seconds');
                          break;
                        case 'm':
                          t.add(e[1], 'minutes');
                          break;
                        case 'h':
                          t.add(e[1], 'hours');
                          break;
                        case 'd':
                          t.add(e[1], 'days');
                          break;
                        case 'w':
                          t.add(e[1], 'weeks');
                      }
                    return t.toDate();
                  },
                  G = function (e, t, i, n) {
                    (n = n || !1), (i = i.trim());
                    var s = r()(i, t.trim(), !0);
                    return s.isValid()
                      ? (n && s.add(1, 'd'), s.toDate())
                      : q(/^([\d]+)([wdhms])/.exec(i.trim()), r()(e));
                  },
                  Z = 0,
                  J = function (e) {
                    return void 0 === e ? 'task' + (Z += 1) : e;
                  },
                  Q = [],
                  X = {},
                  ee = function (e, t) {
                    var i = {
                        section: v,
                        type: v,
                        processed: !1,
                        manualEndTime: !1,
                        renderEndTime: null,
                        raw: { data: t },
                        task: e,
                        classes: [],
                      },
                      n = (function (e, t) {
                        var i = (':' === t.substr(0, 1)
                            ? t.substr(1, t.length)
                            : t
                          ).split(','),
                          n = {};
                        ce(i, n, y);
                        for (var r = 0; r < i.length; r++) i[r] = i[r].trim();
                        switch (i.length) {
                          case 1:
                            (n.id = J()),
                              (n.startTime = { type: 'prevTaskEnd', id: e }),
                              (n.endTime = { data: i[0] });
                            break;
                          case 2:
                            (n.id = J()),
                              (n.startTime = {
                                type: 'getStartDate',
                                startData: i[0],
                              }),
                              (n.endTime = { data: i[1] });
                            break;
                          case 3:
                            (n.id = J(i[0])),
                              (n.startTime = {
                                type: 'getStartDate',
                                startData: i[1],
                              }),
                              (n.endTime = { data: i[2] });
                        }
                        return n;
                      })(h, t);
                    (i.raw.startTime = n.startTime),
                      (i.raw.endTime = n.endTime),
                      (i.id = n.id),
                      (i.prevTaskId = h),
                      (i.active = n.active),
                      (i.done = n.done),
                      (i.crit = n.crit),
                      (i.milestone = n.milestone),
                      (i.order = k),
                      k++;
                    var r = Q.push(i);
                    (h = i.id), (X[i.id] = r - 1);
                  },
                  te = function (e) {
                    var t = X[e];
                    return Q[t];
                  },
                  ie = function (e, t) {
                    var i = {
                        section: v,
                        type: v,
                        description: e,
                        task: e,
                        classes: [],
                      },
                      n = (function (e, t) {
                        var i = (':' === t.substr(0, 1)
                            ? t.substr(1, t.length)
                            : t
                          ).split(','),
                          n = {};
                        ce(i, n, y);
                        for (var s = 0; s < i.length; s++) i[s] = i[s].trim();
                        var o = '';
                        switch (i.length) {
                          case 1:
                            (n.id = J()), (n.startTime = e.endTime), (o = i[0]);
                            break;
                          case 2:
                            (n.id = J()),
                              (n.startTime = K(0, u, i[0])),
                              (o = i[1]);
                            break;
                          case 3:
                            (n.id = J(i[0])),
                              (n.startTime = K(0, u, i[1])),
                              (o = i[2]);
                        }
                        return (
                          o &&
                            ((n.endTime = G(n.startTime, u, o, C)),
                            (n.manualEndTime = r()(
                              o,
                              'YYYY-MM-DD',
                              !0
                            ).isValid()),
                            U(n, u, p)),
                          n
                        );
                      })(d, t);
                    (i.startTime = n.startTime),
                      (i.endTime = n.endTime),
                      (i.id = n.id),
                      (i.active = n.active),
                      (i.done = n.done),
                      (i.crit = n.crit),
                      (i.milestone = n.milestone),
                      (d = i),
                      b.push(i);
                  },
                  ne = function () {
                    for (
                      var e = function (e) {
                          var t = Q[e],
                            i = '';
                          switch (Q[e].raw.startTime.type) {
                            case 'prevTaskEnd':
                              var n = te(t.prevTaskId);
                              t.startTime = n.endTime;
                              break;
                            case 'getStartDate':
                              (i = K(0, u, Q[e].raw.startTime.startData)) &&
                                (Q[e].startTime = i);
                          }
                          return (
                            Q[e].startTime &&
                              ((Q[e].endTime = G(
                                Q[e].startTime,
                                u,
                                Q[e].raw.endTime.data,
                                C
                              )),
                              Q[e].endTime &&
                                ((Q[e].processed = !0),
                                (Q[e].manualEndTime = r()(
                                  Q[e].raw.endTime.data,
                                  'YYYY-MM-DD',
                                  !0
                                ).isValid()),
                                U(Q[e], u, p))),
                            Q[e].processed
                          );
                        },
                        t = !0,
                        i = 0;
                      i < Q.length;
                      i++
                    )
                      e(i), (t = t && Q[i].processed);
                    return t;
                  },
                  re = function (e, t) {
                    var i = t;
                    'loose' !== a.getConfig().securityLevel &&
                      (i = Object(s.sanitizeUrl)(t)),
                      e.split(',').forEach(function (e) {
                        void 0 !== te(e) &&
                          oe(e, function () {
                            window.open(i, '_self');
                          });
                      }),
                      se(e, 'clickable');
                  },
                  se = function (e, t) {
                    e.split(',').forEach(function (e) {
                      var i = te(e);
                      void 0 !== i && i.classes.push(t);
                    });
                  },
                  oe = function (e, t) {
                    w.push(function () {
                      var i = document.querySelector('[id="'.concat(e, '"]'));
                      null !== i &&
                        i.addEventListener('click', function () {
                          t();
                        });
                    }),
                      w.push(function () {
                        var i = document.querySelector(
                          '[id="'.concat(e, '-text"]')
                        );
                        null !== i &&
                          i.addEventListener('click', function () {
                            t();
                          });
                      });
                  },
                  ae = function (e, t, i) {
                    e.split(',').forEach(function (e) {
                      !(function (e, t, i) {
                        if (
                          'loose' === a.getConfig().securityLevel &&
                          void 0 !== t
                        ) {
                          var n = [];
                          if ('string' == typeof i) {
                            n = i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
                            for (var r = 0; r < n.length; r++) {
                              var s = n[r].trim();
                              '"' === s.charAt(0) &&
                                '"' === s.charAt(s.length - 1) &&
                                (s = s.substr(1, s.length - 2)),
                                (n[r] = s);
                            }
                          }
                          0 === n.length && n.push(e),
                            void 0 !== te(e) &&
                              oe(e, function () {
                                var e;
                                l.default.runFunc.apply(
                                  l.default,
                                  [t].concat(
                                    (function (e) {
                                      if (Array.isArray(e)) {
                                        for (
                                          var t = 0, i = new Array(e.length);
                                          t < e.length;
                                          t++
                                        )
                                          i[t] = e[t];
                                        return i;
                                      }
                                    })((e = n)) ||
                                      (function (e) {
                                        if (
                                          Symbol.iterator in Object(e) ||
                                          '[object Arguments]' ===
                                            Object.prototype.toString.call(e)
                                        )
                                          return Array.from(e);
                                      })(e) ||
                                      (function () {
                                        throw new TypeError(
                                          'Invalid attempt to spread non-iterable instance'
                                        );
                                      })()
                                  )
                                );
                              });
                        }
                      })(e, t, i);
                    }),
                      se(e, 'clickable');
                  },
                  le = function (e) {
                    w.forEach(function (t) {
                      t(e);
                    });
                  };
                function ce(e, t, i) {
                  for (var n = !0; n; )
                    (n = !1),
                      i.forEach(function (i) {
                        var r = new RegExp('^\\s*' + i + '\\s*$');
                        e[0].match(r) && ((t[i] = !0), e.shift(1), (n = !0));
                      });
                }
                t.default = {
                  parseDirective: x,
                  getConfig: function () {
                    return a.getConfig().gantt;
                  },
                  clear: L,
                  setDateFormat: T,
                  getDateFormat: P,
                  enableInclusiveEndDates: I,
                  endDatesAreInclusive: O,
                  enableTopAxis: A,
                  topAxisEnabled: R,
                  setAxisFormat: M,
                  getAxisFormat: D,
                  setTodayMarker: N,
                  getTodayMarker: E,
                  setTitle: W,
                  getTitle: Y,
                  addSection: H,
                  getSections: j,
                  getTasks: V,
                  addTask: ee,
                  findTaskById: te,
                  addTaskOrg: ie,
                  setExcludes: F,
                  getExcludes: B,
                  setClickEvent: ae,
                  setLink: re,
                  bindFunctions: le,
                  durationToDate: q,
                };
              },
              './src/diagrams/gantt/ganttRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return d;
                  }),
                  i.d(t, 'draw', function () {
                    return h;
                  });
                var n = i('d3'),
                  r = i('./src/diagrams/gantt/parser/gantt.jison'),
                  s = i('./src/diagrams/common/common.js'),
                  o = i('./src/diagrams/gantt/ganttDb.js'),
                  a = i('./src/config.js'),
                  l = i('./src/utils.js');
                r.parser.yy = o.default;
                var c,
                  d = function () {},
                  h = function (e, t) {
                    var i = Object(a.getConfig)().gantt;
                    r.parser.yy.clear(), r.parser.parse(e);
                    var d = document.getElementById(t);
                    void 0 === (c = d.parentElement.offsetWidth) && (c = 1200),
                      void 0 !== i.useWidth && (c = i.useWidth);
                    var h = r.parser.yy.getTasks(),
                      u =
                        h.length * (i.barHeight + i.barGap) + 2 * i.topPadding;
                    d.setAttribute('viewBox', '0 0 ' + c + ' ' + u);
                    for (
                      var g = Object(n.select)('[id="'.concat(t, '"]')),
                        f = Object(n.scaleTime)()
                          .domain([
                            Object(n.min)(h, function (e) {
                              return e.startTime;
                            }),
                            Object(n.max)(h, function (e) {
                              return e.endTime;
                            }),
                          ])
                          .rangeRound([0, c - i.leftPadding - i.rightPadding]),
                        p = [],
                        m = 0;
                      m < h.length;
                      m++
                    )
                      p.push(h[m].type);
                    var _,
                      b,
                      v,
                      y,
                      w,
                      C,
                      S,
                      k = p;
                    (p = (function (e) {
                      for (var t = {}, i = [], n = 0, r = e.length; n < r; ++n)
                        t.hasOwnProperty(e[n]) ||
                          ((t[e[n]] = !0), i.push(e[n]));
                      return i;
                    })(p)),
                      h.sort(function (e, t) {
                        var i = e.startTime,
                          n = t.startTime,
                          r = 0;
                        return i > n ? (r = 1) : i < n && (r = -1), r;
                      }),
                      (_ = h),
                      (b = c),
                      (v = u),
                      (w = (y = i.barHeight) + i.barGap),
                      (C = i.topPadding),
                      (S = i.leftPadding),
                      Object(n.scaleLinear)()
                        .domain([0, p.length])
                        .range(['#00B9FA', '#F95002'])
                        .interpolate(n.interpolateHcl),
                      (function (e, t, s, a) {
                        var l = Object(n.axisBottom)(f)
                          .tickSize(-a + t + i.gridLineStartPadding)
                          .tickFormat(
                            Object(n.timeFormat)(
                              r.parser.yy.getAxisFormat() ||
                                i.axisFormat ||
                                '%Y-%m-%d'
                            )
                          );
                        if (
                          (g
                            .append('g')
                            .attr('class', 'grid')
                            .attr(
                              'transform',
                              'translate(' + e + ', ' + (a - 50) + ')'
                            )
                            .call(l)
                            .selectAll('text')
                            .style('text-anchor', 'middle')
                            .attr('fill', '#000')
                            .attr('stroke', 'none')
                            .attr('font-size', 10)
                            .attr('dy', '1em'),
                          o.default.topAxisEnabled() || i.topAxis)
                        ) {
                          var c = Object(n.axisTop)(f)
                            .tickSize(-a + t + i.gridLineStartPadding)
                            .tickFormat(
                              Object(n.timeFormat)(
                                r.parser.yy.getAxisFormat() ||
                                  i.axisFormat ||
                                  '%Y-%m-%d'
                              )
                            );
                          g.append('g')
                            .attr('class', 'grid')
                            .attr(
                              'transform',
                              'translate(' + e + ', ' + t + ')'
                            )
                            .call(c)
                            .selectAll('text')
                            .style('text-anchor', 'middle')
                            .attr('fill', '#000')
                            .attr('stroke', 'none')
                            .attr('font-size', 10);
                        }
                      })(S, C, 0, v),
                      (function (e, t, n, r, s, o, a) {
                        g.append('g')
                          .selectAll('rect')
                          .data(e)
                          .enter()
                          .append('rect')
                          .attr('x', 0)
                          .attr('y', function (e, i) {
                            return e.order * t + n - 2;
                          })
                          .attr('width', function () {
                            return a - i.rightPadding / 2;
                          })
                          .attr('height', t)
                          .attr('class', function (e) {
                            for (var t = 0; t < p.length; t++)
                              if (e.type === p[t])
                                return (
                                  'section section' +
                                  (t % i.numberSectionStyles)
                                );
                            return 'section section0';
                          });
                        var l = g.append('g').selectAll('rect').data(e).enter();
                        l
                          .append('rect')
                          .attr('id', function (e) {
                            return e.id;
                          })
                          .attr('rx', 3)
                          .attr('ry', 3)
                          .attr('x', function (e) {
                            return e.milestone
                              ? f(e.startTime) +
                                  r +
                                  0.5 * (f(e.endTime) - f(e.startTime)) -
                                  0.5 * s
                              : f(e.startTime) + r;
                          })
                          .attr('y', function (e, i) {
                            return e.order * t + n;
                          })
                          .attr('width', function (e) {
                            return e.milestone
                              ? s
                              : f(e.renderEndTime || e.endTime) -
                                  f(e.startTime);
                          })
                          .attr('height', s)
                          .attr('transform-origin', function (e, i) {
                            return (
                              (i = e.order),
                              (
                                f(e.startTime) +
                                r +
                                0.5 * (f(e.endTime) - f(e.startTime))
                              ).toString() +
                                'px ' +
                                (i * t + n + 0.5 * s).toString() +
                                'px'
                            );
                          })
                          .attr('class', function (e) {
                            var t = '';
                            e.classes.length > 0 && (t = e.classes.join(' '));
                            for (var n = 0, r = 0; r < p.length; r++)
                              e.type === p[r] &&
                                (n = r % i.numberSectionStyles);
                            var s = '';
                            return (
                              e.active
                                ? e.crit
                                  ? (s += ' activeCrit')
                                  : (s = ' active')
                                : e.done
                                ? (s = e.crit ? ' doneCrit' : ' done')
                                : e.crit && (s += ' crit'),
                              0 === s.length && (s = ' task'),
                              e.milestone && (s = ' milestone ' + s),
                              'task' + (s += n) + ' ' + t
                            );
                          }),
                          l
                            .append('text')
                            .attr('id', function (e) {
                              return e.id + '-text';
                            })
                            .text(function (e) {
                              return e.task;
                            })
                            .attr('font-size', i.fontSize)
                            .attr('x', function (e) {
                              var t = f(e.startTime),
                                n = f(e.renderEndTime || e.endTime);
                              e.milestone &&
                                (t +=
                                  0.5 * (f(e.endTime) - f(e.startTime)) -
                                  0.5 * s),
                                e.milestone && (n = t + s);
                              var o = this.getBBox().width;
                              return o > n - t
                                ? n + o + 1.5 * i.leftPadding > a
                                  ? t + r - 5
                                  : n + r + 5
                                : (n - t) / 2 + t + r;
                            })
                            .attr('y', function (e, r) {
                              return (
                                e.order * t +
                                i.barHeight / 2 +
                                (i.fontSize / 2 - 2) +
                                n
                              );
                            })
                            .attr('text-height', s)
                            .attr('class', function (e) {
                              var t = f(e.startTime),
                                n = f(e.endTime);
                              e.milestone && (n = t + s);
                              var r = this.getBBox().width,
                                o = '';
                              e.classes.length > 0 && (o = e.classes.join(' '));
                              for (var l = 0, c = 0; c < p.length; c++)
                                e.type === p[c] &&
                                  (l = c % i.numberSectionStyles);
                              var d = '';
                              return (
                                e.active &&
                                  (d = e.crit
                                    ? 'activeCritText' + l
                                    : 'activeText' + l),
                                e.done
                                  ? (d = e.crit
                                      ? d + ' doneCritText' + l
                                      : d + ' doneText' + l)
                                  : e.crit && (d = d + ' critText' + l),
                                e.milestone && (d += ' milestoneText'),
                                r > n - t
                                  ? n + r + 1.5 * i.leftPadding > a
                                    ? o +
                                      ' taskTextOutsideLeft taskTextOutside' +
                                      l +
                                      ' ' +
                                      d
                                    : o +
                                      ' taskTextOutsideRight taskTextOutside' +
                                      l +
                                      ' ' +
                                      d +
                                      ' width-' +
                                      r
                                  : o +
                                    ' taskText taskText' +
                                    l +
                                    ' ' +
                                    d +
                                    ' width-' +
                                    r
                              );
                            });
                      })(_, w, C, S, y, 0, b),
                      (function (e, t) {
                        for (var n = [], r = 0, o = 0; o < p.length; o++)
                          n[o] = [
                            p[o],
                            ((a = p[o]),
                            (l = k),
                            (function (e) {
                              for (var t = e.length, i = {}; t; )
                                i[e[--t]] = (i[e[t]] || 0) + 1;
                              return i;
                            })(l)[a] || 0),
                          ];
                        var a, l;
                        g.append('g')
                          .selectAll('text')
                          .data(n)
                          .enter()
                          .append(function (e) {
                            var t = e[0].split(s.default.lineBreakRegex),
                              i = -(t.length - 1) / 2,
                              n = document.createElementNS(
                                'http://www.w3.org/2000/svg',
                                'text'
                              );
                            n.setAttribute('dy', i + 'em');
                            for (var r = 0; r < t.length; r++) {
                              var o = document.createElementNS(
                                'http://www.w3.org/2000/svg',
                                'tspan'
                              );
                              o.setAttribute('alignment-baseline', 'central'),
                                o.setAttribute('x', '10'),
                                r > 0 && o.setAttribute('dy', '1em'),
                                (o.textContent = t[r]),
                                n.appendChild(o);
                            }
                            return n;
                          })
                          .attr('x', 10)
                          .attr('y', function (i, s) {
                            if (!(s > 0)) return (i[1] * e) / 2 + t;
                            for (var o = 0; o < s; o++)
                              return (
                                (r += n[s - 1][1]), (i[1] * e) / 2 + r * e + t
                              );
                          })
                          .attr('font-size', i.sectionFontSize)
                          .attr('font-size', i.sectionFontSize)
                          .attr('class', function (e) {
                            for (var t = 0; t < p.length; t++)
                              if (e[0] === p[t])
                                return (
                                  'sectionTitle sectionTitle' +
                                  (t % i.numberSectionStyles)
                                );
                            return 'sectionTitle';
                          });
                      })(w, C),
                      (function (e, t, n, r) {
                        var s = o.default.getTodayMarker();
                        if ('off' !== s) {
                          var a = g.append('g').attr('class', 'today'),
                            l = new Date(),
                            c = a.append('line');
                          c
                            .attr('x1', f(l) + e)
                            .attr('x2', f(l) + e)
                            .attr('y1', i.titleTopMargin)
                            .attr('y2', r - i.titleTopMargin)
                            .attr('class', 'today'),
                            '' !== s && c.attr('style', s.replace(/,/g, ';'));
                        }
                      })(S, 0, 0, v),
                      Object(l.configureSvgSize)(g, u, c, i.useMaxWidth),
                      g
                        .append('text')
                        .text(r.parser.yy.getTitle())
                        .attr('x', c / 2)
                        .attr('y', i.titleTopMargin)
                        .attr('class', 'titleText');
                  };
                t.default = { setConf: d, draw: h };
              },
              './src/diagrams/gantt/parser/gantt.jison': function (e, t, i) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 3],
                      i = [1, 5],
                      n = [
                        7,
                        9,
                        11,
                        12,
                        13,
                        14,
                        15,
                        16,
                        17,
                        18,
                        19,
                        21,
                        28,
                        33,
                      ],
                      r = [1, 15],
                      s = [1, 16],
                      o = [1, 17],
                      a = [1, 18],
                      l = [1, 19],
                      c = [1, 20],
                      d = [1, 21],
                      h = [1, 22],
                      u = [1, 24],
                      g = [1, 26],
                      f = [1, 29],
                      p = [
                        5,
                        7,
                        9,
                        11,
                        12,
                        13,
                        14,
                        15,
                        16,
                        17,
                        18,
                        19,
                        21,
                        28,
                        33,
                      ],
                      m = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          directive: 4,
                          gantt: 5,
                          document: 6,
                          EOF: 7,
                          line: 8,
                          SPACE: 9,
                          statement: 10,
                          NL: 11,
                          dateFormat: 12,
                          inclusiveEndDates: 13,
                          topAxis: 14,
                          axisFormat: 15,
                          excludes: 16,
                          todayMarker: 17,
                          title: 18,
                          section: 19,
                          clickStatement: 20,
                          taskTxt: 21,
                          taskData: 22,
                          openDirective: 23,
                          typeDirective: 24,
                          closeDirective: 25,
                          ':': 26,
                          argDirective: 27,
                          click: 28,
                          callbackname: 29,
                          callbackargs: 30,
                          href: 31,
                          clickStatementDebug: 32,
                          open_directive: 33,
                          type_directive: 34,
                          arg_directive: 35,
                          close_directive: 36,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          5: 'gantt',
                          7: 'EOF',
                          9: 'SPACE',
                          11: 'NL',
                          12: 'dateFormat',
                          13: 'inclusiveEndDates',
                          14: 'topAxis',
                          15: 'axisFormat',
                          16: 'excludes',
                          17: 'todayMarker',
                          18: 'title',
                          19: 'section',
                          21: 'taskTxt',
                          22: 'taskData',
                          26: ':',
                          28: 'click',
                          29: 'callbackname',
                          30: 'callbackargs',
                          31: 'href',
                          33: 'open_directive',
                          34: 'type_directive',
                          35: 'arg_directive',
                          36: 'close_directive',
                        },
                        productions_: [
                          0,
                          [3, 2],
                          [3, 3],
                          [6, 0],
                          [6, 2],
                          [8, 2],
                          [8, 1],
                          [8, 1],
                          [8, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 2],
                          [10, 1],
                          [4, 4],
                          [4, 6],
                          [20, 2],
                          [20, 3],
                          [20, 3],
                          [20, 4],
                          [20, 3],
                          [20, 4],
                          [20, 2],
                          [32, 2],
                          [32, 3],
                          [32, 3],
                          [32, 4],
                          [32, 3],
                          [32, 4],
                          [32, 2],
                          [23, 1],
                          [24, 1],
                          [27, 1],
                          [25, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 2:
                              return s[a - 1];
                            case 3:
                              this.$ = [];
                              break;
                            case 4:
                              s[a - 1].push(s[a]), (this.$ = s[a - 1]);
                              break;
                            case 5:
                            case 6:
                              this.$ = s[a];
                              break;
                            case 7:
                            case 8:
                              this.$ = [];
                              break;
                            case 9:
                              n.setDateFormat(s[a].substr(11)),
                                (this.$ = s[a].substr(11));
                              break;
                            case 10:
                              n.enableInclusiveEndDates(),
                                (this.$ = s[a].substr(18));
                              break;
                            case 11:
                              n.TopAxis(), (this.$ = s[a].substr(8));
                              break;
                            case 12:
                              n.setAxisFormat(s[a].substr(11)),
                                (this.$ = s[a].substr(11));
                              break;
                            case 13:
                              n.setExcludes(s[a].substr(9)),
                                (this.$ = s[a].substr(9));
                              break;
                            case 14:
                              n.setTodayMarker(s[a].substr(12)),
                                (this.$ = s[a].substr(12));
                              break;
                            case 15:
                              n.setTitle(s[a].substr(6)),
                                (this.$ = s[a].substr(6));
                              break;
                            case 16:
                              n.addSection(s[a].substr(8)),
                                (this.$ = s[a].substr(8));
                              break;
                            case 18:
                              n.addTask(s[a - 1], s[a]), (this.$ = 'task');
                              break;
                            case 22:
                              (this.$ = s[a - 1]),
                                n.setClickEvent(s[a - 1], s[a], null);
                              break;
                            case 23:
                              (this.$ = s[a - 2]),
                                n.setClickEvent(s[a - 2], s[a - 1], s[a]);
                              break;
                            case 24:
                              (this.$ = s[a - 2]),
                                n.setClickEvent(s[a - 2], s[a - 1], null),
                                n.setLink(s[a - 2], s[a]);
                              break;
                            case 25:
                              (this.$ = s[a - 3]),
                                n.setClickEvent(s[a - 3], s[a - 2], s[a - 1]),
                                n.setLink(s[a - 3], s[a]);
                              break;
                            case 26:
                              (this.$ = s[a - 2]),
                                n.setClickEvent(s[a - 2], s[a], null),
                                n.setLink(s[a - 2], s[a - 1]);
                              break;
                            case 27:
                              (this.$ = s[a - 3]),
                                n.setClickEvent(s[a - 3], s[a - 1], s[a]),
                                n.setLink(s[a - 3], s[a - 2]);
                              break;
                            case 28:
                              (this.$ = s[a - 1]), n.setLink(s[a - 1], s[a]);
                              break;
                            case 29:
                            case 35:
                              this.$ = s[a - 1] + ' ' + s[a];
                              break;
                            case 30:
                            case 31:
                            case 33:
                              this.$ = s[a - 2] + ' ' + s[a - 1] + ' ' + s[a];
                              break;
                            case 32:
                            case 34:
                              this.$ =
                                s[a - 3] +
                                ' ' +
                                s[a - 2] +
                                ' ' +
                                s[a - 1] +
                                ' ' +
                                s[a];
                              break;
                            case 36:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 37:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 38:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 39:
                              n.parseDirective(
                                '}%%',
                                'close_directive',
                                'gantt'
                              );
                          }
                        },
                        table: [
                          { 3: 1, 4: 2, 5: t, 23: 4, 33: i },
                          { 1: [3] },
                          { 3: 6, 4: 2, 5: t, 23: 4, 33: i },
                          e(n, [2, 3], { 6: 7 }),
                          { 24: 8, 34: [1, 9] },
                          { 34: [2, 36] },
                          { 1: [2, 1] },
                          {
                            4: 25,
                            7: [1, 10],
                            8: 11,
                            9: [1, 12],
                            10: 13,
                            11: [1, 14],
                            12: r,
                            13: s,
                            14: o,
                            15: a,
                            16: l,
                            17: c,
                            18: d,
                            19: h,
                            20: 23,
                            21: u,
                            23: 4,
                            28: g,
                            33: i,
                          },
                          { 25: 27, 26: [1, 28], 36: f },
                          e([26, 36], [2, 37]),
                          e(n, [2, 8], { 1: [2, 2] }),
                          e(n, [2, 4]),
                          {
                            4: 25,
                            10: 30,
                            12: r,
                            13: s,
                            14: o,
                            15: a,
                            16: l,
                            17: c,
                            18: d,
                            19: h,
                            20: 23,
                            21: u,
                            23: 4,
                            28: g,
                            33: i,
                          },
                          e(n, [2, 6]),
                          e(n, [2, 7]),
                          e(n, [2, 9]),
                          e(n, [2, 10]),
                          e(n, [2, 11]),
                          e(n, [2, 12]),
                          e(n, [2, 13]),
                          e(n, [2, 14]),
                          e(n, [2, 15]),
                          e(n, [2, 16]),
                          e(n, [2, 17]),
                          { 22: [1, 31] },
                          e(n, [2, 19]),
                          { 29: [1, 32], 31: [1, 33] },
                          { 11: [1, 34] },
                          { 27: 35, 35: [1, 36] },
                          { 11: [2, 39] },
                          e(n, [2, 5]),
                          e(n, [2, 18]),
                          e(n, [2, 22], { 30: [1, 37], 31: [1, 38] }),
                          e(n, [2, 28], { 29: [1, 39] }),
                          e(p, [2, 20]),
                          { 25: 40, 36: f },
                          { 36: [2, 38] },
                          e(n, [2, 23], { 31: [1, 41] }),
                          e(n, [2, 24]),
                          e(n, [2, 26], { 30: [1, 42] }),
                          { 11: [1, 43] },
                          e(n, [2, 25]),
                          e(n, [2, 27]),
                          e(p, [2, 21]),
                        ],
                        defaultActions: {
                          5: [2, 36],
                          6: [2, 1],
                          29: [2, 39],
                          36: [2, 38],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      _ = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 33;
                            case 1:
                              return this.begin('type_directive'), 34;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 26
                              );
                            case 3:
                              return this.popState(), this.popState(), 36;
                            case 4:
                              return 35;
                            case 5:
                            case 6:
                            case 7:
                              break;
                            case 8:
                              return 11;
                            case 9:
                            case 10:
                            case 11:
                              break;
                            case 12:
                              this.begin('href');
                              break;
                            case 13:
                              this.popState();
                              break;
                            case 14:
                              return 31;
                            case 15:
                              this.begin('callbackname');
                              break;
                            case 16:
                              this.popState();
                              break;
                            case 17:
                              this.popState(), this.begin('callbackargs');
                              break;
                            case 18:
                              return 29;
                            case 19:
                              this.popState();
                              break;
                            case 20:
                              return 30;
                            case 21:
                              this.begin('click');
                              break;
                            case 22:
                              this.popState();
                              break;
                            case 23:
                              return 28;
                            case 24:
                              return 5;
                            case 25:
                              return 12;
                            case 26:
                              return 13;
                            case 27:
                              return 14;
                            case 28:
                              return 15;
                            case 29:
                              return 16;
                            case 30:
                              return 17;
                            case 31:
                              return 'date';
                            case 32:
                              return 18;
                            case 33:
                              return 19;
                            case 34:
                              return 21;
                            case 35:
                              return 22;
                            case 36:
                              return 26;
                            case 37:
                              return 7;
                            case 38:
                              return 'INVALID';
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:%%(?!\{)*[^\n]*)/i,
                          /^(?:[^\}]%%*[^\n]*)/i,
                          /^(?:%%*[^\n]*[\n]*)/i,
                          /^(?:[\n]+)/i,
                          /^(?:\s+)/i,
                          /^(?:#[^\n]*)/i,
                          /^(?:%[^\n]*)/i,
                          /^(?:href[\s]+["])/i,
                          /^(?:["])/i,
                          /^(?:[^"]*)/i,
                          /^(?:call[\s]+)/i,
                          /^(?:\([\s]*\))/i,
                          /^(?:\()/i,
                          /^(?:[^(]*)/i,
                          /^(?:\))/i,
                          /^(?:[^)]*)/i,
                          /^(?:click[\s]+)/i,
                          /^(?:[\s\n])/i,
                          /^(?:[^\s\n]*)/i,
                          /^(?:gantt\b)/i,
                          /^(?:dateFormat\s[^#\n;]+)/i,
                          /^(?:inclusiveEndDates\b)/i,
                          /^(?:topAxis\b)/i,
                          /^(?:axisFormat\s[^#\n;]+)/i,
                          /^(?:excludes\s[^#\n;]+)/i,
                          /^(?:todayMarker\s[^\n;]+)/i,
                          /^(?:\d\d\d\d-\d\d-\d\d\b)/i,
                          /^(?:title\s[^#\n;]+)/i,
                          /^(?:section\s[^#:\n;]+)/i,
                          /^(?:[^#:\n;]+)/i,
                          /^(?::[^#\n;]+)/i,
                          /^(?::)/i,
                          /^(?:$)/i,
                          /^(?:.)/i,
                        ],
                        conditions: {
                          close_directive: { rules: [], inclusive: !1 },
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          open_directive: { rules: [1], inclusive: !1 },
                          callbackargs: { rules: [19, 20], inclusive: !1 },
                          callbackname: { rules: [16, 17, 18], inclusive: !1 },
                          href: { rules: [13, 14], inclusive: !1 },
                          click: { rules: [22, 23], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10,
                              11,
                              12,
                              15,
                              21,
                              24,
                              25,
                              26,
                              27,
                              28,
                              29,
                              30,
                              31,
                              32,
                              33,
                              34,
                              35,
                              36,
                              37,
                              38,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function b() {
                      this.yy = {};
                    }
                    return (
                      (m.lexer = _), (b.prototype = m), (m.Parser = b), new b()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/gantt/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return '\n  .mermaid-main-font {\n    font-family: "trebuchet ms", verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n  }\n\n  .section {\n    stroke: none;\n    opacity: 0.2;\n  }\n\n  .section0 {\n    fill: '
                      .concat(
                        e.sectionBkgColor,
                        ';\n  }\n\n  .section2 {\n    fill: '
                      )
                      .concat(
                        e.sectionBkgColor2,
                        ';\n  }\n\n  .section1,\n  .section3 {\n    fill: '
                      )
                      .concat(
                        e.altSectionBkgColor,
                        ';\n    opacity: 0.2;\n  }\n\n  .sectionTitle0 {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n\n  .sectionTitle1 {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n\n  .sectionTitle2 {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n\n  .sectionTitle3 {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ';\n  }\n\n  .sectionTitle {\n    text-anchor: start;\n    // font-size: '
                      )
                      .concat(
                        e.ganttFontSize,
                        ";\n    // text-height: 14px;\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n\n  }\n\n\n  /* Grid and axis */\n\n  .grid .tick {\n    stroke: "
                      )
                      .concat(
                        e.gridColor,
                        ';\n    opacity: 0.8;\n    shape-rendering: crispEdges;\n    text {\n      font-family: '
                      )
                      .concat(e.fontFamily, ';\n      fill: ')
                      .concat(
                        e.textColor,
                        ';\n    }\n  }\n\n  .grid path {\n    stroke-width: 0;\n  }\n\n\n  /* Today line */\n\n  .today {\n    fill: none;\n    stroke: '
                      )
                      .concat(
                        e.todayLineColor,
                        ";\n    stroke-width: 2px;\n  }\n\n\n  /* Task styling */\n\n  /* Default task */\n\n  .task {\n    stroke-width: 2;\n  }\n\n  .taskText {\n    text-anchor: middle;\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n  }\n\n  // .taskText:not([font-size]) {\n  //   font-size: "
                      )
                      .concat(
                        e.ganttFontSize,
                        ';\n  // }\n\n  .taskTextOutsideRight {\n    fill: '
                      )
                      .concat(
                        e.taskTextDarkColor,
                        ';\n    text-anchor: start;\n    // font-size: '
                      )
                      .concat(
                        e.ganttFontSize,
                        ";\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n\n  }\n\n  .taskTextOutsideLeft {\n    fill: "
                      )
                      .concat(
                        e.taskTextDarkColor,
                        ';\n    text-anchor: end;\n    // font-size: '
                      )
                      .concat(
                        e.ganttFontSize,
                        ';\n  }\n\n  /* Special case clickable */\n  .task.clickable {\n    cursor: pointer;\n  }\n  .taskText.clickable {\n    cursor: pointer;\n    fill: '
                      )
                      .concat(
                        e.taskTextClickableColor,
                        ' !important;\n    font-weight: bold;\n  }\n\n  .taskTextOutsideLeft.clickable {\n    cursor: pointer;\n    fill: '
                      )
                      .concat(
                        e.taskTextClickableColor,
                        ' !important;\n    font-weight: bold;\n  }\n\n  .taskTextOutsideRight.clickable {\n    cursor: pointer;\n    fill: '
                      )
                      .concat(
                        e.taskTextClickableColor,
                        ' !important;\n    font-weight: bold;\n  }\n\n  /* Specific task settings for the sections*/\n\n  .taskText0,\n  .taskText1,\n  .taskText2,\n  .taskText3 {\n    fill: '
                      )
                      .concat(
                        e.taskTextColor,
                        ';\n  }\n\n  .task0,\n  .task1,\n  .task2,\n  .task3 {\n    fill: '
                      )
                      .concat(e.taskBkgColor, ';\n    stroke: ')
                      .concat(
                        e.taskBorderColor,
                        ';\n  }\n\n  .taskTextOutside0,\n  .taskTextOutside2\n  {\n    fill: '
                      )
                      .concat(
                        e.taskTextOutsideColor,
                        ';\n  }\n\n  .taskTextOutside1,\n  .taskTextOutside3 {\n    fill: '
                      )
                      .concat(
                        e.taskTextOutsideColor,
                        ';\n  }\n\n\n  /* Active task */\n\n  .active0,\n  .active1,\n  .active2,\n  .active3 {\n    fill: '
                      )
                      .concat(e.activeTaskBkgColor, ';\n    stroke: ')
                      .concat(
                        e.activeTaskBorderColor,
                        ';\n  }\n\n  .activeText0,\n  .activeText1,\n  .activeText2,\n  .activeText3 {\n    fill: '
                      )
                      .concat(
                        e.taskTextDarkColor,
                        ' !important;\n  }\n\n\n  /* Completed task */\n\n  .done0,\n  .done1,\n  .done2,\n  .done3 {\n    stroke: '
                      )
                      .concat(e.doneTaskBorderColor, ';\n    fill: ')
                      .concat(
                        e.doneTaskBkgColor,
                        ';\n    stroke-width: 2;\n  }\n\n  .doneText0,\n  .doneText1,\n  .doneText2,\n  .doneText3 {\n    fill: '
                      )
                      .concat(
                        e.taskTextDarkColor,
                        ' !important;\n  }\n\n\n  /* Tasks on the critical line */\n\n  .crit0,\n  .crit1,\n  .crit2,\n  .crit3 {\n    stroke: '
                      )
                      .concat(e.critBorderColor, ';\n    fill: ')
                      .concat(
                        e.critBkgColor,
                        ';\n    stroke-width: 2;\n  }\n\n  .activeCrit0,\n  .activeCrit1,\n  .activeCrit2,\n  .activeCrit3 {\n    stroke: '
                      )
                      .concat(e.critBorderColor, ';\n    fill: ')
                      .concat(
                        e.activeTaskBkgColor,
                        ';\n    stroke-width: 2;\n  }\n\n  .doneCrit0,\n  .doneCrit1,\n  .doneCrit2,\n  .doneCrit3 {\n    stroke: '
                      )
                      .concat(e.critBorderColor, ';\n    fill: ')
                      .concat(
                        e.doneTaskBkgColor,
                        ';\n    stroke-width: 2;\n    cursor: pointer;\n    shape-rendering: crispEdges;\n  }\n\n  .milestone {\n    transform: rotate(45deg) scale(0.8,0.8);\n  }\n\n  .milestoneText {\n    font-style: italic;\n  }\n  .doneCritText0,\n  .doneCritText1,\n  .doneCritText2,\n  .doneCritText3 {\n    fill: '
                      )
                      .concat(
                        e.taskTextDarkColor,
                        ' !important;\n  }\n\n  .activeCritText0,\n  .activeCritText1,\n  .activeCritText2,\n  .activeCritText3 {\n    fill: '
                      )
                      .concat(
                        e.taskTextDarkColor,
                        ' !important;\n  }\n\n  .titleText {\n    text-anchor: middle;\n    font-size: 18px;\n    fill: '
                      )
                      .concat(
                        e.textColor,
                        "    ;\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n  }\n"
                      );
                  });
              },
              './src/diagrams/git/gitGraphAst.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setDirection', function () {
                    return g;
                  }),
                  i.d(t, 'setOptions', function () {
                    return p;
                  }),
                  i.d(t, 'getOptions', function () {
                    return m;
                  }),
                  i.d(t, 'commit', function () {
                    return _;
                  }),
                  i.d(t, 'branch', function () {
                    return b;
                  }),
                  i.d(t, 'merge', function () {
                    return v;
                  }),
                  i.d(t, 'checkout', function () {
                    return y;
                  }),
                  i.d(t, 'reset', function () {
                    return w;
                  }),
                  i.d(t, 'prettyPrint', function () {
                    return k;
                  }),
                  i.d(t, 'clear', function () {
                    return x;
                  }),
                  i.d(t, 'getBranchesAsObjArray', function () {
                    return L;
                  }),
                  i.d(t, 'getBranches', function () {
                    return M;
                  }),
                  i.d(t, 'getCommits', function () {
                    return D;
                  }),
                  i.d(t, 'getCommitsArray', function () {
                    return N;
                  }),
                  i.d(t, 'getCurrentBranch', function () {
                    return E;
                  }),
                  i.d(t, 'getDirection', function () {
                    return T;
                  }),
                  i.d(t, 'getHead', function () {
                    return I;
                  });
                var n = i('./src/logger.js'),
                  r = i('./src/utils.js'),
                  s = {},
                  o = null,
                  a = { master: o },
                  l = 'master',
                  c = 'LR',
                  d = 0;
                function h() {
                  return Object(r.random)({ length: 7 });
                }
                function u(e, t) {
                  for (
                    n.log.debug('Entering isfastforwardable:', e.id, t.id);
                    e.seq <= t.seq && e !== t && null != t.parent;

                  ) {
                    if (Array.isArray(t.parent))
                      return (
                        n.log.debug('In merge commit:', t.parent),
                        u(e, s[t.parent[0]]) || u(e, s[t.parent[1]])
                      );
                    t = s[t.parent];
                  }
                  return n.log.debug(e.id, t.id), e.id === t.id;
                }
                var g = function (e) {
                    c = e;
                  },
                  f = {},
                  p = function (e) {
                    n.log.debug('options str', e),
                      (e = (e = e && e.trim()) || '{}');
                    try {
                      f = JSON.parse(e);
                    } catch (e) {
                      n.log.error(
                        'error while parsing gitGraph options',
                        e.message
                      );
                    }
                  },
                  m = function () {
                    return f;
                  },
                  _ = function (e) {
                    var t = {
                      id: h(),
                      message: e,
                      seq: d++,
                      parent: null == o ? null : o.id,
                    };
                    (o = t),
                      (s[t.id] = t),
                      (a[l] = t.id),
                      n.log.debug('in pushCommit ' + t.id);
                  },
                  b = function (e) {
                    (a[e] = null != o ? o.id : null),
                      n.log.debug('in createBranch');
                  },
                  v = function (e) {
                    var t = s[a[l]],
                      i = s[a[e]];
                    if (
                      (function (e, t) {
                        return e.seq > t.seq && u(t, e);
                      })(t, i)
                    )
                      n.log.debug('Already merged');
                    else {
                      if (u(t, i)) (a[l] = a[e]), (o = s[a[l]]);
                      else {
                        var r = {
                          id: h(),
                          message: 'merged branch ' + e + ' into ' + l,
                          seq: d++,
                          parent: [null == o ? null : o.id, a[e]],
                        };
                        (o = r), (s[r.id] = r), (a[l] = r.id);
                      }
                      n.log.debug(a), n.log.debug('in mergeBranch');
                    }
                  },
                  y = function (e) {
                    n.log.debug('in checkout');
                    var t = a[(l = e)];
                    o = s[t];
                  },
                  w = function (e) {
                    n.log.debug('in reset', e);
                    var t = e.split(':')[0],
                      i = parseInt(e.split(':')[1]),
                      r = 'HEAD' === t ? o : s[a[t]];
                    for (n.log.debug(r, i); i > 0; )
                      if ((i--, !(r = s[r.parent]))) {
                        var c =
                          'Critical error - unique parent commit not found during reset';
                        throw (n.log.error(c), c);
                      }
                    (o = r), (a[l] = r.id);
                  };
                function C(e, t, i) {
                  var n = e.indexOf(t);
                  -1 === n ? e.push(i) : e.splice(n, 1, i);
                }
                function S(e) {
                  var t = e.reduce(function (e, t) {
                      return e.seq > t.seq ? e : t;
                    }, e[0]),
                    i = '';
                  e.forEach(function (e) {
                    i += e === t ? '\t*' : '\t|';
                  });
                  var r,
                    o,
                    l,
                    c = [i, t.id, t.seq];
                  for (var d in a) a[d] === t.id && c.push(d);
                  if ((n.log.debug(c.join(' ')), Array.isArray(t.parent))) {
                    var h = s[t.parent[0]];
                    C(e, t, h), e.push(s[t.parent[1]]);
                  } else {
                    if (null == t.parent) return;
                    var u = s[t.parent];
                    C(e, t, u);
                  }
                  (r = e),
                    (o = function (e) {
                      return e.id;
                    }),
                    (l = Object.create(null)),
                    S(
                      (e = r.reduce(function (e, t) {
                        var i = o(t);
                        return l[i] || ((l[i] = !0), e.push(t)), e;
                      }, []))
                    );
                }
                var k = function () {
                    n.log.debug(s), S([N()[0]]);
                  },
                  x = function () {
                    (s = {}),
                      (a = { master: (o = null) }),
                      (l = 'master'),
                      (d = 0);
                  },
                  L = function () {
                    var e = [];
                    for (var t in a) e.push({ name: t, commit: s[a[t]] });
                    return e;
                  },
                  M = function () {
                    return a;
                  },
                  D = function () {
                    return s;
                  },
                  N = function () {
                    var e = Object.keys(s).map(function (e) {
                      return s[e];
                    });
                    return (
                      e.forEach(function (e) {
                        n.log.debug(e.id);
                      }),
                      e.sort(function (e, t) {
                        return t.seq - e.seq;
                      }),
                      e
                    );
                  },
                  E = function () {
                    return l;
                  },
                  T = function () {
                    return c;
                  },
                  I = function () {
                    return o;
                  };
                t.default = {
                  setDirection: g,
                  setOptions: p,
                  getOptions: m,
                  commit: _,
                  branch: b,
                  merge: v,
                  checkout: y,
                  reset: w,
                  prettyPrint: k,
                  clear: x,
                  getBranchesAsObjArray: L,
                  getBranches: M,
                  getCommits: D,
                  getCommitsArray: N,
                  getCurrentBranch: E,
                  getDirection: T,
                  getHead: I,
                };
              },
              './src/diagrams/git/gitGraphRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return g;
                  }),
                  i.d(t, 'draw', function () {
                    return y;
                  });
                var n,
                  r = i('d3'),
                  s = i('./src/diagrams/git/gitGraphAst.js'),
                  o = i('./src/diagrams/git/parser/gitGraph.jison'),
                  a = i.n(o),
                  l = i('./src/logger.js'),
                  c = i('./src/utils.js'),
                  d = {},
                  h = {
                    nodeSpacing: 150,
                    nodeFillColor: 'yellow',
                    nodeStrokeWidth: 2,
                    nodeStrokeColor: 'grey',
                    lineStrokeWidth: 4,
                    branchOffset: 50,
                    lineColor: 'grey',
                    leftMargin: 50,
                    branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'],
                    nodeRadius: 10,
                    nodeLabel: { width: 75, height: 100, x: -25, y: 0 },
                  },
                  u = {},
                  g = function (e) {
                    u = e;
                  };
                function f(e, t, i, n) {
                  var s = Object(c.interpolateToCurve)(n, r.curveBasis),
                    o = h.branchColors[i % h.branchColors.length],
                    a = Object(r.line)()
                      .x(function (e) {
                        return Math.round(e.x);
                      })
                      .y(function (e) {
                        return Math.round(e.y);
                      })
                      .curve(s);
                  e.append('svg:path')
                    .attr('d', a(t))
                    .style('stroke', o)
                    .style('stroke-width', h.lineStrokeWidth)
                    .style('fill', 'none');
                }
                function p(e, t) {
                  t = t || e.node().getBBox();
                  var i = e.node().getCTM();
                  return {
                    left: i.e + t.x * i.a,
                    top: i.f + t.y * i.d,
                    width: t.width,
                    height: t.height,
                  };
                }
                function m(e, t, i, n, r) {
                  l.log.debug('svgDrawLineForCommits: ', t, i);
                  var s = p(e.select('#node-' + t + ' circle')),
                    o = p(e.select('#node-' + i + ' circle'));
                  switch (n) {
                    case 'LR':
                      if (s.left - o.left > h.nodeSpacing) {
                        var a = {
                          x: s.left - h.nodeSpacing,
                          y: o.top + o.height / 2,
                        };
                        f(
                          e,
                          [a, { x: o.left + o.width, y: o.top + o.height / 2 }],
                          r,
                          'linear'
                        ),
                          f(
                            e,
                            [
                              { x: s.left, y: s.top + s.height / 2 },
                              {
                                x: s.left - h.nodeSpacing / 2,
                                y: s.top + s.height / 2,
                              },
                              { x: s.left - h.nodeSpacing / 2, y: a.y },
                              a,
                            ],
                            r
                          );
                      } else
                        f(
                          e,
                          [
                            { x: s.left, y: s.top + s.height / 2 },
                            {
                              x: s.left - h.nodeSpacing / 2,
                              y: s.top + s.height / 2,
                            },
                            {
                              x: s.left - h.nodeSpacing / 2,
                              y: o.top + o.height / 2,
                            },
                            { x: o.left + o.width, y: o.top + o.height / 2 },
                          ],
                          r
                        );
                      break;
                    case 'BT':
                      if (o.top - s.top > h.nodeSpacing) {
                        var c = {
                          x: o.left + o.width / 2,
                          y: s.top + s.height + h.nodeSpacing,
                        };
                        f(
                          e,
                          [c, { x: o.left + o.width / 2, y: o.top }],
                          r,
                          'linear'
                        ),
                          f(
                            e,
                            [
                              { x: s.left + s.width / 2, y: s.top + s.height },
                              {
                                x: s.left + s.width / 2,
                                y: s.top + s.height + h.nodeSpacing / 2,
                              },
                              {
                                x: o.left + o.width / 2,
                                y: c.y - h.nodeSpacing / 2,
                              },
                              c,
                            ],
                            r
                          );
                      } else
                        f(
                          e,
                          [
                            { x: s.left + s.width / 2, y: s.top + s.height },
                            {
                              x: s.left + s.width / 2,
                              y: s.top + h.nodeSpacing / 2,
                            },
                            {
                              x: o.left + o.width / 2,
                              y: o.top - h.nodeSpacing / 2,
                            },
                            { x: o.left + o.width / 2, y: o.top },
                          ],
                          r
                        );
                  }
                }
                function _(e, t) {
                  return e.select(t).node().cloneNode(!0);
                }
                function b(e, t, i, r) {
                  var s,
                    o = Object.keys(d).length;
                  if ('string' == typeof t)
                    do {
                      if (
                        ((s = d[t]),
                        l.log.debug('in renderCommitHistory', s.id, s.seq),
                        e.select('#node-' + t).size() > 0)
                      )
                        return;
                      e.append(function () {
                        return _(e, '#def-commit');
                      })
                        .attr('class', 'commit')
                        .attr('id', function () {
                          return 'node-' + s.id;
                        })
                        .attr('transform', function () {
                          switch (r) {
                            case 'LR':
                              return (
                                'translate(' +
                                (s.seq * h.nodeSpacing + h.leftMargin) +
                                ', ' +
                                n * h.branchOffset +
                                ')'
                              );
                            case 'BT':
                              return (
                                'translate(' +
                                (n * h.branchOffset + h.leftMargin) +
                                ', ' +
                                (o - s.seq) * h.nodeSpacing +
                                ')'
                              );
                          }
                        })
                        .attr('fill', h.nodeFillColor)
                        .attr('stroke', h.nodeStrokeColor)
                        .attr('stroke-width', h.nodeStrokeWidth);
                      var a = void 0;
                      for (var c in i)
                        if (i[c].commit === s) {
                          a = i[c];
                          break;
                        }
                      a &&
                        (l.log.debug('found branch ', a.name),
                        e
                          .select('#node-' + s.id + ' p')
                          .append('xhtml:span')
                          .attr('class', 'branch-label')
                          .text(a.name + ', ')),
                        e
                          .select('#node-' + s.id + ' p')
                          .append('xhtml:span')
                          .attr('class', 'commit-id')
                          .text(s.id),
                        '' !== s.message &&
                          'BT' === r &&
                          e
                            .select('#node-' + s.id + ' p')
                            .append('xhtml:span')
                            .attr('class', 'commit-msg')
                            .text(', ' + s.message),
                        (t = s.parent);
                    } while (t && d[t]);
                  Array.isArray(t) &&
                    (l.log.debug('found merge commmit', t),
                    b(e, t[0], i, r),
                    n++,
                    b(e, t[1], i, r),
                    n--);
                }
                function v(e, t, i, n) {
                  for (n = n || 0; t.seq > 0 && !t.lineDrawn; )
                    'string' == typeof t.parent
                      ? (m(e, t.id, t.parent, i, n),
                        (t.lineDrawn = !0),
                        (t = d[t.parent]))
                      : Array.isArray(t.parent) &&
                        (m(e, t.id, t.parent[0], i, n),
                        m(e, t.id, t.parent[1], i, n + 1),
                        v(e, d[t.parent[1]], i, n + 1),
                        (t.lineDrawn = !0),
                        (t = d[t.parent[0]]));
                }
                var y = function (e, t, i) {
                  try {
                    var o = a.a.parser;
                    (o.yy = s.default),
                      o.yy.clear(),
                      l.log.debug(
                        'in gitgraph renderer',
                        e + '\n',
                        'id:',
                        t,
                        i
                      ),
                      o.parse(e + '\n'),
                      (h = Object.assign(h, u, s.default.getOptions())),
                      l.log.debug('effective options', h);
                    var c = s.default.getDirection();
                    d = s.default.getCommits();
                    var g = s.default.getBranchesAsObjArray();
                    'BT' === c &&
                      ((h.nodeLabel.x = g.length * h.branchOffset),
                      (h.nodeLabel.width = '100%'),
                      (h.nodeLabel.y = -2 * h.nodeRadius));
                    var f = Object(r.select)('[id="'.concat(t, '"]'));
                    for (var p in ((function (e) {
                      e
                        .append('defs')
                        .append('g')
                        .attr('id', 'def-commit')
                        .append('circle')
                        .attr('r', h.nodeRadius)
                        .attr('cx', 0)
                        .attr('cy', 0),
                        e
                          .select('#def-commit')
                          .append('foreignObject')
                          .attr('width', h.nodeLabel.width)
                          .attr('height', h.nodeLabel.height)
                          .attr('x', h.nodeLabel.x)
                          .attr('y', h.nodeLabel.y)
                          .attr('class', 'node-label')
                          .attr(
                            'requiredFeatures',
                            'http://www.w3.org/TR/SVG11/feature#Extensibility'
                          )
                          .append('p')
                          .html('');
                    })(f),
                    (n = 1),
                    g)) {
                      var m = g[p];
                      b(f, m.commit.id, g, c), v(f, m.commit, c), n++;
                    }
                    f.attr('height', function () {
                      return 'BT' === c
                        ? Object.keys(d).length * h.nodeSpacing
                        : (g.length + 1) * h.branchOffset;
                    });
                  } catch (e) {
                    l.log.error('Error while rendering gitgraph'),
                      l.log.error(e.message);
                  }
                };
                t.default = { setConf: g, draw: y };
              },
              './src/diagrams/git/parser/gitGraph.jison': function (e, t, i) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [2, 3],
                      i = [1, 7],
                      n = [7, 12, 15, 17, 19, 20, 21],
                      r = [7, 11, 12, 15, 17, 19, 20, 21],
                      s = [2, 20],
                      o = [1, 32],
                      a = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          GG: 4,
                          ':': 5,
                          document: 6,
                          EOF: 7,
                          DIR: 8,
                          options: 9,
                          body: 10,
                          OPT: 11,
                          NL: 12,
                          line: 13,
                          statement: 14,
                          COMMIT: 15,
                          commit_arg: 16,
                          BRANCH: 17,
                          ID: 18,
                          CHECKOUT: 19,
                          MERGE: 20,
                          RESET: 21,
                          reset_arg: 22,
                          STR: 23,
                          HEAD: 24,
                          reset_parents: 25,
                          CARET: 26,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          4: 'GG',
                          5: ':',
                          7: 'EOF',
                          8: 'DIR',
                          11: 'OPT',
                          12: 'NL',
                          15: 'COMMIT',
                          17: 'BRANCH',
                          18: 'ID',
                          19: 'CHECKOUT',
                          20: 'MERGE',
                          21: 'RESET',
                          23: 'STR',
                          24: 'HEAD',
                          26: 'CARET',
                        },
                        productions_: [
                          0,
                          [3, 4],
                          [3, 5],
                          [6, 0],
                          [6, 2],
                          [9, 2],
                          [9, 1],
                          [10, 0],
                          [10, 2],
                          [13, 2],
                          [13, 1],
                          [14, 2],
                          [14, 2],
                          [14, 2],
                          [14, 2],
                          [14, 2],
                          [16, 0],
                          [16, 1],
                          [22, 2],
                          [22, 2],
                          [25, 0],
                          [25, 2],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 1:
                              return s[a - 1];
                            case 2:
                              return n.setDirection(s[a - 3]), s[a - 1];
                            case 4:
                              n.setOptions(s[a - 1]), (this.$ = s[a]);
                              break;
                            case 5:
                              (s[a - 1] += s[a]), (this.$ = s[a - 1]);
                              break;
                            case 7:
                              this.$ = [];
                              break;
                            case 8:
                              s[a - 1].push(s[a]), (this.$ = s[a - 1]);
                              break;
                            case 9:
                              this.$ = s[a - 1];
                              break;
                            case 11:
                              n.commit(s[a]);
                              break;
                            case 12:
                              n.branch(s[a]);
                              break;
                            case 13:
                              n.checkout(s[a]);
                              break;
                            case 14:
                              n.merge(s[a]);
                              break;
                            case 15:
                              n.reset(s[a]);
                              break;
                            case 16:
                              this.$ = '';
                              break;
                            case 17:
                              this.$ = s[a];
                              break;
                            case 18:
                              this.$ = s[a - 1] + ':' + s[a];
                              break;
                            case 19:
                              (this.$ = s[a - 1] + ':' + n.count),
                                (n.count = 0);
                              break;
                            case 20:
                              n.count = 0;
                              break;
                            case 21:
                              n.count += 1;
                          }
                        },
                        table: [
                          { 3: 1, 4: [1, 2] },
                          { 1: [3] },
                          { 5: [1, 3], 8: [1, 4] },
                          { 6: 5, 7: t, 9: 6, 12: i },
                          { 5: [1, 8] },
                          { 7: [1, 9] },
                          e(n, [2, 7], { 10: 10, 11: [1, 11] }),
                          e(r, [2, 6]),
                          { 6: 12, 7: t, 9: 6, 12: i },
                          { 1: [2, 1] },
                          {
                            7: [2, 4],
                            12: [1, 15],
                            13: 13,
                            14: 14,
                            15: [1, 16],
                            17: [1, 17],
                            19: [1, 18],
                            20: [1, 19],
                            21: [1, 20],
                          },
                          e(r, [2, 5]),
                          { 7: [1, 21] },
                          e(n, [2, 8]),
                          { 12: [1, 22] },
                          e(n, [2, 10]),
                          { 12: [2, 16], 16: 23, 23: [1, 24] },
                          { 18: [1, 25] },
                          { 18: [1, 26] },
                          { 18: [1, 27] },
                          { 18: [1, 30], 22: 28, 24: [1, 29] },
                          { 1: [2, 2] },
                          e(n, [2, 9]),
                          { 12: [2, 11] },
                          { 12: [2, 17] },
                          { 12: [2, 12] },
                          { 12: [2, 13] },
                          { 12: [2, 14] },
                          { 12: [2, 15] },
                          { 12: s, 25: 31, 26: o },
                          { 12: s, 25: 33, 26: o },
                          { 12: [2, 18] },
                          { 12: s, 25: 34, 26: o },
                          { 12: [2, 19] },
                          { 12: [2, 21] },
                        ],
                        defaultActions: {
                          9: [2, 1],
                          21: [2, 2],
                          23: [2, 11],
                          24: [2, 17],
                          25: [2, 12],
                          26: [2, 13],
                          27: [2, 14],
                          28: [2, 15],
                          31: [2, 18],
                          33: [2, 19],
                          34: [2, 21],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      l = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return 12;
                            case 1:
                            case 2:
                            case 3:
                              break;
                            case 4:
                              return 4;
                            case 5:
                              return 15;
                            case 6:
                              return 17;
                            case 7:
                              return 20;
                            case 8:
                              return 21;
                            case 9:
                              return 19;
                            case 10:
                            case 11:
                              return 8;
                            case 12:
                              return 5;
                            case 13:
                              return 26;
                            case 14:
                              this.begin('options');
                              break;
                            case 15:
                              this.popState();
                              break;
                            case 16:
                              return 11;
                            case 17:
                              this.begin('string');
                              break;
                            case 18:
                              this.popState();
                              break;
                            case 19:
                              return 23;
                            case 20:
                              return 18;
                            case 21:
                              return 7;
                          }
                        },
                        rules: [
                          /^(?:(\r?\n)+)/i,
                          /^(?:\s+)/i,
                          /^(?:#[^\n]*)/i,
                          /^(?:%[^\n]*)/i,
                          /^(?:gitGraph\b)/i,
                          /^(?:commit\b)/i,
                          /^(?:branch\b)/i,
                          /^(?:merge\b)/i,
                          /^(?:reset\b)/i,
                          /^(?:checkout\b)/i,
                          /^(?:LR\b)/i,
                          /^(?:BT\b)/i,
                          /^(?::)/i,
                          /^(?:\^)/i,
                          /^(?:options\r?\n)/i,
                          /^(?:end\r?\n)/i,
                          /^(?:[^\n]+\r?\n)/i,
                          /^(?:["])/i,
                          /^(?:["])/i,
                          /^(?:[^"]*)/i,
                          /^(?:[a-zA-Z][-_\.a-zA-Z0-9]*[-_a-zA-Z0-9])/i,
                          /^(?:$)/i,
                        ],
                        conditions: {
                          options: { rules: [15, 16], inclusive: !1 },
                          string: { rules: [18, 19], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              1,
                              2,
                              3,
                              4,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10,
                              11,
                              12,
                              13,
                              14,
                              17,
                              20,
                              21,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function c() {
                      this.yy = {};
                    }
                    return (
                      (a.lexer = l), (c.prototype = a), (a.Parser = c), new c()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/git/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function () {
                    return "\n  .commit-id,\n  .commit-msg,\n  .branch-label {\n    fill: lightgrey;\n    color: lightgrey;\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n  }\n";
                  });
              },
              './src/diagrams/info/infoDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setMessage', function () {
                    return o;
                  }),
                  i.d(t, 'getMessage', function () {
                    return a;
                  }),
                  i.d(t, 'setInfo', function () {
                    return l;
                  }),
                  i.d(t, 'getInfo', function () {
                    return c;
                  });
                var n = i('./src/logger.js'),
                  r = '',
                  s = !1,
                  o = function (e) {
                    n.log.debug('Setting message to: ' + e), (r = e);
                  },
                  a = function () {
                    return r;
                  },
                  l = function (e) {
                    s = e;
                  },
                  c = function () {
                    return s;
                  };
                t.default = {
                  setMessage: o,
                  getMessage: a,
                  setInfo: l,
                  getInfo: c,
                };
              },
              './src/diagrams/info/infoRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return c;
                  }),
                  i.d(t, 'draw', function () {
                    return d;
                  });
                var n = i('d3'),
                  r = i('./src/diagrams/info/infoDb.js'),
                  s = i('./src/diagrams/info/parser/info.jison'),
                  o = i.n(s),
                  a = i('./src/logger.js'),
                  l = {},
                  c = function (e) {
                    Object.keys(e).forEach(function (t) {
                      l[t] = e[t];
                    });
                  },
                  d = function (e, t, i) {
                    try {
                      var s = o.a.parser;
                      (s.yy = r.default),
                        a.log.debug('Renering info diagram\n' + e),
                        s.parse(e),
                        a.log.debug('Parsed info diagram');
                      var l = Object(n.select)('#' + t);
                      l
                        .append('g')
                        .append('text')
                        .attr('x', 100)
                        .attr('y', 40)
                        .attr('class', 'version')
                        .attr('font-size', '32px')
                        .style('text-anchor', 'middle')
                        .text('v ' + i),
                        l.attr('height', 100),
                        l.attr('width', 400);
                    } catch (e) {
                      a.log.error('Error while rendering info diagram'),
                        a.log.error(e.message);
                    }
                  };
                t.default = { setConf: c, draw: d };
              },
              './src/diagrams/info/parser/info.jison': function (e, t, i) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [6, 9, 10],
                      i = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          info: 4,
                          document: 5,
                          EOF: 6,
                          line: 7,
                          statement: 8,
                          NL: 9,
                          showInfo: 10,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          4: 'info',
                          6: 'EOF',
                          9: 'NL',
                          10: 'showInfo',
                        },
                        productions_: [
                          0,
                          [3, 3],
                          [5, 0],
                          [5, 2],
                          [7, 1],
                          [7, 1],
                          [8, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          switch ((s.length, r)) {
                            case 1:
                              return n;
                            case 4:
                              break;
                            case 6:
                              n.setInfo(!0);
                          }
                        },
                        table: [
                          { 3: 1, 4: [1, 2] },
                          { 1: [3] },
                          e(t, [2, 2], { 5: 3 }),
                          { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] },
                          { 1: [2, 1] },
                          e(t, [2, 3]),
                          e(t, [2, 4]),
                          e(t, [2, 5]),
                          e(t, [2, 6]),
                        ],
                        defaultActions: { 4: [2, 1] },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      n = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return 4;
                            case 1:
                              return 9;
                            case 2:
                              return 'space';
                            case 3:
                              return 10;
                            case 4:
                              return 6;
                            case 5:
                              return 'TXT';
                          }
                        },
                        rules: [
                          /^(?:info\b)/i,
                          /^(?:[\s\n\r]+)/i,
                          /^(?:[\s]+)/i,
                          /^(?:showInfo\b)/i,
                          /^(?:$)/i,
                          /^(?:.)/i,
                        ],
                        conditions: {
                          INITIAL: { rules: [0, 1, 2, 3, 4, 5], inclusive: !0 },
                        },
                      };
                    function r() {
                      this.yy = {};
                    }
                    return (
                      (i.lexer = n), (r.prototype = i), (i.Parser = r), new r()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/info/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function () {
                    return '';
                  });
              },
              './src/diagrams/pie/parser/pie.jison': function (e, t, i) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 4],
                      i = [1, 5],
                      n = [1, 6],
                      r = [1, 7],
                      s = [1, 9],
                      o = [1, 10, 12, 19, 20, 21, 22],
                      a = [1, 6, 10, 12, 19, 20, 21, 22],
                      l = [19, 20, 21],
                      c = [1, 22],
                      d = [6, 19, 20, 21, 22],
                      h = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          eol: 4,
                          directive: 5,
                          PIE: 6,
                          document: 7,
                          line: 8,
                          statement: 9,
                          txt: 10,
                          value: 11,
                          title: 12,
                          title_value: 13,
                          openDirective: 14,
                          typeDirective: 15,
                          closeDirective: 16,
                          ':': 17,
                          argDirective: 18,
                          NEWLINE: 19,
                          ';': 20,
                          EOF: 21,
                          open_directive: 22,
                          type_directive: 23,
                          arg_directive: 24,
                          close_directive: 25,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          6: 'PIE',
                          10: 'txt',
                          11: 'value',
                          12: 'title',
                          13: 'title_value',
                          17: ':',
                          19: 'NEWLINE',
                          20: ';',
                          21: 'EOF',
                          22: 'open_directive',
                          23: 'type_directive',
                          24: 'arg_directive',
                          25: 'close_directive',
                        },
                        productions_: [
                          0,
                          [3, 2],
                          [3, 2],
                          [3, 2],
                          [7, 0],
                          [7, 2],
                          [8, 2],
                          [9, 0],
                          [9, 2],
                          [9, 2],
                          [9, 1],
                          [5, 3],
                          [5, 5],
                          [4, 1],
                          [4, 1],
                          [4, 1],
                          [14, 1],
                          [15, 1],
                          [18, 1],
                          [16, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 6:
                              this.$ = s[a - 1];
                              break;
                            case 8:
                              n.addSection(s[a - 1], n.cleanupValue(s[a]));
                              break;
                            case 9:
                              (this.$ = s[a].trim()), n.setTitle(this.$);
                              break;
                            case 16:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 17:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 18:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 19:
                              n.parseDirective('}%%', 'close_directive', 'pie');
                          }
                        },
                        table: [
                          {
                            3: 1,
                            4: 2,
                            5: 3,
                            6: t,
                            14: 8,
                            19: i,
                            20: n,
                            21: r,
                            22: s,
                          },
                          { 1: [3] },
                          {
                            3: 10,
                            4: 2,
                            5: 3,
                            6: t,
                            14: 8,
                            19: i,
                            20: n,
                            21: r,
                            22: s,
                          },
                          {
                            3: 11,
                            4: 2,
                            5: 3,
                            6: t,
                            14: 8,
                            19: i,
                            20: n,
                            21: r,
                            22: s,
                          },
                          e(o, [2, 4], { 7: 12 }),
                          e(a, [2, 13]),
                          e(a, [2, 14]),
                          e(a, [2, 15]),
                          { 15: 13, 23: [1, 14] },
                          { 23: [2, 16] },
                          { 1: [2, 1] },
                          { 1: [2, 2] },
                          e(l, [2, 7], {
                            14: 8,
                            8: 15,
                            9: 16,
                            5: 19,
                            1: [2, 3],
                            10: [1, 17],
                            12: [1, 18],
                            22: s,
                          }),
                          { 16: 20, 17: [1, 21], 25: c },
                          e([17, 25], [2, 17]),
                          e(o, [2, 5]),
                          { 4: 23, 19: i, 20: n, 21: r },
                          { 11: [1, 24] },
                          { 13: [1, 25] },
                          e(l, [2, 10]),
                          e(d, [2, 11]),
                          { 18: 26, 24: [1, 27] },
                          e(d, [2, 19]),
                          e(o, [2, 6]),
                          e(l, [2, 8]),
                          e(l, [2, 9]),
                          { 16: 28, 25: c },
                          { 25: [2, 18] },
                          e(d, [2, 12]),
                        ],
                        defaultActions: {
                          9: [2, 16],
                          10: [2, 1],
                          11: [2, 2],
                          27: [2, 18],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      u = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 22;
                            case 1:
                              return this.begin('type_directive'), 23;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 17
                              );
                            case 3:
                              return this.popState(), this.popState(), 25;
                            case 4:
                              return 24;
                            case 5:
                            case 6:
                              break;
                            case 7:
                              return 19;
                            case 8:
                            case 9:
                              break;
                            case 10:
                              return this.begin('title'), 12;
                            case 11:
                              return this.popState(), 'title_value';
                            case 12:
                              this.begin('string');
                              break;
                            case 13:
                              this.popState();
                              break;
                            case 14:
                              return 'txt';
                            case 15:
                              return 6;
                            case 16:
                              return 'value';
                            case 17:
                              return 21;
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:%%(?!\{)[^\n]*)/i,
                          /^(?:[^\}]%%[^\n]*)/i,
                          /^(?:[\n\r]+)/i,
                          /^(?:%%[^\n]*)/i,
                          /^(?:[\s]+)/i,
                          /^(?:title\b)/i,
                          /^(?:(?!\n||)*[^\n]*)/i,
                          /^(?:["])/i,
                          /^(?:["])/i,
                          /^(?:[^"]*)/i,
                          /^(?:pie\b)/i,
                          /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,
                          /^(?:$)/i,
                        ],
                        conditions: {
                          close_directive: { rules: [], inclusive: !1 },
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          open_directive: { rules: [1], inclusive: !1 },
                          title: { rules: [11], inclusive: !1 },
                          string: { rules: [13, 14], inclusive: !1 },
                          INITIAL: {
                            rules: [0, 5, 6, 7, 8, 9, 10, 12, 15, 16, 17],
                            inclusive: !0,
                          },
                        },
                      };
                    function g() {
                      this.yy = {};
                    }
                    return (
                      (h.lexer = u), (g.prototype = h), (h.Parser = g), new g()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/pie/pieDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return l;
                  });
                var n = i('./src/logger.js'),
                  r = i('./src/mermaidAPI.js'),
                  s = i('./src/config.js'),
                  o = {},
                  a = '',
                  l = function (e, t, i) {
                    r.default.parseDirective(this, e, t, i);
                  };
                t.default = {
                  parseDirective: l,
                  getConfig: function () {
                    return s.getConfig().pie;
                  },
                  addSection: function (e, t) {
                    void 0 === o[e] &&
                      ((o[e] = t), n.log.debug('Added new section :', e));
                  },
                  getSections: function () {
                    return o;
                  },
                  cleanupValue: function (e) {
                    return ':' === e.substring(0, 1)
                      ? ((e = e.substring(1).trim()), Number(e.trim()))
                      : Number(e.trim());
                  },
                  clear: function () {
                    (o = {}), (a = '');
                  },
                  setTitle: function (e) {
                    a = e;
                  },
                  getTitle: function () {
                    return a;
                  },
                };
              },
              './src/diagrams/pie/pieRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return h;
                  }),
                  i.d(t, 'draw', function () {
                    return u;
                  });
                var n,
                  r = i('d3'),
                  s = i('./src/diagrams/pie/pieDb.js'),
                  o = i('./src/diagrams/pie/parser/pie.jison'),
                  a = i.n(o),
                  l = i('./src/logger.js'),
                  c = i('./src/utils.js'),
                  d = {},
                  h = function (e) {
                    Object.keys(e).forEach(function (t) {
                      d[t] = e[t];
                    });
                  },
                  u = function (e, t) {
                    try {
                      var i = a.a.parser;
                      (i.yy = s.default),
                        l.log.debug('Rendering info diagram\n' + e),
                        i.yy.clear(),
                        i.parse(e),
                        l.log.debug('Parsed info diagram');
                      var o = document.getElementById(t);
                      void 0 === (n = o.parentElement.offsetWidth) &&
                        (n = 1200),
                        void 0 !== d.useWidth && (n = d.useWidth);
                      var h = Object(r.select)('#' + t);
                      Object(c.configureSvgSize)(h, 450, n, d.useMaxWidth),
                        o.setAttribute('viewBox', '0 0 ' + n + ' 450');
                      var u = Math.min(n, 450) / 2 - 40,
                        g = h
                          .append('g')
                          .attr('transform', 'translate(' + n / 2 + ',225)'),
                        f = s.default.getSections(),
                        p = 0;
                      Object.keys(f).forEach(function (e) {
                        p += f[e];
                      });
                      var m = Object(r.scaleOrdinal)()
                          .domain(f)
                          .range(r.schemeSet2),
                        _ = Object(r.pie)().value(function (e) {
                          return e.value;
                        })(Object(r.entries)(f)),
                        b = Object(r.arc)().innerRadius(0).outerRadius(u);
                      g
                        .selectAll('mySlices')
                        .data(_)
                        .enter()
                        .append('path')
                        .attr('d', b)
                        .attr('fill', function (e) {
                          return m(e.data.key);
                        })
                        .attr('stroke', 'black')
                        .style('stroke-width', '2px')
                        .style('opacity', 0.7),
                        g
                          .selectAll('mySlices')
                          .data(
                            _.filter(function (e) {
                              return 0 !== e.data.value;
                            })
                          )
                          .enter()
                          .append('text')
                          .text(function (e) {
                            return ((e.data.value / p) * 100).toFixed(0) + '%';
                          })
                          .attr('transform', function (e) {
                            return 'translate(' + b.centroid(e) + ')';
                          })
                          .style('text-anchor', 'middle')
                          .attr('class', 'slice')
                          .style('font-size', 17),
                        g
                          .append('text')
                          .text(i.yy.getTitle())
                          .attr('x', 0)
                          .attr('y', -200)
                          .attr('class', 'pieTitleText');
                      var v = g
                        .selectAll('.legend')
                        .data(m.domain())
                        .enter()
                        .append('g')
                        .attr('class', 'legend')
                        .attr('transform', function (e, t) {
                          return (
                            'translate(216,' +
                            (22 * t - (22 * m.domain().length) / 2) +
                            ')'
                          );
                        });
                      v
                        .append('rect')
                        .attr('width', 18)
                        .attr('height', 18)
                        .style('fill', m)
                        .style('stroke', m),
                        v
                          .append('text')
                          .attr('x', 22)
                          .attr('y', 14)
                          .text(function (e) {
                            return e;
                          });
                    } catch (e) {
                      l.log.error('Error while rendering info diagram'),
                        l.log.error(e);
                    }
                  };
                t.default = { setConf: h, draw: u };
              },
              './src/diagrams/pie/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return '.pieTitleText {\n    text-anchor: middle;\n    font-size: 25px;\n    fill: '
                      .concat(e.taskTextDarkColor, ';\n    font-family: ')
                      .concat(
                        e.fontFamily,
                        ';\n  }\n  .slice {\n    font-family: '
                      )
                      .concat(e.fontFamily, ';\n    fill: ')
                      .concat(
                        e.textColor,
                        ';\n    // fill: white;\n  }\n  .legend text {\n    fill: '
                      )
                      .concat(e.taskTextDarkColor, ';\n    font-family: ')
                      .concat(e.fontFamily, ';\n    font-size: 17px;\n  }\n');
                  });
              },
              './src/diagrams/requirement/parser/requirementDiagram.jison': function (
                e,
                t,
                i
              ) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 3],
                      i = [1, 5],
                      n = [1, 14],
                      r = [2, 9],
                      s = [1, 18],
                      o = [1, 19],
                      a = [1, 20],
                      l = [1, 21],
                      c = [1, 22],
                      d = [1, 23],
                      h = [1, 16],
                      u = [1, 24],
                      g = [1, 25],
                      f = [1, 28],
                      p = [66, 67],
                      m = [6, 8, 35, 36, 37, 38, 39, 40, 48, 55, 57, 66, 67],
                      _ = [5, 14],
                      b = [1, 47],
                      v = [1, 48],
                      y = [1, 49],
                      w = [1, 50],
                      C = [1, 51],
                      S = [1, 52],
                      k = [1, 53],
                      x = [57, 58],
                      L = [1, 65],
                      M = [1, 61],
                      D = [1, 62],
                      N = [1, 63],
                      E = [1, 64],
                      T = [1, 66],
                      I = [1, 70],
                      O = [1, 71],
                      A = [1, 68],
                      R = [1, 69],
                      P = [6, 8, 35, 36, 37, 38, 39, 40, 48, 66, 67],
                      F = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          directive: 4,
                          RD: 5,
                          NEWLINE: 6,
                          diagram: 7,
                          EOF: 8,
                          openDirective: 9,
                          typeDirective: 10,
                          closeDirective: 11,
                          ':': 12,
                          argDirective: 13,
                          open_directive: 14,
                          type_directive: 15,
                          arg_directive: 16,
                          close_directive: 17,
                          requirementDef: 18,
                          elementDef: 19,
                          relationshipDef: 20,
                          requirementType: 21,
                          requirementName: 22,
                          STRUCT_START: 23,
                          requirementBody: 24,
                          ID: 25,
                          COLONSEP: 26,
                          id: 27,
                          TEXT: 28,
                          text: 29,
                          RISK: 30,
                          riskLevel: 31,
                          VERIFYMTHD: 32,
                          verifyType: 33,
                          STRUCT_STOP: 34,
                          REQUIREMENT: 35,
                          FUNCTIONAL_REQUIREMENT: 36,
                          INTERFACE_REQUIREMENT: 37,
                          PERFORMANCE_REQUIREMENT: 38,
                          PHYSICAL_REQUIREMENT: 39,
                          DESIGN_CONSTRAINT: 40,
                          LOW_RISK: 41,
                          MED_RISK: 42,
                          HIGH_RISK: 43,
                          VERIFY_ANALYSIS: 44,
                          VERIFY_DEMONSTRATION: 45,
                          VERIFY_INSPECTION: 46,
                          VERIFY_TEST: 47,
                          ELEMENT: 48,
                          elementName: 49,
                          elementBody: 50,
                          TYPE: 51,
                          type: 52,
                          DOCREF: 53,
                          ref: 54,
                          END_ARROW_L: 55,
                          relationship: 56,
                          LINE: 57,
                          END_ARROW_R: 58,
                          CONTAINS: 59,
                          COPIES: 60,
                          DERIVES: 61,
                          SATISFIES: 62,
                          VERIFIES: 63,
                          REFINES: 64,
                          TRACES: 65,
                          unqString: 66,
                          qString: 67,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          5: 'RD',
                          6: 'NEWLINE',
                          8: 'EOF',
                          12: ':',
                          14: 'open_directive',
                          15: 'type_directive',
                          16: 'arg_directive',
                          17: 'close_directive',
                          23: 'STRUCT_START',
                          25: 'ID',
                          26: 'COLONSEP',
                          28: 'TEXT',
                          30: 'RISK',
                          32: 'VERIFYMTHD',
                          34: 'STRUCT_STOP',
                          35: 'REQUIREMENT',
                          36: 'FUNCTIONAL_REQUIREMENT',
                          37: 'INTERFACE_REQUIREMENT',
                          38: 'PERFORMANCE_REQUIREMENT',
                          39: 'PHYSICAL_REQUIREMENT',
                          40: 'DESIGN_CONSTRAINT',
                          41: 'LOW_RISK',
                          42: 'MED_RISK',
                          43: 'HIGH_RISK',
                          44: 'VERIFY_ANALYSIS',
                          45: 'VERIFY_DEMONSTRATION',
                          46: 'VERIFY_INSPECTION',
                          47: 'VERIFY_TEST',
                          48: 'ELEMENT',
                          51: 'TYPE',
                          53: 'DOCREF',
                          55: 'END_ARROW_L',
                          57: 'LINE',
                          58: 'END_ARROW_R',
                          59: 'CONTAINS',
                          60: 'COPIES',
                          61: 'DERIVES',
                          62: 'SATISFIES',
                          63: 'VERIFIES',
                          64: 'REFINES',
                          65: 'TRACES',
                          66: 'unqString',
                          67: 'qString',
                        },
                        productions_: [
                          0,
                          [3, 2],
                          [3, 4],
                          [4, 3],
                          [4, 5],
                          [9, 1],
                          [10, 1],
                          [13, 1],
                          [11, 1],
                          [7, 0],
                          [7, 2],
                          [7, 2],
                          [7, 2],
                          [7, 2],
                          [18, 5],
                          [24, 5],
                          [24, 5],
                          [24, 5],
                          [24, 5],
                          [24, 2],
                          [24, 1],
                          [21, 1],
                          [21, 1],
                          [21, 1],
                          [21, 1],
                          [21, 1],
                          [21, 1],
                          [31, 1],
                          [31, 1],
                          [31, 1],
                          [33, 1],
                          [33, 1],
                          [33, 1],
                          [33, 1],
                          [19, 5],
                          [50, 5],
                          [50, 5],
                          [50, 2],
                          [50, 1],
                          [20, 5],
                          [20, 5],
                          [56, 1],
                          [56, 1],
                          [56, 1],
                          [56, 1],
                          [56, 1],
                          [56, 1],
                          [56, 1],
                          [22, 1],
                          [22, 1],
                          [27, 1],
                          [27, 1],
                          [29, 1],
                          [29, 1],
                          [49, 1],
                          [49, 1],
                          [52, 1],
                          [52, 1],
                          [54, 1],
                          [54, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 5:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 6:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 7:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 8:
                              n.parseDirective('}%%', 'close_directive', 'pie');
                              break;
                            case 9:
                              this.$ = [];
                              break;
                            case 14:
                              n.addRequirement(s[a - 3], s[a - 4]);
                              break;
                            case 15:
                              n.setNewReqId(s[a - 2]);
                              break;
                            case 16:
                              n.setNewReqText(s[a - 2]);
                              break;
                            case 17:
                              n.setNewReqRisk(s[a - 2]);
                              break;
                            case 18:
                              n.setNewReqVerifyMethod(s[a - 2]);
                              break;
                            case 21:
                              this.$ = n.RequirementType.REQUIREMENT;
                              break;
                            case 22:
                              this.$ = n.RequirementType.FUNCTIONAL_REQUIREMENT;
                              break;
                            case 23:
                              this.$ = n.RequirementType.INTERFACE_REQUIREMENT;
                              break;
                            case 24:
                              this.$ =
                                n.RequirementType.PERFORMANCE_REQUIREMENT;
                              break;
                            case 25:
                              this.$ = n.RequirementType.PHYSICAL_REQUIREMENT;
                              break;
                            case 26:
                              this.$ = n.RequirementType.DESIGN_CONSTRAINT;
                              break;
                            case 27:
                              this.$ = n.RiskLevel.LOW_RISK;
                              break;
                            case 28:
                              this.$ = n.RiskLevel.MED_RISK;
                              break;
                            case 29:
                              this.$ = n.RiskLevel.HIGH_RISK;
                              break;
                            case 30:
                              this.$ = n.VerifyType.VERIFY_ANALYSIS;
                              break;
                            case 31:
                              this.$ = n.VerifyType.VERIFY_DEMONSTRATION;
                              break;
                            case 32:
                              this.$ = n.VerifyType.VERIFY_INSPECTION;
                              break;
                            case 33:
                              this.$ = n.VerifyType.VERIFY_TEST;
                              break;
                            case 34:
                              n.addElement(s[a - 3]);
                              break;
                            case 35:
                              n.setNewElementType(s[a - 2]);
                              break;
                            case 36:
                              n.setNewElementDocRef(s[a - 2]);
                              break;
                            case 39:
                              n.addRelationship(s[a - 2], s[a], s[a - 4]);
                              break;
                            case 40:
                              n.addRelationship(s[a - 2], s[a - 4], s[a]);
                              break;
                            case 41:
                              this.$ = n.Relationships.CONTAINS;
                              break;
                            case 42:
                              this.$ = n.Relationships.COPIES;
                              break;
                            case 43:
                              this.$ = n.Relationships.DERIVES;
                              break;
                            case 44:
                              this.$ = n.Relationships.SATISFIES;
                              break;
                            case 45:
                              this.$ = n.Relationships.VERIFIES;
                              break;
                            case 46:
                              this.$ = n.Relationships.REFINES;
                              break;
                            case 47:
                              this.$ = n.Relationships.TRACES;
                          }
                        },
                        table: [
                          { 3: 1, 4: 2, 5: t, 9: 4, 14: i },
                          { 1: [3] },
                          { 3: 6, 4: 2, 5: t, 9: 4, 14: i },
                          { 6: [1, 7] },
                          { 10: 8, 15: [1, 9] },
                          { 15: [2, 5] },
                          { 1: [2, 1] },
                          {
                            6: n,
                            7: 10,
                            8: r,
                            18: 11,
                            19: 12,
                            20: 13,
                            21: 15,
                            27: 17,
                            35: s,
                            36: o,
                            37: a,
                            38: l,
                            39: c,
                            40: d,
                            48: h,
                            66: u,
                            67: g,
                          },
                          { 11: 26, 12: [1, 27], 17: f },
                          e([12, 17], [2, 6]),
                          { 8: [1, 29] },
                          {
                            6: n,
                            7: 30,
                            8: r,
                            18: 11,
                            19: 12,
                            20: 13,
                            21: 15,
                            27: 17,
                            35: s,
                            36: o,
                            37: a,
                            38: l,
                            39: c,
                            40: d,
                            48: h,
                            66: u,
                            67: g,
                          },
                          {
                            6: n,
                            7: 31,
                            8: r,
                            18: 11,
                            19: 12,
                            20: 13,
                            21: 15,
                            27: 17,
                            35: s,
                            36: o,
                            37: a,
                            38: l,
                            39: c,
                            40: d,
                            48: h,
                            66: u,
                            67: g,
                          },
                          {
                            6: n,
                            7: 32,
                            8: r,
                            18: 11,
                            19: 12,
                            20: 13,
                            21: 15,
                            27: 17,
                            35: s,
                            36: o,
                            37: a,
                            38: l,
                            39: c,
                            40: d,
                            48: h,
                            66: u,
                            67: g,
                          },
                          {
                            6: n,
                            7: 33,
                            8: r,
                            18: 11,
                            19: 12,
                            20: 13,
                            21: 15,
                            27: 17,
                            35: s,
                            36: o,
                            37: a,
                            38: l,
                            39: c,
                            40: d,
                            48: h,
                            66: u,
                            67: g,
                          },
                          { 22: 34, 66: [1, 35], 67: [1, 36] },
                          { 49: 37, 66: [1, 38], 67: [1, 39] },
                          { 55: [1, 40], 57: [1, 41] },
                          e(p, [2, 21]),
                          e(p, [2, 22]),
                          e(p, [2, 23]),
                          e(p, [2, 24]),
                          e(p, [2, 25]),
                          e(p, [2, 26]),
                          e(m, [2, 50]),
                          e(m, [2, 51]),
                          e(_, [2, 3]),
                          { 13: 42, 16: [1, 43] },
                          e(_, [2, 8]),
                          { 1: [2, 2] },
                          { 8: [2, 10] },
                          { 8: [2, 11] },
                          { 8: [2, 12] },
                          { 8: [2, 13] },
                          { 23: [1, 44] },
                          { 23: [2, 48] },
                          { 23: [2, 49] },
                          { 23: [1, 45] },
                          { 23: [2, 54] },
                          { 23: [2, 55] },
                          {
                            56: 46,
                            59: b,
                            60: v,
                            61: y,
                            62: w,
                            63: C,
                            64: S,
                            65: k,
                          },
                          {
                            56: 54,
                            59: b,
                            60: v,
                            61: y,
                            62: w,
                            63: C,
                            64: S,
                            65: k,
                          },
                          { 11: 55, 17: f },
                          { 17: [2, 7] },
                          { 6: [1, 56] },
                          { 6: [1, 57] },
                          { 57: [1, 58] },
                          e(x, [2, 41]),
                          e(x, [2, 42]),
                          e(x, [2, 43]),
                          e(x, [2, 44]),
                          e(x, [2, 45]),
                          e(x, [2, 46]),
                          e(x, [2, 47]),
                          { 58: [1, 59] },
                          e(_, [2, 4]),
                          { 6: L, 24: 60, 25: M, 28: D, 30: N, 32: E, 34: T },
                          { 6: I, 34: O, 50: 67, 51: A, 53: R },
                          { 27: 72, 66: u, 67: g },
                          { 27: 73, 66: u, 67: g },
                          e(P, [2, 14]),
                          { 26: [1, 74] },
                          { 26: [1, 75] },
                          { 26: [1, 76] },
                          { 26: [1, 77] },
                          { 6: L, 24: 78, 25: M, 28: D, 30: N, 32: E, 34: T },
                          e(P, [2, 20]),
                          e(P, [2, 34]),
                          { 26: [1, 79] },
                          { 26: [1, 80] },
                          { 6: I, 34: O, 50: 81, 51: A, 53: R },
                          e(P, [2, 38]),
                          e(P, [2, 39]),
                          e(P, [2, 40]),
                          { 27: 82, 66: u, 67: g },
                          { 29: 83, 66: [1, 84], 67: [1, 85] },
                          { 31: 86, 41: [1, 87], 42: [1, 88], 43: [1, 89] },
                          {
                            33: 90,
                            44: [1, 91],
                            45: [1, 92],
                            46: [1, 93],
                            47: [1, 94],
                          },
                          e(P, [2, 19]),
                          { 52: 95, 66: [1, 96], 67: [1, 97] },
                          { 54: 98, 66: [1, 99], 67: [1, 100] },
                          e(P, [2, 37]),
                          { 6: [1, 101] },
                          { 6: [1, 102] },
                          { 6: [2, 52] },
                          { 6: [2, 53] },
                          { 6: [1, 103] },
                          { 6: [2, 27] },
                          { 6: [2, 28] },
                          { 6: [2, 29] },
                          { 6: [1, 104] },
                          { 6: [2, 30] },
                          { 6: [2, 31] },
                          { 6: [2, 32] },
                          { 6: [2, 33] },
                          { 6: [1, 105] },
                          { 6: [2, 56] },
                          { 6: [2, 57] },
                          { 6: [1, 106] },
                          { 6: [2, 58] },
                          { 6: [2, 59] },
                          { 6: L, 24: 107, 25: M, 28: D, 30: N, 32: E, 34: T },
                          { 6: L, 24: 108, 25: M, 28: D, 30: N, 32: E, 34: T },
                          { 6: L, 24: 109, 25: M, 28: D, 30: N, 32: E, 34: T },
                          { 6: L, 24: 110, 25: M, 28: D, 30: N, 32: E, 34: T },
                          { 6: I, 34: O, 50: 111, 51: A, 53: R },
                          { 6: I, 34: O, 50: 112, 51: A, 53: R },
                          e(P, [2, 15]),
                          e(P, [2, 16]),
                          e(P, [2, 17]),
                          e(P, [2, 18]),
                          e(P, [2, 35]),
                          e(P, [2, 36]),
                        ],
                        defaultActions: {
                          5: [2, 5],
                          6: [2, 1],
                          29: [2, 2],
                          30: [2, 10],
                          31: [2, 11],
                          32: [2, 12],
                          33: [2, 13],
                          35: [2, 48],
                          36: [2, 49],
                          38: [2, 54],
                          39: [2, 55],
                          43: [2, 7],
                          84: [2, 52],
                          85: [2, 53],
                          87: [2, 27],
                          88: [2, 28],
                          89: [2, 29],
                          91: [2, 30],
                          92: [2, 31],
                          93: [2, 32],
                          94: [2, 33],
                          96: [2, 56],
                          97: [2, 57],
                          99: [2, 58],
                          100: [2, 59],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      B = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 14;
                            case 1:
                              return this.begin('type_directive'), 15;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 12
                              );
                            case 3:
                              return this.popState(), this.popState(), 17;
                            case 4:
                              return 16;
                            case 5:
                              return 6;
                            case 6:
                            case 7:
                            case 8:
                              break;
                            case 9:
                              return 8;
                            case 10:
                              return 5;
                            case 11:
                              return 23;
                            case 12:
                              return 34;
                            case 13:
                              return 26;
                            case 14:
                              return 25;
                            case 15:
                              return 28;
                            case 16:
                              return 30;
                            case 17:
                              return 32;
                            case 18:
                              return 35;
                            case 19:
                              return 36;
                            case 20:
                              return 37;
                            case 21:
                              return 38;
                            case 22:
                              return 39;
                            case 23:
                              return 40;
                            case 24:
                              return 41;
                            case 25:
                              return 42;
                            case 26:
                              return 43;
                            case 27:
                              return 44;
                            case 28:
                              return 45;
                            case 29:
                              return 46;
                            case 30:
                              return 47;
                            case 31:
                              return 48;
                            case 32:
                              return 59;
                            case 33:
                              return 60;
                            case 34:
                              return 61;
                            case 35:
                              return 62;
                            case 36:
                              return 63;
                            case 37:
                              return 64;
                            case 38:
                              return 65;
                            case 39:
                              return 51;
                            case 40:
                              return 53;
                            case 41:
                              return 55;
                            case 42:
                              return 58;
                            case 43:
                              return 57;
                            case 44:
                              this.begin('string');
                              break;
                            case 45:
                              this.popState();
                              break;
                            case 46:
                              return 'qString';
                            case 47:
                              return (t.yytext = t.yytext.trim()), 66;
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:(\r?\n)+)/i,
                          /^(?:\s+)/i,
                          /^(?:#[^\n]*)/i,
                          /^(?:%[^\n]*)/i,
                          /^(?:$)/i,
                          /^(?:requirementDiagram\b)/i,
                          /^(?:\{)/i,
                          /^(?:\})/i,
                          /^(?::)/i,
                          /^(?:id\b)/i,
                          /^(?:text\b)/i,
                          /^(?:risk\b)/i,
                          /^(?:verifyMethod\b)/i,
                          /^(?:requirement\b)/i,
                          /^(?:functionalRequirement\b)/i,
                          /^(?:interfaceRequirement\b)/i,
                          /^(?:performanceRequirement\b)/i,
                          /^(?:physicalRequirement\b)/i,
                          /^(?:designConstraint\b)/i,
                          /^(?:low\b)/i,
                          /^(?:medium\b)/i,
                          /^(?:high\b)/i,
                          /^(?:analysis\b)/i,
                          /^(?:demonstration\b)/i,
                          /^(?:inspection\b)/i,
                          /^(?:test\b)/i,
                          /^(?:element\b)/i,
                          /^(?:contains\b)/i,
                          /^(?:copies\b)/i,
                          /^(?:derives\b)/i,
                          /^(?:satisfies\b)/i,
                          /^(?:verifies\b)/i,
                          /^(?:refines\b)/i,
                          /^(?:traces\b)/i,
                          /^(?:type\b)/i,
                          /^(?:docref\b)/i,
                          /^(?:<-)/i,
                          /^(?:->)/i,
                          /^(?:-)/i,
                          /^(?:["])/i,
                          /^(?:["])/i,
                          /^(?:[^"]*)/i,
                          /^(?:[\w][^\r\n\{\<\>\-\=]*)/i,
                        ],
                        conditions: {
                          close_directive: { rules: [], inclusive: !1 },
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          open_directive: { rules: [1], inclusive: !1 },
                          unqString: { rules: [], inclusive: !1 },
                          token: { rules: [], inclusive: !1 },
                          string: { rules: [45, 46], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10,
                              11,
                              12,
                              13,
                              14,
                              15,
                              16,
                              17,
                              18,
                              19,
                              20,
                              21,
                              22,
                              23,
                              24,
                              25,
                              26,
                              27,
                              28,
                              29,
                              30,
                              31,
                              32,
                              33,
                              34,
                              35,
                              36,
                              37,
                              38,
                              39,
                              40,
                              41,
                              42,
                              43,
                              44,
                              47,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function W() {
                      this.yy = {};
                    }
                    return (
                      (F.lexer = B), (W.prototype = F), (F.Parser = W), new W()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/requirement/requirementDb.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return h;
                  });
                var n = i('./src/config.js'),
                  r = i('./src/logger.js'),
                  s = i('./src/mermaidAPI.js'),
                  o = [],
                  a = {},
                  l = {},
                  c = {},
                  d = {},
                  h = function (e, t, i) {
                    s.default.parseDirective(this, e, t, i);
                  };
                t.default = {
                  RequirementType: {
                    REQUIREMENT: 'Requirement',
                    FUNCTIONAL_REQUIREMENT: 'Functional Requirement',
                    INTERFACE_REQUIREMENT: 'Interface Requirement',
                    PERFORMANCE_REQUIREMENT: 'Performance Requirement',
                    PHYSICAL_REQUIREMENT: 'Physical Requirement',
                    DESIGN_CONSTRAINT: 'Design Constraint',
                  },
                  RiskLevel: {
                    LOW_RISK: 'Low',
                    MED_RISK: 'Medium',
                    HIGH_RISK: 'High',
                  },
                  VerifyType: {
                    VERIFY_ANALYSIS: 'Analysis',
                    VERIFY_DEMONSTRATION: 'Demonstration',
                    VERIFY_INSPECTION: 'Inspection',
                    VERIFY_TEST: 'Test',
                  },
                  Relationships: {
                    CONTAINS: 'contains',
                    COPIES: 'copies',
                    DERIVES: 'derives',
                    SATISFIES: 'satisfies',
                    VERIFIES: 'verifies',
                    REFINES: 'refines',
                    TRACES: 'traces',
                  },
                  parseDirective: h,
                  getConfig: function () {
                    return n.getConfig().req;
                  },
                  addRequirement: function (e, t) {
                    return (
                      void 0 === l[e] &&
                        (l[e] = {
                          name: e,
                          type: t,
                          id: a.id,
                          text: a.text,
                          risk: a.risk,
                          verifyMethod: a.verifyMethod,
                        }),
                      (a = {}),
                      l[e]
                    );
                  },
                  getRequirements: function () {
                    return l;
                  },
                  setNewReqId: function (e) {
                    void 0 !== a && (a.id = e);
                  },
                  setNewReqText: function (e) {
                    void 0 !== a && (a.text = e);
                  },
                  setNewReqRisk: function (e) {
                    void 0 !== a && (a.risk = e);
                  },
                  setNewReqVerifyMethod: function (e) {
                    void 0 !== a && (a.verifyMethod = e);
                  },
                  addElement: function (e) {
                    return (
                      void 0 === d[e] &&
                        ((d[e] = { name: e, type: c.type, docRef: c.docRef }),
                        r.log.info('Added new requirement: ', e)),
                      (c = {}),
                      d[e]
                    );
                  },
                  getElements: function () {
                    return d;
                  },
                  setNewElementType: function (e) {
                    void 0 !== c && (c.type = e);
                  },
                  setNewElementDocRef: function (e) {
                    void 0 !== c && (c.docRef = e);
                  },
                  addRelationship: function (e, t, i) {
                    o.push({ type: e, src: t, dst: i });
                  },
                  getRelationships: function () {
                    return o;
                  },
                  clear: function () {
                    (o = []), (a = {}), (l = {}), (c = {}), (d = {});
                  },
                };
              },
              './src/diagrams/requirement/requirementMarkers.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t);
                var n = { CONTAINS: 'contains', ARROW: 'arrow' };
                t.default = {
                  ReqMarkers: n,
                  insertLineEndings: function (e, t) {
                    var i = e
                      .append('defs')
                      .append('marker')
                      .attr('id', n.CONTAINS + '_line_ending')
                      .attr('refX', 0)
                      .attr('refY', t.line_height / 2)
                      .attr('markerWidth', t.line_height)
                      .attr('markerHeight', t.line_height)
                      .attr('orient', 'auto')
                      .append('g');
                    i
                      .append('circle')
                      .attr('cx', t.line_height / 2)
                      .attr('cy', t.line_height / 2)
                      .attr('r', t.line_height / 2)
                      .attr('stroke', t.rect_border_color)
                      .attr('stroke-width', 1)
                      .attr('fill', 'none'),
                      i
                        .append('line')
                        .attr('x1', 0)
                        .attr('x2', t.line_height)
                        .attr('y1', t.line_height / 2)
                        .attr('y2', t.line_height / 2)
                        .attr('stroke', t.rect_border_color)
                        .attr('stroke-width', 1),
                      i
                        .append('line')
                        .attr('y1', 0)
                        .attr('y2', t.line_height)
                        .attr('x1', t.line_height / 2)
                        .attr('x2', t.line_height / 2)
                        .attr('stroke', t.rect_border_color)
                        .attr('stroke-width', 1),
                      e
                        .append('defs')
                        .append('marker')
                        .attr('id', n.ARROW + '_line_ending')
                        .attr('refX', t.line_height)
                        .attr('refY', 0.5 * t.line_height)
                        .attr('markerWidth', t.line_height)
                        .attr('markerHeight', t.line_height)
                        .attr('orient', 'auto')
                        .append('path')
                        .attr(
                          'd',
                          'M0,0 \n      L'
                            .concat(t.line_height, ',')
                            .concat(t.line_height / 2, ' \n      M')
                            .concat(t.line_height, ',')
                            .concat(t.line_height / 2, ' \n      L0,')
                            .concat(t.line_height)
                        )
                        .attr('stroke-width', 1)
                        .attr('stroke', t.rect_border_color);
                  },
                };
              },
              './src/diagrams/requirement/requirementRenderer.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return _;
                  }),
                  i.d(t, 'drawReqs', function () {
                    return w;
                  }),
                  i.d(t, 'drawElements', function () {
                    return C;
                  }),
                  i.d(t, 'draw', function () {
                    return k;
                  });
                var n = i('d3'),
                  r = i('dagre'),
                  s = i.n(r),
                  o = i('graphlib'),
                  a = i.n(o),
                  l = i('./src/config.js'),
                  c = i('./src/logger.js'),
                  d = i('./src/utils.js'),
                  h = i('./src/diagrams/common/common.js'),
                  u = i(
                    './src/diagrams/requirement/parser/requirementDiagram.jison'
                  ),
                  g = i('./src/diagrams/requirement/requirementDb.js'),
                  f = i('./src/diagrams/requirement/requirementMarkers.js'),
                  p = {},
                  m = 0,
                  _ = function (e) {
                    if (void 0 !== e)
                      for (var t = Object.keys(e), i = 0; i < t.length; i++)
                        p[t[i]] = e[t[i]];
                  },
                  b = function (e, t) {
                    return e
                      .insert('rect', '#' + t)
                      .attr('class', 'req reqBox')
                      .attr('fill', p.rect_fill)
                      .attr('fill-opacity', '100%')
                      .attr('stroke', p.rect_border_color)
                      .attr('stroke-size', p.rect_border_size)
                      .attr('x', 0)
                      .attr('y', 0)
                      .attr('width', p.rect_min_width + 'px')
                      .attr('height', p.rect_min_height + 'px');
                  },
                  v = function (e, t, i) {
                    var n = p.rect_min_width / 2,
                      r = e
                        .append('text')
                        .attr('class', 'req reqLabel reqTitle')
                        .attr('id', t)
                        .attr('x', n)
                        .attr('y', p.rect_padding)
                        .attr('dominant-baseline', 'hanging')
                        .attr(
                          'style',
                          'font-family: ' +
                            l.getConfig().fontFamily +
                            '; font-size: ' +
                            p.fontSize +
                            'px'
                        ),
                      s = 0;
                    i.forEach(function (e) {
                      0 == s
                        ? r
                            .append('tspan')
                            .attr('text-anchor', 'middle')
                            .attr('x', p.rect_min_width / 2)
                            .attr('dy', 0)
                            .text(e)
                        : r
                            .append('tspan')
                            .attr('text-anchor', 'middle')
                            .attr('x', p.rect_min_width / 2)
                            .attr('dy', 0.75 * p.line_height)
                            .text(e),
                        s++;
                    });
                    var o = 1.5 * p.rect_padding + s * p.line_height * 0.75;
                    return (
                      e
                        .append('line')
                        .attr('x1', '0')
                        .attr('x2', p.rect_min_width)
                        .attr('y1', o)
                        .attr('y2', o)
                        .attr(
                          'style',
                          'stroke: '.concat(
                            p.rect_border_color,
                            '; stroke-width: 1'
                          )
                        ),
                      { titleNode: r, y: o }
                    );
                  },
                  y = function (e, t, i, n) {
                    var r = e
                        .append('text')
                        .attr('class', 'req reqLabel')
                        .attr('id', t)
                        .attr('x', p.rect_padding)
                        .attr('y', n)
                        .attr('dominant-baseline', 'hanging')
                        .attr(
                          'style',
                          'font-family: ' +
                            l.getConfig().fontFamily +
                            '; font-size: ' +
                            p.fontSize +
                            'px'
                        ),
                      s = 0,
                      o = [];
                    return (
                      i.forEach(function (e) {
                        for (var t = e.length; t > 30 && s < 3; ) {
                          var i = e.substring(0, 30);
                          (t = (e = e.substring(30, e.length)).length),
                            (o[o.length] = i),
                            s++;
                        }
                        if (3 == s) {
                          var n = o[o.length - 1];
                          o[o.length - 1] =
                            n.substring(0, n.length - 4) + '...';
                        } else o[o.length] = e;
                        s = 0;
                      }),
                      o.forEach(function (e) {
                        r.append('tspan')
                          .attr('x', p.rect_padding)
                          .attr('dy', p.line_height)
                          .text(e);
                      }),
                      r
                    );
                  },
                  w = function (e, t, i) {
                    Object.keys(e).forEach(function (n) {
                      var r = e[n];
                      (n = S(n)),
                        console.log('reqName: ', n),
                        c.log.info('Added new requirement: ', n);
                      var s = i.append('g').attr('id', n),
                        o = b(s, 'req-' + n),
                        a = [],
                        l = v(s, n + '_title', [
                          '<<'.concat(r.type, '>>'),
                          ''.concat(r.name),
                        ]);
                      a.push(l.titleNode);
                      var d = y(
                        s,
                        n + '_body',
                        [
                          'Id: '.concat(r.id),
                          'Text: '.concat(r.text),
                          'Risk: '.concat(r.risk),
                          'Verification: '.concat(r.verifyMethod),
                        ],
                        l.y
                      );
                      a.push(d);
                      var h = o.node().getBBox();
                      t.setNode(n, {
                        width: h.width,
                        height: h.height,
                        shape: 'rect',
                        id: n,
                      });
                    });
                  },
                  C = function (e, t, i) {
                    Object.keys(e).forEach(function (n) {
                      var r = e[n],
                        s = S(n),
                        o = i.append('g').attr('id', s),
                        a = 'element-' + s,
                        l = b(o, a),
                        c = [],
                        d = v(o, a + '_title', ['<<Element>>', ''.concat(n)]);
                      c.push(d.titleNode);
                      var h = y(
                        o,
                        a + '_body',
                        [
                          'Type: '.concat(r.type || 'Not Specified'),
                          'Doc Ref: '.concat(r.docref || 'None'),
                        ],
                        d.y
                      );
                      c.push(h);
                      var u = l.node().getBBox();
                      t.setNode(s, {
                        width: u.width,
                        height: u.height,
                        shape: 'rect',
                        id: s,
                      });
                    });
                  },
                  S = function (e) {
                    return e.replace(/\s/g, '').replace(/\./g, '_');
                  },
                  k = function (e, t) {
                    (u.parser.yy = g.default), u.parser.parse(e);
                    var i = Object(n.select)("[id='".concat(t, "']"));
                    f.default.insertLineEndings(i, p);
                    var r,
                      o,
                      l = new a.a.Graph({
                        multigraph: !1,
                        compound: !1,
                        directed: !0,
                      })
                        .setGraph({
                          rankdir: p.layoutDirection,
                          marginx: 20,
                          marginy: 20,
                          nodesep: 100,
                          edgesep: 100,
                          ranksep: 100,
                        })
                        .setDefaultEdgeLabel(function () {
                          return {};
                        }),
                      c = g.default.getRequirements(),
                      _ = g.default.getElements(),
                      b = g.default.getRelationships();
                    w(c, l, i),
                      C(_, l, i),
                      (function (e, t) {
                        e.forEach(function (e) {
                          var i = S(e.src),
                            n = S(e.dst);
                          t.setEdge(i, n, { relationship: e });
                        });
                      })(b, l),
                      s.a.layout(l),
                      (r = i),
                      (o = l).nodes().forEach(function (e) {
                        void 0 !== e &&
                          void 0 !== o.node(e) &&
                          (r.select('#' + e),
                          r
                            .select('#' + e)
                            .attr(
                              'transform',
                              'translate(' +
                                (o.node(e).x - o.node(e).width / 2) +
                                ',' +
                                (o.node(e).y - o.node(e).height / 2) +
                                ' )'
                            ));
                      }),
                      b.forEach(function (e) {
                        !(function (e, t, i, r) {
                          var s = i.edge(S(t.src), S(t.dst)),
                            o = Object(n.line)()
                              .x(function (e) {
                                return e.x;
                              })
                              .y(function (e) {
                                return e.y;
                              }),
                            a = e
                              .insert('path', '#' + r)
                              .attr('class', 'er relationshipLine')
                              .attr('d', o(s.points))
                              .attr('stroke', p.rect_border_color)
                              .attr('fill', 'none');
                          t.type == g.default.Relationships.CONTAINS
                            ? a.attr(
                                'marker-start',
                                'url(' +
                                  h.default.getUrl(p.arrowMarkerAbsolute) +
                                  '#' +
                                  t.type +
                                  '_line_ending)'
                              )
                            : (a.attr('stroke-dasharray', '10,7'),
                              a.attr(
                                'marker-end',
                                'url(' +
                                  h.default.getUrl(p.arrowMarkerAbsolute) +
                                  '#' +
                                  f.default.ReqMarkers.ARROW +
                                  '_line_ending)'
                              )),
                            (function (e, t, i, n) {
                              var r = t.node().getTotalLength(),
                                s = t.node().getPointAtLength(0.5 * r),
                                o = 'rel' + m;
                              m++;
                              var a = e
                                .append('text')
                                .attr('class', 'er relationshipLabel')
                                .attr('id', o)
                                .attr('x', s.x)
                                .attr('y', s.y)
                                .attr('text-anchor', 'middle')
                                .attr('dominant-baseline', 'middle')
                                .attr(
                                  'style',
                                  'font-family: ' +
                                    i.fontFamily +
                                    '; font-size: ' +
                                    i.fontSize +
                                    'px'
                                )
                                .text(n)
                                .node()
                                .getBBox();
                              e.insert('rect', '#' + o)
                                .attr('class', 'req reqLabelBox')
                                .attr('x', s.x - a.width / 2)
                                .attr('y', s.y - a.height / 2)
                                .attr('width', a.width)
                                .attr('height', a.height)
                                .attr('fill', 'white')
                                .attr('fill-opacity', '85%');
                            })(e, a, p, '<<'.concat(t.type, '>>'));
                        })(i, e, l, t);
                      });
                    var v = p.rect_padding,
                      y = i.node().getBBox(),
                      k = y.width + 2 * v,
                      x = y.height + 2 * v;
                    Object(d.configureSvgSize)(i, x, k, p.useMaxWidth),
                      i.attr(
                        'viewBox',
                        ''
                          .concat(y.x - v, ' ')
                          .concat(y.y - v, ' ')
                          .concat(k, ' ')
                          .concat(x)
                      );
                  };
                t.default = { setConf: _, draw: k };
              },
              './src/diagrams/requirement/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function () {
                    return '';
                  });
              },
              './src/diagrams/sequence/parser/sequenceDiagram.jison': function (
                e,
                t,
                i
              ) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 2],
                      i = [1, 3],
                      n = [1, 5],
                      r = [1, 7],
                      s = [2, 5],
                      o = [1, 15],
                      a = [1, 17],
                      l = [1, 18],
                      c = [1, 20],
                      d = [1, 21],
                      h = [1, 22],
                      u = [1, 24],
                      g = [1, 25],
                      f = [1, 26],
                      p = [1, 27],
                      m = [1, 28],
                      _ = [1, 29],
                      b = [1, 32],
                      v = [1, 33],
                      y = [1, 36],
                      w = [
                        1,
                        4,
                        5,
                        16,
                        21,
                        22,
                        23,
                        25,
                        27,
                        28,
                        29,
                        30,
                        31,
                        33,
                        35,
                        36,
                        37,
                        48,
                        58,
                      ],
                      C = [1, 44],
                      S = [
                        4,
                        5,
                        16,
                        21,
                        22,
                        23,
                        25,
                        27,
                        28,
                        29,
                        30,
                        31,
                        33,
                        37,
                        48,
                        58,
                      ],
                      k = [
                        4,
                        5,
                        16,
                        21,
                        22,
                        23,
                        25,
                        27,
                        28,
                        29,
                        30,
                        31,
                        33,
                        36,
                        37,
                        48,
                        58,
                      ],
                      x = [
                        4,
                        5,
                        16,
                        21,
                        22,
                        23,
                        25,
                        27,
                        28,
                        29,
                        30,
                        31,
                        33,
                        35,
                        37,
                        48,
                        58,
                      ],
                      L = [46, 47, 48],
                      M = [
                        1,
                        4,
                        5,
                        7,
                        16,
                        21,
                        22,
                        23,
                        25,
                        27,
                        28,
                        29,
                        30,
                        31,
                        33,
                        35,
                        36,
                        37,
                        48,
                        58,
                      ],
                      D = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          SPACE: 4,
                          NEWLINE: 5,
                          directive: 6,
                          SD: 7,
                          document: 8,
                          line: 9,
                          statement: 10,
                          openDirective: 11,
                          typeDirective: 12,
                          closeDirective: 13,
                          ':': 14,
                          argDirective: 15,
                          participant: 16,
                          actor: 17,
                          AS: 18,
                          restOfLine: 19,
                          signal: 20,
                          autonumber: 21,
                          activate: 22,
                          deactivate: 23,
                          note_statement: 24,
                          title: 25,
                          text2: 26,
                          loop: 27,
                          end: 28,
                          rect: 29,
                          opt: 30,
                          alt: 31,
                          else_sections: 32,
                          par: 33,
                          par_sections: 34,
                          and: 35,
                          else: 36,
                          note: 37,
                          placement: 38,
                          over: 39,
                          actor_pair: 40,
                          spaceList: 41,
                          ',': 42,
                          left_of: 43,
                          right_of: 44,
                          signaltype: 45,
                          '+': 46,
                          '-': 47,
                          ACTOR: 48,
                          SOLID_OPEN_ARROW: 49,
                          DOTTED_OPEN_ARROW: 50,
                          SOLID_ARROW: 51,
                          DOTTED_ARROW: 52,
                          SOLID_CROSS: 53,
                          DOTTED_CROSS: 54,
                          SOLID_POINT: 55,
                          DOTTED_POINT: 56,
                          TXT: 57,
                          open_directive: 58,
                          type_directive: 59,
                          arg_directive: 60,
                          close_directive: 61,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          4: 'SPACE',
                          5: 'NEWLINE',
                          7: 'SD',
                          14: ':',
                          16: 'participant',
                          18: 'AS',
                          19: 'restOfLine',
                          21: 'autonumber',
                          22: 'activate',
                          23: 'deactivate',
                          25: 'title',
                          27: 'loop',
                          28: 'end',
                          29: 'rect',
                          30: 'opt',
                          31: 'alt',
                          33: 'par',
                          35: 'and',
                          36: 'else',
                          37: 'note',
                          39: 'over',
                          42: ',',
                          43: 'left_of',
                          44: 'right_of',
                          46: '+',
                          47: '-',
                          48: 'ACTOR',
                          49: 'SOLID_OPEN_ARROW',
                          50: 'DOTTED_OPEN_ARROW',
                          51: 'SOLID_ARROW',
                          52: 'DOTTED_ARROW',
                          53: 'SOLID_CROSS',
                          54: 'DOTTED_CROSS',
                          55: 'SOLID_POINT',
                          56: 'DOTTED_POINT',
                          57: 'TXT',
                          58: 'open_directive',
                          59: 'type_directive',
                          60: 'arg_directive',
                          61: 'close_directive',
                        },
                        productions_: [
                          0,
                          [3, 2],
                          [3, 2],
                          [3, 2],
                          [3, 2],
                          [8, 0],
                          [8, 2],
                          [9, 2],
                          [9, 1],
                          [9, 1],
                          [6, 4],
                          [6, 6],
                          [10, 5],
                          [10, 3],
                          [10, 2],
                          [10, 1],
                          [10, 3],
                          [10, 3],
                          [10, 2],
                          [10, 3],
                          [10, 4],
                          [10, 4],
                          [10, 4],
                          [10, 4],
                          [10, 4],
                          [10, 1],
                          [34, 1],
                          [34, 4],
                          [32, 1],
                          [32, 4],
                          [24, 4],
                          [24, 4],
                          [41, 2],
                          [41, 1],
                          [40, 3],
                          [40, 1],
                          [38, 1],
                          [38, 1],
                          [20, 5],
                          [20, 5],
                          [20, 4],
                          [17, 1],
                          [45, 1],
                          [45, 1],
                          [45, 1],
                          [45, 1],
                          [45, 1],
                          [45, 1],
                          [45, 1],
                          [45, 1],
                          [26, 1],
                          [11, 1],
                          [12, 1],
                          [15, 1],
                          [13, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 4:
                              return n.apply(s[a]), s[a];
                            case 5:
                              this.$ = [];
                              break;
                            case 6:
                              s[a - 1].push(s[a]), (this.$ = s[a - 1]);
                              break;
                            case 7:
                            case 8:
                              this.$ = s[a];
                              break;
                            case 9:
                              this.$ = [];
                              break;
                            case 12:
                              (s[a - 3].description = n.parseMessage(s[a - 1])),
                                (this.$ = s[a - 3]);
                              break;
                            case 13:
                              this.$ = s[a - 1];
                              break;
                            case 15:
                              n.enableSequenceNumbers();
                              break;
                            case 16:
                              this.$ = {
                                type: 'activeStart',
                                signalType: n.LINETYPE.ACTIVE_START,
                                actor: s[a - 1],
                              };
                              break;
                            case 17:
                              this.$ = {
                                type: 'activeEnd',
                                signalType: n.LINETYPE.ACTIVE_END,
                                actor: s[a - 1],
                              };
                              break;
                            case 19:
                              this.$ = [{ type: 'setTitle', text: s[a - 1] }];
                              break;
                            case 20:
                              s[a - 1].unshift({
                                type: 'loopStart',
                                loopText: n.parseMessage(s[a - 2]),
                                signalType: n.LINETYPE.LOOP_START,
                              }),
                                s[a - 1].push({
                                  type: 'loopEnd',
                                  loopText: s[a - 2],
                                  signalType: n.LINETYPE.LOOP_END,
                                }),
                                (this.$ = s[a - 1]);
                              break;
                            case 21:
                              s[a - 1].unshift({
                                type: 'rectStart',
                                color: n.parseMessage(s[a - 2]),
                                signalType: n.LINETYPE.RECT_START,
                              }),
                                s[a - 1].push({
                                  type: 'rectEnd',
                                  color: n.parseMessage(s[a - 2]),
                                  signalType: n.LINETYPE.RECT_END,
                                }),
                                (this.$ = s[a - 1]);
                              break;
                            case 22:
                              s[a - 1].unshift({
                                type: 'optStart',
                                optText: n.parseMessage(s[a - 2]),
                                signalType: n.LINETYPE.OPT_START,
                              }),
                                s[a - 1].push({
                                  type: 'optEnd',
                                  optText: n.parseMessage(s[a - 2]),
                                  signalType: n.LINETYPE.OPT_END,
                                }),
                                (this.$ = s[a - 1]);
                              break;
                            case 23:
                              s[a - 1].unshift({
                                type: 'altStart',
                                altText: n.parseMessage(s[a - 2]),
                                signalType: n.LINETYPE.ALT_START,
                              }),
                                s[a - 1].push({
                                  type: 'altEnd',
                                  signalType: n.LINETYPE.ALT_END,
                                }),
                                (this.$ = s[a - 1]);
                              break;
                            case 24:
                              s[a - 1].unshift({
                                type: 'parStart',
                                parText: n.parseMessage(s[a - 2]),
                                signalType: n.LINETYPE.PAR_START,
                              }),
                                s[a - 1].push({
                                  type: 'parEnd',
                                  signalType: n.LINETYPE.PAR_END,
                                }),
                                (this.$ = s[a - 1]);
                              break;
                            case 27:
                              this.$ = s[a - 3].concat([
                                {
                                  type: 'and',
                                  parText: n.parseMessage(s[a - 1]),
                                  signalType: n.LINETYPE.PAR_AND,
                                },
                                s[a],
                              ]);
                              break;
                            case 29:
                              this.$ = s[a - 3].concat([
                                {
                                  type: 'else',
                                  altText: n.parseMessage(s[a - 1]),
                                  signalType: n.LINETYPE.ALT_ELSE,
                                },
                                s[a],
                              ]);
                              break;
                            case 30:
                              this.$ = [
                                s[a - 1],
                                {
                                  type: 'addNote',
                                  placement: s[a - 2],
                                  actor: s[a - 1].actor,
                                  text: s[a],
                                },
                              ];
                              break;
                            case 31:
                              (s[a - 2] = []
                                .concat(s[a - 1], s[a - 1])
                                .slice(0, 2)),
                                (s[a - 2][0] = s[a - 2][0].actor),
                                (s[a - 2][1] = s[a - 2][1].actor),
                                (this.$ = [
                                  s[a - 1],
                                  {
                                    type: 'addNote',
                                    placement: n.PLACEMENT.OVER,
                                    actor: s[a - 2].slice(0, 2),
                                    text: s[a],
                                  },
                                ]);
                              break;
                            case 34:
                              this.$ = [s[a - 2], s[a]];
                              break;
                            case 35:
                              this.$ = s[a];
                              break;
                            case 36:
                              this.$ = n.PLACEMENT.LEFTOF;
                              break;
                            case 37:
                              this.$ = n.PLACEMENT.RIGHTOF;
                              break;
                            case 38:
                              this.$ = [
                                s[a - 4],
                                s[a - 1],
                                {
                                  type: 'addMessage',
                                  from: s[a - 4].actor,
                                  to: s[a - 1].actor,
                                  signalType: s[a - 3],
                                  msg: s[a],
                                },
                                {
                                  type: 'activeStart',
                                  signalType: n.LINETYPE.ACTIVE_START,
                                  actor: s[a - 1],
                                },
                              ];
                              break;
                            case 39:
                              this.$ = [
                                s[a - 4],
                                s[a - 1],
                                {
                                  type: 'addMessage',
                                  from: s[a - 4].actor,
                                  to: s[a - 1].actor,
                                  signalType: s[a - 3],
                                  msg: s[a],
                                },
                                {
                                  type: 'activeEnd',
                                  signalType: n.LINETYPE.ACTIVE_END,
                                  actor: s[a - 4],
                                },
                              ];
                              break;
                            case 40:
                              this.$ = [
                                s[a - 3],
                                s[a - 1],
                                {
                                  type: 'addMessage',
                                  from: s[a - 3].actor,
                                  to: s[a - 1].actor,
                                  signalType: s[a - 2],
                                  msg: s[a],
                                },
                              ];
                              break;
                            case 41:
                              this.$ = { type: 'addActor', actor: s[a] };
                              break;
                            case 42:
                              this.$ = n.LINETYPE.SOLID_OPEN;
                              break;
                            case 43:
                              this.$ = n.LINETYPE.DOTTED_OPEN;
                              break;
                            case 44:
                              this.$ = n.LINETYPE.SOLID;
                              break;
                            case 45:
                              this.$ = n.LINETYPE.DOTTED;
                              break;
                            case 46:
                              this.$ = n.LINETYPE.SOLID_CROSS;
                              break;
                            case 47:
                              this.$ = n.LINETYPE.DOTTED_CROSS;
                              break;
                            case 48:
                              this.$ = n.LINETYPE.SOLID_POINT;
                              break;
                            case 49:
                              this.$ = n.LINETYPE.DOTTED_POINT;
                              break;
                            case 50:
                              this.$ = n.parseMessage(s[a].trim().substring(1));
                              break;
                            case 51:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 52:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 53:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 54:
                              n.parseDirective(
                                '}%%',
                                'close_directive',
                                'sequence'
                              );
                          }
                        },
                        table: [
                          { 3: 1, 4: t, 5: i, 6: 4, 7: n, 11: 6, 58: r },
                          { 1: [3] },
                          { 3: 8, 4: t, 5: i, 6: 4, 7: n, 11: 6, 58: r },
                          { 3: 9, 4: t, 5: i, 6: 4, 7: n, 11: 6, 58: r },
                          { 3: 10, 4: t, 5: i, 6: 4, 7: n, 11: 6, 58: r },
                          e(
                            [
                              1,
                              4,
                              5,
                              16,
                              21,
                              22,
                              23,
                              25,
                              27,
                              29,
                              30,
                              31,
                              33,
                              37,
                              48,
                              58,
                            ],
                            s,
                            { 8: 11 }
                          ),
                          { 12: 12, 59: [1, 13] },
                          { 59: [2, 51] },
                          { 1: [2, 1] },
                          { 1: [2, 2] },
                          { 1: [2, 3] },
                          {
                            1: [2, 4],
                            4: o,
                            5: a,
                            6: 30,
                            9: 14,
                            10: 16,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            37: b,
                            48: v,
                            58: r,
                          },
                          { 13: 34, 14: [1, 35], 61: y },
                          e([14, 61], [2, 52]),
                          e(w, [2, 6]),
                          {
                            6: 30,
                            10: 37,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            37: b,
                            48: v,
                            58: r,
                          },
                          e(w, [2, 8]),
                          e(w, [2, 9]),
                          { 17: 38, 48: v },
                          { 5: [1, 39] },
                          e(w, [2, 15]),
                          { 17: 40, 48: v },
                          { 17: 41, 48: v },
                          { 5: [1, 42] },
                          { 26: 43, 57: C },
                          { 19: [1, 45] },
                          { 19: [1, 46] },
                          { 19: [1, 47] },
                          { 19: [1, 48] },
                          { 19: [1, 49] },
                          e(w, [2, 25]),
                          {
                            45: 50,
                            49: [1, 51],
                            50: [1, 52],
                            51: [1, 53],
                            52: [1, 54],
                            53: [1, 55],
                            54: [1, 56],
                            55: [1, 57],
                            56: [1, 58],
                          },
                          { 38: 59, 39: [1, 60], 43: [1, 61], 44: [1, 62] },
                          e(
                            [5, 18, 42, 49, 50, 51, 52, 53, 54, 55, 56, 57],
                            [2, 41]
                          ),
                          { 5: [1, 63] },
                          { 15: 64, 60: [1, 65] },
                          { 5: [2, 54] },
                          e(w, [2, 7]),
                          { 5: [1, 67], 18: [1, 66] },
                          e(w, [2, 14]),
                          { 5: [1, 68] },
                          { 5: [1, 69] },
                          e(w, [2, 18]),
                          { 5: [1, 70] },
                          { 5: [2, 50] },
                          e(S, s, { 8: 71 }),
                          e(S, s, { 8: 72 }),
                          e(S, s, { 8: 73 }),
                          e(k, s, { 32: 74, 8: 75 }),
                          e(x, s, { 34: 76, 8: 77 }),
                          { 17: 80, 46: [1, 78], 47: [1, 79], 48: v },
                          e(L, [2, 42]),
                          e(L, [2, 43]),
                          e(L, [2, 44]),
                          e(L, [2, 45]),
                          e(L, [2, 46]),
                          e(L, [2, 47]),
                          e(L, [2, 48]),
                          e(L, [2, 49]),
                          { 17: 81, 48: v },
                          { 17: 83, 40: 82, 48: v },
                          { 48: [2, 36] },
                          { 48: [2, 37] },
                          e(M, [2, 10]),
                          { 13: 84, 61: y },
                          { 61: [2, 53] },
                          { 19: [1, 85] },
                          e(w, [2, 13]),
                          e(w, [2, 16]),
                          e(w, [2, 17]),
                          e(w, [2, 19]),
                          {
                            4: o,
                            5: a,
                            6: 30,
                            9: 14,
                            10: 16,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            28: [1, 86],
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            37: b,
                            48: v,
                            58: r,
                          },
                          {
                            4: o,
                            5: a,
                            6: 30,
                            9: 14,
                            10: 16,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            28: [1, 87],
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            37: b,
                            48: v,
                            58: r,
                          },
                          {
                            4: o,
                            5: a,
                            6: 30,
                            9: 14,
                            10: 16,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            28: [1, 88],
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            37: b,
                            48: v,
                            58: r,
                          },
                          { 28: [1, 89] },
                          {
                            4: o,
                            5: a,
                            6: 30,
                            9: 14,
                            10: 16,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            28: [2, 28],
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            36: [1, 90],
                            37: b,
                            48: v,
                            58: r,
                          },
                          { 28: [1, 91] },
                          {
                            4: o,
                            5: a,
                            6: 30,
                            9: 14,
                            10: 16,
                            11: 6,
                            16: l,
                            17: 31,
                            20: 19,
                            21: c,
                            22: d,
                            23: h,
                            24: 23,
                            25: u,
                            27: g,
                            28: [2, 26],
                            29: f,
                            30: p,
                            31: m,
                            33: _,
                            35: [1, 92],
                            37: b,
                            48: v,
                            58: r,
                          },
                          { 17: 93, 48: v },
                          { 17: 94, 48: v },
                          { 26: 95, 57: C },
                          { 26: 96, 57: C },
                          { 26: 97, 57: C },
                          { 42: [1, 98], 57: [2, 35] },
                          { 5: [1, 99] },
                          { 5: [1, 100] },
                          e(w, [2, 20]),
                          e(w, [2, 21]),
                          e(w, [2, 22]),
                          e(w, [2, 23]),
                          { 19: [1, 101] },
                          e(w, [2, 24]),
                          { 19: [1, 102] },
                          { 26: 103, 57: C },
                          { 26: 104, 57: C },
                          { 5: [2, 40] },
                          { 5: [2, 30] },
                          { 5: [2, 31] },
                          { 17: 105, 48: v },
                          e(M, [2, 11]),
                          e(w, [2, 12]),
                          e(k, s, { 8: 75, 32: 106 }),
                          e(x, s, { 8: 77, 34: 107 }),
                          { 5: [2, 38] },
                          { 5: [2, 39] },
                          { 57: [2, 34] },
                          { 28: [2, 29] },
                          { 28: [2, 27] },
                        ],
                        defaultActions: {
                          7: [2, 51],
                          8: [2, 1],
                          9: [2, 2],
                          10: [2, 3],
                          36: [2, 54],
                          44: [2, 50],
                          61: [2, 36],
                          62: [2, 37],
                          65: [2, 53],
                          95: [2, 40],
                          96: [2, 30],
                          97: [2, 31],
                          103: [2, 38],
                          104: [2, 39],
                          105: [2, 34],
                          106: [2, 29],
                          107: [2, 27],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      N = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 58;
                            case 1:
                              return this.begin('type_directive'), 59;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 14
                              );
                            case 3:
                              return this.popState(), this.popState(), 61;
                            case 4:
                              return 60;
                            case 5:
                              return 5;
                            case 6:
                            case 7:
                            case 8:
                            case 9:
                            case 10:
                              break;
                            case 11:
                              return this.begin('ID'), 16;
                            case 12:
                              return (
                                (t.yytext = t.yytext.trim()),
                                this.begin('ALIAS'),
                                48
                              );
                            case 13:
                              return (
                                this.popState(),
                                this.popState(),
                                this.begin('LINE'),
                                18
                              );
                            case 14:
                              return this.popState(), this.popState(), 5;
                            case 15:
                              return this.begin('LINE'), 27;
                            case 16:
                              return this.begin('LINE'), 29;
                            case 17:
                              return this.begin('LINE'), 30;
                            case 18:
                              return this.begin('LINE'), 31;
                            case 19:
                              return this.begin('LINE'), 36;
                            case 20:
                              return this.begin('LINE'), 33;
                            case 21:
                              return this.begin('LINE'), 35;
                            case 22:
                              return this.popState(), 19;
                            case 23:
                              return 28;
                            case 24:
                              return 43;
                            case 25:
                              return 44;
                            case 26:
                              return 39;
                            case 27:
                              return 37;
                            case 28:
                              return this.begin('ID'), 22;
                            case 29:
                              return this.begin('ID'), 23;
                            case 30:
                              return 25;
                            case 31:
                              return 7;
                            case 32:
                              return 21;
                            case 33:
                              return 42;
                            case 34:
                              return 5;
                            case 35:
                              return (t.yytext = t.yytext.trim()), 48;
                            case 36:
                              return 51;
                            case 37:
                              return 52;
                            case 38:
                              return 49;
                            case 39:
                              return 50;
                            case 40:
                              return 53;
                            case 41:
                              return 54;
                            case 42:
                              return 55;
                            case 43:
                              return 56;
                            case 44:
                              return 57;
                            case 45:
                              return 46;
                            case 46:
                              return 47;
                            case 47:
                              return 5;
                            case 48:
                              return 'INVALID';
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:[\n]+)/i,
                          /^(?:\s+)/i,
                          /^(?:((?!\n)\s)+)/i,
                          /^(?:#[^\n]*)/i,
                          /^(?:%(?!\{)[^\n]*)/i,
                          /^(?:[^\}]%%[^\n]*)/i,
                          /^(?:participant\b)/i,
                          /^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,
                          /^(?:as\b)/i,
                          /^(?:(?:))/i,
                          /^(?:loop\b)/i,
                          /^(?:rect\b)/i,
                          /^(?:opt\b)/i,
                          /^(?:alt\b)/i,
                          /^(?:else\b)/i,
                          /^(?:par\b)/i,
                          /^(?:and\b)/i,
                          /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,
                          /^(?:end\b)/i,
                          /^(?:left of\b)/i,
                          /^(?:right of\b)/i,
                          /^(?:over\b)/i,
                          /^(?:note\b)/i,
                          /^(?:activate\b)/i,
                          /^(?:deactivate\b)/i,
                          /^(?:title\b)/i,
                          /^(?:sequenceDiagram\b)/i,
                          /^(?:autonumber\b)/i,
                          /^(?:,)/i,
                          /^(?:;)/i,
                          /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,
                          /^(?:->>)/i,
                          /^(?:-->>)/i,
                          /^(?:->)/i,
                          /^(?:-->)/i,
                          /^(?:-[x])/i,
                          /^(?:--[x])/i,
                          /^(?:-[\)])/i,
                          /^(?:--[\)])/i,
                          /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,
                          /^(?:\+)/i,
                          /^(?:-)/i,
                          /^(?:$)/i,
                          /^(?:.)/i,
                        ],
                        conditions: {
                          open_directive: { rules: [1, 8], inclusive: !1 },
                          type_directive: { rules: [2, 3, 8], inclusive: !1 },
                          arg_directive: { rules: [3, 4, 8], inclusive: !1 },
                          ID: { rules: [7, 8, 12], inclusive: !1 },
                          ALIAS: { rules: [7, 8, 13, 14], inclusive: !1 },
                          LINE: { rules: [7, 8, 22], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              8,
                              9,
                              10,
                              11,
                              15,
                              16,
                              17,
                              18,
                              19,
                              20,
                              21,
                              23,
                              24,
                              25,
                              26,
                              27,
                              28,
                              29,
                              30,
                              31,
                              32,
                              33,
                              34,
                              35,
                              36,
                              37,
                              38,
                              39,
                              40,
                              41,
                              42,
                              43,
                              44,
                              45,
                              46,
                              47,
                              48,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function E() {
                      this.yy = {};
                    }
                    return (
                      (D.lexer = N), (E.prototype = D), (D.Parser = E), new E()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/sequence/sequenceDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return f;
                  }),
                  i.d(t, 'addActor', function () {
                    return p;
                  }),
                  i.d(t, 'addMessage', function () {
                    return _;
                  }),
                  i.d(t, 'addSignal', function () {
                    return b;
                  }),
                  i.d(t, 'getMessages', function () {
                    return v;
                  }),
                  i.d(t, 'getActors', function () {
                    return y;
                  }),
                  i.d(t, 'getActor', function () {
                    return w;
                  }),
                  i.d(t, 'getActorKeys', function () {
                    return C;
                  }),
                  i.d(t, 'getTitle', function () {
                    return S;
                  }),
                  i.d(t, 'getTitleWrapped', function () {
                    return k;
                  }),
                  i.d(t, 'enableSequenceNumbers', function () {
                    return x;
                  }),
                  i.d(t, 'showSequenceNumbers', function () {
                    return L;
                  }),
                  i.d(t, 'setWrap', function () {
                    return M;
                  }),
                  i.d(t, 'autoWrap', function () {
                    return D;
                  }),
                  i.d(t, 'clear', function () {
                    return N;
                  }),
                  i.d(t, 'parseMessage', function () {
                    return E;
                  }),
                  i.d(t, 'LINETYPE', function () {
                    return T;
                  }),
                  i.d(t, 'ARROWTYPE', function () {
                    return I;
                  }),
                  i.d(t, 'PLACEMENT', function () {
                    return O;
                  }),
                  i.d(t, 'addNote', function () {
                    return A;
                  }),
                  i.d(t, 'setTitle', function () {
                    return R;
                  }),
                  i.d(t, 'apply', function () {
                    return P;
                  });
                var n = i('./src/mermaidAPI.js'),
                  r = i('./src/config.js'),
                  s = i('./src/logger.js'),
                  o = void 0,
                  a = {},
                  l = [],
                  c = [],
                  d = '',
                  h = !1,
                  u = !1,
                  g = !1,
                  f = function (e, t, i) {
                    n.default.parseDirective(this, e, t, i);
                  },
                  p = function (e, t, i) {
                    var n = a[e];
                    (n && t === n.name && null == i) ||
                      ((null != i && null != i.text) ||
                        (i = { text: t, wrap: null }),
                      (a[e] = {
                        name: t,
                        description: i.text,
                        wrap: (void 0 === i.wrap && D()) || !!i.wrap,
                        prevActor: o,
                      }),
                      o && a[o] && (a[o].nextActor = e),
                      (o = e));
                  },
                  m = function (e) {
                    var t,
                      i = 0;
                    for (t = 0; t < l.length; t++)
                      l[t].type === T.ACTIVE_START &&
                        l[t].from.actor === e &&
                        i++,
                        l[t].type === T.ACTIVE_END &&
                          l[t].from.actor === e &&
                          i--;
                    return i;
                  },
                  _ = function (e, t, i, n) {
                    l.push({
                      from: e,
                      to: t,
                      message: i.text,
                      wrap: (void 0 === i.wrap && D()) || !!i.wrap,
                      answer: n,
                    });
                  },
                  b = function (e, t) {
                    var i =
                        arguments.length > 2 && void 0 !== arguments[2]
                          ? arguments[2]
                          : { text: void 0, wrap: void 0 },
                      n = arguments.length > 3 ? arguments[3] : void 0;
                    if (n === T.ACTIVE_END) {
                      var r = m(e.actor);
                      if (r < 1) {
                        var s = new Error(
                          'Trying to inactivate an inactive participant (' +
                            e.actor +
                            ')'
                        );
                        throw (
                          ((s.hash = {
                            text: '->>-',
                            token: '->>-',
                            line: '1',
                            loc: {
                              first_line: 1,
                              last_line: 1,
                              first_column: 1,
                              last_column: 1,
                            },
                            expected: ["'ACTIVE_PARTICIPANT'"],
                          }),
                          s)
                        );
                      }
                    }
                    return (
                      l.push({
                        from: e,
                        to: t,
                        message: i.text,
                        wrap: (void 0 === i.wrap && D()) || !!i.wrap,
                        type: n,
                      }),
                      !0
                    );
                  },
                  v = function () {
                    return l;
                  },
                  y = function () {
                    return a;
                  },
                  w = function (e) {
                    return a[e];
                  },
                  C = function () {
                    return Object.keys(a);
                  },
                  S = function () {
                    return d;
                  },
                  k = function () {
                    return h;
                  },
                  x = function () {
                    u = !0;
                  },
                  L = function () {
                    return u;
                  },
                  M = function (e) {
                    g = e;
                  },
                  D = function () {
                    return g;
                  },
                  N = function () {
                    (a = {}), (l = []);
                  },
                  E = function (e) {
                    var t = e.trim(),
                      i = {
                        text: t.replace(/^[:]?(?:no)?wrap:/, '').trim(),
                        wrap:
                          null !== t.match(/^[:]?wrap:/) ||
                          (null === t.match(/^[:]?nowrap:/) && void 0),
                      };
                    return s.log.debug('parseMessage:', i), i;
                  },
                  T = {
                    SOLID: 0,
                    DOTTED: 1,
                    NOTE: 2,
                    SOLID_CROSS: 3,
                    DOTTED_CROSS: 4,
                    SOLID_OPEN: 5,
                    DOTTED_OPEN: 6,
                    LOOP_START: 10,
                    LOOP_END: 11,
                    ALT_START: 12,
                    ALT_ELSE: 13,
                    ALT_END: 14,
                    OPT_START: 15,
                    OPT_END: 16,
                    ACTIVE_START: 17,
                    ACTIVE_END: 18,
                    PAR_START: 19,
                    PAR_AND: 20,
                    PAR_END: 21,
                    RECT_START: 22,
                    RECT_END: 23,
                    SOLID_POINT: 24,
                    DOTTED_POINT: 25,
                  },
                  I = { FILLED: 0, OPEN: 1 },
                  O = { LEFTOF: 0, RIGHTOF: 1, OVER: 2 },
                  A = function (e, t, i) {
                    var n = {
                        actor: e,
                        placement: t,
                        message: i.text,
                        wrap: (void 0 === i.wrap && D()) || !!i.wrap,
                      },
                      r = [].concat(e, e);
                    c.push(n),
                      l.push({
                        from: r[0],
                        to: r[1],
                        message: i.text,
                        wrap: (void 0 === i.wrap && D()) || !!i.wrap,
                        type: T.NOTE,
                        placement: t,
                      });
                  },
                  R = function (e) {
                    (d = e.text), (h = (void 0 === e.wrap && D()) || !!e.wrap);
                  },
                  P = function e(t) {
                    if (t instanceof Array)
                      t.forEach(function (t) {
                        e(t);
                      });
                    else
                      switch (t.type) {
                        case 'addActor':
                          p(t.actor, t.actor, t.description);
                          break;
                        case 'activeStart':
                        case 'activeEnd':
                          b(t.actor, void 0, void 0, t.signalType);
                          break;
                        case 'addNote':
                          A(t.actor, t.placement, t.text);
                          break;
                        case 'addMessage':
                          b(t.from, t.to, t.msg, t.signalType);
                          break;
                        case 'loopStart':
                          b(void 0, void 0, t.loopText, t.signalType);
                          break;
                        case 'loopEnd':
                          b(void 0, void 0, void 0, t.signalType);
                          break;
                        case 'rectStart':
                          b(void 0, void 0, t.color, t.signalType);
                          break;
                        case 'rectEnd':
                          b(void 0, void 0, void 0, t.signalType);
                          break;
                        case 'optStart':
                          b(void 0, void 0, t.optText, t.signalType);
                          break;
                        case 'optEnd':
                          b(void 0, void 0, void 0, t.signalType);
                          break;
                        case 'altStart':
                        case 'else':
                          b(void 0, void 0, t.altText, t.signalType);
                          break;
                        case 'altEnd':
                          b(void 0, void 0, void 0, t.signalType);
                          break;
                        case 'setTitle':
                          R(t.text);
                          break;
                        case 'parStart':
                        case 'and':
                          b(void 0, void 0, t.parText, t.signalType);
                          break;
                        case 'parEnd':
                          b(void 0, void 0, void 0, t.signalType);
                      }
                  };
                t.default = {
                  addActor: p,
                  addMessage: _,
                  addSignal: b,
                  autoWrap: D,
                  setWrap: M,
                  enableSequenceNumbers: x,
                  showSequenceNumbers: L,
                  getMessages: v,
                  getActors: y,
                  getActor: w,
                  getActorKeys: C,
                  getTitle: S,
                  parseDirective: f,
                  getConfig: function () {
                    return r.getConfig().sequence;
                  },
                  getTitleWrapped: k,
                  clear: N,
                  parseMessage: E,
                  LINETYPE: T,
                  ARROWTYPE: I,
                  PLACEMENT: O,
                  addNote: A,
                  setTitle: R,
                  apply: P,
                };
              },
              './src/diagrams/sequence/sequenceRenderer.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  i.d(t, 'bounds', function () {
                    return u;
                  }),
                  i.d(t, 'drawActors', function () {
                    return m;
                  }),
                  i.d(t, 'setConf', function () {
                    return _;
                  }),
                  i.d(t, 'draw', function () {
                    return w;
                  });
                var n = i('d3'),
                  r = i('./src/diagrams/sequence/svgDraw.js'),
                  s = i('./src/logger.js'),
                  o = i('./src/diagrams/sequence/parser/sequenceDiagram.jison'),
                  a = i('./src/diagrams/common/common.js'),
                  l = i('./src/diagrams/sequence/sequenceDb.js'),
                  c = i('./src/config.js'),
                  d = i('./src/utils.js');
                o.parser.yy = l.default;
                var h = {},
                  u = {
                    data: {
                      startx: void 0,
                      stopx: void 0,
                      starty: void 0,
                      stopy: void 0,
                    },
                    verticalPos: 0,
                    sequenceItems: [],
                    activations: [],
                    models: {
                      getHeight: function () {
                        return (
                          Math.max.apply(
                            null,
                            0 === this.actors.length
                              ? [0]
                              : this.actors.map(function (e) {
                                  return e.height || 0;
                                })
                          ) +
                          (0 === this.loops.length
                            ? 0
                            : this.loops
                                .map(function (e) {
                                  return e.height || 0;
                                })
                                .reduce(function (e, t) {
                                  return e + t;
                                })) +
                          (0 === this.messages.length
                            ? 0
                            : this.messages
                                .map(function (e) {
                                  return e.height || 0;
                                })
                                .reduce(function (e, t) {
                                  return e + t;
                                })) +
                          (0 === this.notes.length
                            ? 0
                            : this.notes
                                .map(function (e) {
                                  return e.height || 0;
                                })
                                .reduce(function (e, t) {
                                  return e + t;
                                }))
                        );
                      },
                      clear: function () {
                        (this.actors = []),
                          (this.loops = []),
                          (this.messages = []),
                          (this.notes = []);
                      },
                      addActor: function (e) {
                        this.actors.push(e);
                      },
                      addLoop: function (e) {
                        this.loops.push(e);
                      },
                      addMessage: function (e) {
                        this.messages.push(e);
                      },
                      addNote: function (e) {
                        this.notes.push(e);
                      },
                      lastActor: function () {
                        return this.actors[this.actors.length - 1];
                      },
                      lastLoop: function () {
                        return this.loops[this.loops.length - 1];
                      },
                      lastMessage: function () {
                        return this.messages[this.messages.length - 1];
                      },
                      lastNote: function () {
                        return this.notes[this.notes.length - 1];
                      },
                      actors: [],
                      loops: [],
                      messages: [],
                      notes: [],
                    },
                    init: function () {
                      (this.sequenceItems = []),
                        (this.activations = []),
                        this.models.clear(),
                        (this.data = {
                          startx: void 0,
                          stopx: void 0,
                          starty: void 0,
                          stopy: void 0,
                        }),
                        (this.verticalPos = 0),
                        _(o.parser.yy.getConfig());
                    },
                    updateVal: function (e, t, i, n) {
                      void 0 === e[t] ? (e[t] = i) : (e[t] = n(i, e[t]));
                    },
                    updateBounds: function (e, t, i, n) {
                      var r = this,
                        s = 0;
                      function o(o) {
                        return function (a) {
                          s++;
                          var l = r.sequenceItems.length - s + 1;
                          r.updateVal(
                            a,
                            'starty',
                            t - l * h.boxMargin,
                            Math.min
                          ),
                            r.updateVal(
                              a,
                              'stopy',
                              n + l * h.boxMargin,
                              Math.max
                            ),
                            r.updateVal(
                              u.data,
                              'startx',
                              e - l * h.boxMargin,
                              Math.min
                            ),
                            r.updateVal(
                              u.data,
                              'stopx',
                              i + l * h.boxMargin,
                              Math.max
                            ),
                            'activation' !== o &&
                              (r.updateVal(
                                a,
                                'startx',
                                e - l * h.boxMargin,
                                Math.min
                              ),
                              r.updateVal(
                                a,
                                'stopx',
                                i + l * h.boxMargin,
                                Math.max
                              ),
                              r.updateVal(
                                u.data,
                                'starty',
                                t - l * h.boxMargin,
                                Math.min
                              ),
                              r.updateVal(
                                u.data,
                                'stopy',
                                n + l * h.boxMargin,
                                Math.max
                              ));
                        };
                      }
                      this.sequenceItems.forEach(o()),
                        this.activations.forEach(o('activation'));
                    },
                    insert: function (e, t, i, n) {
                      var r = Math.min(e, i),
                        s = Math.max(e, i),
                        o = Math.min(t, n),
                        a = Math.max(t, n);
                      this.updateVal(u.data, 'startx', r, Math.min),
                        this.updateVal(u.data, 'starty', o, Math.min),
                        this.updateVal(u.data, 'stopx', s, Math.max),
                        this.updateVal(u.data, 'stopy', a, Math.max),
                        this.updateBounds(r, o, s, a);
                    },
                    newActivation: function (e, t, i) {
                      var n = i[e.from.actor],
                        s = b(e.from.actor).length || 0,
                        o =
                          n.x + n.width / 2 + ((s - 1) * h.activationWidth) / 2;
                      this.activations.push({
                        startx: o,
                        starty: this.verticalPos + 2,
                        stopx: o + h.activationWidth,
                        stopy: void 0,
                        actor: e.from.actor,
                        anchored: r.default.anchorElement(t),
                      });
                    },
                    endActivation: function (e) {
                      var t = this.activations
                        .map(function (e) {
                          return e.actor;
                        })
                        .lastIndexOf(e.from.actor);
                      return this.activations.splice(t, 1)[0];
                    },
                    createLoop: function () {
                      var e =
                          arguments.length > 0 && void 0 !== arguments[0]
                            ? arguments[0]
                            : { message: void 0, wrap: !1, width: void 0 },
                        t = arguments.length > 1 ? arguments[1] : void 0;
                      return {
                        startx: void 0,
                        starty: this.verticalPos,
                        stopx: void 0,
                        stopy: void 0,
                        title: e.message,
                        wrap: e.wrap,
                        width: e.width,
                        height: 0,
                        fill: t,
                      };
                    },
                    newLoop: function () {
                      var e =
                          arguments.length > 0 && void 0 !== arguments[0]
                            ? arguments[0]
                            : { message: void 0, wrap: !1, width: void 0 },
                        t = arguments.length > 1 ? arguments[1] : void 0;
                      this.sequenceItems.push(this.createLoop(e, t));
                    },
                    endLoop: function () {
                      return this.sequenceItems.pop();
                    },
                    addSectionToLoop: function (e) {
                      var t = this.sequenceItems.pop();
                      (t.sections = t.sections || []),
                        (t.sectionTitles = t.sectionTitles || []),
                        t.sections.push({ y: u.getVerticalPos(), height: 0 }),
                        t.sectionTitles.push(e),
                        this.sequenceItems.push(t);
                    },
                    bumpVerticalPos: function (e) {
                      (this.verticalPos = this.verticalPos + e),
                        (this.data.stopy = this.verticalPos);
                    },
                    getVerticalPos: function () {
                      return this.verticalPos;
                    },
                    getBounds: function () {
                      return { bounds: this.data, models: this.models };
                    },
                  },
                  g = function (e) {
                    return {
                      fontFamily: e.messageFontFamily,
                      fontSize: e.messageFontSize,
                      fontWeight: e.messageFontWeight,
                    };
                  },
                  f = function (e) {
                    return {
                      fontFamily: e.noteFontFamily,
                      fontSize: e.noteFontSize,
                      fontWeight: e.noteFontWeight,
                    };
                  },
                  p = function (e) {
                    return {
                      fontFamily: e.actorFontFamily,
                      fontSize: e.actorFontSize,
                      fontWeight: e.actorFontWeight,
                    };
                  },
                  m = function (e, t, i, n) {
                    for (var s = 0, o = 0, a = 0; a < i.length; a++) {
                      var l = t[i[a]];
                      (l.width = l.width || h.width),
                        (l.height = Math.max(l.height || h.height, h.height)),
                        (l.margin = l.margin || h.actorMargin),
                        (l.x = s + o),
                        (l.y = n),
                        r.default.drawActor(e, l, h),
                        u.insert(l.x, n, l.x + l.width, l.height),
                        (s += l.width),
                        (o += l.margin),
                        u.models.addActor(l);
                    }
                    u.bumpVerticalPos(h.height);
                  },
                  _ = function (e) {
                    Object(d.assignWithDepth)(h, e),
                      e.fontFamily &&
                        (h.actorFontFamily = h.noteFontFamily = h.messageFontFamily =
                          e.fontFamily),
                      e.fontSize &&
                        (h.actorFontSize = h.noteFontSize = h.messageFontSize =
                          e.fontSize),
                      e.fontWeight &&
                        (h.actorFontWeight = h.noteFontWeight = h.messageFontWeight =
                          e.fontWeight);
                  },
                  b = function (e) {
                    return u.activations.filter(function (t) {
                      return t.actor === e;
                    });
                  },
                  v = function (e, t) {
                    var i = t[e],
                      n = b(e);
                    return [
                      n.reduce(function (e, t) {
                        return Math.min(e, t.startx);
                      }, i.x + i.width / 2),
                      n.reduce(function (e, t) {
                        return Math.max(e, t.stopx);
                      }, i.x + i.width / 2),
                    ];
                  };
                function y(e, t, i, n, r) {
                  u.bumpVerticalPos(i);
                  var o = n;
                  if (t.id && t.message && e[t.id]) {
                    var a = e[t.id].width,
                      l = g(h);
                    (t.message = d.default.wrapLabel(
                      '['.concat(t.message, ']'),
                      a - 2 * h.wrapPadding,
                      l
                    )),
                      (t.width = a),
                      (t.wrap = !0);
                    var c = d.default.calculateTextDimensions(t.message, l),
                      f = Math.max(c.height, h.labelBoxHeight);
                    (o = n + f),
                      s.log.debug(''.concat(f, ' - ').concat(t.message));
                  }
                  r(t), u.bumpVerticalPos(o);
                }
                var w = function (e, t) {
                    (h = c.getConfig().sequence),
                      o.parser.yy.clear(),
                      o.parser.yy.setWrap(h.wrap),
                      o.parser.parse(e + '\n'),
                      u.init(),
                      s.log.debug('C:'.concat(JSON.stringify(h, null, 2)));
                    var i = Object(n.select)('[id="'.concat(t, '"]')),
                      f = o.parser.yy.getActors(),
                      p = o.parser.yy.getActorKeys(),
                      _ = o.parser.yy.getMessages(),
                      v = o.parser.yy.getTitle(),
                      w = C(f, _);
                    (h.height = S(f, w)), m(i, f, p, 0);
                    var x = k(_, f, w);
                    r.default.insertArrowHead(i),
                      r.default.insertArrowCrossHead(i),
                      r.default.insertArrowFilledHead(i),
                      r.default.insertSequenceNumber(i);
                    var L = 1;
                    _.forEach(function (e) {
                      var t, n, c;
                      switch (e.type) {
                        case o.parser.yy.LINETYPE.NOTE:
                          (n = e.noteModel),
                            (function (e, t) {
                              u.bumpVerticalPos(h.boxMargin),
                                (t.height = h.boxMargin),
                                (t.starty = u.getVerticalPos());
                              var i = r.default.getNoteRect();
                              (i.x = t.startx),
                                (i.y = t.starty),
                                (i.width = t.width || h.width),
                                (i.class = 'note');
                              var n = e.append('g'),
                                s = r.default.drawRect(n, i),
                                o = r.default.getTextObj();
                              (o.x = t.startx),
                                (o.y = t.starty),
                                (o.width = i.width),
                                (o.dy = '1em'),
                                (o.text = t.message),
                                (o.class = 'noteText'),
                                (o.fontFamily = h.noteFontFamily),
                                (o.fontSize = h.noteFontSize),
                                (o.fontWeight = h.noteFontWeight),
                                (o.anchor = h.noteAlign),
                                (o.textMargin = h.noteMargin),
                                (o.valign = h.noteAlign);
                              var a = Object(r.drawText)(n, o),
                                l = Math.round(
                                  a
                                    .map(function (e) {
                                      return (e._groups ||
                                        e)[0][0].getBBox().height;
                                    })
                                    .reduce(function (e, t) {
                                      return e + t;
                                    })
                                );
                              s.attr('height', l + 2 * h.noteMargin),
                                (t.height += l + 2 * h.noteMargin),
                                u.bumpVerticalPos(l + 2 * h.noteMargin),
                                (t.stopy = t.starty + l + 2 * h.noteMargin),
                                (t.stopx = t.startx + i.width),
                                u.insert(t.startx, t.starty, t.stopx, t.stopy),
                                u.models.addNote(t);
                            })(i, n);
                          break;
                        case o.parser.yy.LINETYPE.ACTIVE_START:
                          u.newActivation(e, i, f);
                          break;
                        case o.parser.yy.LINETYPE.ACTIVE_END:
                          !(function (e, t) {
                            var n = u.endActivation(e);
                            n.starty + 18 > t &&
                              ((n.starty = t - 6), (t += 12)),
                              r.default.drawActivation(
                                i,
                                n,
                                t,
                                h,
                                b(e.from.actor).length
                              ),
                              u.insert(n.startx, t - 10, n.stopx, t);
                          })(e, u.getVerticalPos());
                          break;
                        case o.parser.yy.LINETYPE.LOOP_START:
                          y(
                            x,
                            e,
                            h.boxMargin,
                            h.boxMargin + h.boxTextMargin,
                            function (e) {
                              return u.newLoop(e);
                            }
                          );
                          break;
                        case o.parser.yy.LINETYPE.LOOP_END:
                          (t = u.endLoop()),
                            r.default.drawLoop(i, t, 'loop', h),
                            u.bumpVerticalPos(t.stopy - u.getVerticalPos()),
                            u.models.addLoop(t);
                          break;
                        case o.parser.yy.LINETYPE.RECT_START:
                          y(x, e, h.boxMargin, h.boxMargin, function (e) {
                            return u.newLoop(void 0, e.message);
                          });
                          break;
                        case o.parser.yy.LINETYPE.RECT_END:
                          (t = u.endLoop()),
                            r.default.drawBackgroundRect(i, t),
                            u.models.addLoop(t),
                            u.bumpVerticalPos(t.stopy - u.getVerticalPos());
                          break;
                        case o.parser.yy.LINETYPE.OPT_START:
                          y(
                            x,
                            e,
                            h.boxMargin,
                            h.boxMargin + h.boxTextMargin,
                            function (e) {
                              return u.newLoop(e);
                            }
                          );
                          break;
                        case o.parser.yy.LINETYPE.OPT_END:
                          (t = u.endLoop()),
                            r.default.drawLoop(i, t, 'opt', h),
                            u.bumpVerticalPos(t.stopy - u.getVerticalPos()),
                            u.models.addLoop(t);
                          break;
                        case o.parser.yy.LINETYPE.ALT_START:
                          y(
                            x,
                            e,
                            h.boxMargin,
                            h.boxMargin + h.boxTextMargin,
                            function (e) {
                              return u.newLoop(e);
                            }
                          );
                          break;
                        case o.parser.yy.LINETYPE.ALT_ELSE:
                          y(
                            x,
                            e,
                            h.boxMargin + h.boxTextMargin,
                            h.boxMargin,
                            function (e) {
                              return u.addSectionToLoop(e);
                            }
                          );
                          break;
                        case o.parser.yy.LINETYPE.ALT_END:
                          (t = u.endLoop()),
                            r.default.drawLoop(i, t, 'alt', h),
                            u.bumpVerticalPos(t.stopy - u.getVerticalPos()),
                            u.models.addLoop(t);
                          break;
                        case o.parser.yy.LINETYPE.PAR_START:
                          y(
                            x,
                            e,
                            h.boxMargin,
                            h.boxMargin + h.boxTextMargin,
                            function (e) {
                              return u.newLoop(e);
                            }
                          );
                          break;
                        case o.parser.yy.LINETYPE.PAR_AND:
                          y(
                            x,
                            e,
                            h.boxMargin + h.boxTextMargin,
                            h.boxMargin,
                            function (e) {
                              return u.addSectionToLoop(e);
                            }
                          );
                          break;
                        case o.parser.yy.LINETYPE.PAR_END:
                          (t = u.endLoop()),
                            r.default.drawLoop(i, t, 'par', h),
                            u.bumpVerticalPos(t.stopy - u.getVerticalPos()),
                            u.models.addLoop(t);
                          break;
                        default:
                          try {
                            ((c = e.msgModel).starty = u.getVerticalPos()),
                              (c.sequenceIndex = L),
                              (function (e, t) {
                                u.bumpVerticalPos(10);
                                var i = t.startx,
                                  n = t.stopx,
                                  s = t.starty,
                                  c = t.message,
                                  f = t.type,
                                  p = t.sequenceIndex,
                                  m = a.default.splitBreaks(c).length,
                                  _ = d.default.calculateTextDimensions(
                                    c,
                                    g(h)
                                  ),
                                  b = _.height / m;
                                (t.height += b), u.bumpVerticalPos(b);
                                var v = r.default.getTextObj();
                                (v.x = i),
                                  (v.y = s + 10),
                                  (v.width = n - i),
                                  (v.class = 'messageText'),
                                  (v.dy = '1em'),
                                  (v.text = c),
                                  (v.fontFamily = h.messageFontFamily),
                                  (v.fontSize = h.messageFontSize),
                                  (v.fontWeight = h.messageFontWeight),
                                  (v.anchor = h.messageAlign),
                                  (v.valign = h.messageAlign),
                                  (v.textMargin = h.wrapPadding),
                                  (v.tspan = !1),
                                  Object(r.drawText)(e, v);
                                var y,
                                  w,
                                  C = _.height - 10,
                                  S = _.width;
                                if (i === n) {
                                  (w = u.getVerticalPos() + C),
                                    h.rightAngles
                                      ? (y = e.append('path').attr(
                                          'd',
                                          'M  '
                                            .concat(i, ',')
                                            .concat(w, ' H ')
                                            .concat(
                                              i + Math.max(h.width / 2, S / 2),
                                              ' V '
                                            )
                                            .concat(w + 25, ' H ')
                                            .concat(i)
                                        ))
                                      : ((C += h.boxMargin),
                                        (w = u.getVerticalPos() + C),
                                        (y = e
                                          .append('path')
                                          .attr(
                                            'd',
                                            'M ' +
                                              i +
                                              ',' +
                                              w +
                                              ' C ' +
                                              (i + 60) +
                                              ',' +
                                              (w - 10) +
                                              ' ' +
                                              (i + 60) +
                                              ',' +
                                              (w + 30) +
                                              ' ' +
                                              i +
                                              ',' +
                                              (w + 20)
                                          ))),
                                    (C += 30);
                                  var k = Math.max(S / 2, h.width / 2);
                                  u.insert(
                                    i - k,
                                    u.getVerticalPos() - 10 + C,
                                    n + k,
                                    u.getVerticalPos() + 30 + C
                                  );
                                } else
                                  (C += h.boxMargin),
                                    (w = u.getVerticalPos() + C),
                                    (y = e.append('line')).attr('x1', i),
                                    y.attr('y1', w),
                                    y.attr('x2', n),
                                    y.attr('y2', w),
                                    u.insert(i, w - 10, n, w);
                                f === o.parser.yy.LINETYPE.DOTTED ||
                                f === o.parser.yy.LINETYPE.DOTTED_CROSS ||
                                f === o.parser.yy.LINETYPE.DOTTED_POINT ||
                                f === o.parser.yy.LINETYPE.DOTTED_OPEN
                                  ? (y.style('stroke-dasharray', '3, 3'),
                                    y.attr('class', 'messageLine1'))
                                  : y.attr('class', 'messageLine0');
                                var x = '';
                                h.arrowMarkerAbsolute &&
                                  (x = (x = (x =
                                    window.location.protocol +
                                    '//' +
                                    window.location.host +
                                    window.location.pathname +
                                    window.location.search).replace(
                                    /\(/g,
                                    '\\('
                                  )).replace(/\)/g, '\\)')),
                                  y.attr('stroke-width', 2),
                                  y.attr('stroke', 'none'),
                                  y.style('fill', 'none'),
                                  (f !== o.parser.yy.LINETYPE.SOLID &&
                                    f !== o.parser.yy.LINETYPE.DOTTED) ||
                                    y.attr(
                                      'marker-end',
                                      'url(' + x + '#arrowhead)'
                                    ),
                                  (f !== o.parser.yy.LINETYPE.SOLID_POINT &&
                                    f !== o.parser.yy.LINETYPE.DOTTED_POINT) ||
                                    y.attr(
                                      'marker-end',
                                      'url(' + x + '#filled-head)'
                                    ),
                                  (f !== o.parser.yy.LINETYPE.SOLID_CROSS &&
                                    f !== o.parser.yy.LINETYPE.DOTTED_CROSS) ||
                                    y.attr(
                                      'marker-end',
                                      'url(' + x + '#crosshead)'
                                    ),
                                  (l.default.showSequenceNumbers() ||
                                    h.showSequenceNumbers) &&
                                    (y.attr(
                                      'marker-start',
                                      'url(' + x + '#sequencenumber)'
                                    ),
                                    e
                                      .append('text')
                                      .attr('x', i)
                                      .attr('y', w + 4)
                                      .attr('font-family', 'sans-serif')
                                      .attr('font-size', '12px')
                                      .attr('text-anchor', 'middle')
                                      .attr('textLength', '16px')
                                      .attr('class', 'sequenceNumber')
                                      .text(p)),
                                  u.bumpVerticalPos(C),
                                  (t.height += C),
                                  (t.stopy = t.starty + t.height),
                                  u.insert(
                                    t.fromBounds,
                                    t.starty,
                                    t.toBounds,
                                    t.stopy
                                  );
                              })(i, c),
                              u.models.addMessage(c);
                          } catch (e) {
                            s.log.error('error while drawing message', e);
                          }
                      }
                      [
                        o.parser.yy.LINETYPE.SOLID_OPEN,
                        o.parser.yy.LINETYPE.DOTTED_OPEN,
                        o.parser.yy.LINETYPE.SOLID,
                        o.parser.yy.LINETYPE.DOTTED,
                        o.parser.yy.LINETYPE.SOLID_CROSS,
                        o.parser.yy.LINETYPE.DOTTED_CROSS,
                        o.parser.yy.LINETYPE.SOLID_POINT,
                        o.parser.yy.LINETYPE.DOTTED_POINT,
                      ].includes(e.type) && L++;
                    }),
                      h.mirrorActors &&
                        (u.bumpVerticalPos(2 * h.boxMargin),
                        m(i, f, p, u.getVerticalPos()));
                    var M = u.getBounds().bounds;
                    s.log.debug(
                      'For line height fix Querying: #' + t + ' .actor-line'
                    ),
                      Object(n.selectAll)('#' + t + ' .actor-line').attr(
                        'y2',
                        M.stopy
                      );
                    var D = M.stopy - M.starty + 2 * h.diagramMarginY;
                    h.mirrorActors && (D = D - h.boxMargin + h.bottomMarginAdj);
                    var N = M.stopx - M.startx + 2 * h.diagramMarginX;
                    v &&
                      i
                        .append('text')
                        .text(v)
                        .attr(
                          'x',
                          (M.stopx - M.startx) / 2 - 2 * h.diagramMarginX
                        )
                        .attr('y', -25),
                      Object(d.configureSvgSize)(i, D, N, h.useMaxWidth);
                    var E = v ? 40 : 0;
                    i.attr(
                      'viewBox',
                      M.startx -
                        h.diagramMarginX +
                        ' -' +
                        (h.diagramMarginY + E) +
                        ' ' +
                        N +
                        ' ' +
                        (D + E)
                    ),
                      s.log.debug('models:', u.models);
                  },
                  C = function (e, t) {
                    var i = {};
                    return (
                      t.forEach(function (t) {
                        if (e[t.to] && e[t.from]) {
                          var n = e[t.to];
                          if (
                            t.placement === o.parser.yy.PLACEMENT.LEFTOF &&
                            !n.prevActor
                          )
                            return;
                          if (
                            t.placement === o.parser.yy.PLACEMENT.RIGHTOF &&
                            !n.nextActor
                          )
                            return;
                          var r = void 0 !== t.placement,
                            s = !r,
                            a = r ? f(h) : g(h),
                            l = t.wrap
                              ? d.default.wrapLabel(
                                  t.message,
                                  h.width - 2 * h.wrapPadding,
                                  a
                                )
                              : t.message,
                            c =
                              d.default.calculateTextDimensions(l, a).width +
                              2 * h.wrapPadding;
                          s && t.from === n.nextActor
                            ? (i[t.to] = Math.max(i[t.to] || 0, c))
                            : s && t.from === n.prevActor
                            ? (i[t.from] = Math.max(i[t.from] || 0, c))
                            : s && t.from === t.to
                            ? ((i[t.from] = Math.max(i[t.from] || 0, c / 2)),
                              (i[t.to] = Math.max(i[t.to] || 0, c / 2)))
                            : t.placement === o.parser.yy.PLACEMENT.RIGHTOF
                            ? (i[t.from] = Math.max(i[t.from] || 0, c))
                            : t.placement === o.parser.yy.PLACEMENT.LEFTOF
                            ? (i[n.prevActor] = Math.max(
                                i[n.prevActor] || 0,
                                c
                              ))
                            : t.placement === o.parser.yy.PLACEMENT.OVER &&
                              (n.prevActor &&
                                (i[n.prevActor] = Math.max(
                                  i[n.prevActor] || 0,
                                  c / 2
                                )),
                              n.nextActor &&
                                (i[t.from] = Math.max(i[t.from] || 0, c / 2)));
                        }
                      }),
                      s.log.debug('maxMessageWidthPerActor:', i),
                      i
                    );
                  },
                  S = function (e, t) {
                    var i = 0;
                    for (var n in (Object.keys(e).forEach(function (t) {
                      var n = e[t];
                      n.wrap &&
                        (n.description = d.default.wrapLabel(
                          n.description,
                          h.width - 2 * h.wrapPadding,
                          p(h)
                        ));
                      var r = d.default.calculateTextDimensions(
                        n.description,
                        p(h)
                      );
                      (n.width = n.wrap
                        ? h.width
                        : Math.max(h.width, r.width + 2 * h.wrapPadding)),
                        (n.height = n.wrap
                          ? Math.max(r.height, h.height)
                          : h.height),
                        (i = Math.max(i, n.height));
                    }),
                    t)) {
                      var r = e[n];
                      if (r) {
                        var s = e[r.nextActor];
                        if (s) {
                          var o =
                            t[n] + h.actorMargin - r.width / 2 - s.width / 2;
                          r.margin = Math.max(o, h.actorMargin);
                        }
                      }
                    }
                    return Math.max(i, h.height);
                  },
                  k = function (e, t) {
                    var i,
                      n,
                      r,
                      a = {},
                      l = [];
                    return (
                      e.forEach(function (e) {
                        switch (
                          ((e.id = d.default.random({ length: 10 })), e.type)
                        ) {
                          case o.parser.yy.LINETYPE.LOOP_START:
                          case o.parser.yy.LINETYPE.ALT_START:
                          case o.parser.yy.LINETYPE.OPT_START:
                          case o.parser.yy.LINETYPE.PAR_START:
                            l.push({
                              id: e.id,
                              msg: e.message,
                              from: Number.MAX_SAFE_INTEGER,
                              to: Number.MIN_SAFE_INTEGER,
                              width: 0,
                            });
                            break;
                          case o.parser.yy.LINETYPE.ALT_ELSE:
                          case o.parser.yy.LINETYPE.PAR_AND:
                            e.message &&
                              ((i = l.pop()),
                              (a[i.id] = i),
                              (a[e.id] = i),
                              l.push(i));
                            break;
                          case o.parser.yy.LINETYPE.LOOP_END:
                          case o.parser.yy.LINETYPE.ALT_END:
                          case o.parser.yy.LINETYPE.OPT_END:
                          case o.parser.yy.LINETYPE.PAR_END:
                            (i = l.pop()), (a[i.id] = i);
                            break;
                          case o.parser.yy.LINETYPE.ACTIVE_START:
                            var c = t[e.from ? e.from.actor : e.to.actor],
                              p = b(e.from ? e.from.actor : e.to.actor).length,
                              m =
                                c.x +
                                c.width / 2 +
                                ((p - 1) * h.activationWidth) / 2,
                              _ = {
                                startx: m,
                                stopx: m + h.activationWidth,
                                actor: e.from.actor,
                                enabled: !0,
                              };
                            u.activations.push(_);
                            break;
                          case o.parser.yy.LINETYPE.ACTIVE_END:
                            var y = u.activations
                              .map(function (e) {
                                return e.actor;
                              })
                              .lastIndexOf(e.from.actor);
                            delete u.activations.splice(y, 1)[0];
                        }
                        void 0 !== e.placement
                          ? ((n = (function (e, t) {
                              var i = t[e.from].x,
                                n = t[e.to].x,
                                r = e.wrap && e.message,
                                a = d.default.calculateTextDimensions(
                                  r
                                    ? d.default.wrapLabel(
                                        e.message,
                                        h.width,
                                        f(h)
                                      )
                                    : e.message,
                                  f(h)
                                ),
                                l = {
                                  width: r
                                    ? h.width
                                    : Math.max(
                                        h.width,
                                        a.width + 2 * h.noteMargin
                                      ),
                                  height: 0,
                                  startx: t[e.from].x,
                                  stopx: 0,
                                  starty: 0,
                                  stopy: 0,
                                  message: e.message,
                                };
                              return (
                                e.placement === o.parser.yy.PLACEMENT.RIGHTOF
                                  ? ((l.width = r
                                      ? Math.max(h.width, a.width)
                                      : Math.max(
                                          t[e.from].width / 2 +
                                            t[e.to].width / 2,
                                          a.width + 2 * h.noteMargin
                                        )),
                                    (l.startx =
                                      i +
                                      (t[e.from].width + h.actorMargin) / 2))
                                  : e.placement === o.parser.yy.PLACEMENT.LEFTOF
                                  ? ((l.width = r
                                      ? Math.max(
                                          h.width,
                                          a.width + 2 * h.noteMargin
                                        )
                                      : Math.max(
                                          t[e.from].width / 2 +
                                            t[e.to].width / 2,
                                          a.width + 2 * h.noteMargin
                                        )),
                                    (l.startx =
                                      i -
                                      l.width +
                                      (t[e.from].width - h.actorMargin) / 2))
                                  : e.to === e.from
                                  ? ((a = d.default.calculateTextDimensions(
                                      r
                                        ? d.default.wrapLabel(
                                            e.message,
                                            Math.max(h.width, t[e.from].width),
                                            f(h)
                                          )
                                        : e.message,
                                      f(h)
                                    )),
                                    (l.width = r
                                      ? Math.max(h.width, t[e.from].width)
                                      : Math.max(
                                          t[e.from].width,
                                          h.width,
                                          a.width + 2 * h.noteMargin
                                        )),
                                    (l.startx =
                                      i + (t[e.from].width - l.width) / 2))
                                  : ((l.width =
                                      Math.abs(
                                        i +
                                          t[e.from].width / 2 -
                                          (n + t[e.to].width / 2)
                                      ) + h.actorMargin),
                                    (l.startx =
                                      i < n
                                        ? i +
                                          t[e.from].width / 2 -
                                          h.actorMargin / 2
                                        : n +
                                          t[e.to].width / 2 -
                                          h.actorMargin / 2)),
                                r &&
                                  (l.message = d.default.wrapLabel(
                                    e.message,
                                    l.width - 2 * h.wrapPadding,
                                    f(h)
                                  )),
                                s.log.debug(
                                  'NM:['
                                    .concat(l.startx, ',')
                                    .concat(l.stopx, ',')
                                    .concat(l.starty, ',')
                                    .concat(l.stopy, ':')
                                    .concat(l.width, ',')
                                    .concat(l.height, '=')
                                    .concat(e.message, ']')
                                ),
                                l
                              );
                            })(e, t)),
                            (e.noteModel = n),
                            l.forEach(function (e) {
                              ((i = e).from = Math.min(i.from, n.startx)),
                                (i.to = Math.max(i.to, n.startx + n.width)),
                                (i.width =
                                  Math.max(i.width, Math.abs(i.from - i.to)) -
                                  h.labelBoxWidth);
                            }))
                          : ((r = (function (e, t) {
                              var i = !1;
                              if (
                                ([
                                  o.parser.yy.LINETYPE.SOLID_OPEN,
                                  o.parser.yy.LINETYPE.DOTTED_OPEN,
                                  o.parser.yy.LINETYPE.SOLID,
                                  o.parser.yy.LINETYPE.DOTTED,
                                  o.parser.yy.LINETYPE.SOLID_CROSS,
                                  o.parser.yy.LINETYPE.DOTTED_CROSS,
                                  o.parser.yy.LINETYPE.SOLID_POINT,
                                  o.parser.yy.LINETYPE.DOTTED_POINT,
                                ].includes(e.type) && (i = !0),
                                !i)
                              )
                                return {};
                              var n = v(e.from, t),
                                r = v(e.to, t),
                                s = n[0] <= r[0] ? 1 : 0,
                                a = n[0] < r[0] ? 0 : 1,
                                l = n.concat(r),
                                c = Math.abs(r[a] - n[s]);
                              e.wrap &&
                                e.message &&
                                (e.message = d.default.wrapLabel(
                                  e.message,
                                  Math.max(c + 2 * h.wrapPadding, h.width),
                                  g(h)
                                ));
                              var u = d.default.calculateTextDimensions(
                                e.message,
                                g(h)
                              );
                              return {
                                width: Math.max(
                                  e.wrap ? 0 : u.width + 2 * h.wrapPadding,
                                  c + 2 * h.wrapPadding,
                                  h.width
                                ),
                                height: 0,
                                startx: n[s],
                                stopx: r[a],
                                starty: 0,
                                stopy: 0,
                                message: e.message,
                                type: e.type,
                                wrap: e.wrap,
                                fromBounds: Math.min.apply(null, l),
                                toBounds: Math.max.apply(null, l),
                              };
                            })(e, t)),
                            (e.msgModel = r),
                            r.startx &&
                              r.stopx &&
                              l.length > 0 &&
                              l.forEach(function (n) {
                                if (((i = n), r.startx === r.stopx)) {
                                  var s = t[e.from],
                                    o = t[e.to];
                                  (i.from = Math.min(
                                    s.x - r.width / 2,
                                    s.x - s.width / 2,
                                    i.from
                                  )),
                                    (i.to = Math.max(
                                      o.x + r.width / 2,
                                      o.x + s.width / 2,
                                      i.to
                                    )),
                                    (i.width =
                                      Math.max(
                                        i.width,
                                        Math.abs(i.to - i.from)
                                      ) - h.labelBoxWidth);
                                } else (i.from = Math.min(r.startx, i.from)), (i.to = Math.max(r.stopx, i.to)), (i.width = Math.max(i.width, r.width) - h.labelBoxWidth);
                              }));
                      }),
                      (u.activations = []),
                      s.log.debug('Loop type widths:', a),
                      a
                    );
                  };
                t.default = { bounds: u, drawActors: m, setConf: _, draw: w };
              },
              './src/diagrams/sequence/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return '.actor {\n    stroke: '
                      .concat(e.actorBorder, ';\n    fill: ')
                      .concat(
                        e.actorBkg,
                        ';\n  }\n\n  text.actor > tspan {\n    fill: '
                      )
                      .concat(
                        e.actorTextColor,
                        ';\n    stroke: none;\n  }\n\n  .actor-line {\n    stroke: '
                      )
                      .concat(
                        e.actorLineColor,
                        ';\n  }\n\n  .messageLine0 {\n    stroke-width: 1.5;\n    stroke-dasharray: none;\n    stroke: '
                      )
                      .concat(
                        e.signalColor,
                        ';\n  }\n\n  .messageLine1 {\n    stroke-width: 1.5;\n    stroke-dasharray: 2, 2;\n    stroke: '
                      )
                      .concat(
                        e.signalColor,
                        ';\n  }\n\n  #arrowhead path {\n    fill: '
                      )
                      .concat(e.signalColor, ';\n    stroke: ')
                      .concat(
                        e.signalColor,
                        ';\n  }\n\n  .sequenceNumber {\n    fill: '
                      )
                      .concat(
                        e.sequenceNumberColor,
                        ';\n  }\n\n  #sequencenumber {\n    fill: '
                      )
                      .concat(
                        e.signalColor,
                        ';\n  }\n\n  #crosshead path {\n    fill: '
                      )
                      .concat(e.signalColor, ';\n    stroke: ')
                      .concat(
                        e.signalColor,
                        ';\n  }\n\n  .messageText {\n    fill: '
                      )
                      .concat(e.signalTextColor, ';\n    stroke: ')
                      .concat(
                        e.signalTextColor,
                        ';\n  }\n\n  .labelBox {\n    stroke: '
                      )
                      .concat(e.labelBoxBorderColor, ';\n    fill: ')
                      .concat(
                        e.labelBoxBkgColor,
                        ';\n  }\n\n  .labelText, .labelText > tspan {\n    fill: '
                      )
                      .concat(
                        e.labelTextColor,
                        ';\n    stroke: none;\n  }\n\n  .loopText, .loopText > tspan {\n    fill: '
                      )
                      .concat(
                        e.loopTextColor,
                        ';\n    stroke: none;\n  }\n\n  .loopLine {\n    stroke-width: 2px;\n    stroke-dasharray: 2, 2;\n    stroke: '
                      )
                      .concat(e.labelBoxBorderColor, ';\n    fill: ')
                      .concat(
                        e.labelBoxBorderColor,
                        ';\n  }\n\n  .note {\n    //stroke: #decc93;\n    stroke: '
                      )
                      .concat(e.noteBorderColor, ';\n    fill: ')
                      .concat(
                        e.noteBkgColor,
                        ';\n  }\n\n  .noteText, .noteText > tspan {\n    fill: '
                      )
                      .concat(
                        e.noteTextColor,
                        ';\n    stroke: none;\n  }\n\n  .activation0 {\n    fill: '
                      )
                      .concat(e.activationBkgColor, ';\n    stroke: ')
                      .concat(
                        e.activationBorderColor,
                        ';\n  }\n\n  .activation1 {\n    fill: '
                      )
                      .concat(e.activationBkgColor, ';\n    stroke: ')
                      .concat(
                        e.activationBorderColor,
                        ';\n  }\n\n  .activation2 {\n    fill: '
                      )
                      .concat(e.activationBkgColor, ';\n    stroke: ')
                      .concat(e.activationBorderColor, ';\n  }\n');
                  });
              },
              './src/diagrams/sequence/svgDraw.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'drawRect', function () {
                    return r;
                  }),
                  i.d(t, 'drawText', function () {
                    return s;
                  }),
                  i.d(t, 'drawLabel', function () {
                    return o;
                  }),
                  i.d(t, 'drawActor', function () {
                    return l;
                  }),
                  i.d(t, 'anchorElement', function () {
                    return c;
                  }),
                  i.d(t, 'drawActivation', function () {
                    return d;
                  }),
                  i.d(t, 'drawLoop', function () {
                    return h;
                  }),
                  i.d(t, 'drawBackgroundRect', function () {
                    return u;
                  }),
                  i.d(t, 'insertArrowHead', function () {
                    return g;
                  }),
                  i.d(t, 'insertArrowFilledHead', function () {
                    return f;
                  }),
                  i.d(t, 'insertSequenceNumber', function () {
                    return p;
                  }),
                  i.d(t, 'insertArrowCrossHead', function () {
                    return m;
                  }),
                  i.d(t, 'getTextObj', function () {
                    return _;
                  }),
                  i.d(t, 'getNoteRect', function () {
                    return b;
                  });
                var n = i('./src/diagrams/common/common.js'),
                  r = function (e, t) {
                    var i = e.append('rect');
                    return (
                      i.attr('x', t.x),
                      i.attr('y', t.y),
                      i.attr('fill', t.fill),
                      i.attr('stroke', t.stroke),
                      i.attr('width', t.width),
                      i.attr('height', t.height),
                      i.attr('rx', t.rx),
                      i.attr('ry', t.ry),
                      void 0 !== t.class && i.attr('class', t.class),
                      i
                    );
                  },
                  s = function (e, t) {
                    var i = 0,
                      r = 0,
                      s = t.text.split(n.default.lineBreakRegex),
                      o = [],
                      a = 0,
                      l = function () {
                        return t.y;
                      };
                    if (
                      void 0 !== t.valign &&
                      void 0 !== t.textMargin &&
                      t.textMargin > 0
                    )
                      switch (t.valign) {
                        case 'top':
                        case 'start':
                          l = function () {
                            return Math.round(t.y + t.textMargin);
                          };
                          break;
                        case 'middle':
                        case 'center':
                          l = function () {
                            return Math.round(t.y + (i + r + t.textMargin) / 2);
                          };
                          break;
                        case 'bottom':
                        case 'end':
                          l = function () {
                            return Math.round(
                              t.y + (i + r + 2 * t.textMargin) - t.textMargin
                            );
                          };
                      }
                    if (
                      void 0 !== t.anchor &&
                      void 0 !== t.textMargin &&
                      void 0 !== t.width
                    )
                      switch (t.anchor) {
                        case 'left':
                        case 'start':
                          (t.x = Math.round(t.x + t.textMargin)),
                            (t.anchor = 'start'),
                            (t.dominantBaseline = 'text-after-edge'),
                            (t.alignmentBaseline = 'middle');
                          break;
                        case 'middle':
                        case 'center':
                          (t.x = Math.round(t.x + t.width / 2)),
                            (t.anchor = 'middle'),
                            (t.dominantBaseline = 'middle'),
                            (t.alignmentBaseline = 'middle');
                          break;
                        case 'right':
                        case 'end':
                          (t.x = Math.round(t.x + t.width - t.textMargin)),
                            (t.anchor = 'end'),
                            (t.dominantBaseline = 'text-before-edge'),
                            (t.alignmentBaseline = 'middle');
                      }
                    for (var c = 0; c < s.length; c++) {
                      var d = s[c];
                      void 0 !== t.textMargin &&
                        0 === t.textMargin &&
                        void 0 !== t.fontSize &&
                        (a = c * t.fontSize);
                      var h = e.append('text');
                      if (
                        (h.attr('x', t.x),
                        h.attr('y', l()),
                        void 0 !== t.anchor &&
                          h
                            .attr('text-anchor', t.anchor)
                            .attr('dominant-baseline', t.dominantBaseline)
                            .attr('alignment-baseline', t.alignmentBaseline),
                        void 0 !== t.fontFamily &&
                          h.style('font-family', t.fontFamily),
                        void 0 !== t.fontSize &&
                          h.style('font-size', t.fontSize),
                        void 0 !== t.fontWeight &&
                          h.style('font-weight', t.fontWeight),
                        void 0 !== t.fill && h.attr('fill', t.fill),
                        void 0 !== t.class && h.attr('class', t.class),
                        void 0 !== t.dy
                          ? h.attr('dy', t.dy)
                          : 0 !== a && h.attr('dy', a),
                        t.tspan)
                      ) {
                        var u = h.append('tspan');
                        u.attr('x', t.x),
                          void 0 !== t.fill && u.attr('fill', t.fill),
                          u.text(d);
                      } else h.text(d);
                      void 0 !== t.valign &&
                        void 0 !== t.textMargin &&
                        t.textMargin > 0 &&
                        ((r += (h._groups || h)[0][0].getBBox().height),
                        (i = r)),
                        o.push(h);
                    }
                    return o;
                  },
                  o = function (e, t) {
                    var i,
                      n,
                      r,
                      o,
                      a = e.append('polygon');
                    return (
                      a.attr(
                        'points',
                        (i = t.x) +
                          ',' +
                          (n = t.y) +
                          ' ' +
                          (i + (r = t.width)) +
                          ',' +
                          n +
                          ' ' +
                          (i + r) +
                          ',' +
                          (n + (o = t.height) - 7) +
                          ' ' +
                          (i + r - 8.4) +
                          ',' +
                          (n + o) +
                          ' ' +
                          i +
                          ',' +
                          (n + o)
                      ),
                      a.attr('class', 'labelBox'),
                      (t.y = t.y + t.height / 2),
                      s(e, t),
                      a
                    );
                  },
                  a = -1,
                  l = function (e, t, i) {
                    var n = t.x + t.width / 2,
                      s = e.append('g');
                    0 === t.y &&
                      (a++,
                      s
                        .append('line')
                        .attr('id', 'actor' + a)
                        .attr('x1', n)
                        .attr('y1', 5)
                        .attr('x2', n)
                        .attr('y2', 2e3)
                        .attr('class', 'actor-line')
                        .attr('stroke-width', '0.5px')
                        .attr('stroke', '#999'));
                    var o = b();
                    (o.x = t.x),
                      (o.y = t.y),
                      (o.fill = '#eaeaea'),
                      (o.width = t.width),
                      (o.height = t.height),
                      (o.class = 'actor'),
                      (o.rx = 3),
                      (o.ry = 3),
                      r(s, o),
                      v(i)(
                        t.description,
                        s,
                        o.x,
                        o.y,
                        o.width,
                        o.height,
                        { class: 'actor' },
                        i
                      );
                  },
                  c = function (e) {
                    return e.append('g');
                  },
                  d = function (e, t, i, n, s) {
                    var o = b(),
                      a = t.anchored;
                    (o.x = t.startx),
                      (o.y = t.starty),
                      (o.class = 'activation' + (s % 3)),
                      (o.width = t.stopx - t.startx),
                      (o.height = i - t.starty),
                      r(a, o);
                  },
                  h = function (e, t, i, n) {
                    var r = n.boxMargin,
                      a = n.boxTextMargin,
                      l = n.labelBoxHeight,
                      c = n.labelBoxWidth,
                      d = n.messageFontFamily,
                      h = n.messageFontSize,
                      u = n.messageFontWeight,
                      g = e.append('g'),
                      f = function (e, t, i, n) {
                        return g
                          .append('line')
                          .attr('x1', e)
                          .attr('y1', t)
                          .attr('x2', i)
                          .attr('y2', n)
                          .attr('class', 'loopLine');
                      };
                    f(t.startx, t.starty, t.stopx, t.starty),
                      f(t.stopx, t.starty, t.stopx, t.stopy),
                      f(t.startx, t.stopy, t.stopx, t.stopy),
                      f(t.startx, t.starty, t.startx, t.stopy),
                      void 0 !== t.sections &&
                        t.sections.forEach(function (e) {
                          f(t.startx, e.y, t.stopx, e.y).style(
                            'stroke-dasharray',
                            '3, 3'
                          );
                        });
                    var p = _();
                    (p.text = i),
                      (p.x = t.startx),
                      (p.y = t.starty),
                      (p.fontFamily = d),
                      (p.fontSize = h),
                      (p.fontWeight = u),
                      (p.anchor = 'middle'),
                      (p.valign = 'middle'),
                      (p.tspan = !1),
                      (p.width = c || 50),
                      (p.height = l || 20),
                      (p.textMargin = a),
                      (p.class = 'labelText'),
                      o(g, p),
                      ((p = _()).text = t.title),
                      (p.x = t.startx + c / 2 + (t.stopx - t.startx) / 2),
                      (p.y = t.starty + r + a),
                      (p.anchor = 'middle'),
                      (p.valign = 'middle'),
                      (p.textMargin = a),
                      (p.class = 'loopText'),
                      (p.fontFamily = d),
                      (p.fontSize = h),
                      (p.fontWeight = u),
                      (p.wrap = !0);
                    var m = s(g, p);
                    return (
                      void 0 !== t.sectionTitles &&
                        t.sectionTitles.forEach(function (e, i) {
                          if (e.message) {
                            (p.text = e.message),
                              (p.x = t.startx + (t.stopx - t.startx) / 2),
                              (p.y = t.sections[i].y + r + a),
                              (p.class = 'loopText'),
                              (p.anchor = 'middle'),
                              (p.valign = 'middle'),
                              (p.tspan = !1),
                              (p.fontFamily = d),
                              (p.fontSize = h),
                              (p.fontWeight = u),
                              (p.wrap = t.wrap),
                              (m = s(g, p));
                            var n = Math.round(
                              m
                                .map(function (e) {
                                  return (e._groups ||
                                    e)[0][0].getBBox().height;
                                })
                                .reduce(function (e, t) {
                                  return e + t;
                                })
                            );
                            t.sections[i].height += n - (r + a);
                          }
                        }),
                      (t.height = Math.round(t.stopy - t.starty)),
                      g
                    );
                  },
                  u = function (e, t) {
                    r(e, {
                      x: t.startx,
                      y: t.starty,
                      width: t.stopx - t.startx,
                      height: t.stopy - t.starty,
                      fill: t.fill,
                      class: 'rect',
                    }).lower();
                  },
                  g = function (e) {
                    e.append('defs')
                      .append('marker')
                      .attr('id', 'arrowhead')
                      .attr('refX', 9)
                      .attr('refY', 5)
                      .attr('markerUnits', 'userSpaceOnUse')
                      .attr('markerWidth', 12)
                      .attr('markerHeight', 12)
                      .attr('orient', 'auto')
                      .append('path')
                      .attr('d', 'M 0 0 L 10 5 L 0 10 z');
                  },
                  f = function (e) {
                    e.append('defs')
                      .append('marker')
                      .attr('id', 'filled-head')
                      .attr('refX', 18)
                      .attr('refY', 7)
                      .attr('markerWidth', 20)
                      .attr('markerHeight', 28)
                      .attr('orient', 'auto')
                      .append('path')
                      .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');
                  },
                  p = function (e) {
                    e.append('defs')
                      .append('marker')
                      .attr('id', 'sequencenumber')
                      .attr('refX', 15)
                      .attr('refY', 15)
                      .attr('markerWidth', 60)
                      .attr('markerHeight', 40)
                      .attr('orient', 'auto')
                      .append('circle')
                      .attr('cx', 15)
                      .attr('cy', 15)
                      .attr('r', 6);
                  },
                  m = function (e) {
                    var t = e
                      .append('defs')
                      .append('marker')
                      .attr('id', 'crosshead')
                      .attr('markerWidth', 15)
                      .attr('markerHeight', 8)
                      .attr('orient', 'auto')
                      .attr('refX', 16)
                      .attr('refY', 4);
                    t
                      .append('path')
                      .attr('fill', 'black')
                      .attr('stroke', '#000000')
                      .style('stroke-dasharray', '0, 0')
                      .attr('stroke-width', '1px')
                      .attr('d', 'M 9,2 V 6 L16,4 Z'),
                      t
                        .append('path')
                        .attr('fill', 'none')
                        .attr('stroke', '#000000')
                        .style('stroke-dasharray', '0, 0')
                        .attr('stroke-width', '1px')
                        .attr('d', 'M 0,1 L 6,7 M 6,1 L 0,7');
                  },
                  _ = function () {
                    return {
                      x: 0,
                      y: 0,
                      fill: void 0,
                      anchor: void 0,
                      style: '#666',
                      width: void 0,
                      height: void 0,
                      textMargin: 0,
                      rx: 0,
                      ry: 0,
                      tspan: !0,
                      valign: void 0,
                    };
                  },
                  b = function () {
                    return {
                      x: 0,
                      y: 0,
                      fill: '#EDF2AE',
                      stroke: '#666',
                      width: 100,
                      anchor: 'start',
                      height: 100,
                      rx: 0,
                      ry: 0,
                    };
                  },
                  v = (function () {
                    function e(e, t, i, n, s, o, a) {
                      r(
                        t
                          .append('text')
                          .attr('x', i + s / 2)
                          .attr('y', n + o / 2 + 5)
                          .style('text-anchor', 'middle')
                          .text(e),
                        a
                      );
                    }
                    function t(e, t, i, s, o, a, l, c) {
                      for (
                        var d = c.actorFontSize,
                          h = c.actorFontFamily,
                          u = c.actorFontWeight,
                          g = e.split(n.default.lineBreakRegex),
                          f = 0;
                        f < g.length;
                        f++
                      ) {
                        var p = f * d - (d * (g.length - 1)) / 2,
                          m = t
                            .append('text')
                            .attr('x', i + o / 2)
                            .attr('y', s)
                            .style('text-anchor', 'middle')
                            .style('font-size', d)
                            .style('font-weight', u)
                            .style('font-family', h);
                        m
                          .append('tspan')
                          .attr('x', i + o / 2)
                          .attr('dy', p)
                          .text(g[f]),
                          m
                            .attr('y', s + a / 2)
                            .attr('dominant-baseline', 'central')
                            .attr('alignment-baseline', 'central'),
                          r(m, l);
                      }
                    }
                    function i(e, i, n, s, o, a, l, c) {
                      var d = i.append('switch'),
                        h = d
                          .append('foreignObject')
                          .attr('x', n)
                          .attr('y', s)
                          .attr('width', o)
                          .attr('height', a)
                          .append('div')
                          .style('display', 'table')
                          .style('height', '100%')
                          .style('width', '100%');
                      h
                        .append('div')
                        .style('display', 'table-cell')
                        .style('text-align', 'center')
                        .style('vertical-align', 'middle')
                        .text(e),
                        t(e, d, n, s, o, a, l, c),
                        r(h, l);
                    }
                    function r(e, t) {
                      for (var i in t) t.hasOwnProperty(i) && e.attr(i, t[i]);
                    }
                    return function (n) {
                      return 'fo' === n.textPlacement
                        ? i
                        : 'old' === n.textPlacement
                        ? e
                        : t;
                    };
                  })();
                t.default = {
                  drawRect: r,
                  drawText: s,
                  drawLabel: o,
                  drawActor: l,
                  anchorElement: c,
                  drawActivation: d,
                  drawLoop: h,
                  drawBackgroundRect: u,
                  insertArrowHead: g,
                  insertArrowFilledHead: f,
                  insertSequenceNumber: p,
                  insertArrowCrossHead: m,
                  getTextObj: _,
                  getNoteRect: b,
                };
              },
              './src/diagrams/state/id-cache.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'set', function () {
                    return r;
                  }),
                  i.d(t, 'get', function () {
                    return s;
                  }),
                  i.d(t, 'keys', function () {
                    return o;
                  }),
                  i.d(t, 'size', function () {
                    return a;
                  });
                var n = {},
                  r = function (e, t) {
                    n[e] = t;
                  },
                  s = function (e) {
                    return n[e];
                  },
                  o = function () {
                    return Object.keys(n);
                  },
                  a = function () {
                    return o().length;
                  };
                t.default = { get: s, set: r, keys: o, size: a };
              },
              './src/diagrams/state/parser/stateDiagram.jison': function (
                e,
                t,
                i
              ) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 2],
                      i = [1, 3],
                      n = [1, 5],
                      r = [1, 7],
                      s = [2, 5],
                      o = [1, 15],
                      a = [1, 17],
                      l = [1, 19],
                      c = [1, 20],
                      d = [1, 21],
                      h = [1, 22],
                      u = [1, 28],
                      g = [1, 23],
                      f = [1, 24],
                      p = [1, 25],
                      m = [1, 26],
                      _ = [1, 29],
                      b = [1, 32],
                      v = [
                        1,
                        4,
                        5,
                        14,
                        15,
                        17,
                        19,
                        20,
                        22,
                        23,
                        24,
                        25,
                        26,
                        36,
                        39,
                      ],
                      y = [
                        1,
                        4,
                        5,
                        12,
                        13,
                        14,
                        15,
                        17,
                        19,
                        20,
                        22,
                        23,
                        24,
                        25,
                        26,
                        36,
                        39,
                      ],
                      w = [
                        1,
                        4,
                        5,
                        7,
                        14,
                        15,
                        17,
                        19,
                        20,
                        22,
                        23,
                        24,
                        25,
                        26,
                        36,
                        39,
                      ],
                      C = [
                        4,
                        5,
                        14,
                        15,
                        17,
                        19,
                        20,
                        22,
                        23,
                        24,
                        25,
                        26,
                        36,
                        39,
                      ],
                      S = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          SPACE: 4,
                          NL: 5,
                          directive: 6,
                          SD: 7,
                          document: 8,
                          line: 9,
                          statement: 10,
                          idStatement: 11,
                          DESCR: 12,
                          '--\x3e': 13,
                          HIDE_EMPTY: 14,
                          scale: 15,
                          WIDTH: 16,
                          COMPOSIT_STATE: 17,
                          STRUCT_START: 18,
                          STRUCT_STOP: 19,
                          STATE_DESCR: 20,
                          AS: 21,
                          ID: 22,
                          FORK: 23,
                          JOIN: 24,
                          CONCURRENT: 25,
                          note: 26,
                          notePosition: 27,
                          NOTE_TEXT: 28,
                          openDirective: 29,
                          typeDirective: 30,
                          closeDirective: 31,
                          ':': 32,
                          argDirective: 33,
                          eol: 34,
                          ';': 35,
                          EDGE_STATE: 36,
                          left_of: 37,
                          right_of: 38,
                          open_directive: 39,
                          type_directive: 40,
                          arg_directive: 41,
                          close_directive: 42,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          4: 'SPACE',
                          5: 'NL',
                          7: 'SD',
                          12: 'DESCR',
                          13: '--\x3e',
                          14: 'HIDE_EMPTY',
                          15: 'scale',
                          16: 'WIDTH',
                          17: 'COMPOSIT_STATE',
                          18: 'STRUCT_START',
                          19: 'STRUCT_STOP',
                          20: 'STATE_DESCR',
                          21: 'AS',
                          22: 'ID',
                          23: 'FORK',
                          24: 'JOIN',
                          25: 'CONCURRENT',
                          26: 'note',
                          28: 'NOTE_TEXT',
                          32: ':',
                          35: ';',
                          36: 'EDGE_STATE',
                          37: 'left_of',
                          38: 'right_of',
                          39: 'open_directive',
                          40: 'type_directive',
                          41: 'arg_directive',
                          42: 'close_directive',
                        },
                        productions_: [
                          0,
                          [3, 2],
                          [3, 2],
                          [3, 2],
                          [3, 2],
                          [8, 0],
                          [8, 2],
                          [9, 2],
                          [9, 1],
                          [9, 1],
                          [10, 1],
                          [10, 2],
                          [10, 3],
                          [10, 4],
                          [10, 1],
                          [10, 2],
                          [10, 1],
                          [10, 4],
                          [10, 3],
                          [10, 6],
                          [10, 1],
                          [10, 1],
                          [10, 1],
                          [10, 4],
                          [10, 4],
                          [10, 1],
                          [6, 3],
                          [6, 5],
                          [34, 1],
                          [34, 1],
                          [11, 1],
                          [11, 1],
                          [27, 1],
                          [27, 1],
                          [29, 1],
                          [30, 1],
                          [33, 1],
                          [31, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 4:
                              return n.setRootDoc(s[a]), s[a];
                            case 5:
                              this.$ = [];
                              break;
                            case 6:
                              'nl' != s[a] &&
                                (s[a - 1].push(s[a]), (this.$ = s[a - 1]));
                              break;
                            case 7:
                            case 8:
                              this.$ = s[a];
                              break;
                            case 9:
                              this.$ = 'nl';
                              break;
                            case 10:
                              this.$ = {
                                stmt: 'state',
                                id: s[a],
                                type: 'default',
                                description: '',
                              };
                              break;
                            case 11:
                              this.$ = {
                                stmt: 'state',
                                id: s[a - 1],
                                type: 'default',
                                description: n.trimColon(s[a]),
                              };
                              break;
                            case 12:
                              this.$ = {
                                stmt: 'relation',
                                state1: {
                                  stmt: 'state',
                                  id: s[a - 2],
                                  type: 'default',
                                  description: '',
                                },
                                state2: {
                                  stmt: 'state',
                                  id: s[a],
                                  type: 'default',
                                  description: '',
                                },
                              };
                              break;
                            case 13:
                              this.$ = {
                                stmt: 'relation',
                                state1: {
                                  stmt: 'state',
                                  id: s[a - 3],
                                  type: 'default',
                                  description: '',
                                },
                                state2: {
                                  stmt: 'state',
                                  id: s[a - 1],
                                  type: 'default',
                                  description: '',
                                },
                                description: s[a].substr(1).trim(),
                              };
                              break;
                            case 17:
                              this.$ = {
                                stmt: 'state',
                                id: s[a - 3],
                                type: 'default',
                                description: '',
                                doc: s[a - 1],
                              };
                              break;
                            case 18:
                              var l = s[a],
                                c = s[a - 2].trim();
                              if (s[a].match(':')) {
                                var d = s[a].split(':');
                                (l = d[0]), (c = [c, d[1]]);
                              }
                              this.$ = {
                                stmt: 'state',
                                id: l,
                                type: 'default',
                                description: c,
                              };
                              break;
                            case 19:
                              this.$ = {
                                stmt: 'state',
                                id: s[a - 3],
                                type: 'default',
                                description: s[a - 5],
                                doc: s[a - 1],
                              };
                              break;
                            case 20:
                              this.$ = {
                                stmt: 'state',
                                id: s[a],
                                type: 'fork',
                              };
                              break;
                            case 21:
                              this.$ = {
                                stmt: 'state',
                                id: s[a],
                                type: 'join',
                              };
                              break;
                            case 22:
                              this.$ = {
                                stmt: 'state',
                                id: n.getDividerId(),
                                type: 'divider',
                              };
                              break;
                            case 23:
                              this.$ = {
                                stmt: 'state',
                                id: s[a - 1].trim(),
                                note: {
                                  position: s[a - 2].trim(),
                                  text: s[a].trim(),
                                },
                              };
                              break;
                            case 30:
                            case 31:
                              this.$ = s[a];
                              break;
                            case 34:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 35:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 36:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 37:
                              n.parseDirective(
                                '}%%',
                                'close_directive',
                                'state'
                              );
                          }
                        },
                        table: [
                          { 3: 1, 4: t, 5: i, 6: 4, 7: n, 29: 6, 39: r },
                          { 1: [3] },
                          { 3: 8, 4: t, 5: i, 6: 4, 7: n, 29: 6, 39: r },
                          { 3: 9, 4: t, 5: i, 6: 4, 7: n, 29: 6, 39: r },
                          { 3: 10, 4: t, 5: i, 6: 4, 7: n, 29: 6, 39: r },
                          e(
                            [
                              1,
                              4,
                              5,
                              14,
                              15,
                              17,
                              20,
                              22,
                              23,
                              24,
                              25,
                              26,
                              36,
                              39,
                            ],
                            s,
                            { 8: 11 }
                          ),
                          { 30: 12, 40: [1, 13] },
                          { 40: [2, 34] },
                          { 1: [2, 1] },
                          { 1: [2, 2] },
                          { 1: [2, 3] },
                          {
                            1: [2, 4],
                            4: o,
                            5: a,
                            6: 27,
                            9: 14,
                            10: 16,
                            11: 18,
                            14: l,
                            15: c,
                            17: d,
                            20: h,
                            22: u,
                            23: g,
                            24: f,
                            25: p,
                            26: m,
                            29: 6,
                            36: _,
                            39: r,
                          },
                          { 31: 30, 32: [1, 31], 42: b },
                          e([32, 42], [2, 35]),
                          e(v, [2, 6]),
                          {
                            6: 27,
                            10: 33,
                            11: 18,
                            14: l,
                            15: c,
                            17: d,
                            20: h,
                            22: u,
                            23: g,
                            24: f,
                            25: p,
                            26: m,
                            29: 6,
                            36: _,
                            39: r,
                          },
                          e(v, [2, 8]),
                          e(v, [2, 9]),
                          e(v, [2, 10], { 12: [1, 34], 13: [1, 35] }),
                          e(v, [2, 14]),
                          { 16: [1, 36] },
                          e(v, [2, 16], { 18: [1, 37] }),
                          { 21: [1, 38] },
                          e(v, [2, 20]),
                          e(v, [2, 21]),
                          e(v, [2, 22]),
                          { 27: 39, 28: [1, 40], 37: [1, 41], 38: [1, 42] },
                          e(v, [2, 25]),
                          e(y, [2, 30]),
                          e(y, [2, 31]),
                          e(w, [2, 26]),
                          { 33: 43, 41: [1, 44] },
                          e(w, [2, 37]),
                          e(v, [2, 7]),
                          e(v, [2, 11]),
                          { 11: 45, 22: u, 36: _ },
                          e(v, [2, 15]),
                          e(C, s, { 8: 46 }),
                          { 22: [1, 47] },
                          { 22: [1, 48] },
                          { 21: [1, 49] },
                          { 22: [2, 32] },
                          { 22: [2, 33] },
                          { 31: 50, 42: b },
                          { 42: [2, 36] },
                          e(v, [2, 12], { 12: [1, 51] }),
                          {
                            4: o,
                            5: a,
                            6: 27,
                            9: 14,
                            10: 16,
                            11: 18,
                            14: l,
                            15: c,
                            17: d,
                            19: [1, 52],
                            20: h,
                            22: u,
                            23: g,
                            24: f,
                            25: p,
                            26: m,
                            29: 6,
                            36: _,
                            39: r,
                          },
                          e(v, [2, 18], { 18: [1, 53] }),
                          { 28: [1, 54] },
                          { 22: [1, 55] },
                          e(w, [2, 27]),
                          e(v, [2, 13]),
                          e(v, [2, 17]),
                          e(C, s, { 8: 56 }),
                          e(v, [2, 23]),
                          e(v, [2, 24]),
                          {
                            4: o,
                            5: a,
                            6: 27,
                            9: 14,
                            10: 16,
                            11: 18,
                            14: l,
                            15: c,
                            17: d,
                            19: [1, 57],
                            20: h,
                            22: u,
                            23: g,
                            24: f,
                            25: p,
                            26: m,
                            29: 6,
                            36: _,
                            39: r,
                          },
                          e(v, [2, 19]),
                        ],
                        defaultActions: {
                          7: [2, 34],
                          8: [2, 1],
                          9: [2, 2],
                          10: [2, 3],
                          41: [2, 32],
                          42: [2, 33],
                          44: [2, 36],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      k = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 39;
                            case 1:
                              return this.begin('type_directive'), 40;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 32
                              );
                            case 3:
                              return this.popState(), this.popState(), 42;
                            case 4:
                              return 41;
                            case 5:
                              break;
                            case 6:
                              console.log('Crap after close');
                              break;
                            case 7:
                              return 5;
                            case 8:
                            case 9:
                            case 10:
                            case 11:
                              break;
                            case 12:
                              return this.pushState('SCALE'), 15;
                            case 13:
                              return 16;
                            case 14:
                              this.popState();
                              break;
                            case 15:
                              this.pushState('STATE');
                              break;
                            case 16:
                              return (
                                this.popState(),
                                (t.yytext = t.yytext.slice(0, -8).trim()),
                                23
                              );
                            case 17:
                              return (
                                this.popState(),
                                (t.yytext = t.yytext.slice(0, -8).trim()),
                                24
                              );
                            case 18:
                              return (
                                this.popState(),
                                (t.yytext = t.yytext.slice(0, -8).trim()),
                                23
                              );
                            case 19:
                              return (
                                this.popState(),
                                (t.yytext = t.yytext.slice(0, -8).trim()),
                                24
                              );
                            case 20:
                              this.begin('STATE_STRING');
                              break;
                            case 21:
                              return (
                                this.popState(),
                                this.pushState('STATE_ID'),
                                'AS'
                              );
                            case 22:
                              return this.popState(), 'ID';
                            case 23:
                              this.popState();
                              break;
                            case 24:
                              return 'STATE_DESCR';
                            case 25:
                              return 17;
                            case 26:
                              this.popState();
                              break;
                            case 27:
                              return (
                                this.popState(), this.pushState('struct'), 18
                              );
                            case 28:
                              return this.popState(), 19;
                            case 29:
                              break;
                            case 30:
                              return this.begin('NOTE'), 26;
                            case 31:
                              return (
                                this.popState(), this.pushState('NOTE_ID'), 37
                              );
                            case 32:
                              return (
                                this.popState(), this.pushState('NOTE_ID'), 38
                              );
                            case 33:
                              this.popState(), this.pushState('FLOATING_NOTE');
                              break;
                            case 34:
                              return (
                                this.popState(),
                                this.pushState('FLOATING_NOTE_ID'),
                                'AS'
                              );
                            case 35:
                              break;
                            case 36:
                              return 'NOTE_TEXT';
                            case 37:
                              return this.popState(), 'ID';
                            case 38:
                              return (
                                this.popState(), this.pushState('NOTE_TEXT'), 22
                              );
                            case 39:
                              return (
                                this.popState(),
                                (t.yytext = t.yytext.substr(2).trim()),
                                28
                              );
                            case 40:
                              return (
                                this.popState(),
                                (t.yytext = t.yytext.slice(0, -8).trim()),
                                28
                              );
                            case 41:
                            case 42:
                              return 7;
                            case 43:
                              return 14;
                            case 44:
                              return 36;
                            case 45:
                              return 22;
                            case 46:
                              return (t.yytext = t.yytext.trim()), 12;
                            case 47:
                              return 13;
                            case 48:
                              return 25;
                            case 49:
                              return 5;
                            case 50:
                              return 'INVALID';
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:%%(?!\{)[^\n]*)/i,
                          /^(?:[^\}]%%[^\n]*)/i,
                          /^(?:[\n]+)/i,
                          /^(?:[\s]+)/i,
                          /^(?:((?!\n)\s)+)/i,
                          /^(?:#[^\n]*)/i,
                          /^(?:%[^\n]*)/i,
                          /^(?:scale\s+)/i,
                          /^(?:\d+)/i,
                          /^(?:\s+width\b)/i,
                          /^(?:state\s+)/i,
                          /^(?:.*<<fork>>)/i,
                          /^(?:.*<<join>>)/i,
                          /^(?:.*\[\[fork\]\])/i,
                          /^(?:.*\[\[join\]\])/i,
                          /^(?:["])/i,
                          /^(?:\s*as\s+)/i,
                          /^(?:[^\n\{]*)/i,
                          /^(?:["])/i,
                          /^(?:[^"]*)/i,
                          /^(?:[^\n\s\{]+)/i,
                          /^(?:\n)/i,
                          /^(?:\{)/i,
                          /^(?:\})/i,
                          /^(?:[\n])/i,
                          /^(?:note\s+)/i,
                          /^(?:left of\b)/i,
                          /^(?:right of\b)/i,
                          /^(?:")/i,
                          /^(?:\s*as\s*)/i,
                          /^(?:["])/i,
                          /^(?:[^"]*)/i,
                          /^(?:[^\n]*)/i,
                          /^(?:\s*[^:\n\s\-]+)/i,
                          /^(?:\s*:[^:\n;]+)/i,
                          /^(?:[\s\S]*?end note\b)/i,
                          /^(?:stateDiagram\s+)/i,
                          /^(?:stateDiagram-v2\s+)/i,
                          /^(?:hide empty description\b)/i,
                          /^(?:\[\*\])/i,
                          /^(?:[^:\n\s\-\{]+)/i,
                          /^(?:\s*:[^:\n;]+)/i,
                          /^(?:-->)/i,
                          /^(?:--)/i,
                          /^(?:$)/i,
                          /^(?:.)/i,
                        ],
                        conditions: {
                          LINE: { rules: [9, 10], inclusive: !1 },
                          close_directive: { rules: [9, 10], inclusive: !1 },
                          arg_directive: {
                            rules: [3, 4, 9, 10],
                            inclusive: !1,
                          },
                          type_directive: {
                            rules: [2, 3, 9, 10],
                            inclusive: !1,
                          },
                          open_directive: { rules: [1, 9, 10], inclusive: !1 },
                          struct: {
                            rules: [9, 10, 15, 28, 29, 30, 44, 45, 46, 47, 48],
                            inclusive: !1,
                          },
                          FLOATING_NOTE_ID: { rules: [37], inclusive: !1 },
                          FLOATING_NOTE: { rules: [34, 35, 36], inclusive: !1 },
                          NOTE_TEXT: { rules: [39, 40], inclusive: !1 },
                          NOTE_ID: { rules: [38], inclusive: !1 },
                          NOTE: { rules: [31, 32, 33], inclusive: !1 },
                          SCALE: { rules: [13, 14], inclusive: !1 },
                          ALIAS: { rules: [], inclusive: !1 },
                          STATE_ID: { rules: [22], inclusive: !1 },
                          STATE_STRING: { rules: [23, 24], inclusive: !1 },
                          FORK_STATE: { rules: [], inclusive: !1 },
                          STATE: {
                            rules: [9, 10, 16, 17, 18, 19, 20, 21, 25, 26, 27],
                            inclusive: !1,
                          },
                          ID: { rules: [9, 10], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              8,
                              10,
                              11,
                              12,
                              15,
                              27,
                              30,
                              41,
                              42,
                              43,
                              44,
                              45,
                              46,
                              47,
                              49,
                              50,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function x() {
                      this.yy = {};
                    }
                    return (
                      (S.lexer = k), (x.prototype = S), (S.Parser = x), new x()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/state/shapes.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'drawStartState', function () {
                    return d;
                  }),
                  i.d(t, 'drawDivider', function () {
                    return h;
                  }),
                  i.d(t, 'drawSimpleState', function () {
                    return u;
                  }),
                  i.d(t, 'drawDescrState', function () {
                    return g;
                  }),
                  i.d(t, 'addTitleAndBox', function () {
                    return f;
                  }),
                  i.d(t, 'drawText', function () {
                    return p;
                  }),
                  i.d(t, 'drawNote', function () {
                    return m;
                  }),
                  i.d(t, 'drawState', function () {
                    return _;
                  }),
                  i.d(t, 'drawEdge', function () {
                    return v;
                  });
                var n = i('d3'),
                  r = i('./src/diagrams/state/id-cache.js'),
                  s = i('./src/diagrams/state/stateDb.js'),
                  o = i('./src/utils.js'),
                  a = i('./src/diagrams/common/common.js'),
                  l = i('./src/config.js'),
                  c = i('./src/logger.js'),
                  d = function (e) {
                    return e
                      .append('circle')
                      .attr('class', 'start-state')
                      .attr('r', Object(l.getConfig)().state.sizeUnit)
                      .attr(
                        'cx',
                        Object(l.getConfig)().state.padding +
                          Object(l.getConfig)().state.sizeUnit
                      )
                      .attr(
                        'cy',
                        Object(l.getConfig)().state.padding +
                          Object(l.getConfig)().state.sizeUnit
                      );
                  },
                  h = function (e) {
                    return e
                      .append('line')
                      .style('stroke', 'grey')
                      .style('stroke-dasharray', '3')
                      .attr('x1', Object(l.getConfig)().state.textHeight)
                      .attr('class', 'divider')
                      .attr('x2', 2 * Object(l.getConfig)().state.textHeight)
                      .attr('y1', 0)
                      .attr('y2', 0);
                  },
                  u = function (e, t) {
                    var i = e
                        .append('text')
                        .attr('x', 2 * Object(l.getConfig)().state.padding)
                        .attr(
                          'y',
                          Object(l.getConfig)().state.textHeight +
                            2 * Object(l.getConfig)().state.padding
                        )
                        .attr('font-size', Object(l.getConfig)().state.fontSize)
                        .attr('class', 'state-title')
                        .text(t.id),
                      n = i.node().getBBox();
                    return (
                      e
                        .insert('rect', ':first-child')
                        .attr('x', Object(l.getConfig)().state.padding)
                        .attr('y', Object(l.getConfig)().state.padding)
                        .attr(
                          'width',
                          n.width + 2 * Object(l.getConfig)().state.padding
                        )
                        .attr(
                          'height',
                          n.height + 2 * Object(l.getConfig)().state.padding
                        )
                        .attr('rx', Object(l.getConfig)().state.radius),
                      i
                    );
                  },
                  g = function (e, t) {
                    var i = e
                        .append('text')
                        .attr('x', 2 * Object(l.getConfig)().state.padding)
                        .attr(
                          'y',
                          Object(l.getConfig)().state.textHeight +
                            1.3 * Object(l.getConfig)().state.padding
                        )
                        .attr('font-size', Object(l.getConfig)().state.fontSize)
                        .attr('class', 'state-title')
                        .text(t.descriptions[0])
                        .node()
                        .getBBox(),
                      n = i.height,
                      r = e
                        .append('text')
                        .attr('x', Object(l.getConfig)().state.padding)
                        .attr(
                          'y',
                          n +
                            0.4 * Object(l.getConfig)().state.padding +
                            Object(l.getConfig)().state.dividerMargin +
                            Object(l.getConfig)().state.textHeight
                        )
                        .attr('class', 'state-description'),
                      s = !0,
                      o = !0;
                    t.descriptions.forEach(function (e) {
                      s ||
                        ((function (e, t, i) {
                          var n = e
                            .append('tspan')
                            .attr('x', 2 * Object(l.getConfig)().state.padding)
                            .text(t);
                          i ||
                            n.attr(
                              'dy',
                              Object(l.getConfig)().state.textHeight
                            );
                        })(r, e, o),
                        (o = !1)),
                        (s = !1);
                    });
                    var a = e
                        .append('line')
                        .attr('x1', Object(l.getConfig)().state.padding)
                        .attr(
                          'y1',
                          Object(l.getConfig)().state.padding +
                            n +
                            Object(l.getConfig)().state.dividerMargin / 2
                        )
                        .attr(
                          'y2',
                          Object(l.getConfig)().state.padding +
                            n +
                            Object(l.getConfig)().state.dividerMargin / 2
                        )
                        .attr('class', 'descr-divider'),
                      c = r.node().getBBox(),
                      d = Math.max(c.width, i.width);
                    return (
                      a.attr('x2', d + 3 * Object(l.getConfig)().state.padding),
                      e
                        .insert('rect', ':first-child')
                        .attr('x', Object(l.getConfig)().state.padding)
                        .attr('y', Object(l.getConfig)().state.padding)
                        .attr(
                          'width',
                          d + 2 * Object(l.getConfig)().state.padding
                        )
                        .attr(
                          'height',
                          c.height + n + 2 * Object(l.getConfig)().state.padding
                        )
                        .attr('rx', Object(l.getConfig)().state.radius),
                      e
                    );
                  },
                  f = function (e, t, i) {
                    var n,
                      r = Object(l.getConfig)().state.padding,
                      s = 2 * Object(l.getConfig)().state.padding,
                      o = e.node().getBBox(),
                      a = o.width,
                      c = o.x,
                      d = e
                        .append('text')
                        .attr('x', 0)
                        .attr('y', Object(l.getConfig)().state.titleShift)
                        .attr('font-size', Object(l.getConfig)().state.fontSize)
                        .attr('class', 'state-title')
                        .text(t.id),
                      h = d.node().getBBox().width + s,
                      u = Math.max(h, a);
                    u === a && (u += s);
                    var g = e.node().getBBox();
                    t.doc,
                      (n = c - r),
                      h > a && (n = (a - u) / 2 + r),
                      Math.abs(c - g.x) < r && h > a && (n = c - (h - a) / 2);
                    var f = 1 - Object(l.getConfig)().state.textHeight;
                    return (
                      e
                        .insert('rect', ':first-child')
                        .attr('x', n)
                        .attr('y', f)
                        .attr('class', i ? 'alt-composit' : 'composit')
                        .attr('width', u)
                        .attr(
                          'height',
                          g.height +
                            Object(l.getConfig)().state.textHeight +
                            Object(l.getConfig)().state.titleShift +
                            1
                        )
                        .attr('rx', '0'),
                      d.attr('x', n + r),
                      h <= a && d.attr('x', c + (u - s) / 2 - h / 2 + r),
                      e
                        .insert('rect', ':first-child')
                        .attr('x', n)
                        .attr(
                          'y',
                          Object(l.getConfig)().state.titleShift -
                            Object(l.getConfig)().state.textHeight -
                            Object(l.getConfig)().state.padding
                        )
                        .attr('width', u)
                        .attr(
                          'height',
                          3 * Object(l.getConfig)().state.textHeight
                        )
                        .attr('rx', Object(l.getConfig)().state.radius),
                      e
                        .insert('rect', ':first-child')
                        .attr('x', n)
                        .attr(
                          'y',
                          Object(l.getConfig)().state.titleShift -
                            Object(l.getConfig)().state.textHeight -
                            Object(l.getConfig)().state.padding
                        )
                        .attr('width', u)
                        .attr(
                          'height',
                          g.height +
                            3 +
                            2 * Object(l.getConfig)().state.textHeight
                        )
                        .attr('rx', Object(l.getConfig)().state.radius),
                      e
                    );
                  },
                  p = function (e, t) {
                    var i = t.text.replace(a.default.lineBreakRegex, ' '),
                      n = e.append('text');
                    n.attr('x', t.x),
                      n.attr('y', t.y),
                      n.style('text-anchor', t.anchor),
                      n.attr('fill', t.fill),
                      void 0 !== t.class && n.attr('class', t.class);
                    var r = n.append('tspan');
                    return (
                      r.attr('x', t.x + 2 * t.textMargin),
                      r.attr('fill', t.fill),
                      r.text(i),
                      n
                    );
                  },
                  m = function (e, t) {
                    t.attr('class', 'state-note');
                    var i = t
                        .append('rect')
                        .attr('x', 0)
                        .attr('y', Object(l.getConfig)().state.padding),
                      n = (function (e, t, i, n) {
                        var r = 0,
                          s = n.append('text');
                        s.style('text-anchor', 'start'),
                          s.attr('class', 'noteText');
                        var o = e.replace(/\r\n/g, '<br/>'),
                          c = (o = o.replace(/\n/g, '<br/>')).split(
                            a.default.lineBreakRegex
                          ),
                          d = 1.25 * Object(l.getConfig)().state.noteMargin,
                          h = !0,
                          u = !1,
                          g = void 0;
                        try {
                          for (
                            var f, p = c[Symbol.iterator]();
                            !(h = (f = p.next()).done);
                            h = !0
                          ) {
                            var m = f.value.trim();
                            if (m.length > 0) {
                              var _ = s.append('tspan');
                              _.text(m),
                                0 === d && (d += _.node().getBBox().height),
                                (r += d),
                                _.attr(
                                  'x',
                                  0 + Object(l.getConfig)().state.noteMargin
                                ),
                                _.attr(
                                  'y',
                                  0 +
                                    r +
                                    1.25 *
                                      Object(l.getConfig)().state.noteMargin
                                );
                            }
                          }
                        } catch (e) {
                          (u = !0), (g = e);
                        } finally {
                          try {
                            h || null == p.return || p.return();
                          } finally {
                            if (u) throw g;
                          }
                        }
                        return {
                          textWidth: s.node().getBBox().width,
                          textHeight: r,
                        };
                      })(e, 0, 0, t.append('g')),
                      r = n.textWidth,
                      s = n.textHeight;
                    return (
                      i.attr(
                        'height',
                        s + 2 * Object(l.getConfig)().state.noteMargin
                      ),
                      i.attr(
                        'width',
                        r + 2 * Object(l.getConfig)().state.noteMargin
                      ),
                      i
                    );
                  },
                  _ = function (e, t) {
                    var i = t.id,
                      n = { id: i, label: t.id, width: 0, height: 0 },
                      s = e
                        .append('g')
                        .attr('id', i)
                        .attr('class', 'stateGroup');
                    'start' === t.type && d(s),
                      'end' === t.type &&
                        (function (e) {
                          e
                            .append('circle')
                            .attr('class', 'end-state-outer')
                            .attr(
                              'r',
                              Object(l.getConfig)().state.sizeUnit +
                                Object(l.getConfig)().state.miniPadding
                            )
                            .attr(
                              'cx',
                              Object(l.getConfig)().state.padding +
                                Object(l.getConfig)().state.sizeUnit +
                                Object(l.getConfig)().state.miniPadding
                            )
                            .attr(
                              'cy',
                              Object(l.getConfig)().state.padding +
                                Object(l.getConfig)().state.sizeUnit +
                                Object(l.getConfig)().state.miniPadding
                            ),
                            e
                              .append('circle')
                              .attr('class', 'end-state-inner')
                              .attr('r', Object(l.getConfig)().state.sizeUnit)
                              .attr(
                                'cx',
                                Object(l.getConfig)().state.padding +
                                  Object(l.getConfig)().state.sizeUnit +
                                  2
                              )
                              .attr(
                                'cy',
                                Object(l.getConfig)().state.padding +
                                  Object(l.getConfig)().state.sizeUnit +
                                  2
                              );
                        })(s),
                      ('fork' !== t.type && 'join' !== t.type) ||
                        (function (e, t) {
                          var i = Object(l.getConfig)().state.forkWidth,
                            n = Object(l.getConfig)().state.forkHeight;
                          if (t.parentId) {
                            var r = i;
                            (i = n), (n = r);
                          }
                          e.append('rect')
                            .style('stroke', 'black')
                            .style('fill', 'black')
                            .attr('width', i)
                            .attr('height', n)
                            .attr('x', Object(l.getConfig)().state.padding)
                            .attr('y', Object(l.getConfig)().state.padding);
                        })(s, t),
                      'note' === t.type && m(t.note.text, s),
                      'divider' === t.type && h(s),
                      'default' === t.type &&
                        0 === t.descriptions.length &&
                        u(s, t),
                      'default' === t.type &&
                        t.descriptions.length > 0 &&
                        g(s, t);
                    var o = s.node().getBBox();
                    return (
                      (n.width =
                        o.width + 2 * Object(l.getConfig)().state.padding),
                      (n.height =
                        o.height + 2 * Object(l.getConfig)().state.padding),
                      r.default.set(i, n),
                      n
                    );
                  },
                  b = 0,
                  v = function (e, t, i) {
                    t.points = t.points.filter(function (e) {
                      return !Number.isNaN(e.y);
                    });
                    var r = t.points,
                      d = Object(n.line)()
                        .x(function (e) {
                          return e.x;
                        })
                        .y(function (e) {
                          return e.y;
                        })
                        .curve(n.curveBasis),
                      h = e
                        .append('path')
                        .attr('d', d(r))
                        .attr('id', 'edge' + b)
                        .attr('class', 'transition'),
                      u = '';
                    if (
                      (Object(l.getConfig)().state.arrowMarkerAbsolute &&
                        (u = (u = (u =
                          window.location.protocol +
                          '//' +
                          window.location.host +
                          window.location.pathname +
                          window.location.search).replace(
                          /\(/g,
                          '\\('
                        )).replace(/\)/g, '\\)')),
                      h.attr(
                        'marker-end',
                        'url(' +
                          u +
                          '#' +
                          (function (e) {
                            switch (e) {
                              case s.default.relationType.AGGREGATION:
                                return 'aggregation';
                              case s.default.relationType.EXTENSION:
                                return 'extension';
                              case s.default.relationType.COMPOSITION:
                                return 'composition';
                              case s.default.relationType.DEPENDENCY:
                                return 'dependency';
                            }
                          })(s.default.relationType.DEPENDENCY) +
                          'End)'
                      ),
                      void 0 !== i.title)
                    ) {
                      for (
                        var g = e.append('g').attr('class', 'stateLabel'),
                          f = o.default.calcLabelPosition(t.points),
                          p = f.x,
                          m = f.y,
                          _ = a.default.getRows(i.title),
                          v = 0,
                          y = [],
                          w = 0,
                          C = 0,
                          S = 0;
                        S <= _.length;
                        S++
                      ) {
                        var k = g
                            .append('text')
                            .attr('text-anchor', 'middle')
                            .text(_[S])
                            .attr('x', p)
                            .attr('y', m + v),
                          x = k.node().getBBox();
                        if (
                          ((w = Math.max(w, x.width)),
                          (C = Math.min(C, x.x)),
                          c.log.info(x.x, p, m + v),
                          0 === v)
                        ) {
                          var L = k.node().getBBox();
                          (v = L.height), c.log.info('Title height', v, m);
                        }
                        y.push(k);
                      }
                      var M = v * _.length;
                      if (_.length > 1) {
                        var D = (_.length - 1) * v * 0.5;
                        y.forEach(function (e, t) {
                          return e.attr('y', m + t * v - D);
                        }),
                          (M = v * _.length);
                      }
                      var N = g.node().getBBox();
                      g
                        .insert('rect', ':first-child')
                        .attr('class', 'box')
                        .attr(
                          'x',
                          p - w / 2 - Object(l.getConfig)().state.padding / 2
                        )
                        .attr(
                          'y',
                          m -
                            M / 2 -
                            Object(l.getConfig)().state.padding / 2 -
                            3.5
                        )
                        .attr('width', w + Object(l.getConfig)().state.padding)
                        .attr(
                          'height',
                          M + Object(l.getConfig)().state.padding
                        ),
                        c.log.info(N);
                    }
                    b++;
                  };
              },
              './src/diagrams/state/stateDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return d;
                  }),
                  i.d(t, 'addState', function () {
                    return p;
                  }),
                  i.d(t, 'clear', function () {
                    return m;
                  }),
                  i.d(t, 'getState', function () {
                    return _;
                  }),
                  i.d(t, 'getStates', function () {
                    return b;
                  }),
                  i.d(t, 'logDocuments', function () {
                    return v;
                  }),
                  i.d(t, 'getRelations', function () {
                    return y;
                  }),
                  i.d(t, 'addRelation', function () {
                    return w;
                  }),
                  i.d(t, 'cleanupLabel', function () {
                    return S;
                  }),
                  i.d(t, 'lineType', function () {
                    return k;
                  }),
                  i.d(t, 'relationType', function () {
                    return M;
                  });
                var n = i('./src/logger.js'),
                  r = i('./src/utils.js'),
                  s = i('./src/mermaidAPI.js'),
                  o = i('./src/config.js');
                function a(e) {
                  return (a =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                var l = function (e) {
                    return JSON.parse(JSON.stringify(e));
                  },
                  c = [],
                  d = function (e, t, i) {
                    s.default.parseDirective(this, e, t, i);
                  },
                  h = function e(t, i, n) {
                    if ('relation' === i.stmt)
                      e(t, i.state1, !0), e(t, i.state2, !1);
                    else if (
                      ('state' === i.stmt &&
                        '[*]' === i.id &&
                        ((i.id = n ? t.id + '_start' : t.id + '_end'),
                        (i.start = n)),
                      i.doc)
                    ) {
                      var s = [],
                        o = 0,
                        a = [];
                      for (o = 0; o < i.doc.length; o++)
                        if ('divider' === i.doc[o].type) {
                          var c = l(i.doc[o]);
                          (c.doc = l(a)), s.push(c), (a = []);
                        } else a.push(i.doc[o]);
                      if (s.length > 0 && a.length > 0) {
                        var d = {
                          stmt: 'state',
                          id: Object(r.generateId)(),
                          type: 'divider',
                          doc: l(a),
                        };
                        s.push(l(d)), (i.doc = s);
                      }
                      i.doc.forEach(function (t) {
                        return e(i, t, !0);
                      });
                    }
                  },
                  u = { root: { relations: [], states: {}, documents: {} } },
                  g = u.root,
                  f = 0,
                  p = function (e, t, i, r, s) {
                    void 0 === g.states[e]
                      ? (g.states[e] = {
                          id: e,
                          descriptions: [],
                          type: t,
                          doc: i,
                          note: s,
                        })
                      : (g.states[e].doc || (g.states[e].doc = i),
                        g.states[e].type || (g.states[e].type = t)),
                      r &&
                        (n.log.info('Adding state ', e, r),
                        'string' == typeof r && C(e, r.trim()),
                        'object' === a(r) &&
                          r.forEach(function (t) {
                            return C(e, t.trim());
                          })),
                      s && (g.states[e].note = s);
                  },
                  m = function () {
                    (g = (u = {
                      root: { relations: [], states: {}, documents: {} },
                    }).root),
                      (g = u.root),
                      (f = 0),
                      (L = []);
                  },
                  _ = function (e) {
                    return g.states[e];
                  },
                  b = function () {
                    return g.states;
                  },
                  v = function () {
                    n.log.info('Documents = ', u);
                  },
                  y = function () {
                    return g.relations;
                  },
                  w = function (e, t, i) {
                    var n = e,
                      r = t,
                      s = 'default',
                      o = 'default';
                    '[*]' === e && ((n = 'start' + ++f), (s = 'start')),
                      '[*]' === t && ((r = 'end' + f), (o = 'end')),
                      p(n, s),
                      p(r, o),
                      g.relations.push({ id1: n, id2: r, title: i });
                  },
                  C = function (e, t) {
                    var i = g.states[e],
                      n = t;
                    ':' === n[0] && (n = n.substr(1).trim()),
                      i.descriptions.push(n);
                  },
                  S = function (e) {
                    return ':' === e.substring(0, 1)
                      ? e.substr(2).trim()
                      : e.trim();
                  },
                  k = { LINE: 0, DOTTED_LINE: 1 },
                  x = 0,
                  L = [],
                  M = {
                    AGGREGATION: 0,
                    EXTENSION: 1,
                    COMPOSITION: 2,
                    DEPENDENCY: 3,
                  };
                t.default = {
                  parseDirective: d,
                  getConfig: function () {
                    return o.getConfig().state;
                  },
                  addState: p,
                  clear: m,
                  getState: _,
                  getStates: b,
                  getRelations: y,
                  getClasses: function () {
                    return L;
                  },
                  getDirection: function () {
                    return 'TB';
                  },
                  addRelation: w,
                  getDividerId: function () {
                    return 'divider-id-' + ++x;
                  },
                  cleanupLabel: S,
                  lineType: k,
                  relationType: M,
                  logDocuments: v,
                  getRootDoc: function () {
                    return c;
                  },
                  setRootDoc: function (e) {
                    n.log.info('Setting root doc', e), (c = e);
                  },
                  getRootDocV2: function () {
                    return (
                      h({ id: 'root' }, { id: 'root', doc: c }, !0),
                      { id: 'root', doc: c }
                    );
                  },
                  extract: function (e) {
                    var t;
                    (t = e.doc ? e.doc : e),
                      n.log.info(t),
                      m(),
                      n.log.info('Extract', t),
                      t.forEach(function (e) {
                        'state' === e.stmt &&
                          p(e.id, e.type, e.doc, e.description, e.note),
                          'relation' === e.stmt &&
                            w(e.state1.id, e.state2.id, e.description);
                      });
                  },
                  trimColon: function (e) {
                    return e && ':' === e[0] ? e.substr(1).trim() : e.trim();
                  },
                };
              },
              './src/diagrams/state/stateRenderer-v2.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return f;
                  }),
                  i.d(t, 'getClasses', function () {
                    return m;
                  }),
                  i.d(t, 'draw', function () {
                    return y;
                  });
                var n = i('graphlib'),
                  r = i.n(n),
                  s = i('d3'),
                  o = i('./src/diagrams/state/stateDb.js'),
                  a = i('./src/diagrams/state/parser/stateDiagram.jison'),
                  l = i.n(a),
                  c = i('./src/config.js'),
                  d = i('./src/dagre-wrapper/index.js'),
                  h = i('./src/logger.js'),
                  u = i('./src/utils.js'),
                  g = {},
                  f = function (e) {
                    for (var t = Object.keys(e), i = 0; i < t.length; i++)
                      g[t[i]] = e[t[i]];
                  },
                  p = {},
                  m = function (e) {
                    h.log.trace('Extracting classes'), o.default.clear();
                    var t = l.a.parser;
                    return (
                      (t.yy = o.default), t.parse(e), o.default.getClasses()
                    );
                  },
                  _ = function (e, t, i, n) {
                    if ('root' !== i.id) {
                      var r = 'rect';
                      !0 === i.start && (r = 'start'),
                        !1 === i.start && (r = 'end'),
                        'default' !== i.type && (r = i.type),
                        p[i.id] ||
                          (p[i.id] = {
                            id: i.id,
                            shape: r,
                            description: i.id,
                            classes: 'statediagram-state',
                          }),
                        i.description &&
                          (Array.isArray(p[i.id].description)
                            ? ((p[i.id].shape = 'rectWithTitle'),
                              p[i.id].description.push(i.description))
                            : p[i.id].description.length > 0
                            ? ((p[i.id].shape = 'rectWithTitle'),
                              p[i.id].description === i.id
                                ? (p[i.id].description = [i.description])
                                : (p[i.id].description = [
                                    p[i.id].description,
                                    i.description,
                                  ]))
                            : ((p[i.id].shape = 'rect'),
                              (p[i.id].description = i.description))),
                        !p[i.id].type &&
                          i.doc &&
                          (h.log.info('Setting cluser for ', i.id),
                          (p[i.id].type = 'group'),
                          (p[i.id].shape =
                            'divider' === i.type
                              ? 'divider'
                              : 'roundedWithTitle'),
                          (p[i.id].classes =
                            p[i.id].classes +
                            ' ' +
                            (n
                              ? 'statediagram-cluster statediagram-cluster-alt'
                              : 'statediagram-cluster')));
                      var s = {
                        labelStyle: '',
                        shape: p[i.id].shape,
                        labelText: p[i.id].description,
                        classes: p[i.id].classes,
                        style: '',
                        id: i.id,
                        domId: 'state-' + i.id + '-' + b,
                        type: p[i.id].type,
                        padding: 15,
                      };
                      if (i.note) {
                        var o = {
                            labelStyle: '',
                            shape: 'note',
                            labelText: i.note.text,
                            classes: 'statediagram-note',
                            style: '',
                            id: i.id + '----note',
                            domId: 'state-' + i.id + '----note-' + b,
                            type: p[i.id].type,
                            padding: 15,
                          },
                          a = {
                            labelStyle: '',
                            shape: 'noteGroup',
                            labelText: i.note.text,
                            classes: p[i.id].classes,
                            style: '',
                            id: i.id + '----parent',
                            domId: 'state-' + i.id + '----parent-' + b,
                            type: 'group',
                            padding: 0,
                          };
                        b++,
                          e.setNode(i.id + '----parent', a),
                          e.setNode(o.id, o),
                          e.setNode(i.id, s),
                          e.setParent(i.id, i.id + '----parent'),
                          e.setParent(o.id, i.id + '----parent');
                        var l = i.id,
                          c = o.id;
                        'left of' === i.note.position &&
                          ((l = o.id), (c = i.id)),
                          e.setEdge(l, c, {
                            arrowhead: 'none',
                            arrowType: '',
                            style: 'fill:none',
                            labelStyle: '',
                            classes: 'transition note-edge',
                            arrowheadStyle: 'fill: #333',
                            labelpos: 'c',
                            labelType: 'text',
                            thickness: 'normal',
                          });
                      } else e.setNode(i.id, s);
                    }
                    t &&
                      'root' !== t.id &&
                      (h.log.info(
                        'Setting node ',
                        i.id,
                        ' to be child of its parent ',
                        t.id
                      ),
                      e.setParent(i.id, t.id)),
                      i.doc &&
                        (h.log.info('Adding nodes children '),
                        v(e, i, i.doc, !n));
                  },
                  b = 0,
                  v = function (e, t, i, n) {
                    (b = 0),
                      h.log.trace('items', i),
                      i.forEach(function (i) {
                        if ('state' === i.stmt || 'default' === i.stmt)
                          _(e, t, i, n);
                        else if ('relation' === i.stmt) {
                          _(e, t, i.state1, n), _(e, t, i.state2, n);
                          var r = {
                              id: 'edge' + b,
                              arrowhead: 'normal',
                              arrowTypeEnd: 'arrow_barb',
                              style: 'fill:none',
                              labelStyle: '',
                              label: i.description,
                              arrowheadStyle: 'fill: #333',
                              labelpos: 'c',
                              labelType: 'text',
                              thickness: 'normal',
                              classes: 'transition',
                            },
                            s = i.state1.id,
                            o = i.state2.id;
                          e.setEdge(s, o, r, b), b++;
                        }
                      });
                  },
                  y = function (e, t) {
                    h.log.info('Drawing state diagram (v2)', t),
                      o.default.clear(),
                      (p = {});
                    var i = l.a.parser;
                    (i.yy = o.default), i.parse(e);
                    var n = o.default.getDirection();
                    void 0 === n && (n = 'LR');
                    var a = Object(c.getConfig)().state,
                      g = a.nodeSpacing || 50,
                      f = a.rankSpacing || 50,
                      m = new r.a.Graph({ multigraph: !0, compound: !0 })
                        .setGraph({
                          rankdir: 'TB',
                          nodesep: g,
                          ranksep: f,
                          marginx: 8,
                          marginy: 8,
                        })
                        .setDefaultEdgeLabel(function () {
                          return {};
                        });
                    h.log.info(o.default.getRootDocV2()),
                      o.default.extract(o.default.getRootDocV2()),
                      h.log.info(o.default.getRootDocV2()),
                      _(m, void 0, o.default.getRootDocV2(), !0);
                    var b = Object(s.select)('[id="'.concat(t, '"]')),
                      v = Object(s.select)('#' + t + ' g');
                    Object(d.render)(v, m, ['barb'], 'statediagram', t);
                    var y = b.node().getBBox(),
                      w = y.width + 16,
                      C = y.height + 16;
                    b.attr('class', 'statediagram');
                    var S = b.node().getBBox();
                    Object(u.configureSvgSize)(b, C, 1.75 * w, a.useMaxWidth);
                    var k = ''
                      .concat(S.x - 8, ' ')
                      .concat(S.y - 8, ' ')
                      .concat(w, ' ')
                      .concat(C);
                    if (
                      (h.log.debug('viewBox '.concat(k)),
                      b.attr('viewBox', k),
                      !a.htmlLabels)
                    )
                      for (
                        var x = document.querySelectorAll(
                            '[id="' + t + '"] .edgeLabel .label'
                          ),
                          L = 0;
                        L < x.length;
                        L++
                      ) {
                        var M = x[L],
                          D = M.getBBox(),
                          N = document.createElementNS(
                            'http://www.w3.org/2000/svg',
                            'rect'
                          );
                        N.setAttribute('rx', 0),
                          N.setAttribute('ry', 0),
                          N.setAttribute('width', D.width),
                          N.setAttribute('height', D.height),
                          M.insertBefore(N, M.firstChild);
                      }
                  };
                t.default = { setConf: f, getClasses: m, draw: y };
              },
              './src/diagrams/state/stateRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return _;
                  }),
                  i.d(t, 'draw', function () {
                    return b;
                  });
                var n,
                  r = i('d3'),
                  s = i('dagre'),
                  o = i.n(s),
                  a = i('graphlib'),
                  l = i.n(a),
                  c = i('./src/logger.js'),
                  d = i('./src/diagrams/state/stateDb.js'),
                  h = i('./src/diagrams/common/common.js'),
                  u = i('./src/diagrams/state/parser/stateDiagram.jison'),
                  g = i('./src/diagrams/state/shapes.js'),
                  f = i('./src/config.js'),
                  p = i('./src/utils.js');
                u.parser.yy = d.default;
                var m = {},
                  _ = function () {},
                  b = function (e, t) {
                    (n = Object(f.getConfig)().state),
                      u.parser.yy.clear(),
                      u.parser.parse(e),
                      c.log.debug('Rendering diagram ' + e);
                    var i = Object(r.select)("[id='".concat(t, "']"));
                    i
                      .append('defs')
                      .append('marker')
                      .attr('id', 'dependencyEnd')
                      .attr('refX', 19)
                      .attr('refY', 7)
                      .attr('markerWidth', 20)
                      .attr('markerHeight', 28)
                      .attr('orient', 'auto')
                      .append('path')
                      .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z'),
                      new l.a.Graph({
                        multigraph: !0,
                        compound: !0,
                        rankdir: 'RL',
                      }).setDefaultEdgeLabel(function () {
                        return {};
                      });
                    var s = d.default.getRootDoc();
                    v(s, i, void 0, !1);
                    var o = n.padding,
                      a = i.node().getBBox(),
                      h = a.width + 2 * o,
                      g = a.height + 2 * o,
                      m = 1.75 * h;
                    Object(p.configureSvgSize)(i, g, m, n.useMaxWidth),
                      i.attr(
                        'viewBox',
                        ''
                          .concat(a.x - n.padding, '  ')
                          .concat(a.y - n.padding, ' ') +
                          h +
                          ' ' +
                          g
                      );
                  },
                  v = function e(t, i, s, a) {
                    var u,
                      f = new l.a.Graph({ compound: !0, multigraph: !0 }),
                      p = !0;
                    for (u = 0; u < t.length; u++)
                      if ('relation' === t[u].stmt) {
                        p = !1;
                        break;
                      }
                    s
                      ? f.setGraph({
                          rankdir: 'LR',
                          multigraph: !0,
                          compound: !0,
                          ranker: 'tight-tree',
                          ranksep: p ? 1 : n.edgeLengthFactor,
                          nodeSep: p ? 1 : 50,
                          isMultiGraph: !0,
                        })
                      : f.setGraph({
                          rankdir: 'TB',
                          multigraph: !0,
                          compound: !0,
                          ranksep: p ? 1 : n.edgeLengthFactor,
                          nodeSep: p ? 1 : 50,
                          ranker: 'tight-tree',
                          isMultiGraph: !0,
                        }),
                      f.setDefaultEdgeLabel(function () {
                        return {};
                      }),
                      d.default.extract(t);
                    for (
                      var _ = d.default.getStates(),
                        b = d.default.getRelations(),
                        v = Object.keys(_),
                        y = 0;
                      y < v.length;
                      y++
                    ) {
                      var w = _[v[y]];
                      s && (w.parentId = s);
                      var C = void 0;
                      if (w.doc) {
                        var S = i
                          .append('g')
                          .attr('id', w.id)
                          .attr('class', 'stateGroup');
                        C = e(w.doc, S, w.id, !a);
                        var k = (S = Object(g.addTitleAndBox)(S, w, a))
                          .node()
                          .getBBox();
                        (C.width = k.width),
                          (C.height = k.height + n.padding / 2),
                          (m[w.id] = { y: n.compositTitleSize });
                      } else C = Object(g.drawState)(i, w, f);
                      if (w.note) {
                        var x = {
                            descriptions: [],
                            id: w.id + '-note',
                            note: w.note,
                            type: 'note',
                          },
                          L = Object(g.drawState)(i, x, f);
                        'left of' === w.note.position
                          ? (f.setNode(C.id + '-note', L), f.setNode(C.id, C))
                          : (f.setNode(C.id, C), f.setNode(C.id + '-note', L)),
                          f.setParent(C.id, C.id + '-group'),
                          f.setParent(C.id + '-note', C.id + '-group');
                      } else f.setNode(C.id, C);
                    }
                    c.log.debug('Count=', f.nodeCount(), f);
                    var M = 0;
                    b.forEach(function (e) {
                      var t;
                      M++,
                        c.log.debug('Setting edge', e),
                        f.setEdge(
                          e.id1,
                          e.id2,
                          {
                            relation: e,
                            width:
                              ((t = e.title),
                              t ? t.length * n.fontSizeFactor : 1),
                            height:
                              n.labelHeight * h.default.getRows(e.title).length,
                            labelpos: 'c',
                          },
                          'id' + M
                        );
                    }),
                      o.a.layout(f),
                      c.log.debug('Graph after layout', f.nodes());
                    var D = i.node();
                    f.nodes().forEach(function (e) {
                      void 0 !== e && void 0 !== f.node(e)
                        ? (c.log.warn(
                            'Node ' + e + ': ' + JSON.stringify(f.node(e))
                          ),
                          Object(r.select)('#' + D.id + ' #' + e).attr(
                            'transform',
                            'translate(' +
                              (f.node(e).x - f.node(e).width / 2) +
                              ',' +
                              (f.node(e).y +
                                (m[e] ? m[e].y : 0) -
                                f.node(e).height / 2) +
                              ' )'
                          ),
                          Object(r.select)('#' + D.id + ' #' + e).attr(
                            'data-x-shift',
                            f.node(e).x - f.node(e).width / 2
                          ),
                          document
                            .querySelectorAll(
                              '#' + D.id + ' #' + e + ' .divider'
                            )
                            .forEach(function (e) {
                              var t = e.parentElement,
                                i = 0,
                                n = 0;
                              t &&
                                (t.parentElement &&
                                  (i = t.parentElement.getBBox().width),
                                (n = parseInt(
                                  t.getAttribute('data-x-shift'),
                                  10
                                )),
                                Number.isNaN(n) && (n = 0)),
                                e.setAttribute('x1', 0 - n + 8),
                                e.setAttribute('x2', i - n - 8);
                            }))
                        : c.log.debug(
                            'No Node ' + e + ': ' + JSON.stringify(f.node(e))
                          );
                    });
                    var N = D.getBBox();
                    f.edges().forEach(function (e) {
                      void 0 !== e &&
                        void 0 !== f.edge(e) &&
                        (c.log.debug(
                          'Edge ' +
                            e.v +
                            ' -> ' +
                            e.w +
                            ': ' +
                            JSON.stringify(f.edge(e))
                        ),
                        Object(g.drawEdge)(i, f.edge(e), f.edge(e).relation));
                    }),
                      (N = D.getBBox());
                    var E = {
                      id: s || 'root',
                      label: s || 'root',
                      width: 0,
                      height: 0,
                    };
                    return (
                      (E.width = N.width + 2 * n.padding),
                      (E.height = N.height + 2 * n.padding),
                      c.log.debug('Doc rendered', E, f),
                      E
                    );
                  };
                t.default = { setConf: _, draw: b };
              },
              './src/diagrams/state/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return 'g.stateGroup text {\n  fill: '
                      .concat(
                        e.nodeBorder,
                        ';\n  stroke: none;\n  font-size: 10px;\n}\ng.stateGroup text {\n  fill: '
                      )
                      .concat(
                        e.textColor,
                        ';\n  stroke: none;\n  font-size: 10px;\n\n}\ng.stateGroup .state-title {\n  font-weight: bolder;\n  fill: '
                      )
                      .concat(
                        e.labelColor,
                        ';\n}\n\ng.stateGroup rect {\n  fill: '
                      )
                      .concat(e.mainBkg, ';\n  stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n}\n\ng.stateGroup line {\n  stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n  stroke-width: 1;\n}\n\n.transition {\n  stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n  stroke-width: 1;\n  fill: none;\n}\n\n.stateGroup .composit {\n  fill: '
                      )
                      .concat(
                        e.background,
                        ';\n  border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n  fill: #e0e0e0;\n  border-bottom: 1px\n}\n\n.state-note {\n  stroke: '
                      )
                      .concat(e.noteBorderColor, ';\n  fill: ')
                      .concat(
                        e.noteBkgColor,
                        ';\n\n  text {\n    fill: black;\n    stroke: none;\n    font-size: 10px;\n  }\n}\n\n.stateLabel .box {\n  stroke: none;\n  stroke-width: 0;\n  fill: '
                      )
                      .concat(
                        e.mainBkg,
                        ';\n  opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n  fill: '
                      )
                      .concat(
                        e.tertiaryColor,
                        ';\n  opacity: 0.5;\n}\n.edgeLabel .label text {\n  fill: '
                      )
                      .concat(
                        e.tertiaryTextColor,
                        ';\n}\n.label div .edgeLabel {\n  color: '
                      )
                      .concat(
                        e.tertiaryTextColor,
                        ';\n}\n\n.stateLabel text {\n  fill: '
                      )
                      .concat(
                        e.labelColor,
                        ';\n  font-size: 10px;\n  font-weight: bold;\n}\n\n.node circle.state-start {\n  fill: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n  stroke: black;\n}\n.node circle.state-end {\n  fill: '
                      )
                      .concat(e.primaryBorderColor, ';\n  stroke: ')
                      .concat(
                        e.background,
                        ';\n  stroke-width: 1.5\n}\n.end-state-inner {\n  fill: '
                      )
                      .concat(e.background, ';\n  // stroke: ')
                      .concat(
                        e.background,
                        ';\n  stroke-width: 1.5\n}\n\n.node rect {\n  fill: '
                      )
                      .concat(e.mainBkg, ';\n  stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n  stroke-width: 1px;\n}\n#statediagram-barbEnd {\n  fill: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n}\n\n.statediagram-cluster rect {\n  fill: '
                      )
                      .concat(e.mainBkg, ';\n  stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n  stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n  color: '
                      )
                      .concat(
                        e.textColor,
                        ';\n}\n\n.statediagram-cluster rect.outer {\n  rx: 5px;\n  ry: 5px;\n}\n.statediagram-state .divider {\n  stroke: '
                      )
                      .concat(
                        e.nodeBorder,
                        ';\n}\n\n.statediagram-state .title-state {\n  rx: 5px;\n  ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n  fill: '
                      )
                      .concat(
                        e.background,
                        ';\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n  fill: #e0e0e0;\n}\n\n.statediagram-cluster .inner {\n  rx:0;\n  ry:0;\n}\n\n.statediagram-state rect.basic {\n  rx: 5px;\n  ry: 5px;\n}\n.statediagram-state rect.divider {\n  stroke-dasharray: 10,10;\n  fill: '
                      )
                      .concat(
                        e.altBackground ? e.altBackground : '#efefef',
                        ';\n}\n\n.note-edge {\n  stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n  fill: '
                      )
                      .concat(e.noteBkgColor, ';\n  stroke: ')
                      .concat(
                        e.noteBorderColor,
                        ';\n  stroke-width: 1px;\n  rx: 0;\n  ry: 0;\n}\n.statediagram-note rect {\n  fill: '
                      )
                      .concat(e.noteBkgColor, ';\n  stroke: ')
                      .concat(
                        e.noteBorderColor,
                        ';\n  stroke-width: 1px;\n  rx: 0;\n  ry: 0;\n}\n\n.statediagram-note text {\n  fill: '
                      )
                      .concat(
                        e.noteTextColor,
                        ';\n}\n\n.statediagram-note .nodeLabel {\n  color: '
                      )
                      .concat(
                        e.noteTextColor,
                        ';\n}\n\n#dependencyStart, #dependencyEnd {\n  fill: '
                      )
                      .concat(e.lineColor, ';\n  stroke: ')
                      .concat(e.lineColor, ';\n  stroke-width: 1;\n}\n');
                  });
              },
              './src/diagrams/user-journey/journeyDb.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'parseDirective', function () {
                    return h;
                  }),
                  i.d(t, 'clear', function () {
                    return u;
                  }),
                  i.d(t, 'setTitle', function () {
                    return g;
                  }),
                  i.d(t, 'getTitle', function () {
                    return f;
                  }),
                  i.d(t, 'addSection', function () {
                    return p;
                  }),
                  i.d(t, 'getSections', function () {
                    return m;
                  }),
                  i.d(t, 'getTasks', function () {
                    return _;
                  }),
                  i.d(t, 'addTask', function () {
                    return b;
                  }),
                  i.d(t, 'addTaskOrg', function () {
                    return v;
                  });
                var n = i('./src/mermaidAPI.js'),
                  r = i('./src/config.js');
                function s(e) {
                  return (
                    (function (e) {
                      if (Array.isArray(e)) {
                        for (
                          var t = 0, i = new Array(e.length);
                          t < e.length;
                          t++
                        )
                          i[t] = e[t];
                        return i;
                      }
                    })(e) ||
                    (function (e) {
                      if (
                        Symbol.iterator in Object(e) ||
                        '[object Arguments]' ===
                          Object.prototype.toString.call(e)
                      )
                        return Array.from(e);
                    })(e) ||
                    (function () {
                      throw new TypeError(
                        'Invalid attempt to spread non-iterable instance'
                      );
                    })()
                  );
                }
                var o = '',
                  a = '',
                  l = [],
                  c = [],
                  d = [],
                  h = function (e, t, i) {
                    n.default.parseDirective(this, e, t, i);
                  },
                  u = function () {
                    (l.length = 0),
                      (c.length = 0),
                      (a = ''),
                      (o = ''),
                      (d.length = 0);
                  },
                  g = function (e) {
                    o = e;
                  },
                  f = function () {
                    return o;
                  },
                  p = function (e) {
                    (a = e), l.push(e);
                  },
                  m = function () {
                    return l;
                  },
                  _ = function () {
                    for (var e = y(), t = 0; !e && t < 100; ) (e = y()), t++;
                    return c.push.apply(c, d), c;
                  },
                  b = function (e, t) {
                    var i = t.substr(1).split(':'),
                      n = 0,
                      r = [];
                    1 === i.length
                      ? ((n = Number(i[0])), (r = []))
                      : ((n = Number(i[0])), (r = i[1].split(',')));
                    var s = r.map(function (e) {
                        return e.trim();
                      }),
                      o = { section: a, type: a, people: s, task: e, score: n };
                    d.push(o);
                  },
                  v = function (e) {
                    var t = {
                      section: a,
                      type: a,
                      description: e,
                      task: e,
                      classes: [],
                    };
                    c.push(t);
                  },
                  y = function () {
                    for (var e = !0, t = 0; t < d.length; t++)
                      d[t].processed, (e = e && d[t].processed);
                    return e;
                  };
                t.default = {
                  parseDirective: h,
                  getConfig: function () {
                    return r.getConfig().journey;
                  },
                  clear: u,
                  setTitle: g,
                  getTitle: f,
                  addSection: p,
                  getSections: m,
                  getTasks: _,
                  addTask: b,
                  addTaskOrg: v,
                  getActors: function () {
                    return (
                      (e = []),
                      c.forEach(function (t) {
                        t.people && e.push.apply(e, s(t.people));
                      }),
                      s(new Set(e)).sort()
                    );
                    var e;
                  },
                };
              },
              './src/diagrams/user-journey/journeyRenderer.js': function (
                e,
                t,
                i
              ) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return c;
                  }),
                  i.d(t, 'draw', function () {
                    return g;
                  }),
                  i.d(t, 'bounds', function () {
                    return f;
                  }),
                  i.d(t, 'drawTasks', function () {
                    return _;
                  });
                var n = i('d3'),
                  r = i('./src/diagrams/user-journey/parser/journey.jison'),
                  s = i('./src/diagrams/user-journey/journeyDb.js'),
                  o = i('./src/diagrams/user-journey/svgDraw.js'),
                  a = i('./src/config.js'),
                  l = i('./src/utils.js');
                r.parser.yy = s.default;
                var c = function (e) {
                    Object.keys(e).forEach(function (t) {
                      h[t] = e[t];
                    });
                  },
                  d = {},
                  h = Object(a.getConfig)().journey,
                  u = Object(a.getConfig)().journey.leftMargin,
                  g = function (e, t) {
                    var i = Object(a.getConfig)().journey;
                    r.parser.yy.clear(), r.parser.parse(e + '\n'), f.init();
                    var s = Object(n.select)('#' + t);
                    s.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink'),
                      o.default.initGraphics(s);
                    var c = r.parser.yy.getTasks(),
                      h = r.parser.yy.getTitle(),
                      g = r.parser.yy.getActors();
                    for (var p in d) delete d[p];
                    var m = 0;
                    g.forEach(function (e) {
                      (d[e] = i.actorColours[m % i.actorColours.length]), m++;
                    }),
                      (function (e) {
                        var t = Object(a.getConfig)().journey,
                          i = 60;
                        Object.keys(d).forEach(function (n) {
                          var r = d[n],
                            s = {
                              cx: 20,
                              cy: i,
                              r: 7,
                              fill: r,
                              stroke: '#000',
                            };
                          o.default.drawCircle(e, s);
                          var a = {
                            x: 40,
                            y: i + 7,
                            fill: '#666',
                            text: n,
                            textMargin: 5 | t.boxTextMargin,
                          };
                          o.default.drawText(e, a), (i += 20);
                        });
                      })(s),
                      f.insert(0, 0, u, 50 * Object.keys(d).length),
                      console.log(f),
                      _(s, c, 0);
                    var b = f.getBounds();
                    h &&
                      s
                        .append('text')
                        .text(h)
                        .attr('x', u)
                        .attr('font-size', '4ex')
                        .attr('font-weight', 'bold')
                        .attr('y', 25);
                    var v = b.stopy - b.starty + 2 * i.diagramMarginY,
                      y = u + b.stopx + 2 * i.diagramMarginX;
                    Object(l.configureSvgSize)(s, v, y, i.useMaxWidth),
                      s
                        .append('line')
                        .attr('x1', u)
                        .attr('y1', 4 * i.height)
                        .attr('x2', y - u - 4)
                        .attr('y2', 4 * i.height)
                        .attr('stroke-width', 4)
                        .attr('stroke', 'black')
                        .attr('marker-end', 'url(#arrowhead)');
                    var w = h ? 70 : 0;
                    s.attr(
                      'viewBox',
                      ''
                        .concat(b.startx, ' -25 ')
                        .concat(y, ' ')
                        .concat(v + w)
                    ),
                      s.attr('preserveAspectRatio', 'xMinYMin meet'),
                      s.attr('height', v + w + 25);
                  },
                  f = {
                    data: {
                      startx: void 0,
                      stopx: void 0,
                      starty: void 0,
                      stopy: void 0,
                    },
                    verticalPos: 0,
                    sequenceItems: [],
                    init: function () {
                      (this.sequenceItems = []),
                        (this.data = {
                          startx: void 0,
                          stopx: void 0,
                          starty: void 0,
                          stopy: void 0,
                        }),
                        (this.verticalPos = 0);
                    },
                    updateVal: function (e, t, i, n) {
                      void 0 === e[t] ? (e[t] = i) : (e[t] = n(i, e[t]));
                    },
                    updateBounds: function (e, t, i, n) {
                      var r = Object(a.getConfig)().journey,
                        s = this,
                        o = 0;
                      this.sequenceItems.forEach(function (a) {
                        o++;
                        var l = s.sequenceItems.length - o + 1;
                        s.updateVal(a, 'starty', t - l * r.boxMargin, Math.min),
                          s.updateVal(
                            a,
                            'stopy',
                            n + l * r.boxMargin,
                            Math.max
                          ),
                          s.updateVal(
                            f.data,
                            'startx',
                            e - l * r.boxMargin,
                            Math.min
                          ),
                          s.updateVal(
                            f.data,
                            'stopx',
                            i + l * r.boxMargin,
                            Math.max
                          ),
                          s.updateVal(
                            a,
                            'startx',
                            e - l * r.boxMargin,
                            Math.min
                          ),
                          s.updateVal(
                            a,
                            'stopx',
                            i + l * r.boxMargin,
                            Math.max
                          ),
                          s.updateVal(
                            f.data,
                            'starty',
                            t - l * r.boxMargin,
                            Math.min
                          ),
                          s.updateVal(
                            f.data,
                            'stopy',
                            n + l * r.boxMargin,
                            Math.max
                          );
                      });
                    },
                    insert: function (e, t, i, n) {
                      var r = Math.min(e, i),
                        s = Math.max(e, i),
                        o = Math.min(t, n),
                        a = Math.max(t, n);
                      this.updateVal(f.data, 'startx', r, Math.min),
                        this.updateVal(f.data, 'starty', o, Math.min),
                        this.updateVal(f.data, 'stopx', s, Math.max),
                        this.updateVal(f.data, 'stopy', a, Math.max),
                        this.updateBounds(r, o, s, a);
                    },
                    bumpVerticalPos: function (e) {
                      (this.verticalPos = this.verticalPos + e),
                        (this.data.stopy = this.verticalPos);
                    },
                    getVerticalPos: function () {
                      return this.verticalPos;
                    },
                    getBounds: function () {
                      return this.data;
                    },
                  },
                  p = h.sectionFills,
                  m = h.sectionColours,
                  _ = function (e, t, i) {
                    for (
                      var n = Object(a.getConfig)().journey,
                        r = '',
                        s = i + (2 * n.height + n.diagramMarginY),
                        l = 0,
                        c = '#CCC',
                        h = 'black',
                        g = 0,
                        _ = 0;
                      _ < t.length;
                      _++
                    ) {
                      var b = t[_];
                      if (r !== b.section) {
                        (c = p[l % p.length]),
                          (g = l % p.length),
                          (h = m[l % m.length]);
                        var v = {
                          x: _ * n.taskMargin + _ * n.width + u,
                          y: 50,
                          text: b.section,
                          fill: c,
                          num: g,
                          colour: h,
                        };
                        o.default.drawSection(e, v, n), (r = b.section), l++;
                      }
                      var y = b.people.reduce(function (e, t) {
                        return d[t] && (e[t] = d[t]), e;
                      }, {});
                      (b.x = _ * n.taskMargin + _ * n.width + u),
                        (b.y = s),
                        (b.width = n.diagramMarginX),
                        (b.height = n.diagramMarginY),
                        (b.colour = h),
                        (b.fill = c),
                        (b.num = g),
                        (b.actors = y),
                        o.default.drawTask(e, b, n),
                        f.insert(b.x, b.y, b.x + b.width + n.taskMargin, 450);
                    }
                  };
                t.default = { setConf: c, draw: g };
              },
              './src/diagrams/user-journey/parser/journey.jison': function (
                e,
                t,
                i
              ) {
                (function (e, n) {
                  var r = (function () {
                    var e = function (e, t, i, n) {
                        for (i = i || {}, n = e.length; n--; i[e[n]] = t);
                        return i;
                      },
                      t = [1, 2],
                      i = [1, 5],
                      n = [6, 9, 11, 17, 18, 19, 21],
                      r = [1, 15],
                      s = [1, 16],
                      o = [1, 17],
                      a = [1, 21],
                      l = [4, 6, 9, 11, 17, 18, 19, 21],
                      c = {
                        trace: function () {},
                        yy: {},
                        symbols_: {
                          error: 2,
                          start: 3,
                          journey: 4,
                          document: 5,
                          EOF: 6,
                          directive: 7,
                          line: 8,
                          SPACE: 9,
                          statement: 10,
                          NEWLINE: 11,
                          openDirective: 12,
                          typeDirective: 13,
                          closeDirective: 14,
                          ':': 15,
                          argDirective: 16,
                          title: 17,
                          section: 18,
                          taskName: 19,
                          taskData: 20,
                          open_directive: 21,
                          type_directive: 22,
                          arg_directive: 23,
                          close_directive: 24,
                          $accept: 0,
                          $end: 1,
                        },
                        terminals_: {
                          2: 'error',
                          4: 'journey',
                          6: 'EOF',
                          9: 'SPACE',
                          11: 'NEWLINE',
                          15: ':',
                          17: 'title',
                          18: 'section',
                          19: 'taskName',
                          20: 'taskData',
                          21: 'open_directive',
                          22: 'type_directive',
                          23: 'arg_directive',
                          24: 'close_directive',
                        },
                        productions_: [
                          0,
                          [3, 3],
                          [3, 2],
                          [5, 0],
                          [5, 2],
                          [8, 2],
                          [8, 1],
                          [8, 1],
                          [8, 1],
                          [7, 4],
                          [7, 6],
                          [10, 1],
                          [10, 1],
                          [10, 2],
                          [10, 1],
                          [12, 1],
                          [13, 1],
                          [16, 1],
                          [14, 1],
                        ],
                        performAction: function (e, t, i, n, r, s, o) {
                          var a = s.length - 1;
                          switch (r) {
                            case 1:
                              return s[a - 1];
                            case 3:
                              this.$ = [];
                              break;
                            case 4:
                              s[a - 1].push(s[a]), (this.$ = s[a - 1]);
                              break;
                            case 5:
                            case 6:
                              this.$ = s[a];
                              break;
                            case 7:
                            case 8:
                              this.$ = [];
                              break;
                            case 11:
                              n.setTitle(s[a].substr(6)),
                                (this.$ = s[a].substr(6));
                              break;
                            case 12:
                              n.addSection(s[a].substr(8)),
                                (this.$ = s[a].substr(8));
                              break;
                            case 13:
                              n.addTask(s[a - 1], s[a]), (this.$ = 'task');
                              break;
                            case 15:
                              n.parseDirective('%%{', 'open_directive');
                              break;
                            case 16:
                              n.parseDirective(s[a], 'type_directive');
                              break;
                            case 17:
                              (s[a] = s[a].trim().replace(/'/g, '"')),
                                n.parseDirective(s[a], 'arg_directive');
                              break;
                            case 18:
                              n.parseDirective(
                                '}%%',
                                'close_directive',
                                'journey'
                              );
                          }
                        },
                        table: [
                          { 3: 1, 4: t, 7: 3, 12: 4, 21: i },
                          { 1: [3] },
                          e(n, [2, 3], { 5: 6 }),
                          { 3: 7, 4: t, 7: 3, 12: 4, 21: i },
                          { 13: 8, 22: [1, 9] },
                          { 22: [2, 15] },
                          {
                            6: [1, 10],
                            7: 18,
                            8: 11,
                            9: [1, 12],
                            10: 13,
                            11: [1, 14],
                            12: 4,
                            17: r,
                            18: s,
                            19: o,
                            21: i,
                          },
                          { 1: [2, 2] },
                          { 14: 19, 15: [1, 20], 24: a },
                          e([15, 24], [2, 16]),
                          e(n, [2, 8], { 1: [2, 1] }),
                          e(n, [2, 4]),
                          { 7: 18, 10: 22, 12: 4, 17: r, 18: s, 19: o, 21: i },
                          e(n, [2, 6]),
                          e(n, [2, 7]),
                          e(n, [2, 11]),
                          e(n, [2, 12]),
                          { 20: [1, 23] },
                          e(n, [2, 14]),
                          { 11: [1, 24] },
                          { 16: 25, 23: [1, 26] },
                          { 11: [2, 18] },
                          e(n, [2, 5]),
                          e(n, [2, 13]),
                          e(l, [2, 9]),
                          { 14: 27, 24: a },
                          { 24: [2, 17] },
                          { 11: [1, 28] },
                          e(l, [2, 10]),
                        ],
                        defaultActions: {
                          5: [2, 15],
                          7: [2, 2],
                          21: [2, 18],
                          26: [2, 17],
                        },
                        parseError: function (e, t) {
                          if (!t.recoverable) {
                            var i = new Error(e);
                            throw ((i.hash = t), i);
                          }
                          this.trace(e);
                        },
                        parse: function (e) {
                          var t = this,
                            i = [0],
                            n = [],
                            r = [null],
                            s = [],
                            o = this.table,
                            a = '',
                            l = 0,
                            c = 0,
                            d = 0,
                            h = 2,
                            u = 1,
                            g = s.slice.call(arguments, 1),
                            f = Object.create(this.lexer),
                            p = { yy: {} };
                          for (var m in this.yy)
                            Object.prototype.hasOwnProperty.call(this.yy, m) &&
                              (p.yy[m] = this.yy[m]);
                          f.setInput(e, p.yy),
                            (p.yy.lexer = f),
                            (p.yy.parser = this),
                            void 0 === f.yylloc && (f.yylloc = {});
                          var _ = f.yylloc;
                          s.push(_);
                          var b = f.options && f.options.ranges;
                          function v() {
                            var e;
                            return (
                              'number' !=
                                typeof (e = n.pop() || f.lex() || u) &&
                                (e instanceof Array && (e = (n = e).pop()),
                                (e = t.symbols_[e] || e)),
                              e
                            );
                          }
                          'function' == typeof p.yy.parseError
                            ? (this.parseError = p.yy.parseError)
                            : (this.parseError = Object.getPrototypeOf(
                                this
                              ).parseError);
                          for (var y, w, C, S, k, x, L, M, D, N = {}; ; ) {
                            if (
                              ((C = i[i.length - 1]),
                              this.defaultActions[C]
                                ? (S = this.defaultActions[C])
                                : (null == y && (y = v()),
                                  (S = o[C] && o[C][y])),
                              void 0 === S || !S.length || !S[0])
                            ) {
                              var E = '';
                              for (x in ((D = []), o[C]))
                                this.terminals_[x] &&
                                  x > h &&
                                  D.push("'" + this.terminals_[x] + "'");
                              (E = f.showPosition
                                ? 'Parse error on line ' +
                                  (l + 1) +
                                  ':\n' +
                                  f.showPosition() +
                                  '\nExpecting ' +
                                  D.join(', ') +
                                  ", got '" +
                                  (this.terminals_[y] || y) +
                                  "'"
                                : 'Parse error on line ' +
                                  (l + 1) +
                                  ': Unexpected ' +
                                  (y == u
                                    ? 'end of input'
                                    : "'" + (this.terminals_[y] || y) + "'")),
                                this.parseError(E, {
                                  text: f.match,
                                  token: this.terminals_[y] || y,
                                  line: f.yylineno,
                                  loc: _,
                                  expected: D,
                                });
                            }
                            if (S[0] instanceof Array && S.length > 1)
                              throw new Error(
                                'Parse Error: multiple actions possible at state: ' +
                                  C +
                                  ', token: ' +
                                  y
                              );
                            switch (S[0]) {
                              case 1:
                                i.push(y),
                                  r.push(f.yytext),
                                  s.push(f.yylloc),
                                  i.push(S[1]),
                                  (y = null),
                                  w
                                    ? ((y = w), (w = null))
                                    : ((c = f.yyleng),
                                      (a = f.yytext),
                                      (l = f.yylineno),
                                      (_ = f.yylloc),
                                      d > 0 && d--);
                                break;
                              case 2:
                                if (
                                  ((L = this.productions_[S[1]][1]),
                                  (N.$ = r[r.length - L]),
                                  (N._$ = {
                                    first_line:
                                      s[s.length - (L || 1)].first_line,
                                    last_line: s[s.length - 1].last_line,
                                    first_column:
                                      s[s.length - (L || 1)].first_column,
                                    last_column: s[s.length - 1].last_column,
                                  }),
                                  b &&
                                    (N._$.range = [
                                      s[s.length - (L || 1)].range[0],
                                      s[s.length - 1].range[1],
                                    ]),
                                  void 0 !==
                                    (k = this.performAction.apply(
                                      N,
                                      [a, c, l, p.yy, S[1], r, s].concat(g)
                                    )))
                                )
                                  return k;
                                L &&
                                  ((i = i.slice(0, -1 * L * 2)),
                                  (r = r.slice(0, -1 * L)),
                                  (s = s.slice(0, -1 * L))),
                                  i.push(this.productions_[S[1]][0]),
                                  r.push(N.$),
                                  s.push(N._$),
                                  (M = o[i[i.length - 2]][i[i.length - 1]]),
                                  i.push(M);
                                break;
                              case 3:
                                return !0;
                            }
                          }
                          return !0;
                        },
                      },
                      d = {
                        EOF: 1,
                        parseError: function (e, t) {
                          if (!this.yy.parser) throw new Error(e);
                          this.yy.parser.parseError(e, t);
                        },
                        setInput: function (e, t) {
                          return (
                            (this.yy = t || this.yy || {}),
                            (this._input = e),
                            (this._more = this._backtrack = this.done = !1),
                            (this.yylineno = this.yyleng = 0),
                            (this.yytext = this.matched = this.match = ''),
                            (this.conditionStack = ['INITIAL']),
                            (this.yylloc = {
                              first_line: 1,
                              first_column: 0,
                              last_line: 1,
                              last_column: 0,
                            }),
                            this.options.ranges && (this.yylloc.range = [0, 0]),
                            (this.offset = 0),
                            this
                          );
                        },
                        input: function () {
                          var e = this._input[0];
                          return (
                            (this.yytext += e),
                            this.yyleng++,
                            this.offset++,
                            (this.match += e),
                            (this.matched += e),
                            e.match(/(?:\r\n?|\n).*/g)
                              ? (this.yylineno++, this.yylloc.last_line++)
                              : this.yylloc.last_column++,
                            this.options.ranges && this.yylloc.range[1]++,
                            (this._input = this._input.slice(1)),
                            e
                          );
                        },
                        unput: function (e) {
                          var t = e.length,
                            i = e.split(/(?:\r\n?|\n)/g);
                          (this._input = e + this._input),
                            (this.yytext = this.yytext.substr(
                              0,
                              this.yytext.length - t
                            )),
                            (this.offset -= t);
                          var n = this.match.split(/(?:\r\n?|\n)/g);
                          (this.match = this.match.substr(
                            0,
                            this.match.length - 1
                          )),
                            (this.matched = this.matched.substr(
                              0,
                              this.matched.length - 1
                            )),
                            i.length - 1 && (this.yylineno -= i.length - 1);
                          var r = this.yylloc.range;
                          return (
                            (this.yylloc = {
                              first_line: this.yylloc.first_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.first_column,
                              last_column: i
                                ? (i.length === n.length
                                    ? this.yylloc.first_column
                                    : 0) +
                                  n[n.length - i.length].length -
                                  i[0].length
                                : this.yylloc.first_column - t,
                            }),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                r[0],
                                r[0] + this.yyleng - t,
                              ]),
                            (this.yyleng = this.yytext.length),
                            this
                          );
                        },
                        more: function () {
                          return (this._more = !0), this;
                        },
                        reject: function () {
                          return this.options.backtrack_lexer
                            ? ((this._backtrack = !0), this)
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        less: function (e) {
                          this.unput(this.match.slice(e));
                        },
                        pastInput: function () {
                          var e = this.matched.substr(
                            0,
                            this.matched.length - this.match.length
                          );
                          return (
                            (e.length > 20 ? '...' : '') +
                            e.substr(-20).replace(/\n/g, '')
                          );
                        },
                        upcomingInput: function () {
                          var e = this.match;
                          return (
                            e.length < 20 &&
                              (e += this._input.substr(0, 20 - e.length)),
                            (
                              e.substr(0, 20) + (e.length > 20 ? '...' : '')
                            ).replace(/\n/g, '')
                          );
                        },
                        showPosition: function () {
                          var e = this.pastInput(),
                            t = new Array(e.length + 1).join('-');
                          return e + this.upcomingInput() + '\n' + t + '^';
                        },
                        test_match: function (e, t) {
                          var i, n, r;
                          if (
                            (this.options.backtrack_lexer &&
                              ((r = {
                                yylineno: this.yylineno,
                                yylloc: {
                                  first_line: this.yylloc.first_line,
                                  last_line: this.last_line,
                                  first_column: this.yylloc.first_column,
                                  last_column: this.yylloc.last_column,
                                },
                                yytext: this.yytext,
                                match: this.match,
                                matches: this.matches,
                                matched: this.matched,
                                yyleng: this.yyleng,
                                offset: this.offset,
                                _more: this._more,
                                _input: this._input,
                                yy: this.yy,
                                conditionStack: this.conditionStack.slice(0),
                                done: this.done,
                              }),
                              this.options.ranges &&
                                (r.yylloc.range = this.yylloc.range.slice(0))),
                            (n = e[0].match(/(?:\r\n?|\n).*/g)) &&
                              (this.yylineno += n.length),
                            (this.yylloc = {
                              first_line: this.yylloc.last_line,
                              last_line: this.yylineno + 1,
                              first_column: this.yylloc.last_column,
                              last_column: n
                                ? n[n.length - 1].length -
                                  n[n.length - 1].match(/\r?\n?/)[0].length
                                : this.yylloc.last_column + e[0].length,
                            }),
                            (this.yytext += e[0]),
                            (this.match += e[0]),
                            (this.matches = e),
                            (this.yyleng = this.yytext.length),
                            this.options.ranges &&
                              (this.yylloc.range = [
                                this.offset,
                                (this.offset += this.yyleng),
                              ]),
                            (this._more = !1),
                            (this._backtrack = !1),
                            (this._input = this._input.slice(e[0].length)),
                            (this.matched += e[0]),
                            (i = this.performAction.call(
                              this,
                              this.yy,
                              this,
                              t,
                              this.conditionStack[
                                this.conditionStack.length - 1
                              ]
                            )),
                            this.done && this._input && (this.done = !1),
                            i)
                          )
                            return i;
                          if (this._backtrack) {
                            for (var s in r) this[s] = r[s];
                            return !1;
                          }
                          return !1;
                        },
                        next: function () {
                          if (this.done) return this.EOF;
                          var e, t, i, n;
                          this._input || (this.done = !0),
                            this._more ||
                              ((this.yytext = ''), (this.match = ''));
                          for (
                            var r = this._currentRules(), s = 0;
                            s < r.length;
                            s++
                          )
                            if (
                              (i = this._input.match(this.rules[r[s]])) &&
                              (!t || i[0].length > t[0].length)
                            ) {
                              if (
                                ((t = i), (n = s), this.options.backtrack_lexer)
                              ) {
                                if (!1 !== (e = this.test_match(i, r[s])))
                                  return e;
                                if (this._backtrack) {
                                  t = !1;
                                  continue;
                                }
                                return !1;
                              }
                              if (!this.options.flex) break;
                            }
                          return t
                            ? !1 !== (e = this.test_match(t, r[n])) && e
                            : '' === this._input
                            ? this.EOF
                            : this.parseError(
                                'Lexical error on line ' +
                                  (this.yylineno + 1) +
                                  '. Unrecognized text.\n' +
                                  this.showPosition(),
                                { text: '', token: null, line: this.yylineno }
                              );
                        },
                        lex: function () {
                          return this.next() || this.lex();
                        },
                        begin: function (e) {
                          this.conditionStack.push(e);
                        },
                        popState: function () {
                          return this.conditionStack.length - 1 > 0
                            ? this.conditionStack.pop()
                            : this.conditionStack[0];
                        },
                        _currentRules: function () {
                          return this.conditionStack.length &&
                            this.conditionStack[this.conditionStack.length - 1]
                            ? this.conditions[
                                this.conditionStack[
                                  this.conditionStack.length - 1
                                ]
                              ].rules
                            : this.conditions.INITIAL.rules;
                        },
                        topState: function (e) {
                          return (e =
                            this.conditionStack.length -
                            1 -
                            Math.abs(e || 0)) >= 0
                            ? this.conditionStack[e]
                            : 'INITIAL';
                        },
                        pushState: function (e) {
                          this.begin(e);
                        },
                        stateStackSize: function () {
                          return this.conditionStack.length;
                        },
                        options: { 'case-insensitive': !0 },
                        performAction: function (e, t, i, n) {
                          switch (i) {
                            case 0:
                              return this.begin('open_directive'), 21;
                            case 1:
                              return this.begin('type_directive'), 22;
                            case 2:
                              return (
                                this.popState(), this.begin('arg_directive'), 15
                              );
                            case 3:
                              return this.popState(), this.popState(), 24;
                            case 4:
                              return 23;
                            case 5:
                            case 6:
                              break;
                            case 7:
                              return 11;
                            case 8:
                            case 9:
                              break;
                            case 10:
                              return 4;
                            case 11:
                              return 17;
                            case 12:
                              return 18;
                            case 13:
                              return 19;
                            case 14:
                              return 20;
                            case 15:
                              return 15;
                            case 16:
                              return 6;
                            case 17:
                              return 'INVALID';
                          }
                        },
                        rules: [
                          /^(?:%%\{)/i,
                          /^(?:((?:(?!\}%%)[^:.])*))/i,
                          /^(?::)/i,
                          /^(?:\}%%)/i,
                          /^(?:((?:(?!\}%%).|\n)*))/i,
                          /^(?:%(?!\{)[^\n]*)/i,
                          /^(?:[^\}]%%[^\n]*)/i,
                          /^(?:[\n]+)/i,
                          /^(?:\s+)/i,
                          /^(?:#[^\n]*)/i,
                          /^(?:journey\b)/i,
                          /^(?:title\s[^#\n;]+)/i,
                          /^(?:section\s[^#:\n;]+)/i,
                          /^(?:[^#:\n;]+)/i,
                          /^(?::[^#\n;]+)/i,
                          /^(?::)/i,
                          /^(?:$)/i,
                          /^(?:.)/i,
                        ],
                        conditions: {
                          open_directive: { rules: [1], inclusive: !1 },
                          type_directive: { rules: [2, 3], inclusive: !1 },
                          arg_directive: { rules: [3, 4], inclusive: !1 },
                          INITIAL: {
                            rules: [
                              0,
                              5,
                              6,
                              7,
                              8,
                              9,
                              10,
                              11,
                              12,
                              13,
                              14,
                              15,
                              16,
                              17,
                            ],
                            inclusive: !0,
                          },
                        },
                      };
                    function h() {
                      this.yy = {};
                    }
                    return (
                      (c.lexer = d), (h.prototype = c), (c.Parser = h), new h()
                    );
                  })();
                  (t.parser = r),
                    (t.Parser = r.Parser),
                    (t.parse = function () {
                      return r.parse.apply(r, arguments);
                    }),
                    (t.main = function (n) {
                      n[1] ||
                        (console.log('Usage: ' + n[0] + ' FILE'), e.exit(1));
                      var r = i(
                        './node_modules/node-libs-browser/mock/empty.js'
                      ).readFileSync(
                        i('./node_modules/path-browserify/index.js').normalize(
                          n[1]
                        ),
                        'utf8'
                      );
                      return t.parser.parse(r);
                    }),
                    i.c[i.s] === n && t.main(e.argv.slice(1));
                }.call(
                  this,
                  i('./node_modules/process/browser.js'),
                  i('./node_modules/webpack/buildin/module.js')(e)
                ));
              },
              './src/diagrams/user-journey/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  (t.default = function (e) {
                    return ".label {\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n    color: "
                      .concat(
                        e.textColor,
                        ';\n  }\n  .mouth {\n    stroke: #666;\n  }\n\n  line {\n    stroke: '
                      )
                      .concat(e.textColor, '\n  }\n\n  .legend {\n    fill: ')
                      .concat(
                        e.textColor,
                        ';\n  }\n\n  .label text {\n    fill: #333;\n  }\n  .label {\n    color: '
                      )
                      .concat(
                        e.textColor,
                        '\n  }\n\n  .face {\n    fill: #FFF8DC;\n    stroke: #999;\n  }\n\n  .node rect,\n  .node circle,\n  .node ellipse,\n  .node polygon,\n  .node path {\n    fill: '
                      )
                      .concat(e.mainBkg, ';\n    stroke: ')
                      .concat(
                        e.nodeBorder,
                        ';\n    stroke-width: 1px;\n  }\n\n  .node .label {\n    text-align: center;\n  }\n  .node.clickable {\n    cursor: pointer;\n  }\n\n  .arrowheadPath {\n    fill: '
                      )
                      .concat(
                        e.arrowheadColor,
                        ';\n  }\n\n  .edgePath .path {\n    stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n    stroke-width: 1.5px;\n  }\n\n  .flowchart-link {\n    stroke: '
                      )
                      .concat(
                        e.lineColor,
                        ';\n    fill: none;\n  }\n\n  .edgeLabel {\n    background-color: '
                      )
                      .concat(
                        e.edgeLabelBackground,
                        ';\n    rect {\n      opacity: 0.5;\n    }\n    text-align: center;\n  }\n\n  .cluster rect {\n  }\n\n  .cluster text {\n    fill: '
                      )
                      .concat(
                        e.titleColor,
                        ";\n  }\n\n  div.mermaidTooltip {\n    position: absolute;\n    text-align: center;\n    max-width: 200px;\n    padding: 2px;\n    font-family: 'trebuchet ms', verdana, arial, sans-serif;\n    font-family: var(--mermaid-font-family);\n    font-size: 12px;\n    background: "
                      )
                      .concat(e.tertiaryColor, ';\n    border: 1px solid ')
                      .concat(
                        e.border2,
                        ';\n    border-radius: 2px;\n    pointer-events: none;\n    z-index: 100;\n  }\n\n  .task-type-0, .section-type-0  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType0) : '',
                        ';\n  }\n  .task-type-1, .section-type-1  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType1) : '',
                        ';\n  }\n  .task-type-2, .section-type-2  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType2) : '',
                        ';\n  }\n  .task-type-3, .section-type-3  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType3) : '',
                        ';\n  }\n  .task-type-4, .section-type-4  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType4) : '',
                        ';\n  }\n  .task-type-5, .section-type-5  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType5) : '',
                        ';\n  }\n  .task-type-6, .section-type-6  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType6) : '',
                        ';\n  }\n  .task-type-7, .section-type-7  {\n    '
                      )
                      .concat(
                        e.fillType0 ? 'fill: '.concat(e.fillType7) : '',
                        ';\n  }\n'
                      );
                  });
              },
              './src/diagrams/user-journey/svgDraw.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'drawRect', function () {
                    return r;
                  }),
                  i.d(t, 'drawFace', function () {
                    return s;
                  }),
                  i.d(t, 'drawCircle', function () {
                    return o;
                  }),
                  i.d(t, 'drawText', function () {
                    return a;
                  }),
                  i.d(t, 'drawLabel', function () {
                    return l;
                  }),
                  i.d(t, 'drawSection', function () {
                    return c;
                  }),
                  i.d(t, 'drawTask', function () {
                    return h;
                  }),
                  i.d(t, 'drawBackgroundRect', function () {
                    return u;
                  }),
                  i.d(t, 'getTextObj', function () {
                    return g;
                  }),
                  i.d(t, 'getNoteRect', function () {
                    return f;
                  });
                var n = i('d3'),
                  r = function (e, t) {
                    var i = e.append('rect');
                    return (
                      i.attr('x', t.x),
                      i.attr('y', t.y),
                      i.attr('fill', t.fill),
                      i.attr('stroke', t.stroke),
                      i.attr('width', t.width),
                      i.attr('height', t.height),
                      i.attr('rx', t.rx),
                      i.attr('ry', t.ry),
                      void 0 !== t.class && i.attr('class', t.class),
                      i
                    );
                  },
                  s = function (e, t) {
                    var i = e
                        .append('circle')
                        .attr('cx', t.cx)
                        .attr('cy', t.cy)
                        .attr('class', 'face')
                        .attr('r', 15)
                        .attr('stroke-width', 2)
                        .attr('overflow', 'visible'),
                      r = e.append('g');
                    return (
                      r
                        .append('circle')
                        .attr('cx', t.cx - 5)
                        .attr('cy', t.cy - 5)
                        .attr('r', 1.5)
                        .attr('stroke-width', 2)
                        .attr('fill', '#666')
                        .attr('stroke', '#666'),
                      r
                        .append('circle')
                        .attr('cx', t.cx + 5)
                        .attr('cy', t.cy - 5)
                        .attr('r', 1.5)
                        .attr('stroke-width', 2)
                        .attr('fill', '#666')
                        .attr('stroke', '#666'),
                      t.score > 3
                        ? (function (e) {
                            var i = Object(n.arc)()
                              .startAngle(Math.PI / 2)
                              .endAngle((Math.PI / 2) * 3)
                              .innerRadius(7.5)
                              .outerRadius(15 / 2.2);
                            e.append('path')
                              .attr('class', 'mouth')
                              .attr('d', i)
                              .attr(
                                'transform',
                                'translate(' + t.cx + ',' + (t.cy + 2) + ')'
                              );
                          })(r)
                        : t.score < 3
                        ? (function (e) {
                            var i = Object(n.arc)()
                              .startAngle((3 * Math.PI) / 2)
                              .endAngle((Math.PI / 2) * 5)
                              .innerRadius(7.5)
                              .outerRadius(15 / 2.2);
                            e.append('path')
                              .attr('class', 'mouth')
                              .attr('d', i)
                              .attr(
                                'transform',
                                'translate(' + t.cx + ',' + (t.cy + 7) + ')'
                              );
                          })(r)
                        : (function (e) {
                            e.append('line')
                              .attr('class', 'mouth')
                              .attr('stroke', 2)
                              .attr('x1', t.cx - 5)
                              .attr('y1', t.cy + 7)
                              .attr('x2', t.cx + 5)
                              .attr('y2', t.cy + 7)
                              .attr('class', 'mouth')
                              .attr('stroke-width', '1px')
                              .attr('stroke', '#666');
                          })(r),
                      i
                    );
                  },
                  o = function (e, t) {
                    var i = e.append('circle');
                    return (
                      i.attr('cx', t.cx),
                      i.attr('cy', t.cy),
                      i.attr('fill', t.fill),
                      i.attr('stroke', t.stroke),
                      i.attr('r', t.r),
                      void 0 !== i.class && i.attr('class', i.class),
                      void 0 !== t.title && i.append('title').text(t.title),
                      i
                    );
                  },
                  a = function (e, t) {
                    var i = t.text.replace(/<br\s*\/?>/gi, ' '),
                      n = e.append('text');
                    n.attr('x', t.x),
                      n.attr('y', t.y),
                      n.attr('class', 'legend'),
                      n.style('text-anchor', t.anchor),
                      void 0 !== t.class && n.attr('class', t.class);
                    var r = n.append('tspan');
                    return r.attr('x', t.x + 2 * t.textMargin), r.text(i), n;
                  },
                  l = function (e, t) {
                    var i,
                      n,
                      r = e.append('polygon');
                    r.attr(
                      'points',
                      (i = t.x) +
                        ',' +
                        (n = t.y) +
                        ' ' +
                        (i + 50) +
                        ',' +
                        n +
                        ' ' +
                        (i + 50) +
                        ',' +
                        (n + 20 - 7) +
                        ' ' +
                        (i + 50 - 8.4) +
                        ',' +
                        (n + 20) +
                        ' ' +
                        i +
                        ',' +
                        (n + 20)
                    ),
                      r.attr('class', 'labelBox'),
                      (t.y = t.y + t.labelMargin),
                      (t.x = t.x + 0.5 * t.labelMargin),
                      a(e, t);
                  },
                  c = function (e, t, i) {
                    var n = e.append('g'),
                      s = f();
                    (s.x = t.x),
                      (s.y = t.y),
                      (s.fill = t.fill),
                      (s.width = i.width),
                      (s.height = i.height),
                      (s.class = 'journey-section section-type-' + t.num),
                      (s.rx = 3),
                      (s.ry = 3),
                      r(n, s),
                      p(i)(
                        t.text,
                        n,
                        s.x,
                        s.y,
                        s.width,
                        s.height,
                        { class: 'journey-section section-type-' + t.num },
                        i,
                        t.colour
                      );
                  },
                  d = -1,
                  h = function (e, t, i) {
                    var n = t.x + i.width / 2,
                      a = e.append('g');
                    d++,
                      a
                        .append('line')
                        .attr('id', 'task' + d)
                        .attr('x1', n)
                        .attr('y1', t.y)
                        .attr('x2', n)
                        .attr('y2', 450)
                        .attr('class', 'task-line')
                        .attr('stroke-width', '1px')
                        .attr('stroke-dasharray', '4 2')
                        .attr('stroke', '#666'),
                      s(a, {
                        cx: n,
                        cy: 300 + 30 * (5 - t.score),
                        score: t.score,
                      });
                    var l = f();
                    (l.x = t.x),
                      (l.y = t.y),
                      (l.fill = t.fill),
                      (l.width = i.width),
                      (l.height = i.height),
                      (l.class = 'task task-type-' + t.num),
                      (l.rx = 3),
                      (l.ry = 3),
                      r(a, l);
                    var c = t.x + 14;
                    t.people.forEach(function (e) {
                      var i = t.actors[e],
                        n = {
                          cx: c,
                          cy: t.y,
                          r: 7,
                          fill: i,
                          stroke: '#000',
                          title: e,
                        };
                      o(a, n), (c += 10);
                    }),
                      p(i)(
                        t.task,
                        a,
                        l.x,
                        l.y,
                        l.width,
                        l.height,
                        { class: 'task' },
                        i,
                        t.colour
                      );
                  },
                  u = function (e, t) {
                    r(e, {
                      x: t.startx,
                      y: t.starty,
                      width: t.stopx - t.startx,
                      height: t.stopy - t.starty,
                      fill: t.fill,
                      class: 'rect',
                    }).lower();
                  },
                  g = function () {
                    return {
                      x: 0,
                      y: 0,
                      fill: void 0,
                      'text-anchor': 'start',
                      width: 100,
                      height: 100,
                      textMargin: 0,
                      rx: 0,
                      ry: 0,
                    };
                  },
                  f = function () {
                    return {
                      x: 0,
                      y: 0,
                      width: 100,
                      anchor: 'start',
                      height: 100,
                      rx: 0,
                      ry: 0,
                    };
                  },
                  p = (function () {
                    function e(e, t, i, r, s, o, a, l) {
                      n(
                        t
                          .append('text')
                          .attr('x', i + s / 2)
                          .attr('y', r + o / 2 + 5)
                          .style('font-color', l)
                          .style('text-anchor', 'middle')
                          .text(e),
                        a
                      );
                    }
                    function t(e, t, i, r, s, o, a, l, c) {
                      for (
                        var d = l.taskFontSize,
                          h = l.taskFontFamily,
                          u = e.split(/<br\s*\/?>/gi),
                          g = 0;
                        g < u.length;
                        g++
                      ) {
                        var f = g * d - (d * (u.length - 1)) / 2,
                          p = t
                            .append('text')
                            .attr('x', i + s / 2)
                            .attr('y', r)
                            .attr('fill', c)
                            .style('text-anchor', 'middle')
                            .style('font-size', d)
                            .style('font-family', h);
                        p
                          .append('tspan')
                          .attr('x', i + s / 2)
                          .attr('dy', f)
                          .text(u[g]),
                          p
                            .attr('y', r + o / 2)
                            .attr('dominant-baseline', 'central')
                            .attr('alignment-baseline', 'central'),
                          n(p, a);
                      }
                    }
                    function i(e, i, r, s, o, a, l, c) {
                      var d = i.append('switch'),
                        h = d
                          .append('foreignObject')
                          .attr('x', r)
                          .attr('y', s)
                          .attr('width', o)
                          .attr('height', a)
                          .attr('position', 'fixed')
                          .append('div')
                          .style('display', 'table')
                          .style('height', '100%')
                          .style('width', '100%');
                      h
                        .append('div')
                        .attr('class', 'label')
                        .style('display', 'table-cell')
                        .style('text-align', 'center')
                        .style('vertical-align', 'middle')
                        .text(e),
                        t(e, d, r, s, o, a, l, c),
                        n(h, l);
                    }
                    function n(e, t) {
                      for (var i in t) i in t && e.attr(i, t[i]);
                    }
                    return function (n) {
                      return 'fo' === n.textPlacement
                        ? i
                        : 'old' === n.textPlacement
                        ? e
                        : t;
                    };
                  })();
                t.default = {
                  drawRect: r,
                  drawCircle: o,
                  drawSection: c,
                  drawText: a,
                  drawLabel: l,
                  drawTask: h,
                  drawBackgroundRect: u,
                  getTextObj: g,
                  getNoteRect: f,
                  initGraphics: function (e) {
                    e.append('defs')
                      .append('marker')
                      .attr('id', 'arrowhead')
                      .attr('refX', 5)
                      .attr('refY', 2)
                      .attr('markerWidth', 6)
                      .attr('markerHeight', 4)
                      .attr('orient', 'auto')
                      .append('path')
                      .attr('d', 'M 0,0 V 4 L6,2 Z');
                  },
                };
              },
              './src/errorRenderer.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'setConf', function () {
                    return o;
                  }),
                  i.d(t, 'draw', function () {
                    return a;
                  });
                var n = i('d3'),
                  r = i('./src/logger.js'),
                  s = {},
                  o = function (e) {
                    Object.keys(e).forEach(function (t) {
                      s[t] = e[t];
                    });
                  },
                  a = function (e, t) {
                    try {
                      r.log.debug('Renering svg for syntax error\n');
                      var i = Object(n.select)('#' + e),
                        s = i.append('g');
                      s
                        .append('path')
                        .attr('class', 'error-icon')
                        .attr(
                          'd',
                          'm411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z'
                        ),
                        s
                          .append('path')
                          .attr('class', 'error-icon')
                          .attr(
                            'd',
                            'm459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z'
                          ),
                        s
                          .append('path')
                          .attr('class', 'error-icon')
                          .attr(
                            'd',
                            'm340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z'
                          ),
                        s
                          .append('path')
                          .attr('class', 'error-icon')
                          .attr(
                            'd',
                            'm400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z'
                          ),
                        s
                          .append('path')
                          .attr('class', 'error-icon')
                          .attr(
                            'd',
                            'm496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z'
                          ),
                        s
                          .append('path')
                          .attr('class', 'error-icon')
                          .attr(
                            'd',
                            'm436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z'
                          ),
                        s
                          .append('text')
                          .attr('class', 'error-text')
                          .attr('x', 1240)
                          .attr('y', 250)
                          .attr('font-size', '150px')
                          .style('text-anchor', 'middle')
                          .text('Syntax error in graph'),
                        s
                          .append('text')
                          .attr('class', 'error-text')
                          .attr('x', 1050)
                          .attr('y', 400)
                          .attr('font-size', '100px')
                          .style('text-anchor', 'middle')
                          .text('mermaid version ' + t),
                        i.attr('height', 100),
                        i.attr('width', 400),
                        i.attr('viewBox', '768 0 512 512');
                    } catch (e) {
                      r.log.error('Error while rendering info diagram'),
                        r.log.error(e.message);
                    }
                  };
                t.default = { setConf: o, draw: a };
              },
              './src/logger.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'LEVELS', function () {
                    return s;
                  }),
                  i.d(t, 'log', function () {
                    return o;
                  }),
                  i.d(t, 'setLogLevel', function () {
                    return a;
                  });
                var n = i('moment-mini'),
                  r = i.n(n),
                  s = { debug: 1, info: 2, warn: 3, error: 4, fatal: 5 },
                  o = {
                    debug: function () {},
                    info: function () {},
                    warn: function () {},
                    error: function () {},
                    fatal: function () {},
                  },
                  a = function () {
                    var e =
                      arguments.length > 0 && void 0 !== arguments[0]
                        ? arguments[0]
                        : 'fatal';
                    isNaN(e) &&
                      ((e = e.toLowerCase()), void 0 !== s[e] && (e = s[e])),
                      (o.trace = function () {}),
                      (o.debug = function () {}),
                      (o.info = function () {}),
                      (o.warn = function () {}),
                      (o.error = function () {}),
                      (o.fatal = function () {}),
                      e <= s.fatal &&
                        (o.fatal = console.error
                          ? console.error.bind(
                              console,
                              l('FATAL'),
                              'color: orange'
                            )
                          : console.log.bind(console, '[35m', l('FATAL'))),
                      e <= s.error &&
                        (o.error = console.error
                          ? console.error.bind(
                              console,
                              l('ERROR'),
                              'color: orange'
                            )
                          : console.log.bind(console, '[31m', l('ERROR'))),
                      e <= s.warn &&
                        (o.warn = console.warn
                          ? console.warn.bind(
                              console,
                              l('WARN'),
                              'color: orange'
                            )
                          : console.log.bind(console, '[33m', l('WARN'))),
                      e <= s.info &&
                        (o.info = console.info
                          ? console.info.bind(
                              console,
                              l('INFO'),
                              'color: lightblue'
                            )
                          : console.log.bind(console, '[34m', l('INFO'))),
                      e <= s.debug &&
                        (o.debug = console.debug
                          ? console.debug.bind(
                              console,
                              l('DEBUG'),
                              'color: lightgreen'
                            )
                          : console.log.bind(console, '[32m', l('DEBUG')));
                  },
                  l = function (e) {
                    var t = r()().format('ss.SSS');
                    return '%c'.concat(t, ' : ').concat(e, ' : ');
                  };
              },
              './src/mermaid.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = i('entity-decode/browser'),
                  r = i.n(n),
                  s = i('./src/logger.js'),
                  o = i('./src/mermaidAPI.js'),
                  a = i('./src/utils.js'),
                  l = function () {
                    c.startOnLoad
                      ? o.default.getConfig().startOnLoad && c.init()
                      : void 0 === c.startOnLoad &&
                        (s.log.debug('In start, no config'),
                        o.default.getConfig().startOnLoad && c.init());
                  };
                'undefined' != typeof document &&
                  window.addEventListener(
                    'load',
                    function () {
                      l();
                    },
                    !1
                  );
                var c = {
                  startOnLoad: !0,
                  htmlLabels: !0,
                  mermaidAPI: o.default,
                  parse: o.default.parse,
                  render: o.default.render,
                  init: function () {
                    var e,
                      t,
                      i = this,
                      n = o.default.getConfig();
                    arguments.length >= 2
                      ? (void 0 !== arguments[0] &&
                          (c.sequenceConfig = arguments[0]),
                        (e = arguments[1]))
                      : (e = arguments[0]),
                      'function' == typeof arguments[arguments.length - 1]
                        ? ((t = arguments[arguments.length - 1]),
                          s.log.debug('Callback function found'))
                        : void 0 !== n.mermaid &&
                          ('function' == typeof n.mermaid.callback
                            ? ((t = n.mermaid.callback),
                              s.log.debug('Callback function found'))
                            : s.log.debug('No Callback function found')),
                      (e =
                        void 0 === e
                          ? document.querySelectorAll('.mermaid')
                          : 'string' == typeof e
                          ? document.querySelectorAll(e)
                          : e instanceof window.Node
                          ? [e]
                          : e),
                      s.log.debug('Start On Load before: ' + c.startOnLoad),
                      void 0 !== c.startOnLoad &&
                        (s.log.debug('Start On Load inner: ' + c.startOnLoad),
                        o.default.updateSiteConfig({
                          startOnLoad: c.startOnLoad,
                        })),
                      void 0 !== c.ganttConfig &&
                        o.default.updateSiteConfig({ gantt: c.ganttConfig });
                    for (
                      var l,
                        d = new a.default.initIdGeneratior(
                          n.deterministicIds,
                          n.deterministicIDSeed
                        ),
                        h = function (n) {
                          var c = e[n];
                          if (c.getAttribute('data-processed'))
                            return 'continue';
                          c.setAttribute('data-processed', !0);
                          var h = 'mermaid-'.concat(d.next());
                          (l = c.innerHTML),
                            (l = r()(l)
                              .trim()
                              .replace(/<br\s*\/?>/gi, '<br/>'));
                          var u = a.default.detectInit(l);
                          u && s.log.debug('Detected early reinit: ', u);
                          try {
                            o.default.render(
                              h,
                              l,
                              function (e, i) {
                                (c.innerHTML = e),
                                  void 0 !== t && t(h),
                                  i && i(c);
                              },
                              c
                            );
                          } catch (e) {
                            s.log.warn('Syntax Error rendering'),
                              s.log.warn(e),
                              i.parseError && i.parseError(e);
                          }
                        },
                        u = 0;
                      u < e.length;
                      u++
                    )
                      h(u);
                  },
                  initialize: function (e) {
                    void 0 !== e.mermaid &&
                      (void 0 !== e.mermaid.startOnLoad &&
                        (c.startOnLoad = e.mermaid.startOnLoad),
                      void 0 !== e.mermaid.htmlLabels &&
                        (c.htmlLabels = e.mermaid.htmlLabels)),
                      o.default.initialize(e);
                  },
                  contentLoaded: l,
                };
                t.default = c;
              },
              './src/mermaidAPI.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'encodeEntities', function () {
                    return ae;
                  }),
                  i.d(t, 'decodeEntities', function () {
                    return le;
                  });
                var n = i('d3'),
                  r = i('stylis'),
                  s = i.n(r),
                  o = i('./package.json'),
                  a = i('./src/config.js'),
                  l = i('./src/diagrams/class/classDb.js'),
                  c = i('./src/diagrams/class/classRenderer.js'),
                  d = i('./src/diagrams/class/classRenderer-v2.js'),
                  h = i('./src/diagrams/class/parser/classDiagram.jison'),
                  u = i.n(h),
                  g = i('./src/diagrams/er/erDb.js'),
                  f = i('./src/diagrams/er/erRenderer.js'),
                  p = i('./src/diagrams/er/parser/erDiagram.jison'),
                  m = i.n(p),
                  _ = i('./src/diagrams/flowchart/flowDb.js'),
                  b = i('./src/diagrams/flowchart/flowRenderer.js'),
                  v = i('./src/diagrams/flowchart/flowRenderer-v2.js'),
                  y = i('./src/diagrams/flowchart/parser/flow.jison'),
                  w = i.n(y),
                  C = i('./src/diagrams/gantt/ganttDb.js'),
                  S = i('./src/diagrams/gantt/ganttRenderer.js'),
                  k = i('./src/diagrams/gantt/parser/gantt.jison'),
                  x = i.n(k),
                  L = i('./src/diagrams/git/gitGraphAst.js'),
                  M = i('./src/diagrams/git/gitGraphRenderer.js'),
                  D = i('./src/diagrams/git/parser/gitGraph.jison'),
                  N = i.n(D),
                  E = i('./src/diagrams/info/infoDb.js'),
                  T = i('./src/diagrams/info/infoRenderer.js'),
                  I = i('./src/diagrams/info/parser/info.jison'),
                  O = i.n(I),
                  A = i('./src/diagrams/pie/parser/pie.jison'),
                  R = i.n(A),
                  P = i('./src/diagrams/pie/pieDb.js'),
                  F = i('./src/diagrams/pie/pieRenderer.js'),
                  B = i(
                    './src/diagrams/requirement/parser/requirementDiagram.jison'
                  ),
                  W = i.n(B),
                  Y = i('./src/diagrams/requirement/requirementDb.js'),
                  H = i('./src/diagrams/requirement/requirementRenderer.js'),
                  j = i('./src/diagrams/sequence/parser/sequenceDiagram.jison'),
                  V = i.n(j),
                  z = i('./src/diagrams/sequence/sequenceDb.js'),
                  U = i('./src/diagrams/sequence/sequenceRenderer.js'),
                  $ = i('./src/diagrams/state/parser/stateDiagram.jison'),
                  K = i.n($),
                  q = i('./src/diagrams/state/stateDb.js'),
                  G = i('./src/diagrams/state/stateRenderer.js'),
                  Z = i('./src/diagrams/state/stateRenderer-v2.js'),
                  J = i('./src/diagrams/user-journey/journeyDb.js'),
                  Q = i('./src/diagrams/user-journey/journeyRenderer.js'),
                  X = i('./src/diagrams/user-journey/parser/journey.jison'),
                  ee = i.n(X),
                  te = i('./src/errorRenderer.js'),
                  ie = i('./src/logger.js'),
                  ne = i('./src/styles.js'),
                  re = i('./src/themes/index.js'),
                  se = i('./src/utils.js');
                function oe(e) {
                  return (oe =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                var ae = function (e) {
                    var t = e;
                    return (t = (t = t.replace(
                      /style.*:\S*#.*;/g,
                      function (e) {
                        return e.substring(0, e.length - 1);
                      }
                    )).replace(/classDef.*:\S*#.*;/g, function (e) {
                      return e.substring(0, e.length - 1);
                    })).replace(/#\w+;/g, function (e) {
                      var t = e.substring(1, e.length - 1);
                      return /^\+?\d+$/.test(t)
                        ? 'ﬂ°°' + t + '¶ß'
                        : 'ﬂ°' + t + '¶ß';
                    });
                  },
                  le = function (e) {
                    var t = e;
                    return (t = (t = t.replace(/ﬂ°°/g, function () {
                      return '&#';
                    })).replace(/ﬂ°/g, function () {
                      return '&';
                    })).replace(/¶ß/g, function () {
                      return ';';
                    });
                  },
                  ce = {};
                function de(e) {
                  M.default.setConf(e.git),
                    b.default.setConf(e.flowchart),
                    v.default.setConf(e.flowchart),
                    void 0 !== e.sequenceDiagram &&
                      U.default.setConf(
                        Object(se.assignWithDepth)(
                          e.sequence,
                          e.sequenceDiagram
                        )
                      ),
                    U.default.setConf(e.sequence),
                    S.default.setConf(e.gantt),
                    c.default.setConf(e.class),
                    G.default.setConf(e.state),
                    Z.default.setConf(e.state),
                    T.default.setConf(e.class),
                    F.default.setConf(e.class),
                    f.default.setConf(e.er),
                    Q.default.setConf(e.journey),
                    H.default.setConf(e.requirement),
                    te.default.setConf(e.class);
                }
                var he = Object.freeze({
                  render: function (e, t, i, r) {
                    a.reset();
                    var h = t,
                      u = se.default.detectInit(h);
                    u && a.addDirective(u);
                    var g = a.getConfig();
                    if (
                      (t.length > g.maxTextSize &&
                        (h =
                          'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa'),
                      void 0 !== r)
                    )
                      (r.innerHTML = ''),
                        Object(n.select)(r)
                          .append('div')
                          .attr('id', 'd' + e)
                          .attr('style', 'font-family: ' + g.fontFamily)
                          .append('svg')
                          .attr('id', e)
                          .attr('width', '100%')
                          .attr('xmlns', 'http://www.w3.org/2000/svg')
                          .append('g');
                    else {
                      var p = document.getElementById(e);
                      p && p.remove();
                      var m = document.querySelector('#d' + e);
                      m && m.remove(),
                        Object(n.select)('body')
                          .append('div')
                          .attr('id', 'd' + e)
                          .append('svg')
                          .attr('id', e)
                          .attr('width', '100%')
                          .attr('xmlns', 'http://www.w3.org/2000/svg')
                          .append('g');
                    }
                    (window.txt = h), (h = ae(h));
                    var y = Object(n.select)('#d' + e).node(),
                      w = se.default.detectType(h),
                      k = y.firstChild,
                      x = k.firstChild,
                      L = '';
                    if (
                      (void 0 !== g.themeCSS && (L += '\n'.concat(g.themeCSS)),
                      void 0 !== g.fontFamily &&
                        (L += '\n:root { --mermaid-font-family: '.concat(
                          g.fontFamily,
                          '}'
                        )),
                      void 0 !== g.altFontFamily &&
                        (L += '\n:root { --mermaid-alt-font-family: '.concat(
                          g.altFontFamily,
                          '}'
                        )),
                      'flowchart' === w ||
                        'flowchart-v2' === w ||
                        'graph' === w)
                    ) {
                      var D = b.default.getClasses(h);
                      for (var N in D)
                        g.htmlLabels || g.flowchart.htmlLabels
                          ? ((L += '\n.'
                              .concat(N, ' > * { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )),
                            (L += '\n.'
                              .concat(N, ' span { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )))
                          : ((L += '\n.'
                              .concat(N, ' path { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )),
                            (L += '\n.'
                              .concat(N, ' rect { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )),
                            (L += '\n.'
                              .concat(N, ' polygon { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )),
                            (L += '\n.'
                              .concat(N, ' ellipse { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )),
                            (L += '\n.'
                              .concat(N, ' circle { ')
                              .concat(
                                D[N].styles.join(' !important; '),
                                ' !important; }'
                              )),
                            D[N].textStyles &&
                              (L += '\n.'
                                .concat(N, ' tspan { ')
                                .concat(
                                  D[N].textStyles.join(' !important; '),
                                  ' !important; }'
                                )));
                    }
                    var E = new s.a()(
                        '#'.concat(e),
                        Object(ne.default)(w, L, g.themeVariables)
                      ),
                      I = document.createElement('style');
                    (I.innerHTML = E), k.insertBefore(I, x);
                    try {
                      switch (w) {
                        case 'git':
                          (g.flowchart.arrowMarkerAbsolute =
                            g.arrowMarkerAbsolute),
                            M.default.setConf(g.git),
                            M.default.draw(h, e, !1);
                          break;
                        case 'flowchart':
                          (g.flowchart.arrowMarkerAbsolute =
                            g.arrowMarkerAbsolute),
                            b.default.setConf(g.flowchart),
                            b.default.draw(h, e, !1);
                          break;
                        case 'flowchart-v2':
                          (g.flowchart.arrowMarkerAbsolute =
                            g.arrowMarkerAbsolute),
                            v.default.setConf(g.flowchart),
                            v.default.draw(h, e, !1);
                          break;
                        case 'sequence':
                          (g.sequence.arrowMarkerAbsolute =
                            g.arrowMarkerAbsolute),
                            g.sequenceDiagram
                              ? (U.default.setConf(
                                  Object.assign(g.sequence, g.sequenceDiagram)
                                ),
                                console.error(
                                  '`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'
                                ))
                              : U.default.setConf(g.sequence),
                            U.default.draw(h, e);
                          break;
                        case 'gantt':
                          (g.gantt.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            S.default.setConf(g.gantt),
                            S.default.draw(h, e);
                          break;
                        case 'class':
                          (g.class.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            c.default.setConf(g.class),
                            c.default.draw(h, e);
                          break;
                        case 'classDiagram':
                          (g.class.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            d.default.setConf(g.class),
                            d.default.draw(h, e);
                          break;
                        case 'state':
                          (g.class.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            G.default.setConf(g.state),
                            G.default.draw(h, e);
                          break;
                        case 'stateDiagram':
                          (g.class.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            Z.default.setConf(g.state),
                            Z.default.draw(h, e);
                          break;
                        case 'info':
                          (g.class.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            T.default.setConf(g.class),
                            T.default.draw(h, e, o.version);
                          break;
                        case 'pie':
                          (g.class.arrowMarkerAbsolute = g.arrowMarkerAbsolute),
                            F.default.setConf(g.pie),
                            F.default.draw(h, e, o.version);
                          break;
                        case 'er':
                          f.default.setConf(g.er),
                            f.default.draw(h, e, o.version);
                          break;
                        case 'journey':
                          Q.default.setConf(g.journey),
                            Q.default.draw(h, e, o.version);
                          break;
                        case 'requirement':
                          H.default.setConf(g.requirement),
                            H.default.draw(h, e, o.version);
                      }
                    } catch (t) {
                      throw (te.default.draw(e, o.version), t);
                    }
                    Object(n.select)('[id="'.concat(e, '"]'))
                      .selectAll('foreignobject > *')
                      .attr('xmlns', 'http://www.w3.org/1999/xhtml');
                    var O = Object(n.select)('#d' + e).node().innerHTML;
                    if (
                      (ie.log.debug(
                        'cnf.arrowMarkerAbsolute',
                        g.arrowMarkerAbsolute
                      ),
                      (g.arrowMarkerAbsolute &&
                        'false' !== g.arrowMarkerAbsolute) ||
                        (O = O.replace(
                          /marker-end="url\(.*?#/g,
                          'marker-end="url(#',
                          'g'
                        )),
                      (O = (O = le(O)).replace(/<br>/g, '<br/>')),
                      void 0 !== i)
                    )
                      switch (w) {
                        case 'flowchart':
                        case 'flowchart-v2':
                          i(O, _.default.bindFunctions);
                          break;
                        case 'gantt':
                          i(O, C.default.bindFunctions);
                          break;
                        case 'class':
                        case 'classDiagram':
                          i(O, l.default.bindFunctions);
                          break;
                        default:
                          i(O);
                      }
                    else ie.log.debug('CB = undefined!');
                    var A = Object(n.select)('#d' + e).node();
                    return (
                      null !== A &&
                        'function' == typeof A.remove &&
                        Object(n.select)('#d' + e)
                          .node()
                          .remove(),
                      O
                    );
                  },
                  parse: function (e) {
                    var t = se.default.detectInit(e);
                    t && ie.log.debug('reinit ', t);
                    var i,
                      n = se.default.detectType(e);
                    switch ((ie.log.debug('Type ' + n), n)) {
                      case 'git':
                        (i = N.a).parser.yy = L.default;
                        break;
                      case 'flowchart':
                      case 'flowchart-v2':
                        _.default.clear(), ((i = w.a).parser.yy = _.default);
                        break;
                      case 'sequence':
                        (i = V.a).parser.yy = z.default;
                        break;
                      case 'gantt':
                        (i = x.a).parser.yy = C.default;
                        break;
                      case 'class':
                      case 'classDiagram':
                        (i = u.a).parser.yy = l.default;
                        break;
                      case 'state':
                      case 'stateDiagram':
                        (i = K.a).parser.yy = q.default;
                        break;
                      case 'info':
                        ie.log.debug('info info info'),
                          ((i = O.a).parser.yy = E.default);
                        break;
                      case 'pie':
                        ie.log.debug('pie'), ((i = R.a).parser.yy = P.default);
                        break;
                      case 'er':
                        ie.log.debug('er'), ((i = m.a).parser.yy = g.default);
                        break;
                      case 'journey':
                        ie.log.debug('Journey'),
                          ((i = ee.a).parser.yy = J.default);
                        break;
                      case 'requirement':
                      case 'requirementDiagram':
                        console.log('RequirementDiagram'),
                          ie.log.debug('RequirementDiagram'),
                          ((i = W.a).parser.yy = Y.default);
                    }
                    return (
                      (i.parser.yy.graphType = n),
                      (i.parser.yy.parseError = function (e, t) {
                        throw { str: e, hash: t };
                      }),
                      i.parse(e),
                      i
                    );
                  },
                  parseDirective: function (e, t, i, n) {
                    try {
                      if (void 0 !== t)
                        switch (((t = t.trim()), i)) {
                          case 'open_directive':
                            ce = {};
                            break;
                          case 'type_directive':
                            ce.type = t.toLowerCase();
                            break;
                          case 'arg_directive':
                            ce.args = JSON.parse(t);
                            break;
                          case 'close_directive':
                            (function (e, t, i) {
                              switch (
                                (ie.log.debug(
                                  'Directive type='.concat(
                                    t.type,
                                    ' with args:'
                                  ),
                                  t.args
                                ),
                                t.type)
                              ) {
                                case 'init':
                                case 'initialize':
                                  ['config'].forEach(function (e) {
                                    void 0 !== t.args[e] &&
                                      ('flowchart-v2' === i &&
                                        (i = 'flowchart'),
                                      (t.args[i] = t.args[e]),
                                      delete t.args[e]);
                                  }),
                                    t.args,
                                    a.addDirective(t.args);
                                  break;
                                case 'wrap':
                                case 'nowrap':
                                  e &&
                                    e.setWrap &&
                                    e.setWrap('wrap' === t.type);
                                  break;
                                default:
                                  ie.log.warn(
                                    "Unhandled directive: source: '%%{"
                                      .concat(t.type, ': ')
                                      .concat(
                                        JSON.stringify(t.args ? t.args : {}),
                                        '}%%'
                                      ),
                                    t
                                  );
                              }
                            })(e, ce, n),
                              (ce = null);
                        }
                    } catch (e) {
                      ie.log.error(
                        'Error while rendering sequenceDiagram directive: '
                          .concat(t, ' jison context: ')
                          .concat(i)
                      ),
                        ie.log.error(e.message);
                    }
                  },
                  initialize: function (e) {
                    e &&
                      e.fontFamily &&
                      ((e.themeVariables && e.themeVariables.fontFamily) ||
                        (e.themeVariables = { fontFamily: e.fontFamily })),
                      a.saveConfigFromInitilize(e),
                      e && e.theme && re.default[e.theme]
                        ? (e.themeVariables = re.default[
                            e.theme
                          ].getThemeVariables(e.themeVariables))
                        : e &&
                          (e.themeVariables = re.default.default.getThemeVariables(
                            e.themeVariables
                          ));
                    var t =
                      'object' === oe(e)
                        ? a.setSiteConfig(e)
                        : a.getSiteConfig();
                    de(t), Object(ie.setLogLevel)(t.logLevel);
                  },
                  reinitialize: function () {},
                  getConfig: a.getConfig,
                  setConfig: a.setConfig,
                  getSiteConfig: a.getSiteConfig,
                  updateSiteConfig: a.updateSiteConfig,
                  reset: function () {
                    a.reset();
                  },
                  globalReset: function () {
                    a.reset(a.defaultConfig), de(a.getConfig());
                  },
                  defaultConfig: a.defaultConfig,
                });
                Object(ie.setLogLevel)(a.getConfig().logLevel),
                  a.reset(a.getConfig()),
                  (t.default = he);
              },
              './src/styles.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'calcThemeVariables', function () {
                    return p;
                  });
                var n = i('./src/diagrams/class/styles.js'),
                  r = i('./src/diagrams/er/styles.js'),
                  s = i('./src/diagrams/flowchart/styles.js'),
                  o = i('./src/diagrams/gantt/styles.js'),
                  a = i('./src/diagrams/git/styles.js'),
                  l = i('./src/diagrams/info/styles.js'),
                  c = i('./src/diagrams/pie/styles.js'),
                  d = i('./src/diagrams/requirement/styles.js'),
                  h = i('./src/diagrams/sequence/styles.js'),
                  u = i('./src/diagrams/state/styles.js'),
                  g = i('./src/diagrams/user-journey/styles.js'),
                  f = {
                    flowchart: s.default,
                    'flowchart-v2': s.default,
                    sequence: h.default,
                    gantt: o.default,
                    classDiagram: n.default,
                    'classDiagram-v2': n.default,
                    class: n.default,
                    stateDiagram: u.default,
                    state: u.default,
                    git: a.default,
                    info: l.default,
                    pie: c.default,
                    er: r.default,
                    journey: g.default,
                    requirement: d.default,
                  },
                  p = function (e, t) {
                    return e.calcColors(t);
                  };
                t.default = function (e, t, i) {
                  return ' {\n    font-family: '
                    .concat(i.fontFamily, ';\n    font-size: ')
                    .concat(i.fontSize, ';\n    fill: ')
                    .concat(
                      i.textColor,
                      '\n  }\n\n  /* Classes common for multiple diagrams */\n\n  .error-icon {\n    fill: '
                    )
                    .concat(
                      i.errorBkgColor,
                      ';\n  }\n  .error-text {\n    fill: '
                    )
                    .concat(i.errorTextColor, ';\n    stroke: ')
                    .concat(
                      i.errorTextColor,
                      ';\n  }\n\n  .edge-thickness-normal {\n    stroke-width: 2px;\n  }\n  .edge-thickness-thick {\n    stroke-width: 3.5px\n  }\n  .edge-pattern-solid {\n    stroke-dasharray: 0;\n  }\n\n  .edge-pattern-dashed{\n    stroke-dasharray: 3;\n  }\n  .edge-pattern-dotted {\n    stroke-dasharray: 2;\n  }\n\n  .marker {\n    fill: '
                    )
                    .concat(i.lineColor, ';\n    stroke: ')
                    .concat(
                      i.lineColor,
                      ';\n  }\n  .marker.cross {\n    stroke: '
                    )
                    .concat(i.lineColor, ';\n  }\n\n  svg {\n    font-family: ')
                    .concat(i.fontFamily, ';\n    font-size: ')
                    .concat(i.fontSize, ';\n  }\n\n  ')
                    .concat(f[e](i), '\n\n  ')
                    .concat(t, '\n\n  ')
                    .concat(e, ' { fill: apa;}\n');
                };
              },
              './src/themes/index.js': function (e, t, i) {
                'use strict';
                i.r(t);
                var n = i('./src/themes/theme-base.js'),
                  r = i('./src/themes/theme-dark.js'),
                  s = i('./src/themes/theme-default.js'),
                  o = i('./src/themes/theme-forest.js'),
                  a = i('./src/themes/theme-neutral.js');
                t.default = {
                  base: { getThemeVariables: n.getThemeVariables },
                  dark: { getThemeVariables: r.getThemeVariables },
                  default: { getThemeVariables: s.getThemeVariables },
                  forest: { getThemeVariables: o.getThemeVariables },
                  neutral: { getThemeVariables: a.getThemeVariables },
                };
              },
              './src/themes/theme-base.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'getThemeVariables', function () {
                    return l;
                  });
                var n = i('khroma'),
                  r = i('./src/themes/theme-helpers.js');
                function s(e) {
                  return (s =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                function o(e, t) {
                  for (var i = 0; i < t.length; i++) {
                    var n = t[i];
                    (n.enumerable = n.enumerable || !1),
                      (n.configurable = !0),
                      'value' in n && (n.writable = !0),
                      Object.defineProperty(e, n.key, n);
                  }
                }
                var a = (function () {
                    function e() {
                      !(function (e, t) {
                        if (!(e instanceof t))
                          throw new TypeError(
                            'Cannot call a class as a function'
                          );
                      })(this, e),
                        (this.background = '#f4f4f4'),
                        (this.darkMode = !1),
                        (this.primaryColor = '#fff4dd'),
                        (this.noteBkgColor = '#fff5ad'),
                        (this.noteTextColor = '#333'),
                        (this.fontFamily =
                          '"trebuchet ms", verdana, arial, sans-serif'),
                        (this.fontSize = '16px');
                    }
                    var t, i;
                    return (
                      (t = e),
                      (i = [
                        {
                          key: 'updateColors',
                          value: function () {
                            (this.primaryTextColor =
                              this.primaryTextColor ||
                              (this.darkMode ? '#ddd' : '#333')),
                              (this.secondaryColor =
                                this.secondaryColor ||
                                Object(n.adjust)(this.primaryColor, {
                                  h: -120,
                                })),
                              (this.tertiaryColor =
                                this.tertiaryColor ||
                                Object(n.adjust)(this.primaryColor, {
                                  h: 180,
                                  l: 5,
                                })),
                              (this.primaryBorderColor =
                                this.primaryBorderColor ||
                                Object(r.mkBorder)(
                                  this.primaryColor,
                                  this.darkMode
                                )),
                              (this.secondaryBorderColor =
                                this.secondaryBorderColor ||
                                Object(r.mkBorder)(
                                  this.secondaryColor,
                                  this.darkMode
                                )),
                              (this.tertiaryBorderColor =
                                this.tertiaryBorderColor ||
                                Object(r.mkBorder)(
                                  this.tertiaryColor,
                                  this.darkMode
                                )),
                              (this.noteBorderColor =
                                this.noteBorderColor ||
                                Object(r.mkBorder)(
                                  this.noteBkgColor,
                                  this.darkMode
                                )),
                              (this.secondaryTextColor =
                                this.secondaryTextColor ||
                                Object(n.invert)(this.secondaryColor)),
                              (this.tertiaryTextColor =
                                this.tertiaryTextColor ||
                                Object(n.invert)(this.tertiaryColor)),
                              (this.lineColor =
                                this.lineColor ||
                                Object(n.invert)(this.background)),
                              (this.textColor =
                                this.textColor || this.primaryTextColor),
                              (this.nodeBkg =
                                this.nodeBkg || this.primaryColor),
                              (this.mainBkg =
                                this.mainBkg || this.primaryColor),
                              (this.nodeBorder =
                                this.nodeBorder || this.primaryBorderColor),
                              (this.clusterBkg =
                                this.clusterBkg || this.tertiaryColor),
                              (this.clusterBorder =
                                this.clusterBorder || this.tertiaryBorderColor),
                              (this.defaultLinkColor =
                                this.defaultLinkColor || this.lineColor),
                              (this.titleColor =
                                this.titleColor || this.tertiaryTextColor),
                              (this.edgeLabelBackground =
                                this.edgeLabelBackground ||
                                (this.darkMode
                                  ? Object(n.darken)(this.secondaryColor, 30)
                                  : this.secondaryColor)),
                              (this.nodeTextColor =
                                this.nodeTextColor || this.primaryTextColor),
                              (this.actorBorder =
                                this.actorBorder || this.primaryBorderColor),
                              (this.actorBkg = this.actorBkg || this.mainBkg),
                              (this.actorTextColor =
                                this.actorTextColor || this.primaryTextColor),
                              (this.actorLineColor =
                                this.actorLineColor || 'grey'),
                              (this.labelBoxBkgColor =
                                this.labelBoxBkgColor || this.actorBkg),
                              (this.signalColor =
                                this.signalColor || this.textColor),
                              (this.signalTextColor =
                                this.signalTextColor || this.textColor),
                              (this.labelBoxBorderColor =
                                this.labelBoxBorderColor || this.actorBorder),
                              (this.labelTextColor =
                                this.labelTextColor || this.actorTextColor),
                              (this.loopTextColor =
                                this.loopTextColor || this.actorTextColor),
                              (this.activationBorderColor =
                                this.activationBorderColor ||
                                Object(n.darken)(this.secondaryColor, 10)),
                              (this.activationBkgColor =
                                this.activationBkgColor || this.secondaryColor),
                              (this.sequenceNumberColor =
                                this.sequenceNumberColor ||
                                Object(n.invert)(this.lineColor)),
                              (this.sectionBkgColor =
                                this.sectionBkgColor || this.tertiaryColor),
                              (this.altSectionBkgColor =
                                this.altSectionBkgColor || 'white'),
                              (this.sectionBkgColor =
                                this.sectionBkgColor || this.secondaryColor),
                              (this.sectionBkgColor2 =
                                this.sectionBkgColor2 || this.primaryColor),
                              (this.taskBorderColor =
                                this.taskBorderColor ||
                                this.primaryBorderColor),
                              (this.taskBkgColor =
                                this.taskBkgColor || this.primaryColor),
                              (this.activeTaskBorderColor =
                                this.activeTaskBorderColor ||
                                this.primaryColor),
                              (this.activeTaskBkgColor =
                                this.activeTaskBkgColor ||
                                Object(n.lighten)(this.primaryColor, 23)),
                              (this.gridColor = this.gridColor || 'lightgrey'),
                              (this.doneTaskBkgColor =
                                this.doneTaskBkgColor || 'lightgrey'),
                              (this.doneTaskBorderColor =
                                this.doneTaskBorderColor || 'grey'),
                              (this.critBorderColor =
                                this.critBorderColor || '#ff8888'),
                              (this.critBkgColor = this.critBkgColor || 'red'),
                              (this.todayLineColor =
                                this.todayLineColor || 'red'),
                              (this.taskTextColor =
                                this.taskTextColor || this.textColor),
                              (this.taskTextOutsideColor =
                                this.taskTextOutsideColor || this.textColor),
                              (this.taskTextLightColor =
                                this.taskTextLightColor || this.textColor),
                              (this.taskTextColor =
                                this.taskTextColor || this.primaryTextColor),
                              (this.taskTextDarkColor =
                                this.taskTextDarkColor || this.textColor),
                              (this.taskTextClickableColor =
                                this.taskTextClickableColor || '#003163'),
                              (this.labelColor =
                                this.labelColor || this.primaryTextColor),
                              (this.altBackground =
                                this.altBackground || this.tertiaryColor),
                              (this.errorBkgColor =
                                this.errorBkgColor || this.tertiaryColor),
                              (this.errorTextColor =
                                this.errorTextColor || this.tertiaryTextColor),
                              (this.classText =
                                this.classText || this.textColor),
                              (this.fillType0 =
                                this.fillType0 || this.primaryColor),
                              (this.fillType1 =
                                this.fillType1 || this.secondaryColor),
                              (this.fillType2 =
                                this.fillType2 ||
                                Object(n.adjust)(this.primaryColor, { h: 64 })),
                              (this.fillType3 =
                                this.fillType3 ||
                                Object(n.adjust)(this.secondaryColor, {
                                  h: 64,
                                })),
                              (this.fillType4 =
                                this.fillType4 ||
                                Object(n.adjust)(this.primaryColor, {
                                  h: -64,
                                })),
                              (this.fillType5 =
                                this.fillType5 ||
                                Object(n.adjust)(this.secondaryColor, {
                                  h: -64,
                                })),
                              (this.fillType6 =
                                this.fillType6 ||
                                Object(n.adjust)(this.primaryColor, {
                                  h: 128,
                                })),
                              (this.fillType7 =
                                this.fillType7 ||
                                Object(n.adjust)(this.secondaryColor, {
                                  h: 128,
                                }));
                          },
                        },
                        {
                          key: 'calculate',
                          value: function (e) {
                            var t = this;
                            if ('object' === s(e)) {
                              var i = Object.keys(e);
                              i.forEach(function (i) {
                                t[i] = e[i];
                              }),
                                this.updateColors(),
                                i.forEach(function (i) {
                                  t[i] = e[i];
                                });
                            } else this.updateColors();
                          },
                        },
                      ]) && o(t.prototype, i),
                      e
                    );
                  })(),
                  l = function (e) {
                    var t = new a();
                    return t.calculate(e), t;
                  };
              },
              './src/themes/theme-dark.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'getThemeVariables', function () {
                    return l;
                  });
                var n = i('khroma'),
                  r = i('./src/themes/theme-helpers.js');
                function s(e) {
                  return (s =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                function o(e, t) {
                  for (var i = 0; i < t.length; i++) {
                    var n = t[i];
                    (n.enumerable = n.enumerable || !1),
                      (n.configurable = !0),
                      'value' in n && (n.writable = !0),
                      Object.defineProperty(e, n.key, n);
                  }
                }
                var a = (function () {
                    function e() {
                      !(function (e, t) {
                        if (!(e instanceof t))
                          throw new TypeError(
                            'Cannot call a class as a function'
                          );
                      })(this, e),
                        (this.background = '#333'),
                        (this.primaryColor = '#1f2020'),
                        (this.secondaryColor = Object(n.lighten)(
                          this.primaryColor,
                          16
                        )),
                        (this.tertiaryColor = Object(n.adjust)(
                          this.primaryColor,
                          { h: -160 }
                        )),
                        (this.primaryBorderColor = Object(r.mkBorder)(
                          this.primaryColor,
                          this.darkMode
                        )),
                        (this.secondaryBorderColor = Object(r.mkBorder)(
                          this.secondaryColor,
                          this.darkMode
                        )),
                        (this.tertiaryBorderColor = Object(r.mkBorder)(
                          this.tertiaryColor,
                          this.darkMode
                        )),
                        (this.primaryTextColor = Object(n.invert)(
                          this.primaryColor
                        )),
                        (this.secondaryTextColor = Object(n.invert)(
                          this.secondaryColor
                        )),
                        (this.tertiaryTextColor = Object(n.invert)(
                          this.tertiaryColor
                        )),
                        (this.lineColor = Object(n.invert)(this.background)),
                        (this.textColor = Object(n.invert)(this.background)),
                        (this.mainBkg = '#1f2020'),
                        (this.secondBkg = 'calculated'),
                        (this.mainContrastColor = 'lightgrey'),
                        (this.darkTextColor = Object(n.lighten)(
                          Object(n.invert)('#323D47'),
                          10
                        )),
                        (this.lineColor = 'calculated'),
                        (this.border1 = '#81B1DB'),
                        (this.border2 = Object(n.rgba)(255, 255, 255, 0.25)),
                        (this.arrowheadColor = 'calculated'),
                        (this.fontFamily =
                          '"trebuchet ms", verdana, arial, sans-serif'),
                        (this.fontSize = '16px'),
                        (this.labelBackground = '#181818'),
                        (this.textColor = '#ccc'),
                        (this.nodeBkg = 'calculated'),
                        (this.nodeBorder = 'calculated'),
                        (this.clusterBkg = 'calculated'),
                        (this.clusterBorder = 'calculated'),
                        (this.defaultLinkColor = 'calculated'),
                        (this.titleColor = '#F9FFFE'),
                        (this.edgeLabelBackground = 'calculated'),
                        (this.actorBorder = 'calculated'),
                        (this.actorBkg = 'calculated'),
                        (this.actorTextColor = 'calculated'),
                        (this.actorLineColor = 'calculated'),
                        (this.signalColor = 'calculated'),
                        (this.signalTextColor = 'calculated'),
                        (this.labelBoxBkgColor = 'calculated'),
                        (this.labelBoxBorderColor = 'calculated'),
                        (this.labelTextColor = 'calculated'),
                        (this.loopTextColor = 'calculated'),
                        (this.noteBorderColor = 'calculated'),
                        (this.noteBkgColor = '#fff5ad'),
                        (this.noteTextColor = 'calculated'),
                        (this.activationBorderColor = 'calculated'),
                        (this.activationBkgColor = 'calculated'),
                        (this.sequenceNumberColor = 'black'),
                        (this.sectionBkgColor = Object(n.darken)(
                          '#EAE8D9',
                          30
                        )),
                        (this.altSectionBkgColor = 'calculated'),
                        (this.sectionBkgColor2 = '#EAE8D9'),
                        (this.taskBorderColor = Object(n.rgba)(
                          255,
                          255,
                          255,
                          70
                        )),
                        (this.taskBkgColor = 'calculated'),
                        (this.taskTextColor = 'calculated'),
                        (this.taskTextLightColor = 'calculated'),
                        (this.taskTextOutsideColor = 'calculated'),
                        (this.taskTextClickableColor = '#003163'),
                        (this.activeTaskBorderColor = Object(n.rgba)(
                          255,
                          255,
                          255,
                          50
                        )),
                        (this.activeTaskBkgColor = '#81B1DB'),
                        (this.gridColor = 'calculated'),
                        (this.doneTaskBkgColor = 'calculated'),
                        (this.doneTaskBorderColor = 'grey'),
                        (this.critBorderColor = '#E83737'),
                        (this.critBkgColor = '#E83737'),
                        (this.taskTextDarkColor = 'calculated'),
                        (this.todayLineColor = '#DB5757'),
                        (this.labelColor = 'calculated'),
                        (this.errorBkgColor = '#a44141'),
                        (this.errorTextColor = '#ddd');
                    }
                    var t, i;
                    return (
                      (t = e),
                      (i = [
                        {
                          key: 'updateColors',
                          value: function () {
                            (this.secondBkg = Object(n.lighten)(
                              this.mainBkg,
                              16
                            )),
                              (this.lineColor = this.mainContrastColor),
                              (this.arrowheadColor = this.mainContrastColor),
                              (this.nodeBkg = this.mainBkg),
                              (this.nodeBorder = this.border1),
                              (this.clusterBkg = this.secondBkg),
                              (this.clusterBorder = this.border2),
                              (this.defaultLinkColor = this.lineColor),
                              (this.edgeLabelBackground = Object(n.lighten)(
                                this.labelBackground,
                                25
                              )),
                              (this.actorBorder = this.border1),
                              (this.actorBkg = this.mainBkg),
                              (this.actorTextColor = this.mainContrastColor),
                              (this.actorLineColor = this.mainContrastColor),
                              (this.signalColor = this.mainContrastColor),
                              (this.signalTextColor = this.mainContrastColor),
                              (this.labelBoxBkgColor = this.actorBkg),
                              (this.labelBoxBorderColor = this.actorBorder),
                              (this.labelTextColor = this.mainContrastColor),
                              (this.loopTextColor = this.mainContrastColor),
                              (this.noteBorderColor = this.secondaryBorderColor),
                              (this.noteBkgColor = this.secondBkg),
                              (this.noteTextColor = this.secondaryTextColor),
                              (this.activationBorderColor = this.border1),
                              (this.activationBkgColor = this.secondBkg),
                              (this.altSectionBkgColor = this.background),
                              (this.taskBkgColor = Object(n.lighten)(
                                this.mainBkg,
                                23
                              )),
                              (this.taskTextColor = this.darkTextColor),
                              (this.taskTextLightColor = this.mainContrastColor),
                              (this.taskTextOutsideColor = this.taskTextLightColor),
                              (this.gridColor = this.mainContrastColor),
                              (this.doneTaskBkgColor = this.mainContrastColor),
                              (this.taskTextDarkColor = this.darkTextColor),
                              (this.labelColor = this.textColor),
                              (this.altBackground = Object(n.lighten)(
                                this.background,
                                20
                              )),
                              (this.fillType0 = this.primaryColor),
                              (this.fillType1 = this.secondaryColor),
                              (this.fillType2 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 64 }
                              )),
                              (this.fillType3 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 64 }
                              )),
                              (this.fillType4 = Object(n.adjust)(
                                this.primaryColor,
                                { h: -64 }
                              )),
                              (this.fillType5 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: -64 }
                              )),
                              (this.fillType6 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 128 }
                              )),
                              (this.fillType7 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 128 }
                              )),
                              (this.classText = this.primaryTextColor);
                          },
                        },
                        {
                          key: 'calculate',
                          value: function (e) {
                            var t = this;
                            if ('object' === s(e)) {
                              var i = Object.keys(e);
                              i.forEach(function (i) {
                                t[i] = e[i];
                              }),
                                this.updateColors(),
                                i.forEach(function (i) {
                                  t[i] = e[i];
                                });
                            } else this.updateColors();
                          },
                        },
                      ]) && o(t.prototype, i),
                      e
                    );
                  })(),
                  l = function (e) {
                    var t = new a();
                    return t.calculate(e), t;
                  };
              },
              './src/themes/theme-default.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'getThemeVariables', function () {
                    return l;
                  });
                var n = i('khroma'),
                  r = i('./src/themes/theme-helpers.js');
                function s(e) {
                  return (s =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                function o(e, t) {
                  for (var i = 0; i < t.length; i++) {
                    var n = t[i];
                    (n.enumerable = n.enumerable || !1),
                      (n.configurable = !0),
                      'value' in n && (n.writable = !0),
                      Object.defineProperty(e, n.key, n);
                  }
                }
                var a = (function () {
                    function e() {
                      !(function (e, t) {
                        if (!(e instanceof t))
                          throw new TypeError(
                            'Cannot call a class as a function'
                          );
                      })(this, e),
                        (this.background = '#f4f4f4'),
                        (this.primaryColor = '#ECECFF'),
                        (this.secondaryColor = Object(n.adjust)(
                          this.primaryColor,
                          { h: 120 }
                        )),
                        (this.secondaryColor = '#ffffde'),
                        (this.tertiaryColor = Object(n.adjust)(
                          this.primaryColor,
                          { h: -160 }
                        )),
                        (this.primaryBorderColor = Object(r.mkBorder)(
                          this.primaryColor,
                          this.darkMode
                        )),
                        (this.secondaryBorderColor = Object(r.mkBorder)(
                          this.secondaryColor,
                          this.darkMode
                        )),
                        (this.tertiaryBorderColor = Object(r.mkBorder)(
                          this.tertiaryColor,
                          this.darkMode
                        )),
                        (this.primaryTextColor = Object(n.invert)(
                          this.primaryColor
                        )),
                        (this.secondaryTextColor = Object(n.invert)(
                          this.secondaryColor
                        )),
                        (this.tertiaryTextColor = Object(n.invert)(
                          this.tertiaryColor
                        )),
                        (this.lineColor = Object(n.invert)(this.background)),
                        (this.textColor = Object(n.invert)(this.background)),
                        (this.background = 'white'),
                        (this.mainBkg = '#ECECFF'),
                        (this.secondBkg = '#ffffde'),
                        (this.lineColor = '#333333'),
                        (this.border1 = '#9370DB'),
                        (this.border2 = '#aaaa33'),
                        (this.arrowheadColor = '#333333'),
                        (this.fontFamily =
                          '"trebuchet ms", verdana, arial, sans-serif'),
                        (this.fontSize = '16px'),
                        (this.labelBackground = '#e8e8e8'),
                        (this.textColor = '#333'),
                        (this.nodeBkg = 'calculated'),
                        (this.nodeBorder = 'calculated'),
                        (this.clusterBkg = 'calculated'),
                        (this.clusterBorder = 'calculated'),
                        (this.defaultLinkColor = 'calculated'),
                        (this.titleColor = 'calculated'),
                        (this.edgeLabelBackground = 'calculated'),
                        (this.actorBorder = 'calculated'),
                        (this.actorBkg = 'calculated'),
                        (this.actorTextColor = 'black'),
                        (this.actorLineColor = 'grey'),
                        (this.signalColor = 'calculated'),
                        (this.signalTextColor = 'calculated'),
                        (this.labelBoxBkgColor = 'calculated'),
                        (this.labelBoxBorderColor = 'calculated'),
                        (this.labelTextColor = 'calculated'),
                        (this.loopTextColor = 'calculated'),
                        (this.noteBorderColor = 'calculated'),
                        (this.noteBkgColor = '#fff5ad'),
                        (this.noteTextColor = 'calculated'),
                        (this.activationBorderColor = '#666'),
                        (this.activationBkgColor = '#f4f4f4'),
                        (this.sequenceNumberColor = 'white'),
                        (this.sectionBkgColor = 'calculated'),
                        (this.altSectionBkgColor = 'calculated'),
                        (this.sectionBkgColor2 = 'calculated'),
                        (this.taskBorderColor = 'calculated'),
                        (this.taskBkgColor = 'calculated'),
                        (this.taskTextLightColor = 'calculated'),
                        (this.taskTextColor = this.taskTextLightColor),
                        (this.taskTextDarkColor = 'calculated'),
                        (this.taskTextOutsideColor = this.taskTextDarkColor),
                        (this.taskTextClickableColor = 'calculated'),
                        (this.activeTaskBorderColor = 'calculated'),
                        (this.activeTaskBkgColor = 'calculated'),
                        (this.gridColor = 'calculated'),
                        (this.doneTaskBkgColor = 'calculated'),
                        (this.doneTaskBorderColor = 'calculated'),
                        (this.critBorderColor = 'calculated'),
                        (this.critBkgColor = 'calculated'),
                        (this.todayLineColor = 'calculated'),
                        (this.sectionBkgColor = Object(n.rgba)(
                          102,
                          102,
                          255,
                          0.49
                        )),
                        (this.altSectionBkgColor = 'white'),
                        (this.sectionBkgColor2 = '#fff400'),
                        (this.taskBorderColor = '#534fbc'),
                        (this.taskBkgColor = '#8a90dd'),
                        (this.taskTextLightColor = 'white'),
                        (this.taskTextColor = 'calculated'),
                        (this.taskTextDarkColor = 'black'),
                        (this.taskTextOutsideColor = 'calculated'),
                        (this.taskTextClickableColor = '#003163'),
                        (this.activeTaskBorderColor = '#534fbc'),
                        (this.activeTaskBkgColor = '#bfc7ff'),
                        (this.gridColor = 'lightgrey'),
                        (this.doneTaskBkgColor = 'lightgrey'),
                        (this.doneTaskBorderColor = 'grey'),
                        (this.critBorderColor = '#ff8888'),
                        (this.critBkgColor = 'red'),
                        (this.todayLineColor = 'red'),
                        (this.labelColor = 'black'),
                        (this.errorBkgColor = '#552222'),
                        (this.errorTextColor = '#552222'),
                        this.updateColors();
                    }
                    var t, i;
                    return (
                      (t = e),
                      (i = [
                        {
                          key: 'updateColors',
                          value: function () {
                            (this.nodeBkg = this.mainBkg),
                              (this.nodeBorder = this.border1),
                              (this.clusterBkg = this.secondBkg),
                              (this.clusterBorder = this.border2),
                              (this.defaultLinkColor = this.lineColor),
                              (this.titleColor = this.textColor),
                              (this.edgeLabelBackground = this.labelBackground),
                              (this.actorBorder = Object(n.lighten)(
                                this.border1,
                                23
                              )),
                              (this.actorBkg = this.mainBkg),
                              (this.labelBoxBkgColor = this.actorBkg),
                              (this.signalColor = this.textColor),
                              (this.signalTextColor = this.textColor),
                              (this.labelBoxBorderColor = this.actorBorder),
                              (this.labelTextColor = this.actorTextColor),
                              (this.loopTextColor = this.actorTextColor),
                              (this.noteBorderColor = this.border2),
                              (this.noteTextColor = this.actorTextColor),
                              (this.taskTextColor = this.taskTextLightColor),
                              (this.taskTextOutsideColor = this.taskTextDarkColor),
                              (this.classText = this.primaryTextColor),
                              (this.fillType0 = this.primaryColor),
                              (this.fillType1 = this.secondaryColor),
                              (this.fillType2 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 64 }
                              )),
                              (this.fillType3 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 64 }
                              )),
                              (this.fillType4 = Object(n.adjust)(
                                this.primaryColor,
                                { h: -64 }
                              )),
                              (this.fillType5 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: -64 }
                              )),
                              (this.fillType6 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 128 }
                              )),
                              (this.fillType7 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 128 }
                              ));
                          },
                        },
                        {
                          key: 'calculate',
                          value: function (e) {
                            var t = this;
                            if ('object' === s(e)) {
                              var i = Object.keys(e);
                              i.forEach(function (i) {
                                t[i] = e[i];
                              }),
                                this.updateColors(),
                                i.forEach(function (i) {
                                  t[i] = e[i];
                                });
                            } else this.updateColors();
                          },
                        },
                      ]) && o(t.prototype, i),
                      e
                    );
                  })(),
                  l = function (e) {
                    var t = new a();
                    return t.calculate(e), t;
                  };
              },
              './src/themes/theme-forest.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'getThemeVariables', function () {
                    return l;
                  });
                var n = i('khroma'),
                  r = i('./src/themes/theme-helpers.js');
                function s(e) {
                  return (s =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                function o(e, t) {
                  for (var i = 0; i < t.length; i++) {
                    var n = t[i];
                    (n.enumerable = n.enumerable || !1),
                      (n.configurable = !0),
                      'value' in n && (n.writable = !0),
                      Object.defineProperty(e, n.key, n);
                  }
                }
                var a = (function () {
                    function e() {
                      !(function (e, t) {
                        if (!(e instanceof t))
                          throw new TypeError(
                            'Cannot call a class as a function'
                          );
                      })(this, e),
                        (this.background = '#f4f4f4'),
                        (this.primaryColor = '#cde498'),
                        (this.secondaryColor = '#cdffb2'),
                        (this.background = 'white'),
                        (this.mainBkg = '#cde498'),
                        (this.secondBkg = '#cdffb2'),
                        (this.lineColor = 'green'),
                        (this.border1 = '#13540c'),
                        (this.border2 = '#6eaa49'),
                        (this.arrowheadColor = 'green'),
                        (this.fontFamily =
                          '"trebuchet ms", verdana, arial, sans-serif'),
                        (this.fontSize = '16px'),
                        (this.tertiaryColor = Object(n.lighten)('#cde498', 10)),
                        (this.primaryBorderColor = Object(r.mkBorder)(
                          this.primaryColor,
                          this.darkMode
                        )),
                        (this.secondaryBorderColor = Object(r.mkBorder)(
                          this.secondaryColor,
                          this.darkMode
                        )),
                        (this.tertiaryBorderColor = Object(r.mkBorder)(
                          this.tertiaryColor,
                          this.darkMode
                        )),
                        (this.primaryTextColor = Object(n.invert)(
                          this.primaryColor
                        )),
                        (this.secondaryTextColor = Object(n.invert)(
                          this.secondaryColor
                        )),
                        (this.tertiaryTextColor = Object(n.invert)(
                          this.primaryColor
                        )),
                        (this.lineColor = Object(n.invert)(this.background)),
                        (this.textColor = Object(n.invert)(this.background)),
                        (this.nodeBkg = 'calculated'),
                        (this.nodeBorder = 'calculated'),
                        (this.clusterBkg = 'calculated'),
                        (this.clusterBorder = 'calculated'),
                        (this.defaultLinkColor = 'calculated'),
                        (this.titleColor = '#333'),
                        (this.edgeLabelBackground = '#e8e8e8'),
                        (this.actorBorder = 'calculated'),
                        (this.actorBkg = 'calculated'),
                        (this.actorTextColor = 'black'),
                        (this.actorLineColor = 'grey'),
                        (this.signalColor = '#333'),
                        (this.signalTextColor = '#333'),
                        (this.labelBoxBkgColor = 'calculated'),
                        (this.labelBoxBorderColor = '#326932'),
                        (this.labelTextColor = 'calculated'),
                        (this.loopTextColor = 'calculated'),
                        (this.noteBorderColor = 'calculated'),
                        (this.noteBkgColor = '#fff5ad'),
                        (this.noteTextColor = 'calculated'),
                        (this.activationBorderColor = '#666'),
                        (this.activationBkgColor = '#f4f4f4'),
                        (this.sequenceNumberColor = 'white'),
                        (this.sectionBkgColor = '#6eaa49'),
                        (this.altSectionBkgColor = 'white'),
                        (this.sectionBkgColor2 = '#6eaa49'),
                        (this.taskBorderColor = 'calculated'),
                        (this.taskBkgColor = '#487e3a'),
                        (this.taskTextLightColor = 'white'),
                        (this.taskTextColor = 'calculated'),
                        (this.taskTextDarkColor = 'black'),
                        (this.taskTextOutsideColor = 'calculated'),
                        (this.taskTextClickableColor = '#003163'),
                        (this.activeTaskBorderColor = 'calculated'),
                        (this.activeTaskBkgColor = 'calculated'),
                        (this.gridColor = 'lightgrey'),
                        (this.doneTaskBkgColor = 'lightgrey'),
                        (this.doneTaskBorderColor = 'grey'),
                        (this.critBorderColor = '#ff8888'),
                        (this.critBkgColor = 'red'),
                        (this.todayLineColor = 'red'),
                        (this.labelColor = 'black'),
                        (this.errorBkgColor = '#552222'),
                        (this.errorTextColor = '#552222');
                    }
                    var t, i;
                    return (
                      (t = e),
                      (i = [
                        {
                          key: 'updateColors',
                          value: function () {
                            (this.nodeBkg = this.mainBkg),
                              (this.nodeBorder = this.border1),
                              (this.clusterBkg = this.secondBkg),
                              (this.clusterBorder = this.border2),
                              (this.defaultLinkColor = this.lineColor),
                              (this.actorBorder = Object(n.darken)(
                                this.mainBkg,
                                20
                              )),
                              (this.actorBkg = this.mainBkg),
                              (this.labelBoxBkgColor = this.actorBkg),
                              (this.labelTextColor = this.actorTextColor),
                              (this.loopTextColor = this.actorTextColor),
                              (this.noteBorderColor = this.border2),
                              (this.noteTextColor = this.actorTextColor),
                              (this.taskBorderColor = this.border1),
                              (this.taskTextColor = this.taskTextLightColor),
                              (this.taskTextOutsideColor = this.taskTextDarkColor),
                              (this.activeTaskBorderColor = this.taskBorderColor),
                              (this.activeTaskBkgColor = this.mainBkg),
                              (this.classText = this.primaryTextColor),
                              (this.fillType0 = this.primaryColor),
                              (this.fillType1 = this.secondaryColor),
                              (this.fillType2 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 64 }
                              )),
                              (this.fillType3 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 64 }
                              )),
                              (this.fillType4 = Object(n.adjust)(
                                this.primaryColor,
                                { h: -64 }
                              )),
                              (this.fillType5 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: -64 }
                              )),
                              (this.fillType6 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 128 }
                              )),
                              (this.fillType7 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 128 }
                              ));
                          },
                        },
                        {
                          key: 'calculate',
                          value: function (e) {
                            var t = this;
                            if ('object' === s(e)) {
                              var i = Object.keys(e);
                              i.forEach(function (i) {
                                t[i] = e[i];
                              }),
                                this.updateColors(),
                                i.forEach(function (i) {
                                  t[i] = e[i];
                                });
                            } else this.updateColors();
                          },
                        },
                      ]) && o(t.prototype, i),
                      e
                    );
                  })(),
                  l = function (e) {
                    var t = new a();
                    return t.calculate(e), t;
                  };
              },
              './src/themes/theme-helpers.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'mkBorder', function () {
                    return r;
                  });
                var n = i('khroma'),
                  r = function (e, t) {
                    return t
                      ? Object(n.adjust)(e, { s: -40, l: 10 })
                      : Object(n.adjust)(e, { s: -40, l: -10 });
                  };
              },
              './src/themes/theme-neutral.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'getThemeVariables', function () {
                    return l;
                  });
                var n = i('khroma'),
                  r = i('./src/themes/theme-helpers.js');
                function s(e) {
                  return (s =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                function o(e, t) {
                  for (var i = 0; i < t.length; i++) {
                    var n = t[i];
                    (n.enumerable = n.enumerable || !1),
                      (n.configurable = !0),
                      'value' in n && (n.writable = !0),
                      Object.defineProperty(e, n.key, n);
                  }
                }
                var a = (function () {
                    function e() {
                      !(function (e, t) {
                        if (!(e instanceof t))
                          throw new TypeError(
                            'Cannot call a class as a function'
                          );
                      })(this, e),
                        (this.primaryColor = '#eee'),
                        (this.contrast = '#707070'),
                        (this.secondaryColor = Object(n.lighten)(
                          this.contrast,
                          55
                        )),
                        (this.background = '#ffffff'),
                        (this.tertiaryColor = Object(n.adjust)(
                          this.primaryColor,
                          { h: -160 }
                        )),
                        (this.primaryBorderColor = Object(r.mkBorder)(
                          this.primaryColor,
                          this.darkMode
                        )),
                        (this.secondaryBorderColor = Object(r.mkBorder)(
                          this.secondaryColor,
                          this.darkMode
                        )),
                        (this.tertiaryBorderColor = Object(r.mkBorder)(
                          this.tertiaryColor,
                          this.darkMode
                        )),
                        (this.primaryTextColor = Object(n.invert)(
                          this.primaryColor
                        )),
                        (this.secondaryTextColor = Object(n.invert)(
                          this.secondaryColor
                        )),
                        (this.tertiaryTextColor = Object(n.invert)(
                          this.tertiaryColor
                        )),
                        (this.lineColor = Object(n.invert)(this.background)),
                        (this.textColor = Object(n.invert)(this.background)),
                        (this.altBackground = Object(n.lighten)(
                          this.contrast,
                          55
                        )),
                        (this.mainBkg = '#eee'),
                        (this.secondBkg = 'calculated'),
                        (this.lineColor = '#666'),
                        (this.border1 = '#999'),
                        (this.border2 = 'calculated'),
                        (this.note = '#ffa'),
                        (this.text = '#333'),
                        (this.critical = '#d42'),
                        (this.done = '#bbb'),
                        (this.arrowheadColor = '#333333'),
                        (this.fontFamily =
                          '"trebuchet ms", verdana, arial, sans-serif'),
                        (this.fontSize = '16px'),
                        (this.nodeBkg = 'calculated'),
                        (this.nodeBorder = 'calculated'),
                        (this.clusterBkg = 'calculated'),
                        (this.clusterBorder = 'calculated'),
                        (this.defaultLinkColor = 'calculated'),
                        (this.titleColor = 'calculated'),
                        (this.edgeLabelBackground = 'white'),
                        (this.actorBorder = 'calculated'),
                        (this.actorBkg = 'calculated'),
                        (this.actorTextColor = 'calculated'),
                        (this.actorLineColor = 'calculated'),
                        (this.signalColor = 'calculated'),
                        (this.signalTextColor = 'calculated'),
                        (this.labelBoxBkgColor = 'calculated'),
                        (this.labelBoxBorderColor = 'calculated'),
                        (this.labelTextColor = 'calculated'),
                        (this.loopTextColor = 'calculated'),
                        (this.noteBorderColor = 'calculated'),
                        (this.noteBkgColor = 'calculated'),
                        (this.noteTextColor = 'calculated'),
                        (this.activationBorderColor = '#666'),
                        (this.activationBkgColor = '#f4f4f4'),
                        (this.sequenceNumberColor = 'white'),
                        (this.sectionBkgColor = 'calculated'),
                        (this.altSectionBkgColor = 'white'),
                        (this.sectionBkgColor2 = 'calculated'),
                        (this.taskBorderColor = 'calculated'),
                        (this.taskBkgColor = 'calculated'),
                        (this.taskTextLightColor = 'white'),
                        (this.taskTextColor = 'calculated'),
                        (this.taskTextDarkColor = 'calculated'),
                        (this.taskTextOutsideColor = 'calculated'),
                        (this.taskTextClickableColor = '#003163'),
                        (this.activeTaskBorderColor = 'calculated'),
                        (this.activeTaskBkgColor = 'calculated'),
                        (this.gridColor = 'calculated'),
                        (this.doneTaskBkgColor = 'calculated'),
                        (this.doneTaskBorderColor = 'calculated'),
                        (this.critBkgColor = 'calculated'),
                        (this.critBorderColor = 'calculated'),
                        (this.todayLineColor = 'calculated'),
                        (this.labelColor = 'black'),
                        (this.errorBkgColor = '#552222'),
                        (this.errorTextColor = '#552222');
                    }
                    var t, i;
                    return (
                      (t = e),
                      (i = [
                        {
                          key: 'updateColors',
                          value: function () {
                            (this.secondBkg = Object(n.lighten)(
                              this.contrast,
                              55
                            )),
                              (this.border2 = this.contrast),
                              (this.nodeBkg = this.mainBkg),
                              (this.nodeBorder = this.border1),
                              (this.clusterBkg = this.secondBkg),
                              (this.clusterBorder = this.border2),
                              (this.defaultLinkColor = this.lineColor),
                              (this.titleColor = this.text),
                              (this.actorBorder = Object(n.lighten)(
                                this.border1,
                                23
                              )),
                              (this.actorBkg = this.mainBkg),
                              (this.actorTextColor = this.text),
                              (this.actorLineColor = this.lineColor),
                              (this.signalColor = this.text),
                              (this.signalTextColor = this.text),
                              (this.labelBoxBkgColor = this.actorBkg),
                              (this.labelBoxBorderColor = this.actorBorder),
                              (this.labelTextColor = this.text),
                              (this.loopTextColor = this.text),
                              (this.noteBorderColor = Object(n.darken)(
                                this.note,
                                60
                              )),
                              (this.noteBkgColor = this.note),
                              (this.noteTextColor = this.actorTextColor),
                              (this.sectionBkgColor = Object(n.lighten)(
                                this.contrast,
                                30
                              )),
                              (this.sectionBkgColor2 = Object(n.lighten)(
                                this.contrast,
                                30
                              )),
                              (this.taskBorderColor = Object(n.darken)(
                                this.contrast,
                                10
                              )),
                              (this.taskBkgColor = this.contrast),
                              (this.taskTextColor = this.taskTextLightColor),
                              (this.taskTextDarkColor = this.text),
                              (this.taskTextOutsideColor = this.taskTextDarkColor),
                              (this.activeTaskBorderColor = this.taskBorderColor),
                              (this.activeTaskBkgColor = this.mainBkg),
                              (this.gridColor = Object(n.lighten)(
                                this.border1,
                                30
                              )),
                              (this.doneTaskBkgColor = this.done),
                              (this.doneTaskBorderColor = this.lineColor),
                              (this.critBkgColor = this.critical),
                              (this.critBorderColor = Object(n.darken)(
                                this.critBkgColor,
                                10
                              )),
                              (this.todayLineColor = this.critBkgColor),
                              (this.classText = this.primaryTextColor),
                              (this.fillType0 = this.primaryColor),
                              (this.fillType1 = this.secondaryColor),
                              (this.fillType2 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 64 }
                              )),
                              (this.fillType3 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 64 }
                              )),
                              (this.fillType4 = Object(n.adjust)(
                                this.primaryColor,
                                { h: -64 }
                              )),
                              (this.fillType5 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: -64 }
                              )),
                              (this.fillType6 = Object(n.adjust)(
                                this.primaryColor,
                                { h: 128 }
                              )),
                              (this.fillType7 = Object(n.adjust)(
                                this.secondaryColor,
                                { h: 128 }
                              ));
                          },
                        },
                        {
                          key: 'calculate',
                          value: function (e) {
                            var t = this;
                            if ('object' === s(e)) {
                              var i = Object.keys(e);
                              i.forEach(function (i) {
                                t[i] = e[i];
                              }),
                                this.updateColors(),
                                i.forEach(function (i) {
                                  t[i] = e[i];
                                });
                            } else this.updateColors();
                          },
                        },
                      ]) && o(t.prototype, i),
                      e
                    );
                  })(),
                  l = function (e) {
                    var t = new a();
                    return t.calculate(e), t;
                  };
              },
              './src/utils.js': function (e, t, i) {
                'use strict';
                i.r(t),
                  i.d(t, 'detectInit', function () {
                    return p;
                  }),
                  i.d(t, 'detectDirective', function () {
                    return m;
                  }),
                  i.d(t, 'detectType', function () {
                    return _;
                  }),
                  i.d(t, 'isSubstringInArray', function () {
                    return v;
                  }),
                  i.d(t, 'interpolateToCurve', function () {
                    return y;
                  }),
                  i.d(t, 'formatUrl', function () {
                    return w;
                  }),
                  i.d(t, 'runFunc', function () {
                    return C;
                  }),
                  i.d(t, 'getStylesFromArray', function () {
                    return k;
                  }),
                  i.d(t, 'generateId', function () {
                    return L;
                  }),
                  i.d(t, 'random', function () {
                    return M;
                  }),
                  i.d(t, 'assignWithDepth', function () {
                    return D;
                  }),
                  i.d(t, 'getTextObj', function () {
                    return N;
                  }),
                  i.d(t, 'drawSimpleText', function () {
                    return E;
                  }),
                  i.d(t, 'wrapLabel', function () {
                    return T;
                  }),
                  i.d(t, 'calculateTextHeight', function () {
                    return O;
                  }),
                  i.d(t, 'calculateTextWidth', function () {
                    return A;
                  }),
                  i.d(t, 'calculateTextDimensions', function () {
                    return R;
                  }),
                  i.d(t, 'calculateSvgSizeAttrs', function () {
                    return P;
                  }),
                  i.d(t, 'configureSvgSize', function () {
                    return F;
                  }),
                  i.d(t, 'initIdGeneratior', function () {
                    return B;
                  });
                var n = i('@braintree/sanitize-url'),
                  r = i('d3'),
                  s = i('./src/diagrams/common/common.js'),
                  o = i('./src/logger.js'),
                  a = void 0;
                function l(e, t) {
                  for (var i = 0; i < t.length; i++) {
                    var n = t[i];
                    (n.enumerable = n.enumerable || !1),
                      (n.configurable = !0),
                      'value' in n && (n.writable = !0),
                      Object.defineProperty(e, n.key, n);
                  }
                }
                function c(e) {
                  return (c =
                    'function' == typeof Symbol &&
                    'symbol' == typeof Symbol.iterator
                      ? function (e) {
                          return typeof e;
                        }
                      : function (e) {
                          return e &&
                            'function' == typeof Symbol &&
                            e.constructor === Symbol &&
                            e !== Symbol.prototype
                            ? 'symbol'
                            : typeof e;
                        })(e);
                }
                function d(e) {
                  return (
                    (function (e) {
                      if (Array.isArray(e)) {
                        for (
                          var t = 0, i = new Array(e.length);
                          t < e.length;
                          t++
                        )
                          i[t] = e[t];
                        return i;
                      }
                    })(e) ||
                    (function (e) {
                      if (
                        Symbol.iterator in Object(e) ||
                        '[object Arguments]' ===
                          Object.prototype.toString.call(e)
                      )
                        return Array.from(e);
                    })(e) ||
                    (function () {
                      throw new TypeError(
                        'Invalid attempt to spread non-iterable instance'
                      );
                    })()
                  );
                }
                var h = {
                    curveBasis: r.curveBasis,
                    curveBasisClosed: r.curveBasisClosed,
                    curveBasisOpen: r.curveBasisOpen,
                    curveLinear: r.curveLinear,
                    curveLinearClosed: r.curveLinearClosed,
                    curveMonotoneX: r.curveMonotoneX,
                    curveMonotoneY: r.curveMonotoneY,
                    curveNatural: r.curveNatural,
                    curveStep: r.curveStep,
                    curveStepAfter: r.curveStepAfter,
                    curveStepBefore: r.curveStepBefore,
                  },
                  u = /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi,
                  g = /\s*(?:(?:(\w+)(?=:):|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi,
                  f = /\s*%%.*\n/gm,
                  p = function (e) {
                    var t = m(e, /(?:init\b)|(?:initialize\b)/),
                      i = {};
                    if (Array.isArray(t)) {
                      var n = t.map(function (e) {
                        return e.args;
                      });
                      i = D(i, d(n));
                    } else i = t.args;
                    if (i) {
                      var r = _(e);
                      ['config'].forEach(function (e) {
                        void 0 !== i[e] &&
                          ('flowchart-v2' === r && (r = 'flowchart'),
                          (i[r] = i[e]),
                          delete i[e]);
                      });
                    }
                    return i;
                  },
                  m = function (e) {
                    var t =
                      arguments.length > 1 && void 0 !== arguments[1]
                        ? arguments[1]
                        : null;
                    try {
                      var i = new RegExp(
                        '[%]{2}(?![{]'.concat(g.source, ')(?=[}][%]{2}).*\n'),
                        'ig'
                      );
                      (e = e.trim().replace(i, '').replace(/'/gm, '"')),
                        o.log.debug(
                          'Detecting diagram directive'
                            .concat(
                              null !== t ? ' type:' + t : '',
                              ' based on the text:'
                            )
                            .concat(e)
                        );
                      for (var n, r = []; null !== (n = u.exec(e)); )
                        if (
                          (n.index === u.lastIndex && u.lastIndex++,
                          (n && !t) ||
                            (t && n[1] && n[1].match(t)) ||
                            (t && n[2] && n[2].match(t)))
                        ) {
                          var s = n[1] ? n[1] : n[2],
                            a = n[3]
                              ? n[3].trim()
                              : n[4]
                              ? JSON.parse(n[4].trim())
                              : null;
                          r.push({ type: s, args: a });
                        }
                      return (
                        0 === r.length && r.push({ type: e, args: null }),
                        1 === r.length ? r[0] : r
                      );
                    } catch (i) {
                      return (
                        o.log.error(
                          'ERROR: '
                            .concat(
                              i.message,
                              ' - Unable to parse directive\n      '
                            )
                            .concat(
                              null !== t ? ' type:' + t : '',
                              ' based on the text:'
                            )
                            .concat(e)
                        ),
                        { type: null, args: null }
                      );
                    }
                  },
                  _ = function (e) {
                    return (
                      (e = e.replace(u, '').replace(f, '\n')),
                      o.log.debug(
                        'Detecting diagram type based on the text ' + e
                      ),
                      e.match(/^\s*sequenceDiagram/)
                        ? 'sequence'
                        : e.match(/^\s*gantt/)
                        ? 'gantt'
                        : e.match(/^\s*classDiagram-v2/)
                        ? 'classDiagram'
                        : e.match(/^\s*classDiagram/)
                        ? 'class'
                        : e.match(/^\s*stateDiagram-v2/)
                        ? 'stateDiagram'
                        : e.match(/^\s*stateDiagram/)
                        ? 'state'
                        : e.match(/^\s*gitGraph/)
                        ? 'git'
                        : e.match(/^\s*flowchart/)
                        ? 'flowchart-v2'
                        : e.match(/^\s*info/)
                        ? 'info'
                        : e.match(/^\s*pie/)
                        ? 'pie'
                        : e.match(/^\s*erDiagram/)
                        ? 'er'
                        : e.match(/^\s*journey/)
                        ? 'journey'
                        : e.match(/^\s*requirement/) ||
                          e.match(/^\s*requirementDiagram/)
                        ? 'requirement'
                        : 'flowchart'
                    );
                  },
                  b = function (e, t) {
                    var i = {};
                    return function () {
                      for (
                        var n = arguments.length, r = new Array(n), s = 0;
                        s < n;
                        s++
                      )
                        r[s] = arguments[s];
                      var o = t ? t.apply(a, r) : r[0];
                      if (o in i) return i[o];
                      var l = e.apply(void 0, r);
                      return (i[o] = l), l;
                    };
                  },
                  v = function (e, t) {
                    for (var i = 0; i < t.length; i++)
                      if (t[i].match(e)) return i;
                    return -1;
                  },
                  y = function (e, t) {
                    if (!e) return t;
                    var i = 'curve'.concat(
                      e.charAt(0).toUpperCase() + e.slice(1)
                    );
                    return h[i] || t;
                  },
                  w = function (e, t) {
                    var i = e.trim();
                    if (i)
                      return 'loose' !== t.securityLevel
                        ? Object(n.sanitizeUrl)(i)
                        : i;
                  },
                  C = function (e) {
                    for (
                      var t,
                        i = e.split('.'),
                        n = i.length - 1,
                        r = i[n],
                        s = window,
                        o = 0;
                      o < n;
                      o++
                    )
                      if (!(s = s[i[o]])) return;
                    for (
                      var a = arguments.length,
                        l = new Array(a > 1 ? a - 1 : 0),
                        c = 1;
                      c < a;
                      c++
                    )
                      l[c - 1] = arguments[c];
                    (t = s)[r].apply(t, l);
                  },
                  S = function (e, t) {
                    return e && t
                      ? Math.sqrt(
                          Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)
                        )
                      : 0;
                  },
                  k = function (e) {
                    for (var t = '', i = '', n = 0; n < e.length; n++)
                      void 0 !== e[n] &&
                        (e[n].startsWith('color:') ||
                        e[n].startsWith('text-align:')
                          ? (i = i + e[n] + ';')
                          : (t = t + e[n] + ';'));
                    return { style: t, labelStyle: i };
                  },
                  x = 0,
                  L = function () {
                    return (
                      x++,
                      'id-' + Math.random().toString(36).substr(2, 12) + '-' + x
                    );
                  },
                  M = function (e) {
                    return (function (e) {
                      for (
                        var t = '', i = '0123456789abcdef', n = i.length, r = 0;
                        r < e;
                        r++
                      )
                        t += i.charAt(Math.floor(Math.random() * n));
                      return t;
                    })(e.length);
                  },
                  D = function e(t, i, n) {
                    var r = Object.assign({ depth: 2, clobber: !1 }, n),
                      s = r.depth,
                      o = r.clobber;
                    return Array.isArray(i) && !Array.isArray(t)
                      ? (i.forEach(function (i) {
                          return e(t, i, n);
                        }),
                        t)
                      : Array.isArray(i) && Array.isArray(t)
                      ? (i.forEach(function (e) {
                          -1 === t.indexOf(e) && t.push(e);
                        }),
                        t)
                      : void 0 === t || s <= 0
                      ? null != t && 'object' === c(t) && 'object' === c(i)
                        ? Object.assign(t, i)
                        : i
                      : (void 0 !== i &&
                          'object' === c(t) &&
                          'object' === c(i) &&
                          Object.keys(i).forEach(function (n) {
                            'object' !== c(i[n]) ||
                            (void 0 !== t[n] && 'object' !== c(t[n]))
                              ? (o ||
                                  ('object' !== c(t[n]) &&
                                    'object' !== c(i[n]))) &&
                                (t[n] = i[n])
                              : (void 0 === t[n] &&
                                  (t[n] = Array.isArray(i[n]) ? [] : {}),
                                (t[n] = e(t[n], i[n], {
                                  depth: s - 1,
                                  clobber: o,
                                })));
                          }),
                        t);
                  },
                  N = function () {
                    return {
                      x: 0,
                      y: 0,
                      fill: void 0,
                      anchor: 'start',
                      style: '#666',
                      width: 100,
                      height: 100,
                      textMargin: 0,
                      rx: 0,
                      ry: 0,
                      valign: void 0,
                    };
                  },
                  E = function (e, t) {
                    var i = t.text.replace(s.default.lineBreakRegex, ' '),
                      n = e.append('text');
                    n.attr('x', t.x),
                      n.attr('y', t.y),
                      n.style('text-anchor', t.anchor),
                      n.style('font-family', t.fontFamily),
                      n.style('font-size', t.fontSize),
                      n.style('font-weight', t.fontWeight),
                      n.attr('fill', t.fill),
                      void 0 !== t.class && n.attr('class', t.class);
                    var r = n.append('tspan');
                    return (
                      r.attr('x', t.x + 2 * t.textMargin),
                      r.attr('fill', t.fill),
                      r.text(i),
                      n
                    );
                  },
                  T = b(
                    function (e, t, i) {
                      if (!e) return e;
                      if (
                        ((i = Object.assign(
                          {
                            fontSize: 12,
                            fontWeight: 400,
                            fontFamily: 'Arial',
                            joinWith: '<br/>',
                          },
                          i
                        )),
                        s.default.lineBreakRegex.test(e))
                      )
                        return e;
                      var n = e.split(' '),
                        r = [],
                        o = '';
                      return (
                        n.forEach(function (e, s) {
                          var a = A(''.concat(e, ' '), i),
                            l = A(o, i);
                          if (a > t) {
                            var c = I(e, t, '-', i),
                              h = c.hyphenatedStrings,
                              u = c.remainingWord;
                            r.push.apply(r, [o].concat(d(h))), (o = u);
                          } else l + a >= t ? (r.push(o), (o = e)) : (o = [o, e].filter(Boolean).join(' '));
                          s + 1 === n.length && r.push(o);
                        }),
                        r
                          .filter(function (e) {
                            return '' !== e;
                          })
                          .join(i.joinWith)
                      );
                    },
                    function (e, t, i) {
                      return ''
                        .concat(e, '-')
                        .concat(t, '-')
                        .concat(i.fontSize, '-')
                        .concat(i.fontWeight, '-')
                        .concat(i.fontFamily, '-')
                        .concat(i.joinWith);
                    }
                  ),
                  I = b(
                    function (e, t) {
                      var i =
                          arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : '-',
                        n = arguments.length > 3 ? arguments[3] : void 0;
                      n = Object.assign(
                        {
                          fontSize: 12,
                          fontWeight: 400,
                          fontFamily: 'Arial',
                          margin: 0,
                        },
                        n
                      );
                      var r = e.split(''),
                        s = [],
                        o = '';
                      return (
                        r.forEach(function (e, a) {
                          var l = ''.concat(o).concat(e);
                          if (A(l, n) >= t) {
                            var c = a + 1,
                              d = r.length === c,
                              h = ''.concat(l).concat(i);
                            s.push(d ? l : h), (o = '');
                          } else o = l;
                        }),
                        { hyphenatedStrings: s, remainingWord: o }
                      );
                    },
                    function (e, t) {
                      var i =
                          arguments.length > 2 && void 0 !== arguments[2]
                            ? arguments[2]
                            : '-',
                        n = arguments.length > 3 ? arguments[3] : void 0;
                      return ''
                        .concat(e, '-')
                        .concat(t, '-')
                        .concat(i, '-')
                        .concat(n.fontSize, '-')
                        .concat(n.fontWeight, '-')
                        .concat(n.fontFamily);
                    }
                  ),
                  O = function (e, t) {
                    return (
                      (t = Object.assign(
                        {
                          fontSize: 12,
                          fontWeight: 400,
                          fontFamily: 'Arial',
                          margin: 15,
                        },
                        t
                      )),
                      R(e, t).height
                    );
                  },
                  A = function (e, t) {
                    return (
                      (t = Object.assign(
                        { fontSize: 12, fontWeight: 400, fontFamily: 'Arial' },
                        t
                      )),
                      R(e, t).width
                    );
                  },
                  R = b(
                    function (e, t) {
                      var i = (t = Object.assign(
                          {
                            fontSize: 12,
                            fontWeight: 400,
                            fontFamily: 'Arial',
                          },
                          t
                        )),
                        n = i.fontSize,
                        o = i.fontFamily,
                        a = i.fontWeight;
                      if (!e) return { width: 0, height: 0 };
                      var l = ['sans-serif', o],
                        c = e.split(s.default.lineBreakRegex),
                        d = [],
                        h = Object(r.select)('body');
                      if (!h.remove)
                        return { width: 0, height: 0, lineHeight: 0 };
                      for (
                        var u = h.append('svg'), g = 0, f = l;
                        g < f.length;
                        g++
                      ) {
                        var p = f[g],
                          m = 0,
                          _ = { width: 0, height: 0, lineHeight: 0 },
                          b = !0,
                          v = !1,
                          y = void 0;
                        try {
                          for (
                            var w, C = c[Symbol.iterator]();
                            !(b = (w = C.next()).done);
                            b = !0
                          ) {
                            var S = w.value,
                              k = N();
                            k.text = S;
                            var x = E(u, k)
                                .style('font-size', n)
                                .style('font-weight', a)
                                .style('font-family', p),
                              L = (x._groups || x)[0][0].getBBox();
                            (_.width = Math.round(Math.max(_.width, L.width))),
                              (m = Math.round(L.height)),
                              (_.height += m),
                              (_.lineHeight = Math.round(
                                Math.max(_.lineHeight, m)
                              ));
                          }
                        } catch (e) {
                          (v = !0), (y = e);
                        } finally {
                          try {
                            b || null == C.return || C.return();
                          } finally {
                            if (v) throw y;
                          }
                        }
                        d.push(_);
                      }
                      return (
                        u.remove(),
                        d[
                          isNaN(d[1].height) ||
                          isNaN(d[1].width) ||
                          isNaN(d[1].lineHeight) ||
                          (d[0].height > d[1].height &&
                            d[0].width > d[1].width &&
                            d[0].lineHeight > d[1].lineHeight)
                            ? 0
                            : 1
                        ]
                      );
                    },
                    function (e, t) {
                      return ''
                        .concat(e, '-')
                        .concat(t.fontSize, '-')
                        .concat(t.fontWeight, '-')
                        .concat(t.fontFamily);
                    }
                  ),
                  P = function (e, t, i) {
                    var n = new Map();
                    return (
                      n.set('height', e),
                      i
                        ? (n.set('width', '100%'),
                          n.set('style', 'max-width: '.concat(t, 'px;')))
                        : n.set('width', t),
                      n
                    );
                  },
                  F = function (e, t, i, n) {
                    !(function (e, t) {
                      var i = !0,
                        n = !1,
                        r = void 0;
                      try {
                        for (
                          var s, o = t[Symbol.iterator]();
                          !(i = (s = o.next()).done);
                          i = !0
                        ) {
                          var a = s.value;
                          e.attr(a[0], a[1]);
                        }
                      } catch (e) {
                        (n = !0), (r = e);
                      } finally {
                        try {
                          i || null == o.return || o.return();
                        } finally {
                          if (n) throw r;
                        }
                      }
                    })(e, P(t, i, n));
                  },
                  B = (function () {
                    function e(t, i) {
                      !(function (e, t) {
                        if (!(e instanceof t))
                          throw new TypeError(
                            'Cannot call a class as a function'
                          );
                      })(this, e),
                        (this.deterministic = t),
                        (this.seed = i),
                        (this.count = i ? i.length : 0);
                    }
                    var t, i;
                    return (
                      (t = e),
                      (i = [
                        {
                          key: 'next',
                          value: function () {
                            return this.deterministic
                              ? this.count++
                              : Date.now();
                          },
                        },
                      ]) && l(t.prototype, i),
                      e
                    );
                  })();
                t.default = {
                  assignWithDepth: D,
                  wrapLabel: T,
                  calculateTextHeight: O,
                  calculateTextWidth: A,
                  calculateTextDimensions: R,
                  calculateSvgSizeAttrs: P,
                  configureSvgSize: F,
                  detectInit: p,
                  detectDirective: m,
                  detectType: _,
                  isSubstringInArray: v,
                  interpolateToCurve: y,
                  calcLabelPosition: function (e) {
                    return (function (e) {
                      var t,
                        i = 0;
                      e.forEach(function (e) {
                        (i += S(e, t)), (t = e);
                      });
                      var n = i / 2,
                        r = void 0;
                      return (
                        (t = void 0),
                        e.forEach(function (e) {
                          if (t && !r) {
                            var i = S(e, t);
                            if (i < n) n -= i;
                            else {
                              var s = n / i;
                              s <= 0 && (r = t),
                                s >= 1 && (r = { x: e.x, y: e.y }),
                                s > 0 &&
                                  s < 1 &&
                                  (r = {
                                    x: (1 - s) * t.x + s * e.x,
                                    y: (1 - s) * t.y + s * e.y,
                                  });
                            }
                          }
                          t = e;
                        }),
                        r
                      );
                    })(e);
                  },
                  calcCardinalityPosition: function (e, t, i) {
                    var n;
                    o.log.info('our points', t),
                      t[0] !== i && (t = t.reverse()),
                      t.forEach(function (e) {
                        S(e, n), (n = e);
                      });
                    var r,
                      s = 25;
                    (n = void 0),
                      t.forEach(function (e) {
                        if (n && !r) {
                          var t = S(e, n);
                          if (t < s) s -= t;
                          else {
                            var i = s / t;
                            i <= 0 && (r = n),
                              i >= 1 && (r = { x: e.x, y: e.y }),
                              i > 0 &&
                                i < 1 &&
                                (r = {
                                  x: (1 - i) * n.x + i * e.x,
                                  y: (1 - i) * n.y + i * e.y,
                                });
                          }
                        }
                        n = e;
                      });
                    var a = e ? 10 : 5,
                      l = Math.atan2(t[0].y - r.y, t[0].x - r.x),
                      c = { x: 0, y: 0 };
                    return (
                      (c.x = Math.sin(l) * a + (t[0].x + r.x) / 2),
                      (c.y = -Math.cos(l) * a + (t[0].y + r.y) / 2),
                      c
                    );
                  },
                  calcTerminalLabelPosition: function (e, t, i) {
                    var n,
                      r = JSON.parse(JSON.stringify(i));
                    o.log.info('our points', r),
                      'start_left' !== t &&
                        'start_right' !== t &&
                        (r = r.reverse()),
                      r.forEach(function (e) {
                        S(e, n), (n = e);
                      });
                    var s,
                      a = 25;
                    (n = void 0),
                      r.forEach(function (e) {
                        if (n && !s) {
                          var t = S(e, n);
                          if (t < a) a -= t;
                          else {
                            var i = a / t;
                            i <= 0 && (s = n),
                              i >= 1 && (s = { x: e.x, y: e.y }),
                              i > 0 &&
                                i < 1 &&
                                (s = {
                                  x: (1 - i) * n.x + i * e.x,
                                  y: (1 - i) * n.y + i * e.y,
                                });
                          }
                        }
                        n = e;
                      });
                    var l = 10,
                      c = Math.atan2(r[0].y - s.y, r[0].x - s.x),
                      d = { x: 0, y: 0 };
                    return (
                      (d.x = Math.sin(c) * l + (r[0].x + s.x) / 2),
                      (d.y = -Math.cos(c) * l + (r[0].y + s.y) / 2),
                      'start_left' === t &&
                        ((d.x = Math.sin(c + Math.PI) * l + (r[0].x + s.x) / 2),
                        (d.y =
                          -Math.cos(c + Math.PI) * l + (r[0].y + s.y) / 2)),
                      'end_right' === t &&
                        ((d.x =
                          Math.sin(c - Math.PI) * l + (r[0].x + s.x) / 2 - 5),
                        (d.y =
                          -Math.cos(c - Math.PI) * l + (r[0].y + s.y) / 2 - 5)),
                      'end_left' === t &&
                        ((d.x = Math.sin(c) * l + (r[0].x + s.x) / 2 - 5),
                        (d.y = -Math.cos(c) * l + (r[0].y + s.y) / 2 - 5)),
                      d
                    );
                  },
                  formatUrl: w,
                  getStylesFromArray: k,
                  generateId: L,
                  random: M,
                  memoize: b,
                  runFunc: C,
                  initIdGeneratior: B,
                };
              },
              '@braintree/sanitize-url': function (e, t) {
                e.exports = i(29609);
              },
              d3: function (e, t) {
                e.exports = i(69362);
              },
              dagre: function (e, t) {
                e.exports = i(70681);
              },
              'dagre-d3': function (e, t) {
                e.exports = i(44949);
              },
              'dagre-d3/lib/label/add-html-label.js': function (e, t) {
                e.exports = i(88284);
              },
              'entity-decode/browser': function (e, t) {
                e.exports = i(42859);
              },
              graphlib: function (e, t) {
                e.exports = i(28282);
              },
              khroma: function (e, t) {
                e.exports = i(8613);
              },
              'moment-mini': function (e, t) {
                e.exports = i(11941);
              },
              stylis: function (e, t) {
                e.exports = i(673);
              },
            }).default;
          }),
          (e.exports = n());
      },
      89234: () => {},
      11748: (e, t, i) => {
        var n = { './locale': 89234, './locale.js': 89234 };
        function r(e) {
          var t = s(e);
          return i(t);
        }
        function s(e) {
          if (!i.o(n, e)) {
            var t = new Error("Cannot find module '" + e + "'");
            throw ((t.code = 'MODULE_NOT_FOUND'), t);
          }
          return n[e];
        }
        (r.keys = function () {
          return Object.keys(n);
        }),
          (r.resolve = s),
          (e.exports = r),
          (r.id = 11748);
      },
      11941: function (e, t, i) {
        (e = i.nmd(e)).exports = (function () {
          'use strict';
          var t, n;
          function r() {
            return t.apply(null, arguments);
          }
          function s(e) {
            return (
              e instanceof Array ||
              '[object Array]' === Object.prototype.toString.call(e)
            );
          }
          function o(e) {
            return (
              null != e &&
              '[object Object]' === Object.prototype.toString.call(e)
            );
          }
          function a(e) {
            return void 0 === e;
          }
          function l(e) {
            return (
              'number' == typeof e ||
              '[object Number]' === Object.prototype.toString.call(e)
            );
          }
          function c(e) {
            return (
              e instanceof Date ||
              '[object Date]' === Object.prototype.toString.call(e)
            );
          }
          function d(e, t) {
            var i,
              n = [];
            for (i = 0; i < e.length; ++i) n.push(t(e[i], i));
            return n;
          }
          function h(e, t) {
            return Object.prototype.hasOwnProperty.call(e, t);
          }
          function u(e, t) {
            for (var i in t) h(t, i) && (e[i] = t[i]);
            return (
              h(t, 'toString') && (e.toString = t.toString),
              h(t, 'valueOf') && (e.valueOf = t.valueOf),
              e
            );
          }
          function g(e, t, i, n) {
            return bt(e, t, i, n, !0).utc();
          }
          function f(e) {
            return (
              null == e._pf &&
                (e._pf = {
                  empty: !1,
                  unusedTokens: [],
                  unusedInput: [],
                  overflow: -2,
                  charsLeftOver: 0,
                  nullInput: !1,
                  invalidMonth: null,
                  invalidFormat: !1,
                  userInvalidated: !1,
                  iso: !1,
                  parsedDateParts: [],
                  meridiem: null,
                  rfc2822: !1,
                  weekdayMismatch: !1,
                }),
              e._pf
            );
          }
          function p(e) {
            if (null == e._isValid) {
              var t = f(e),
                i = n.call(t.parsedDateParts, function (e) {
                  return null != e;
                }),
                r =
                  !isNaN(e._d.getTime()) &&
                  t.overflow < 0 &&
                  !t.empty &&
                  !t.invalidMonth &&
                  !t.invalidWeekday &&
                  !t.weekdayMismatch &&
                  !t.nullInput &&
                  !t.invalidFormat &&
                  !t.userInvalidated &&
                  (!t.meridiem || (t.meridiem && i));
              if (
                (e._strict &&
                  (r =
                    r &&
                    0 === t.charsLeftOver &&
                    0 === t.unusedTokens.length &&
                    void 0 === t.bigHour),
                null != Object.isFrozen && Object.isFrozen(e))
              )
                return r;
              e._isValid = r;
            }
            return e._isValid;
          }
          function m(e) {
            var t = g(NaN);
            return null != e ? u(f(t), e) : (f(t).userInvalidated = !0), t;
          }
          n = Array.prototype.some
            ? Array.prototype.some
            : function (e) {
                for (
                  var t = Object(this), i = t.length >>> 0, n = 0;
                  n < i;
                  n++
                )
                  if (n in t && e.call(this, t[n], n, t)) return !0;
                return !1;
              };
          var _ = (r.momentProperties = []);
          function b(e, t) {
            var i, n, r;
            if (
              (a(t._isAMomentObject) ||
                (e._isAMomentObject = t._isAMomentObject),
              a(t._i) || (e._i = t._i),
              a(t._f) || (e._f = t._f),
              a(t._l) || (e._l = t._l),
              a(t._strict) || (e._strict = t._strict),
              a(t._tzm) || (e._tzm = t._tzm),
              a(t._isUTC) || (e._isUTC = t._isUTC),
              a(t._offset) || (e._offset = t._offset),
              a(t._pf) || (e._pf = f(t)),
              a(t._locale) || (e._locale = t._locale),
              0 < _.length)
            )
              for (i = 0; i < _.length; i++)
                a((r = t[(n = _[i])])) || (e[n] = r);
            return e;
          }
          var v = !1;
          function y(e) {
            b(this, e),
              (this._d = new Date(null != e._d ? e._d.getTime() : NaN)),
              this.isValid() || (this._d = new Date(NaN)),
              !1 === v && ((v = !0), r.updateOffset(this), (v = !1));
          }
          function w(e) {
            return e instanceof y || (null != e && null != e._isAMomentObject);
          }
          function C(e) {
            return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
          }
          function S(e) {
            var t = +e,
              i = 0;
            return 0 !== t && isFinite(t) && (i = C(t)), i;
          }
          function k(e, t, i) {
            var n,
              r = Math.min(e.length, t.length),
              s = Math.abs(e.length - t.length),
              o = 0;
            for (n = 0; n < r; n++)
              ((i && e[n] !== t[n]) || (!i && S(e[n]) !== S(t[n]))) && o++;
            return o + s;
          }
          function x(e) {
            !1 === r.suppressDeprecationWarnings &&
              'undefined' != typeof console &&
              console.warn &&
              console.warn('Deprecation warning: ' + e);
          }
          function L(e, t) {
            var i = !0;
            return u(function () {
              if (
                (null != r.deprecationHandler && r.deprecationHandler(null, e),
                i)
              ) {
                for (var n, s = [], o = 0; o < arguments.length; o++) {
                  if (((n = ''), 'object' == typeof arguments[o])) {
                    for (var a in ((n += '\n[' + o + '] '), arguments[0]))
                      n += a + ': ' + arguments[0][a] + ', ';
                    n = n.slice(0, -2);
                  } else n = arguments[o];
                  s.push(n);
                }
                x(
                  e +
                    '\nArguments: ' +
                    Array.prototype.slice.call(s).join('') +
                    '\n' +
                    new Error().stack
                ),
                  (i = !1);
              }
              return t.apply(this, arguments);
            }, t);
          }
          var M,
            D = {};
          function N(e, t) {
            null != r.deprecationHandler && r.deprecationHandler(e, t),
              D[e] || (x(t), (D[e] = !0));
          }
          function E(e) {
            return (
              e instanceof Function ||
              '[object Function]' === Object.prototype.toString.call(e)
            );
          }
          function T(e, t) {
            var i,
              n = u({}, e);
            for (i in t)
              h(t, i) &&
                (o(e[i]) && o(t[i])
                  ? ((n[i] = {}), u(n[i], e[i]), u(n[i], t[i]))
                  : null != t[i]
                  ? (n[i] = t[i])
                  : delete n[i]);
            for (i in e) h(e, i) && !h(t, i) && o(e[i]) && (n[i] = u({}, n[i]));
            return n;
          }
          function I(e) {
            null != e && this.set(e);
          }
          (r.suppressDeprecationWarnings = !1),
            (r.deprecationHandler = null),
            (M = Object.keys
              ? Object.keys
              : function (e) {
                  var t,
                    i = [];
                  for (t in e) h(e, t) && i.push(t);
                  return i;
                });
          var O = {};
          function A(e, t) {
            var i = e.toLowerCase();
            O[i] = O[i + 's'] = O[t] = e;
          }
          function R(e) {
            return 'string' == typeof e ? O[e] || O[e.toLowerCase()] : void 0;
          }
          function P(e) {
            var t,
              i,
              n = {};
            for (i in e) h(e, i) && (t = R(i)) && (n[t] = e[i]);
            return n;
          }
          var F = {};
          function B(e, t) {
            F[e] = t;
          }
          function W(e, t, i) {
            var n = '' + Math.abs(e),
              r = t - n.length;
            return (
              (0 <= e ? (i ? '+' : '') : '-') +
              Math.pow(10, Math.max(0, r)).toString().substr(1) +
              n
            );
          }
          var Y = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
            H = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
            j = {},
            V = {};
          function z(e, t, i, n) {
            var r = n;
            'string' == typeof n &&
              (r = function () {
                return this[n]();
              }),
              e && (V[e] = r),
              t &&
                (V[t[0]] = function () {
                  return W(r.apply(this, arguments), t[1], t[2]);
                }),
              i &&
                (V[i] = function () {
                  return this.localeData().ordinal(r.apply(this, arguments), e);
                });
          }
          function U(e, t) {
            return e.isValid()
              ? ((t = $(t, e.localeData())),
                (j[t] =
                  j[t] ||
                  (function (e) {
                    var t,
                      i,
                      n,
                      r = e.match(Y);
                    for (t = 0, i = r.length; t < i; t++)
                      V[r[t]]
                        ? (r[t] = V[r[t]])
                        : (r[t] = (n = r[t]).match(/\[[\s\S]/)
                            ? n.replace(/^\[|\]$/g, '')
                            : n.replace(/\\/g, ''));
                    return function (t) {
                      var n,
                        s = '';
                      for (n = 0; n < i; n++)
                        s += E(r[n]) ? r[n].call(t, e) : r[n];
                      return s;
                    };
                  })(t)),
                j[t](e))
              : e.localeData().invalidDate();
          }
          function $(e, t) {
            var i = 5;
            function n(e) {
              return t.longDateFormat(e) || e;
            }
            for (H.lastIndex = 0; 0 <= i && H.test(e); )
              (e = e.replace(H, n)), (H.lastIndex = 0), (i -= 1);
            return e;
          }
          var K = /\d/,
            q = /\d\d/,
            G = /\d{3}/,
            Z = /\d{4}/,
            J = /[+-]?\d{6}/,
            Q = /\d\d?/,
            X = /\d\d\d\d?/,
            ee = /\d\d\d\d\d\d?/,
            te = /\d{1,3}/,
            ie = /\d{1,4}/,
            ne = /[+-]?\d{1,6}/,
            re = /\d+/,
            se = /[+-]?\d+/,
            oe = /Z|[+-]\d\d:?\d\d/gi,
            ae = /Z|[+-]\d\d(?::?\d\d)?/gi,
            le = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
            ce = {};
          function de(e, t, i) {
            ce[e] = E(t)
              ? t
              : function (e, n) {
                  return e && i ? i : t;
                };
          }
          function he(e, t) {
            return h(ce, e)
              ? ce[e](t._strict, t._locale)
              : new RegExp(
                  ue(
                    e
                      .replace('\\', '')
                      .replace(
                        /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
                        function (e, t, i, n, r) {
                          return t || i || n || r;
                        }
                      )
                  )
                );
          }
          function ue(e) {
            return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
          }
          var ge = {};
          function fe(e, t) {
            var i,
              n = t;
            for (
              'string' == typeof e && (e = [e]),
                l(t) &&
                  (n = function (e, i) {
                    i[t] = S(e);
                  }),
                i = 0;
              i < e.length;
              i++
            )
              ge[e[i]] = n;
          }
          function pe(e, t) {
            fe(e, function (e, i, n, r) {
              (n._w = n._w || {}), t(e, n._w, n, r);
            });
          }
          function me(e) {
            return _e(e) ? 366 : 365;
          }
          function _e(e) {
            return (e % 4 == 0 && e % 100 != 0) || e % 400 == 0;
          }
          z('Y', 0, 0, function () {
            var e = this.year();
            return e <= 9999 ? '' + e : '+' + e;
          }),
            z(0, ['YY', 2], 0, function () {
              return this.year() % 100;
            }),
            z(0, ['YYYY', 4], 0, 'year'),
            z(0, ['YYYYY', 5], 0, 'year'),
            z(0, ['YYYYYY', 6, !0], 0, 'year'),
            A('year', 'y'),
            B('year', 1),
            de('Y', se),
            de('YY', Q, q),
            de('YYYY', ie, Z),
            de('YYYYY', ne, J),
            de('YYYYYY', ne, J),
            fe(['YYYYY', 'YYYYYY'], 0),
            fe('YYYY', function (e, t) {
              t[0] = 2 === e.length ? r.parseTwoDigitYear(e) : S(e);
            }),
            fe('YY', function (e, t) {
              t[0] = r.parseTwoDigitYear(e);
            }),
            fe('Y', function (e, t) {
              t[0] = parseInt(e, 10);
            }),
            (r.parseTwoDigitYear = function (e) {
              return S(e) + (68 < S(e) ? 1900 : 2e3);
            });
          var be,
            ve = ye('FullYear', !0);
          function ye(e, t) {
            return function (i) {
              return null != i
                ? (Ce(this, e, i), r.updateOffset(this, t), this)
                : we(this, e);
            };
          }
          function we(e, t) {
            return e.isValid()
              ? e._d['get' + (e._isUTC ? 'UTC' : '') + t]()
              : NaN;
          }
          function Ce(e, t, i) {
            e.isValid() &&
              !isNaN(i) &&
              ('FullYear' === t &&
              _e(e.year()) &&
              1 === e.month() &&
              29 === e.date()
                ? e._d['set' + (e._isUTC ? 'UTC' : '') + t](
                    i,
                    e.month(),
                    Se(i, e.month())
                  )
                : e._d['set' + (e._isUTC ? 'UTC' : '') + t](i));
          }
          function Se(e, t) {
            if (isNaN(e) || isNaN(t)) return NaN;
            var i = ((t % 12) + 12) % 12;
            return (
              (e += (t - i) / 12),
              1 === i ? (_e(e) ? 29 : 28) : 31 - ((i % 7) % 2)
            );
          }
          (be = Array.prototype.indexOf
            ? Array.prototype.indexOf
            : function (e) {
                var t;
                for (t = 0; t < this.length; ++t) if (this[t] === e) return t;
                return -1;
              }),
            z('M', ['MM', 2], 'Mo', function () {
              return this.month() + 1;
            }),
            z('MMM', 0, 0, function (e) {
              return this.localeData().monthsShort(this, e);
            }),
            z('MMMM', 0, 0, function (e) {
              return this.localeData().months(this, e);
            }),
            A('month', 'M'),
            B('month', 8),
            de('M', Q),
            de('MM', Q, q),
            de('MMM', function (e, t) {
              return t.monthsShortRegex(e);
            }),
            de('MMMM', function (e, t) {
              return t.monthsRegex(e);
            }),
            fe(['M', 'MM'], function (e, t) {
              t[1] = S(e) - 1;
            }),
            fe(['MMM', 'MMMM'], function (e, t, i, n) {
              var r = i._locale.monthsParse(e, n, i._strict);
              null != r ? (t[1] = r) : (f(i).invalidMonth = e);
            });
          var ke = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
            xe = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            Le = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
          function Me(e, t) {
            var i;
            if (!e.isValid()) return e;
            if ('string' == typeof t)
              if (/^\d+$/.test(t)) t = S(t);
              else if (!l((t = e.localeData().monthsParse(t)))) return e;
            return (
              (i = Math.min(e.date(), Se(e.year(), t))),
              e._d['set' + (e._isUTC ? 'UTC' : '') + 'Month'](t, i),
              e
            );
          }
          function De(e) {
            return null != e
              ? (Me(this, e), r.updateOffset(this, !0), this)
              : we(this, 'Month');
          }
          var Ne = le,
            Ee = le;
          function Te() {
            function e(e, t) {
              return t.length - e.length;
            }
            var t,
              i,
              n = [],
              r = [],
              s = [];
            for (t = 0; t < 12; t++)
              (i = g([2e3, t])),
                n.push(this.monthsShort(i, '')),
                r.push(this.months(i, '')),
                s.push(this.months(i, '')),
                s.push(this.monthsShort(i, ''));
            for (n.sort(e), r.sort(e), s.sort(e), t = 0; t < 12; t++)
              (n[t] = ue(n[t])), (r[t] = ue(r[t]));
            for (t = 0; t < 24; t++) s[t] = ue(s[t]);
            (this._monthsRegex = new RegExp('^(' + s.join('|') + ')', 'i')),
              (this._monthsShortRegex = this._monthsRegex),
              (this._monthsStrictRegex = new RegExp(
                '^(' + r.join('|') + ')',
                'i'
              )),
              (this._monthsShortStrictRegex = new RegExp(
                '^(' + n.join('|') + ')',
                'i'
              ));
          }
          function Ie(e) {
            var t = new Date(Date.UTC.apply(null, arguments));
            return (
              e < 100 &&
                0 <= e &&
                isFinite(t.getUTCFullYear()) &&
                t.setUTCFullYear(e),
              t
            );
          }
          function Oe(e, t, i) {
            var n = 7 + t - i;
            return (-(7 + Ie(e, 0, n).getUTCDay() - t) % 7) + n - 1;
          }
          function Ae(e, t, i, n, r) {
            var s,
              o,
              a = 1 + 7 * (t - 1) + ((7 + i - n) % 7) + Oe(e, n, r);
            return (
              a <= 0
                ? (o = me((s = e - 1)) + a)
                : a > me(e)
                ? ((s = e + 1), (o = a - me(e)))
                : ((s = e), (o = a)),
              { year: s, dayOfYear: o }
            );
          }
          function Re(e, t, i) {
            var n,
              r,
              s = Oe(e.year(), t, i),
              o = Math.floor((e.dayOfYear() - s - 1) / 7) + 1;
            return (
              o < 1
                ? (n = o + Pe((r = e.year() - 1), t, i))
                : o > Pe(e.year(), t, i)
                ? ((n = o - Pe(e.year(), t, i)), (r = e.year() + 1))
                : ((r = e.year()), (n = o)),
              { week: n, year: r }
            );
          }
          function Pe(e, t, i) {
            var n = Oe(e, t, i),
              r = Oe(e + 1, t, i);
            return (me(e) - n + r) / 7;
          }
          z('w', ['ww', 2], 'wo', 'week'),
            z('W', ['WW', 2], 'Wo', 'isoWeek'),
            A('week', 'w'),
            A('isoWeek', 'W'),
            B('week', 5),
            B('isoWeek', 5),
            de('w', Q),
            de('ww', Q, q),
            de('W', Q),
            de('WW', Q, q),
            pe(['w', 'ww', 'W', 'WW'], function (e, t, i, n) {
              t[n.substr(0, 1)] = S(e);
            }),
            z('d', 0, 'do', 'day'),
            z('dd', 0, 0, function (e) {
              return this.localeData().weekdaysMin(this, e);
            }),
            z('ddd', 0, 0, function (e) {
              return this.localeData().weekdaysShort(this, e);
            }),
            z('dddd', 0, 0, function (e) {
              return this.localeData().weekdays(this, e);
            }),
            z('e', 0, 0, 'weekday'),
            z('E', 0, 0, 'isoWeekday'),
            A('day', 'd'),
            A('weekday', 'e'),
            A('isoWeekday', 'E'),
            B('day', 11),
            B('weekday', 11),
            B('isoWeekday', 11),
            de('d', Q),
            de('e', Q),
            de('E', Q),
            de('dd', function (e, t) {
              return t.weekdaysMinRegex(e);
            }),
            de('ddd', function (e, t) {
              return t.weekdaysShortRegex(e);
            }),
            de('dddd', function (e, t) {
              return t.weekdaysRegex(e);
            }),
            pe(['dd', 'ddd', 'dddd'], function (e, t, i, n) {
              var r = i._locale.weekdaysParse(e, n, i._strict);
              null != r ? (t.d = r) : (f(i).invalidWeekday = e);
            }),
            pe(['d', 'e', 'E'], function (e, t, i, n) {
              t[n] = S(e);
            });
          var Fe = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            Be = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            We = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            Ye = le,
            He = le,
            je = le;
          function Ve() {
            function e(e, t) {
              return t.length - e.length;
            }
            var t,
              i,
              n,
              r,
              s,
              o = [],
              a = [],
              l = [],
              c = [];
            for (t = 0; t < 7; t++)
              (i = g([2e3, 1]).day(t)),
                (n = this.weekdaysMin(i, '')),
                (r = this.weekdaysShort(i, '')),
                (s = this.weekdays(i, '')),
                o.push(n),
                a.push(r),
                l.push(s),
                c.push(n),
                c.push(r),
                c.push(s);
            for (o.sort(e), a.sort(e), l.sort(e), c.sort(e), t = 0; t < 7; t++)
              (a[t] = ue(a[t])), (l[t] = ue(l[t])), (c[t] = ue(c[t]));
            (this._weekdaysRegex = new RegExp('^(' + c.join('|') + ')', 'i')),
              (this._weekdaysShortRegex = this._weekdaysRegex),
              (this._weekdaysMinRegex = this._weekdaysRegex),
              (this._weekdaysStrictRegex = new RegExp(
                '^(' + l.join('|') + ')',
                'i'
              )),
              (this._weekdaysShortStrictRegex = new RegExp(
                '^(' + a.join('|') + ')',
                'i'
              )),
              (this._weekdaysMinStrictRegex = new RegExp(
                '^(' + o.join('|') + ')',
                'i'
              ));
          }
          function ze() {
            return this.hours() % 12 || 12;
          }
          function Ue(e, t) {
            z(e, 0, 0, function () {
              return this.localeData().meridiem(
                this.hours(),
                this.minutes(),
                t
              );
            });
          }
          function $e(e, t) {
            return t._meridiemParse;
          }
          z('H', ['HH', 2], 0, 'hour'),
            z('h', ['hh', 2], 0, ze),
            z('k', ['kk', 2], 0, function () {
              return this.hours() || 24;
            }),
            z('hmm', 0, 0, function () {
              return '' + ze.apply(this) + W(this.minutes(), 2);
            }),
            z('hmmss', 0, 0, function () {
              return (
                '' +
                ze.apply(this) +
                W(this.minutes(), 2) +
                W(this.seconds(), 2)
              );
            }),
            z('Hmm', 0, 0, function () {
              return '' + this.hours() + W(this.minutes(), 2);
            }),
            z('Hmmss', 0, 0, function () {
              return (
                '' + this.hours() + W(this.minutes(), 2) + W(this.seconds(), 2)
              );
            }),
            Ue('a', !0),
            Ue('A', !1),
            A('hour', 'h'),
            B('hour', 13),
            de('a', $e),
            de('A', $e),
            de('H', Q),
            de('h', Q),
            de('k', Q),
            de('HH', Q, q),
            de('hh', Q, q),
            de('kk', Q, q),
            de('hmm', X),
            de('hmmss', ee),
            de('Hmm', X),
            de('Hmmss', ee),
            fe(['H', 'HH'], 3),
            fe(['k', 'kk'], function (e, t, i) {
              var n = S(e);
              t[3] = 24 === n ? 0 : n;
            }),
            fe(['a', 'A'], function (e, t, i) {
              (i._isPm = i._locale.isPM(e)), (i._meridiem = e);
            }),
            fe(['h', 'hh'], function (e, t, i) {
              (t[3] = S(e)), (f(i).bigHour = !0);
            }),
            fe('hmm', function (e, t, i) {
              var n = e.length - 2;
              (t[3] = S(e.substr(0, n))),
                (t[4] = S(e.substr(n))),
                (f(i).bigHour = !0);
            }),
            fe('hmmss', function (e, t, i) {
              var n = e.length - 4,
                r = e.length - 2;
              (t[3] = S(e.substr(0, n))),
                (t[4] = S(e.substr(n, 2))),
                (t[5] = S(e.substr(r))),
                (f(i).bigHour = !0);
            }),
            fe('Hmm', function (e, t, i) {
              var n = e.length - 2;
              (t[3] = S(e.substr(0, n))), (t[4] = S(e.substr(n)));
            }),
            fe('Hmmss', function (e, t, i) {
              var n = e.length - 4,
                r = e.length - 2;
              (t[3] = S(e.substr(0, n))),
                (t[4] = S(e.substr(n, 2))),
                (t[5] = S(e.substr(r)));
            });
          var Ke,
            qe = ye('Hours', !0),
            Ge = {
              calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
              },
              longDateFormat: {
                LTS: 'h:mm:ss A',
                LT: 'h:mm A',
                L: 'MM/DD/YYYY',
                LL: 'MMMM D, YYYY',
                LLL: 'MMMM D, YYYY h:mm A',
                LLLL: 'dddd, MMMM D, YYYY h:mm A',
              },
              invalidDate: 'Invalid date',
              ordinal: '%d',
              dayOfMonthOrdinalParse: /\d{1,2}/,
              relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
              },
              months: xe,
              monthsShort: Le,
              week: { dow: 0, doy: 6 },
              weekdays: Fe,
              weekdaysMin: We,
              weekdaysShort: Be,
              meridiemParse: /[ap]\.?m?\.?/i,
            },
            Ze = {},
            Je = {};
          function Qe(e) {
            return e ? e.toLowerCase().replace('_', '-') : e;
          }
          function Xe(t) {
            var n = null;
            if (!Ze[t] && e && e.exports)
              try {
                (n = Ke._abbr), i(11748)('./' + t), et(n);
              } catch (t) {}
            return Ze[t];
          }
          function et(e, t) {
            var i;
            return (
              e &&
                ((i = a(t) ? it(e) : tt(e, t))
                  ? (Ke = i)
                  : 'undefined' != typeof console &&
                    console.warn &&
                    console.warn(
                      'Locale ' + e + ' not found. Did you forget to load it?'
                    )),
              Ke._abbr
            );
          }
          function tt(e, t) {
            if (null !== t) {
              var i,
                n = Ge;
              if (((t.abbr = e), null != Ze[e]))
                N(
                  'defineLocaleOverride',
                  'use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
                ),
                  (n = Ze[e]._config);
              else if (null != t.parentLocale)
                if (null != Ze[t.parentLocale]) n = Ze[t.parentLocale]._config;
                else {
                  if (null == (i = Xe(t.parentLocale)))
                    return (
                      Je[t.parentLocale] || (Je[t.parentLocale] = []),
                      Je[t.parentLocale].push({ name: e, config: t }),
                      null
                    );
                  n = i._config;
                }
              return (
                (Ze[e] = new I(T(n, t))),
                Je[e] &&
                  Je[e].forEach(function (e) {
                    tt(e.name, e.config);
                  }),
                et(e),
                Ze[e]
              );
            }
            return delete Ze[e], null;
          }
          function it(e) {
            var t;
            if (
              (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e)
            )
              return Ke;
            if (!s(e)) {
              if ((t = Xe(e))) return t;
              e = [e];
            }
            return (function (e) {
              for (var t, i, n, r, s = 0; s < e.length; ) {
                for (
                  t = (r = Qe(e[s]).split('-')).length,
                    i = (i = Qe(e[s + 1])) ? i.split('-') : null;
                  0 < t;

                ) {
                  if ((n = Xe(r.slice(0, t).join('-')))) return n;
                  if (i && i.length >= t && k(r, i, !0) >= t - 1) break;
                  t--;
                }
                s++;
              }
              return Ke;
            })(e);
          }
          function nt(e) {
            var t,
              i = e._a;
            return (
              i &&
                -2 === f(e).overflow &&
                ((t =
                  i[1] < 0 || 11 < i[1]
                    ? 1
                    : i[2] < 1 || i[2] > Se(i[0], i[1])
                    ? 2
                    : i[3] < 0 ||
                      24 < i[3] ||
                      (24 === i[3] && (0 !== i[4] || 0 !== i[5] || 0 !== i[6]))
                    ? 3
                    : i[4] < 0 || 59 < i[4]
                    ? 4
                    : i[5] < 0 || 59 < i[5]
                    ? 5
                    : i[6] < 0 || 999 < i[6]
                    ? 6
                    : -1),
                f(e)._overflowDayOfYear && (t < 0 || 2 < t) && (t = 2),
                f(e)._overflowWeeks && -1 === t && (t = 7),
                f(e)._overflowWeekday && -1 === t && (t = 8),
                (f(e).overflow = t)),
              e
            );
          }
          function rt(e, t, i) {
            return null != e ? e : null != t ? t : i;
          }
          function st(e) {
            var t,
              i,
              n,
              s,
              o,
              a = [];
            if (!e._d) {
              var l, c;
              for (
                l = e,
                  c = new Date(r.now()),
                  n = l._useUTC
                    ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()]
                    : [c.getFullYear(), c.getMonth(), c.getDate()],
                  e._w &&
                    null == e._a[2] &&
                    null == e._a[1] &&
                    (function (e) {
                      var t, i, n, r, s, o, a, l;
                      if (null != (t = e._w).GG || null != t.W || null != t.E)
                        (s = 1),
                          (o = 4),
                          (i = rt(t.GG, e._a[0], Re(vt(), 1, 4).year)),
                          (n = rt(t.W, 1)),
                          ((r = rt(t.E, 1)) < 1 || 7 < r) && (l = !0);
                      else {
                        (s = e._locale._week.dow), (o = e._locale._week.doy);
                        var c = Re(vt(), s, o);
                        (i = rt(t.gg, e._a[0], c.year)),
                          (n = rt(t.w, c.week)),
                          null != t.d
                            ? ((r = t.d) < 0 || 6 < r) && (l = !0)
                            : null != t.e
                            ? ((r = t.e + s), (t.e < 0 || 6 < t.e) && (l = !0))
                            : (r = s);
                      }
                      n < 1 || n > Pe(i, s, o)
                        ? (f(e)._overflowWeeks = !0)
                        : null != l
                        ? (f(e)._overflowWeekday = !0)
                        : ((a = Ae(i, n, r, s, o)),
                          (e._a[0] = a.year),
                          (e._dayOfYear = a.dayOfYear));
                    })(e),
                  null != e._dayOfYear &&
                    ((o = rt(e._a[0], n[0])),
                    (e._dayOfYear > me(o) || 0 === e._dayOfYear) &&
                      (f(e)._overflowDayOfYear = !0),
                    (i = Ie(o, 0, e._dayOfYear)),
                    (e._a[1] = i.getUTCMonth()),
                    (e._a[2] = i.getUTCDate())),
                  t = 0;
                t < 3 && null == e._a[t];
                ++t
              )
                e._a[t] = a[t] = n[t];
              for (; t < 7; t++)
                e._a[t] = a[t] = null == e._a[t] ? (2 === t ? 1 : 0) : e._a[t];
              24 === e._a[3] &&
                0 === e._a[4] &&
                0 === e._a[5] &&
                0 === e._a[6] &&
                ((e._nextDay = !0), (e._a[3] = 0)),
                (e._d = (e._useUTC
                  ? Ie
                  : function (e, t, i, n, r, s, o) {
                      var a = new Date(e, t, i, n, r, s, o);
                      return (
                        e < 100 &&
                          0 <= e &&
                          isFinite(a.getFullYear()) &&
                          a.setFullYear(e),
                        a
                      );
                    }
                ).apply(null, a)),
                (s = e._useUTC ? e._d.getUTCDay() : e._d.getDay()),
                null != e._tzm &&
                  e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm),
                e._nextDay && (e._a[3] = 24),
                e._w &&
                  void 0 !== e._w.d &&
                  e._w.d !== s &&
                  (f(e).weekdayMismatch = !0);
            }
          }
          var ot = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
            at = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
            lt = /Z|[+-]\d\d(?::?\d\d)?/,
            ct = [
              ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
              ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
              ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
              ['GGGG-[W]WW', /\d{4}-W\d\d/, !1],
              ['YYYY-DDD', /\d{4}-\d{3}/],
              ['YYYY-MM', /\d{4}-\d\d/, !1],
              ['YYYYYYMMDD', /[+-]\d{10}/],
              ['YYYYMMDD', /\d{8}/],
              ['GGGG[W]WWE', /\d{4}W\d{3}/],
              ['GGGG[W]WW', /\d{4}W\d{2}/, !1],
              ['YYYYDDD', /\d{7}/],
            ],
            dt = [
              ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
              ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
              ['HH:mm:ss', /\d\d:\d\d:\d\d/],
              ['HH:mm', /\d\d:\d\d/],
              ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
              ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
              ['HHmmss', /\d\d\d\d\d\d/],
              ['HHmm', /\d\d\d\d/],
              ['HH', /\d\d/],
            ],
            ht = /^\/?Date\((\-?\d+)/i;
          function ut(e) {
            var t,
              i,
              n,
              r,
              s,
              o,
              a = e._i,
              l = ot.exec(a) || at.exec(a);
            if (l) {
              for (f(e).iso = !0, t = 0, i = ct.length; t < i; t++)
                if (ct[t][1].exec(l[1])) {
                  (r = ct[t][0]), (n = !1 !== ct[t][2]);
                  break;
                }
              if (null == r) return void (e._isValid = !1);
              if (l[3]) {
                for (t = 0, i = dt.length; t < i; t++)
                  if (dt[t][1].exec(l[3])) {
                    s = (l[2] || ' ') + dt[t][0];
                    break;
                  }
                if (null == s) return void (e._isValid = !1);
              }
              if (!n && null != s) return void (e._isValid = !1);
              if (l[4]) {
                if (!lt.exec(l[4])) return void (e._isValid = !1);
                o = 'Z';
              }
              (e._f = r + (s || '') + (o || '')), mt(e);
            } else e._isValid = !1;
          }
          var gt = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
          var ft = {
            UT: 0,
            GMT: 0,
            EDT: -240,
            EST: -300,
            CDT: -300,
            CST: -360,
            MDT: -360,
            MST: -420,
            PDT: -420,
            PST: -480,
          };
          function pt(e) {
            var t,
              i,
              n,
              r = gt.exec(
                e._i
                  .replace(/\([^)]*\)|[\n\t]/g, ' ')
                  .replace(/(\s\s+)/g, ' ')
                  .trim()
              );
            if (r) {
              var s = (function (e, t, i, n, r, s) {
                var o = [
                  (function (e) {
                    var t = parseInt(e, 10);
                    return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t;
                  })(e),
                  Le.indexOf(t),
                  parseInt(i, 10),
                  parseInt(n, 10),
                  parseInt(r, 10),
                ];
                return s && o.push(parseInt(s, 10)), o;
              })(r[4], r[3], r[2], r[5], r[6], r[7]);
              if (
                ((i = s),
                (n = e),
                (t = r[1]) &&
                  Be.indexOf(t) !== new Date(i[0], i[1], i[2]).getDay() &&
                  ((f(n).weekdayMismatch = !0), !(n._isValid = !1)))
              )
                return;
              (e._a = s),
                (e._tzm = (function (e, t, i) {
                  if (e) return ft[e];
                  if (t) return 0;
                  var n = parseInt(i, 10),
                    r = n % 100;
                  return ((n - r) / 100) * 60 + r;
                })(r[8], r[9], r[10])),
                (e._d = Ie.apply(null, e._a)),
                e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm),
                (f(e).rfc2822 = !0);
            } else e._isValid = !1;
          }
          function mt(e) {
            if (e._f !== r.ISO_8601)
              if (e._f !== r.RFC_2822) {
                (e._a = []), (f(e).empty = !0);
                var t,
                  i,
                  n,
                  s,
                  o,
                  a,
                  l,
                  c,
                  d = '' + e._i,
                  u = d.length,
                  g = 0;
                for (
                  n = $(e._f, e._locale).match(Y) || [], t = 0;
                  t < n.length;
                  t++
                )
                  (s = n[t]),
                    (i = (d.match(he(s, e)) || [])[0]) &&
                      (0 < (o = d.substr(0, d.indexOf(i))).length &&
                        f(e).unusedInput.push(o),
                      (d = d.slice(d.indexOf(i) + i.length)),
                      (g += i.length)),
                    V[s]
                      ? (i ? (f(e).empty = !1) : f(e).unusedTokens.push(s),
                        (a = s),
                        (c = e),
                        null != (l = i) && h(ge, a) && ge[a](l, c._a, c, a))
                      : e._strict && !i && f(e).unusedTokens.push(s);
                (f(e).charsLeftOver = u - g),
                  0 < d.length && f(e).unusedInput.push(d),
                  e._a[3] <= 12 &&
                    !0 === f(e).bigHour &&
                    0 < e._a[3] &&
                    (f(e).bigHour = void 0),
                  (f(e).parsedDateParts = e._a.slice(0)),
                  (f(e).meridiem = e._meridiem),
                  (e._a[3] = (function (e, t, i) {
                    var n;
                    return null == i
                      ? t
                      : null != e.meridiemHour
                      ? e.meridiemHour(t, i)
                      : (null != e.isPM &&
                          ((n = e.isPM(i)) && t < 12 && (t += 12),
                          n || 12 !== t || (t = 0)),
                        t);
                  })(e._locale, e._a[3], e._meridiem)),
                  st(e),
                  nt(e);
              } else pt(e);
            else ut(e);
          }
          function _t(e) {
            var t,
              i,
              n,
              h,
              g = e._i,
              _ = e._f;
            return (
              (e._locale = e._locale || it(e._l)),
              null === g || (void 0 === _ && '' === g)
                ? m({ nullInput: !0 })
                : ('string' == typeof g && (e._i = g = e._locale.preparse(g)),
                  w(g)
                    ? new y(nt(g))
                    : (c(g)
                        ? (e._d = g)
                        : s(_)
                        ? (function (e) {
                            var t, i, n, r, s;
                            if (0 === e._f.length)
                              return (
                                (f(e).invalidFormat = !0),
                                (e._d = new Date(NaN))
                              );
                            for (r = 0; r < e._f.length; r++)
                              (s = 0),
                                (t = b({}, e)),
                                null != e._useUTC && (t._useUTC = e._useUTC),
                                (t._f = e._f[r]),
                                mt(t),
                                p(t) &&
                                  ((s += f(t).charsLeftOver),
                                  (s += 10 * f(t).unusedTokens.length),
                                  (f(t).score = s),
                                  (null == n || s < n) && ((n = s), (i = t)));
                            u(e, i || t);
                          })(e)
                        : _
                        ? mt(e)
                        : a((i = (t = e)._i))
                        ? (t._d = new Date(r.now()))
                        : c(i)
                        ? (t._d = new Date(i.valueOf()))
                        : 'string' == typeof i
                        ? ((n = t),
                          null === (h = ht.exec(n._i))
                            ? (ut(n),
                              !1 === n._isValid &&
                                (delete n._isValid,
                                pt(n),
                                !1 === n._isValid &&
                                  (delete n._isValid,
                                  r.createFromInputFallback(n))))
                            : (n._d = new Date(+h[1])))
                        : s(i)
                        ? ((t._a = d(i.slice(0), function (e) {
                            return parseInt(e, 10);
                          })),
                          st(t))
                        : o(i)
                        ? (function (e) {
                            if (!e._d) {
                              var t = P(e._i);
                              (e._a = d(
                                [
                                  t.year,
                                  t.month,
                                  t.day || t.date,
                                  t.hour,
                                  t.minute,
                                  t.second,
                                  t.millisecond,
                                ],
                                function (e) {
                                  return e && parseInt(e, 10);
                                }
                              )),
                                st(e);
                            }
                          })(t)
                        : l(i)
                        ? (t._d = new Date(i))
                        : r.createFromInputFallback(t),
                      p(e) || (e._d = null),
                      e))
            );
          }
          function bt(e, t, i, n, r) {
            var a,
              l = {};
            return (
              (!0 !== i && !1 !== i) || ((n = i), (i = void 0)),
              ((o(e) &&
                (function (e) {
                  if (Object.getOwnPropertyNames)
                    return 0 === Object.getOwnPropertyNames(e).length;
                  var t;
                  for (t in e) if (e.hasOwnProperty(t)) return !1;
                  return !0;
                })(e)) ||
                (s(e) && 0 === e.length)) &&
                (e = void 0),
              (l._isAMomentObject = !0),
              (l._useUTC = l._isUTC = r),
              (l._l = i),
              (l._i = e),
              (l._f = t),
              (l._strict = n),
              (a = new y(nt(_t(l))))._nextDay &&
                (a.add(1, 'd'), (a._nextDay = void 0)),
              a
            );
          }
          function vt(e, t, i, n) {
            return bt(e, t, i, n, !1);
          }
          (r.createFromInputFallback = L(
            'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
            function (e) {
              e._d = new Date(e._i + (e._useUTC ? ' UTC' : ''));
            }
          )),
            (r.ISO_8601 = function () {}),
            (r.RFC_2822 = function () {});
          var yt = L(
              'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
              function () {
                var e = vt.apply(null, arguments);
                return this.isValid() && e.isValid()
                  ? e < this
                    ? this
                    : e
                  : m();
              }
            ),
            wt = L(
              'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
              function () {
                var e = vt.apply(null, arguments);
                return this.isValid() && e.isValid()
                  ? this < e
                    ? this
                    : e
                  : m();
              }
            );
          function Ct(e, t) {
            var i, n;
            if ((1 === t.length && s(t[0]) && (t = t[0]), !t.length))
              return vt();
            for (i = t[0], n = 1; n < t.length; ++n)
              (t[n].isValid() && !t[n][e](i)) || (i = t[n]);
            return i;
          }
          var St = [
            'year',
            'quarter',
            'month',
            'week',
            'day',
            'hour',
            'minute',
            'second',
            'millisecond',
          ];
          function kt(e) {
            var t = P(e),
              i = t.year || 0,
              n = t.quarter || 0,
              r = t.month || 0,
              s = t.week || 0,
              o = t.day || 0,
              a = t.hour || 0,
              l = t.minute || 0,
              c = t.second || 0,
              d = t.millisecond || 0;
            (this._isValid = (function (e) {
              for (var t in e)
                if (-1 === be.call(St, t) || (null != e[t] && isNaN(e[t])))
                  return !1;
              for (var i = !1, n = 0; n < St.length; ++n)
                if (e[St[n]]) {
                  if (i) return !1;
                  parseFloat(e[St[n]]) !== S(e[St[n]]) && (i = !0);
                }
              return !0;
            })(t)),
              (this._milliseconds = +d + 1e3 * c + 6e4 * l + 1e3 * a * 60 * 60),
              (this._days = +o + 7 * s),
              (this._months = +r + 3 * n + 12 * i),
              (this._data = {}),
              (this._locale = it()),
              this._bubble();
          }
          function xt(e) {
            return e instanceof kt;
          }
          function Lt(e) {
            return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e);
          }
          function Mt(e, t) {
            z(e, 0, 0, function () {
              var e = this.utcOffset(),
                i = '+';
              return (
                e < 0 && ((e = -e), (i = '-')),
                i + W(~~(e / 60), 2) + t + W(~~e % 60, 2)
              );
            });
          }
          Mt('Z', ':'),
            Mt('ZZ', ''),
            de('Z', ae),
            de('ZZ', ae),
            fe(['Z', 'ZZ'], function (e, t, i) {
              (i._useUTC = !0), (i._tzm = Nt(ae, e));
            });
          var Dt = /([\+\-]|\d\d)/gi;
          function Nt(e, t) {
            var i = (t || '').match(e);
            if (null === i) return null;
            var n = ((i[i.length - 1] || []) + '').match(Dt) || ['-', 0, 0],
              r = 60 * n[1] + S(n[2]);
            return 0 === r ? 0 : '+' === n[0] ? r : -r;
          }
          function Et(e, t) {
            var i, n;
            return t._isUTC
              ? ((i = t.clone()),
                (n =
                  (w(e) || c(e) ? e.valueOf() : vt(e).valueOf()) - i.valueOf()),
                i._d.setTime(i._d.valueOf() + n),
                r.updateOffset(i, !1),
                i)
              : vt(e).local();
          }
          function Tt(e) {
            return 15 * -Math.round(e._d.getTimezoneOffset() / 15);
          }
          function It() {
            return !!this.isValid() && this._isUTC && 0 === this._offset;
          }
          r.updateOffset = function () {};
          var Ot = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,
            At = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
          function Rt(e, t) {
            var i,
              n,
              r,
              s = e,
              o = null;
            return (
              xt(e)
                ? (s = { ms: e._milliseconds, d: e._days, M: e._months })
                : l(e)
                ? ((s = {}), t ? (s[t] = e) : (s.milliseconds = e))
                : (o = Ot.exec(e))
                ? ((i = '-' === o[1] ? -1 : 1),
                  (s = {
                    y: 0,
                    d: S(o[2]) * i,
                    h: S(o[3]) * i,
                    m: S(o[4]) * i,
                    s: S(o[5]) * i,
                    ms: S(Lt(1e3 * o[6])) * i,
                  }))
                : (o = At.exec(e))
                ? ((i = '-' === o[1] ? -1 : (o[1], 1)),
                  (s = {
                    y: Pt(o[2], i),
                    M: Pt(o[3], i),
                    w: Pt(o[4], i),
                    d: Pt(o[5], i),
                    h: Pt(o[6], i),
                    m: Pt(o[7], i),
                    s: Pt(o[8], i),
                  }))
                : null == s
                ? (s = {})
                : 'object' == typeof s &&
                  ('from' in s || 'to' in s) &&
                  ((r = (function (e, t) {
                    var i;
                    return e.isValid() && t.isValid()
                      ? ((t = Et(t, e)),
                        e.isBefore(t)
                          ? (i = Ft(e, t))
                          : (((i = Ft(t, e)).milliseconds = -i.milliseconds),
                            (i.months = -i.months)),
                        i)
                      : { milliseconds: 0, months: 0 };
                  })(vt(s.from), vt(s.to))),
                  ((s = {}).ms = r.milliseconds),
                  (s.M = r.months)),
              (n = new kt(s)),
              xt(e) && h(e, '_locale') && (n._locale = e._locale),
              n
            );
          }
          function Pt(e, t) {
            var i = e && parseFloat(e.replace(',', '.'));
            return (isNaN(i) ? 0 : i) * t;
          }
          function Ft(e, t) {
            var i = { milliseconds: 0, months: 0 };
            return (
              (i.months = t.month() - e.month() + 12 * (t.year() - e.year())),
              e.clone().add(i.months, 'M').isAfter(t) && --i.months,
              (i.milliseconds = +t - +e.clone().add(i.months, 'M')),
              i
            );
          }
          function Bt(e, t) {
            return function (i, n) {
              var r;
              return (
                null === n ||
                  isNaN(+n) ||
                  (N(
                    t,
                    'moment().' +
                      t +
                      '(period, number) is deprecated. Please use moment().' +
                      t +
                      '(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
                  ),
                  (r = i),
                  (i = n),
                  (n = r)),
                Wt(this, Rt((i = 'string' == typeof i ? +i : i), n), e),
                this
              );
            };
          }
          function Wt(e, t, i, n) {
            var s = t._milliseconds,
              o = Lt(t._days),
              a = Lt(t._months);
            e.isValid() &&
              ((n = null == n || n),
              a && Me(e, we(e, 'Month') + a * i),
              o && Ce(e, 'Date', we(e, 'Date') + o * i),
              s && e._d.setTime(e._d.valueOf() + s * i),
              n && r.updateOffset(e, o || a));
          }
          (Rt.fn = kt.prototype),
            (Rt.invalid = function () {
              return Rt(NaN);
            });
          var Yt = Bt(1, 'add'),
            Ht = Bt(-1, 'subtract');
          function jt(e, t) {
            var i = 12 * (t.year() - e.year()) + (t.month() - e.month()),
              n = e.clone().add(i, 'months');
            return (
              -(
                i +
                (t - n < 0
                  ? (t - n) / (n - e.clone().add(i - 1, 'months'))
                  : (t - n) / (e.clone().add(i + 1, 'months') - n))
              ) || 0
            );
          }
          function Vt(e) {
            var t;
            return void 0 === e
              ? this._locale._abbr
              : (null != (t = it(e)) && (this._locale = t), this);
          }
          (r.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'),
            (r.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]');
          var zt = L(
            'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
            function (e) {
              return void 0 === e ? this.localeData() : this.locale(e);
            }
          );
          function Ut() {
            return this._locale;
          }
          function $t(e, t) {
            z(0, [e, e.length], 0, t);
          }
          function Kt(e, t, i, n, r) {
            var s;
            return null == e
              ? Re(this, n, r).year
              : ((s = Pe(e, n, r)) < t && (t = s),
                function (e, t, i, n, r) {
                  var s = Ae(e, t, i, n, r),
                    o = Ie(s.year, 0, s.dayOfYear);
                  return (
                    this.year(o.getUTCFullYear()),
                    this.month(o.getUTCMonth()),
                    this.date(o.getUTCDate()),
                    this
                  );
                }.call(this, e, t, i, n, r));
          }
          z(0, ['gg', 2], 0, function () {
            return this.weekYear() % 100;
          }),
            z(0, ['GG', 2], 0, function () {
              return this.isoWeekYear() % 100;
            }),
            $t('gggg', 'weekYear'),
            $t('ggggg', 'weekYear'),
            $t('GGGG', 'isoWeekYear'),
            $t('GGGGG', 'isoWeekYear'),
            A('weekYear', 'gg'),
            A('isoWeekYear', 'GG'),
            B('weekYear', 1),
            B('isoWeekYear', 1),
            de('G', se),
            de('g', se),
            de('GG', Q, q),
            de('gg', Q, q),
            de('GGGG', ie, Z),
            de('gggg', ie, Z),
            de('GGGGG', ne, J),
            de('ggggg', ne, J),
            pe(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (e, t, i, n) {
              t[n.substr(0, 2)] = S(e);
            }),
            pe(['gg', 'GG'], function (e, t, i, n) {
              t[n] = r.parseTwoDigitYear(e);
            }),
            z('Q', 0, 'Qo', 'quarter'),
            A('quarter', 'Q'),
            B('quarter', 7),
            de('Q', K),
            fe('Q', function (e, t) {
              t[1] = 3 * (S(e) - 1);
            }),
            z('D', ['DD', 2], 'Do', 'date'),
            A('date', 'D'),
            B('date', 9),
            de('D', Q),
            de('DD', Q, q),
            de('Do', function (e, t) {
              return e
                ? t._dayOfMonthOrdinalParse || t._ordinalParse
                : t._dayOfMonthOrdinalParseLenient;
            }),
            fe(['D', 'DD'], 2),
            fe('Do', function (e, t) {
              t[2] = S(e.match(Q)[0]);
            });
          var qt = ye('Date', !0);
          z('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'),
            A('dayOfYear', 'DDD'),
            B('dayOfYear', 4),
            de('DDD', te),
            de('DDDD', G),
            fe(['DDD', 'DDDD'], function (e, t, i) {
              i._dayOfYear = S(e);
            }),
            z('m', ['mm', 2], 0, 'minute'),
            A('minute', 'm'),
            B('minute', 14),
            de('m', Q),
            de('mm', Q, q),
            fe(['m', 'mm'], 4);
          var Gt = ye('Minutes', !1);
          z('s', ['ss', 2], 0, 'second'),
            A('second', 's'),
            B('second', 15),
            de('s', Q),
            de('ss', Q, q),
            fe(['s', 'ss'], 5);
          var Zt,
            Jt = ye('Seconds', !1);
          for (
            z('S', 0, 0, function () {
              return ~~(this.millisecond() / 100);
            }),
              z(0, ['SS', 2], 0, function () {
                return ~~(this.millisecond() / 10);
              }),
              z(0, ['SSS', 3], 0, 'millisecond'),
              z(0, ['SSSS', 4], 0, function () {
                return 10 * this.millisecond();
              }),
              z(0, ['SSSSS', 5], 0, function () {
                return 100 * this.millisecond();
              }),
              z(0, ['SSSSSS', 6], 0, function () {
                return 1e3 * this.millisecond();
              }),
              z(0, ['SSSSSSS', 7], 0, function () {
                return 1e4 * this.millisecond();
              }),
              z(0, ['SSSSSSSS', 8], 0, function () {
                return 1e5 * this.millisecond();
              }),
              z(0, ['SSSSSSSSS', 9], 0, function () {
                return 1e6 * this.millisecond();
              }),
              A('millisecond', 'ms'),
              B('millisecond', 16),
              de('S', te, K),
              de('SS', te, q),
              de('SSS', te, G),
              Zt = 'SSSS';
            Zt.length <= 9;
            Zt += 'S'
          )
            de(Zt, re);
          function Qt(e, t) {
            t[6] = S(1e3 * ('0.' + e));
          }
          for (Zt = 'S'; Zt.length <= 9; Zt += 'S') fe(Zt, Qt);
          var Xt = ye('Milliseconds', !1);
          z('z', 0, 0, 'zoneAbbr'), z('zz', 0, 0, 'zoneName');
          var ei = y.prototype;
          function ti(e) {
            return e;
          }
          (ei.add = Yt),
            (ei.calendar = function (e, t) {
              var i = e || vt(),
                n = Et(i, this).startOf('day'),
                s = r.calendarFormat(this, n) || 'sameElse',
                o = t && (E(t[s]) ? t[s].call(this, i) : t[s]);
              return this.format(
                o || this.localeData().calendar(s, this, vt(i))
              );
            }),
            (ei.clone = function () {
              return new y(this);
            }),
            (ei.diff = function (e, t, i) {
              var n, r, s;
              if (!this.isValid()) return NaN;
              if (!(n = Et(e, this)).isValid()) return NaN;
              switch (
                ((r = 6e4 * (n.utcOffset() - this.utcOffset())), (t = R(t)))
              ) {
                case 'year':
                  s = jt(this, n) / 12;
                  break;
                case 'month':
                  s = jt(this, n);
                  break;
                case 'quarter':
                  s = jt(this, n) / 3;
                  break;
                case 'second':
                  s = (this - n) / 1e3;
                  break;
                case 'minute':
                  s = (this - n) / 6e4;
                  break;
                case 'hour':
                  s = (this - n) / 36e5;
                  break;
                case 'day':
                  s = (this - n - r) / 864e5;
                  break;
                case 'week':
                  s = (this - n - r) / 6048e5;
                  break;
                default:
                  s = this - n;
              }
              return i ? s : C(s);
            }),
            (ei.endOf = function (e) {
              return void 0 === (e = R(e)) || 'millisecond' === e
                ? this
                : ('date' === e && (e = 'day'),
                  this.startOf(e)
                    .add(1, 'isoWeek' === e ? 'week' : e)
                    .subtract(1, 'ms'));
            }),
            (ei.format = function (e) {
              e || (e = this.isUtc() ? r.defaultFormatUtc : r.defaultFormat);
              var t = U(this, e);
              return this.localeData().postformat(t);
            }),
            (ei.from = function (e, t) {
              return this.isValid() &&
                ((w(e) && e.isValid()) || vt(e).isValid())
                ? Rt({ to: this, from: e }).locale(this.locale()).humanize(!t)
                : this.localeData().invalidDate();
            }),
            (ei.fromNow = function (e) {
              return this.from(vt(), e);
            }),
            (ei.to = function (e, t) {
              return this.isValid() &&
                ((w(e) && e.isValid()) || vt(e).isValid())
                ? Rt({ from: this, to: e }).locale(this.locale()).humanize(!t)
                : this.localeData().invalidDate();
            }),
            (ei.toNow = function (e) {
              return this.to(vt(), e);
            }),
            (ei.get = function (e) {
              return E(this[(e = R(e))]) ? this[e]() : this;
            }),
            (ei.invalidAt = function () {
              return f(this).overflow;
            }),
            (ei.isAfter = function (e, t) {
              var i = w(e) ? e : vt(e);
              return (
                !(!this.isValid() || !i.isValid()) &&
                ('millisecond' === (t = R(a(t) ? 'millisecond' : t))
                  ? this.valueOf() > i.valueOf()
                  : i.valueOf() < this.clone().startOf(t).valueOf())
              );
            }),
            (ei.isBefore = function (e, t) {
              var i = w(e) ? e : vt(e);
              return (
                !(!this.isValid() || !i.isValid()) &&
                ('millisecond' === (t = R(a(t) ? 'millisecond' : t))
                  ? this.valueOf() < i.valueOf()
                  : this.clone().endOf(t).valueOf() < i.valueOf())
              );
            }),
            (ei.isBetween = function (e, t, i, n) {
              return (
                ('(' === (n = n || '()')[0]
                  ? this.isAfter(e, i)
                  : !this.isBefore(e, i)) &&
                (')' === n[1] ? this.isBefore(t, i) : !this.isAfter(t, i))
              );
            }),
            (ei.isSame = function (e, t) {
              var i,
                n = w(e) ? e : vt(e);
              return (
                !(!this.isValid() || !n.isValid()) &&
                ('millisecond' === (t = R(t || 'millisecond'))
                  ? this.valueOf() === n.valueOf()
                  : ((i = n.valueOf()),
                    this.clone().startOf(t).valueOf() <= i &&
                      i <= this.clone().endOf(t).valueOf()))
              );
            }),
            (ei.isSameOrAfter = function (e, t) {
              return this.isSame(e, t) || this.isAfter(e, t);
            }),
            (ei.isSameOrBefore = function (e, t) {
              return this.isSame(e, t) || this.isBefore(e, t);
            }),
            (ei.isValid = function () {
              return p(this);
            }),
            (ei.lang = zt),
            (ei.locale = Vt),
            (ei.localeData = Ut),
            (ei.max = wt),
            (ei.min = yt),
            (ei.parsingFlags = function () {
              return u({}, f(this));
            }),
            (ei.set = function (e, t) {
              if ('object' == typeof e)
                for (
                  var i = (function (e) {
                      var t = [];
                      for (var i in e) t.push({ unit: i, priority: F[i] });
                      return (
                        t.sort(function (e, t) {
                          return e.priority - t.priority;
                        }),
                        t
                      );
                    })((e = P(e))),
                    n = 0;
                  n < i.length;
                  n++
                )
                  this[i[n].unit](e[i[n].unit]);
              else if (E(this[(e = R(e))])) return this[e](t);
              return this;
            }),
            (ei.startOf = function (e) {
              switch ((e = R(e))) {
                case 'year':
                  this.month(0);
                case 'quarter':
                case 'month':
                  this.date(1);
                case 'week':
                case 'isoWeek':
                case 'day':
                case 'date':
                  this.hours(0);
                case 'hour':
                  this.minutes(0);
                case 'minute':
                  this.seconds(0);
                case 'second':
                  this.milliseconds(0);
              }
              return (
                'week' === e && this.weekday(0),
                'isoWeek' === e && this.isoWeekday(1),
                'quarter' === e && this.month(3 * Math.floor(this.month() / 3)),
                this
              );
            }),
            (ei.subtract = Ht),
            (ei.toArray = function () {
              var e = this;
              return [
                e.year(),
                e.month(),
                e.date(),
                e.hour(),
                e.minute(),
                e.second(),
                e.millisecond(),
              ];
            }),
            (ei.toObject = function () {
              var e = this;
              return {
                years: e.year(),
                months: e.month(),
                date: e.date(),
                hours: e.hours(),
                minutes: e.minutes(),
                seconds: e.seconds(),
                milliseconds: e.milliseconds(),
              };
            }),
            (ei.toDate = function () {
              return new Date(this.valueOf());
            }),
            (ei.toISOString = function (e) {
              if (!this.isValid()) return null;
              var t = !0 !== e,
                i = t ? this.clone().utc() : this;
              return i.year() < 0 || 9999 < i.year()
                ? U(
                    i,
                    t
                      ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                      : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
                  )
                : E(Date.prototype.toISOString)
                ? t
                  ? this.toDate().toISOString()
                  : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3)
                      .toISOString()
                      .replace('Z', U(i, 'Z'))
                : U(
                    i,
                    t
                      ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                      : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
                  );
            }),
            (ei.inspect = function () {
              if (!this.isValid())
                return 'moment.invalid(/* ' + this._i + ' */)';
              var e = 'moment',
                t = '';
              this.isLocal() ||
                ((e =
                  0 === this.utcOffset() ? 'moment.utc' : 'moment.parseZone'),
                (t = 'Z'));
              var i = '[' + e + '("]',
                n = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY',
                r = t + '[")]';
              return this.format(i + n + '-MM-DD[T]HH:mm:ss.SSS' + r);
            }),
            (ei.toJSON = function () {
              return this.isValid() ? this.toISOString() : null;
            }),
            (ei.toString = function () {
              return this.clone()
                .locale('en')
                .format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
            }),
            (ei.unix = function () {
              return Math.floor(this.valueOf() / 1e3);
            }),
            (ei.valueOf = function () {
              return this._d.valueOf() - 6e4 * (this._offset || 0);
            }),
            (ei.creationData = function () {
              return {
                input: this._i,
                format: this._f,
                locale: this._locale,
                isUTC: this._isUTC,
                strict: this._strict,
              };
            }),
            (ei.year = ve),
            (ei.isLeapYear = function () {
              return _e(this.year());
            }),
            (ei.weekYear = function (e) {
              return Kt.call(
                this,
                e,
                this.week(),
                this.weekday(),
                this.localeData()._week.dow,
                this.localeData()._week.doy
              );
            }),
            (ei.isoWeekYear = function (e) {
              return Kt.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4);
            }),
            (ei.quarter = ei.quarters = function (e) {
              return null == e
                ? Math.ceil((this.month() + 1) / 3)
                : this.month(3 * (e - 1) + (this.month() % 3));
            }),
            (ei.month = De),
            (ei.daysInMonth = function () {
              return Se(this.year(), this.month());
            }),
            (ei.week = ei.weeks = function (e) {
              var t = this.localeData().week(this);
              return null == e ? t : this.add(7 * (e - t), 'd');
            }),
            (ei.isoWeek = ei.isoWeeks = function (e) {
              var t = Re(this, 1, 4).week;
              return null == e ? t : this.add(7 * (e - t), 'd');
            }),
            (ei.weeksInYear = function () {
              var e = this.localeData()._week;
              return Pe(this.year(), e.dow, e.doy);
            }),
            (ei.isoWeeksInYear = function () {
              return Pe(this.year(), 1, 4);
            }),
            (ei.date = qt),
            (ei.day = ei.days = function (e) {
              if (!this.isValid()) return null != e ? this : NaN;
              var t,
                i,
                n = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
              return null != e
                ? ((t = e),
                  (i = this.localeData()),
                  (e =
                    'string' != typeof t
                      ? t
                      : isNaN(t)
                      ? 'number' == typeof (t = i.weekdaysParse(t))
                        ? t
                        : null
                      : parseInt(t, 10)),
                  this.add(e - n, 'd'))
                : n;
            }),
            (ei.weekday = function (e) {
              if (!this.isValid()) return null != e ? this : NaN;
              var t = (this.day() + 7 - this.localeData()._week.dow) % 7;
              return null == e ? t : this.add(e - t, 'd');
            }),
            (ei.isoWeekday = function (e) {
              if (!this.isValid()) return null != e ? this : NaN;
              if (null != e) {
                var t =
                  ((i = e),
                  (n = this.localeData()),
                  'string' == typeof i
                    ? n.weekdaysParse(i) % 7 || 7
                    : isNaN(i)
                    ? null
                    : i);
                return this.day(this.day() % 7 ? t : t - 7);
              }
              return this.day() || 7;
              var i, n;
            }),
            (ei.dayOfYear = function (e) {
              var t =
                Math.round(
                  (this.clone().startOf('day') - this.clone().startOf('year')) /
                    864e5
                ) + 1;
              return null == e ? t : this.add(e - t, 'd');
            }),
            (ei.hour = ei.hours = qe),
            (ei.minute = ei.minutes = Gt),
            (ei.second = ei.seconds = Jt),
            (ei.millisecond = ei.milliseconds = Xt),
            (ei.utcOffset = function (e, t, i) {
              var n,
                s = this._offset || 0;
              if (!this.isValid()) return null != e ? this : NaN;
              if (null != e) {
                if ('string' == typeof e) {
                  if (null === (e = Nt(ae, e))) return this;
                } else Math.abs(e) < 16 && !i && (e *= 60);
                return (
                  !this._isUTC && t && (n = Tt(this)),
                  (this._offset = e),
                  (this._isUTC = !0),
                  null != n && this.add(n, 'm'),
                  s !== e &&
                    (!t || this._changeInProgress
                      ? Wt(this, Rt(e - s, 'm'), 1, !1)
                      : this._changeInProgress ||
                        ((this._changeInProgress = !0),
                        r.updateOffset(this, !0),
                        (this._changeInProgress = null))),
                  this
                );
              }
              return this._isUTC ? s : Tt(this);
            }),
            (ei.utc = function (e) {
              return this.utcOffset(0, e);
            }),
            (ei.local = function (e) {
              return (
                this._isUTC &&
                  (this.utcOffset(0, e),
                  (this._isUTC = !1),
                  e && this.subtract(Tt(this), 'm')),
                this
              );
            }),
            (ei.parseZone = function () {
              if (null != this._tzm) this.utcOffset(this._tzm, !1, !0);
              else if ('string' == typeof this._i) {
                var e = Nt(oe, this._i);
                null != e ? this.utcOffset(e) : this.utcOffset(0, !0);
              }
              return this;
            }),
            (ei.hasAlignedHourOffset = function (e) {
              return (
                !!this.isValid() &&
                ((e = e ? vt(e).utcOffset() : 0),
                (this.utcOffset() - e) % 60 == 0)
              );
            }),
            (ei.isDST = function () {
              return (
                this.utcOffset() > this.clone().month(0).utcOffset() ||
                this.utcOffset() > this.clone().month(5).utcOffset()
              );
            }),
            (ei.isLocal = function () {
              return !!this.isValid() && !this._isUTC;
            }),
            (ei.isUtcOffset = function () {
              return !!this.isValid() && this._isUTC;
            }),
            (ei.isUtc = It),
            (ei.isUTC = It),
            (ei.zoneAbbr = function () {
              return this._isUTC ? 'UTC' : '';
            }),
            (ei.zoneName = function () {
              return this._isUTC ? 'Coordinated Universal Time' : '';
            }),
            (ei.dates = L(
              'dates accessor is deprecated. Use date instead.',
              qt
            )),
            (ei.months = L(
              'months accessor is deprecated. Use month instead',
              De
            )),
            (ei.years = L(
              'years accessor is deprecated. Use year instead',
              ve
            )),
            (ei.zone = L(
              'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
              function (e, t) {
                return null != e
                  ? ('string' != typeof e && (e = -e),
                    this.utcOffset(e, t),
                    this)
                  : -this.utcOffset();
              }
            )),
            (ei.isDSTShifted = L(
              'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
              function () {
                if (!a(this._isDSTShifted)) return this._isDSTShifted;
                var e = {};
                if ((b(e, this), (e = _t(e))._a)) {
                  var t = e._isUTC ? g(e._a) : vt(e._a);
                  this._isDSTShifted =
                    this.isValid() && 0 < k(e._a, t.toArray());
                } else this._isDSTShifted = !1;
                return this._isDSTShifted;
              }
            ));
          var ii = I.prototype;
          function ni(e, t, i, n) {
            var r = it(),
              s = g().set(n, t);
            return r[i](s, e);
          }
          function ri(e, t, i) {
            if ((l(e) && ((t = e), (e = void 0)), (e = e || ''), null != t))
              return ni(e, t, i, 'month');
            var n,
              r = [];
            for (n = 0; n < 12; n++) r[n] = ni(e, n, i, 'month');
            return r;
          }
          function si(e, t, i, n) {
            'boolean' == typeof e
              ? l(t) && ((i = t), (t = void 0))
              : ((t = e), (e = !1), l((i = t)) && ((i = t), (t = void 0))),
              (t = t || '');
            var r,
              s = it(),
              o = e ? s._week.dow : 0;
            if (null != i) return ni(t, (i + o) % 7, n, 'day');
            var a = [];
            for (r = 0; r < 7; r++) a[r] = ni(t, (r + o) % 7, n, 'day');
            return a;
          }
          (ii.calendar = function (e, t, i) {
            var n = this._calendar[e] || this._calendar.sameElse;
            return E(n) ? n.call(t, i) : n;
          }),
            (ii.longDateFormat = function (e) {
              var t = this._longDateFormat[e],
                i = this._longDateFormat[e.toUpperCase()];
              return t || !i
                ? t
                : ((this._longDateFormat[e] = i.replace(
                    /MMMM|MM|DD|dddd/g,
                    function (e) {
                      return e.slice(1);
                    }
                  )),
                  this._longDateFormat[e]);
            }),
            (ii.invalidDate = function () {
              return this._invalidDate;
            }),
            (ii.ordinal = function (e) {
              return this._ordinal.replace('%d', e);
            }),
            (ii.preparse = ti),
            (ii.postformat = ti),
            (ii.relativeTime = function (e, t, i, n) {
              var r = this._relativeTime[i];
              return E(r) ? r(e, t, i, n) : r.replace(/%d/i, e);
            }),
            (ii.pastFuture = function (e, t) {
              var i = this._relativeTime[0 < e ? 'future' : 'past'];
              return E(i) ? i(t) : i.replace(/%s/i, t);
            }),
            (ii.set = function (e) {
              var t, i;
              for (i in e) E((t = e[i])) ? (this[i] = t) : (this['_' + i] = t);
              (this._config = e),
                (this._dayOfMonthOrdinalParseLenient = new RegExp(
                  (this._dayOfMonthOrdinalParse.source ||
                    this._ordinalParse.source) +
                    '|' +
                    /\d{1,2}/.source
                ));
            }),
            (ii.months = function (e, t) {
              return e
                ? s(this._months)
                  ? this._months[e.month()]
                  : this._months[
                      (this._months.isFormat || ke).test(t)
                        ? 'format'
                        : 'standalone'
                    ][e.month()]
                : s(this._months)
                ? this._months
                : this._months.standalone;
            }),
            (ii.monthsShort = function (e, t) {
              return e
                ? s(this._monthsShort)
                  ? this._monthsShort[e.month()]
                  : this._monthsShort[ke.test(t) ? 'format' : 'standalone'][
                      e.month()
                    ]
                : s(this._monthsShort)
                ? this._monthsShort
                : this._monthsShort.standalone;
            }),
            (ii.monthsParse = function (e, t, i) {
              var n, r, s;
              if (this._monthsParseExact)
                return function (e, t, i) {
                  var n,
                    r,
                    s,
                    o = e.toLocaleLowerCase();
                  if (!this._monthsParse)
                    for (
                      this._monthsParse = [],
                        this._longMonthsParse = [],
                        this._shortMonthsParse = [],
                        n = 0;
                      n < 12;
                      ++n
                    )
                      (s = g([2e3, n])),
                        (this._shortMonthsParse[n] = this.monthsShort(
                          s,
                          ''
                        ).toLocaleLowerCase()),
                        (this._longMonthsParse[n] = this.months(
                          s,
                          ''
                        ).toLocaleLowerCase());
                  return i
                    ? 'MMM' === t
                      ? -1 !== (r = be.call(this._shortMonthsParse, o))
                        ? r
                        : null
                      : -1 !== (r = be.call(this._longMonthsParse, o))
                      ? r
                      : null
                    : 'MMM' === t
                    ? -1 !== (r = be.call(this._shortMonthsParse, o)) ||
                      -1 !== (r = be.call(this._longMonthsParse, o))
                      ? r
                      : null
                    : -1 !== (r = be.call(this._longMonthsParse, o)) ||
                      -1 !== (r = be.call(this._shortMonthsParse, o))
                    ? r
                    : null;
                }.call(this, e, t, i);
              for (
                this._monthsParse ||
                  ((this._monthsParse = []),
                  (this._longMonthsParse = []),
                  (this._shortMonthsParse = [])),
                  n = 0;
                n < 12;
                n++
              ) {
                if (
                  ((r = g([2e3, n])),
                  i &&
                    !this._longMonthsParse[n] &&
                    ((this._longMonthsParse[n] = new RegExp(
                      '^' + this.months(r, '').replace('.', '') + '$',
                      'i'
                    )),
                    (this._shortMonthsParse[n] = new RegExp(
                      '^' + this.monthsShort(r, '').replace('.', '') + '$',
                      'i'
                    ))),
                  i ||
                    this._monthsParse[n] ||
                    ((s =
                      '^' +
                      this.months(r, '') +
                      '|^' +
                      this.monthsShort(r, '')),
                    (this._monthsParse[n] = new RegExp(
                      s.replace('.', ''),
                      'i'
                    ))),
                  i && 'MMMM' === t && this._longMonthsParse[n].test(e))
                )
                  return n;
                if (i && 'MMM' === t && this._shortMonthsParse[n].test(e))
                  return n;
                if (!i && this._monthsParse[n].test(e)) return n;
              }
            }),
            (ii.monthsRegex = function (e) {
              return this._monthsParseExact
                ? (h(this, '_monthsRegex') || Te.call(this),
                  e ? this._monthsStrictRegex : this._monthsRegex)
                : (h(this, '_monthsRegex') || (this._monthsRegex = Ee),
                  this._monthsStrictRegex && e
                    ? this._monthsStrictRegex
                    : this._monthsRegex);
            }),
            (ii.monthsShortRegex = function (e) {
              return this._monthsParseExact
                ? (h(this, '_monthsRegex') || Te.call(this),
                  e ? this._monthsShortStrictRegex : this._monthsShortRegex)
                : (h(this, '_monthsShortRegex') ||
                    (this._monthsShortRegex = Ne),
                  this._monthsShortStrictRegex && e
                    ? this._monthsShortStrictRegex
                    : this._monthsShortRegex);
            }),
            (ii.week = function (e) {
              return Re(e, this._week.dow, this._week.doy).week;
            }),
            (ii.firstDayOfYear = function () {
              return this._week.doy;
            }),
            (ii.firstDayOfWeek = function () {
              return this._week.dow;
            }),
            (ii.weekdays = function (e, t) {
              return e
                ? s(this._weekdays)
                  ? this._weekdays[e.day()]
                  : this._weekdays[
                      this._weekdays.isFormat.test(t) ? 'format' : 'standalone'
                    ][e.day()]
                : s(this._weekdays)
                ? this._weekdays
                : this._weekdays.standalone;
            }),
            (ii.weekdaysMin = function (e) {
              return e ? this._weekdaysMin[e.day()] : this._weekdaysMin;
            }),
            (ii.weekdaysShort = function (e) {
              return e ? this._weekdaysShort[e.day()] : this._weekdaysShort;
            }),
            (ii.weekdaysParse = function (e, t, i) {
              var n, r, s;
              if (this._weekdaysParseExact)
                return function (e, t, i) {
                  var n,
                    r,
                    s,
                    o = e.toLocaleLowerCase();
                  if (!this._weekdaysParse)
                    for (
                      this._weekdaysParse = [],
                        this._shortWeekdaysParse = [],
                        this._minWeekdaysParse = [],
                        n = 0;
                      n < 7;
                      ++n
                    )
                      (s = g([2e3, 1]).day(n)),
                        (this._minWeekdaysParse[n] = this.weekdaysMin(
                          s,
                          ''
                        ).toLocaleLowerCase()),
                        (this._shortWeekdaysParse[n] = this.weekdaysShort(
                          s,
                          ''
                        ).toLocaleLowerCase()),
                        (this._weekdaysParse[n] = this.weekdays(
                          s,
                          ''
                        ).toLocaleLowerCase());
                  return i
                    ? 'dddd' === t
                      ? -1 !== (r = be.call(this._weekdaysParse, o))
                        ? r
                        : null
                      : 'ddd' === t
                      ? -1 !== (r = be.call(this._shortWeekdaysParse, o))
                        ? r
                        : null
                      : -1 !== (r = be.call(this._minWeekdaysParse, o))
                      ? r
                      : null
                    : 'dddd' === t
                    ? -1 !== (r = be.call(this._weekdaysParse, o)) ||
                      -1 !== (r = be.call(this._shortWeekdaysParse, o)) ||
                      -1 !== (r = be.call(this._minWeekdaysParse, o))
                      ? r
                      : null
                    : 'ddd' === t
                    ? -1 !== (r = be.call(this._shortWeekdaysParse, o)) ||
                      -1 !== (r = be.call(this._weekdaysParse, o)) ||
                      -1 !== (r = be.call(this._minWeekdaysParse, o))
                      ? r
                      : null
                    : -1 !== (r = be.call(this._minWeekdaysParse, o)) ||
                      -1 !== (r = be.call(this._weekdaysParse, o)) ||
                      -1 !== (r = be.call(this._shortWeekdaysParse, o))
                    ? r
                    : null;
                }.call(this, e, t, i);
              for (
                this._weekdaysParse ||
                  ((this._weekdaysParse = []),
                  (this._minWeekdaysParse = []),
                  (this._shortWeekdaysParse = []),
                  (this._fullWeekdaysParse = [])),
                  n = 0;
                n < 7;
                n++
              ) {
                if (
                  ((r = g([2e3, 1]).day(n)),
                  i &&
                    !this._fullWeekdaysParse[n] &&
                    ((this._fullWeekdaysParse[n] = new RegExp(
                      '^' + this.weekdays(r, '').replace('.', '.?') + '$',
                      'i'
                    )),
                    (this._shortWeekdaysParse[n] = new RegExp(
                      '^' + this.weekdaysShort(r, '').replace('.', '.?') + '$',
                      'i'
                    )),
                    (this._minWeekdaysParse[n] = new RegExp(
                      '^' + this.weekdaysMin(r, '').replace('.', '.?') + '$',
                      'i'
                    ))),
                  this._weekdaysParse[n] ||
                    ((s =
                      '^' +
                      this.weekdays(r, '') +
                      '|^' +
                      this.weekdaysShort(r, '') +
                      '|^' +
                      this.weekdaysMin(r, '')),
                    (this._weekdaysParse[n] = new RegExp(
                      s.replace('.', ''),
                      'i'
                    ))),
                  i && 'dddd' === t && this._fullWeekdaysParse[n].test(e))
                )
                  return n;
                if (i && 'ddd' === t && this._shortWeekdaysParse[n].test(e))
                  return n;
                if (i && 'dd' === t && this._minWeekdaysParse[n].test(e))
                  return n;
                if (!i && this._weekdaysParse[n].test(e)) return n;
              }
            }),
            (ii.weekdaysRegex = function (e) {
              return this._weekdaysParseExact
                ? (h(this, '_weekdaysRegex') || Ve.call(this),
                  e ? this._weekdaysStrictRegex : this._weekdaysRegex)
                : (h(this, '_weekdaysRegex') || (this._weekdaysRegex = Ye),
                  this._weekdaysStrictRegex && e
                    ? this._weekdaysStrictRegex
                    : this._weekdaysRegex);
            }),
            (ii.weekdaysShortRegex = function (e) {
              return this._weekdaysParseExact
                ? (h(this, '_weekdaysRegex') || Ve.call(this),
                  e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
                : (h(this, '_weekdaysShortRegex') ||
                    (this._weekdaysShortRegex = He),
                  this._weekdaysShortStrictRegex && e
                    ? this._weekdaysShortStrictRegex
                    : this._weekdaysShortRegex);
            }),
            (ii.weekdaysMinRegex = function (e) {
              return this._weekdaysParseExact
                ? (h(this, '_weekdaysRegex') || Ve.call(this),
                  e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
                : (h(this, '_weekdaysMinRegex') ||
                    (this._weekdaysMinRegex = je),
                  this._weekdaysMinStrictRegex && e
                    ? this._weekdaysMinStrictRegex
                    : this._weekdaysMinRegex);
            }),
            (ii.isPM = function (e) {
              return 'p' === (e + '').toLowerCase().charAt(0);
            }),
            (ii.meridiem = function (e, t, i) {
              return 11 < e ? (i ? 'pm' : 'PM') : i ? 'am' : 'AM';
            }),
            et('en', {
              dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
              ordinal: function (e) {
                var t = e % 10;
                return (
                  e +
                  (1 === S((e % 100) / 10)
                    ? 'th'
                    : 1 === t
                    ? 'st'
                    : 2 === t
                    ? 'nd'
                    : 3 === t
                    ? 'rd'
                    : 'th')
                );
              },
            }),
            (r.lang = L(
              'moment.lang is deprecated. Use moment.locale instead.',
              et
            )),
            (r.langData = L(
              'moment.langData is deprecated. Use moment.localeData instead.',
              it
            ));
          var oi = Math.abs;
          function ai(e, t, i, n) {
            var r = Rt(t, i);
            return (
              (e._milliseconds += n * r._milliseconds),
              (e._days += n * r._days),
              (e._months += n * r._months),
              e._bubble()
            );
          }
          function li(e) {
            return e < 0 ? Math.floor(e) : Math.ceil(e);
          }
          function ci(e) {
            return (4800 * e) / 146097;
          }
          function di(e) {
            return (146097 * e) / 4800;
          }
          function hi(e) {
            return function () {
              return this.as(e);
            };
          }
          var ui = hi('ms'),
            gi = hi('s'),
            fi = hi('m'),
            pi = hi('h'),
            mi = hi('d'),
            _i = hi('w'),
            bi = hi('M'),
            vi = hi('y');
          function yi(e) {
            return function () {
              return this.isValid() ? this._data[e] : NaN;
            };
          }
          var wi = yi('milliseconds'),
            Ci = yi('seconds'),
            Si = yi('minutes'),
            ki = yi('hours'),
            xi = yi('days'),
            Li = yi('months'),
            Mi = yi('years'),
            Di = Math.round,
            Ni = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 },
            Ei = Math.abs;
          function Ti(e) {
            return (0 < e) - (e < 0) || +e;
          }
          function Ii() {
            if (!this.isValid()) return this.localeData().invalidDate();
            var e,
              t,
              i = Ei(this._milliseconds) / 1e3,
              n = Ei(this._days),
              r = Ei(this._months);
            (t = C((e = C(i / 60)) / 60)), (i %= 60), (e %= 60);
            var s = C(r / 12),
              o = (r %= 12),
              a = n,
              l = t,
              c = e,
              d = i ? i.toFixed(3).replace(/\.?0+$/, '') : '',
              h = this.asSeconds();
            if (!h) return 'P0D';
            var u = h < 0 ? '-' : '',
              g = Ti(this._months) !== Ti(h) ? '-' : '',
              f = Ti(this._days) !== Ti(h) ? '-' : '',
              p = Ti(this._milliseconds) !== Ti(h) ? '-' : '';
            return (
              u +
              'P' +
              (s ? g + s + 'Y' : '') +
              (o ? g + o + 'M' : '') +
              (a ? f + a + 'D' : '') +
              (l || c || d ? 'T' : '') +
              (l ? p + l + 'H' : '') +
              (c ? p + c + 'M' : '') +
              (d ? p + d + 'S' : '')
            );
          }
          var Oi = kt.prototype;
          return (
            (Oi.isValid = function () {
              return this._isValid;
            }),
            (Oi.abs = function () {
              var e = this._data;
              return (
                (this._milliseconds = oi(this._milliseconds)),
                (this._days = oi(this._days)),
                (this._months = oi(this._months)),
                (e.milliseconds = oi(e.milliseconds)),
                (e.seconds = oi(e.seconds)),
                (e.minutes = oi(e.minutes)),
                (e.hours = oi(e.hours)),
                (e.months = oi(e.months)),
                (e.years = oi(e.years)),
                this
              );
            }),
            (Oi.add = function (e, t) {
              return ai(this, e, t, 1);
            }),
            (Oi.subtract = function (e, t) {
              return ai(this, e, t, -1);
            }),
            (Oi.as = function (e) {
              if (!this.isValid()) return NaN;
              var t,
                i,
                n = this._milliseconds;
              if ('month' === (e = R(e)) || 'year' === e)
                return (
                  (t = this._days + n / 864e5),
                  (i = this._months + ci(t)),
                  'month' === e ? i : i / 12
                );
              switch (((t = this._days + Math.round(di(this._months))), e)) {
                case 'week':
                  return t / 7 + n / 6048e5;
                case 'day':
                  return t + n / 864e5;
                case 'hour':
                  return 24 * t + n / 36e5;
                case 'minute':
                  return 1440 * t + n / 6e4;
                case 'second':
                  return 86400 * t + n / 1e3;
                case 'millisecond':
                  return Math.floor(864e5 * t) + n;
                default:
                  throw new Error('Unknown unit ' + e);
              }
            }),
            (Oi.asMilliseconds = ui),
            (Oi.asSeconds = gi),
            (Oi.asMinutes = fi),
            (Oi.asHours = pi),
            (Oi.asDays = mi),
            (Oi.asWeeks = _i),
            (Oi.asMonths = bi),
            (Oi.asYears = vi),
            (Oi.valueOf = function () {
              return this.isValid()
                ? this._milliseconds +
                    864e5 * this._days +
                    (this._months % 12) * 2592e6 +
                    31536e6 * S(this._months / 12)
                : NaN;
            }),
            (Oi._bubble = function () {
              var e,
                t,
                i,
                n,
                r,
                s = this._milliseconds,
                o = this._days,
                a = this._months,
                l = this._data;
              return (
                (0 <= s && 0 <= o && 0 <= a) ||
                  (s <= 0 && o <= 0 && a <= 0) ||
                  ((s += 864e5 * li(di(a) + o)), (a = o = 0)),
                (l.milliseconds = s % 1e3),
                (e = C(s / 1e3)),
                (l.seconds = e % 60),
                (t = C(e / 60)),
                (l.minutes = t % 60),
                (i = C(t / 60)),
                (l.hours = i % 24),
                (a += r = C(ci((o += C(i / 24))))),
                (o -= li(di(r))),
                (n = C(a / 12)),
                (a %= 12),
                (l.days = o),
                (l.months = a),
                (l.years = n),
                this
              );
            }),
            (Oi.clone = function () {
              return Rt(this);
            }),
            (Oi.get = function (e) {
              return (e = R(e)), this.isValid() ? this[e + 's']() : NaN;
            }),
            (Oi.milliseconds = wi),
            (Oi.seconds = Ci),
            (Oi.minutes = Si),
            (Oi.hours = ki),
            (Oi.days = xi),
            (Oi.weeks = function () {
              return C(this.days() / 7);
            }),
            (Oi.months = Li),
            (Oi.years = Mi),
            (Oi.humanize = function (e) {
              if (!this.isValid()) return this.localeData().invalidDate();
              var t,
                i,
                n,
                r,
                s,
                o,
                a,
                l,
                c,
                d,
                h = this.localeData(),
                u =
                  ((t = !e),
                  (i = h),
                  (n = Rt(this).abs()),
                  (r = Di(n.as('s'))),
                  (s = Di(n.as('m'))),
                  (o = Di(n.as('h'))),
                  (a = Di(n.as('d'))),
                  (l = Di(n.as('M'))),
                  (c = Di(n.as('y'))),
                  ((d = (r <= Ni.ss && ['s', r]) ||
                    (r < Ni.s && ['ss', r]) ||
                    (s <= 1 && ['m']) ||
                    (s < Ni.m && ['mm', s]) ||
                    (o <= 1 && ['h']) ||
                    (o < Ni.h && ['hh', o]) ||
                    (a <= 1 && ['d']) ||
                    (a < Ni.d && ['dd', a]) ||
                    (l <= 1 && ['M']) ||
                    (l < Ni.M && ['MM', l]) ||
                    (c <= 1 && ['y']) || ['yy', c])[2] = t),
                  (d[3] = 0 < +this),
                  (d[4] = i),
                  function (e, t, i, n, r) {
                    return r.relativeTime(t || 1, !!i, e, n);
                  }.apply(null, d));
              return e && (u = h.pastFuture(+this, u)), h.postformat(u);
            }),
            (Oi.toISOString = Ii),
            (Oi.toString = Ii),
            (Oi.toJSON = Ii),
            (Oi.locale = Vt),
            (Oi.localeData = Ut),
            (Oi.toIsoString = L(
              'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
              Ii
            )),
            (Oi.lang = zt),
            z('X', 0, 0, 'unix'),
            z('x', 0, 0, 'valueOf'),
            de('x', se),
            de('X', /[+-]?\d+(\.\d{1,3})?/),
            fe('X', function (e, t, i) {
              i._d = new Date(1e3 * parseFloat(e, 10));
            }),
            fe('x', function (e, t, i) {
              i._d = new Date(S(e));
            }),
            (r.version = '2.22.1'),
            (t = vt),
            (r.fn = ei),
            (r.min = function () {
              return Ct('isBefore', [].slice.call(arguments, 0));
            }),
            (r.max = function () {
              return Ct('isAfter', [].slice.call(arguments, 0));
            }),
            (r.now = function () {
              return Date.now ? Date.now() : +new Date();
            }),
            (r.utc = g),
            (r.unix = function (e) {
              return vt(1e3 * e);
            }),
            (r.months = function (e, t) {
              return ri(e, t, 'months');
            }),
            (r.isDate = c),
            (r.locale = et),
            (r.invalid = m),
            (r.duration = Rt),
            (r.isMoment = w),
            (r.weekdays = function (e, t, i) {
              return si(e, t, i, 'weekdays');
            }),
            (r.parseZone = function () {
              return vt.apply(null, arguments).parseZone();
            }),
            (r.localeData = it),
            (r.isDuration = xt),
            (r.monthsShort = function (e, t) {
              return ri(e, t, 'monthsShort');
            }),
            (r.weekdaysMin = function (e, t, i) {
              return si(e, t, i, 'weekdaysMin');
            }),
            (r.defineLocale = tt),
            (r.updateLocale = function (e, t) {
              if (null != t) {
                var i,
                  n,
                  r = Ge;
                null != (n = Xe(e)) && (r = n._config),
                  ((i = new I((t = T(r, t)))).parentLocale = Ze[e]),
                  (Ze[e] = i),
                  et(e);
              } else
                null != Ze[e] &&
                  (null != Ze[e].parentLocale
                    ? (Ze[e] = Ze[e].parentLocale)
                    : null != Ze[e] && delete Ze[e]);
              return Ze[e];
            }),
            (r.locales = function () {
              return M(Ze);
            }),
            (r.weekdaysShort = function (e, t, i) {
              return si(e, t, i, 'weekdaysShort');
            }),
            (r.normalizeUnits = R),
            (r.relativeTimeRounding = function (e) {
              return void 0 === e
                ? Di
                : 'function' == typeof e && ((Di = e), !0);
            }),
            (r.relativeTimeThreshold = function (e, t) {
              return (
                void 0 !== Ni[e] &&
                (void 0 === t
                  ? Ni[e]
                  : ((Ni[e] = t), 's' === e && (Ni.ss = t - 1), !0))
              );
            }),
            (r.calendarFormat = function (e, t) {
              var i = e.diff(t, 'days', !0);
              return i < -6
                ? 'sameElse'
                : i < -1
                ? 'lastWeek'
                : i < 0
                ? 'lastDay'
                : i < 1
                ? 'sameDay'
                : i < 2
                ? 'nextDay'
                : i < 7
                ? 'nextWeek'
                : 'sameElse';
            }),
            (r.prototype = ei),
            (r.HTML5_FMT = {
              DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',
              DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',
              DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',
              DATE: 'YYYY-MM-DD',
              TIME: 'HH:mm',
              TIME_SECONDS: 'HH:mm:ss',
              TIME_MS: 'HH:mm:ss.SSS',
              WEEK: 'YYYY-[W]WW',
              MONTH: 'YYYY-MM',
            }),
            r
          );
        })();
      },
      42786: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('af', {
            months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split(
              '_'
            ),
            weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
              '_'
            ),
            weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
            weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
            meridiemParse: /vm|nm/i,
            isPM: function (e) {
              return /^nm$/i.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 12 ? (i ? 'vm' : 'VM') : i ? 'nm' : 'NM';
            },
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Vandag om] LT',
              nextDay: '[Môre om] LT',
              nextWeek: 'dddd [om] LT',
              lastDay: '[Gister om] LT',
              lastWeek: '[Laas] dddd [om] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'oor %s',
              past: '%s gelede',
              s: "'n paar sekondes",
              ss: '%d sekondes',
              m: "'n minuut",
              mm: '%d minute',
              h: "'n uur",
              hh: '%d ure',
              d: "'n dag",
              dd: '%d dae',
              M: "'n maand",
              MM: '%d maande',
              y: "'n jaar",
              yy: '%d jaar',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
            ordinal: function (e) {
              return e + (1 === e || 8 === e || e >= 20 ? 'ste' : 'de');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      14130: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = function (e) {
              return 0 === e
                ? 0
                : 1 === e
                ? 1
                : 2 === e
                ? 2
                : e % 100 >= 3 && e % 100 <= 10
                ? 3
                : e % 100 >= 11
                ? 4
                : 5;
            },
            i = {
              s: [
                'أقل من ثانية',
                'ثانية واحدة',
                ['ثانيتان', 'ثانيتين'],
                '%d ثوان',
                '%d ثانية',
                '%d ثانية',
              ],
              m: [
                'أقل من دقيقة',
                'دقيقة واحدة',
                ['دقيقتان', 'دقيقتين'],
                '%d دقائق',
                '%d دقيقة',
                '%d دقيقة',
              ],
              h: [
                'أقل من ساعة',
                'ساعة واحدة',
                ['ساعتان', 'ساعتين'],
                '%d ساعات',
                '%d ساعة',
                '%d ساعة',
              ],
              d: [
                'أقل من يوم',
                'يوم واحد',
                ['يومان', 'يومين'],
                '%d أيام',
                '%d يومًا',
                '%d يوم',
              ],
              M: [
                'أقل من شهر',
                'شهر واحد',
                ['شهران', 'شهرين'],
                '%d أشهر',
                '%d شهرا',
                '%d شهر',
              ],
              y: [
                'أقل من عام',
                'عام واحد',
                ['عامان', 'عامين'],
                '%d أعوام',
                '%d عامًا',
                '%d عام',
              ],
            },
            n = function (e) {
              return function (n, r, s, o) {
                var a = t(n),
                  l = i[e][t(n)];
                return 2 === a && (l = l[r ? 0 : 1]), l.replace(/%d/i, n);
              };
            },
            r = [
              'جانفي',
              'فيفري',
              'مارس',
              'أفريل',
              'ماي',
              'جوان',
              'جويلية',
              'أوت',
              'سبتمبر',
              'أكتوبر',
              'نوفمبر',
              'ديسمبر',
            ];
          e.defineLocale('ar-dz', {
            months: r,
            monthsShort: r,
            weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'D/‏M/‏YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            meridiemParse: /ص|م/,
            isPM: function (e) {
              return 'م' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ص' : 'م';
            },
            calendar: {
              sameDay: '[اليوم عند الساعة] LT',
              nextDay: '[غدًا عند الساعة] LT',
              nextWeek: 'dddd [عند الساعة] LT',
              lastDay: '[أمس عند الساعة] LT',
              lastWeek: 'dddd [عند الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'بعد %s',
              past: 'منذ %s',
              s: n('s'),
              ss: n('s'),
              m: n('m'),
              mm: n('m'),
              h: n('h'),
              hh: n('h'),
              d: n('d'),
              dd: n('d'),
              M: n('M'),
              MM: n('M'),
              y: n('y'),
              yy: n('y'),
            },
            postformat: function (e) {
              return e.replace(/,/g, '،');
            },
            week: { dow: 0, doy: 4 },
          });
        })(i(30381));
      },
      96135: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ar-kw', {
            months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
              '_'
            ),
            monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
              '_'
            ),
            weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[اليوم على الساعة] LT',
              nextDay: '[غدا على الساعة] LT',
              nextWeek: 'dddd [على الساعة] LT',
              lastDay: '[أمس على الساعة] LT',
              lastWeek: 'dddd [على الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'في %s',
              past: 'منذ %s',
              s: 'ثوان',
              ss: '%d ثانية',
              m: 'دقيقة',
              mm: '%d دقائق',
              h: 'ساعة',
              hh: '%d ساعات',
              d: 'يوم',
              dd: '%d أيام',
              M: 'شهر',
              MM: '%d أشهر',
              y: 'سنة',
              yy: '%d سنوات',
            },
            week: { dow: 0, doy: 12 },
          });
        })(i(30381));
      },
      56440: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '1',
              2: '2',
              3: '3',
              4: '4',
              5: '5',
              6: '6',
              7: '7',
              8: '8',
              9: '9',
              0: '0',
            },
            i = function (e) {
              return 0 === e
                ? 0
                : 1 === e
                ? 1
                : 2 === e
                ? 2
                : e % 100 >= 3 && e % 100 <= 10
                ? 3
                : e % 100 >= 11
                ? 4
                : 5;
            },
            n = {
              s: [
                'أقل من ثانية',
                'ثانية واحدة',
                ['ثانيتان', 'ثانيتين'],
                '%d ثوان',
                '%d ثانية',
                '%d ثانية',
              ],
              m: [
                'أقل من دقيقة',
                'دقيقة واحدة',
                ['دقيقتان', 'دقيقتين'],
                '%d دقائق',
                '%d دقيقة',
                '%d دقيقة',
              ],
              h: [
                'أقل من ساعة',
                'ساعة واحدة',
                ['ساعتان', 'ساعتين'],
                '%d ساعات',
                '%d ساعة',
                '%d ساعة',
              ],
              d: [
                'أقل من يوم',
                'يوم واحد',
                ['يومان', 'يومين'],
                '%d أيام',
                '%d يومًا',
                '%d يوم',
              ],
              M: [
                'أقل من شهر',
                'شهر واحد',
                ['شهران', 'شهرين'],
                '%d أشهر',
                '%d شهرا',
                '%d شهر',
              ],
              y: [
                'أقل من عام',
                'عام واحد',
                ['عامان', 'عامين'],
                '%d أعوام',
                '%d عامًا',
                '%d عام',
              ],
            },
            r = function (e) {
              return function (t, r, s, o) {
                var a = i(t),
                  l = n[e][i(t)];
                return 2 === a && (l = l[r ? 0 : 1]), l.replace(/%d/i, t);
              };
            },
            s = [
              'يناير',
              'فبراير',
              'مارس',
              'أبريل',
              'مايو',
              'يونيو',
              'يوليو',
              'أغسطس',
              'سبتمبر',
              'أكتوبر',
              'نوفمبر',
              'ديسمبر',
            ];
          e.defineLocale('ar-ly', {
            months: s,
            monthsShort: s,
            weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'D/‏M/‏YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            meridiemParse: /ص|م/,
            isPM: function (e) {
              return 'م' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ص' : 'م';
            },
            calendar: {
              sameDay: '[اليوم عند الساعة] LT',
              nextDay: '[غدًا عند الساعة] LT',
              nextWeek: 'dddd [عند الساعة] LT',
              lastDay: '[أمس عند الساعة] LT',
              lastWeek: 'dddd [عند الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'بعد %s',
              past: 'منذ %s',
              s: r('s'),
              ss: r('s'),
              m: r('m'),
              mm: r('m'),
              h: r('h'),
              hh: r('h'),
              d: r('d'),
              dd: r('d'),
              M: r('M'),
              MM: r('M'),
              y: r('y'),
              yy: r('y'),
            },
            preparse: function (e) {
              return e.replace(/،/g, ',');
            },
            postformat: function (e) {
              return e
                .replace(/\d/g, function (e) {
                  return t[e];
                })
                .replace(/,/g, '،');
            },
            week: { dow: 6, doy: 12 },
          });
        })(i(30381));
      },
      47702: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ar-ma', {
            months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
              '_'
            ),
            monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
              '_'
            ),
            weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[اليوم على الساعة] LT',
              nextDay: '[غدا على الساعة] LT',
              nextWeek: 'dddd [على الساعة] LT',
              lastDay: '[أمس على الساعة] LT',
              lastWeek: 'dddd [على الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'في %s',
              past: 'منذ %s',
              s: 'ثوان',
              ss: '%d ثانية',
              m: 'دقيقة',
              mm: '%d دقائق',
              h: 'ساعة',
              hh: '%d ساعات',
              d: 'يوم',
              dd: '%d أيام',
              M: 'شهر',
              MM: '%d أشهر',
              y: 'سنة',
              yy: '%d سنوات',
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      16040: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '١',
              2: '٢',
              3: '٣',
              4: '٤',
              5: '٥',
              6: '٦',
              7: '٧',
              8: '٨',
              9: '٩',
              0: '٠',
            },
            i = {
              '١': '1',
              '٢': '2',
              '٣': '3',
              '٤': '4',
              '٥': '5',
              '٦': '6',
              '٧': '7',
              '٨': '8',
              '٩': '9',
              '٠': '0',
            };
          e.defineLocale('ar-sa', {
            months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
              '_'
            ),
            monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
              '_'
            ),
            weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            meridiemParse: /ص|م/,
            isPM: function (e) {
              return 'م' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ص' : 'م';
            },
            calendar: {
              sameDay: '[اليوم على الساعة] LT',
              nextDay: '[غدا على الساعة] LT',
              nextWeek: 'dddd [على الساعة] LT',
              lastDay: '[أمس على الساعة] LT',
              lastWeek: 'dddd [على الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'في %s',
              past: 'منذ %s',
              s: 'ثوان',
              ss: '%d ثانية',
              m: 'دقيقة',
              mm: '%d دقائق',
              h: 'ساعة',
              hh: '%d ساعات',
              d: 'يوم',
              dd: '%d أيام',
              M: 'شهر',
              MM: '%d أشهر',
              y: 'سنة',
              yy: '%d سنوات',
            },
            preparse: function (e) {
              return e
                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (e) {
                  return i[e];
                })
                .replace(/،/g, ',');
            },
            postformat: function (e) {
              return e
                .replace(/\d/g, function (e) {
                  return t[e];
                })
                .replace(/,/g, '،');
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      37100: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ar-tn', {
            months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
              '_'
            ),
            monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
              '_'
            ),
            weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[اليوم على الساعة] LT',
              nextDay: '[غدا على الساعة] LT',
              nextWeek: 'dddd [على الساعة] LT',
              lastDay: '[أمس على الساعة] LT',
              lastWeek: 'dddd [على الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'في %s',
              past: 'منذ %s',
              s: 'ثوان',
              ss: '%d ثانية',
              m: 'دقيقة',
              mm: '%d دقائق',
              h: 'ساعة',
              hh: '%d ساعات',
              d: 'يوم',
              dd: '%d أيام',
              M: 'شهر',
              MM: '%d أشهر',
              y: 'سنة',
              yy: '%d سنوات',
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      30867: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '١',
              2: '٢',
              3: '٣',
              4: '٤',
              5: '٥',
              6: '٦',
              7: '٧',
              8: '٨',
              9: '٩',
              0: '٠',
            },
            i = {
              '١': '1',
              '٢': '2',
              '٣': '3',
              '٤': '4',
              '٥': '5',
              '٦': '6',
              '٧': '7',
              '٨': '8',
              '٩': '9',
              '٠': '0',
            },
            n = function (e) {
              return 0 === e
                ? 0
                : 1 === e
                ? 1
                : 2 === e
                ? 2
                : e % 100 >= 3 && e % 100 <= 10
                ? 3
                : e % 100 >= 11
                ? 4
                : 5;
            },
            r = {
              s: [
                'أقل من ثانية',
                'ثانية واحدة',
                ['ثانيتان', 'ثانيتين'],
                '%d ثوان',
                '%d ثانية',
                '%d ثانية',
              ],
              m: [
                'أقل من دقيقة',
                'دقيقة واحدة',
                ['دقيقتان', 'دقيقتين'],
                '%d دقائق',
                '%d دقيقة',
                '%d دقيقة',
              ],
              h: [
                'أقل من ساعة',
                'ساعة واحدة',
                ['ساعتان', 'ساعتين'],
                '%d ساعات',
                '%d ساعة',
                '%d ساعة',
              ],
              d: [
                'أقل من يوم',
                'يوم واحد',
                ['يومان', 'يومين'],
                '%d أيام',
                '%d يومًا',
                '%d يوم',
              ],
              M: [
                'أقل من شهر',
                'شهر واحد',
                ['شهران', 'شهرين'],
                '%d أشهر',
                '%d شهرا',
                '%d شهر',
              ],
              y: [
                'أقل من عام',
                'عام واحد',
                ['عامان', 'عامين'],
                '%d أعوام',
                '%d عامًا',
                '%d عام',
              ],
            },
            s = function (e) {
              return function (t, i, s, o) {
                var a = n(t),
                  l = r[e][n(t)];
                return 2 === a && (l = l[i ? 0 : 1]), l.replace(/%d/i, t);
              };
            },
            o = [
              'يناير',
              'فبراير',
              'مارس',
              'أبريل',
              'مايو',
              'يونيو',
              'يوليو',
              'أغسطس',
              'سبتمبر',
              'أكتوبر',
              'نوفمبر',
              'ديسمبر',
            ];
          e.defineLocale('ar', {
            months: o,
            monthsShort: o,
            weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split(
              '_'
            ),
            weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
            weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'D/‏M/‏YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            meridiemParse: /ص|م/,
            isPM: function (e) {
              return 'م' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ص' : 'م';
            },
            calendar: {
              sameDay: '[اليوم عند الساعة] LT',
              nextDay: '[غدًا عند الساعة] LT',
              nextWeek: 'dddd [عند الساعة] LT',
              lastDay: '[أمس عند الساعة] LT',
              lastWeek: 'dddd [عند الساعة] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'بعد %s',
              past: 'منذ %s',
              s: s('s'),
              ss: s('s'),
              m: s('m'),
              mm: s('m'),
              h: s('h'),
              hh: s('h'),
              d: s('d'),
              dd: s('d'),
              M: s('M'),
              MM: s('M'),
              y: s('y'),
              yy: s('y'),
            },
            preparse: function (e) {
              return e
                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (e) {
                  return i[e];
                })
                .replace(/،/g, ',');
            },
            postformat: function (e) {
              return e
                .replace(/\d/g, function (e) {
                  return t[e];
                })
                .replace(/,/g, '،');
            },
            week: { dow: 6, doy: 12 },
          });
        })(i(30381));
      },
      31083: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            1: '-inci',
            5: '-inci',
            8: '-inci',
            70: '-inci',
            80: '-inci',
            2: '-nci',
            7: '-nci',
            20: '-nci',
            50: '-nci',
            3: '-üncü',
            4: '-üncü',
            100: '-üncü',
            6: '-ncı',
            9: '-uncu',
            10: '-uncu',
            30: '-uncu',
            60: '-ıncı',
            90: '-ıncı',
          };
          e.defineLocale('az', {
            months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
              '_'
            ),
            monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split(
              '_'
            ),
            weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
              '_'
            ),
            weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
            weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[bugün saat] LT',
              nextDay: '[sabah saat] LT',
              nextWeek: '[gələn həftə] dddd [saat] LT',
              lastDay: '[dünən] LT',
              lastWeek: '[keçən həftə] dddd [saat] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s sonra',
              past: '%s əvvəl',
              s: 'bir neçə saniyə',
              ss: '%d saniyə',
              m: 'bir dəqiqə',
              mm: '%d dəqiqə',
              h: 'bir saat',
              hh: '%d saat',
              d: 'bir gün',
              dd: '%d gün',
              M: 'bir ay',
              MM: '%d ay',
              y: 'bir il',
              yy: '%d il',
            },
            meridiemParse: /gecə|səhər|gündüz|axşam/,
            isPM: function (e) {
              return /^(gündüz|axşam)$/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'gecə'
                : e < 12
                ? 'səhər'
                : e < 17
                ? 'gündüz'
                : 'axşam';
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
            ordinal: function (e) {
              if (0 === e) return e + '-ıncı';
              var i = e % 10;
              return e + (t[i] || t[(e % 100) - i] || t[e >= 100 ? 100 : null]);
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      9808: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            return 'm' === i
              ? t
                ? 'хвіліна'
                : 'хвіліну'
              : 'h' === i
              ? t
                ? 'гадзіна'
                : 'гадзіну'
              : e +
                ' ' +
                ((n = +e),
                (r = {
                  ss: t ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
                  mm: t ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
                  hh: t ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
                  dd: 'дзень_дні_дзён',
                  MM: 'месяц_месяцы_месяцаў',
                  yy: 'год_гады_гадоў',
                }[i].split('_')),
                n % 10 == 1 && n % 100 != 11
                  ? r[0]
                  : n % 10 >= 2 &&
                    n % 10 <= 4 &&
                    (n % 100 < 10 || n % 100 >= 20)
                  ? r[1]
                  : r[2]);
            var n, r;
          }
          e.defineLocale('be', {
            months: {
              format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
                '_'
              ),
              standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
                '_'
              ),
            },
            monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(
              '_'
            ),
            weekdays: {
              format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
                '_'
              ),
              standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
                '_'
              ),
              isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
            },
            weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
            weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY г.',
              LLL: 'D MMMM YYYY г., HH:mm',
              LLLL: 'dddd, D MMMM YYYY г., HH:mm',
            },
            calendar: {
              sameDay: '[Сёння ў] LT',
              nextDay: '[Заўтра ў] LT',
              lastDay: '[Учора ў] LT',
              nextWeek: function () {
                return '[У] dddd [ў] LT';
              },
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                  case 3:
                  case 5:
                  case 6:
                    return '[У мінулую] dddd [ў] LT';
                  case 1:
                  case 2:
                  case 4:
                    return '[У мінулы] dddd [ў] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'праз %s',
              past: '%s таму',
              s: 'некалькі секунд',
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: 'дзень',
              dd: t,
              M: 'месяц',
              MM: t,
              y: 'год',
              yy: t,
            },
            meridiemParse: /ночы|раніцы|дня|вечара/,
            isPM: function (e) {
              return /^(дня|вечара)$/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'ночы'
                : e < 12
                ? 'раніцы'
                : e < 17
                ? 'дня'
                : 'вечара';
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'M':
                case 'd':
                case 'DDD':
                case 'w':
                case 'W':
                  return (e % 10 != 2 && e % 10 != 3) ||
                    e % 100 == 12 ||
                    e % 100 == 13
                    ? e + '-ы'
                    : e + '-і';
                case 'D':
                  return e + '-га';
                default:
                  return e;
              }
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      68338: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('bg', {
            months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
              '_'
            ),
            monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split(
              '_'
            ),
            weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
              '_'
            ),
            weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
            weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'D.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY H:mm',
              LLLL: 'dddd, D MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[Днес в] LT',
              nextDay: '[Утре в] LT',
              nextWeek: 'dddd [в] LT',
              lastDay: '[Вчера в] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                  case 3:
                  case 6:
                    return '[Миналата] dddd [в] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[Миналия] dddd [в] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'след %s',
              past: 'преди %s',
              s: 'няколко секунди',
              ss: '%d секунди',
              m: 'минута',
              mm: '%d минути',
              h: 'час',
              hh: '%d часа',
              d: 'ден',
              dd: '%d дена',
              w: 'седмица',
              ww: '%d седмици',
              M: 'месец',
              MM: '%d месеца',
              y: 'година',
              yy: '%d години',
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
            ordinal: function (e) {
              var t = e % 10,
                i = e % 100;
              return 0 === e
                ? e + '-ев'
                : 0 === i
                ? e + '-ен'
                : i > 10 && i < 20
                ? e + '-ти'
                : 1 === t
                ? e + '-ви'
                : 2 === t
                ? e + '-ри'
                : 7 === t || 8 === t
                ? e + '-ми'
                : e + '-ти';
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      67438: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('bm', {
            months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
              '_'
            ),
            monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split(
              '_'
            ),
            weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
            weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
            weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'MMMM [tile] D [san] YYYY',
              LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
              LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
            },
            calendar: {
              sameDay: '[Bi lɛrɛ] LT',
              nextDay: '[Sini lɛrɛ] LT',
              nextWeek: 'dddd [don lɛrɛ] LT',
              lastDay: '[Kunu lɛrɛ] LT',
              lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s kɔnɔ',
              past: 'a bɛ %s bɔ',
              s: 'sanga dama dama',
              ss: 'sekondi %d',
              m: 'miniti kelen',
              mm: 'miniti %d',
              h: 'lɛrɛ kelen',
              hh: 'lɛrɛ %d',
              d: 'tile kelen',
              dd: 'tile %d',
              M: 'kalo kelen',
              MM: 'kalo %d',
              y: 'san kelen',
              yy: 'san %d',
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      76225: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '১',
              2: '২',
              3: '৩',
              4: '৪',
              5: '৫',
              6: '৬',
              7: '৭',
              8: '৮',
              9: '৯',
              0: '০',
            },
            i = {
              '১': '1',
              '২': '2',
              '৩': '3',
              '৪': '4',
              '৫': '5',
              '৬': '6',
              '৭': '7',
              '৮': '8',
              '৯': '9',
              '০': '0',
            };
          e.defineLocale('bn-bd', {
            months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
              '_'
            ),
            monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
              '_'
            ),
            weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
              '_'
            ),
            weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
            weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
            longDateFormat: {
              LT: 'A h:mm সময়',
              LTS: 'A h:mm:ss সময়',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm সময়',
              LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
            },
            calendar: {
              sameDay: '[আজ] LT',
              nextDay: '[আগামীকাল] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[গতকাল] LT',
              lastWeek: '[গত] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s পরে',
              past: '%s আগে',
              s: 'কয়েক সেকেন্ড',
              ss: '%d সেকেন্ড',
              m: 'এক মিনিট',
              mm: '%d মিনিট',
              h: 'এক ঘন্টা',
              hh: '%d ঘন্টা',
              d: 'এক দিন',
              dd: '%d দিন',
              M: 'এক মাস',
              MM: '%d মাস',
              y: 'এক বছর',
              yy: '%d বছর',
            },
            preparse: function (e) {
              return e.replace(/[১২৩৪৫৬৭৮৯০]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'রাত' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'ভোর' === t || 'সকাল' === t
                  ? e
                  : 'দুপুর' === t
                  ? e >= 3
                    ? e
                    : e + 12
                  : 'বিকাল' === t || 'সন্ধ্যা' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'রাত'
                : e < 6
                ? 'ভোর'
                : e < 12
                ? 'সকাল'
                : e < 15
                ? 'দুপুর'
                : e < 18
                ? 'বিকাল'
                : e < 20
                ? 'সন্ধ্যা'
                : 'রাত';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      8905: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '১',
              2: '২',
              3: '৩',
              4: '৪',
              5: '৫',
              6: '৬',
              7: '৭',
              8: '৮',
              9: '৯',
              0: '০',
            },
            i = {
              '১': '1',
              '২': '2',
              '৩': '3',
              '৪': '4',
              '৫': '5',
              '৬': '6',
              '৭': '7',
              '৮': '8',
              '৯': '9',
              '০': '0',
            };
          e.defineLocale('bn', {
            months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
              '_'
            ),
            monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
              '_'
            ),
            weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
              '_'
            ),
            weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
            weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
            longDateFormat: {
              LT: 'A h:mm সময়',
              LTS: 'A h:mm:ss সময়',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm সময়',
              LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
            },
            calendar: {
              sameDay: '[আজ] LT',
              nextDay: '[আগামীকাল] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[গতকাল] LT',
              lastWeek: '[গত] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s পরে',
              past: '%s আগে',
              s: 'কয়েক সেকেন্ড',
              ss: '%d সেকেন্ড',
              m: 'এক মিনিট',
              mm: '%d মিনিট',
              h: 'এক ঘন্টা',
              hh: '%d ঘন্টা',
              d: 'এক দিন',
              dd: '%d দিন',
              M: 'এক মাস',
              MM: '%d মাস',
              y: 'এক বছর',
              yy: '%d বছর',
            },
            preparse: function (e) {
              return e.replace(/[১২৩৪৫৬৭৮৯০]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                ('রাত' === t && e >= 4) ||
                ('দুপুর' === t && e < 5) ||
                'বিকাল' === t
                  ? e + 12
                  : e
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'রাত'
                : e < 10
                ? 'সকাল'
                : e < 17
                ? 'দুপুর'
                : e < 20
                ? 'বিকাল'
                : 'রাত';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      11560: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '༡',
              2: '༢',
              3: '༣',
              4: '༤',
              5: '༥',
              6: '༦',
              7: '༧',
              8: '༨',
              9: '༩',
              0: '༠',
            },
            i = {
              '༡': '1',
              '༢': '2',
              '༣': '3',
              '༤': '4',
              '༥': '5',
              '༦': '6',
              '༧': '7',
              '༨': '8',
              '༩': '9',
              '༠': '0',
            };
          e.defineLocale('bo', {
            months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
              '_'
            ),
            monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
              '_'
            ),
            monthsShortRegex: /^(ཟླ་\d{1,2})/,
            monthsParseExact: !0,
            weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
              '_'
            ),
            weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
              '_'
            ),
            weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
            longDateFormat: {
              LT: 'A h:mm',
              LTS: 'A h:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm',
              LLLL: 'dddd, D MMMM YYYY, A h:mm',
            },
            calendar: {
              sameDay: '[དི་རིང] LT',
              nextDay: '[སང་ཉིན] LT',
              nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
              lastDay: '[ཁ་སང] LT',
              lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s ལ་',
              past: '%s སྔན་ལ',
              s: 'ལམ་སང',
              ss: '%d སྐར་ཆ།',
              m: 'སྐར་མ་གཅིག',
              mm: '%d སྐར་མ',
              h: 'ཆུ་ཚོད་གཅིག',
              hh: '%d ཆུ་ཚོད',
              d: 'ཉིན་གཅིག',
              dd: '%d ཉིན་',
              M: 'ཟླ་བ་གཅིག',
              MM: '%d ཟླ་བ',
              y: 'ལོ་གཅིག',
              yy: '%d ལོ',
            },
            preparse: function (e) {
              return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                ('མཚན་མོ' === t && e >= 4) ||
                ('ཉིན་གུང' === t && e < 5) ||
                'དགོང་དག' === t
                  ? e + 12
                  : e
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'མཚན་མོ'
                : e < 10
                ? 'ཞོགས་ཀས'
                : e < 17
                ? 'ཉིན་གུང'
                : e < 20
                ? 'དགོང་དག'
                : 'མཚན་མོ';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      1278: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            return (
              e +
              ' ' +
              (function (e, t) {
                return 2 === t
                  ? (function (e) {
                      var t = { m: 'v', b: 'v', d: 'z' };
                      return void 0 === t[e.charAt(0)]
                        ? e
                        : t[e.charAt(0)] + e.substring(1);
                    })(e)
                  : e;
              })({ mm: 'munutenn', MM: 'miz', dd: 'devezh' }[i], e)
            );
          }
          function i(e) {
            return e > 9 ? i(e % 10) : e;
          }
          var n = [
              /^gen/i,
              /^c[ʼ\']hwe/i,
              /^meu/i,
              /^ebr/i,
              /^mae/i,
              /^(mez|eve)/i,
              /^gou/i,
              /^eos/i,
              /^gwe/i,
              /^her/i,
              /^du/i,
              /^ker/i,
            ],
            r = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
            s = [
              /^Su/i,
              /^Lu/i,
              /^Me([^r]|$)/i,
              /^Mer/i,
              /^Ya/i,
              /^Gw/i,
              /^Sa/i,
            ];
          e.defineLocale('br', {
            months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
              '_'
            ),
            monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split(
              '_'
            ),
            weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
            weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
            weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
            weekdaysParse: s,
            fullWeekdaysParse: [
              /^sul/i,
              /^lun/i,
              /^meurzh/i,
              /^merc[ʼ\']her/i,
              /^yaou/i,
              /^gwener/i,
              /^sadorn/i,
            ],
            shortWeekdaysParse: [
              /^Sul/i,
              /^Lun/i,
              /^Meu/i,
              /^Mer/i,
              /^Yao/i,
              /^Gwe/i,
              /^Sad/i,
            ],
            minWeekdaysParse: s,
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
            monthsShortStrictRegex: /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [a viz] MMMM YYYY',
              LLL: 'D [a viz] MMMM YYYY HH:mm',
              LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Hiziv da] LT',
              nextDay: '[Warcʼhoazh da] LT',
              nextWeek: 'dddd [da] LT',
              lastDay: '[Decʼh da] LT',
              lastWeek: 'dddd [paset da] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'a-benn %s',
              past: '%s ʼzo',
              s: 'un nebeud segondennoù',
              ss: '%d eilenn',
              m: 'ur vunutenn',
              mm: t,
              h: 'un eur',
              hh: '%d eur',
              d: 'un devezh',
              dd: t,
              M: 'ur miz',
              MM: t,
              y: 'ur bloaz',
              yy: function (e) {
                switch (i(e)) {
                  case 1:
                  case 3:
                  case 4:
                  case 5:
                  case 9:
                    return e + ' bloaz';
                  default:
                    return e + ' vloaz';
                }
              },
            },
            dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
            ordinal: function (e) {
              return e + (1 === e ? 'añ' : 'vet');
            },
            week: { dow: 1, doy: 4 },
            meridiemParse: /a.m.|g.m./,
            isPM: function (e) {
              return 'g.m.' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'a.m.' : 'g.m.';
            },
          });
        })(i(30381));
      },
      80622: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            var n = e + ' ';
            switch (i) {
              case 'ss':
                return (
                  n +
                  (1 === e
                    ? 'sekunda'
                    : 2 === e || 3 === e || 4 === e
                    ? 'sekunde'
                    : 'sekundi')
                );
              case 'm':
                return t ? 'jedna minuta' : 'jedne minute';
              case 'mm':
                return (
                  n +
                  (1 === e
                    ? 'minuta'
                    : 2 === e || 3 === e || 4 === e
                    ? 'minute'
                    : 'minuta')
                );
              case 'h':
                return t ? 'jedan sat' : 'jednog sata';
              case 'hh':
                return (
                  n +
                  (1 === e
                    ? 'sat'
                    : 2 === e || 3 === e || 4 === e
                    ? 'sata'
                    : 'sati')
                );
              case 'dd':
                return n + (1 === e ? 'dan' : 'dana');
              case 'MM':
                return (
                  n +
                  (1 === e
                    ? 'mjesec'
                    : 2 === e || 3 === e || 4 === e
                    ? 'mjeseca'
                    : 'mjeseci')
                );
              case 'yy':
                return (
                  n +
                  (1 === e
                    ? 'godina'
                    : 2 === e || 3 === e || 4 === e
                    ? 'godine'
                    : 'godina')
                );
            }
          }
          e.defineLocale('bs', {
            months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
              '_'
            ),
            monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
              '_'
            ),
            weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
            weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm',
              LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[danas u] LT',
              nextDay: '[sutra u] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[u] [nedjelju] [u] LT';
                  case 3:
                    return '[u] [srijedu] [u] LT';
                  case 6:
                    return '[u] [subotu] [u] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[u] dddd [u] LT';
                }
              },
              lastDay: '[jučer u] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                  case 3:
                    return '[prošlu] dddd [u] LT';
                  case 6:
                    return '[prošle] [subote] [u] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[prošli] dddd [u] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: 'prije %s',
              s: 'par sekundi',
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: 'dan',
              dd: t,
              M: 'mjesec',
              MM: t,
              y: 'godinu',
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      2468: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ca', {
            months: {
              standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
                '_'
              ),
              format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
                '_'
              ),
              isFormat: /D[oD]?(\s)+MMMM/,
            },
            monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
              '_'
            ),
            weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
            weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM [de] YYYY',
              ll: 'D MMM YYYY',
              LLL: 'D MMMM [de] YYYY [a les] H:mm',
              lll: 'D MMM YYYY, H:mm',
              LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
              llll: 'ddd D MMM YYYY, H:mm',
            },
            calendar: {
              sameDay: function () {
                return (
                  '[avui a ' + (1 !== this.hours() ? 'les' : 'la') + '] LT'
                );
              },
              nextDay: function () {
                return (
                  '[demà a ' + (1 !== this.hours() ? 'les' : 'la') + '] LT'
                );
              },
              nextWeek: function () {
                return (
                  'dddd [a ' + (1 !== this.hours() ? 'les' : 'la') + '] LT'
                );
              },
              lastDay: function () {
                return (
                  '[ahir a ' + (1 !== this.hours() ? 'les' : 'la') + '] LT'
                );
              },
              lastWeek: function () {
                return (
                  '[el] dddd [passat a ' +
                  (1 !== this.hours() ? 'les' : 'la') +
                  '] LT'
                );
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: "d'aquí %s",
              past: 'fa %s',
              s: 'uns segons',
              ss: '%d segons',
              m: 'un minut',
              mm: '%d minuts',
              h: 'una hora',
              hh: '%d hores',
              d: 'un dia',
              dd: '%d dies',
              M: 'un mes',
              MM: '%d mesos',
              y: 'un any',
              yy: '%d anys',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
            ordinal: function (e, t) {
              var i =
                1 === e
                  ? 'r'
                  : 2 === e
                  ? 'n'
                  : 3 === e
                  ? 'r'
                  : 4 === e
                  ? 't'
                  : 'è';
              return ('w' !== t && 'W' !== t) || (i = 'a'), e + i;
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      5822: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
              '_'
            ),
            i = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
            n = [
              /^led/i,
              /^úno/i,
              /^bře/i,
              /^dub/i,
              /^kvě/i,
              /^(čvn|červen$|června)/i,
              /^(čvc|červenec|července)/i,
              /^srp/i,
              /^zář/i,
              /^říj/i,
              /^lis/i,
              /^pro/i,
            ],
            r = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
          function s(e) {
            return e > 1 && e < 5 && 1 != ~~(e / 10);
          }
          function o(e, t, i, n) {
            var r = e + ' ';
            switch (i) {
              case 's':
                return t || n ? 'pár sekund' : 'pár sekundami';
              case 'ss':
                return t || n
                  ? r + (s(e) ? 'sekundy' : 'sekund')
                  : r + 'sekundami';
              case 'm':
                return t ? 'minuta' : n ? 'minutu' : 'minutou';
              case 'mm':
                return t || n
                  ? r + (s(e) ? 'minuty' : 'minut')
                  : r + 'minutami';
              case 'h':
                return t ? 'hodina' : n ? 'hodinu' : 'hodinou';
              case 'hh':
                return t || n
                  ? r + (s(e) ? 'hodiny' : 'hodin')
                  : r + 'hodinami';
              case 'd':
                return t || n ? 'den' : 'dnem';
              case 'dd':
                return t || n ? r + (s(e) ? 'dny' : 'dní') : r + 'dny';
              case 'M':
                return t || n ? 'měsíc' : 'měsícem';
              case 'MM':
                return t || n ? r + (s(e) ? 'měsíce' : 'měsíců') : r + 'měsíci';
              case 'y':
                return t || n ? 'rok' : 'rokem';
              case 'yy':
                return t || n ? r + (s(e) ? 'roky' : 'let') : r + 'lety';
            }
          }
          e.defineLocale('cs', {
            months: t,
            monthsShort: i,
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
            monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split(
              '_'
            ),
            weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
            weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm',
              LLLL: 'dddd D. MMMM YYYY H:mm',
              l: 'D. M. YYYY',
            },
            calendar: {
              sameDay: '[dnes v] LT',
              nextDay: '[zítra v] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[v neděli v] LT';
                  case 1:
                  case 2:
                    return '[v] dddd [v] LT';
                  case 3:
                    return '[ve středu v] LT';
                  case 4:
                    return '[ve čtvrtek v] LT';
                  case 5:
                    return '[v pátek v] LT';
                  case 6:
                    return '[v sobotu v] LT';
                }
              },
              lastDay: '[včera v] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[minulou neděli v] LT';
                  case 1:
                  case 2:
                    return '[minulé] dddd [v] LT';
                  case 3:
                    return '[minulou středu v] LT';
                  case 4:
                  case 5:
                    return '[minulý] dddd [v] LT';
                  case 6:
                    return '[minulou sobotu v] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: 'před %s',
              s: o,
              ss: o,
              m: o,
              mm: o,
              h: o,
              hh: o,
              d: o,
              dd: o,
              M: o,
              MM: o,
              y: o,
              yy: o,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      50877: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('cv', {
            months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
              '_'
            ),
            monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split(
              '_'
            ),
            weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
              '_'
            ),
            weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
            weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD-MM-YYYY',
              LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
              LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
              LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
            },
            calendar: {
              sameDay: '[Паян] LT [сехетре]',
              nextDay: '[Ыран] LT [сехетре]',
              lastDay: '[Ӗнер] LT [сехетре]',
              nextWeek: '[Ҫитес] dddd LT [сехетре]',
              lastWeek: '[Иртнӗ] dddd LT [сехетре]',
              sameElse: 'L',
            },
            relativeTime: {
              future: function (e) {
                return (
                  e +
                  (/сехет$/i.exec(e) ? 'рен' : /ҫул$/i.exec(e) ? 'тан' : 'ран')
                );
              },
              past: '%s каялла',
              s: 'пӗр-ик ҫеккунт',
              ss: '%d ҫеккунт',
              m: 'пӗр минут',
              mm: '%d минут',
              h: 'пӗр сехет',
              hh: '%d сехет',
              d: 'пӗр кун',
              dd: '%d кун',
              M: 'пӗр уйӑх',
              MM: '%d уйӑх',
              y: 'пӗр ҫул',
              yy: '%d ҫул',
            },
            dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
            ordinal: '%d-мӗш',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      47373: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('cy', {
            months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
              '_'
            ),
            monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
              '_'
            ),
            weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
              '_'
            ),
            weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
            weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Heddiw am] LT',
              nextDay: '[Yfory am] LT',
              nextWeek: 'dddd [am] LT',
              lastDay: '[Ddoe am] LT',
              lastWeek: 'dddd [diwethaf am] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'mewn %s',
              past: '%s yn ôl',
              s: 'ychydig eiliadau',
              ss: '%d eiliad',
              m: 'munud',
              mm: '%d munud',
              h: 'awr',
              hh: '%d awr',
              d: 'diwrnod',
              dd: '%d diwrnod',
              M: 'mis',
              MM: '%d mis',
              y: 'blwyddyn',
              yy: '%d flynedd',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
            ordinal: function (e) {
              var t = '';
              return (
                e > 20
                  ? (t =
                      40 === e || 50 === e || 60 === e || 80 === e || 100 === e
                        ? 'fed'
                        : 'ain')
                  : e > 0 &&
                    (t = [
                      '',
                      'af',
                      'il',
                      'ydd',
                      'ydd',
                      'ed',
                      'ed',
                      'ed',
                      'fed',
                      'fed',
                      'fed',
                      'eg',
                      'fed',
                      'eg',
                      'eg',
                      'fed',
                      'eg',
                      'eg',
                      'fed',
                      'eg',
                      'fed',
                    ][e]),
                e + t
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      24780: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('da', {
            months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
              '_'
            ),
            monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split(
              '_'
            ),
            weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split(
              '_'
            ),
            weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
            weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY HH:mm',
              LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
            },
            calendar: {
              sameDay: '[i dag kl.] LT',
              nextDay: '[i morgen kl.] LT',
              nextWeek: 'på dddd [kl.] LT',
              lastDay: '[i går kl.] LT',
              lastWeek: '[i] dddd[s kl.] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'om %s',
              past: '%s siden',
              s: 'få sekunder',
              ss: '%d sekunder',
              m: 'et minut',
              mm: '%d minutter',
              h: 'en time',
              hh: '%d timer',
              d: 'en dag',
              dd: '%d dage',
              M: 'en måned',
              MM: '%d måneder',
              y: 'et år',
              yy: '%d år',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      60217: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              m: ['eine Minute', 'einer Minute'],
              h: ['eine Stunde', 'einer Stunde'],
              d: ['ein Tag', 'einem Tag'],
              dd: [e + ' Tage', e + ' Tagen'],
              w: ['eine Woche', 'einer Woche'],
              M: ['ein Monat', 'einem Monat'],
              MM: [e + ' Monate', e + ' Monaten'],
              y: ['ein Jahr', 'einem Jahr'],
              yy: [e + ' Jahre', e + ' Jahren'],
            };
            return t ? r[i][0] : r[i][1];
          }
          e.defineLocale('de-at', {
            months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
              '_'
            ),
            monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
              '_'
            ),
            weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
            weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY HH:mm',
              LLLL: 'dddd, D. MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[heute um] LT [Uhr]',
              sameElse: 'L',
              nextDay: '[morgen um] LT [Uhr]',
              nextWeek: 'dddd [um] LT [Uhr]',
              lastDay: '[gestern um] LT [Uhr]',
              lastWeek: '[letzten] dddd [um] LT [Uhr]',
            },
            relativeTime: {
              future: 'in %s',
              past: 'vor %s',
              s: 'ein paar Sekunden',
              ss: '%d Sekunden',
              m: t,
              mm: '%d Minuten',
              h: t,
              hh: '%d Stunden',
              d: t,
              dd: t,
              w: t,
              ww: '%d Wochen',
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      60894: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              m: ['eine Minute', 'einer Minute'],
              h: ['eine Stunde', 'einer Stunde'],
              d: ['ein Tag', 'einem Tag'],
              dd: [e + ' Tage', e + ' Tagen'],
              w: ['eine Woche', 'einer Woche'],
              M: ['ein Monat', 'einem Monat'],
              MM: [e + ' Monate', e + ' Monaten'],
              y: ['ein Jahr', 'einem Jahr'],
              yy: [e + ' Jahre', e + ' Jahren'],
            };
            return t ? r[i][0] : r[i][1];
          }
          e.defineLocale('de-ch', {
            months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
              '_'
            ),
            monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
              '_'
            ),
            weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY HH:mm',
              LLLL: 'dddd, D. MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[heute um] LT [Uhr]',
              sameElse: 'L',
              nextDay: '[morgen um] LT [Uhr]',
              nextWeek: 'dddd [um] LT [Uhr]',
              lastDay: '[gestern um] LT [Uhr]',
              lastWeek: '[letzten] dddd [um] LT [Uhr]',
            },
            relativeTime: {
              future: 'in %s',
              past: 'vor %s',
              s: 'ein paar Sekunden',
              ss: '%d Sekunden',
              m: t,
              mm: '%d Minuten',
              h: t,
              hh: '%d Stunden',
              d: t,
              dd: t,
              w: t,
              ww: '%d Wochen',
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      59740: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              m: ['eine Minute', 'einer Minute'],
              h: ['eine Stunde', 'einer Stunde'],
              d: ['ein Tag', 'einem Tag'],
              dd: [e + ' Tage', e + ' Tagen'],
              w: ['eine Woche', 'einer Woche'],
              M: ['ein Monat', 'einem Monat'],
              MM: [e + ' Monate', e + ' Monaten'],
              y: ['ein Jahr', 'einem Jahr'],
              yy: [e + ' Jahre', e + ' Jahren'],
            };
            return t ? r[i][0] : r[i][1];
          }
          e.defineLocale('de', {
            months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
              '_'
            ),
            monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
              '_'
            ),
            weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
            weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY HH:mm',
              LLLL: 'dddd, D. MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[heute um] LT [Uhr]',
              sameElse: 'L',
              nextDay: '[morgen um] LT [Uhr]',
              nextWeek: 'dddd [um] LT [Uhr]',
              lastDay: '[gestern um] LT [Uhr]',
              lastWeek: '[letzten] dddd [um] LT [Uhr]',
            },
            relativeTime: {
              future: 'in %s',
              past: 'vor %s',
              s: 'ein paar Sekunden',
              ss: '%d Sekunden',
              m: t,
              mm: '%d Minuten',
              h: t,
              hh: '%d Stunden',
              d: t,
              dd: t,
              w: t,
              ww: '%d Wochen',
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      5300: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = [
              'ޖެނުއަރީ',
              'ފެބްރުއަރީ',
              'މާރިޗު',
              'އޭޕްރީލު',
              'މޭ',
              'ޖޫން',
              'ޖުލައި',
              'އޯގަސްޓު',
              'ސެޕްޓެމްބަރު',
              'އޮކްޓޯބަރު',
              'ނޮވެމްބަރު',
              'ޑިސެމްބަރު',
            ],
            i = [
              'އާދިއްތަ',
              'ހޯމަ',
              'އަންގާރަ',
              'ބުދަ',
              'ބުރާސްފަތި',
              'ހުކުރު',
              'ހޮނިހިރު',
            ];
          e.defineLocale('dv', {
            months: t,
            monthsShort: t,
            weekdays: i,
            weekdaysShort: i,
            weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'D/M/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            meridiemParse: /މކ|މފ/,
            isPM: function (e) {
              return 'މފ' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'މކ' : 'މފ';
            },
            calendar: {
              sameDay: '[މިއަދު] LT',
              nextDay: '[މާދަމާ] LT',
              nextWeek: 'dddd LT',
              lastDay: '[އިއްޔެ] LT',
              lastWeek: '[ފާއިތުވި] dddd LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'ތެރޭގައި %s',
              past: 'ކުރިން %s',
              s: 'ސިކުންތުކޮޅެއް',
              ss: 'd% ސިކުންތު',
              m: 'މިނިޓެއް',
              mm: 'މިނިޓު %d',
              h: 'ގަޑިއިރެއް',
              hh: 'ގަޑިއިރު %d',
              d: 'ދުވަހެއް',
              dd: 'ދުވަސް %d',
              M: 'މަހެއް',
              MM: 'މަސް %d',
              y: 'އަހަރެއް',
              yy: 'އަހަރު %d',
            },
            preparse: function (e) {
              return e.replace(/،/g, ',');
            },
            postformat: function (e) {
              return e.replace(/,/g, '،');
            },
            week: { dow: 7, doy: 12 },
          });
        })(i(30381));
      },
      50837: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('el', {
            monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
              '_'
            ),
            monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
              '_'
            ),
            months: function (e, t) {
              return e
                ? 'string' == typeof t &&
                  /D/.test(t.substring(0, t.indexOf('MMMM')))
                  ? this._monthsGenitiveEl[e.month()]
                  : this._monthsNominativeEl[e.month()]
                : this._monthsNominativeEl;
            },
            monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split(
              '_'
            ),
            weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
              '_'
            ),
            weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
            weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
            meridiem: function (e, t, i) {
              return e > 11 ? (i ? 'μμ' : 'ΜΜ') : i ? 'πμ' : 'ΠΜ';
            },
            isPM: function (e) {
              return 'μ' === (e + '').toLowerCase()[0];
            },
            meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY h:mm A',
              LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendarEl: {
              sameDay: '[Σήμερα {}] LT',
              nextDay: '[Αύριο {}] LT',
              nextWeek: 'dddd [{}] LT',
              lastDay: '[Χθες {}] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 6:
                    return '[το προηγούμενο] dddd [{}] LT';
                  default:
                    return '[την προηγούμενη] dddd [{}] LT';
                }
              },
              sameElse: 'L',
            },
            calendar: function (e, t) {
              var i,
                n = this._calendarEl[e],
                r = t && t.hours();
              return (
                (i = n),
                (('undefined' != typeof Function && i instanceof Function) ||
                  '[object Function]' === Object.prototype.toString.call(i)) &&
                  (n = n.apply(t)),
                n.replace('{}', r % 12 == 1 ? 'στη' : 'στις')
              );
            },
            relativeTime: {
              future: 'σε %s',
              past: '%s πριν',
              s: 'λίγα δευτερόλεπτα',
              ss: '%d δευτερόλεπτα',
              m: 'ένα λεπτό',
              mm: '%d λεπτά',
              h: 'μία ώρα',
              hh: '%d ώρες',
              d: 'μία μέρα',
              dd: '%d μέρες',
              M: 'ένας μήνας',
              MM: '%d μήνες',
              y: 'ένας χρόνος',
              yy: '%d χρόνια',
            },
            dayOfMonthOrdinalParse: /\d{1,2}η/,
            ordinal: '%dη',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      78348: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-au', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY h:mm A',
              LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 0, doy: 4 },
          });
        })(i(30381));
      },
      77925: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-ca', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'YYYY-MM-DD',
              LL: 'MMMM D, YYYY',
              LLL: 'MMMM D, YYYY h:mm A',
              LLLL: 'dddd, MMMM D, YYYY h:mm A',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
          });
        })(i(30381));
      },
      22243: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-gb', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      46436: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-ie', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      47207: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-il', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
          });
        })(i(30381));
      },
      44175: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-in', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY h:mm A',
              LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      76319: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-nz', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY h:mm A',
              LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      31662: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('en-sg', {
            months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(
              '_'
            ),
            weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Today at] LT',
              nextDay: '[Tomorrow at] LT',
              nextWeek: 'dddd [at] LT',
              lastDay: '[Yesterday at] LT',
              lastWeek: '[Last] dddd [at] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'in %s',
              past: '%s ago',
              s: 'a few seconds',
              ss: '%d seconds',
              m: 'a minute',
              mm: '%d minutes',
              h: 'an hour',
              hh: '%d hours',
              d: 'a day',
              dd: '%d days',
              M: 'a month',
              MM: '%d months',
              y: 'a year',
              yy: '%d years',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      92915: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('eo', {
            months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(
              '_'
            ),
            monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split(
              '_'
            ),
            weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split(
              '_'
            ),
            weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
            weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: '[la] D[-an de] MMMM, YYYY',
              LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
              LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
              llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
            },
            meridiemParse: /[ap]\.t\.m/i,
            isPM: function (e) {
              return 'p' === e.charAt(0).toLowerCase();
            },
            meridiem: function (e, t, i) {
              return e > 11
                ? i
                  ? 'p.t.m.'
                  : 'P.T.M.'
                : i
                ? 'a.t.m.'
                : 'A.T.M.';
            },
            calendar: {
              sameDay: '[Hodiaŭ je] LT',
              nextDay: '[Morgaŭ je] LT',
              nextWeek: 'dddd[n je] LT',
              lastDay: '[Hieraŭ je] LT',
              lastWeek: '[pasintan] dddd[n je] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'post %s',
              past: 'antaŭ %s',
              s: 'kelkaj sekundoj',
              ss: '%d sekundoj',
              m: 'unu minuto',
              mm: '%d minutoj',
              h: 'unu horo',
              hh: '%d horoj',
              d: 'unu tago',
              dd: '%d tagoj',
              M: 'unu monato',
              MM: '%d monatoj',
              y: 'unu jaro',
              yy: '%d jaroj',
            },
            dayOfMonthOrdinalParse: /\d{1,2}a/,
            ordinal: '%da',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      55251: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
              '_'
            ),
            i = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
            n = [
              /^ene/i,
              /^feb/i,
              /^mar/i,
              /^abr/i,
              /^may/i,
              /^jun/i,
              /^jul/i,
              /^ago/i,
              /^sep/i,
              /^oct/i,
              /^nov/i,
              /^dic/i,
            ],
            r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
          e.defineLocale('es-do', {
            months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
            monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
              '_'
            ),
            weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
            weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY h:mm A',
              LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
            },
            calendar: {
              sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              nextDay: function () {
                return (
                  '[mañana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                );
              },
              nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastWeek: function () {
                return (
                  '[el] dddd [pasado a la' +
                  (1 !== this.hours() ? 's' : '') +
                  '] LT'
                );
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'en %s',
              past: 'hace %s',
              s: 'unos segundos',
              ss: '%d segundos',
              m: 'un minuto',
              mm: '%d minutos',
              h: 'una hora',
              hh: '%d horas',
              d: 'un día',
              dd: '%d días',
              w: 'una semana',
              ww: '%d semanas',
              M: 'un mes',
              MM: '%d meses',
              y: 'un año',
              yy: '%d años',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      96112: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
              '_'
            ),
            i = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
            n = [
              /^ene/i,
              /^feb/i,
              /^mar/i,
              /^abr/i,
              /^may/i,
              /^jun/i,
              /^jul/i,
              /^ago/i,
              /^sep/i,
              /^oct/i,
              /^nov/i,
              /^dic/i,
            ],
            r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
          e.defineLocale('es-mx', {
            months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
            monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
              '_'
            ),
            weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
            weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY H:mm',
              LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
            },
            calendar: {
              sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              nextDay: function () {
                return (
                  '[mañana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                );
              },
              nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastWeek: function () {
                return (
                  '[el] dddd [pasado a la' +
                  (1 !== this.hours() ? 's' : '') +
                  '] LT'
                );
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'en %s',
              past: 'hace %s',
              s: 'unos segundos',
              ss: '%d segundos',
              m: 'un minuto',
              mm: '%d minutos',
              h: 'una hora',
              hh: '%d horas',
              d: 'un día',
              dd: '%d días',
              w: 'una semana',
              ww: '%d semanas',
              M: 'un mes',
              MM: '%d meses',
              y: 'un año',
              yy: '%d años',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 0, doy: 4 },
            invalidDate: 'Fecha inválida',
          });
        })(i(30381));
      },
      71146: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
              '_'
            ),
            i = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
            n = [
              /^ene/i,
              /^feb/i,
              /^mar/i,
              /^abr/i,
              /^may/i,
              /^jun/i,
              /^jul/i,
              /^ago/i,
              /^sep/i,
              /^oct/i,
              /^nov/i,
              /^dic/i,
            ],
            r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
          e.defineLocale('es-us', {
            months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
            monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
              '_'
            ),
            weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
            weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'MM/DD/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY h:mm A',
              LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
            },
            calendar: {
              sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              nextDay: function () {
                return (
                  '[mañana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                );
              },
              nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastWeek: function () {
                return (
                  '[el] dddd [pasado a la' +
                  (1 !== this.hours() ? 's' : '') +
                  '] LT'
                );
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'en %s',
              past: 'hace %s',
              s: 'unos segundos',
              ss: '%d segundos',
              m: 'un minuto',
              mm: '%d minutos',
              h: 'una hora',
              hh: '%d horas',
              d: 'un día',
              dd: '%d días',
              w: 'una semana',
              ww: '%d semanas',
              M: 'un mes',
              MM: '%d meses',
              y: 'un año',
              yy: '%d años',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      55655: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
              '_'
            ),
            i = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
            n = [
              /^ene/i,
              /^feb/i,
              /^mar/i,
              /^abr/i,
              /^may/i,
              /^jun/i,
              /^jul/i,
              /^ago/i,
              /^sep/i,
              /^oct/i,
              /^nov/i,
              /^dic/i,
            ],
            r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
          e.defineLocale('es', {
            months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
            monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split(
              '_'
            ),
            weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
            weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY H:mm',
              LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
            },
            calendar: {
              sameDay: function () {
                return '[hoy a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              nextDay: function () {
                return (
                  '[mañana a la' + (1 !== this.hours() ? 's' : '') + '] LT'
                );
              },
              nextWeek: function () {
                return 'dddd [a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastDay: function () {
                return '[ayer a la' + (1 !== this.hours() ? 's' : '') + '] LT';
              },
              lastWeek: function () {
                return (
                  '[el] dddd [pasado a la' +
                  (1 !== this.hours() ? 's' : '') +
                  '] LT'
                );
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'en %s',
              past: 'hace %s',
              s: 'unos segundos',
              ss: '%d segundos',
              m: 'un minuto',
              mm: '%d minutos',
              h: 'una hora',
              hh: '%d horas',
              d: 'un día',
              dd: '%d días',
              w: 'una semana',
              ww: '%d semanas',
              M: 'un mes',
              MM: '%d meses',
              y: 'un año',
              yy: '%d años',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
            invalidDate: 'Fecha inválida',
          });
        })(i(30381));
      },
      5603: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
              ss: [e + 'sekundi', e + 'sekundit'],
              m: ['ühe minuti', 'üks minut'],
              mm: [e + ' minuti', e + ' minutit'],
              h: ['ühe tunni', 'tund aega', 'üks tund'],
              hh: [e + ' tunni', e + ' tundi'],
              d: ['ühe päeva', 'üks päev'],
              M: ['kuu aja', 'kuu aega', 'üks kuu'],
              MM: [e + ' kuu', e + ' kuud'],
              y: ['ühe aasta', 'aasta', 'üks aasta'],
              yy: [e + ' aasta', e + ' aastat'],
            };
            return t ? (r[i][2] ? r[i][2] : r[i][1]) : n ? r[i][0] : r[i][1];
          }
          e.defineLocale('et', {
            months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
              '_'
            ),
            monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(
              '_'
            ),
            weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
              '_'
            ),
            weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
            weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm',
              LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[Täna,] LT',
              nextDay: '[Homme,] LT',
              nextWeek: '[Järgmine] dddd LT',
              lastDay: '[Eile,] LT',
              lastWeek: '[Eelmine] dddd LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s pärast',
              past: '%s tagasi',
              s: t,
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: t,
              dd: '%d päeva',
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      77763: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('eu', {
            months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
              '_'
            ),
            monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
              '_'
            ),
            weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
            weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: 'YYYY[ko] MMMM[ren] D[a]',
              LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
              LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
              l: 'YYYY-M-D',
              ll: 'YYYY[ko] MMM D[a]',
              lll: 'YYYY[ko] MMM D[a] HH:mm',
              llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
            },
            calendar: {
              sameDay: '[gaur] LT[etan]',
              nextDay: '[bihar] LT[etan]',
              nextWeek: 'dddd LT[etan]',
              lastDay: '[atzo] LT[etan]',
              lastWeek: '[aurreko] dddd LT[etan]',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s barru',
              past: 'duela %s',
              s: 'segundo batzuk',
              ss: '%d segundo',
              m: 'minutu bat',
              mm: '%d minutu',
              h: 'ordu bat',
              hh: '%d ordu',
              d: 'egun bat',
              dd: '%d egun',
              M: 'hilabete bat',
              MM: '%d hilabete',
              y: 'urte bat',
              yy: '%d urte',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      76959: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '۱',
              2: '۲',
              3: '۳',
              4: '۴',
              5: '۵',
              6: '۶',
              7: '۷',
              8: '۸',
              9: '۹',
              0: '۰',
            },
            i = {
              '۱': '1',
              '۲': '2',
              '۳': '3',
              '۴': '4',
              '۵': '5',
              '۶': '6',
              '۷': '7',
              '۸': '8',
              '۹': '9',
              '۰': '0',
            };
          e.defineLocale('fa', {
            months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
              '_'
            ),
            monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
              '_'
            ),
            weekdays: 'یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه'.split(
              '_'
            ),
            weekdaysShort: 'یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه'.split(
              '_'
            ),
            weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            meridiemParse: /قبل از ظهر|بعد از ظهر/,
            isPM: function (e) {
              return /بعد از ظهر/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'قبل از ظهر' : 'بعد از ظهر';
            },
            calendar: {
              sameDay: '[امروز ساعت] LT',
              nextDay: '[فردا ساعت] LT',
              nextWeek: 'dddd [ساعت] LT',
              lastDay: '[دیروز ساعت] LT',
              lastWeek: 'dddd [پیش] [ساعت] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'در %s',
              past: '%s پیش',
              s: 'چند ثانیه',
              ss: '%d ثانیه',
              m: 'یک دقیقه',
              mm: '%d دقیقه',
              h: 'یک ساعت',
              hh: '%d ساعت',
              d: 'یک روز',
              dd: '%d روز',
              M: 'یک ماه',
              MM: '%d ماه',
              y: 'یک سال',
              yy: '%d سال',
            },
            preparse: function (e) {
              return e
                .replace(/[۰-۹]/g, function (e) {
                  return i[e];
                })
                .replace(/،/g, ',');
            },
            postformat: function (e) {
              return e
                .replace(/\d/g, function (e) {
                  return t[e];
                })
                .replace(/,/g, '،');
            },
            dayOfMonthOrdinalParse: /\d{1,2}م/,
            ordinal: '%dم',
            week: { dow: 6, doy: 12 },
          });
        })(i(30381));
      },
      11897: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
              ' '
            ),
            i = [
              'nolla',
              'yhden',
              'kahden',
              'kolmen',
              'neljän',
              'viiden',
              'kuuden',
              t[7],
              t[8],
              t[9],
            ];
          function n(e, n, r, s) {
            var o = '';
            switch (r) {
              case 's':
                return s ? 'muutaman sekunnin' : 'muutama sekunti';
              case 'ss':
                o = s ? 'sekunnin' : 'sekuntia';
                break;
              case 'm':
                return s ? 'minuutin' : 'minuutti';
              case 'mm':
                o = s ? 'minuutin' : 'minuuttia';
                break;
              case 'h':
                return s ? 'tunnin' : 'tunti';
              case 'hh':
                o = s ? 'tunnin' : 'tuntia';
                break;
              case 'd':
                return s ? 'päivän' : 'päivä';
              case 'dd':
                o = s ? 'päivän' : 'päivää';
                break;
              case 'M':
                return s ? 'kuukauden' : 'kuukausi';
              case 'MM':
                o = s ? 'kuukauden' : 'kuukautta';
                break;
              case 'y':
                return s ? 'vuoden' : 'vuosi';
              case 'yy':
                o = s ? 'vuoden' : 'vuotta';
            }
            return (
              (function (e, n) {
                return e < 10 ? (n ? i[e] : t[e]) : e;
              })(e, s) +
              ' ' +
              o
            );
          }
          e.defineLocale('fi', {
            months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
              '_'
            ),
            monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
              '_'
            ),
            weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
              '_'
            ),
            weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
            weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
            longDateFormat: {
              LT: 'HH.mm',
              LTS: 'HH.mm.ss',
              L: 'DD.MM.YYYY',
              LL: 'Do MMMM[ta] YYYY',
              LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
              LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
              l: 'D.M.YYYY',
              ll: 'Do MMM YYYY',
              lll: 'Do MMM YYYY, [klo] HH.mm',
              llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
            },
            calendar: {
              sameDay: '[tänään] [klo] LT',
              nextDay: '[huomenna] [klo] LT',
              nextWeek: 'dddd [klo] LT',
              lastDay: '[eilen] [klo] LT',
              lastWeek: '[viime] dddd[na] [klo] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s päästä',
              past: '%s sitten',
              s: n,
              ss: n,
              m: n,
              mm: n,
              h: n,
              hh: n,
              d: n,
              dd: n,
              M: n,
              MM: n,
              y: n,
              yy: n,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      42549: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('fil', {
            months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
              '_'
            ),
            monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split(
              '_'
            ),
            weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
              '_'
            ),
            weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
            weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'MM/D/YYYY',
              LL: 'MMMM D, YYYY',
              LLL: 'MMMM D, YYYY HH:mm',
              LLLL: 'dddd, MMMM DD, YYYY HH:mm',
            },
            calendar: {
              sameDay: 'LT [ngayong araw]',
              nextDay: '[Bukas ng] LT',
              nextWeek: 'LT [sa susunod na] dddd',
              lastDay: 'LT [kahapon]',
              lastWeek: 'LT [noong nakaraang] dddd',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'sa loob ng %s',
              past: '%s ang nakalipas',
              s: 'ilang segundo',
              ss: '%d segundo',
              m: 'isang minuto',
              mm: '%d minuto',
              h: 'isang oras',
              hh: '%d oras',
              d: 'isang araw',
              dd: '%d araw',
              M: 'isang buwan',
              MM: '%d buwan',
              y: 'isang taon',
              yy: '%d taon',
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: function (e) {
              return e;
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      94694: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('fo', {
            months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
              '_'
            ),
            monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(
              '_'
            ),
            weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
              '_'
            ),
            weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
            weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D. MMMM, YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Í dag kl.] LT',
              nextDay: '[Í morgin kl.] LT',
              nextWeek: 'dddd [kl.] LT',
              lastDay: '[Í gjár kl.] LT',
              lastWeek: '[síðstu] dddd [kl] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'um %s',
              past: '%s síðani',
              s: 'fá sekund',
              ss: '%d sekundir',
              m: 'ein minuttur',
              mm: '%d minuttir',
              h: 'ein tími',
              hh: '%d tímar',
              d: 'ein dagur',
              dd: '%d dagar',
              M: 'ein mánaður',
              MM: '%d mánaðir',
              y: 'eitt ár',
              yy: '%d ár',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      63049: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('fr-ca', {
            months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
              '_'
            ),
            monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
              '_'
            ),
            weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
            weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Aujourd’hui à] LT',
              nextDay: '[Demain à] LT',
              nextWeek: 'dddd [à] LT',
              lastDay: '[Hier à] LT',
              lastWeek: 'dddd [dernier à] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dans %s',
              past: 'il y a %s',
              s: 'quelques secondes',
              ss: '%d secondes',
              m: 'une minute',
              mm: '%d minutes',
              h: 'une heure',
              hh: '%d heures',
              d: 'un jour',
              dd: '%d jours',
              M: 'un mois',
              MM: '%d mois',
              y: 'un an',
              yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
            ordinal: function (e, t) {
              switch (t) {
                default:
                case 'M':
                case 'Q':
                case 'D':
                case 'DDD':
                case 'd':
                  return e + (1 === e ? 'er' : 'e');
                case 'w':
                case 'W':
                  return e + (1 === e ? 're' : 'e');
              }
            },
          });
        })(i(30381));
      },
      52330: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('fr-ch', {
            months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
              '_'
            ),
            monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
              '_'
            ),
            weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
            weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Aujourd’hui à] LT',
              nextDay: '[Demain à] LT',
              nextWeek: 'dddd [à] LT',
              lastDay: '[Hier à] LT',
              lastWeek: 'dddd [dernier à] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dans %s',
              past: 'il y a %s',
              s: 'quelques secondes',
              ss: '%d secondes',
              m: 'une minute',
              mm: '%d minutes',
              h: 'une heure',
              hh: '%d heures',
              d: 'un jour',
              dd: '%d jours',
              M: 'un mois',
              MM: '%d mois',
              y: 'un an',
              yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
            ordinal: function (e, t) {
              switch (t) {
                default:
                case 'M':
                case 'Q':
                case 'D':
                case 'DDD':
                case 'd':
                  return e + (1 === e ? 'er' : 'e');
                case 'w':
                case 'W':
                  return e + (1 === e ? 're' : 'e');
              }
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      94470: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
            i = [
              /^janv/i,
              /^févr/i,
              /^mars/i,
              /^avr/i,
              /^mai/i,
              /^juin/i,
              /^juil/i,
              /^août/i,
              /^sept/i,
              /^oct/i,
              /^nov/i,
              /^déc/i,
            ];
          e.defineLocale('fr', {
            months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
              '_'
            ),
            monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
              '_'
            ),
            monthsRegex: t,
            monthsShortRegex: t,
            monthsStrictRegex: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
            monthsShortStrictRegex: /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
            monthsParse: i,
            longMonthsParse: i,
            shortMonthsParse: i,
            weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split(
              '_'
            ),
            weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
            weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Aujourd’hui à] LT',
              nextDay: '[Demain à] LT',
              nextWeek: 'dddd [à] LT',
              lastDay: '[Hier à] LT',
              lastWeek: 'dddd [dernier à] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dans %s',
              past: 'il y a %s',
              s: 'quelques secondes',
              ss: '%d secondes',
              m: 'une minute',
              mm: '%d minutes',
              h: 'une heure',
              hh: '%d heures',
              d: 'un jour',
              dd: '%d jours',
              w: 'une semaine',
              ww: '%d semaines',
              M: 'un mois',
              MM: '%d mois',
              y: 'un an',
              yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'D':
                  return e + (1 === e ? 'er' : '');
                default:
                case 'M':
                case 'Q':
                case 'DDD':
                case 'd':
                  return e + (1 === e ? 'er' : 'e');
                case 'w':
                case 'W':
                  return e + (1 === e ? 're' : 'e');
              }
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      5044: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(
              '_'
            ),
            i = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
          e.defineLocale('fy', {
            months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsParseExact: !0,
            weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
              '_'
            ),
            weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
            weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD-MM-YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[hjoed om] LT',
              nextDay: '[moarn om] LT',
              nextWeek: 'dddd [om] LT',
              lastDay: '[juster om] LT',
              lastWeek: '[ôfrûne] dddd [om] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'oer %s',
              past: '%s lyn',
              s: 'in pear sekonden',
              ss: '%d sekonden',
              m: 'ien minút',
              mm: '%d minuten',
              h: 'ien oere',
              hh: '%d oeren',
              d: 'ien dei',
              dd: '%d dagen',
              M: 'ien moanne',
              MM: '%d moannen',
              y: 'ien jier',
              yy: '%d jierren',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
            ordinal: function (e) {
              return e + (1 === e || 8 === e || e >= 20 ? 'ste' : 'de');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      29295: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ga', {
            months: [
              'Eanáir',
              'Feabhra',
              'Márta',
              'Aibreán',
              'Bealtaine',
              'Meitheamh',
              'Iúil',
              'Lúnasa',
              'Meán Fómhair',
              'Deireadh Fómhair',
              'Samhain',
              'Nollaig',
            ],
            monthsShort: [
              'Ean',
              'Feabh',
              'Márt',
              'Aib',
              'Beal',
              'Meith',
              'Iúil',
              'Lún',
              'M.F.',
              'D.F.',
              'Samh',
              'Noll',
            ],
            monthsParseExact: !0,
            weekdays: [
              'Dé Domhnaigh',
              'Dé Luain',
              'Dé Máirt',
              'Dé Céadaoin',
              'Déardaoin',
              'Dé hAoine',
              'Dé Sathairn',
            ],
            weekdaysShort: [
              'Domh',
              'Luan',
              'Máirt',
              'Céad',
              'Déar',
              'Aoine',
              'Sath',
            ],
            weekdaysMin: ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'],
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Inniu ag] LT',
              nextDay: '[Amárach ag] LT',
              nextWeek: 'dddd [ag] LT',
              lastDay: '[Inné ag] LT',
              lastWeek: 'dddd [seo caite] [ag] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'i %s',
              past: '%s ó shin',
              s: 'cúpla soicind',
              ss: '%d soicind',
              m: 'nóiméad',
              mm: '%d nóiméad',
              h: 'uair an chloig',
              hh: '%d uair an chloig',
              d: 'lá',
              dd: '%d lá',
              M: 'mí',
              MM: '%d míonna',
              y: 'bliain',
              yy: '%d bliain',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
            ordinal: function (e) {
              return e + (1 === e ? 'd' : e % 10 == 2 ? 'na' : 'mh');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      2101: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('gd', {
            months: [
              'Am Faoilleach',
              'An Gearran',
              'Am Màrt',
              'An Giblean',
              'An Cèitean',
              'An t-Ògmhios',
              'An t-Iuchar',
              'An Lùnastal',
              'An t-Sultain',
              'An Dàmhair',
              'An t-Samhain',
              'An Dùbhlachd',
            ],
            monthsShort: [
              'Faoi',
              'Gear',
              'Màrt',
              'Gibl',
              'Cèit',
              'Ògmh',
              'Iuch',
              'Lùn',
              'Sult',
              'Dàmh',
              'Samh',
              'Dùbh',
            ],
            monthsParseExact: !0,
            weekdays: [
              'Didòmhnaich',
              'Diluain',
              'Dimàirt',
              'Diciadain',
              'Diardaoin',
              'Dihaoine',
              'Disathairne',
            ],
            weekdaysShort: ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
            weekdaysMin: ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'],
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[An-diugh aig] LT',
              nextDay: '[A-màireach aig] LT',
              nextWeek: 'dddd [aig] LT',
              lastDay: '[An-dè aig] LT',
              lastWeek: 'dddd [seo chaidh] [aig] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'ann an %s',
              past: 'bho chionn %s',
              s: 'beagan diogan',
              ss: '%d diogan',
              m: 'mionaid',
              mm: '%d mionaidean',
              h: 'uair',
              hh: '%d uairean',
              d: 'latha',
              dd: '%d latha',
              M: 'mìos',
              MM: '%d mìosan',
              y: 'bliadhna',
              yy: '%d bliadhna',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
            ordinal: function (e) {
              return e + (1 === e ? 'd' : e % 10 == 2 ? 'na' : 'mh');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      38794: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('gl', {
            months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
              '_'
            ),
            monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split(
              '_'
            ),
            weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
            weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY H:mm',
              LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
            },
            calendar: {
              sameDay: function () {
                return '[hoxe ' + (1 !== this.hours() ? 'ás' : 'á') + '] LT';
              },
              nextDay: function () {
                return '[mañá ' + (1 !== this.hours() ? 'ás' : 'á') + '] LT';
              },
              nextWeek: function () {
                return 'dddd [' + (1 !== this.hours() ? 'ás' : 'a') + '] LT';
              },
              lastDay: function () {
                return '[onte ' + (1 !== this.hours() ? 'á' : 'a') + '] LT';
              },
              lastWeek: function () {
                return (
                  '[o] dddd [pasado ' +
                  (1 !== this.hours() ? 'ás' : 'a') +
                  '] LT'
                );
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: function (e) {
                return 0 === e.indexOf('un') ? 'n' + e : 'en ' + e;
              },
              past: 'hai %s',
              s: 'uns segundos',
              ss: '%d segundos',
              m: 'un minuto',
              mm: '%d minutos',
              h: 'unha hora',
              hh: '%d horas',
              d: 'un día',
              dd: '%d días',
              M: 'un mes',
              MM: '%d meses',
              y: 'un ano',
              yy: '%d anos',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      27884: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
              ss: [e + ' सॅकंडांनी', e + ' सॅकंड'],
              m: ['एका मिणटान', 'एक मिनूट'],
              mm: [e + ' मिणटांनी', e + ' मिणटां'],
              h: ['एका वरान', 'एक वर'],
              hh: [e + ' वरांनी', e + ' वरां'],
              d: ['एका दिसान', 'एक दीस'],
              dd: [e + ' दिसांनी', e + ' दीस'],
              M: ['एका म्हयन्यान', 'एक म्हयनो'],
              MM: [e + ' म्हयन्यानी', e + ' म्हयने'],
              y: ['एका वर्सान', 'एक वर्स'],
              yy: [e + ' वर्सांनी', e + ' वर्सां'],
            };
            return n ? r[i][0] : r[i][1];
          }
          e.defineLocale('gom-deva', {
            months: {
              standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
                '_'
              ),
              format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
                '_'
              ),
              isFormat: /MMMM(\s)+D[oD]?/,
            },
            monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split(
              '_'
            ),
            weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split(
              '_'
            ),
            weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'A h:mm [वाजतां]',
              LTS: 'A h:mm:ss [वाजतां]',
              L: 'DD-MM-YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY A h:mm [वाजतां]',
              LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
              llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
            },
            calendar: {
              sameDay: '[आयज] LT',
              nextDay: '[फाल्यां] LT',
              nextWeek: '[फुडलो] dddd[,] LT',
              lastDay: '[काल] LT',
              lastWeek: '[फाटलो] dddd[,] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s',
              past: '%s आदीं',
              s: t,
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: t,
              dd: t,
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'D':
                  return e + 'वेर';
                default:
                case 'M':
                case 'Q':
                case 'DDD':
                case 'd':
                case 'w':
                case 'W':
                  return e;
              }
            },
            week: { dow: 0, doy: 3 },
            meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'राती' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'सकाळीं' === t
                  ? e
                  : 'दनपारां' === t
                  ? e > 12
                    ? e
                    : e + 12
                  : 'सांजे' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'राती'
                : e < 12
                ? 'सकाळीं'
                : e < 16
                ? 'दनपारां'
                : e < 20
                ? 'सांजे'
                : 'राती';
            },
          });
        })(i(30381));
      },
      23168: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              s: ['thoddea sekondamni', 'thodde sekond'],
              ss: [e + ' sekondamni', e + ' sekond'],
              m: ['eka mintan', 'ek minut'],
              mm: [e + ' mintamni', e + ' mintam'],
              h: ['eka voran', 'ek vor'],
              hh: [e + ' voramni', e + ' voram'],
              d: ['eka disan', 'ek dis'],
              dd: [e + ' disamni', e + ' dis'],
              M: ['eka mhoinean', 'ek mhoino'],
              MM: [e + ' mhoineamni', e + ' mhoine'],
              y: ['eka vorsan', 'ek voros'],
              yy: [e + ' vorsamni', e + ' vorsam'],
            };
            return n ? r[i][0] : r[i][1];
          }
          e.defineLocale('gom-latn', {
            months: {
              standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
                '_'
              ),
              format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
                '_'
              ),
              isFormat: /MMMM(\s)+D[oD]?/,
            },
            monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split(
              '_'
            ),
            weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
            weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'A h:mm [vazta]',
              LTS: 'A h:mm:ss [vazta]',
              L: 'DD-MM-YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY A h:mm [vazta]',
              LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
              llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
            },
            calendar: {
              sameDay: '[Aiz] LT',
              nextDay: '[Faleam] LT',
              nextWeek: '[Fuddlo] dddd[,] LT',
              lastDay: '[Kal] LT',
              lastWeek: '[Fattlo] dddd[,] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s',
              past: '%s adim',
              s: t,
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: t,
              dd: t,
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}(er)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'D':
                  return e + 'er';
                default:
                case 'M':
                case 'Q':
                case 'DDD':
                case 'd':
                case 'w':
                case 'W':
                  return e;
              }
            },
            week: { dow: 0, doy: 3 },
            meridiemParse: /rati|sokallim|donparam|sanje/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'rati' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'sokallim' === t
                  ? e
                  : 'donparam' === t
                  ? e > 12
                    ? e
                    : e + 12
                  : 'sanje' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'rati'
                : e < 12
                ? 'sokallim'
                : e < 16
                ? 'donparam'
                : e < 20
                ? 'sanje'
                : 'rati';
            },
          });
        })(i(30381));
      },
      95349: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '૧',
              2: '૨',
              3: '૩',
              4: '૪',
              5: '૫',
              6: '૬',
              7: '૭',
              8: '૮',
              9: '૯',
              0: '૦',
            },
            i = {
              '૧': '1',
              '૨': '2',
              '૩': '3',
              '૪': '4',
              '૫': '5',
              '૬': '6',
              '૭': '7',
              '૮': '8',
              '૯': '9',
              '૦': '0',
            };
          e.defineLocale('gu', {
            months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
              '_'
            ),
            monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
              '_'
            ),
            weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
            weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
            longDateFormat: {
              LT: 'A h:mm વાગ્યે',
              LTS: 'A h:mm:ss વાગ્યે',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
              LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
            },
            calendar: {
              sameDay: '[આજ] LT',
              nextDay: '[કાલે] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[ગઇકાલે] LT',
              lastWeek: '[પાછલા] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s મા',
              past: '%s પહેલા',
              s: 'અમુક પળો',
              ss: '%d સેકંડ',
              m: 'એક મિનિટ',
              mm: '%d મિનિટ',
              h: 'એક કલાક',
              hh: '%d કલાક',
              d: 'એક દિવસ',
              dd: '%d દિવસ',
              M: 'એક મહિનો',
              MM: '%d મહિનો',
              y: 'એક વર્ષ',
              yy: '%d વર્ષ',
            },
            preparse: function (e) {
              return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'રાત' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'સવાર' === t
                  ? e
                  : 'બપોર' === t
                  ? e >= 10
                    ? e
                    : e + 12
                  : 'સાંજ' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'રાત'
                : e < 10
                ? 'સવાર'
                : e < 17
                ? 'બપોર'
                : e < 20
                ? 'સાંજ'
                : 'રાત';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      24206: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('he', {
            months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
              '_'
            ),
            monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(
              '_'
            ),
            weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
            weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
            weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [ב]MMMM YYYY',
              LLL: 'D [ב]MMMM YYYY HH:mm',
              LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
              l: 'D/M/YYYY',
              ll: 'D MMM YYYY',
              lll: 'D MMM YYYY HH:mm',
              llll: 'ddd, D MMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[היום ב־]LT',
              nextDay: '[מחר ב־]LT',
              nextWeek: 'dddd [בשעה] LT',
              lastDay: '[אתמול ב־]LT',
              lastWeek: '[ביום] dddd [האחרון בשעה] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'בעוד %s',
              past: 'לפני %s',
              s: 'מספר שניות',
              ss: '%d שניות',
              m: 'דקה',
              mm: '%d דקות',
              h: 'שעה',
              hh: function (e) {
                return 2 === e ? 'שעתיים' : e + ' שעות';
              },
              d: 'יום',
              dd: function (e) {
                return 2 === e ? 'יומיים' : e + ' ימים';
              },
              M: 'חודש',
              MM: function (e) {
                return 2 === e ? 'חודשיים' : e + ' חודשים';
              },
              y: 'שנה',
              yy: function (e) {
                return 2 === e
                  ? 'שנתיים'
                  : e % 10 == 0 && 10 !== e
                  ? e + ' שנה'
                  : e + ' שנים';
              },
            },
            meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
            isPM: function (e) {
              return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 5
                ? 'לפנות בוקר'
                : e < 10
                ? 'בבוקר'
                : e < 12
                ? i
                  ? 'לפנה"צ'
                  : 'לפני הצהריים'
                : e < 18
                ? i
                  ? 'אחה"צ'
                  : 'אחרי הצהריים'
                : 'בערב';
            },
          });
        })(i(30381));
      },
      30094: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '१',
              2: '२',
              3: '३',
              4: '४',
              5: '५',
              6: '६',
              7: '७',
              8: '८',
              9: '९',
              0: '०',
            },
            i = {
              '१': '1',
              '२': '2',
              '३': '3',
              '४': '4',
              '५': '5',
              '६': '6',
              '७': '7',
              '८': '8',
              '९': '9',
              '०': '0',
            },
            n = [
              /^जन/i,
              /^फ़र|फर/i,
              /^मार्च/i,
              /^अप्रै/i,
              /^मई/i,
              /^जून/i,
              /^जुल/i,
              /^अग/i,
              /^सितं|सित/i,
              /^अक्टू/i,
              /^नव|नवं/i,
              /^दिसं|दिस/i,
            ];
          e.defineLocale('hi', {
            months: {
              format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
                '_'
              ),
              standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
                '_'
              ),
            },
            monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(
              '_'
            ),
            weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split(
              '_'
            ),
            weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
            weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
            longDateFormat: {
              LT: 'A h:mm बजे',
              LTS: 'A h:mm:ss बजे',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm बजे',
              LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
            },
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: [
              /^जन/i,
              /^फ़र/i,
              /^मार्च/i,
              /^अप्रै/i,
              /^मई/i,
              /^जून/i,
              /^जुल/i,
              /^अग/i,
              /^सित/i,
              /^अक्टू/i,
              /^नव/i,
              /^दिस/i,
            ],
            monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
            monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
            monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
            monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
            calendar: {
              sameDay: '[आज] LT',
              nextDay: '[कल] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[कल] LT',
              lastWeek: '[पिछले] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s में',
              past: '%s पहले',
              s: 'कुछ ही क्षण',
              ss: '%d सेकंड',
              m: 'एक मिनट',
              mm: '%d मिनट',
              h: 'एक घंटा',
              hh: '%d घंटे',
              d: 'एक दिन',
              dd: '%d दिन',
              M: 'एक महीने',
              MM: '%d महीने',
              y: 'एक वर्ष',
              yy: '%d वर्ष',
            },
            preparse: function (e) {
              return e.replace(/[१२३४५६७८९०]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /रात|सुबह|दोपहर|शाम/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'रात' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'सुबह' === t
                  ? e
                  : 'दोपहर' === t
                  ? e >= 10
                    ? e
                    : e + 12
                  : 'शाम' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'रात'
                : e < 10
                ? 'सुबह'
                : e < 17
                ? 'दोपहर'
                : e < 20
                ? 'शाम'
                : 'रात';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      30316: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            var n = e + ' ';
            switch (i) {
              case 'ss':
                return (
                  n +
                  (1 === e
                    ? 'sekunda'
                    : 2 === e || 3 === e || 4 === e
                    ? 'sekunde'
                    : 'sekundi')
                );
              case 'm':
                return t ? 'jedna minuta' : 'jedne minute';
              case 'mm':
                return (
                  n +
                  (1 === e
                    ? 'minuta'
                    : 2 === e || 3 === e || 4 === e
                    ? 'minute'
                    : 'minuta')
                );
              case 'h':
                return t ? 'jedan sat' : 'jednog sata';
              case 'hh':
                return (
                  n +
                  (1 === e
                    ? 'sat'
                    : 2 === e || 3 === e || 4 === e
                    ? 'sata'
                    : 'sati')
                );
              case 'dd':
                return n + (1 === e ? 'dan' : 'dana');
              case 'MM':
                return (
                  n +
                  (1 === e
                    ? 'mjesec'
                    : 2 === e || 3 === e || 4 === e
                    ? 'mjeseca'
                    : 'mjeseci')
                );
              case 'yy':
                return (
                  n +
                  (1 === e
                    ? 'godina'
                    : 2 === e || 3 === e || 4 === e
                    ? 'godine'
                    : 'godina')
                );
            }
          }
          e.defineLocale('hr', {
            months: {
              format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
                '_'
              ),
              standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
                '_'
              ),
            },
            monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
              '_'
            ),
            weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
            weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'Do MMMM YYYY',
              LLL: 'Do MMMM YYYY H:mm',
              LLLL: 'dddd, Do MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[danas u] LT',
              nextDay: '[sutra u] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[u] [nedjelju] [u] LT';
                  case 3:
                    return '[u] [srijedu] [u] LT';
                  case 6:
                    return '[u] [subotu] [u] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[u] dddd [u] LT';
                }
              },
              lastDay: '[jučer u] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[prošlu] [nedjelju] [u] LT';
                  case 3:
                    return '[prošlu] [srijedu] [u] LT';
                  case 6:
                    return '[prošle] [subote] [u] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[prošli] dddd [u] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: 'prije %s',
              s: 'par sekundi',
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: 'dan',
              dd: t,
              M: 'mjesec',
              MM: t,
              y: 'godinu',
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      22138: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(
            ' '
          );
          function i(e, t, i, n) {
            var r = e;
            switch (i) {
              case 's':
                return n || t ? 'néhány másodperc' : 'néhány másodperce';
              case 'ss':
                return r + (n || t) ? ' másodperc' : ' másodperce';
              case 'm':
                return 'egy' + (n || t ? ' perc' : ' perce');
              case 'mm':
                return r + (n || t ? ' perc' : ' perce');
              case 'h':
                return 'egy' + (n || t ? ' óra' : ' órája');
              case 'hh':
                return r + (n || t ? ' óra' : ' órája');
              case 'd':
                return 'egy' + (n || t ? ' nap' : ' napja');
              case 'dd':
                return r + (n || t ? ' nap' : ' napja');
              case 'M':
                return 'egy' + (n || t ? ' hónap' : ' hónapja');
              case 'MM':
                return r + (n || t ? ' hónap' : ' hónapja');
              case 'y':
                return 'egy' + (n || t ? ' év' : ' éve');
              case 'yy':
                return r + (n || t ? ' év' : ' éve');
            }
            return '';
          }
          function n(e) {
            return (e ? '' : '[múlt] ') + '[' + t[this.day()] + '] LT[-kor]';
          }
          e.defineLocale('hu', {
            months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
              '_'
            ),
            monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split(
              '_'
            ),
            weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
            weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'YYYY.MM.DD.',
              LL: 'YYYY. MMMM D.',
              LLL: 'YYYY. MMMM D. H:mm',
              LLLL: 'YYYY. MMMM D., dddd H:mm',
            },
            meridiemParse: /de|du/i,
            isPM: function (e) {
              return 'u' === e.charAt(1).toLowerCase();
            },
            meridiem: function (e, t, i) {
              return e < 12 ? (!0 === i ? 'de' : 'DE') : !0 === i ? 'du' : 'DU';
            },
            calendar: {
              sameDay: '[ma] LT[-kor]',
              nextDay: '[holnap] LT[-kor]',
              nextWeek: function () {
                return n.call(this, !0);
              },
              lastDay: '[tegnap] LT[-kor]',
              lastWeek: function () {
                return n.call(this, !1);
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s múlva',
              past: '%s',
              s: i,
              ss: i,
              m: i,
              mm: i,
              h: i,
              hh: i,
              d: i,
              dd: i,
              M: i,
              MM: i,
              y: i,
              yy: i,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      11423: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('hy-am', {
            months: {
              format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
                '_'
              ),
              standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
                '_'
              ),
            },
            monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split(
              '_'
            ),
            weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
              '_'
            ),
            weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
            weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY թ.',
              LLL: 'D MMMM YYYY թ., HH:mm',
              LLLL: 'dddd, D MMMM YYYY թ., HH:mm',
            },
            calendar: {
              sameDay: '[այսօր] LT',
              nextDay: '[վաղը] LT',
              lastDay: '[երեկ] LT',
              nextWeek: function () {
                return 'dddd [օրը ժամը] LT';
              },
              lastWeek: function () {
                return '[անցած] dddd [օրը ժամը] LT';
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s հետո',
              past: '%s առաջ',
              s: 'մի քանի վայրկյան',
              ss: '%d վայրկյան',
              m: 'րոպե',
              mm: '%d րոպե',
              h: 'ժամ',
              hh: '%d ժամ',
              d: 'օր',
              dd: '%d օր',
              M: 'ամիս',
              MM: '%d ամիս',
              y: 'տարի',
              yy: '%d տարի',
            },
            meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
            isPM: function (e) {
              return /^(ցերեկվա|երեկոյան)$/.test(e);
            },
            meridiem: function (e) {
              return e < 4
                ? 'գիշերվա'
                : e < 12
                ? 'առավոտվա'
                : e < 17
                ? 'ցերեկվա'
                : 'երեկոյան';
            },
            dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'DDD':
                case 'w':
                case 'W':
                case 'DDDo':
                  return 1 === e ? e + '-ին' : e + '-րդ';
                default:
                  return e;
              }
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      29218: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('id', {
            months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split(
              '_'
            ),
            weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
            weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
            weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
            longDateFormat: {
              LT: 'HH.mm',
              LTS: 'HH.mm.ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY [pukul] HH.mm',
              LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /pagi|siang|sore|malam/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'pagi' === t
                  ? e
                  : 'siang' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : 'sore' === t || 'malam' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 11
                ? 'pagi'
                : e < 15
                ? 'siang'
                : e < 19
                ? 'sore'
                : 'malam';
            },
            calendar: {
              sameDay: '[Hari ini pukul] LT',
              nextDay: '[Besok pukul] LT',
              nextWeek: 'dddd [pukul] LT',
              lastDay: '[Kemarin pukul] LT',
              lastWeek: 'dddd [lalu pukul] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dalam %s',
              past: '%s yang lalu',
              s: 'beberapa detik',
              ss: '%d detik',
              m: 'semenit',
              mm: '%d menit',
              h: 'sejam',
              hh: '%d jam',
              d: 'sehari',
              dd: '%d hari',
              M: 'sebulan',
              MM: '%d bulan',
              y: 'setahun',
              yy: '%d tahun',
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      90135: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e) {
            return e % 100 == 11 || e % 10 != 1;
          }
          function i(e, i, n, r) {
            var s = e + ' ';
            switch (n) {
              case 's':
                return i || r ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
              case 'ss':
                return t(e)
                  ? s + (i || r ? 'sekúndur' : 'sekúndum')
                  : s + 'sekúnda';
              case 'm':
                return i ? 'mínúta' : 'mínútu';
              case 'mm':
                return t(e)
                  ? s + (i || r ? 'mínútur' : 'mínútum')
                  : i
                  ? s + 'mínúta'
                  : s + 'mínútu';
              case 'hh':
                return t(e)
                  ? s + (i || r ? 'klukkustundir' : 'klukkustundum')
                  : s + 'klukkustund';
              case 'd':
                return i ? 'dagur' : r ? 'dag' : 'degi';
              case 'dd':
                return t(e)
                  ? i
                    ? s + 'dagar'
                    : s + (r ? 'daga' : 'dögum')
                  : i
                  ? s + 'dagur'
                  : s + (r ? 'dag' : 'degi');
              case 'M':
                return i ? 'mánuður' : r ? 'mánuð' : 'mánuði';
              case 'MM':
                return t(e)
                  ? i
                    ? s + 'mánuðir'
                    : s + (r ? 'mánuði' : 'mánuðum')
                  : i
                  ? s + 'mánuður'
                  : s + (r ? 'mánuð' : 'mánuði');
              case 'y':
                return i || r ? 'ár' : 'ári';
              case 'yy':
                return t(e)
                  ? s + (i || r ? 'ár' : 'árum')
                  : s + (i || r ? 'ár' : 'ári');
            }
          }
          e.defineLocale('is', {
            months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
              '_'
            ),
            monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split(
              '_'
            ),
            weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
              '_'
            ),
            weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
            weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY [kl.] H:mm',
              LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
            },
            calendar: {
              sameDay: '[í dag kl.] LT',
              nextDay: '[á morgun kl.] LT',
              nextWeek: 'dddd [kl.] LT',
              lastDay: '[í gær kl.] LT',
              lastWeek: '[síðasta] dddd [kl.] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'eftir %s',
              past: 'fyrir %s síðan',
              s: i,
              ss: i,
              m: i,
              mm: i,
              h: 'klukkustund',
              hh: i,
              d: i,
              dd: i,
              M: i,
              MM: i,
              y: i,
              yy: i,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      10150: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('it-ch', {
            months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
              '_'
            ),
            monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split(
              '_'
            ),
            weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
              '_'
            ),
            weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
            weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Oggi alle] LT',
              nextDay: '[Domani alle] LT',
              nextWeek: 'dddd [alle] LT',
              lastDay: '[Ieri alle] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[la scorsa] dddd [alle] LT';
                  default:
                    return '[lo scorso] dddd [alle] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: function (e) {
                return (/^[0-9].+$/.test(e) ? 'tra' : 'in') + ' ' + e;
              },
              past: '%s fa',
              s: 'alcuni secondi',
              ss: '%d secondi',
              m: 'un minuto',
              mm: '%d minuti',
              h: "un'ora",
              hh: '%d ore',
              d: 'un giorno',
              dd: '%d giorni',
              M: 'un mese',
              MM: '%d mesi',
              y: 'un anno',
              yy: '%d anni',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      90626: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('it', {
            months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
              '_'
            ),
            monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split(
              '_'
            ),
            weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
              '_'
            ),
            weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
            weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: function () {
                return (
                  '[Oggi a' +
                  (this.hours() > 1
                    ? 'lle '
                    : 0 === this.hours()
                    ? ' '
                    : "ll'") +
                  ']LT'
                );
              },
              nextDay: function () {
                return (
                  '[Domani a' +
                  (this.hours() > 1
                    ? 'lle '
                    : 0 === this.hours()
                    ? ' '
                    : "ll'") +
                  ']LT'
                );
              },
              nextWeek: function () {
                return (
                  'dddd [a' +
                  (this.hours() > 1
                    ? 'lle '
                    : 0 === this.hours()
                    ? ' '
                    : "ll'") +
                  ']LT'
                );
              },
              lastDay: function () {
                return (
                  '[Ieri a' +
                  (this.hours() > 1
                    ? 'lle '
                    : 0 === this.hours()
                    ? ' '
                    : "ll'") +
                  ']LT'
                );
              },
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return (
                      '[La scorsa] dddd [a' +
                      (this.hours() > 1
                        ? 'lle '
                        : 0 === this.hours()
                        ? ' '
                        : "ll'") +
                      ']LT'
                    );
                  default:
                    return (
                      '[Lo scorso] dddd [a' +
                      (this.hours() > 1
                        ? 'lle '
                        : 0 === this.hours()
                        ? ' '
                        : "ll'") +
                      ']LT'
                    );
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'tra %s',
              past: '%s fa',
              s: 'alcuni secondi',
              ss: '%d secondi',
              m: 'un minuto',
              mm: '%d minuti',
              h: "un'ora",
              hh: '%d ore',
              d: 'un giorno',
              dd: '%d giorni',
              w: 'una settimana',
              ww: '%d settimane',
              M: 'un mese',
              MM: '%d mesi',
              y: 'un anno',
              yy: '%d anni',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      39183: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ja', {
            eras: [
              {
                since: '2019-05-01',
                offset: 1,
                name: '令和',
                narrow: '㋿',
                abbr: 'R',
              },
              {
                since: '1989-01-08',
                until: '2019-04-30',
                offset: 1,
                name: '平成',
                narrow: '㍻',
                abbr: 'H',
              },
              {
                since: '1926-12-25',
                until: '1989-01-07',
                offset: 1,
                name: '昭和',
                narrow: '㍼',
                abbr: 'S',
              },
              {
                since: '1912-07-30',
                until: '1926-12-24',
                offset: 1,
                name: '大正',
                narrow: '㍽',
                abbr: 'T',
              },
              {
                since: '1873-01-01',
                until: '1912-07-29',
                offset: 6,
                name: '明治',
                narrow: '㍾',
                abbr: 'M',
              },
              {
                since: '0001-01-01',
                until: '1873-12-31',
                offset: 1,
                name: '西暦',
                narrow: 'AD',
                abbr: 'AD',
              },
              {
                since: '0000-12-31',
                until: -1 / 0,
                offset: 1,
                name: '紀元前',
                narrow: 'BC',
                abbr: 'BC',
              },
            ],
            eraYearOrdinalRegex: /(元|\d+)年/,
            eraYearOrdinalParse: function (e, t) {
              return '元' === t[1] ? 1 : parseInt(t[1] || e, 10);
            },
            months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
              '_'
            ),
            monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
              '_'
            ),
            weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split(
              '_'
            ),
            weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
            weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY/MM/DD',
              LL: 'YYYY年M月D日',
              LLL: 'YYYY年M月D日 HH:mm',
              LLLL: 'YYYY年M月D日 dddd HH:mm',
              l: 'YYYY/MM/DD',
              ll: 'YYYY年M月D日',
              lll: 'YYYY年M月D日 HH:mm',
              llll: 'YYYY年M月D日(ddd) HH:mm',
            },
            meridiemParse: /午前|午後/i,
            isPM: function (e) {
              return '午後' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? '午前' : '午後';
            },
            calendar: {
              sameDay: '[今日] LT',
              nextDay: '[明日] LT',
              nextWeek: function (e) {
                return e.week() !== this.week() ? '[来週]dddd LT' : 'dddd LT';
              },
              lastDay: '[昨日] LT',
              lastWeek: function (e) {
                return this.week() !== e.week() ? '[先週]dddd LT' : 'dddd LT';
              },
              sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}日/,
            ordinal: function (e, t) {
              switch (t) {
                case 'y':
                  return 1 === e ? '元年' : e + '年';
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '日';
                default:
                  return e;
              }
            },
            relativeTime: {
              future: '%s後',
              past: '%s前',
              s: '数秒',
              ss: '%d秒',
              m: '1分',
              mm: '%d分',
              h: '1時間',
              hh: '%d時間',
              d: '1日',
              dd: '%d日',
              M: '1ヶ月',
              MM: '%dヶ月',
              y: '1年',
              yy: '%d年',
            },
          });
        })(i(30381));
      },
      24286: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('jv', {
            months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split(
              '_'
            ),
            weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
            weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
            weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
            longDateFormat: {
              LT: 'HH.mm',
              LTS: 'HH.mm.ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY [pukul] HH.mm',
              LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /enjing|siyang|sonten|ndalu/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'enjing' === t
                  ? e
                  : 'siyang' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : 'sonten' === t || 'ndalu' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 11
                ? 'enjing'
                : e < 15
                ? 'siyang'
                : e < 19
                ? 'sonten'
                : 'ndalu';
            },
            calendar: {
              sameDay: '[Dinten puniko pukul] LT',
              nextDay: '[Mbenjang pukul] LT',
              nextWeek: 'dddd [pukul] LT',
              lastDay: '[Kala wingi pukul] LT',
              lastWeek: 'dddd [kepengker pukul] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'wonten ing %s',
              past: '%s ingkang kepengker',
              s: 'sawetawis detik',
              ss: '%d detik',
              m: 'setunggal menit',
              mm: '%d menit',
              h: 'setunggal jam',
              hh: '%d jam',
              d: 'sedinten',
              dd: '%d dinten',
              M: 'sewulan',
              MM: '%d wulan',
              y: 'setaun',
              yy: '%d taun',
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      12105: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ka', {
            months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
              '_'
            ),
            monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split(
              '_'
            ),
            weekdays: {
              standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
                '_'
              ),
              format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
                '_'
              ),
              isFormat: /(წინა|შემდეგ)/,
            },
            weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
            weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[დღეს] LT[-ზე]',
              nextDay: '[ხვალ] LT[-ზე]',
              lastDay: '[გუშინ] LT[-ზე]',
              nextWeek: '[შემდეგ] dddd LT[-ზე]',
              lastWeek: '[წინა] dddd LT-ზე',
              sameElse: 'L',
            },
            relativeTime: {
              future: function (e) {
                return e.replace(
                  /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,
                  function (e, t, i) {
                    return 'ი' === i ? t + 'ში' : t + i + 'ში';
                  }
                );
              },
              past: function (e) {
                return /(წამი|წუთი|საათი|დღე|თვე)/.test(e)
                  ? e.replace(/(ი|ე)$/, 'ის წინ')
                  : /წელი/.test(e)
                  ? e.replace(/წელი$/, 'წლის წინ')
                  : e;
              },
              s: 'რამდენიმე წამი',
              ss: '%d წამი',
              m: 'წუთი',
              mm: '%d წუთი',
              h: 'საათი',
              hh: '%d საათი',
              d: 'დღე',
              dd: '%d დღე',
              M: 'თვე',
              MM: '%d თვე',
              y: 'წელი',
              yy: '%d წელი',
            },
            dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
            ordinal: function (e) {
              return 0 === e
                ? e
                : 1 === e
                ? e + '-ლი'
                : e < 20 || (e <= 100 && e % 20 == 0) || e % 100 == 0
                ? 'მე-' + e
                : e + '-ე';
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      47772: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            0: '-ші',
            1: '-ші',
            2: '-ші',
            3: '-ші',
            4: '-ші',
            5: '-ші',
            6: '-шы',
            7: '-ші',
            8: '-ші',
            9: '-шы',
            10: '-шы',
            20: '-шы',
            30: '-шы',
            40: '-шы',
            50: '-ші',
            60: '-шы',
            70: '-ші',
            80: '-ші',
            90: '-шы',
            100: '-ші',
          };
          e.defineLocale('kk', {
            months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
              '_'
            ),
            monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split(
              '_'
            ),
            weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
              '_'
            ),
            weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
            weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Бүгін сағат] LT',
              nextDay: '[Ертең сағат] LT',
              nextWeek: 'dddd [сағат] LT',
              lastDay: '[Кеше сағат] LT',
              lastWeek: '[Өткен аптаның] dddd [сағат] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s ішінде',
              past: '%s бұрын',
              s: 'бірнеше секунд',
              ss: '%d секунд',
              m: 'бір минут',
              mm: '%d минут',
              h: 'бір сағат',
              hh: '%d сағат',
              d: 'бір күн',
              dd: '%d күн',
              M: 'бір ай',
              MM: '%d ай',
              y: 'бір жыл',
              yy: '%d жыл',
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
            ordinal: function (e) {
              return e + (t[e] || t[e % 10] || t[e >= 100 ? 100 : null]);
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      18758: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '១',
              2: '២',
              3: '៣',
              4: '៤',
              5: '៥',
              6: '៦',
              7: '៧',
              8: '៨',
              9: '៩',
              0: '០',
            },
            i = {
              '១': '1',
              '២': '2',
              '៣': '3',
              '៤': '4',
              '៥': '5',
              '៦': '6',
              '៧': '7',
              '៨': '8',
              '៩': '9',
              '០': '0',
            };
          e.defineLocale('km', {
            months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
              '_'
            ),
            monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
              '_'
            ),
            weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split(
              '_'
            ),
            weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
            weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            meridiemParse: /ព្រឹក|ល្ងាច/,
            isPM: function (e) {
              return 'ល្ងាច' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ព្រឹក' : 'ល្ងាច';
            },
            calendar: {
              sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
              nextDay: '[ស្អែក ម៉ោង] LT',
              nextWeek: 'dddd [ម៉ោង] LT',
              lastDay: '[ម្សិលមិញ ម៉ោង] LT',
              lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%sទៀត',
              past: '%sមុន',
              s: 'ប៉ុន្មានវិនាទី',
              ss: '%d វិនាទី',
              m: 'មួយនាទី',
              mm: '%d នាទី',
              h: 'មួយម៉ោង',
              hh: '%d ម៉ោង',
              d: 'មួយថ្ងៃ',
              dd: '%d ថ្ងៃ',
              M: 'មួយខែ',
              MM: '%d ខែ',
              y: 'មួយឆ្នាំ',
              yy: '%d ឆ្នាំ',
            },
            dayOfMonthOrdinalParse: /ទី\d{1,2}/,
            ordinal: 'ទី%d',
            preparse: function (e) {
              return e.replace(/[១២៣៤៥៦៧៨៩០]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      79282: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '೧',
              2: '೨',
              3: '೩',
              4: '೪',
              5: '೫',
              6: '೬',
              7: '೭',
              8: '೮',
              9: '೯',
              0: '೦',
            },
            i = {
              '೧': '1',
              '೨': '2',
              '೩': '3',
              '೪': '4',
              '೫': '5',
              '೬': '6',
              '೭': '7',
              '೮': '8',
              '೯': '9',
              '೦': '0',
            };
          e.defineLocale('kn', {
            months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
              '_'
            ),
            monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
              '_'
            ),
            weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
            weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
            longDateFormat: {
              LT: 'A h:mm',
              LTS: 'A h:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm',
              LLLL: 'dddd, D MMMM YYYY, A h:mm',
            },
            calendar: {
              sameDay: '[ಇಂದು] LT',
              nextDay: '[ನಾಳೆ] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[ನಿನ್ನೆ] LT',
              lastWeek: '[ಕೊನೆಯ] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s ನಂತರ',
              past: '%s ಹಿಂದೆ',
              s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
              ss: '%d ಸೆಕೆಂಡುಗಳು',
              m: 'ಒಂದು ನಿಮಿಷ',
              mm: '%d ನಿಮಿಷ',
              h: 'ಒಂದು ಗಂಟೆ',
              hh: '%d ಗಂಟೆ',
              d: 'ಒಂದು ದಿನ',
              dd: '%d ದಿನ',
              M: 'ಒಂದು ತಿಂಗಳು',
              MM: '%d ತಿಂಗಳು',
              y: 'ಒಂದು ವರ್ಷ',
              yy: '%d ವರ್ಷ',
            },
            preparse: function (e) {
              return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'ರಾತ್ರಿ' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'ಬೆಳಿಗ್ಗೆ' === t
                  ? e
                  : 'ಮಧ್ಯಾಹ್ನ' === t
                  ? e >= 10
                    ? e
                    : e + 12
                  : 'ಸಂಜೆ' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'ರಾತ್ರಿ'
                : e < 10
                ? 'ಬೆಳಿಗ್ಗೆ'
                : e < 17
                ? 'ಮಧ್ಯಾಹ್ನ'
                : e < 20
                ? 'ಸಂಜೆ'
                : 'ರಾತ್ರಿ';
            },
            dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
            ordinal: function (e) {
              return e + 'ನೇ';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      33730: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ko', {
            months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
              '_'
            ),
            monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
              '_'
            ),
            weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split(
              '_'
            ),
            weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
            weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
            longDateFormat: {
              LT: 'A h:mm',
              LTS: 'A h:mm:ss',
              L: 'YYYY.MM.DD.',
              LL: 'YYYY년 MMMM D일',
              LLL: 'YYYY년 MMMM D일 A h:mm',
              LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
              l: 'YYYY.MM.DD.',
              ll: 'YYYY년 MMMM D일',
              lll: 'YYYY년 MMMM D일 A h:mm',
              llll: 'YYYY년 MMMM D일 dddd A h:mm',
            },
            calendar: {
              sameDay: '오늘 LT',
              nextDay: '내일 LT',
              nextWeek: 'dddd LT',
              lastDay: '어제 LT',
              lastWeek: '지난주 dddd LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s 후',
              past: '%s 전',
              s: '몇 초',
              ss: '%d초',
              m: '1분',
              mm: '%d분',
              h: '한 시간',
              hh: '%d시간',
              d: '하루',
              dd: '%d일',
              M: '한 달',
              MM: '%d달',
              y: '일 년',
              yy: '%d년',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '일';
                case 'M':
                  return e + '월';
                case 'w':
                case 'W':
                  return e + '주';
                default:
                  return e;
              }
            },
            meridiemParse: /오전|오후/,
            isPM: function (e) {
              return '오후' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? '오전' : '오후';
            },
          });
        })(i(30381));
      },
      1408: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '١',
              2: '٢',
              3: '٣',
              4: '٤',
              5: '٥',
              6: '٦',
              7: '٧',
              8: '٨',
              9: '٩',
              0: '٠',
            },
            i = {
              '١': '1',
              '٢': '2',
              '٣': '3',
              '٤': '4',
              '٥': '5',
              '٦': '6',
              '٧': '7',
              '٨': '8',
              '٩': '9',
              '٠': '0',
            },
            n = [
              'کانونی دووەم',
              'شوبات',
              'ئازار',
              'نیسان',
              'ئایار',
              'حوزەیران',
              'تەمموز',
              'ئاب',
              'ئەیلوول',
              'تشرینی یەكەم',
              'تشرینی دووەم',
              'كانونی یەکەم',
            ];
          e.defineLocale('ku', {
            months: n,
            monthsShort: n,
            weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
              '_'
            ),
            weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(
              '_'
            ),
            weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            meridiemParse: /ئێواره‌|به‌یانی/,
            isPM: function (e) {
              return /ئێواره‌/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'به‌یانی' : 'ئێواره‌';
            },
            calendar: {
              sameDay: '[ئه‌مرۆ كاتژمێر] LT',
              nextDay: '[به‌یانی كاتژمێر] LT',
              nextWeek: 'dddd [كاتژمێر] LT',
              lastDay: '[دوێنێ كاتژمێر] LT',
              lastWeek: 'dddd [كاتژمێر] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'له‌ %s',
              past: '%s',
              s: 'چه‌ند چركه‌یه‌ك',
              ss: 'چركه‌ %d',
              m: 'یه‌ك خوله‌ك',
              mm: '%d خوله‌ك',
              h: 'یه‌ك كاتژمێر',
              hh: '%d كاتژمێر',
              d: 'یه‌ك ڕۆژ',
              dd: '%d ڕۆژ',
              M: 'یه‌ك مانگ',
              MM: '%d مانگ',
              y: 'یه‌ك ساڵ',
              yy: '%d ساڵ',
            },
            preparse: function (e) {
              return e
                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (e) {
                  return i[e];
                })
                .replace(/،/g, ',');
            },
            postformat: function (e) {
              return e
                .replace(/\d/g, function (e) {
                  return t[e];
                })
                .replace(/,/g, '،');
            },
            week: { dow: 6, doy: 12 },
          });
        })(i(30381));
      },
      33291: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            0: '-чү',
            1: '-чи',
            2: '-чи',
            3: '-чү',
            4: '-чү',
            5: '-чи',
            6: '-чы',
            7: '-чи',
            8: '-чи',
            9: '-чу',
            10: '-чу',
            20: '-чы',
            30: '-чу',
            40: '-чы',
            50: '-чү',
            60: '-чы',
            70: '-чи',
            80: '-чи',
            90: '-чу',
            100: '-чү',
          };
          e.defineLocale('ky', {
            months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
              '_'
            ),
            monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
              '_'
            ),
            weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
              '_'
            ),
            weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
            weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Бүгүн саат] LT',
              nextDay: '[Эртең саат] LT',
              nextWeek: 'dddd [саат] LT',
              lastDay: '[Кечээ саат] LT',
              lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s ичинде',
              past: '%s мурун',
              s: 'бирнече секунд',
              ss: '%d секунд',
              m: 'бир мүнөт',
              mm: '%d мүнөт',
              h: 'бир саат',
              hh: '%d саат',
              d: 'бир күн',
              dd: '%d күн',
              M: 'бир ай',
              MM: '%d ай',
              y: 'бир жыл',
              yy: '%d жыл',
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
            ordinal: function (e) {
              return e + (t[e] || t[e % 10] || t[e >= 100 ? 100 : null]);
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      36841: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              m: ['eng Minutt', 'enger Minutt'],
              h: ['eng Stonn', 'enger Stonn'],
              d: ['een Dag', 'engem Dag'],
              M: ['ee Mount', 'engem Mount'],
              y: ['ee Joer', 'engem Joer'],
            };
            return t ? r[i][0] : r[i][1];
          }
          function i(e) {
            if (((e = parseInt(e, 10)), isNaN(e))) return !1;
            if (e < 0) return !0;
            if (e < 10) return 4 <= e && e <= 7;
            if (e < 100) {
              var t = e % 10;
              return i(0 === t ? e / 10 : t);
            }
            if (e < 1e4) {
              for (; e >= 10; ) e /= 10;
              return i(e);
            }
            return i((e /= 1e3));
          }
          e.defineLocale('lb', {
            months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
              '_'
            ),
            monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
              '_'
            ),
            weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
            weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm [Auer]',
              LTS: 'H:mm:ss [Auer]',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm [Auer]',
              LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
            },
            calendar: {
              sameDay: '[Haut um] LT',
              sameElse: 'L',
              nextDay: '[Muer um] LT',
              nextWeek: 'dddd [um] LT',
              lastDay: '[Gëschter um] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 2:
                  case 4:
                    return '[Leschten] dddd [um] LT';
                  default:
                    return '[Leschte] dddd [um] LT';
                }
              },
            },
            relativeTime: {
              future: function (e) {
                return i(e.substr(0, e.indexOf(' '))) ? 'a ' + e : 'an ' + e;
              },
              past: function (e) {
                return i(e.substr(0, e.indexOf(' ')))
                  ? 'viru ' + e
                  : 'virun ' + e;
              },
              s: 'e puer Sekonnen',
              ss: '%d Sekonnen',
              m: t,
              mm: '%d Minutten',
              h: t,
              hh: '%d Stonnen',
              d: t,
              dd: '%d Deeg',
              M: t,
              MM: '%d Méint',
              y: t,
              yy: '%d Joer',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      55466: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('lo', {
            months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
              '_'
            ),
            monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
              '_'
            ),
            weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
            weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
            weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
            },
            meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
            isPM: function (e) {
              return 'ຕອນແລງ' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ຕອນເຊົ້າ' : 'ຕອນແລງ';
            },
            calendar: {
              sameDay: '[ມື້ນີ້ເວລາ] LT',
              nextDay: '[ມື້ອື່ນເວລາ] LT',
              nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
              lastDay: '[ມື້ວານນີ້ເວລາ] LT',
              lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'ອີກ %s',
              past: '%sຜ່ານມາ',
              s: 'ບໍ່ເທົ່າໃດວິນາທີ',
              ss: '%d ວິນາທີ',
              m: '1 ນາທີ',
              mm: '%d ນາທີ',
              h: '1 ຊົ່ວໂມງ',
              hh: '%d ຊົ່ວໂມງ',
              d: '1 ມື້',
              dd: '%d ມື້',
              M: '1 ເດືອນ',
              MM: '%d ເດືອນ',
              y: '1 ປີ',
              yy: '%d ປີ',
            },
            dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
            ordinal: function (e) {
              return 'ທີ່' + e;
            },
          });
        })(i(30381));
      },
      57010: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            ss: 'sekundė_sekundžių_sekundes',
            m: 'minutė_minutės_minutę',
            mm: 'minutės_minučių_minutes',
            h: 'valanda_valandos_valandą',
            hh: 'valandos_valandų_valandas',
            d: 'diena_dienos_dieną',
            dd: 'dienos_dienų_dienas',
            M: 'mėnuo_mėnesio_mėnesį',
            MM: 'mėnesiai_mėnesių_mėnesius',
            y: 'metai_metų_metus',
            yy: 'metai_metų_metus',
          };
          function i(e, t, i, n) {
            return t ? r(i)[0] : n ? r(i)[1] : r(i)[2];
          }
          function n(e) {
            return e % 10 == 0 || (e > 10 && e < 20);
          }
          function r(e) {
            return t[e].split('_');
          }
          function s(e, t, s, o) {
            var a = e + ' ';
            return 1 === e
              ? a + i(0, t, s[0], o)
              : t
              ? a + (n(e) ? r(s)[1] : r(s)[0])
              : o
              ? a + r(s)[1]
              : a + (n(e) ? r(s)[1] : r(s)[2]);
          }
          e.defineLocale('lt', {
            months: {
              format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
                '_'
              ),
              standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
                '_'
              ),
              isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
            },
            monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split(
              '_'
            ),
            weekdays: {
              format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
                '_'
              ),
              standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
                '_'
              ),
              isFormat: /dddd HH:mm/,
            },
            weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
            weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: 'YYYY [m.] MMMM D [d.]',
              LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
              LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
              l: 'YYYY-MM-DD',
              ll: 'YYYY [m.] MMMM D [d.]',
              lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
              llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
            },
            calendar: {
              sameDay: '[Šiandien] LT',
              nextDay: '[Rytoj] LT',
              nextWeek: 'dddd LT',
              lastDay: '[Vakar] LT',
              lastWeek: '[Praėjusį] dddd LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'po %s',
              past: 'prieš %s',
              s: function (e, t, i, n) {
                return t
                  ? 'kelios sekundės'
                  : n
                  ? 'kelių sekundžių'
                  : 'kelias sekundes';
              },
              ss: s,
              m: i,
              mm: s,
              h: i,
              hh: s,
              d: i,
              dd: s,
              M: i,
              MM: s,
              y: i,
              yy: s,
            },
            dayOfMonthOrdinalParse: /\d{1,2}-oji/,
            ordinal: function (e) {
              return e + '-oji';
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      37595: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
            m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
            mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
            h: 'stundas_stundām_stunda_stundas'.split('_'),
            hh: 'stundas_stundām_stunda_stundas'.split('_'),
            d: 'dienas_dienām_diena_dienas'.split('_'),
            dd: 'dienas_dienām_diena_dienas'.split('_'),
            M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
            MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
            y: 'gada_gadiem_gads_gadi'.split('_'),
            yy: 'gada_gadiem_gads_gadi'.split('_'),
          };
          function i(e, t, i) {
            return i
              ? t % 10 == 1 && t % 100 != 11
                ? e[2]
                : e[3]
              : t % 10 == 1 && t % 100 != 11
              ? e[0]
              : e[1];
          }
          function n(e, n, r) {
            return e + ' ' + i(t[r], e, n);
          }
          function r(e, n, r) {
            return i(t[r], e, n);
          }
          e.defineLocale('lv', {
            months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
              '_'
            ),
            monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split(
              '_'
            ),
            weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
              '_'
            ),
            weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
            weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY.',
              LL: 'YYYY. [gada] D. MMMM',
              LLL: 'YYYY. [gada] D. MMMM, HH:mm',
              LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
            },
            calendar: {
              sameDay: '[Šodien pulksten] LT',
              nextDay: '[Rīt pulksten] LT',
              nextWeek: 'dddd [pulksten] LT',
              lastDay: '[Vakar pulksten] LT',
              lastWeek: '[Pagājušā] dddd [pulksten] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'pēc %s',
              past: 'pirms %s',
              s: function (e, t) {
                return t ? 'dažas sekundes' : 'dažām sekundēm';
              },
              ss: n,
              m: r,
              mm: n,
              h: r,
              hh: n,
              d: r,
              dd: n,
              M: r,
              MM: n,
              y: r,
              yy: n,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      39861: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            words: {
              ss: ['sekund', 'sekunda', 'sekundi'],
              m: ['jedan minut', 'jednog minuta'],
              mm: ['minut', 'minuta', 'minuta'],
              h: ['jedan sat', 'jednog sata'],
              hh: ['sat', 'sata', 'sati'],
              dd: ['dan', 'dana', 'dana'],
              MM: ['mjesec', 'mjeseca', 'mjeseci'],
              yy: ['godina', 'godine', 'godina'],
            },
            correctGrammaticalCase: function (e, t) {
              return 1 === e ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2];
            },
            translate: function (e, i, n) {
              var r = t.words[n];
              return 1 === n.length
                ? i
                  ? r[0]
                  : r[1]
                : e + ' ' + t.correctGrammaticalCase(e, r);
            },
          };
          e.defineLocale('me', {
            months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
              '_'
            ),
            monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
              '_'
            ),
            weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
            weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm',
              LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[danas u] LT',
              nextDay: '[sjutra u] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[u] [nedjelju] [u] LT';
                  case 3:
                    return '[u] [srijedu] [u] LT';
                  case 6:
                    return '[u] [subotu] [u] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[u] dddd [u] LT';
                }
              },
              lastDay: '[juče u] LT',
              lastWeek: function () {
                return [
                  '[prošle] [nedjelje] [u] LT',
                  '[prošlog] [ponedjeljka] [u] LT',
                  '[prošlog] [utorka] [u] LT',
                  '[prošle] [srijede] [u] LT',
                  '[prošlog] [četvrtka] [u] LT',
                  '[prošlog] [petka] [u] LT',
                  '[prošle] [subote] [u] LT',
                ][this.day()];
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: 'prije %s',
              s: 'nekoliko sekundi',
              ss: t.translate,
              m: t.translate,
              mm: t.translate,
              h: t.translate,
              hh: t.translate,
              d: 'dan',
              dd: t.translate,
              M: 'mjesec',
              MM: t.translate,
              y: 'godinu',
              yy: t.translate,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      35493: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('mi', {
            months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(
              '_'
            ),
            monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
              '_'
            ),
            monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
            monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
            monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
            monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
            weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split(
              '_'
            ),
            weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
            weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY [i] HH:mm',
              LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
            },
            calendar: {
              sameDay: '[i teie mahana, i] LT',
              nextDay: '[apopo i] LT',
              nextWeek: 'dddd [i] LT',
              lastDay: '[inanahi i] LT',
              lastWeek: 'dddd [whakamutunga i] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'i roto i %s',
              past: '%s i mua',
              s: 'te hēkona ruarua',
              ss: '%d hēkona',
              m: 'he meneti',
              mm: '%d meneti',
              h: 'te haora',
              hh: '%d haora',
              d: 'he ra',
              dd: '%d ra',
              M: 'he marama',
              MM: '%d marama',
              y: 'he tau',
              yy: '%d tau',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      95966: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('mk', {
            months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
              '_'
            ),
            monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split(
              '_'
            ),
            weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
              '_'
            ),
            weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
            weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'D.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY H:mm',
              LLLL: 'dddd, D MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[Денес во] LT',
              nextDay: '[Утре во] LT',
              nextWeek: '[Во] dddd [во] LT',
              lastDay: '[Вчера во] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                  case 3:
                  case 6:
                    return '[Изминатата] dddd [во] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[Изминатиот] dddd [во] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'за %s',
              past: 'пред %s',
              s: 'неколку секунди',
              ss: '%d секунди',
              m: 'една минута',
              mm: '%d минути',
              h: 'еден час',
              hh: '%d часа',
              d: 'еден ден',
              dd: '%d дена',
              M: 'еден месец',
              MM: '%d месеци',
              y: 'една година',
              yy: '%d години',
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
            ordinal: function (e) {
              var t = e % 10,
                i = e % 100;
              return 0 === e
                ? e + '-ев'
                : 0 === i
                ? e + '-ен'
                : i > 10 && i < 20
                ? e + '-ти'
                : 1 === t
                ? e + '-ви'
                : 2 === t
                ? e + '-ри'
                : 7 === t || 8 === t
                ? e + '-ми'
                : e + '-ти';
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      87341: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ml', {
            months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
              '_'
            ),
            monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
              '_'
            ),
            weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split(
              '_'
            ),
            weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
            longDateFormat: {
              LT: 'A h:mm -നു',
              LTS: 'A h:mm:ss -നു',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm -നു',
              LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
            },
            calendar: {
              sameDay: '[ഇന്ന്] LT',
              nextDay: '[നാളെ] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[ഇന്നലെ] LT',
              lastWeek: '[കഴിഞ്ഞ] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s കഴിഞ്ഞ്',
              past: '%s മുൻപ്',
              s: 'അൽപ നിമിഷങ്ങൾ',
              ss: '%d സെക്കൻഡ്',
              m: 'ഒരു മിനിറ്റ്',
              mm: '%d മിനിറ്റ്',
              h: 'ഒരു മണിക്കൂർ',
              hh: '%d മണിക്കൂർ',
              d: 'ഒരു ദിവസം',
              dd: '%d ദിവസം',
              M: 'ഒരു മാസം',
              MM: '%d മാസം',
              y: 'ഒരു വർഷം',
              yy: '%d വർഷം',
            },
            meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                ('രാത്രി' === t && e >= 4) ||
                'ഉച്ച കഴിഞ്ഞ്' === t ||
                'വൈകുന്നേരം' === t
                  ? e + 12
                  : e
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'രാത്രി'
                : e < 12
                ? 'രാവിലെ'
                : e < 17
                ? 'ഉച്ച കഴിഞ്ഞ്'
                : e < 20
                ? 'വൈകുന്നേരം'
                : 'രാത്രി';
            },
          });
        })(i(30381));
      },
      5115: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            switch (i) {
              case 's':
                return t ? 'хэдхэн секунд' : 'хэдхэн секундын';
              case 'ss':
                return e + (t ? ' секунд' : ' секундын');
              case 'm':
              case 'mm':
                return e + (t ? ' минут' : ' минутын');
              case 'h':
              case 'hh':
                return e + (t ? ' цаг' : ' цагийн');
              case 'd':
              case 'dd':
                return e + (t ? ' өдөр' : ' өдрийн');
              case 'M':
              case 'MM':
                return e + (t ? ' сар' : ' сарын');
              case 'y':
              case 'yy':
                return e + (t ? ' жил' : ' жилийн');
              default:
                return e;
            }
          }
          e.defineLocale('mn', {
            months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
              '_'
            ),
            monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
            weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
            weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: 'YYYY оны MMMMын D',
              LLL: 'YYYY оны MMMMын D HH:mm',
              LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
            },
            meridiemParse: /ҮӨ|ҮХ/i,
            isPM: function (e) {
              return 'ҮХ' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ҮӨ' : 'ҮХ';
            },
            calendar: {
              sameDay: '[Өнөөдөр] LT',
              nextDay: '[Маргааш] LT',
              nextWeek: '[Ирэх] dddd LT',
              lastDay: '[Өчигдөр] LT',
              lastWeek: '[Өнгөрсөн] dddd LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s дараа',
              past: '%s өмнө',
              s: t,
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: t,
              dd: t,
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + ' өдөр';
                default:
                  return e;
              }
            },
          });
        })(i(30381));
      },
      10370: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '१',
              2: '२',
              3: '३',
              4: '४',
              5: '५',
              6: '६',
              7: '७',
              8: '८',
              9: '९',
              0: '०',
            },
            i = {
              '१': '1',
              '२': '2',
              '३': '3',
              '४': '4',
              '५': '5',
              '६': '6',
              '७': '7',
              '८': '8',
              '९': '9',
              '०': '0',
            };
          function n(e, t, i, n) {
            var r = '';
            if (t)
              switch (i) {
                case 's':
                  r = 'काही सेकंद';
                  break;
                case 'ss':
                  r = '%d सेकंद';
                  break;
                case 'm':
                  r = 'एक मिनिट';
                  break;
                case 'mm':
                  r = '%d मिनिटे';
                  break;
                case 'h':
                  r = 'एक तास';
                  break;
                case 'hh':
                  r = '%d तास';
                  break;
                case 'd':
                  r = 'एक दिवस';
                  break;
                case 'dd':
                  r = '%d दिवस';
                  break;
                case 'M':
                  r = 'एक महिना';
                  break;
                case 'MM':
                  r = '%d महिने';
                  break;
                case 'y':
                  r = 'एक वर्ष';
                  break;
                case 'yy':
                  r = '%d वर्षे';
              }
            else
              switch (i) {
                case 's':
                  r = 'काही सेकंदां';
                  break;
                case 'ss':
                  r = '%d सेकंदां';
                  break;
                case 'm':
                  r = 'एका मिनिटा';
                  break;
                case 'mm':
                  r = '%d मिनिटां';
                  break;
                case 'h':
                  r = 'एका तासा';
                  break;
                case 'hh':
                  r = '%d तासां';
                  break;
                case 'd':
                  r = 'एका दिवसा';
                  break;
                case 'dd':
                  r = '%d दिवसां';
                  break;
                case 'M':
                  r = 'एका महिन्या';
                  break;
                case 'MM':
                  r = '%d महिन्यां';
                  break;
                case 'y':
                  r = 'एका वर्षा';
                  break;
                case 'yy':
                  r = '%d वर्षां';
              }
            return r.replace(/%d/i, e);
          }
          e.defineLocale('mr', {
            months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
              '_'
            ),
            monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split(
              '_'
            ),
            weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
            weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
            longDateFormat: {
              LT: 'A h:mm वाजता',
              LTS: 'A h:mm:ss वाजता',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm वाजता',
              LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
            },
            calendar: {
              sameDay: '[आज] LT',
              nextDay: '[उद्या] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[काल] LT',
              lastWeek: '[मागील] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%sमध्ये',
              past: '%sपूर्वी',
              s: n,
              ss: n,
              m: n,
              mm: n,
              h: n,
              hh: n,
              d: n,
              dd: n,
              M: n,
              MM: n,
              y: n,
              yy: n,
            },
            preparse: function (e) {
              return e.replace(/[१२३४५६७८९०]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'पहाटे' === t || 'सकाळी' === t
                  ? e
                  : 'दुपारी' === t || 'सायंकाळी' === t || 'रात्री' === t
                  ? e >= 12
                    ? e
                    : e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e >= 0 && e < 6
                ? 'पहाटे'
                : e < 12
                ? 'सकाळी'
                : e < 17
                ? 'दुपारी'
                : e < 20
                ? 'सायंकाळी'
                : 'रात्री';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      41237: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ms-my', {
            months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split(
              '_'
            ),
            weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
            weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
            weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
            longDateFormat: {
              LT: 'HH.mm',
              LTS: 'HH.mm.ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY [pukul] HH.mm',
              LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /pagi|tengahari|petang|malam/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'pagi' === t
                  ? e
                  : 'tengahari' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : 'petang' === t || 'malam' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 11
                ? 'pagi'
                : e < 15
                ? 'tengahari'
                : e < 19
                ? 'petang'
                : 'malam';
            },
            calendar: {
              sameDay: '[Hari ini pukul] LT',
              nextDay: '[Esok pukul] LT',
              nextWeek: 'dddd [pukul] LT',
              lastDay: '[Kelmarin pukul] LT',
              lastWeek: 'dddd [lepas pukul] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dalam %s',
              past: '%s yang lepas',
              s: 'beberapa saat',
              ss: '%d saat',
              m: 'seminit',
              mm: '%d minit',
              h: 'sejam',
              hh: '%d jam',
              d: 'sehari',
              dd: '%d hari',
              M: 'sebulan',
              MM: '%d bulan',
              y: 'setahun',
              yy: '%d tahun',
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      9847: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ms', {
            months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split(
              '_'
            ),
            weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
            weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
            weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
            longDateFormat: {
              LT: 'HH.mm',
              LTS: 'HH.mm.ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY [pukul] HH.mm',
              LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
            },
            meridiemParse: /pagi|tengahari|petang|malam/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'pagi' === t
                  ? e
                  : 'tengahari' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : 'petang' === t || 'malam' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 11
                ? 'pagi'
                : e < 15
                ? 'tengahari'
                : e < 19
                ? 'petang'
                : 'malam';
            },
            calendar: {
              sameDay: '[Hari ini pukul] LT',
              nextDay: '[Esok pukul] LT',
              nextWeek: 'dddd [pukul] LT',
              lastDay: '[Kelmarin pukul] LT',
              lastWeek: 'dddd [lepas pukul] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dalam %s',
              past: '%s yang lepas',
              s: 'beberapa saat',
              ss: '%d saat',
              m: 'seminit',
              mm: '%d minit',
              h: 'sejam',
              hh: '%d jam',
              d: 'sehari',
              dd: '%d hari',
              M: 'sebulan',
              MM: '%d bulan',
              y: 'setahun',
              yy: '%d tahun',
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      72126: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('mt', {
            months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
              '_'
            ),
            monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split(
              '_'
            ),
            weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
              '_'
            ),
            weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
            weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Illum fil-]LT',
              nextDay: '[Għada fil-]LT',
              nextWeek: 'dddd [fil-]LT',
              lastDay: '[Il-bieraħ fil-]LT',
              lastWeek: 'dddd [li għadda] [fil-]LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'f’ %s',
              past: '%s ilu',
              s: 'ftit sekondi',
              ss: '%d sekondi',
              m: 'minuta',
              mm: '%d minuti',
              h: 'siegħa',
              hh: '%d siegħat',
              d: 'ġurnata',
              dd: '%d ġranet',
              M: 'xahar',
              MM: '%d xhur',
              y: 'sena',
              yy: '%d sni',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      56165: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '၁',
              2: '၂',
              3: '၃',
              4: '၄',
              5: '၅',
              6: '၆',
              7: '၇',
              8: '၈',
              9: '၉',
              0: '၀',
            },
            i = {
              '၁': '1',
              '၂': '2',
              '၃': '3',
              '၄': '4',
              '၅': '5',
              '၆': '6',
              '၇': '7',
              '၈': '8',
              '၉': '9',
              '၀': '0',
            };
          e.defineLocale('my', {
            months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
              '_'
            ),
            monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split(
              '_'
            ),
            weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
              '_'
            ),
            weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
            weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[ယနေ.] LT [မှာ]',
              nextDay: '[မနက်ဖြန်] LT [မှာ]',
              nextWeek: 'dddd LT [မှာ]',
              lastDay: '[မနေ.က] LT [မှာ]',
              lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'လာမည့် %s မှာ',
              past: 'လွန်ခဲ့သော %s က',
              s: 'စက္ကန်.အနည်းငယ်',
              ss: '%d စက္ကန့်',
              m: 'တစ်မိနစ်',
              mm: '%d မိနစ်',
              h: 'တစ်နာရီ',
              hh: '%d နာရီ',
              d: 'တစ်ရက်',
              dd: '%d ရက်',
              M: 'တစ်လ',
              MM: '%d လ',
              y: 'တစ်နှစ်',
              yy: '%d နှစ်',
            },
            preparse: function (e) {
              return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      64924: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('nb', {
            months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
              '_'
            ),
            monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split(
              '_'
            ),
            weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
            weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY [kl.] HH:mm',
              LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
            },
            calendar: {
              sameDay: '[i dag kl.] LT',
              nextDay: '[i morgen kl.] LT',
              nextWeek: 'dddd [kl.] LT',
              lastDay: '[i går kl.] LT',
              lastWeek: '[forrige] dddd [kl.] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'om %s',
              past: '%s siden',
              s: 'noen sekunder',
              ss: '%d sekunder',
              m: 'ett minutt',
              mm: '%d minutter',
              h: 'en time',
              hh: '%d timer',
              d: 'en dag',
              dd: '%d dager',
              w: 'en uke',
              ww: '%d uker',
              M: 'en måned',
              MM: '%d måneder',
              y: 'ett år',
              yy: '%d år',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      16744: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '१',
              2: '२',
              3: '३',
              4: '४',
              5: '५',
              6: '६',
              7: '७',
              8: '८',
              9: '९',
              0: '०',
            },
            i = {
              '१': '1',
              '२': '2',
              '३': '3',
              '४': '4',
              '५': '5',
              '६': '6',
              '७': '7',
              '८': '8',
              '९': '9',
              '०': '0',
            };
          e.defineLocale('ne', {
            months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
              '_'
            ),
            monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
              '_'
            ),
            weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
            weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'Aको h:mm बजे',
              LTS: 'Aको h:mm:ss बजे',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, Aको h:mm बजे',
              LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
            },
            preparse: function (e) {
              return e.replace(/[१२३४५६७८९०]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'राति' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'बिहान' === t
                  ? e
                  : 'दिउँसो' === t
                  ? e >= 10
                    ? e
                    : e + 12
                  : 'साँझ' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 3
                ? 'राति'
                : e < 12
                ? 'बिहान'
                : e < 16
                ? 'दिउँसो'
                : e < 20
                ? 'साँझ'
                : 'राति';
            },
            calendar: {
              sameDay: '[आज] LT',
              nextDay: '[भोलि] LT',
              nextWeek: '[आउँदो] dddd[,] LT',
              lastDay: '[हिजो] LT',
              lastWeek: '[गएको] dddd[,] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%sमा',
              past: '%s अगाडि',
              s: 'केही क्षण',
              ss: '%d सेकेण्ड',
              m: 'एक मिनेट',
              mm: '%d मिनेट',
              h: 'एक घण्टा',
              hh: '%d घण्टा',
              d: 'एक दिन',
              dd: '%d दिन',
              M: 'एक महिना',
              MM: '%d महिना',
              y: 'एक बर्ष',
              yy: '%d बर्ष',
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      59814: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
              '_'
            ),
            i = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
            n = [
              /^jan/i,
              /^feb/i,
              /^maart|mrt.?$/i,
              /^apr/i,
              /^mei$/i,
              /^jun[i.]?$/i,
              /^jul[i.]?$/i,
              /^aug/i,
              /^sep/i,
              /^okt/i,
              /^nov/i,
              /^dec/i,
            ],
            r = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
          e.defineLocale('nl-be', {
            months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
            monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
              '_'
            ),
            weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
            weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[vandaag om] LT',
              nextDay: '[morgen om] LT',
              nextWeek: 'dddd [om] LT',
              lastDay: '[gisteren om] LT',
              lastWeek: '[afgelopen] dddd [om] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'over %s',
              past: '%s geleden',
              s: 'een paar seconden',
              ss: '%d seconden',
              m: 'één minuut',
              mm: '%d minuten',
              h: 'één uur',
              hh: '%d uur',
              d: 'één dag',
              dd: '%d dagen',
              M: 'één maand',
              MM: '%d maanden',
              y: 'één jaar',
              yy: '%d jaar',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
            ordinal: function (e) {
              return e + (1 === e || 8 === e || e >= 20 ? 'ste' : 'de');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      93901: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(
              '_'
            ),
            i = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
            n = [
              /^jan/i,
              /^feb/i,
              /^maart|mrt.?$/i,
              /^apr/i,
              /^mei$/i,
              /^jun[i.]?$/i,
              /^jul[i.]?$/i,
              /^aug/i,
              /^sep/i,
              /^okt/i,
              /^nov/i,
              /^dec/i,
            ],
            r = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
          e.defineLocale('nl', {
            months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
              '_'
            ),
            monthsShort: function (e, n) {
              return e ? (/-MMM-/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsRegex: r,
            monthsShortRegex: r,
            monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
            monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(
              '_'
            ),
            weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
            weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD-MM-YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[vandaag om] LT',
              nextDay: '[morgen om] LT',
              nextWeek: 'dddd [om] LT',
              lastDay: '[gisteren om] LT',
              lastWeek: '[afgelopen] dddd [om] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'over %s',
              past: '%s geleden',
              s: 'een paar seconden',
              ss: '%d seconden',
              m: 'één minuut',
              mm: '%d minuten',
              h: 'één uur',
              hh: '%d uur',
              d: 'één dag',
              dd: '%d dagen',
              w: 'één week',
              ww: '%d weken',
              M: 'één maand',
              MM: '%d maanden',
              y: 'één jaar',
              yy: '%d jaar',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
            ordinal: function (e) {
              return e + (1 === e || 8 === e || e >= 20 ? 'ste' : 'de');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      83877: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('nn', {
            months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
              '_'
            ),
            monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split(
              '_'
            ),
            weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
            weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY [kl.] H:mm',
              LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
            },
            calendar: {
              sameDay: '[I dag klokka] LT',
              nextDay: '[I morgon klokka] LT',
              nextWeek: 'dddd [klokka] LT',
              lastDay: '[I går klokka] LT',
              lastWeek: '[Føregåande] dddd [klokka] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'om %s',
              past: '%s sidan',
              s: 'nokre sekund',
              ss: '%d sekund',
              m: 'eit minutt',
              mm: '%d minutt',
              h: 'ein time',
              hh: '%d timar',
              d: 'ein dag',
              dd: '%d dagar',
              w: 'ei veke',
              ww: '%d veker',
              M: 'ein månad',
              MM: '%d månader',
              y: 'eit år',
              yy: '%d år',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      92135: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('oc-lnc', {
            months: {
              standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
                '_'
              ),
              format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
                '_'
              ),
              isFormat: /D[oD]?(\s)+MMMM/,
            },
            monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
              '_'
            ),
            weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
            weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM [de] YYYY',
              ll: 'D MMM YYYY',
              LLL: 'D MMMM [de] YYYY [a] H:mm',
              lll: 'D MMM YYYY, H:mm',
              LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
              llll: 'ddd D MMM YYYY, H:mm',
            },
            calendar: {
              sameDay: '[uèi a] LT',
              nextDay: '[deman a] LT',
              nextWeek: 'dddd [a] LT',
              lastDay: '[ièr a] LT',
              lastWeek: 'dddd [passat a] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: "d'aquí %s",
              past: 'fa %s',
              s: 'unas segondas',
              ss: '%d segondas',
              m: 'una minuta',
              mm: '%d minutas',
              h: 'una ora',
              hh: '%d oras',
              d: 'un jorn',
              dd: '%d jorns',
              M: 'un mes',
              MM: '%d meses',
              y: 'un an',
              yy: '%d ans',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
            ordinal: function (e, t) {
              var i =
                1 === e
                  ? 'r'
                  : 2 === e
                  ? 'n'
                  : 3 === e
                  ? 'r'
                  : 4 === e
                  ? 't'
                  : 'è';
              return ('w' !== t && 'W' !== t) || (i = 'a'), e + i;
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      15858: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '੧',
              2: '੨',
              3: '੩',
              4: '੪',
              5: '੫',
              6: '੬',
              7: '੭',
              8: '੮',
              9: '੯',
              0: '੦',
            },
            i = {
              '੧': '1',
              '੨': '2',
              '੩': '3',
              '੪': '4',
              '੫': '5',
              '੬': '6',
              '੭': '7',
              '੮': '8',
              '੯': '9',
              '੦': '0',
            };
          e.defineLocale('pa-in', {
            months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
              '_'
            ),
            monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
              '_'
            ),
            weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
              '_'
            ),
            weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
            weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
            longDateFormat: {
              LT: 'A h:mm ਵਜੇ',
              LTS: 'A h:mm:ss ਵਜੇ',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
              LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
            },
            calendar: {
              sameDay: '[ਅਜ] LT',
              nextDay: '[ਕਲ] LT',
              nextWeek: '[ਅਗਲਾ] dddd, LT',
              lastDay: '[ਕਲ] LT',
              lastWeek: '[ਪਿਛਲੇ] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s ਵਿੱਚ',
              past: '%s ਪਿਛਲੇ',
              s: 'ਕੁਝ ਸਕਿੰਟ',
              ss: '%d ਸਕਿੰਟ',
              m: 'ਇਕ ਮਿੰਟ',
              mm: '%d ਮਿੰਟ',
              h: 'ਇੱਕ ਘੰਟਾ',
              hh: '%d ਘੰਟੇ',
              d: 'ਇੱਕ ਦਿਨ',
              dd: '%d ਦਿਨ',
              M: 'ਇੱਕ ਮਹੀਨਾ',
              MM: '%d ਮਹੀਨੇ',
              y: 'ਇੱਕ ਸਾਲ',
              yy: '%d ਸਾਲ',
            },
            preparse: function (e) {
              return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'ਰਾਤ' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'ਸਵੇਰ' === t
                  ? e
                  : 'ਦੁਪਹਿਰ' === t
                  ? e >= 10
                    ? e
                    : e + 12
                  : 'ਸ਼ਾਮ' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'ਰਾਤ'
                : e < 10
                ? 'ਸਵੇਰ'
                : e < 17
                ? 'ਦੁਪਹਿਰ'
                : e < 20
                ? 'ਸ਼ਾਮ'
                : 'ਰਾਤ';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      64495: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
              '_'
            ),
            i = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
              '_'
            ),
            n = [
              /^sty/i,
              /^lut/i,
              /^mar/i,
              /^kwi/i,
              /^maj/i,
              /^cze/i,
              /^lip/i,
              /^sie/i,
              /^wrz/i,
              /^paź/i,
              /^lis/i,
              /^gru/i,
            ];
          function r(e) {
            return e % 10 < 5 && e % 10 > 1 && ~~(e / 10) % 10 != 1;
          }
          function s(e, t, i) {
            var n = e + ' ';
            switch (i) {
              case 'ss':
                return n + (r(e) ? 'sekundy' : 'sekund');
              case 'm':
                return t ? 'minuta' : 'minutę';
              case 'mm':
                return n + (r(e) ? 'minuty' : 'minut');
              case 'h':
                return t ? 'godzina' : 'godzinę';
              case 'hh':
                return n + (r(e) ? 'godziny' : 'godzin');
              case 'ww':
                return n + (r(e) ? 'tygodnie' : 'tygodni');
              case 'MM':
                return n + (r(e) ? 'miesiące' : 'miesięcy');
              case 'yy':
                return n + (r(e) ? 'lata' : 'lat');
            }
          }
          e.defineLocale('pl', {
            months: function (e, n) {
              return e ? (/D MMMM/.test(n) ? i[e.month()] : t[e.month()]) : t;
            },
            monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split(
              '_'
            ),
            monthsParse: n,
            longMonthsParse: n,
            shortMonthsParse: n,
            weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(
              '_'
            ),
            weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
            weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Dziś o] LT',
              nextDay: '[Jutro o] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[W niedzielę o] LT';
                  case 2:
                    return '[We wtorek o] LT';
                  case 3:
                    return '[W środę o] LT';
                  case 6:
                    return '[W sobotę o] LT';
                  default:
                    return '[W] dddd [o] LT';
                }
              },
              lastDay: '[Wczoraj o] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[W zeszłą niedzielę o] LT';
                  case 3:
                    return '[W zeszłą środę o] LT';
                  case 6:
                    return '[W zeszłą sobotę o] LT';
                  default:
                    return '[W zeszły] dddd [o] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: '%s temu',
              s: 'kilka sekund',
              ss: s,
              m: s,
              mm: s,
              h: s,
              hh: s,
              d: '1 dzień',
              dd: '%d dni',
              w: 'tydzień',
              ww: s,
              M: 'miesiąc',
              MM: s,
              y: 'rok',
              yy: s,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      57971: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('pt-br', {
            months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
              '_'
            ),
            monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split(
              '_'
            ),
            weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
              '_'
            ),
            weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
            weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
              LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
            },
            calendar: {
              sameDay: '[Hoje às] LT',
              nextDay: '[Amanhã às] LT',
              nextWeek: 'dddd [às] LT',
              lastDay: '[Ontem às] LT',
              lastWeek: function () {
                return 0 === this.day() || 6 === this.day()
                  ? '[Último] dddd [às] LT'
                  : '[Última] dddd [às] LT';
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'em %s',
              past: 'há %s',
              s: 'poucos segundos',
              ss: '%d segundos',
              m: 'um minuto',
              mm: '%d minutos',
              h: 'uma hora',
              hh: '%d horas',
              d: 'um dia',
              dd: '%d dias',
              M: 'um mês',
              MM: '%d meses',
              y: 'um ano',
              yy: '%d anos',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            invalidDate: 'Data inválida',
          });
        })(i(30381));
      },
      89520: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('pt', {
            months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
              '_'
            ),
            monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split(
              '_'
            ),
            weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
              '_'
            ),
            weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
            weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D [de] MMMM [de] YYYY',
              LLL: 'D [de] MMMM [de] YYYY HH:mm',
              LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Hoje às] LT',
              nextDay: '[Amanhã às] LT',
              nextWeek: 'dddd [às] LT',
              lastDay: '[Ontem às] LT',
              lastWeek: function () {
                return 0 === this.day() || 6 === this.day()
                  ? '[Último] dddd [às] LT'
                  : '[Última] dddd [às] LT';
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'em %s',
              past: 'há %s',
              s: 'segundos',
              ss: '%d segundos',
              m: 'um minuto',
              mm: '%d minutos',
              h: 'uma hora',
              hh: '%d horas',
              d: 'um dia',
              dd: '%d dias',
              w: 'uma semana',
              ww: '%d semanas',
              M: 'um mês',
              MM: '%d meses',
              y: 'um ano',
              yy: '%d anos',
            },
            dayOfMonthOrdinalParse: /\d{1,2}º/,
            ordinal: '%dº',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      96459: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            var n = ' ';
            return (
              (e % 100 >= 20 || (e >= 100 && e % 100 == 0)) && (n = ' de '),
              e +
                n +
                {
                  ss: 'secunde',
                  mm: 'minute',
                  hh: 'ore',
                  dd: 'zile',
                  ww: 'săptămâni',
                  MM: 'luni',
                  yy: 'ani',
                }[i]
            );
          }
          e.defineLocale('ro', {
            months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
              '_'
            ),
            monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split(
              '_'
            ),
            weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
            weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY H:mm',
              LLLL: 'dddd, D MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[azi la] LT',
              nextDay: '[mâine la] LT',
              nextWeek: 'dddd [la] LT',
              lastDay: '[ieri la] LT',
              lastWeek: '[fosta] dddd [la] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'peste %s',
              past: '%s în urmă',
              s: 'câteva secunde',
              ss: t,
              m: 'un minut',
              mm: t,
              h: 'o oră',
              hh: t,
              d: 'o zi',
              dd: t,
              w: 'o săptămână',
              ww: t,
              M: 'o lună',
              MM: t,
              y: 'un an',
              yy: t,
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      21793: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            return 'm' === i
              ? t
                ? 'минута'
                : 'минуту'
              : e +
                  ' ' +
                  ((n = +e),
                  (r = {
                    ss: t ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
                    mm: t ? 'минута_минуты_минут' : 'минуту_минуты_минут',
                    hh: 'час_часа_часов',
                    dd: 'день_дня_дней',
                    ww: 'неделя_недели_недель',
                    MM: 'месяц_месяца_месяцев',
                    yy: 'год_года_лет',
                  }[i].split('_')),
                  n % 10 == 1 && n % 100 != 11
                    ? r[0]
                    : n % 10 >= 2 &&
                      n % 10 <= 4 &&
                      (n % 100 < 10 || n % 100 >= 20)
                    ? r[1]
                    : r[2]);
            var n, r;
          }
          var i = [
            /^янв/i,
            /^фев/i,
            /^мар/i,
            /^апр/i,
            /^ма[йя]/i,
            /^июн/i,
            /^июл/i,
            /^авг/i,
            /^сен/i,
            /^окт/i,
            /^ноя/i,
            /^дек/i,
          ];
          e.defineLocale('ru', {
            months: {
              format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
                '_'
              ),
              standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
                '_'
              ),
            },
            monthsShort: {
              format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
                '_'
              ),
              standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
                '_'
              ),
            },
            weekdays: {
              standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
                '_'
              ),
              format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
                '_'
              ),
              isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
            },
            weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
            weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
            monthsParse: i,
            longMonthsParse: i,
            shortMonthsParse: i,
            monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
            monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
            monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
            monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY г.',
              LLL: 'D MMMM YYYY г., H:mm',
              LLLL: 'dddd, D MMMM YYYY г., H:mm',
            },
            calendar: {
              sameDay: '[Сегодня, в] LT',
              nextDay: '[Завтра, в] LT',
              lastDay: '[Вчера, в] LT',
              nextWeek: function (e) {
                if (e.week() === this.week())
                  return 2 === this.day()
                    ? '[Во] dddd, [в] LT'
                    : '[В] dddd, [в] LT';
                switch (this.day()) {
                  case 0:
                    return '[В следующее] dddd, [в] LT';
                  case 1:
                  case 2:
                  case 4:
                    return '[В следующий] dddd, [в] LT';
                  case 3:
                  case 5:
                  case 6:
                    return '[В следующую] dddd, [в] LT';
                }
              },
              lastWeek: function (e) {
                if (e.week() === this.week())
                  return 2 === this.day()
                    ? '[Во] dddd, [в] LT'
                    : '[В] dddd, [в] LT';
                switch (this.day()) {
                  case 0:
                    return '[В прошлое] dddd, [в] LT';
                  case 1:
                  case 2:
                  case 4:
                    return '[В прошлый] dddd, [в] LT';
                  case 3:
                  case 5:
                  case 6:
                    return '[В прошлую] dddd, [в] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'через %s',
              past: '%s назад',
              s: 'несколько секунд',
              ss: t,
              m: t,
              mm: t,
              h: 'час',
              hh: t,
              d: 'день',
              dd: t,
              w: 'неделя',
              ww: t,
              M: 'месяц',
              MM: t,
              y: 'год',
              yy: t,
            },
            meridiemParse: /ночи|утра|дня|вечера/i,
            isPM: function (e) {
              return /^(дня|вечера)$/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'ночи'
                : e < 12
                ? 'утра'
                : e < 17
                ? 'дня'
                : 'вечера';
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'M':
                case 'd':
                case 'DDD':
                  return e + '-й';
                case 'D':
                  return e + '-го';
                case 'w':
                case 'W':
                  return e + '-я';
                default:
                  return e;
              }
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      40950: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = [
              'جنوري',
              'فيبروري',
              'مارچ',
              'اپريل',
              'مئي',
              'جون',
              'جولاءِ',
              'آگسٽ',
              'سيپٽمبر',
              'آڪٽوبر',
              'نومبر',
              'ڊسمبر',
            ],
            i = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
          e.defineLocale('sd', {
            months: t,
            monthsShort: t,
            weekdays: i,
            weekdaysShort: i,
            weekdaysMin: i,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd، D MMMM YYYY HH:mm',
            },
            meridiemParse: /صبح|شام/,
            isPM: function (e) {
              return 'شام' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'صبح' : 'شام';
            },
            calendar: {
              sameDay: '[اڄ] LT',
              nextDay: '[سڀاڻي] LT',
              nextWeek: 'dddd [اڳين هفتي تي] LT',
              lastDay: '[ڪالهه] LT',
              lastWeek: '[گزريل هفتي] dddd [تي] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s پوء',
              past: '%s اڳ',
              s: 'چند سيڪنڊ',
              ss: '%d سيڪنڊ',
              m: 'هڪ منٽ',
              mm: '%d منٽ',
              h: 'هڪ ڪلاڪ',
              hh: '%d ڪلاڪ',
              d: 'هڪ ڏينهن',
              dd: '%d ڏينهن',
              M: 'هڪ مهينو',
              MM: '%d مهينا',
              y: 'هڪ سال',
              yy: '%d سال',
            },
            preparse: function (e) {
              return e.replace(/،/g, ',');
            },
            postformat: function (e) {
              return e.replace(/,/g, '،');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      10490: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('se', {
            months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(
              '_'
            ),
            monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(
              '_'
            ),
            weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
              '_'
            ),
            weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
            weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'MMMM D. [b.] YYYY',
              LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
              LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
            },
            calendar: {
              sameDay: '[otne ti] LT',
              nextDay: '[ihttin ti] LT',
              nextWeek: 'dddd [ti] LT',
              lastDay: '[ikte ti] LT',
              lastWeek: '[ovddit] dddd [ti] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s geažes',
              past: 'maŋit %s',
              s: 'moadde sekunddat',
              ss: '%d sekunddat',
              m: 'okta minuhta',
              mm: '%d minuhtat',
              h: 'okta diimmu',
              hh: '%d diimmut',
              d: 'okta beaivi',
              dd: '%d beaivvit',
              M: 'okta mánnu',
              MM: '%d mánut',
              y: 'okta jahki',
              yy: '%d jagit',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      90124: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('si', {
            months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
              '_'
            ),
            monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
              '_'
            ),
            weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
              '_'
            ),
            weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
            weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'a h:mm',
              LTS: 'a h:mm:ss',
              L: 'YYYY/MM/DD',
              LL: 'YYYY MMMM D',
              LLL: 'YYYY MMMM D, a h:mm',
              LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
            },
            calendar: {
              sameDay: '[අද] LT[ට]',
              nextDay: '[හෙට] LT[ට]',
              nextWeek: 'dddd LT[ට]',
              lastDay: '[ඊයේ] LT[ට]',
              lastWeek: '[පසුගිය] dddd LT[ට]',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%sකින්',
              past: '%sකට පෙර',
              s: 'තත්පර කිහිපය',
              ss: 'තත්පර %d',
              m: 'මිනිත්තුව',
              mm: 'මිනිත්තු %d',
              h: 'පැය',
              hh: 'පැය %d',
              d: 'දිනය',
              dd: 'දින %d',
              M: 'මාසය',
              MM: 'මාස %d',
              y: 'වසර',
              yy: 'වසර %d',
            },
            dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
            ordinal: function (e) {
              return e + ' වැනි';
            },
            meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
            isPM: function (e) {
              return 'ප.ව.' === e || 'පස් වරු' === e;
            },
            meridiem: function (e, t, i) {
              return e > 11
                ? i
                  ? 'ප.ව.'
                  : 'පස් වරු'
                : i
                ? 'පෙ.ව.'
                : 'පෙර වරු';
            },
          });
        })(i(30381));
      },
      64249: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
              '_'
            ),
            i = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
          function n(e) {
            return e > 1 && e < 5;
          }
          function r(e, t, i, r) {
            var s = e + ' ';
            switch (i) {
              case 's':
                return t || r ? 'pár sekúnd' : 'pár sekundami';
              case 'ss':
                return t || r
                  ? s + (n(e) ? 'sekundy' : 'sekúnd')
                  : s + 'sekundami';
              case 'm':
                return t ? 'minúta' : r ? 'minútu' : 'minútou';
              case 'mm':
                return t || r
                  ? s + (n(e) ? 'minúty' : 'minút')
                  : s + 'minútami';
              case 'h':
                return t ? 'hodina' : r ? 'hodinu' : 'hodinou';
              case 'hh':
                return t || r
                  ? s + (n(e) ? 'hodiny' : 'hodín')
                  : s + 'hodinami';
              case 'd':
                return t || r ? 'deň' : 'dňom';
              case 'dd':
                return t || r ? s + (n(e) ? 'dni' : 'dní') : s + 'dňami';
              case 'M':
                return t || r ? 'mesiac' : 'mesiacom';
              case 'MM':
                return t || r
                  ? s + (n(e) ? 'mesiace' : 'mesiacov')
                  : s + 'mesiacmi';
              case 'y':
                return t || r ? 'rok' : 'rokom';
              case 'yy':
                return t || r ? s + (n(e) ? 'roky' : 'rokov') : s + 'rokmi';
            }
          }
          e.defineLocale('sk', {
            months: t,
            monthsShort: i,
            weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split(
              '_'
            ),
            weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
            weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm',
              LLLL: 'dddd D. MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[dnes o] LT',
              nextDay: '[zajtra o] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[v nedeľu o] LT';
                  case 1:
                  case 2:
                    return '[v] dddd [o] LT';
                  case 3:
                    return '[v stredu o] LT';
                  case 4:
                    return '[vo štvrtok o] LT';
                  case 5:
                    return '[v piatok o] LT';
                  case 6:
                    return '[v sobotu o] LT';
                }
              },
              lastDay: '[včera o] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[minulú nedeľu o] LT';
                  case 1:
                  case 2:
                    return '[minulý] dddd [o] LT';
                  case 3:
                    return '[minulú stredu o] LT';
                  case 4:
                  case 5:
                    return '[minulý] dddd [o] LT';
                  case 6:
                    return '[minulú sobotu o] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: 'pred %s',
              s: r,
              ss: r,
              m: r,
              mm: r,
              h: r,
              hh: r,
              d: r,
              dd: r,
              M: r,
              MM: r,
              y: r,
              yy: r,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      14985: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = e + ' ';
            switch (i) {
              case 's':
                return t || n ? 'nekaj sekund' : 'nekaj sekundami';
              case 'ss':
                return (
                  r +
                  (1 === e
                    ? t
                      ? 'sekundo'
                      : 'sekundi'
                    : 2 === e
                    ? t || n
                      ? 'sekundi'
                      : 'sekundah'
                    : e < 5
                    ? t || n
                      ? 'sekunde'
                      : 'sekundah'
                    : 'sekund')
                );
              case 'm':
                return t ? 'ena minuta' : 'eno minuto';
              case 'mm':
                return (
                  r +
                  (1 === e
                    ? t
                      ? 'minuta'
                      : 'minuto'
                    : 2 === e
                    ? t || n
                      ? 'minuti'
                      : 'minutama'
                    : e < 5
                    ? t || n
                      ? 'minute'
                      : 'minutami'
                    : t || n
                    ? 'minut'
                    : 'minutami')
                );
              case 'h':
                return t ? 'ena ura' : 'eno uro';
              case 'hh':
                return (
                  r +
                  (1 === e
                    ? t
                      ? 'ura'
                      : 'uro'
                    : 2 === e
                    ? t || n
                      ? 'uri'
                      : 'urama'
                    : e < 5
                    ? t || n
                      ? 'ure'
                      : 'urami'
                    : t || n
                    ? 'ur'
                    : 'urami')
                );
              case 'd':
                return t || n ? 'en dan' : 'enim dnem';
              case 'dd':
                return (
                  r +
                  (1 === e
                    ? t || n
                      ? 'dan'
                      : 'dnem'
                    : 2 === e
                    ? t || n
                      ? 'dni'
                      : 'dnevoma'
                    : t || n
                    ? 'dni'
                    : 'dnevi')
                );
              case 'M':
                return t || n ? 'en mesec' : 'enim mesecem';
              case 'MM':
                return (
                  r +
                  (1 === e
                    ? t || n
                      ? 'mesec'
                      : 'mesecem'
                    : 2 === e
                    ? t || n
                      ? 'meseca'
                      : 'mesecema'
                    : e < 5
                    ? t || n
                      ? 'mesece'
                      : 'meseci'
                    : t || n
                    ? 'mesecev'
                    : 'meseci')
                );
              case 'y':
                return t || n ? 'eno leto' : 'enim letom';
              case 'yy':
                return (
                  r +
                  (1 === e
                    ? t || n
                      ? 'leto'
                      : 'letom'
                    : 2 === e
                    ? t || n
                      ? 'leti'
                      : 'letoma'
                    : e < 5
                    ? t || n
                      ? 'leta'
                      : 'leti'
                    : t || n
                    ? 'let'
                    : 'leti')
                );
            }
          }
          e.defineLocale('sl', {
            months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
              '_'
            ),
            monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split(
              '_'
            ),
            weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
            weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD. MM. YYYY',
              LL: 'D. MMMM YYYY',
              LLL: 'D. MMMM YYYY H:mm',
              LLLL: 'dddd, D. MMMM YYYY H:mm',
            },
            calendar: {
              sameDay: '[danes ob] LT',
              nextDay: '[jutri ob] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[v] [nedeljo] [ob] LT';
                  case 3:
                    return '[v] [sredo] [ob] LT';
                  case 6:
                    return '[v] [soboto] [ob] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[v] dddd [ob] LT';
                }
              },
              lastDay: '[včeraj ob] LT',
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[prejšnjo] [nedeljo] [ob] LT';
                  case 3:
                    return '[prejšnjo] [sredo] [ob] LT';
                  case 6:
                    return '[prejšnjo] [soboto] [ob] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[prejšnji] dddd [ob] LT';
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'čez %s',
              past: 'pred %s',
              s: t,
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: t,
              dd: t,
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      51104: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('sq', {
            months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
              '_'
            ),
            monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split(
              '_'
            ),
            weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
              '_'
            ),
            weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
            weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
            weekdaysParseExact: !0,
            meridiemParse: /PD|MD/,
            isPM: function (e) {
              return 'M' === e.charAt(0);
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'PD' : 'MD';
            },
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Sot në] LT',
              nextDay: '[Nesër në] LT',
              nextWeek: 'dddd [në] LT',
              lastDay: '[Dje në] LT',
              lastWeek: 'dddd [e kaluar në] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'në %s',
              past: '%s më parë',
              s: 'disa sekonda',
              ss: '%d sekonda',
              m: 'një minutë',
              mm: '%d minuta',
              h: 'një orë',
              hh: '%d orë',
              d: 'një ditë',
              dd: '%d ditë',
              M: 'një muaj',
              MM: '%d muaj',
              y: 'një vit',
              yy: '%d vite',
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      79915: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            words: {
              ss: ['секунда', 'секунде', 'секунди'],
              m: ['један минут', 'једне минуте'],
              mm: ['минут', 'минуте', 'минута'],
              h: ['један сат', 'једног сата'],
              hh: ['сат', 'сата', 'сати'],
              dd: ['дан', 'дана', 'дана'],
              MM: ['месец', 'месеца', 'месеци'],
              yy: ['година', 'године', 'година'],
            },
            correctGrammaticalCase: function (e, t) {
              return 1 === e ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2];
            },
            translate: function (e, i, n) {
              var r = t.words[n];
              return 1 === n.length
                ? i
                  ? r[0]
                  : r[1]
                : e + ' ' + t.correctGrammaticalCase(e, r);
            },
          };
          e.defineLocale('sr-cyrl', {
            months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
              '_'
            ),
            monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split(
              '_'
            ),
            weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
            weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'D. M. YYYY.',
              LL: 'D. MMMM YYYY.',
              LLL: 'D. MMMM YYYY. H:mm',
              LLLL: 'dddd, D. MMMM YYYY. H:mm',
            },
            calendar: {
              sameDay: '[данас у] LT',
              nextDay: '[сутра у] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[у] [недељу] [у] LT';
                  case 3:
                    return '[у] [среду] [у] LT';
                  case 6:
                    return '[у] [суботу] [у] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[у] dddd [у] LT';
                }
              },
              lastDay: '[јуче у] LT',
              lastWeek: function () {
                return [
                  '[прошле] [недеље] [у] LT',
                  '[прошлог] [понедељка] [у] LT',
                  '[прошлог] [уторка] [у] LT',
                  '[прошле] [среде] [у] LT',
                  '[прошлог] [четвртка] [у] LT',
                  '[прошлог] [петка] [у] LT',
                  '[прошле] [суботе] [у] LT',
                ][this.day()];
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'за %s',
              past: 'пре %s',
              s: 'неколико секунди',
              ss: t.translate,
              m: t.translate,
              mm: t.translate,
              h: t.translate,
              hh: t.translate,
              d: 'дан',
              dd: t.translate,
              M: 'месец',
              MM: t.translate,
              y: 'годину',
              yy: t.translate,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      49131: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            words: {
              ss: ['sekunda', 'sekunde', 'sekundi'],
              m: ['jedan minut', 'jedne minute'],
              mm: ['minut', 'minute', 'minuta'],
              h: ['jedan sat', 'jednog sata'],
              hh: ['sat', 'sata', 'sati'],
              dd: ['dan', 'dana', 'dana'],
              MM: ['mesec', 'meseca', 'meseci'],
              yy: ['godina', 'godine', 'godina'],
            },
            correctGrammaticalCase: function (e, t) {
              return 1 === e ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2];
            },
            translate: function (e, i, n) {
              var r = t.words[n];
              return 1 === n.length
                ? i
                  ? r[0]
                  : r[1]
                : e + ' ' + t.correctGrammaticalCase(e, r);
            },
          };
          e.defineLocale('sr', {
            months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
              '_'
            ),
            monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
              '_'
            ),
            weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
            weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'D. M. YYYY.',
              LL: 'D. MMMM YYYY.',
              LLL: 'D. MMMM YYYY. H:mm',
              LLLL: 'dddd, D. MMMM YYYY. H:mm',
            },
            calendar: {
              sameDay: '[danas u] LT',
              nextDay: '[sutra u] LT',
              nextWeek: function () {
                switch (this.day()) {
                  case 0:
                    return '[u] [nedelju] [u] LT';
                  case 3:
                    return '[u] [sredu] [u] LT';
                  case 6:
                    return '[u] [subotu] [u] LT';
                  case 1:
                  case 2:
                  case 4:
                  case 5:
                    return '[u] dddd [u] LT';
                }
              },
              lastDay: '[juče u] LT',
              lastWeek: function () {
                return [
                  '[prošle] [nedelje] [u] LT',
                  '[prošlog] [ponedeljka] [u] LT',
                  '[prošlog] [utorka] [u] LT',
                  '[prošle] [srede] [u] LT',
                  '[prošlog] [četvrtka] [u] LT',
                  '[prošlog] [petka] [u] LT',
                  '[prošle] [subote] [u] LT',
                ][this.day()];
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'za %s',
              past: 'pre %s',
              s: 'nekoliko sekundi',
              ss: t.translate,
              m: t.translate,
              mm: t.translate,
              h: t.translate,
              hh: t.translate,
              d: 'dan',
              dd: t.translate,
              M: 'mesec',
              MM: t.translate,
              y: 'godinu',
              yy: t.translate,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      85893: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ss', {
            months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
              '_'
            ),
            monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split(
              '_'
            ),
            weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
              '_'
            ),
            weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
            weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY h:mm A',
              LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
              sameDay: '[Namuhla nga] LT',
              nextDay: '[Kusasa nga] LT',
              nextWeek: 'dddd [nga] LT',
              lastDay: '[Itolo nga] LT',
              lastWeek: 'dddd [leliphelile] [nga] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'nga %s',
              past: 'wenteka nga %s',
              s: 'emizuzwana lomcane',
              ss: '%d mzuzwana',
              m: 'umzuzu',
              mm: '%d emizuzu',
              h: 'lihora',
              hh: '%d emahora',
              d: 'lilanga',
              dd: '%d emalanga',
              M: 'inyanga',
              MM: '%d tinyanga',
              y: 'umnyaka',
              yy: '%d iminyaka',
            },
            meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
            meridiem: function (e, t, i) {
              return e < 11
                ? 'ekuseni'
                : e < 15
                ? 'emini'
                : e < 19
                ? 'entsambama'
                : 'ebusuku';
            },
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'ekuseni' === t
                  ? e
                  : 'emini' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : 'entsambama' === t || 'ebusuku' === t
                  ? 0 === e
                    ? 0
                    : e + 12
                  : void 0
              );
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: '%d',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      98760: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('sv', {
            months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
              '_'
            ),
            monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split(
              '_'
            ),
            weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split(
              '_'
            ),
            weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
            weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY [kl.] HH:mm',
              LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
              lll: 'D MMM YYYY HH:mm',
              llll: 'ddd D MMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Idag] LT',
              nextDay: '[Imorgon] LT',
              lastDay: '[Igår] LT',
              nextWeek: '[På] dddd LT',
              lastWeek: '[I] dddd[s] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'om %s',
              past: 'för %s sedan',
              s: 'några sekunder',
              ss: '%d sekunder',
              m: 'en minut',
              mm: '%d minuter',
              h: 'en timme',
              hh: '%d timmar',
              d: 'en dag',
              dd: '%d dagar',
              M: 'en månad',
              MM: '%d månader',
              y: 'ett år',
              yy: '%d år',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? ':e'
                  : 1 === t || 2 === t
                  ? ':a'
                  : ':e')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      91172: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('sw', {
            months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
              '_'
            ),
            monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split(
              '_'
            ),
            weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
              '_'
            ),
            weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
            weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'hh:mm A',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[leo saa] LT',
              nextDay: '[kesho saa] LT',
              nextWeek: '[wiki ijayo] dddd [saat] LT',
              lastDay: '[jana] LT',
              lastWeek: '[wiki iliyopita] dddd [saat] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s baadaye',
              past: 'tokea %s',
              s: 'hivi punde',
              ss: 'sekunde %d',
              m: 'dakika moja',
              mm: 'dakika %d',
              h: 'saa limoja',
              hh: 'masaa %d',
              d: 'siku moja',
              dd: 'siku %d',
              M: 'mwezi mmoja',
              MM: 'miezi %d',
              y: 'mwaka mmoja',
              yy: 'miaka %d',
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      27333: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
              1: '௧',
              2: '௨',
              3: '௩',
              4: '௪',
              5: '௫',
              6: '௬',
              7: '௭',
              8: '௮',
              9: '௯',
              0: '௦',
            },
            i = {
              '௧': '1',
              '௨': '2',
              '௩': '3',
              '௪': '4',
              '௫': '5',
              '௬': '6',
              '௭': '7',
              '௮': '8',
              '௯': '9',
              '௦': '0',
            };
          e.defineLocale('ta', {
            months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
              '_'
            ),
            monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
              '_'
            ),
            weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
              '_'
            ),
            weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
              '_'
            ),
            weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, HH:mm',
              LLLL: 'dddd, D MMMM YYYY, HH:mm',
            },
            calendar: {
              sameDay: '[இன்று] LT',
              nextDay: '[நாளை] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[நேற்று] LT',
              lastWeek: '[கடந்த வாரம்] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s இல்',
              past: '%s முன்',
              s: 'ஒரு சில விநாடிகள்',
              ss: '%d விநாடிகள்',
              m: 'ஒரு நிமிடம்',
              mm: '%d நிமிடங்கள்',
              h: 'ஒரு மணி நேரம்',
              hh: '%d மணி நேரம்',
              d: 'ஒரு நாள்',
              dd: '%d நாட்கள்',
              M: 'ஒரு மாதம்',
              MM: '%d மாதங்கள்',
              y: 'ஒரு வருடம்',
              yy: '%d ஆண்டுகள்',
            },
            dayOfMonthOrdinalParse: /\d{1,2}வது/,
            ordinal: function (e) {
              return e + 'வது';
            },
            preparse: function (e) {
              return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (e) {
                return i[e];
              });
            },
            postformat: function (e) {
              return e.replace(/\d/g, function (e) {
                return t[e];
              });
            },
            meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
            meridiem: function (e, t, i) {
              return e < 2
                ? ' யாமம்'
                : e < 6
                ? ' வைகறை'
                : e < 10
                ? ' காலை'
                : e < 14
                ? ' நண்பகல்'
                : e < 18
                ? ' எற்பாடு'
                : e < 22
                ? ' மாலை'
                : ' யாமம்';
            },
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'யாமம்' === t
                  ? e < 2
                    ? e
                    : e + 12
                  : 'வைகறை' === t ||
                    'காலை' === t ||
                    ('நண்பகல்' === t && e >= 10)
                  ? e
                  : e + 12
              );
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      23110: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('te', {
            months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
              '_'
            ),
            monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
              '_'
            ),
            weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
            weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
            longDateFormat: {
              LT: 'A h:mm',
              LTS: 'A h:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY, A h:mm',
              LLLL: 'dddd, D MMMM YYYY, A h:mm',
            },
            calendar: {
              sameDay: '[నేడు] LT',
              nextDay: '[రేపు] LT',
              nextWeek: 'dddd, LT',
              lastDay: '[నిన్న] LT',
              lastWeek: '[గత] dddd, LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s లో',
              past: '%s క్రితం',
              s: 'కొన్ని క్షణాలు',
              ss: '%d సెకన్లు',
              m: 'ఒక నిమిషం',
              mm: '%d నిమిషాలు',
              h: 'ఒక గంట',
              hh: '%d గంటలు',
              d: 'ఒక రోజు',
              dd: '%d రోజులు',
              M: 'ఒక నెల',
              MM: '%d నెలలు',
              y: 'ఒక సంవత్సరం',
              yy: '%d సంవత్సరాలు',
            },
            dayOfMonthOrdinalParse: /\d{1,2}వ/,
            ordinal: '%dవ',
            meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'రాత్రి' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'ఉదయం' === t
                  ? e
                  : 'మధ్యాహ్నం' === t
                  ? e >= 10
                    ? e
                    : e + 12
                  : 'సాయంత్రం' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'రాత్రి'
                : e < 10
                ? 'ఉదయం'
                : e < 17
                ? 'మధ్యాహ్నం'
                : e < 20
                ? 'సాయంత్రం'
                : 'రాత్రి';
            },
            week: { dow: 0, doy: 6 },
          });
        })(i(30381));
      },
      52095: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('tet', {
            months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
              '_'
            ),
            monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split(
              '_'
            ),
            weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split(
              '_'
            ),
            weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
            weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Ohin iha] LT',
              nextDay: '[Aban iha] LT',
              nextWeek: 'dddd [iha] LT',
              lastDay: '[Horiseik iha] LT',
              lastWeek: 'dddd [semana kotuk] [iha] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'iha %s',
              past: '%s liuba',
              s: 'segundu balun',
              ss: 'segundu %d',
              m: 'minutu ida',
              mm: 'minutu %d',
              h: 'oras ida',
              hh: 'oras %d',
              d: 'loron ida',
              dd: 'loron %d',
              M: 'fulan ida',
              MM: 'fulan %d',
              y: 'tinan ida',
              yy: 'tinan %d',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      27321: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            0: '-ум',
            1: '-ум',
            2: '-юм',
            3: '-юм',
            4: '-ум',
            5: '-ум',
            6: '-ум',
            7: '-ум',
            8: '-ум',
            9: '-ум',
            10: '-ум',
            12: '-ум',
            13: '-ум',
            20: '-ум',
            30: '-юм',
            40: '-ум',
            50: '-ум',
            60: '-ум',
            70: '-ум',
            80: '-ум',
            90: '-ум',
            100: '-ум',
          };
          e.defineLocale('tg', {
            months: {
              format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
                '_'
              ),
              standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
                '_'
              ),
            },
            monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
              '_'
            ),
            weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
              '_'
            ),
            weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
            weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Имрӯз соати] LT',
              nextDay: '[Фардо соати] LT',
              lastDay: '[Дирӯз соати] LT',
              nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
              lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'баъди %s',
              past: '%s пеш',
              s: 'якчанд сония',
              m: 'як дақиқа',
              mm: '%d дақиқа',
              h: 'як соат',
              hh: '%d соат',
              d: 'як рӯз',
              dd: '%d рӯз',
              M: 'як моҳ',
              MM: '%d моҳ',
              y: 'як сол',
              yy: '%d сол',
            },
            meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'шаб' === t
                  ? e < 4
                    ? e
                    : e + 12
                  : 'субҳ' === t
                  ? e
                  : 'рӯз' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : 'бегоҳ' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'шаб'
                : e < 11
                ? 'субҳ'
                : e < 16
                ? 'рӯз'
                : e < 19
                ? 'бегоҳ'
                : 'шаб';
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
            ordinal: function (e) {
              return e + (t[e] || t[e % 10] || t[e >= 100 ? 100 : null]);
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      9041: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('th', {
            months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
              '_'
            ),
            monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split(
              '_'
            ),
            weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split(
              '_'
            ),
            weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'H:mm',
              LTS: 'H:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY เวลา H:mm',
              LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
            },
            meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
            isPM: function (e) {
              return 'หลังเที่ยง' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'ก่อนเที่ยง' : 'หลังเที่ยง';
            },
            calendar: {
              sameDay: '[วันนี้ เวลา] LT',
              nextDay: '[พรุ่งนี้ เวลา] LT',
              nextWeek: 'dddd[หน้า เวลา] LT',
              lastDay: '[เมื่อวานนี้ เวลา] LT',
              lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'อีก %s',
              past: '%sที่แล้ว',
              s: 'ไม่กี่วินาที',
              ss: '%d วินาที',
              m: '1 นาที',
              mm: '%d นาที',
              h: '1 ชั่วโมง',
              hh: '%d ชั่วโมง',
              d: '1 วัน',
              dd: '%d วัน',
              w: '1 สัปดาห์',
              ww: '%d สัปดาห์',
              M: '1 เดือน',
              MM: '%d เดือน',
              y: '1 ปี',
              yy: '%d ปี',
            },
          });
        })(i(30381));
      },
      19005: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            1: "'inji",
            5: "'inji",
            8: "'inji",
            70: "'inji",
            80: "'inji",
            2: "'nji",
            7: "'nji",
            20: "'nji",
            50: "'nji",
            3: "'ünji",
            4: "'ünji",
            100: "'ünji",
            6: "'njy",
            9: "'unjy",
            10: "'unjy",
            30: "'unjy",
            60: "'ynjy",
            90: "'ynjy",
          };
          e.defineLocale('tk', {
            months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
              '_'
            ),
            monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split(
              '_'
            ),
            weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
              '_'
            ),
            weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
            weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[bugün sagat] LT',
              nextDay: '[ertir sagat] LT',
              nextWeek: '[indiki] dddd [sagat] LT',
              lastDay: '[düýn] LT',
              lastWeek: '[geçen] dddd [sagat] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s soň',
              past: '%s öň',
              s: 'birnäçe sekunt',
              m: 'bir minut',
              mm: '%d minut',
              h: 'bir sagat',
              hh: '%d sagat',
              d: 'bir gün',
              dd: '%d gün',
              M: 'bir aý',
              MM: '%d aý',
              y: 'bir ýyl',
              yy: '%d ýyl',
            },
            ordinal: function (e, i) {
              switch (i) {
                case 'd':
                case 'D':
                case 'Do':
                case 'DD':
                  return e;
                default:
                  if (0 === e) return e + "'unjy";
                  var n = e % 10;
                  return (
                    e + (t[n] || t[(e % 100) - n] || t[e >= 100 ? 100 : null])
                  );
              }
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      75768: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('tl-ph', {
            months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
              '_'
            ),
            monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split(
              '_'
            ),
            weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
              '_'
            ),
            weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
            weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'MM/D/YYYY',
              LL: 'MMMM D, YYYY',
              LLL: 'MMMM D, YYYY HH:mm',
              LLLL: 'dddd, MMMM DD, YYYY HH:mm',
            },
            calendar: {
              sameDay: 'LT [ngayong araw]',
              nextDay: '[Bukas ng] LT',
              nextWeek: 'LT [sa susunod na] dddd',
              lastDay: 'LT [kahapon]',
              lastWeek: 'LT [noong nakaraang] dddd',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'sa loob ng %s',
              past: '%s ang nakalipas',
              s: 'ilang segundo',
              ss: '%d segundo',
              m: 'isang minuto',
              mm: '%d minuto',
              h: 'isang oras',
              hh: '%d oras',
              d: 'isang araw',
              dd: '%d araw',
              M: 'isang buwan',
              MM: '%d buwan',
              y: 'isang taon',
              yy: '%d taon',
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: function (e) {
              return e;
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      89444: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
          function i(e, i, n, r) {
            var s = (function (e) {
              var i = Math.floor((e % 1e3) / 100),
                n = Math.floor((e % 100) / 10),
                r = e % 10,
                s = '';
              return (
                i > 0 && (s += t[i] + 'vatlh'),
                n > 0 && (s += ('' !== s ? ' ' : '') + t[n] + 'maH'),
                r > 0 && (s += ('' !== s ? ' ' : '') + t[r]),
                '' === s ? 'pagh' : s
              );
            })(e);
            switch (n) {
              case 'ss':
                return s + ' lup';
              case 'mm':
                return s + ' tup';
              case 'hh':
                return s + ' rep';
              case 'dd':
                return s + ' jaj';
              case 'MM':
                return s + ' jar';
              case 'yy':
                return s + ' DIS';
            }
          }
          e.defineLocale('tlh', {
            months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
              '_'
            ),
            monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
              '_'
            ),
            weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
              '_'
            ),
            weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
              '_'
            ),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[DaHjaj] LT',
              nextDay: '[wa’leS] LT',
              nextWeek: 'LLL',
              lastDay: '[wa’Hu’] LT',
              lastWeek: 'LLL',
              sameElse: 'L',
            },
            relativeTime: {
              future: function (e) {
                var t = e;
                return -1 !== e.indexOf('jaj')
                  ? t.slice(0, -3) + 'leS'
                  : -1 !== e.indexOf('jar')
                  ? t.slice(0, -3) + 'waQ'
                  : -1 !== e.indexOf('DIS')
                  ? t.slice(0, -3) + 'nem'
                  : t + ' pIq';
              },
              past: function (e) {
                var t = e;
                return -1 !== e.indexOf('jaj')
                  ? t.slice(0, -3) + 'Hu’'
                  : -1 !== e.indexOf('jar')
                  ? t.slice(0, -3) + 'wen'
                  : -1 !== e.indexOf('DIS')
                  ? t.slice(0, -3) + 'ben'
                  : t + ' ret';
              },
              s: 'puS lup',
              ss: i,
              m: 'wa’ tup',
              mm: i,
              h: 'wa’ rep',
              hh: i,
              d: 'wa’ jaj',
              dd: i,
              M: 'wa’ jar',
              MM: i,
              y: 'wa’ DIS',
              yy: i,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      72397: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = {
            1: "'inci",
            5: "'inci",
            8: "'inci",
            70: "'inci",
            80: "'inci",
            2: "'nci",
            7: "'nci",
            20: "'nci",
            50: "'nci",
            3: "'üncü",
            4: "'üncü",
            100: "'üncü",
            6: "'ncı",
            9: "'uncu",
            10: "'uncu",
            30: "'uncu",
            60: "'ıncı",
            90: "'ıncı",
          };
          e.defineLocale('tr', {
            months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
              '_'
            ),
            monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split(
              '_'
            ),
            weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
              '_'
            ),
            weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
            weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
            meridiem: function (e, t, i) {
              return e < 12 ? (i ? 'öö' : 'ÖÖ') : i ? 'ös' : 'ÖS';
            },
            meridiemParse: /öö|ÖÖ|ös|ÖS/,
            isPM: function (e) {
              return 'ös' === e || 'ÖS' === e;
            },
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[bugün saat] LT',
              nextDay: '[yarın saat] LT',
              nextWeek: '[gelecek] dddd [saat] LT',
              lastDay: '[dün] LT',
              lastWeek: '[geçen] dddd [saat] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s sonra',
              past: '%s önce',
              s: 'birkaç saniye',
              ss: '%d saniye',
              m: 'bir dakika',
              mm: '%d dakika',
              h: 'bir saat',
              hh: '%d saat',
              d: 'bir gün',
              dd: '%d gün',
              w: 'bir hafta',
              ww: '%d hafta',
              M: 'bir ay',
              MM: '%d ay',
              y: 'bir yıl',
              yy: '%d yıl',
            },
            ordinal: function (e, i) {
              switch (i) {
                case 'd':
                case 'D':
                case 'Do':
                case 'DD':
                  return e;
                default:
                  if (0 === e) return e + "'ıncı";
                  var n = e % 10;
                  return (
                    e + (t[n] || t[(e % 100) - n] || t[e >= 100 ? 100 : null])
                  );
              }
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      28254: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i, n) {
            var r = {
              s: ['viensas secunds', "'iensas secunds"],
              ss: [e + ' secunds', e + ' secunds'],
              m: ["'n míut", "'iens míut"],
              mm: [e + ' míuts', e + ' míuts'],
              h: ["'n þora", "'iensa þora"],
              hh: [e + ' þoras', e + ' þoras'],
              d: ["'n ziua", "'iensa ziua"],
              dd: [e + ' ziuas', e + ' ziuas'],
              M: ["'n mes", "'iens mes"],
              MM: [e + ' mesen', e + ' mesen'],
              y: ["'n ar", "'iens ar"],
              yy: [e + ' ars', e + ' ars'],
            };
            return n || t ? r[i][0] : r[i][1];
          }
          e.defineLocale('tzl', {
            months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
              '_'
            ),
            monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split(
              '_'
            ),
            weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split(
              '_'
            ),
            weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
            weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
            longDateFormat: {
              LT: 'HH.mm',
              LTS: 'HH.mm.ss',
              L: 'DD.MM.YYYY',
              LL: 'D. MMMM [dallas] YYYY',
              LLL: 'D. MMMM [dallas] YYYY HH.mm',
              LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
            },
            meridiemParse: /d\'o|d\'a/i,
            isPM: function (e) {
              return "d'o" === e.toLowerCase();
            },
            meridiem: function (e, t, i) {
              return e > 11 ? (i ? "d'o" : "D'O") : i ? "d'a" : "D'A";
            },
            calendar: {
              sameDay: '[oxhi à] LT',
              nextDay: '[demà à] LT',
              nextWeek: 'dddd [à] LT',
              lastDay: '[ieiri à] LT',
              lastWeek: '[sür el] dddd [lasteu à] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'osprei %s',
              past: 'ja%s',
              s: t,
              ss: t,
              m: t,
              mm: t,
              h: t,
              hh: t,
              d: t,
              dd: t,
              M: t,
              MM: t,
              y: t,
              yy: t,
            },
            dayOfMonthOrdinalParse: /\d{1,2}\./,
            ordinal: '%d.',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      30699: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('tzm-latn', {
            months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
              '_'
            ),
            monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
              '_'
            ),
            weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split(
              '_'
            ),
            weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split(
              '_'
            ),
            weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split(
              '_'
            ),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[asdkh g] LT',
              nextDay: '[aska g] LT',
              nextWeek: 'dddd [g] LT',
              lastDay: '[assant g] LT',
              lastWeek: 'dddd [g] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'dadkh s yan %s',
              past: 'yan %s',
              s: 'imik',
              ss: '%d imik',
              m: 'minuḍ',
              mm: '%d minuḍ',
              h: 'saɛa',
              hh: '%d tassaɛin',
              d: 'ass',
              dd: '%d ossan',
              M: 'ayowr',
              MM: '%d iyyirn',
              y: 'asgas',
              yy: '%d isgasn',
            },
            week: { dow: 6, doy: 12 },
          });
        })(i(30381));
      },
      51106: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('tzm', {
            months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
              '_'
            ),
            monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
              '_'
            ),
            weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split(
              '_'
            ),
            weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split(
              '_'
            ),
            weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split(
              '_'
            ),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
              nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
              nextWeek: 'dddd [ⴴ] LT',
              lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
              lastWeek: 'dddd [ⴴ] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
              past: 'ⵢⴰⵏ %s',
              s: 'ⵉⵎⵉⴽ',
              ss: '%d ⵉⵎⵉⴽ',
              m: 'ⵎⵉⵏⵓⴺ',
              mm: '%d ⵎⵉⵏⵓⴺ',
              h: 'ⵙⴰⵄⴰ',
              hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
              d: 'ⴰⵙⵙ',
              dd: '%d oⵙⵙⴰⵏ',
              M: 'ⴰⵢoⵓⵔ',
              MM: '%d ⵉⵢⵢⵉⵔⵏ',
              y: 'ⴰⵙⴳⴰⵙ',
              yy: '%d ⵉⵙⴳⴰⵙⵏ',
            },
            week: { dow: 6, doy: 12 },
          });
        })(i(30381));
      },
      9288: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('ug-cn', {
            months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
              '_'
            ),
            monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
              '_'
            ),
            weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
              '_'
            ),
            weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
            weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY-MM-DD',
              LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
              LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
              LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
            },
            meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                'يېرىم كېچە' === t || 'سەھەر' === t || 'چۈشتىن بۇرۇن' === t
                  ? e
                  : 'چۈشتىن كېيىن' === t || 'كەچ' === t
                  ? e + 12
                  : e >= 11
                  ? e
                  : e + 12
              );
            },
            meridiem: function (e, t, i) {
              var n = 100 * e + t;
              return n < 600
                ? 'يېرىم كېچە'
                : n < 900
                ? 'سەھەر'
                : n < 1130
                ? 'چۈشتىن بۇرۇن'
                : n < 1230
                ? 'چۈش'
                : n < 1800
                ? 'چۈشتىن كېيىن'
                : 'كەچ';
            },
            calendar: {
              sameDay: '[بۈگۈن سائەت] LT',
              nextDay: '[ئەتە سائەت] LT',
              nextWeek: '[كېلەركى] dddd [سائەت] LT',
              lastDay: '[تۆنۈگۈن] LT',
              lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s كېيىن',
              past: '%s بۇرۇن',
              s: 'نەچچە سېكونت',
              ss: '%d سېكونت',
              m: 'بىر مىنۇت',
              mm: '%d مىنۇت',
              h: 'بىر سائەت',
              hh: '%d سائەت',
              d: 'بىر كۈن',
              dd: '%d كۈن',
              M: 'بىر ئاي',
              MM: '%d ئاي',
              y: 'بىر يىل',
              yy: '%d يىل',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '-كۈنى';
                case 'w':
                case 'W':
                  return e + '-ھەپتە';
                default:
                  return e;
              }
            },
            preparse: function (e) {
              return e.replace(/،/g, ',');
            },
            postformat: function (e) {
              return e.replace(/,/g, '،');
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      67691: function (e, t, i) {
        !(function (e) {
          'use strict';
          function t(e, t, i) {
            return 'm' === i
              ? t
                ? 'хвилина'
                : 'хвилину'
              : 'h' === i
              ? t
                ? 'година'
                : 'годину'
              : e +
                ' ' +
                ((n = +e),
                (r = {
                  ss: t ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
                  mm: t ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
                  hh: t ? 'година_години_годин' : 'годину_години_годин',
                  dd: 'день_дні_днів',
                  MM: 'місяць_місяці_місяців',
                  yy: 'рік_роки_років',
                }[i].split('_')),
                n % 10 == 1 && n % 100 != 11
                  ? r[0]
                  : n % 10 >= 2 &&
                    n % 10 <= 4 &&
                    (n % 100 < 10 || n % 100 >= 20)
                  ? r[1]
                  : r[2]);
            var n, r;
          }
          function i(e) {
            return function () {
              return e + 'о' + (11 === this.hours() ? 'б' : '') + '] LT';
            };
          }
          e.defineLocale('uk', {
            months: {
              format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
                '_'
              ),
              standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
                '_'
              ),
            },
            monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
              '_'
            ),
            weekdays: function (e, t) {
              var i = {
                nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
                  '_'
                ),
                accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
                  '_'
                ),
                genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
                  '_'
                ),
              };
              return !0 === e
                ? i.nominative.slice(1, 7).concat(i.nominative.slice(0, 1))
                : e
                ? i[
                    /(\[[ВвУу]\]) ?dddd/.test(t)
                      ? 'accusative'
                      : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)
                      ? 'genitive'
                      : 'nominative'
                  ][e.day()]
                : i.nominative;
            },
            weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
            weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD.MM.YYYY',
              LL: 'D MMMM YYYY р.',
              LLL: 'D MMMM YYYY р., HH:mm',
              LLLL: 'dddd, D MMMM YYYY р., HH:mm',
            },
            calendar: {
              sameDay: i('[Сьогодні '),
              nextDay: i('[Завтра '),
              lastDay: i('[Вчора '),
              nextWeek: i('[У] dddd ['),
              lastWeek: function () {
                switch (this.day()) {
                  case 0:
                  case 3:
                  case 5:
                  case 6:
                    return i('[Минулої] dddd [').call(this);
                  case 1:
                  case 2:
                  case 4:
                    return i('[Минулого] dddd [').call(this);
                }
              },
              sameElse: 'L',
            },
            relativeTime: {
              future: 'за %s',
              past: '%s тому',
              s: 'декілька секунд',
              ss: t,
              m: t,
              mm: t,
              h: 'годину',
              hh: t,
              d: 'день',
              dd: t,
              M: 'місяць',
              MM: t,
              y: 'рік',
              yy: t,
            },
            meridiemParse: /ночі|ранку|дня|вечора/,
            isPM: function (e) {
              return /^(дня|вечора)$/.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 4
                ? 'ночі'
                : e < 12
                ? 'ранку'
                : e < 17
                ? 'дня'
                : 'вечора';
            },
            dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'M':
                case 'd':
                case 'DDD':
                case 'w':
                case 'W':
                  return e + '-й';
                case 'D':
                  return e + '-го';
                default:
                  return e;
              }
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      13795: function (e, t, i) {
        !(function (e) {
          'use strict';
          var t = [
              'جنوری',
              'فروری',
              'مارچ',
              'اپریل',
              'مئی',
              'جون',
              'جولائی',
              'اگست',
              'ستمبر',
              'اکتوبر',
              'نومبر',
              'دسمبر',
            ],
            i = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
          e.defineLocale('ur', {
            months: t,
            monthsShort: t,
            weekdays: i,
            weekdaysShort: i,
            weekdaysMin: i,
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd، D MMMM YYYY HH:mm',
            },
            meridiemParse: /صبح|شام/,
            isPM: function (e) {
              return 'شام' === e;
            },
            meridiem: function (e, t, i) {
              return e < 12 ? 'صبح' : 'شام';
            },
            calendar: {
              sameDay: '[آج بوقت] LT',
              nextDay: '[کل بوقت] LT',
              nextWeek: 'dddd [بوقت] LT',
              lastDay: '[گذشتہ روز بوقت] LT',
              lastWeek: '[گذشتہ] dddd [بوقت] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s بعد',
              past: '%s قبل',
              s: 'چند سیکنڈ',
              ss: '%d سیکنڈ',
              m: 'ایک منٹ',
              mm: '%d منٹ',
              h: 'ایک گھنٹہ',
              hh: '%d گھنٹے',
              d: 'ایک دن',
              dd: '%d دن',
              M: 'ایک ماہ',
              MM: '%d ماہ',
              y: 'ایک سال',
              yy: '%d سال',
            },
            preparse: function (e) {
              return e.replace(/،/g, ',');
            },
            postformat: function (e) {
              return e.replace(/,/g, '،');
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      60588: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('uz-latn', {
            months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
              '_'
            ),
            monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split(
              '_'
            ),
            weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
              '_'
            ),
            weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
            weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'D MMMM YYYY, dddd HH:mm',
            },
            calendar: {
              sameDay: '[Bugun soat] LT [da]',
              nextDay: '[Ertaga] LT [da]',
              nextWeek: 'dddd [kuni soat] LT [da]',
              lastDay: '[Kecha soat] LT [da]',
              lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
              sameElse: 'L',
            },
            relativeTime: {
              future: 'Yaqin %s ichida',
              past: 'Bir necha %s oldin',
              s: 'soniya',
              ss: '%d soniya',
              m: 'bir daqiqa',
              mm: '%d daqiqa',
              h: 'bir soat',
              hh: '%d soat',
              d: 'bir kun',
              dd: '%d kun',
              M: 'bir oy',
              MM: '%d oy',
              y: 'bir yil',
              yy: '%d yil',
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      6791: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('uz', {
            months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
              '_'
            ),
            monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split(
              '_'
            ),
            weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split(
              '_'
            ),
            weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
            weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'D MMMM YYYY, dddd HH:mm',
            },
            calendar: {
              sameDay: '[Бугун соат] LT [да]',
              nextDay: '[Эртага] LT [да]',
              nextWeek: 'dddd [куни соат] LT [да]',
              lastDay: '[Кеча соат] LT [да]',
              lastWeek: '[Утган] dddd [куни соат] LT [да]',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'Якин %s ичида',
              past: 'Бир неча %s олдин',
              s: 'фурсат',
              ss: '%d фурсат',
              m: 'бир дакика',
              mm: '%d дакика',
              h: 'бир соат',
              hh: '%d соат',
              d: 'бир кун',
              dd: '%d кун',
              M: 'бир ой',
              MM: '%d ой',
              y: 'бир йил',
              yy: '%d йил',
            },
            week: { dow: 1, doy: 7 },
          });
        })(i(30381));
      },
      65666: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('vi', {
            months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(
              '_'
            ),
            monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
              '_'
            ),
            weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
            weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
            weekdaysParseExact: !0,
            meridiemParse: /sa|ch/i,
            isPM: function (e) {
              return /^ch$/i.test(e);
            },
            meridiem: function (e, t, i) {
              return e < 12 ? (i ? 'sa' : 'SA') : i ? 'ch' : 'CH';
            },
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM [năm] YYYY',
              LLL: 'D MMMM [năm] YYYY HH:mm',
              LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
              l: 'DD/M/YYYY',
              ll: 'D MMM YYYY',
              lll: 'D MMM YYYY HH:mm',
              llll: 'ddd, D MMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[Hôm nay lúc] LT',
              nextDay: '[Ngày mai lúc] LT',
              nextWeek: 'dddd [tuần tới lúc] LT',
              lastDay: '[Hôm qua lúc] LT',
              lastWeek: 'dddd [tuần trước lúc] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: '%s tới',
              past: '%s trước',
              s: 'vài giây',
              ss: '%d giây',
              m: 'một phút',
              mm: '%d phút',
              h: 'một giờ',
              hh: '%d giờ',
              d: 'một ngày',
              dd: '%d ngày',
              w: 'một tuần',
              ww: '%d tuần',
              M: 'một tháng',
              MM: '%d tháng',
              y: 'một năm',
              yy: '%d năm',
            },
            dayOfMonthOrdinalParse: /\d{1,2}/,
            ordinal: function (e) {
              return e;
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      14378: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('x-pseudo', {
            months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(
              '_'
            ),
            monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(
              '_'
            ),
            monthsParseExact: !0,
            weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
              '_'
            ),
            weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
            weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
            weekdaysParseExact: !0,
            longDateFormat: {
              LT: 'HH:mm',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY HH:mm',
              LLLL: 'dddd, D MMMM YYYY HH:mm',
            },
            calendar: {
              sameDay: '[T~ódá~ý át] LT',
              nextDay: '[T~ómó~rró~w át] LT',
              nextWeek: 'dddd [át] LT',
              lastDay: '[Ý~ést~érdá~ý át] LT',
              lastWeek: '[L~ást] dddd [át] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'í~ñ %s',
              past: '%s á~gó',
              s: 'á ~féw ~sécó~ñds',
              ss: '%d s~écóñ~ds',
              m: 'á ~míñ~úté',
              mm: '%d m~íñú~tés',
              h: 'á~ñ hó~úr',
              hh: '%d h~óúrs',
              d: 'á ~dáý',
              dd: '%d d~áýs',
              M: 'á ~móñ~th',
              MM: '%d m~óñt~hs',
              y: 'á ~ýéár',
              yy: '%d ý~éárs',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
            ordinal: function (e) {
              var t = e % 10;
              return (
                e +
                (1 == ~~((e % 100) / 10)
                  ? 'th'
                  : 1 === t
                  ? 'st'
                  : 2 === t
                  ? 'nd'
                  : 3 === t
                  ? 'rd'
                  : 'th')
              );
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      7198: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('yo', {
            months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
              '_'
            ),
            monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split(
              '_'
            ),
            weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
            weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
            weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
            longDateFormat: {
              LT: 'h:mm A',
              LTS: 'h:mm:ss A',
              L: 'DD/MM/YYYY',
              LL: 'D MMMM YYYY',
              LLL: 'D MMMM YYYY h:mm A',
              LLLL: 'dddd, D MMMM YYYY h:mm A',
            },
            calendar: {
              sameDay: '[Ònì ni] LT',
              nextDay: '[Ọ̀la ni] LT',
              nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
              lastDay: '[Àna ni] LT',
              lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
              sameElse: 'L',
            },
            relativeTime: {
              future: 'ní %s',
              past: '%s kọjá',
              s: 'ìsẹjú aayá die',
              ss: 'aayá %d',
              m: 'ìsẹjú kan',
              mm: 'ìsẹjú %d',
              h: 'wákati kan',
              hh: 'wákati %d',
              d: 'ọjọ́ kan',
              dd: 'ọjọ́ %d',
              M: 'osù kan',
              MM: 'osù %d',
              y: 'ọdún kan',
              yy: 'ọdún %d',
            },
            dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
            ordinal: 'ọjọ́ %d',
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      83839: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('zh-cn', {
            months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
              '_'
            ),
            monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
              '_'
            ),
            weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split(
              '_'
            ),
            weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
            weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY/MM/DD',
              LL: 'YYYY年M月D日',
              LLL: 'YYYY年M月D日Ah点mm分',
              LLLL: 'YYYY年M月D日ddddAh点mm分',
              l: 'YYYY/M/D',
              ll: 'YYYY年M月D日',
              lll: 'YYYY年M月D日 HH:mm',
              llll: 'YYYY年M月D日dddd HH:mm',
            },
            meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                '凌晨' === t || '早上' === t || '上午' === t
                  ? e
                  : '下午' === t || '晚上' === t
                  ? e + 12
                  : e >= 11
                  ? e
                  : e + 12
              );
            },
            meridiem: function (e, t, i) {
              var n = 100 * e + t;
              return n < 600
                ? '凌晨'
                : n < 900
                ? '早上'
                : n < 1130
                ? '上午'
                : n < 1230
                ? '中午'
                : n < 1800
                ? '下午'
                : '晚上';
            },
            calendar: {
              sameDay: '[今天]LT',
              nextDay: '[明天]LT',
              nextWeek: function (e) {
                return e.week() !== this.week() ? '[下]dddLT' : '[本]dddLT';
              },
              lastDay: '[昨天]LT',
              lastWeek: function (e) {
                return this.week() !== e.week() ? '[上]dddLT' : '[本]dddLT';
              },
              sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '日';
                case 'M':
                  return e + '月';
                case 'w':
                case 'W':
                  return e + '周';
                default:
                  return e;
              }
            },
            relativeTime: {
              future: '%s后',
              past: '%s前',
              s: '几秒',
              ss: '%d 秒',
              m: '1 分钟',
              mm: '%d 分钟',
              h: '1 小时',
              hh: '%d 小时',
              d: '1 天',
              dd: '%d 天',
              w: '1 周',
              ww: '%d 周',
              M: '1 个月',
              MM: '%d 个月',
              y: '1 年',
              yy: '%d 年',
            },
            week: { dow: 1, doy: 4 },
          });
        })(i(30381));
      },
      55726: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('zh-hk', {
            months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
              '_'
            ),
            monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
              '_'
            ),
            weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split(
              '_'
            ),
            weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
            weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY/MM/DD',
              LL: 'YYYY年M月D日',
              LLL: 'YYYY年M月D日 HH:mm',
              LLLL: 'YYYY年M月D日dddd HH:mm',
              l: 'YYYY/M/D',
              ll: 'YYYY年M月D日',
              lll: 'YYYY年M月D日 HH:mm',
              llll: 'YYYY年M月D日dddd HH:mm',
            },
            meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                '凌晨' === t || '早上' === t || '上午' === t
                  ? e
                  : '中午' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : '下午' === t || '晚上' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              var n = 100 * e + t;
              return n < 600
                ? '凌晨'
                : n < 900
                ? '早上'
                : n < 1200
                ? '上午'
                : 1200 === n
                ? '中午'
                : n < 1800
                ? '下午'
                : '晚上';
            },
            calendar: {
              sameDay: '[今天]LT',
              nextDay: '[明天]LT',
              nextWeek: '[下]ddddLT',
              lastDay: '[昨天]LT',
              lastWeek: '[上]ddddLT',
              sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '日';
                case 'M':
                  return e + '月';
                case 'w':
                case 'W':
                  return e + '週';
                default:
                  return e;
              }
            },
            relativeTime: {
              future: '%s後',
              past: '%s前',
              s: '幾秒',
              ss: '%d 秒',
              m: '1 分鐘',
              mm: '%d 分鐘',
              h: '1 小時',
              hh: '%d 小時',
              d: '1 天',
              dd: '%d 天',
              M: '1 個月',
              MM: '%d 個月',
              y: '1 年',
              yy: '%d 年',
            },
          });
        })(i(30381));
      },
      99807: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('zh-mo', {
            months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
              '_'
            ),
            monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
              '_'
            ),
            weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split(
              '_'
            ),
            weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
            weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'DD/MM/YYYY',
              LL: 'YYYY年M月D日',
              LLL: 'YYYY年M月D日 HH:mm',
              LLLL: 'YYYY年M月D日dddd HH:mm',
              l: 'D/M/YYYY',
              ll: 'YYYY年M月D日',
              lll: 'YYYY年M月D日 HH:mm',
              llll: 'YYYY年M月D日dddd HH:mm',
            },
            meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                '凌晨' === t || '早上' === t || '上午' === t
                  ? e
                  : '中午' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : '下午' === t || '晚上' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              var n = 100 * e + t;
              return n < 600
                ? '凌晨'
                : n < 900
                ? '早上'
                : n < 1130
                ? '上午'
                : n < 1230
                ? '中午'
                : n < 1800
                ? '下午'
                : '晚上';
            },
            calendar: {
              sameDay: '[今天] LT',
              nextDay: '[明天] LT',
              nextWeek: '[下]dddd LT',
              lastDay: '[昨天] LT',
              lastWeek: '[上]dddd LT',
              sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '日';
                case 'M':
                  return e + '月';
                case 'w':
                case 'W':
                  return e + '週';
                default:
                  return e;
              }
            },
            relativeTime: {
              future: '%s內',
              past: '%s前',
              s: '幾秒',
              ss: '%d 秒',
              m: '1 分鐘',
              mm: '%d 分鐘',
              h: '1 小時',
              hh: '%d 小時',
              d: '1 天',
              dd: '%d 天',
              M: '1 個月',
              MM: '%d 個月',
              y: '1 年',
              yy: '%d 年',
            },
          });
        })(i(30381));
      },
      74152: function (e, t, i) {
        !(function (e) {
          'use strict';
          e.defineLocale('zh-tw', {
            months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
              '_'
            ),
            monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
              '_'
            ),
            weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split(
              '_'
            ),
            weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
            weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
            longDateFormat: {
              LT: 'HH:mm',
              LTS: 'HH:mm:ss',
              L: 'YYYY/MM/DD',
              LL: 'YYYY年M月D日',
              LLL: 'YYYY年M月D日 HH:mm',
              LLLL: 'YYYY年M月D日dddd HH:mm',
              l: 'YYYY/M/D',
              ll: 'YYYY年M月D日',
              lll: 'YYYY年M月D日 HH:mm',
              llll: 'YYYY年M月D日dddd HH:mm',
            },
            meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
            meridiemHour: function (e, t) {
              return (
                12 === e && (e = 0),
                '凌晨' === t || '早上' === t || '上午' === t
                  ? e
                  : '中午' === t
                  ? e >= 11
                    ? e
                    : e + 12
                  : '下午' === t || '晚上' === t
                  ? e + 12
                  : void 0
              );
            },
            meridiem: function (e, t, i) {
              var n = 100 * e + t;
              return n < 600
                ? '凌晨'
                : n < 900
                ? '早上'
                : n < 1130
                ? '上午'
                : n < 1230
                ? '中午'
                : n < 1800
                ? '下午'
                : '晚上';
            },
            calendar: {
              sameDay: '[今天] LT',
              nextDay: '[明天] LT',
              nextWeek: '[下]dddd LT',
              lastDay: '[昨天] LT',
              lastWeek: '[上]dddd LT',
              sameElse: 'L',
            },
            dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
            ordinal: function (e, t) {
              switch (t) {
                case 'd':
                case 'D':
                case 'DDD':
                  return e + '日';
                case 'M':
                  return e + '月';
                case 'w':
                case 'W':
                  return e + '週';
                default:
                  return e;
              }
            },
            relativeTime: {
              future: '%s後',
              past: '%s前',
              s: '幾秒',
              ss: '%d 秒',
              m: '1 分鐘',
              mm: '%d 分鐘',
              h: '1 小時',
              hh: '%d 小時',
              d: '1 天',
              dd: '%d 天',
              M: '1 個月',
              MM: '%d 個月',
              y: '1 年',
              yy: '%d 年',
            },
          });
        })(i(30381));
      },
      46700: (e, t, i) => {
        var n = {
          './af': 42786,
          './af.js': 42786,
          './ar': 30867,
          './ar-dz': 14130,
          './ar-dz.js': 14130,
          './ar-kw': 96135,
          './ar-kw.js': 96135,
          './ar-ly': 56440,
          './ar-ly.js': 56440,
          './ar-ma': 47702,
          './ar-ma.js': 47702,
          './ar-sa': 16040,
          './ar-sa.js': 16040,
          './ar-tn': 37100,
          './ar-tn.js': 37100,
          './ar.js': 30867,
          './az': 31083,
          './az.js': 31083,
          './be': 9808,
          './be.js': 9808,
          './bg': 68338,
          './bg.js': 68338,
          './bm': 67438,
          './bm.js': 67438,
          './bn': 8905,
          './bn-bd': 76225,
          './bn-bd.js': 76225,
          './bn.js': 8905,
          './bo': 11560,
          './bo.js': 11560,
          './br': 1278,
          './br.js': 1278,
          './bs': 80622,
          './bs.js': 80622,
          './ca': 2468,
          './ca.js': 2468,
          './cs': 5822,
          './cs.js': 5822,
          './cv': 50877,
          './cv.js': 50877,
          './cy': 47373,
          './cy.js': 47373,
          './da': 24780,
          './da.js': 24780,
          './de': 59740,
          './de-at': 60217,
          './de-at.js': 60217,
          './de-ch': 60894,
          './de-ch.js': 60894,
          './de.js': 59740,
          './dv': 5300,
          './dv.js': 5300,
          './el': 50837,
          './el.js': 50837,
          './en-au': 78348,
          './en-au.js': 78348,
          './en-ca': 77925,
          './en-ca.js': 77925,
          './en-gb': 22243,
          './en-gb.js': 22243,
          './en-ie': 46436,
          './en-ie.js': 46436,
          './en-il': 47207,
          './en-il.js': 47207,
          './en-in': 44175,
          './en-in.js': 44175,
          './en-nz': 76319,
          './en-nz.js': 76319,
          './en-sg': 31662,
          './en-sg.js': 31662,
          './eo': 92915,
          './eo.js': 92915,
          './es': 55655,
          './es-do': 55251,
          './es-do.js': 55251,
          './es-mx': 96112,
          './es-mx.js': 96112,
          './es-us': 71146,
          './es-us.js': 71146,
          './es.js': 55655,
          './et': 5603,
          './et.js': 5603,
          './eu': 77763,
          './eu.js': 77763,
          './fa': 76959,
          './fa.js': 76959,
          './fi': 11897,
          './fi.js': 11897,
          './fil': 42549,
          './fil.js': 42549,
          './fo': 94694,
          './fo.js': 94694,
          './fr': 94470,
          './fr-ca': 63049,
          './fr-ca.js': 63049,
          './fr-ch': 52330,
          './fr-ch.js': 52330,
          './fr.js': 94470,
          './fy': 5044,
          './fy.js': 5044,
          './ga': 29295,
          './ga.js': 29295,
          './gd': 2101,
          './gd.js': 2101,
          './gl': 38794,
          './gl.js': 38794,
          './gom-deva': 27884,
          './gom-deva.js': 27884,
          './gom-latn': 23168,
          './gom-latn.js': 23168,
          './gu': 95349,
          './gu.js': 95349,
          './he': 24206,
          './he.js': 24206,
          './hi': 30094,
          './hi.js': 30094,
          './hr': 30316,
          './hr.js': 30316,
          './hu': 22138,
          './hu.js': 22138,
          './hy-am': 11423,
          './hy-am.js': 11423,
          './id': 29218,
          './id.js': 29218,
          './is': 90135,
          './is.js': 90135,
          './it': 90626,
          './it-ch': 10150,
          './it-ch.js': 10150,
          './it.js': 90626,
          './ja': 39183,
          './ja.js': 39183,
          './jv': 24286,
          './jv.js': 24286,
          './ka': 12105,
          './ka.js': 12105,
          './kk': 47772,
          './kk.js': 47772,
          './km': 18758,
          './km.js': 18758,
          './kn': 79282,
          './kn.js': 79282,
          './ko': 33730,
          './ko.js': 33730,
          './ku': 1408,
          './ku.js': 1408,
          './ky': 33291,
          './ky.js': 33291,
          './lb': 36841,
          './lb.js': 36841,
          './lo': 55466,
          './lo.js': 55466,
          './lt': 57010,
          './lt.js': 57010,
          './lv': 37595,
          './lv.js': 37595,
          './me': 39861,
          './me.js': 39861,
          './mi': 35493,
          './mi.js': 35493,
          './mk': 95966,
          './mk.js': 95966,
          './ml': 87341,
          './ml.js': 87341,
          './mn': 5115,
          './mn.js': 5115,
          './mr': 10370,
          './mr.js': 10370,
          './ms': 9847,
          './ms-my': 41237,
          './ms-my.js': 41237,
          './ms.js': 9847,
          './mt': 72126,
          './mt.js': 72126,
          './my': 56165,
          './my.js': 56165,
          './nb': 64924,
          './nb.js': 64924,
          './ne': 16744,
          './ne.js': 16744,
          './nl': 93901,
          './nl-be': 59814,
          './nl-be.js': 59814,
          './nl.js': 93901,
          './nn': 83877,
          './nn.js': 83877,
          './oc-lnc': 92135,
          './oc-lnc.js': 92135,
          './pa-in': 15858,
          './pa-in.js': 15858,
          './pl': 64495,
          './pl.js': 64495,
          './pt': 89520,
          './pt-br': 57971,
          './pt-br.js': 57971,
          './pt.js': 89520,
          './ro': 96459,
          './ro.js': 96459,
          './ru': 21793,
          './ru.js': 21793,
          './sd': 40950,
          './sd.js': 40950,
          './se': 10490,
          './se.js': 10490,
          './si': 90124,
          './si.js': 90124,
          './sk': 64249,
          './sk.js': 64249,
          './sl': 14985,
          './sl.js': 14985,
          './sq': 51104,
          './sq.js': 51104,
          './sr': 49131,
          './sr-cyrl': 79915,
          './sr-cyrl.js': 79915,
          './sr.js': 49131,
          './ss': 85893,
          './ss.js': 85893,
          './sv': 98760,
          './sv.js': 98760,
          './sw': 91172,
          './sw.js': 91172,
          './ta': 27333,
          './ta.js': 27333,
          './te': 23110,
          './te.js': 23110,
          './tet': 52095,
          './tet.js': 52095,
          './tg': 27321,
          './tg.js': 27321,
          './th': 9041,
          './th.js': 9041,
          './tk': 19005,
          './tk.js': 19005,
          './tl-ph': 75768,
          './tl-ph.js': 75768,
          './tlh': 89444,
          './tlh.js': 89444,
          './tr': 72397,
          './tr.js': 72397,
          './tzl': 28254,
          './tzl.js': 28254,
          './tzm': 51106,
          './tzm-latn': 30699,
          './tzm-latn.js': 30699,
          './tzm.js': 51106,
          './ug-cn': 9288,
          './ug-cn.js': 9288,
          './uk': 67691,
          './uk.js': 67691,
          './ur': 13795,
          './ur.js': 13795,
          './uz': 6791,
          './uz-latn': 60588,
          './uz-latn.js': 60588,
          './uz.js': 6791,
          './vi': 65666,
          './vi.js': 65666,
          './x-pseudo': 14378,
          './x-pseudo.js': 14378,
          './yo': 7198,
          './yo.js': 7198,
          './zh-cn': 83839,
          './zh-cn.js': 83839,
          './zh-hk': 55726,
          './zh-hk.js': 55726,
          './zh-mo': 99807,
          './zh-mo.js': 99807,
          './zh-tw': 74152,
          './zh-tw.js': 74152,
        };
        function r(e) {
          var t = s(e);
          return i(t);
        }
        function s(e) {
          if (!i.o(n, e)) {
            var t = new Error("Cannot find module '" + e + "'");
            throw ((t.code = 'MODULE_NOT_FOUND'), t);
          }
          return n[e];
        }
        (r.keys = function () {
          return Object.keys(n);
        }),
          (r.resolve = s),
          (e.exports = r),
          (r.id = 46700);
      },
      30381: function (e, t, i) {
        (e = i.nmd(e)).exports = (function () {
          'use strict';
          var t, n;
          function r() {
            return t.apply(null, arguments);
          }
          function s(e) {
            return (
              e instanceof Array ||
              '[object Array]' === Object.prototype.toString.call(e)
            );
          }
          function o(e) {
            return (
              null != e &&
              '[object Object]' === Object.prototype.toString.call(e)
            );
          }
          function a(e, t) {
            return Object.prototype.hasOwnProperty.call(e, t);
          }
          function l(e) {
            if (Object.getOwnPropertyNames)
              return 0 === Object.getOwnPropertyNames(e).length;
            var t;
            for (t in e) if (a(e, t)) return !1;
            return !0;
          }
          function c(e) {
            return void 0 === e;
          }
          function d(e) {
            return (
              'number' == typeof e ||
              '[object Number]' === Object.prototype.toString.call(e)
            );
          }
          function h(e) {
            return (
              e instanceof Date ||
              '[object Date]' === Object.prototype.toString.call(e)
            );
          }
          function u(e, t) {
            var i,
              n = [];
            for (i = 0; i < e.length; ++i) n.push(t(e[i], i));
            return n;
          }
          function g(e, t) {
            for (var i in t) a(t, i) && (e[i] = t[i]);
            return (
              a(t, 'toString') && (e.toString = t.toString),
              a(t, 'valueOf') && (e.valueOf = t.valueOf),
              e
            );
          }
          function f(e, t, i, n) {
            return xt(e, t, i, n, !0).utc();
          }
          function p(e) {
            return (
              null == e._pf &&
                (e._pf = {
                  empty: !1,
                  unusedTokens: [],
                  unusedInput: [],
                  overflow: -2,
                  charsLeftOver: 0,
                  nullInput: !1,
                  invalidEra: null,
                  invalidMonth: null,
                  invalidFormat: !1,
                  userInvalidated: !1,
                  iso: !1,
                  parsedDateParts: [],
                  era: null,
                  meridiem: null,
                  rfc2822: !1,
                  weekdayMismatch: !1,
                }),
              e._pf
            );
          }
          function m(e) {
            if (null == e._isValid) {
              var t = p(e),
                i = n.call(t.parsedDateParts, function (e) {
                  return null != e;
                }),
                r =
                  !isNaN(e._d.getTime()) &&
                  t.overflow < 0 &&
                  !t.empty &&
                  !t.invalidEra &&
                  !t.invalidMonth &&
                  !t.invalidWeekday &&
                  !t.weekdayMismatch &&
                  !t.nullInput &&
                  !t.invalidFormat &&
                  !t.userInvalidated &&
                  (!t.meridiem || (t.meridiem && i));
              if (
                (e._strict &&
                  (r =
                    r &&
                    0 === t.charsLeftOver &&
                    0 === t.unusedTokens.length &&
                    void 0 === t.bigHour),
                null != Object.isFrozen && Object.isFrozen(e))
              )
                return r;
              e._isValid = r;
            }
            return e._isValid;
          }
          function _(e) {
            var t = f(NaN);
            return null != e ? g(p(t), e) : (p(t).userInvalidated = !0), t;
          }
          n = Array.prototype.some
            ? Array.prototype.some
            : function (e) {
                var t,
                  i = Object(this),
                  n = i.length >>> 0;
                for (t = 0; t < n; t++)
                  if (t in i && e.call(this, i[t], t, i)) return !0;
                return !1;
              };
          var b = (r.momentProperties = []),
            v = !1;
          function y(e, t) {
            var i, n, r;
            if (
              (c(t._isAMomentObject) ||
                (e._isAMomentObject = t._isAMomentObject),
              c(t._i) || (e._i = t._i),
              c(t._f) || (e._f = t._f),
              c(t._l) || (e._l = t._l),
              c(t._strict) || (e._strict = t._strict),
              c(t._tzm) || (e._tzm = t._tzm),
              c(t._isUTC) || (e._isUTC = t._isUTC),
              c(t._offset) || (e._offset = t._offset),
              c(t._pf) || (e._pf = p(t)),
              c(t._locale) || (e._locale = t._locale),
              b.length > 0)
            )
              for (i = 0; i < b.length; i++)
                c((r = t[(n = b[i])])) || (e[n] = r);
            return e;
          }
          function w(e) {
            y(this, e),
              (this._d = new Date(null != e._d ? e._d.getTime() : NaN)),
              this.isValid() || (this._d = new Date(NaN)),
              !1 === v && ((v = !0), r.updateOffset(this), (v = !1));
          }
          function C(e) {
            return e instanceof w || (null != e && null != e._isAMomentObject);
          }
          function S(e) {
            !1 === r.suppressDeprecationWarnings &&
              'undefined' != typeof console &&
              console.warn &&
              console.warn('Deprecation warning: ' + e);
          }
          function k(e, t) {
            var i = !0;
            return g(function () {
              if (
                (null != r.deprecationHandler && r.deprecationHandler(null, e),
                i)
              ) {
                var n,
                  s,
                  o,
                  l = [];
                for (s = 0; s < arguments.length; s++) {
                  if (((n = ''), 'object' == typeof arguments[s])) {
                    for (o in ((n += '\n[' + s + '] '), arguments[0]))
                      a(arguments[0], o) &&
                        (n += o + ': ' + arguments[0][o] + ', ');
                    n = n.slice(0, -2);
                  } else n = arguments[s];
                  l.push(n);
                }
                S(
                  e +
                    '\nArguments: ' +
                    Array.prototype.slice.call(l).join('') +
                    '\n' +
                    new Error().stack
                ),
                  (i = !1);
              }
              return t.apply(this, arguments);
            }, t);
          }
          var x,
            L = {};
          function M(e, t) {
            null != r.deprecationHandler && r.deprecationHandler(e, t),
              L[e] || (S(t), (L[e] = !0));
          }
          function D(e) {
            return (
              ('undefined' != typeof Function && e instanceof Function) ||
              '[object Function]' === Object.prototype.toString.call(e)
            );
          }
          function N(e, t) {
            var i,
              n = g({}, e);
            for (i in t)
              a(t, i) &&
                (o(e[i]) && o(t[i])
                  ? ((n[i] = {}), g(n[i], e[i]), g(n[i], t[i]))
                  : null != t[i]
                  ? (n[i] = t[i])
                  : delete n[i]);
            for (i in e) a(e, i) && !a(t, i) && o(e[i]) && (n[i] = g({}, n[i]));
            return n;
          }
          function E(e) {
            null != e && this.set(e);
          }
          (r.suppressDeprecationWarnings = !1),
            (r.deprecationHandler = null),
            (x = Object.keys
              ? Object.keys
              : function (e) {
                  var t,
                    i = [];
                  for (t in e) a(e, t) && i.push(t);
                  return i;
                });
          function T(e, t, i) {
            var n = '' + Math.abs(e),
              r = t - n.length;
            return (
              (e >= 0 ? (i ? '+' : '') : '-') +
              Math.pow(10, Math.max(0, r)).toString().substr(1) +
              n
            );
          }
          var I = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
            O = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
            A = {},
            R = {};
          function P(e, t, i, n) {
            var r = n;
            'string' == typeof n &&
              (r = function () {
                return this[n]();
              }),
              e && (R[e] = r),
              t &&
                (R[t[0]] = function () {
                  return T(r.apply(this, arguments), t[1], t[2]);
                }),
              i &&
                (R[i] = function () {
                  return this.localeData().ordinal(r.apply(this, arguments), e);
                });
          }
          function F(e, t) {
            return e.isValid()
              ? ((t = B(t, e.localeData())),
                (A[t] =
                  A[t] ||
                  (function (e) {
                    var t,
                      i,
                      n,
                      r = e.match(I);
                    for (t = 0, i = r.length; t < i; t++)
                      R[r[t]]
                        ? (r[t] = R[r[t]])
                        : (r[t] = (n = r[t]).match(/\[[\s\S]/)
                            ? n.replace(/^\[|\]$/g, '')
                            : n.replace(/\\/g, ''));
                    return function (t) {
                      var n,
                        s = '';
                      for (n = 0; n < i; n++)
                        s += D(r[n]) ? r[n].call(t, e) : r[n];
                      return s;
                    };
                  })(t)),
                A[t](e))
              : e.localeData().invalidDate();
          }
          function B(e, t) {
            var i = 5;
            function n(e) {
              return t.longDateFormat(e) || e;
            }
            for (O.lastIndex = 0; i >= 0 && O.test(e); )
              (e = e.replace(O, n)), (O.lastIndex = 0), (i -= 1);
            return e;
          }
          var W = {};
          function Y(e, t) {
            var i = e.toLowerCase();
            W[i] = W[i + 's'] = W[t] = e;
          }
          function H(e) {
            return 'string' == typeof e ? W[e] || W[e.toLowerCase()] : void 0;
          }
          function j(e) {
            var t,
              i,
              n = {};
            for (i in e) a(e, i) && (t = H(i)) && (n[t] = e[i]);
            return n;
          }
          var V = {};
          function z(e, t) {
            V[e] = t;
          }
          function U(e) {
            return (e % 4 == 0 && e % 100 != 0) || e % 400 == 0;
          }
          function $(e) {
            return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
          }
          function K(e) {
            var t = +e,
              i = 0;
            return 0 !== t && isFinite(t) && (i = $(t)), i;
          }
          function q(e, t) {
            return function (i) {
              return null != i
                ? (Z(this, e, i), r.updateOffset(this, t), this)
                : G(this, e);
            };
          }
          function G(e, t) {
            return e.isValid()
              ? e._d['get' + (e._isUTC ? 'UTC' : '') + t]()
              : NaN;
          }
          function Z(e, t, i) {
            e.isValid() &&
              !isNaN(i) &&
              ('FullYear' === t &&
              U(e.year()) &&
              1 === e.month() &&
              29 === e.date()
                ? ((i = K(i)),
                  e._d['set' + (e._isUTC ? 'UTC' : '') + t](
                    i,
                    e.month(),
                    Ce(i, e.month())
                  ))
                : e._d['set' + (e._isUTC ? 'UTC' : '') + t](i));
          }
          var J,
            Q = /\d/,
            X = /\d\d/,
            ee = /\d{3}/,
            te = /\d{4}/,
            ie = /[+-]?\d{6}/,
            ne = /\d\d?/,
            re = /\d\d\d\d?/,
            se = /\d\d\d\d\d\d?/,
            oe = /\d{1,3}/,
            ae = /\d{1,4}/,
            le = /[+-]?\d{1,6}/,
            ce = /\d+/,
            de = /[+-]?\d+/,
            he = /Z|[+-]\d\d:?\d\d/gi,
            ue = /Z|[+-]\d\d(?::?\d\d)?/gi,
            ge = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
          function fe(e, t, i) {
            J[e] = D(t)
              ? t
              : function (e, n) {
                  return e && i ? i : t;
                };
          }
          function pe(e, t) {
            return a(J, e)
              ? J[e](t._strict, t._locale)
              : new RegExp(
                  me(
                    e
                      .replace('\\', '')
                      .replace(
                        /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
                        function (e, t, i, n, r) {
                          return t || i || n || r;
                        }
                      )
                  )
                );
          }
          function me(e) {
            return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
          }
          J = {};
          var _e = {};
          function be(e, t) {
            var i,
              n = t;
            for (
              'string' == typeof e && (e = [e]),
                d(t) &&
                  (n = function (e, i) {
                    i[t] = K(e);
                  }),
                i = 0;
              i < e.length;
              i++
            )
              _e[e[i]] = n;
          }
          function ve(e, t) {
            be(e, function (e, i, n, r) {
              (n._w = n._w || {}), t(e, n._w, n, r);
            });
          }
          function ye(e, t, i) {
            null != t && a(_e, e) && _e[e](t, i._a, i, e);
          }
          var we;
          function Ce(e, t) {
            if (isNaN(e) || isNaN(t)) return NaN;
            var i,
              n = ((t % (i = 12)) + i) % i;
            return (
              (e += (t - n) / 12),
              1 === n ? (U(e) ? 29 : 28) : 31 - ((n % 7) % 2)
            );
          }
          (we = Array.prototype.indexOf
            ? Array.prototype.indexOf
            : function (e) {
                var t;
                for (t = 0; t < this.length; ++t) if (this[t] === e) return t;
                return -1;
              }),
            P('M', ['MM', 2], 'Mo', function () {
              return this.month() + 1;
            }),
            P('MMM', 0, 0, function (e) {
              return this.localeData().monthsShort(this, e);
            }),
            P('MMMM', 0, 0, function (e) {
              return this.localeData().months(this, e);
            }),
            Y('month', 'M'),
            z('month', 8),
            fe('M', ne),
            fe('MM', ne, X),
            fe('MMM', function (e, t) {
              return t.monthsShortRegex(e);
            }),
            fe('MMMM', function (e, t) {
              return t.monthsRegex(e);
            }),
            be(['M', 'MM'], function (e, t) {
              t[1] = K(e) - 1;
            }),
            be(['MMM', 'MMMM'], function (e, t, i, n) {
              var r = i._locale.monthsParse(e, n, i._strict);
              null != r ? (t[1] = r) : (p(i).invalidMonth = e);
            });
          var Se = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
              '_'
            ),
            ke = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
            xe = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
            Le = ge,
            Me = ge;
          function De(e, t, i) {
            var n,
              r,
              s,
              o = e.toLocaleLowerCase();
            if (!this._monthsParse)
              for (
                this._monthsParse = [],
                  this._longMonthsParse = [],
                  this._shortMonthsParse = [],
                  n = 0;
                n < 12;
                ++n
              )
                (s = f([2e3, n])),
                  (this._shortMonthsParse[n] = this.monthsShort(
                    s,
                    ''
                  ).toLocaleLowerCase()),
                  (this._longMonthsParse[n] = this.months(
                    s,
                    ''
                  ).toLocaleLowerCase());
            return i
              ? 'MMM' === t
                ? -1 !== (r = we.call(this._shortMonthsParse, o))
                  ? r
                  : null
                : -1 !== (r = we.call(this._longMonthsParse, o))
                ? r
                : null
              : 'MMM' === t
              ? -1 !== (r = we.call(this._shortMonthsParse, o)) ||
                -1 !== (r = we.call(this._longMonthsParse, o))
                ? r
                : null
              : -1 !== (r = we.call(this._longMonthsParse, o)) ||
                -1 !== (r = we.call(this._shortMonthsParse, o))
              ? r
              : null;
          }
          function Ne(e, t) {
            var i;
            if (!e.isValid()) return e;
            if ('string' == typeof t)
              if (/^\d+$/.test(t)) t = K(t);
              else if (!d((t = e.localeData().monthsParse(t)))) return e;
            return (
              (i = Math.min(e.date(), Ce(e.year(), t))),
              e._d['set' + (e._isUTC ? 'UTC' : '') + 'Month'](t, i),
              e
            );
          }
          function Ee(e) {
            return null != e
              ? (Ne(this, e), r.updateOffset(this, !0), this)
              : G(this, 'Month');
          }
          function Te() {
            function e(e, t) {
              return t.length - e.length;
            }
            var t,
              i,
              n = [],
              r = [],
              s = [];
            for (t = 0; t < 12; t++)
              (i = f([2e3, t])),
                n.push(this.monthsShort(i, '')),
                r.push(this.months(i, '')),
                s.push(this.months(i, '')),
                s.push(this.monthsShort(i, ''));
            for (n.sort(e), r.sort(e), s.sort(e), t = 0; t < 12; t++)
              (n[t] = me(n[t])), (r[t] = me(r[t]));
            for (t = 0; t < 24; t++) s[t] = me(s[t]);
            (this._monthsRegex = new RegExp('^(' + s.join('|') + ')', 'i')),
              (this._monthsShortRegex = this._monthsRegex),
              (this._monthsStrictRegex = new RegExp(
                '^(' + r.join('|') + ')',
                'i'
              )),
              (this._monthsShortStrictRegex = new RegExp(
                '^(' + n.join('|') + ')',
                'i'
              ));
          }
          function Ie(e) {
            return U(e) ? 366 : 365;
          }
          P('Y', 0, 0, function () {
            var e = this.year();
            return e <= 9999 ? T(e, 4) : '+' + e;
          }),
            P(0, ['YY', 2], 0, function () {
              return this.year() % 100;
            }),
            P(0, ['YYYY', 4], 0, 'year'),
            P(0, ['YYYYY', 5], 0, 'year'),
            P(0, ['YYYYYY', 6, !0], 0, 'year'),
            Y('year', 'y'),
            z('year', 1),
            fe('Y', de),
            fe('YY', ne, X),
            fe('YYYY', ae, te),
            fe('YYYYY', le, ie),
            fe('YYYYYY', le, ie),
            be(['YYYYY', 'YYYYYY'], 0),
            be('YYYY', function (e, t) {
              t[0] = 2 === e.length ? r.parseTwoDigitYear(e) : K(e);
            }),
            be('YY', function (e, t) {
              t[0] = r.parseTwoDigitYear(e);
            }),
            be('Y', function (e, t) {
              t[0] = parseInt(e, 10);
            }),
            (r.parseTwoDigitYear = function (e) {
              return K(e) + (K(e) > 68 ? 1900 : 2e3);
            });
          var Oe = q('FullYear', !0);
          function Ae(e, t, i, n, r, s, o) {
            var a;
            return (
              e < 100 && e >= 0
                ? ((a = new Date(e + 400, t, i, n, r, s, o)),
                  isFinite(a.getFullYear()) && a.setFullYear(e))
                : (a = new Date(e, t, i, n, r, s, o)),
              a
            );
          }
          function Re(e) {
            var t, i;
            return (
              e < 100 && e >= 0
                ? (((i = Array.prototype.slice.call(arguments))[0] = e + 400),
                  (t = new Date(Date.UTC.apply(null, i))),
                  isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e))
                : (t = new Date(Date.UTC.apply(null, arguments))),
              t
            );
          }
          function Pe(e, t, i) {
            var n = 7 + t - i;
            return (-(7 + Re(e, 0, n).getUTCDay() - t) % 7) + n - 1;
          }
          function Fe(e, t, i, n, r) {
            var s,
              o,
              a = 1 + 7 * (t - 1) + ((7 + i - n) % 7) + Pe(e, n, r);
            return (
              a <= 0
                ? (o = Ie((s = e - 1)) + a)
                : a > Ie(e)
                ? ((s = e + 1), (o = a - Ie(e)))
                : ((s = e), (o = a)),
              { year: s, dayOfYear: o }
            );
          }
          function Be(e, t, i) {
            var n,
              r,
              s = Pe(e.year(), t, i),
              o = Math.floor((e.dayOfYear() - s - 1) / 7) + 1;
            return (
              o < 1
                ? (n = o + We((r = e.year() - 1), t, i))
                : o > We(e.year(), t, i)
                ? ((n = o - We(e.year(), t, i)), (r = e.year() + 1))
                : ((r = e.year()), (n = o)),
              { week: n, year: r }
            );
          }
          function We(e, t, i) {
            var n = Pe(e, t, i),
              r = Pe(e + 1, t, i);
            return (Ie(e) - n + r) / 7;
          }
          P('w', ['ww', 2], 'wo', 'week'),
            P('W', ['WW', 2], 'Wo', 'isoWeek'),
            Y('week', 'w'),
            Y('isoWeek', 'W'),
            z('week', 5),
            z('isoWeek', 5),
            fe('w', ne),
            fe('ww', ne, X),
            fe('W', ne),
            fe('WW', ne, X),
            ve(['w', 'ww', 'W', 'WW'], function (e, t, i, n) {
              t[n.substr(0, 1)] = K(e);
            });
          function Ye(e, t) {
            return e.slice(t, 7).concat(e.slice(0, t));
          }
          P('d', 0, 'do', 'day'),
            P('dd', 0, 0, function (e) {
              return this.localeData().weekdaysMin(this, e);
            }),
            P('ddd', 0, 0, function (e) {
              return this.localeData().weekdaysShort(this, e);
            }),
            P('dddd', 0, 0, function (e) {
              return this.localeData().weekdays(this, e);
            }),
            P('e', 0, 0, 'weekday'),
            P('E', 0, 0, 'isoWeekday'),
            Y('day', 'd'),
            Y('weekday', 'e'),
            Y('isoWeekday', 'E'),
            z('day', 11),
            z('weekday', 11),
            z('isoWeekday', 11),
            fe('d', ne),
            fe('e', ne),
            fe('E', ne),
            fe('dd', function (e, t) {
              return t.weekdaysMinRegex(e);
            }),
            fe('ddd', function (e, t) {
              return t.weekdaysShortRegex(e);
            }),
            fe('dddd', function (e, t) {
              return t.weekdaysRegex(e);
            }),
            ve(['dd', 'ddd', 'dddd'], function (e, t, i, n) {
              var r = i._locale.weekdaysParse(e, n, i._strict);
              null != r ? (t.d = r) : (p(i).invalidWeekday = e);
            }),
            ve(['d', 'e', 'E'], function (e, t, i, n) {
              t[n] = K(e);
            });
          var He = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
              '_'
            ),
            je = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
            Ve = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
            ze = ge,
            Ue = ge,
            $e = ge;
          function Ke(e, t, i) {
            var n,
              r,
              s,
              o = e.toLocaleLowerCase();
            if (!this._weekdaysParse)
              for (
                this._weekdaysParse = [],
                  this._shortWeekdaysParse = [],
                  this._minWeekdaysParse = [],
                  n = 0;
                n < 7;
                ++n
              )
                (s = f([2e3, 1]).day(n)),
                  (this._minWeekdaysParse[n] = this.weekdaysMin(
                    s,
                    ''
                  ).toLocaleLowerCase()),
                  (this._shortWeekdaysParse[n] = this.weekdaysShort(
                    s,
                    ''
                  ).toLocaleLowerCase()),
                  (this._weekdaysParse[n] = this.weekdays(
                    s,
                    ''
                  ).toLocaleLowerCase());
            return i
              ? 'dddd' === t
                ? -1 !== (r = we.call(this._weekdaysParse, o))
                  ? r
                  : null
                : 'ddd' === t
                ? -1 !== (r = we.call(this._shortWeekdaysParse, o))
                  ? r
                  : null
                : -1 !== (r = we.call(this._minWeekdaysParse, o))
                ? r
                : null
              : 'dddd' === t
              ? -1 !== (r = we.call(this._weekdaysParse, o)) ||
                -1 !== (r = we.call(this._shortWeekdaysParse, o)) ||
                -1 !== (r = we.call(this._minWeekdaysParse, o))
                ? r
                : null
              : 'ddd' === t
              ? -1 !== (r = we.call(this._shortWeekdaysParse, o)) ||
                -1 !== (r = we.call(this._weekdaysParse, o)) ||
                -1 !== (r = we.call(this._minWeekdaysParse, o))
                ? r
                : null
              : -1 !== (r = we.call(this._minWeekdaysParse, o)) ||
                -1 !== (r = we.call(this._weekdaysParse, o)) ||
                -1 !== (r = we.call(this._shortWeekdaysParse, o))
              ? r
              : null;
          }
          function qe() {
            function e(e, t) {
              return t.length - e.length;
            }
            var t,
              i,
              n,
              r,
              s,
              o = [],
              a = [],
              l = [],
              c = [];
            for (t = 0; t < 7; t++)
              (i = f([2e3, 1]).day(t)),
                (n = me(this.weekdaysMin(i, ''))),
                (r = me(this.weekdaysShort(i, ''))),
                (s = me(this.weekdays(i, ''))),
                o.push(n),
                a.push(r),
                l.push(s),
                c.push(n),
                c.push(r),
                c.push(s);
            o.sort(e),
              a.sort(e),
              l.sort(e),
              c.sort(e),
              (this._weekdaysRegex = new RegExp('^(' + c.join('|') + ')', 'i')),
              (this._weekdaysShortRegex = this._weekdaysRegex),
              (this._weekdaysMinRegex = this._weekdaysRegex),
              (this._weekdaysStrictRegex = new RegExp(
                '^(' + l.join('|') + ')',
                'i'
              )),
              (this._weekdaysShortStrictRegex = new RegExp(
                '^(' + a.join('|') + ')',
                'i'
              )),
              (this._weekdaysMinStrictRegex = new RegExp(
                '^(' + o.join('|') + ')',
                'i'
              ));
          }
          function Ge() {
            return this.hours() % 12 || 12;
          }
          function Ze(e, t) {
            P(e, 0, 0, function () {
              return this.localeData().meridiem(
                this.hours(),
                this.minutes(),
                t
              );
            });
          }
          function Je(e, t) {
            return t._meridiemParse;
          }
          P('H', ['HH', 2], 0, 'hour'),
            P('h', ['hh', 2], 0, Ge),
            P('k', ['kk', 2], 0, function () {
              return this.hours() || 24;
            }),
            P('hmm', 0, 0, function () {
              return '' + Ge.apply(this) + T(this.minutes(), 2);
            }),
            P('hmmss', 0, 0, function () {
              return (
                '' +
                Ge.apply(this) +
                T(this.minutes(), 2) +
                T(this.seconds(), 2)
              );
            }),
            P('Hmm', 0, 0, function () {
              return '' + this.hours() + T(this.minutes(), 2);
            }),
            P('Hmmss', 0, 0, function () {
              return (
                '' + this.hours() + T(this.minutes(), 2) + T(this.seconds(), 2)
              );
            }),
            Ze('a', !0),
            Ze('A', !1),
            Y('hour', 'h'),
            z('hour', 13),
            fe('a', Je),
            fe('A', Je),
            fe('H', ne),
            fe('h', ne),
            fe('k', ne),
            fe('HH', ne, X),
            fe('hh', ne, X),
            fe('kk', ne, X),
            fe('hmm', re),
            fe('hmmss', se),
            fe('Hmm', re),
            fe('Hmmss', se),
            be(['H', 'HH'], 3),
            be(['k', 'kk'], function (e, t, i) {
              var n = K(e);
              t[3] = 24 === n ? 0 : n;
            }),
            be(['a', 'A'], function (e, t, i) {
              (i._isPm = i._locale.isPM(e)), (i._meridiem = e);
            }),
            be(['h', 'hh'], function (e, t, i) {
              (t[3] = K(e)), (p(i).bigHour = !0);
            }),
            be('hmm', function (e, t, i) {
              var n = e.length - 2;
              (t[3] = K(e.substr(0, n))),
                (t[4] = K(e.substr(n))),
                (p(i).bigHour = !0);
            }),
            be('hmmss', function (e, t, i) {
              var n = e.length - 4,
                r = e.length - 2;
              (t[3] = K(e.substr(0, n))),
                (t[4] = K(e.substr(n, 2))),
                (t[5] = K(e.substr(r))),
                (p(i).bigHour = !0);
            }),
            be('Hmm', function (e, t, i) {
              var n = e.length - 2;
              (t[3] = K(e.substr(0, n))), (t[4] = K(e.substr(n)));
            }),
            be('Hmmss', function (e, t, i) {
              var n = e.length - 4,
                r = e.length - 2;
              (t[3] = K(e.substr(0, n))),
                (t[4] = K(e.substr(n, 2))),
                (t[5] = K(e.substr(r)));
            });
          var Qe = q('Hours', !0);
          var Xe,
            et = {
              calendar: {
                sameDay: '[Today at] LT',
                nextDay: '[Tomorrow at] LT',
                nextWeek: 'dddd [at] LT',
                lastDay: '[Yesterday at] LT',
                lastWeek: '[Last] dddd [at] LT',
                sameElse: 'L',
              },
              longDateFormat: {
                LTS: 'h:mm:ss A',
                LT: 'h:mm A',
                L: 'MM/DD/YYYY',
                LL: 'MMMM D, YYYY',
                LLL: 'MMMM D, YYYY h:mm A',
                LLLL: 'dddd, MMMM D, YYYY h:mm A',
              },
              invalidDate: 'Invalid date',
              ordinal: '%d',
              dayOfMonthOrdinalParse: /\d{1,2}/,
              relativeTime: {
                future: 'in %s',
                past: '%s ago',
                s: 'a few seconds',
                ss: '%d seconds',
                m: 'a minute',
                mm: '%d minutes',
                h: 'an hour',
                hh: '%d hours',
                d: 'a day',
                dd: '%d days',
                w: 'a week',
                ww: '%d weeks',
                M: 'a month',
                MM: '%d months',
                y: 'a year',
                yy: '%d years',
              },
              months: Se,
              monthsShort: ke,
              week: { dow: 0, doy: 6 },
              weekdays: He,
              weekdaysMin: Ve,
              weekdaysShort: je,
              meridiemParse: /[ap]\.?m?\.?/i,
            },
            tt = {},
            it = {};
          function nt(e, t) {
            var i,
              n = Math.min(e.length, t.length);
            for (i = 0; i < n; i += 1) if (e[i] !== t[i]) return i;
            return n;
          }
          function rt(e) {
            return e ? e.toLowerCase().replace('_', '-') : e;
          }
          function st(t) {
            var n = null;
            if (void 0 === tt[t] && e && e.exports)
              try {
                (n = Xe._abbr), i(46700)('./' + t), ot(n);
              } catch (e) {
                tt[t] = null;
              }
            return tt[t];
          }
          function ot(e, t) {
            var i;
            return (
              e &&
                ((i = c(t) ? lt(e) : at(e, t))
                  ? (Xe = i)
                  : 'undefined' != typeof console &&
                    console.warn &&
                    console.warn(
                      'Locale ' + e + ' not found. Did you forget to load it?'
                    )),
              Xe._abbr
            );
          }
          function at(e, t) {
            if (null !== t) {
              var i,
                n = et;
              if (((t.abbr = e), null != tt[e]))
                M(
                  'defineLocaleOverride',
                  'use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
                ),
                  (n = tt[e]._config);
              else if (null != t.parentLocale)
                if (null != tt[t.parentLocale]) n = tt[t.parentLocale]._config;
                else {
                  if (null == (i = st(t.parentLocale)))
                    return (
                      it[t.parentLocale] || (it[t.parentLocale] = []),
                      it[t.parentLocale].push({ name: e, config: t }),
                      null
                    );
                  n = i._config;
                }
              return (
                (tt[e] = new E(N(n, t))),
                it[e] &&
                  it[e].forEach(function (e) {
                    at(e.name, e.config);
                  }),
                ot(e),
                tt[e]
              );
            }
            return delete tt[e], null;
          }
          function lt(e) {
            var t;
            if (
              (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e)
            )
              return Xe;
            if (!s(e)) {
              if ((t = st(e))) return t;
              e = [e];
            }
            return (function (e) {
              for (var t, i, n, r, s = 0; s < e.length; ) {
                for (
                  t = (r = rt(e[s]).split('-')).length,
                    i = (i = rt(e[s + 1])) ? i.split('-') : null;
                  t > 0;

                ) {
                  if ((n = st(r.slice(0, t).join('-')))) return n;
                  if (i && i.length >= t && nt(r, i) >= t - 1) break;
                  t--;
                }
                s++;
              }
              return Xe;
            })(e);
          }
          function ct(e) {
            var t,
              i = e._a;
            return (
              i &&
                -2 === p(e).overflow &&
                ((t =
                  i[1] < 0 || i[1] > 11
                    ? 1
                    : i[2] < 1 || i[2] > Ce(i[0], i[1])
                    ? 2
                    : i[3] < 0 ||
                      i[3] > 24 ||
                      (24 === i[3] && (0 !== i[4] || 0 !== i[5] || 0 !== i[6]))
                    ? 3
                    : i[4] < 0 || i[4] > 59
                    ? 4
                    : i[5] < 0 || i[5] > 59
                    ? 5
                    : i[6] < 0 || i[6] > 999
                    ? 6
                    : -1),
                p(e)._overflowDayOfYear && (t < 0 || t > 2) && (t = 2),
                p(e)._overflowWeeks && -1 === t && (t = 7),
                p(e)._overflowWeekday && -1 === t && (t = 8),
                (p(e).overflow = t)),
              e
            );
          }
          var dt = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
            ht = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
            ut = /Z|[+-]\d\d(?::?\d\d)?/,
            gt = [
              ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
              ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
              ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
              ['GGGG-[W]WW', /\d{4}-W\d\d/, !1],
              ['YYYY-DDD', /\d{4}-\d{3}/],
              ['YYYY-MM', /\d{4}-\d\d/, !1],
              ['YYYYYYMMDD', /[+-]\d{10}/],
              ['YYYYMMDD', /\d{8}/],
              ['GGGG[W]WWE', /\d{4}W\d{3}/],
              ['GGGG[W]WW', /\d{4}W\d{2}/, !1],
              ['YYYYDDD', /\d{7}/],
              ['YYYYMM', /\d{6}/, !1],
              ['YYYY', /\d{4}/, !1],
            ],
            ft = [
              ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
              ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
              ['HH:mm:ss', /\d\d:\d\d:\d\d/],
              ['HH:mm', /\d\d:\d\d/],
              ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
              ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
              ['HHmmss', /\d\d\d\d\d\d/],
              ['HHmm', /\d\d\d\d/],
              ['HH', /\d\d/],
            ],
            pt = /^\/?Date\((-?\d+)/i,
            mt = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,
            _t = {
              UT: 0,
              GMT: 0,
              EDT: -240,
              EST: -300,
              CDT: -300,
              CST: -360,
              MDT: -360,
              MST: -420,
              PDT: -420,
              PST: -480,
            };
          function bt(e) {
            var t,
              i,
              n,
              r,
              s,
              o,
              a = e._i,
              l = dt.exec(a) || ht.exec(a);
            if (l) {
              for (p(e).iso = !0, t = 0, i = gt.length; t < i; t++)
                if (gt[t][1].exec(l[1])) {
                  (r = gt[t][0]), (n = !1 !== gt[t][2]);
                  break;
                }
              if (null == r) return void (e._isValid = !1);
              if (l[3]) {
                for (t = 0, i = ft.length; t < i; t++)
                  if (ft[t][1].exec(l[3])) {
                    s = (l[2] || ' ') + ft[t][0];
                    break;
                  }
                if (null == s) return void (e._isValid = !1);
              }
              if (!n && null != s) return void (e._isValid = !1);
              if (l[4]) {
                if (!ut.exec(l[4])) return void (e._isValid = !1);
                o = 'Z';
              }
              (e._f = r + (s || '') + (o || '')), St(e);
            } else e._isValid = !1;
          }
          function vt(e) {
            var t = parseInt(e, 10);
            return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t;
          }
          function yt(e) {
            var t,
              i,
              n,
              r,
              s,
              o,
              a,
              l,
              c = mt.exec(
                e._i
                  .replace(/\([^)]*\)|[\n\t]/g, ' ')
                  .replace(/(\s\s+)/g, ' ')
                  .replace(/^\s\s*/, '')
                  .replace(/\s\s*$/, '')
              );
            if (c) {
              if (
                ((i = c[4]),
                (n = c[3]),
                (r = c[2]),
                (s = c[5]),
                (o = c[6]),
                (a = c[7]),
                (l = [
                  vt(i),
                  ke.indexOf(n),
                  parseInt(r, 10),
                  parseInt(s, 10),
                  parseInt(o, 10),
                ]),
                a && l.push(parseInt(a, 10)),
                (t = l),
                !(function (e, t, i) {
                  return (
                    !e ||
                    je.indexOf(e) === new Date(t[0], t[1], t[2]).getDay() ||
                    ((p(i).weekdayMismatch = !0), (i._isValid = !1), !1)
                  );
                })(c[1], t, e))
              )
                return;
              (e._a = t),
                (e._tzm = (function (e, t, i) {
                  if (e) return _t[e];
                  if (t) return 0;
                  var n = parseInt(i, 10),
                    r = n % 100;
                  return ((n - r) / 100) * 60 + r;
                })(c[8], c[9], c[10])),
                (e._d = Re.apply(null, e._a)),
                e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm),
                (p(e).rfc2822 = !0);
            } else e._isValid = !1;
          }
          function wt(e, t, i) {
            return null != e ? e : null != t ? t : i;
          }
          function Ct(e) {
            var t,
              i,
              n,
              s,
              o,
              a = [];
            if (!e._d) {
              for (
                n = (function (e) {
                  var t = new Date(r.now());
                  return e._useUTC
                    ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()]
                    : [t.getFullYear(), t.getMonth(), t.getDate()];
                })(e),
                  e._w &&
                    null == e._a[2] &&
                    null == e._a[1] &&
                    (function (e) {
                      var t, i, n, r, s, o, a, l, c;
                      null != (t = e._w).GG || null != t.W || null != t.E
                        ? ((s = 1),
                          (o = 4),
                          (i = wt(t.GG, e._a[0], Be(Lt(), 1, 4).year)),
                          (n = wt(t.W, 1)),
                          ((r = wt(t.E, 1)) < 1 || r > 7) && (l = !0))
                        : ((s = e._locale._week.dow),
                          (o = e._locale._week.doy),
                          (c = Be(Lt(), s, o)),
                          (i = wt(t.gg, e._a[0], c.year)),
                          (n = wt(t.w, c.week)),
                          null != t.d
                            ? ((r = t.d) < 0 || r > 6) && (l = !0)
                            : null != t.e
                            ? ((r = t.e + s), (t.e < 0 || t.e > 6) && (l = !0))
                            : (r = s)),
                        n < 1 || n > We(i, s, o)
                          ? (p(e)._overflowWeeks = !0)
                          : null != l
                          ? (p(e)._overflowWeekday = !0)
                          : ((a = Fe(i, n, r, s, o)),
                            (e._a[0] = a.year),
                            (e._dayOfYear = a.dayOfYear));
                    })(e),
                  null != e._dayOfYear &&
                    ((o = wt(e._a[0], n[0])),
                    (e._dayOfYear > Ie(o) || 0 === e._dayOfYear) &&
                      (p(e)._overflowDayOfYear = !0),
                    (i = Re(o, 0, e._dayOfYear)),
                    (e._a[1] = i.getUTCMonth()),
                    (e._a[2] = i.getUTCDate())),
                  t = 0;
                t < 3 && null == e._a[t];
                ++t
              )
                e._a[t] = a[t] = n[t];
              for (; t < 7; t++)
                e._a[t] = a[t] = null == e._a[t] ? (2 === t ? 1 : 0) : e._a[t];
              24 === e._a[3] &&
                0 === e._a[4] &&
                0 === e._a[5] &&
                0 === e._a[6] &&
                ((e._nextDay = !0), (e._a[3] = 0)),
                (e._d = (e._useUTC ? Re : Ae).apply(null, a)),
                (s = e._useUTC ? e._d.getUTCDay() : e._d.getDay()),
                null != e._tzm &&
                  e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm),
                e._nextDay && (e._a[3] = 24),
                e._w &&
                  void 0 !== e._w.d &&
                  e._w.d !== s &&
                  (p(e).weekdayMismatch = !0);
            }
          }
          function St(e) {
            if (e._f !== r.ISO_8601)
              if (e._f !== r.RFC_2822) {
                (e._a = []), (p(e).empty = !0);
                var t,
                  i,
                  n,
                  s,
                  o,
                  a,
                  l = '' + e._i,
                  c = l.length,
                  d = 0;
                for (
                  n = B(e._f, e._locale).match(I) || [], t = 0;
                  t < n.length;
                  t++
                )
                  (s = n[t]),
                    (i = (l.match(pe(s, e)) || [])[0]) &&
                      ((o = l.substr(0, l.indexOf(i))).length > 0 &&
                        p(e).unusedInput.push(o),
                      (l = l.slice(l.indexOf(i) + i.length)),
                      (d += i.length)),
                    R[s]
                      ? (i ? (p(e).empty = !1) : p(e).unusedTokens.push(s),
                        ye(s, i, e))
                      : e._strict && !i && p(e).unusedTokens.push(s);
                (p(e).charsLeftOver = c - d),
                  l.length > 0 && p(e).unusedInput.push(l),
                  e._a[3] <= 12 &&
                    !0 === p(e).bigHour &&
                    e._a[3] > 0 &&
                    (p(e).bigHour = void 0),
                  (p(e).parsedDateParts = e._a.slice(0)),
                  (p(e).meridiem = e._meridiem),
                  (e._a[3] = (function (e, t, i) {
                    var n;
                    return null == i
                      ? t
                      : null != e.meridiemHour
                      ? e.meridiemHour(t, i)
                      : null != e.isPM
                      ? ((n = e.isPM(i)) && t < 12 && (t += 12),
                        n || 12 !== t || (t = 0),
                        t)
                      : t;
                  })(e._locale, e._a[3], e._meridiem)),
                  null !== (a = p(e).era) &&
                    (e._a[0] = e._locale.erasConvertYear(a, e._a[0])),
                  Ct(e),
                  ct(e);
              } else yt(e);
            else bt(e);
          }
          function kt(e) {
            var t = e._i,
              i = e._f;
            return (
              (e._locale = e._locale || lt(e._l)),
              null === t || (void 0 === i && '' === t)
                ? _({ nullInput: !0 })
                : ('string' == typeof t && (e._i = t = e._locale.preparse(t)),
                  C(t)
                    ? new w(ct(t))
                    : (h(t)
                        ? (e._d = t)
                        : s(i)
                        ? (function (e) {
                            var t,
                              i,
                              n,
                              r,
                              s,
                              o,
                              a = !1;
                            if (0 === e._f.length)
                              return (
                                (p(e).invalidFormat = !0),
                                void (e._d = new Date(NaN))
                              );
                            for (r = 0; r < e._f.length; r++)
                              (s = 0),
                                (o = !1),
                                (t = y({}, e)),
                                null != e._useUTC && (t._useUTC = e._useUTC),
                                (t._f = e._f[r]),
                                St(t),
                                m(t) && (o = !0),
                                (s += p(t).charsLeftOver),
                                (s += 10 * p(t).unusedTokens.length),
                                (p(t).score = s),
                                a
                                  ? s < n && ((n = s), (i = t))
                                  : (null == n || s < n || o) &&
                                    ((n = s), (i = t), o && (a = !0));
                            g(e, i || t);
                          })(e)
                        : i
                        ? St(e)
                        : (function (e) {
                            var t = e._i;
                            c(t)
                              ? (e._d = new Date(r.now()))
                              : h(t)
                              ? (e._d = new Date(t.valueOf()))
                              : 'string' == typeof t
                              ? (function (e) {
                                  var t = pt.exec(e._i);
                                  null === t
                                    ? (bt(e),
                                      !1 === e._isValid &&
                                        (delete e._isValid,
                                        yt(e),
                                        !1 === e._isValid &&
                                          (delete e._isValid,
                                          e._strict
                                            ? (e._isValid = !1)
                                            : r.createFromInputFallback(e))))
                                    : (e._d = new Date(+t[1]));
                                })(e)
                              : s(t)
                              ? ((e._a = u(t.slice(0), function (e) {
                                  return parseInt(e, 10);
                                })),
                                Ct(e))
                              : o(t)
                              ? (function (e) {
                                  if (!e._d) {
                                    var t = j(e._i),
                                      i = void 0 === t.day ? t.date : t.day;
                                    (e._a = u(
                                      [
                                        t.year,
                                        t.month,
                                        i,
                                        t.hour,
                                        t.minute,
                                        t.second,
                                        t.millisecond,
                                      ],
                                      function (e) {
                                        return e && parseInt(e, 10);
                                      }
                                    )),
                                      Ct(e);
                                  }
                                })(e)
                              : d(t)
                              ? (e._d = new Date(t))
                              : r.createFromInputFallback(e);
                          })(e),
                      m(e) || (e._d = null),
                      e))
            );
          }
          function xt(e, t, i, n, r) {
            var a,
              c = {};
            return (
              (!0 !== t && !1 !== t) || ((n = t), (t = void 0)),
              (!0 !== i && !1 !== i) || ((n = i), (i = void 0)),
              ((o(e) && l(e)) || (s(e) && 0 === e.length)) && (e = void 0),
              (c._isAMomentObject = !0),
              (c._useUTC = c._isUTC = r),
              (c._l = i),
              (c._i = e),
              (c._f = t),
              (c._strict = n),
              (a = new w(ct(kt(c))))._nextDay &&
                (a.add(1, 'd'), (a._nextDay = void 0)),
              a
            );
          }
          function Lt(e, t, i, n) {
            return xt(e, t, i, n, !1);
          }
          (r.createFromInputFallback = k(
            'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
            function (e) {
              e._d = new Date(e._i + (e._useUTC ? ' UTC' : ''));
            }
          )),
            (r.ISO_8601 = function () {}),
            (r.RFC_2822 = function () {});
          var Mt = k(
              'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
              function () {
                var e = Lt.apply(null, arguments);
                return this.isValid() && e.isValid()
                  ? e < this
                    ? this
                    : e
                  : _();
              }
            ),
            Dt = k(
              'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
              function () {
                var e = Lt.apply(null, arguments);
                return this.isValid() && e.isValid()
                  ? e > this
                    ? this
                    : e
                  : _();
              }
            );
          function Nt(e, t) {
            var i, n;
            if ((1 === t.length && s(t[0]) && (t = t[0]), !t.length))
              return Lt();
            for (i = t[0], n = 1; n < t.length; ++n)
              (t[n].isValid() && !t[n][e](i)) || (i = t[n]);
            return i;
          }
          var Et = [
            'year',
            'quarter',
            'month',
            'week',
            'day',
            'hour',
            'minute',
            'second',
            'millisecond',
          ];
          function Tt(e) {
            var t = j(e),
              i = t.year || 0,
              n = t.quarter || 0,
              r = t.month || 0,
              s = t.week || t.isoWeek || 0,
              o = t.day || 0,
              l = t.hour || 0,
              c = t.minute || 0,
              d = t.second || 0,
              h = t.millisecond || 0;
            (this._isValid = (function (e) {
              var t,
                i,
                n = !1;
              for (t in e)
                if (
                  a(e, t) &&
                  (-1 === we.call(Et, t) || (null != e[t] && isNaN(e[t])))
                )
                  return !1;
              for (i = 0; i < Et.length; ++i)
                if (e[Et[i]]) {
                  if (n) return !1;
                  parseFloat(e[Et[i]]) !== K(e[Et[i]]) && (n = !0);
                }
              return !0;
            })(t)),
              (this._milliseconds = +h + 1e3 * d + 6e4 * c + 1e3 * l * 60 * 60),
              (this._days = +o + 7 * s),
              (this._months = +r + 3 * n + 12 * i),
              (this._data = {}),
              (this._locale = lt()),
              this._bubble();
          }
          function It(e) {
            return e instanceof Tt;
          }
          function Ot(e) {
            return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e);
          }
          function At(e, t) {
            P(e, 0, 0, function () {
              var e = this.utcOffset(),
                i = '+';
              return (
                e < 0 && ((e = -e), (i = '-')),
                i + T(~~(e / 60), 2) + t + T(~~e % 60, 2)
              );
            });
          }
          At('Z', ':'),
            At('ZZ', ''),
            fe('Z', ue),
            fe('ZZ', ue),
            be(['Z', 'ZZ'], function (e, t, i) {
              (i._useUTC = !0), (i._tzm = Pt(ue, e));
            });
          var Rt = /([\+\-]|\d\d)/gi;
          function Pt(e, t) {
            var i,
              n,
              r = (t || '').match(e);
            return null === r
              ? null
              : 0 ===
                (n =
                  60 *
                    (i = ((r[r.length - 1] || []) + '').match(Rt) || [
                      '-',
                      0,
                      0,
                    ])[1] +
                  K(i[2]))
              ? 0
              : '+' === i[0]
              ? n
              : -n;
          }
          function Ft(e, t) {
            var i, n;
            return t._isUTC
              ? ((i = t.clone()),
                (n =
                  (C(e) || h(e) ? e.valueOf() : Lt(e).valueOf()) - i.valueOf()),
                i._d.setTime(i._d.valueOf() + n),
                r.updateOffset(i, !1),
                i)
              : Lt(e).local();
          }
          function Bt(e) {
            return -Math.round(e._d.getTimezoneOffset());
          }
          function Wt() {
            return !!this.isValid() && this._isUTC && 0 === this._offset;
          }
          r.updateOffset = function () {};
          var Yt = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
            Ht = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
          function jt(e, t) {
            var i,
              n,
              r,
              s,
              o,
              l,
              c = e,
              h = null;
            return (
              It(e)
                ? (c = { ms: e._milliseconds, d: e._days, M: e._months })
                : d(e) || !isNaN(+e)
                ? ((c = {}), t ? (c[t] = +e) : (c.milliseconds = +e))
                : (h = Yt.exec(e))
                ? ((i = '-' === h[1] ? -1 : 1),
                  (c = {
                    y: 0,
                    d: K(h[2]) * i,
                    h: K(h[3]) * i,
                    m: K(h[4]) * i,
                    s: K(h[5]) * i,
                    ms: K(Ot(1e3 * h[6])) * i,
                  }))
                : (h = Ht.exec(e))
                ? ((i = '-' === h[1] ? -1 : 1),
                  (c = {
                    y: Vt(h[2], i),
                    M: Vt(h[3], i),
                    w: Vt(h[4], i),
                    d: Vt(h[5], i),
                    h: Vt(h[6], i),
                    m: Vt(h[7], i),
                    s: Vt(h[8], i),
                  }))
                : null == c
                ? (c = {})
                : 'object' == typeof c &&
                  ('from' in c || 'to' in c) &&
                  ((s = Lt(c.from)),
                  (o = Lt(c.to)),
                  (r =
                    s.isValid() && o.isValid()
                      ? ((o = Ft(o, s)),
                        s.isBefore(o)
                          ? (l = zt(s, o))
                          : (((l = zt(o, s)).milliseconds = -l.milliseconds),
                            (l.months = -l.months)),
                        l)
                      : { milliseconds: 0, months: 0 }),
                  ((c = {}).ms = r.milliseconds),
                  (c.M = r.months)),
              (n = new Tt(c)),
              It(e) && a(e, '_locale') && (n._locale = e._locale),
              It(e) && a(e, '_isValid') && (n._isValid = e._isValid),
              n
            );
          }
          function Vt(e, t) {
            var i = e && parseFloat(e.replace(',', '.'));
            return (isNaN(i) ? 0 : i) * t;
          }
          function zt(e, t) {
            var i = {};
            return (
              (i.months = t.month() - e.month() + 12 * (t.year() - e.year())),
              e.clone().add(i.months, 'M').isAfter(t) && --i.months,
              (i.milliseconds = +t - +e.clone().add(i.months, 'M')),
              i
            );
          }
          function Ut(e, t) {
            return function (i, n) {
              var r;
              return (
                null === n ||
                  isNaN(+n) ||
                  (M(
                    t,
                    'moment().' +
                      t +
                      '(period, number) is deprecated. Please use moment().' +
                      t +
                      '(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
                  ),
                  (r = i),
                  (i = n),
                  (n = r)),
                $t(this, jt(i, n), e),
                this
              );
            };
          }
          function $t(e, t, i, n) {
            var s = t._milliseconds,
              o = Ot(t._days),
              a = Ot(t._months);
            e.isValid() &&
              ((n = null == n || n),
              a && Ne(e, G(e, 'Month') + a * i),
              o && Z(e, 'Date', G(e, 'Date') + o * i),
              s && e._d.setTime(e._d.valueOf() + s * i),
              n && r.updateOffset(e, o || a));
          }
          (jt.fn = Tt.prototype),
            (jt.invalid = function () {
              return jt(NaN);
            });
          var Kt = Ut(1, 'add'),
            qt = Ut(-1, 'subtract');
          function Gt(e) {
            return 'string' == typeof e || e instanceof String;
          }
          function Zt(e) {
            return (
              C(e) ||
              h(e) ||
              Gt(e) ||
              d(e) ||
              (function (e) {
                var t = s(e),
                  i = !1;
                return (
                  t &&
                    (i =
                      0 ===
                      e.filter(function (t) {
                        return !d(t) && Gt(e);
                      }).length),
                  t && i
                );
              })(e) ||
              (function (e) {
                var t,
                  i,
                  n = o(e) && !l(e),
                  r = !1,
                  s = [
                    'years',
                    'year',
                    'y',
                    'months',
                    'month',
                    'M',
                    'days',
                    'day',
                    'd',
                    'dates',
                    'date',
                    'D',
                    'hours',
                    'hour',
                    'h',
                    'minutes',
                    'minute',
                    'm',
                    'seconds',
                    'second',
                    's',
                    'milliseconds',
                    'millisecond',
                    'ms',
                  ];
                for (t = 0; t < s.length; t += 1)
                  (i = s[t]), (r = r || a(e, i));
                return n && r;
              })(e) ||
              null == e
            );
          }
          function Jt(e) {
            var t,
              i = o(e) && !l(e),
              n = !1,
              r = [
                'sameDay',
                'nextDay',
                'lastDay',
                'nextWeek',
                'lastWeek',
                'sameElse',
              ];
            for (t = 0; t < r.length; t += 1) n = n || a(e, r[t]);
            return i && n;
          }
          function Qt(e, t) {
            if (e.date() < t.date()) return -Qt(t, e);
            var i = 12 * (t.year() - e.year()) + (t.month() - e.month()),
              n = e.clone().add(i, 'months');
            return (
              -(
                i +
                (t - n < 0
                  ? (t - n) / (n - e.clone().add(i - 1, 'months'))
                  : (t - n) / (e.clone().add(i + 1, 'months') - n))
              ) || 0
            );
          }
          function Xt(e) {
            var t;
            return void 0 === e
              ? this._locale._abbr
              : (null != (t = lt(e)) && (this._locale = t), this);
          }
          (r.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'),
            (r.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]');
          var ei = k(
            'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
            function (e) {
              return void 0 === e ? this.localeData() : this.locale(e);
            }
          );
          function ti() {
            return this._locale;
          }
          var ii = 1e3,
            ni = 6e4,
            ri = 36e5,
            si = 126227808e5;
          function oi(e, t) {
            return ((e % t) + t) % t;
          }
          function ai(e, t, i) {
            return e < 100 && e >= 0
              ? new Date(e + 400, t, i) - si
              : new Date(e, t, i).valueOf();
          }
          function li(e, t, i) {
            return e < 100 && e >= 0
              ? Date.UTC(e + 400, t, i) - si
              : Date.UTC(e, t, i);
          }
          function ci(e, t) {
            return t.erasAbbrRegex(e);
          }
          function di() {
            var e,
              t,
              i = [],
              n = [],
              r = [],
              s = [],
              o = this.eras();
            for (e = 0, t = o.length; e < t; ++e)
              n.push(me(o[e].name)),
                i.push(me(o[e].abbr)),
                r.push(me(o[e].narrow)),
                s.push(me(o[e].name)),
                s.push(me(o[e].abbr)),
                s.push(me(o[e].narrow));
            (this._erasRegex = new RegExp('^(' + s.join('|') + ')', 'i')),
              (this._erasNameRegex = new RegExp('^(' + n.join('|') + ')', 'i')),
              (this._erasAbbrRegex = new RegExp('^(' + i.join('|') + ')', 'i')),
              (this._erasNarrowRegex = new RegExp(
                '^(' + r.join('|') + ')',
                'i'
              ));
          }
          function hi(e, t) {
            P(0, [e, e.length], 0, t);
          }
          function ui(e, t, i, n, r) {
            var s;
            return null == e
              ? Be(this, n, r).year
              : (t > (s = We(e, n, r)) && (t = s),
                gi.call(this, e, t, i, n, r));
          }
          function gi(e, t, i, n, r) {
            var s = Fe(e, t, i, n, r),
              o = Re(s.year, 0, s.dayOfYear);
            return (
              this.year(o.getUTCFullYear()),
              this.month(o.getUTCMonth()),
              this.date(o.getUTCDate()),
              this
            );
          }
          P('N', 0, 0, 'eraAbbr'),
            P('NN', 0, 0, 'eraAbbr'),
            P('NNN', 0, 0, 'eraAbbr'),
            P('NNNN', 0, 0, 'eraName'),
            P('NNNNN', 0, 0, 'eraNarrow'),
            P('y', ['y', 1], 'yo', 'eraYear'),
            P('y', ['yy', 2], 0, 'eraYear'),
            P('y', ['yyy', 3], 0, 'eraYear'),
            P('y', ['yyyy', 4], 0, 'eraYear'),
            fe('N', ci),
            fe('NN', ci),
            fe('NNN', ci),
            fe('NNNN', function (e, t) {
              return t.erasNameRegex(e);
            }),
            fe('NNNNN', function (e, t) {
              return t.erasNarrowRegex(e);
            }),
            be(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (e, t, i, n) {
              var r = i._locale.erasParse(e, n, i._strict);
              r ? (p(i).era = r) : (p(i).invalidEra = e);
            }),
            fe('y', ce),
            fe('yy', ce),
            fe('yyy', ce),
            fe('yyyy', ce),
            fe('yo', function (e, t) {
              return t._eraYearOrdinalRegex || ce;
            }),
            be(['y', 'yy', 'yyy', 'yyyy'], 0),
            be(['yo'], function (e, t, i, n) {
              var r;
              i._locale._eraYearOrdinalRegex &&
                (r = e.match(i._locale._eraYearOrdinalRegex)),
                i._locale.eraYearOrdinalParse
                  ? (t[0] = i._locale.eraYearOrdinalParse(e, r))
                  : (t[0] = parseInt(e, 10));
            }),
            P(0, ['gg', 2], 0, function () {
              return this.weekYear() % 100;
            }),
            P(0, ['GG', 2], 0, function () {
              return this.isoWeekYear() % 100;
            }),
            hi('gggg', 'weekYear'),
            hi('ggggg', 'weekYear'),
            hi('GGGG', 'isoWeekYear'),
            hi('GGGGG', 'isoWeekYear'),
            Y('weekYear', 'gg'),
            Y('isoWeekYear', 'GG'),
            z('weekYear', 1),
            z('isoWeekYear', 1),
            fe('G', de),
            fe('g', de),
            fe('GG', ne, X),
            fe('gg', ne, X),
            fe('GGGG', ae, te),
            fe('gggg', ae, te),
            fe('GGGGG', le, ie),
            fe('ggggg', le, ie),
            ve(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (e, t, i, n) {
              t[n.substr(0, 2)] = K(e);
            }),
            ve(['gg', 'GG'], function (e, t, i, n) {
              t[n] = r.parseTwoDigitYear(e);
            }),
            P('Q', 0, 'Qo', 'quarter'),
            Y('quarter', 'Q'),
            z('quarter', 7),
            fe('Q', Q),
            be('Q', function (e, t) {
              t[1] = 3 * (K(e) - 1);
            }),
            P('D', ['DD', 2], 'Do', 'date'),
            Y('date', 'D'),
            z('date', 9),
            fe('D', ne),
            fe('DD', ne, X),
            fe('Do', function (e, t) {
              return e
                ? t._dayOfMonthOrdinalParse || t._ordinalParse
                : t._dayOfMonthOrdinalParseLenient;
            }),
            be(['D', 'DD'], 2),
            be('Do', function (e, t) {
              t[2] = K(e.match(ne)[0]);
            });
          var fi = q('Date', !0);
          P('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'),
            Y('dayOfYear', 'DDD'),
            z('dayOfYear', 4),
            fe('DDD', oe),
            fe('DDDD', ee),
            be(['DDD', 'DDDD'], function (e, t, i) {
              i._dayOfYear = K(e);
            }),
            P('m', ['mm', 2], 0, 'minute'),
            Y('minute', 'm'),
            z('minute', 14),
            fe('m', ne),
            fe('mm', ne, X),
            be(['m', 'mm'], 4);
          var pi = q('Minutes', !1);
          P('s', ['ss', 2], 0, 'second'),
            Y('second', 's'),
            z('second', 15),
            fe('s', ne),
            fe('ss', ne, X),
            be(['s', 'ss'], 5);
          var mi,
            _i,
            bi = q('Seconds', !1);
          for (
            P('S', 0, 0, function () {
              return ~~(this.millisecond() / 100);
            }),
              P(0, ['SS', 2], 0, function () {
                return ~~(this.millisecond() / 10);
              }),
              P(0, ['SSS', 3], 0, 'millisecond'),
              P(0, ['SSSS', 4], 0, function () {
                return 10 * this.millisecond();
              }),
              P(0, ['SSSSS', 5], 0, function () {
                return 100 * this.millisecond();
              }),
              P(0, ['SSSSSS', 6], 0, function () {
                return 1e3 * this.millisecond();
              }),
              P(0, ['SSSSSSS', 7], 0, function () {
                return 1e4 * this.millisecond();
              }),
              P(0, ['SSSSSSSS', 8], 0, function () {
                return 1e5 * this.millisecond();
              }),
              P(0, ['SSSSSSSSS', 9], 0, function () {
                return 1e6 * this.millisecond();
              }),
              Y('millisecond', 'ms'),
              z('millisecond', 16),
              fe('S', oe, Q),
              fe('SS', oe, X),
              fe('SSS', oe, ee),
              mi = 'SSSS';
            mi.length <= 9;
            mi += 'S'
          )
            fe(mi, ce);
          function vi(e, t) {
            t[6] = K(1e3 * ('0.' + e));
          }
          for (mi = 'S'; mi.length <= 9; mi += 'S') be(mi, vi);
          (_i = q('Milliseconds', !1)),
            P('z', 0, 0, 'zoneAbbr'),
            P('zz', 0, 0, 'zoneName');
          var yi = w.prototype;
          function wi(e) {
            return e;
          }
          (yi.add = Kt),
            (yi.calendar = function (e, t) {
              1 === arguments.length &&
                (arguments[0]
                  ? Zt(arguments[0])
                    ? ((e = arguments[0]), (t = void 0))
                    : Jt(arguments[0]) && ((t = arguments[0]), (e = void 0))
                  : ((e = void 0), (t = void 0)));
              var i = e || Lt(),
                n = Ft(i, this).startOf('day'),
                s = r.calendarFormat(this, n) || 'sameElse',
                o = t && (D(t[s]) ? t[s].call(this, i) : t[s]);
              return this.format(
                o || this.localeData().calendar(s, this, Lt(i))
              );
            }),
            (yi.clone = function () {
              return new w(this);
            }),
            (yi.diff = function (e, t, i) {
              var n, r, s;
              if (!this.isValid()) return NaN;
              if (!(n = Ft(e, this)).isValid()) return NaN;
              switch (
                ((r = 6e4 * (n.utcOffset() - this.utcOffset())), (t = H(t)))
              ) {
                case 'year':
                  s = Qt(this, n) / 12;
                  break;
                case 'month':
                  s = Qt(this, n);
                  break;
                case 'quarter':
                  s = Qt(this, n) / 3;
                  break;
                case 'second':
                  s = (this - n) / 1e3;
                  break;
                case 'minute':
                  s = (this - n) / 6e4;
                  break;
                case 'hour':
                  s = (this - n) / 36e5;
                  break;
                case 'day':
                  s = (this - n - r) / 864e5;
                  break;
                case 'week':
                  s = (this - n - r) / 6048e5;
                  break;
                default:
                  s = this - n;
              }
              return i ? s : $(s);
            }),
            (yi.endOf = function (e) {
              var t, i;
              if (
                void 0 === (e = H(e)) ||
                'millisecond' === e ||
                !this.isValid()
              )
                return this;
              switch (((i = this._isUTC ? li : ai), e)) {
                case 'year':
                  t = i(this.year() + 1, 0, 1) - 1;
                  break;
                case 'quarter':
                  t =
                    i(this.year(), this.month() - (this.month() % 3) + 3, 1) -
                    1;
                  break;
                case 'month':
                  t = i(this.year(), this.month() + 1, 1) - 1;
                  break;
                case 'week':
                  t =
                    i(
                      this.year(),
                      this.month(),
                      this.date() - this.weekday() + 7
                    ) - 1;
                  break;
                case 'isoWeek':
                  t =
                    i(
                      this.year(),
                      this.month(),
                      this.date() - (this.isoWeekday() - 1) + 7
                    ) - 1;
                  break;
                case 'day':
                case 'date':
                  t = i(this.year(), this.month(), this.date() + 1) - 1;
                  break;
                case 'hour':
                  (t = this._d.valueOf()),
                    (t +=
                      ri -
                      oi(t + (this._isUTC ? 0 : this.utcOffset() * ni), ri) -
                      1);
                  break;
                case 'minute':
                  (t = this._d.valueOf()), (t += ni - oi(t, ni) - 1);
                  break;
                case 'second':
                  (t = this._d.valueOf()), (t += ii - oi(t, ii) - 1);
              }
              return this._d.setTime(t), r.updateOffset(this, !0), this;
            }),
            (yi.format = function (e) {
              e || (e = this.isUtc() ? r.defaultFormatUtc : r.defaultFormat);
              var t = F(this, e);
              return this.localeData().postformat(t);
            }),
            (yi.from = function (e, t) {
              return this.isValid() &&
                ((C(e) && e.isValid()) || Lt(e).isValid())
                ? jt({ to: this, from: e }).locale(this.locale()).humanize(!t)
                : this.localeData().invalidDate();
            }),
            (yi.fromNow = function (e) {
              return this.from(Lt(), e);
            }),
            (yi.to = function (e, t) {
              return this.isValid() &&
                ((C(e) && e.isValid()) || Lt(e).isValid())
                ? jt({ from: this, to: e }).locale(this.locale()).humanize(!t)
                : this.localeData().invalidDate();
            }),
            (yi.toNow = function (e) {
              return this.to(Lt(), e);
            }),
            (yi.get = function (e) {
              return D(this[(e = H(e))]) ? this[e]() : this;
            }),
            (yi.invalidAt = function () {
              return p(this).overflow;
            }),
            (yi.isAfter = function (e, t) {
              var i = C(e) ? e : Lt(e);
              return (
                !(!this.isValid() || !i.isValid()) &&
                ('millisecond' === (t = H(t) || 'millisecond')
                  ? this.valueOf() > i.valueOf()
                  : i.valueOf() < this.clone().startOf(t).valueOf())
              );
            }),
            (yi.isBefore = function (e, t) {
              var i = C(e) ? e : Lt(e);
              return (
                !(!this.isValid() || !i.isValid()) &&
                ('millisecond' === (t = H(t) || 'millisecond')
                  ? this.valueOf() < i.valueOf()
                  : this.clone().endOf(t).valueOf() < i.valueOf())
              );
            }),
            (yi.isBetween = function (e, t, i, n) {
              var r = C(e) ? e : Lt(e),
                s = C(t) ? t : Lt(t);
              return (
                !!(this.isValid() && r.isValid() && s.isValid()) &&
                ('(' === (n = n || '()')[0]
                  ? this.isAfter(r, i)
                  : !this.isBefore(r, i)) &&
                (')' === n[1] ? this.isBefore(s, i) : !this.isAfter(s, i))
              );
            }),
            (yi.isSame = function (e, t) {
              var i,
                n = C(e) ? e : Lt(e);
              return (
                !(!this.isValid() || !n.isValid()) &&
                ('millisecond' === (t = H(t) || 'millisecond')
                  ? this.valueOf() === n.valueOf()
                  : ((i = n.valueOf()),
                    this.clone().startOf(t).valueOf() <= i &&
                      i <= this.clone().endOf(t).valueOf()))
              );
            }),
            (yi.isSameOrAfter = function (e, t) {
              return this.isSame(e, t) || this.isAfter(e, t);
            }),
            (yi.isSameOrBefore = function (e, t) {
              return this.isSame(e, t) || this.isBefore(e, t);
            }),
            (yi.isValid = function () {
              return m(this);
            }),
            (yi.lang = ei),
            (yi.locale = Xt),
            (yi.localeData = ti),
            (yi.max = Dt),
            (yi.min = Mt),
            (yi.parsingFlags = function () {
              return g({}, p(this));
            }),
            (yi.set = function (e, t) {
              if ('object' == typeof e) {
                var i,
                  n = (function (e) {
                    var t,
                      i = [];
                    for (t in e) a(e, t) && i.push({ unit: t, priority: V[t] });
                    return (
                      i.sort(function (e, t) {
                        return e.priority - t.priority;
                      }),
                      i
                    );
                  })((e = j(e)));
                for (i = 0; i < n.length; i++) this[n[i].unit](e[n[i].unit]);
              } else if (D(this[(e = H(e))])) return this[e](t);
              return this;
            }),
            (yi.startOf = function (e) {
              var t, i;
              if (
                void 0 === (e = H(e)) ||
                'millisecond' === e ||
                !this.isValid()
              )
                return this;
              switch (((i = this._isUTC ? li : ai), e)) {
                case 'year':
                  t = i(this.year(), 0, 1);
                  break;
                case 'quarter':
                  t = i(this.year(), this.month() - (this.month() % 3), 1);
                  break;
                case 'month':
                  t = i(this.year(), this.month(), 1);
                  break;
                case 'week':
                  t = i(
                    this.year(),
                    this.month(),
                    this.date() - this.weekday()
                  );
                  break;
                case 'isoWeek':
                  t = i(
                    this.year(),
                    this.month(),
                    this.date() - (this.isoWeekday() - 1)
                  );
                  break;
                case 'day':
                case 'date':
                  t = i(this.year(), this.month(), this.date());
                  break;
                case 'hour':
                  (t = this._d.valueOf()),
                    (t -= oi(
                      t + (this._isUTC ? 0 : this.utcOffset() * ni),
                      ri
                    ));
                  break;
                case 'minute':
                  (t = this._d.valueOf()), (t -= oi(t, ni));
                  break;
                case 'second':
                  (t = this._d.valueOf()), (t -= oi(t, ii));
              }
              return this._d.setTime(t), r.updateOffset(this, !0), this;
            }),
            (yi.subtract = qt),
            (yi.toArray = function () {
              var e = this;
              return [
                e.year(),
                e.month(),
                e.date(),
                e.hour(),
                e.minute(),
                e.second(),
                e.millisecond(),
              ];
            }),
            (yi.toObject = function () {
              var e = this;
              return {
                years: e.year(),
                months: e.month(),
                date: e.date(),
                hours: e.hours(),
                minutes: e.minutes(),
                seconds: e.seconds(),
                milliseconds: e.milliseconds(),
              };
            }),
            (yi.toDate = function () {
              return new Date(this.valueOf());
            }),
            (yi.toISOString = function (e) {
              if (!this.isValid()) return null;
              var t = !0 !== e,
                i = t ? this.clone().utc() : this;
              return i.year() < 0 || i.year() > 9999
                ? F(
                    i,
                    t
                      ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                      : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
                  )
                : D(Date.prototype.toISOString)
                ? t
                  ? this.toDate().toISOString()
                  : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3)
                      .toISOString()
                      .replace('Z', F(i, 'Z'))
                : F(
                    i,
                    t
                      ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
                      : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
                  );
            }),
            (yi.inspect = function () {
              if (!this.isValid())
                return 'moment.invalid(/* ' + this._i + ' */)';
              var e,
                t,
                i,
                n = 'moment',
                r = '';
              return (
                this.isLocal() ||
                  ((n =
                    0 === this.utcOffset() ? 'moment.utc' : 'moment.parseZone'),
                  (r = 'Z')),
                (e = '[' + n + '("]'),
                (t =
                  0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'),
                '-MM-DD[T]HH:mm:ss.SSS',
                (i = r + '[")]'),
                this.format(e + t + '-MM-DD[T]HH:mm:ss.SSS' + i)
              );
            }),
            'undefined' != typeof Symbol &&
              null != Symbol.for &&
              (yi[Symbol.for('nodejs.util.inspect.custom')] = function () {
                return 'Moment<' + this.format() + '>';
              }),
            (yi.toJSON = function () {
              return this.isValid() ? this.toISOString() : null;
            }),
            (yi.toString = function () {
              return this.clone()
                .locale('en')
                .format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
            }),
            (yi.unix = function () {
              return Math.floor(this.valueOf() / 1e3);
            }),
            (yi.valueOf = function () {
              return this._d.valueOf() - 6e4 * (this._offset || 0);
            }),
            (yi.creationData = function () {
              return {
                input: this._i,
                format: this._f,
                locale: this._locale,
                isUTC: this._isUTC,
                strict: this._strict,
              };
            }),
            (yi.eraName = function () {
              var e,
                t,
                i,
                n = this.localeData().eras();
              for (e = 0, t = n.length; e < t; ++e) {
                if (
                  ((i = this.clone().startOf('day').valueOf()),
                  n[e].since <= i && i <= n[e].until)
                )
                  return n[e].name;
                if (n[e].until <= i && i <= n[e].since) return n[e].name;
              }
              return '';
            }),
            (yi.eraNarrow = function () {
              var e,
                t,
                i,
                n = this.localeData().eras();
              for (e = 0, t = n.length; e < t; ++e) {
                if (
                  ((i = this.clone().startOf('day').valueOf()),
                  n[e].since <= i && i <= n[e].until)
                )
                  return n[e].narrow;
                if (n[e].until <= i && i <= n[e].since) return n[e].narrow;
              }
              return '';
            }),
            (yi.eraAbbr = function () {
              var e,
                t,
                i,
                n = this.localeData().eras();
              for (e = 0, t = n.length; e < t; ++e) {
                if (
                  ((i = this.clone().startOf('day').valueOf()),
                  n[e].since <= i && i <= n[e].until)
                )
                  return n[e].abbr;
                if (n[e].until <= i && i <= n[e].since) return n[e].abbr;
              }
              return '';
            }),
            (yi.eraYear = function () {
              var e,
                t,
                i,
                n,
                s = this.localeData().eras();
              for (e = 0, t = s.length; e < t; ++e)
                if (
                  ((i = s[e].since <= s[e].until ? 1 : -1),
                  (n = this.clone().startOf('day').valueOf()),
                  (s[e].since <= n && n <= s[e].until) ||
                    (s[e].until <= n && n <= s[e].since))
                )
                  return (this.year() - r(s[e].since).year()) * i + s[e].offset;
              return this.year();
            }),
            (yi.year = Oe),
            (yi.isLeapYear = function () {
              return U(this.year());
            }),
            (yi.weekYear = function (e) {
              return ui.call(
                this,
                e,
                this.week(),
                this.weekday(),
                this.localeData()._week.dow,
                this.localeData()._week.doy
              );
            }),
            (yi.isoWeekYear = function (e) {
              return ui.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4);
            }),
            (yi.quarter = yi.quarters = function (e) {
              return null == e
                ? Math.ceil((this.month() + 1) / 3)
                : this.month(3 * (e - 1) + (this.month() % 3));
            }),
            (yi.month = Ee),
            (yi.daysInMonth = function () {
              return Ce(this.year(), this.month());
            }),
            (yi.week = yi.weeks = function (e) {
              var t = this.localeData().week(this);
              return null == e ? t : this.add(7 * (e - t), 'd');
            }),
            (yi.isoWeek = yi.isoWeeks = function (e) {
              var t = Be(this, 1, 4).week;
              return null == e ? t : this.add(7 * (e - t), 'd');
            }),
            (yi.weeksInYear = function () {
              var e = this.localeData()._week;
              return We(this.year(), e.dow, e.doy);
            }),
            (yi.weeksInWeekYear = function () {
              var e = this.localeData()._week;
              return We(this.weekYear(), e.dow, e.doy);
            }),
            (yi.isoWeeksInYear = function () {
              return We(this.year(), 1, 4);
            }),
            (yi.isoWeeksInISOWeekYear = function () {
              return We(this.isoWeekYear(), 1, 4);
            }),
            (yi.date = fi),
            (yi.day = yi.days = function (e) {
              if (!this.isValid()) return null != e ? this : NaN;
              var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
              return null != e
                ? ((e = (function (e, t) {
                    return 'string' != typeof e
                      ? e
                      : isNaN(e)
                      ? 'number' == typeof (e = t.weekdaysParse(e))
                        ? e
                        : null
                      : parseInt(e, 10);
                  })(e, this.localeData())),
                  this.add(e - t, 'd'))
                : t;
            }),
            (yi.weekday = function (e) {
              if (!this.isValid()) return null != e ? this : NaN;
              var t = (this.day() + 7 - this.localeData()._week.dow) % 7;
              return null == e ? t : this.add(e - t, 'd');
            }),
            (yi.isoWeekday = function (e) {
              if (!this.isValid()) return null != e ? this : NaN;
              if (null != e) {
                var t = (function (e, t) {
                  return 'string' == typeof e
                    ? t.weekdaysParse(e) % 7 || 7
                    : isNaN(e)
                    ? null
                    : e;
                })(e, this.localeData());
                return this.day(this.day() % 7 ? t : t - 7);
              }
              return this.day() || 7;
            }),
            (yi.dayOfYear = function (e) {
              var t =
                Math.round(
                  (this.clone().startOf('day') - this.clone().startOf('year')) /
                    864e5
                ) + 1;
              return null == e ? t : this.add(e - t, 'd');
            }),
            (yi.hour = yi.hours = Qe),
            (yi.minute = yi.minutes = pi),
            (yi.second = yi.seconds = bi),
            (yi.millisecond = yi.milliseconds = _i),
            (yi.utcOffset = function (e, t, i) {
              var n,
                s = this._offset || 0;
              if (!this.isValid()) return null != e ? this : NaN;
              if (null != e) {
                if ('string' == typeof e) {
                  if (null === (e = Pt(ue, e))) return this;
                } else Math.abs(e) < 16 && !i && (e *= 60);
                return (
                  !this._isUTC && t && (n = Bt(this)),
                  (this._offset = e),
                  (this._isUTC = !0),
                  null != n && this.add(n, 'm'),
                  s !== e &&
                    (!t || this._changeInProgress
                      ? $t(this, jt(e - s, 'm'), 1, !1)
                      : this._changeInProgress ||
                        ((this._changeInProgress = !0),
                        r.updateOffset(this, !0),
                        (this._changeInProgress = null))),
                  this
                );
              }
              return this._isUTC ? s : Bt(this);
            }),
            (yi.utc = function (e) {
              return this.utcOffset(0, e);
            }),
            (yi.local = function (e) {
              return (
                this._isUTC &&
                  (this.utcOffset(0, e),
                  (this._isUTC = !1),
                  e && this.subtract(Bt(this), 'm')),
                this
              );
            }),
            (yi.parseZone = function () {
              if (null != this._tzm) this.utcOffset(this._tzm, !1, !0);
              else if ('string' == typeof this._i) {
                var e = Pt(he, this._i);
                null != e ? this.utcOffset(e) : this.utcOffset(0, !0);
              }
              return this;
            }),
            (yi.hasAlignedHourOffset = function (e) {
              return (
                !!this.isValid() &&
                ((e = e ? Lt(e).utcOffset() : 0),
                (this.utcOffset() - e) % 60 == 0)
              );
            }),
            (yi.isDST = function () {
              return (
                this.utcOffset() > this.clone().month(0).utcOffset() ||
                this.utcOffset() > this.clone().month(5).utcOffset()
              );
            }),
            (yi.isLocal = function () {
              return !!this.isValid() && !this._isUTC;
            }),
            (yi.isUtcOffset = function () {
              return !!this.isValid() && this._isUTC;
            }),
            (yi.isUtc = Wt),
            (yi.isUTC = Wt),
            (yi.zoneAbbr = function () {
              return this._isUTC ? 'UTC' : '';
            }),
            (yi.zoneName = function () {
              return this._isUTC ? 'Coordinated Universal Time' : '';
            }),
            (yi.dates = k(
              'dates accessor is deprecated. Use date instead.',
              fi
            )),
            (yi.months = k(
              'months accessor is deprecated. Use month instead',
              Ee
            )),
            (yi.years = k(
              'years accessor is deprecated. Use year instead',
              Oe
            )),
            (yi.zone = k(
              'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
              function (e, t) {
                return null != e
                  ? ('string' != typeof e && (e = -e),
                    this.utcOffset(e, t),
                    this)
                  : -this.utcOffset();
              }
            )),
            (yi.isDSTShifted = k(
              'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
              function () {
                if (!c(this._isDSTShifted)) return this._isDSTShifted;
                var e,
                  t = {};
                return (
                  y(t, this),
                  (t = kt(t))._a
                    ? ((e = t._isUTC ? f(t._a) : Lt(t._a)),
                      (this._isDSTShifted =
                        this.isValid() &&
                        (function (e, t, i) {
                          var n,
                            r = Math.min(e.length, t.length),
                            s = Math.abs(e.length - t.length),
                            o = 0;
                          for (n = 0; n < r; n++)
                            ((i && e[n] !== t[n]) ||
                              (!i && K(e[n]) !== K(t[n]))) &&
                              o++;
                          return o + s;
                        })(t._a, e.toArray()) > 0))
                    : (this._isDSTShifted = !1),
                  this._isDSTShifted
                );
              }
            ));
          var Ci = E.prototype;
          function Si(e, t, i, n) {
            var r = lt(),
              s = f().set(n, t);
            return r[i](s, e);
          }
          function ki(e, t, i) {
            if ((d(e) && ((t = e), (e = void 0)), (e = e || ''), null != t))
              return Si(e, t, i, 'month');
            var n,
              r = [];
            for (n = 0; n < 12; n++) r[n] = Si(e, n, i, 'month');
            return r;
          }
          function xi(e, t, i, n) {
            'boolean' == typeof e
              ? (d(t) && ((i = t), (t = void 0)), (t = t || ''))
              : ((i = t = e),
                (e = !1),
                d(t) && ((i = t), (t = void 0)),
                (t = t || ''));
            var r,
              s = lt(),
              o = e ? s._week.dow : 0,
              a = [];
            if (null != i) return Si(t, (i + o) % 7, n, 'day');
            for (r = 0; r < 7; r++) a[r] = Si(t, (r + o) % 7, n, 'day');
            return a;
          }
          (Ci.calendar = function (e, t, i) {
            var n = this._calendar[e] || this._calendar.sameElse;
            return D(n) ? n.call(t, i) : n;
          }),
            (Ci.longDateFormat = function (e) {
              var t = this._longDateFormat[e],
                i = this._longDateFormat[e.toUpperCase()];
              return t || !i
                ? t
                : ((this._longDateFormat[e] = i
                    .match(I)
                    .map(function (e) {
                      return 'MMMM' === e ||
                        'MM' === e ||
                        'DD' === e ||
                        'dddd' === e
                        ? e.slice(1)
                        : e;
                    })
                    .join('')),
                  this._longDateFormat[e]);
            }),
            (Ci.invalidDate = function () {
              return this._invalidDate;
            }),
            (Ci.ordinal = function (e) {
              return this._ordinal.replace('%d', e);
            }),
            (Ci.preparse = wi),
            (Ci.postformat = wi),
            (Ci.relativeTime = function (e, t, i, n) {
              var r = this._relativeTime[i];
              return D(r) ? r(e, t, i, n) : r.replace(/%d/i, e);
            }),
            (Ci.pastFuture = function (e, t) {
              var i = this._relativeTime[e > 0 ? 'future' : 'past'];
              return D(i) ? i(t) : i.replace(/%s/i, t);
            }),
            (Ci.set = function (e) {
              var t, i;
              for (i in e)
                a(e, i) &&
                  (D((t = e[i])) ? (this[i] = t) : (this['_' + i] = t));
              (this._config = e),
                (this._dayOfMonthOrdinalParseLenient = new RegExp(
                  (this._dayOfMonthOrdinalParse.source ||
                    this._ordinalParse.source) +
                    '|' +
                    /\d{1,2}/.source
                ));
            }),
            (Ci.eras = function (e, t) {
              var i,
                n,
                s,
                o = this._eras || lt('en')._eras;
              for (i = 0, n = o.length; i < n; ++i) {
                switch (typeof o[i].since) {
                  case 'string':
                    (s = r(o[i].since).startOf('day')),
                      (o[i].since = s.valueOf());
                }
                switch (typeof o[i].until) {
                  case 'undefined':
                    o[i].until = 1 / 0;
                    break;
                  case 'string':
                    (s = r(o[i].until).startOf('day').valueOf()),
                      (o[i].until = s.valueOf());
                }
              }
              return o;
            }),
            (Ci.erasParse = function (e, t, i) {
              var n,
                r,
                s,
                o,
                a,
                l = this.eras();
              for (e = e.toUpperCase(), n = 0, r = l.length; n < r; ++n)
                if (
                  ((s = l[n].name.toUpperCase()),
                  (o = l[n].abbr.toUpperCase()),
                  (a = l[n].narrow.toUpperCase()),
                  i)
                )
                  switch (t) {
                    case 'N':
                    case 'NN':
                    case 'NNN':
                      if (o === e) return l[n];
                      break;
                    case 'NNNN':
                      if (s === e) return l[n];
                      break;
                    case 'NNNNN':
                      if (a === e) return l[n];
                  }
                else if ([s, o, a].indexOf(e) >= 0) return l[n];
            }),
            (Ci.erasConvertYear = function (e, t) {
              var i = e.since <= e.until ? 1 : -1;
              return void 0 === t
                ? r(e.since).year()
                : r(e.since).year() + (t - e.offset) * i;
            }),
            (Ci.erasAbbrRegex = function (e) {
              return (
                a(this, '_erasAbbrRegex') || di.call(this),
                e ? this._erasAbbrRegex : this._erasRegex
              );
            }),
            (Ci.erasNameRegex = function (e) {
              return (
                a(this, '_erasNameRegex') || di.call(this),
                e ? this._erasNameRegex : this._erasRegex
              );
            }),
            (Ci.erasNarrowRegex = function (e) {
              return (
                a(this, '_erasNarrowRegex') || di.call(this),
                e ? this._erasNarrowRegex : this._erasRegex
              );
            }),
            (Ci.months = function (e, t) {
              return e
                ? s(this._months)
                  ? this._months[e.month()]
                  : this._months[
                      (this._months.isFormat || xe).test(t)
                        ? 'format'
                        : 'standalone'
                    ][e.month()]
                : s(this._months)
                ? this._months
                : this._months.standalone;
            }),
            (Ci.monthsShort = function (e, t) {
              return e
                ? s(this._monthsShort)
                  ? this._monthsShort[e.month()]
                  : this._monthsShort[xe.test(t) ? 'format' : 'standalone'][
                      e.month()
                    ]
                : s(this._monthsShort)
                ? this._monthsShort
                : this._monthsShort.standalone;
            }),
            (Ci.monthsParse = function (e, t, i) {
              var n, r, s;
              if (this._monthsParseExact) return De.call(this, e, t, i);
              for (
                this._monthsParse ||
                  ((this._monthsParse = []),
                  (this._longMonthsParse = []),
                  (this._shortMonthsParse = [])),
                  n = 0;
                n < 12;
                n++
              ) {
                if (
                  ((r = f([2e3, n])),
                  i &&
                    !this._longMonthsParse[n] &&
                    ((this._longMonthsParse[n] = new RegExp(
                      '^' + this.months(r, '').replace('.', '') + '$',
                      'i'
                    )),
                    (this._shortMonthsParse[n] = new RegExp(
                      '^' + this.monthsShort(r, '').replace('.', '') + '$',
                      'i'
                    ))),
                  i ||
                    this._monthsParse[n] ||
                    ((s =
                      '^' +
                      this.months(r, '') +
                      '|^' +
                      this.monthsShort(r, '')),
                    (this._monthsParse[n] = new RegExp(
                      s.replace('.', ''),
                      'i'
                    ))),
                  i && 'MMMM' === t && this._longMonthsParse[n].test(e))
                )
                  return n;
                if (i && 'MMM' === t && this._shortMonthsParse[n].test(e))
                  return n;
                if (!i && this._monthsParse[n].test(e)) return n;
              }
            }),
            (Ci.monthsRegex = function (e) {
              return this._monthsParseExact
                ? (a(this, '_monthsRegex') || Te.call(this),
                  e ? this._monthsStrictRegex : this._monthsRegex)
                : (a(this, '_monthsRegex') || (this._monthsRegex = Me),
                  this._monthsStrictRegex && e
                    ? this._monthsStrictRegex
                    : this._monthsRegex);
            }),
            (Ci.monthsShortRegex = function (e) {
              return this._monthsParseExact
                ? (a(this, '_monthsRegex') || Te.call(this),
                  e ? this._monthsShortStrictRegex : this._monthsShortRegex)
                : (a(this, '_monthsShortRegex') ||
                    (this._monthsShortRegex = Le),
                  this._monthsShortStrictRegex && e
                    ? this._monthsShortStrictRegex
                    : this._monthsShortRegex);
            }),
            (Ci.week = function (e) {
              return Be(e, this._week.dow, this._week.doy).week;
            }),
            (Ci.firstDayOfYear = function () {
              return this._week.doy;
            }),
            (Ci.firstDayOfWeek = function () {
              return this._week.dow;
            }),
            (Ci.weekdays = function (e, t) {
              var i = s(this._weekdays)
                ? this._weekdays
                : this._weekdays[
                    e && !0 !== e && this._weekdays.isFormat.test(t)
                      ? 'format'
                      : 'standalone'
                  ];
              return !0 === e ? Ye(i, this._week.dow) : e ? i[e.day()] : i;
            }),
            (Ci.weekdaysMin = function (e) {
              return !0 === e
                ? Ye(this._weekdaysMin, this._week.dow)
                : e
                ? this._weekdaysMin[e.day()]
                : this._weekdaysMin;
            }),
            (Ci.weekdaysShort = function (e) {
              return !0 === e
                ? Ye(this._weekdaysShort, this._week.dow)
                : e
                ? this._weekdaysShort[e.day()]
                : this._weekdaysShort;
            }),
            (Ci.weekdaysParse = function (e, t, i) {
              var n, r, s;
              if (this._weekdaysParseExact) return Ke.call(this, e, t, i);
              for (
                this._weekdaysParse ||
                  ((this._weekdaysParse = []),
                  (this._minWeekdaysParse = []),
                  (this._shortWeekdaysParse = []),
                  (this._fullWeekdaysParse = [])),
                  n = 0;
                n < 7;
                n++
              ) {
                if (
                  ((r = f([2e3, 1]).day(n)),
                  i &&
                    !this._fullWeekdaysParse[n] &&
                    ((this._fullWeekdaysParse[n] = new RegExp(
                      '^' + this.weekdays(r, '').replace('.', '\\.?') + '$',
                      'i'
                    )),
                    (this._shortWeekdaysParse[n] = new RegExp(
                      '^' +
                        this.weekdaysShort(r, '').replace('.', '\\.?') +
                        '$',
                      'i'
                    )),
                    (this._minWeekdaysParse[n] = new RegExp(
                      '^' + this.weekdaysMin(r, '').replace('.', '\\.?') + '$',
                      'i'
                    ))),
                  this._weekdaysParse[n] ||
                    ((s =
                      '^' +
                      this.weekdays(r, '') +
                      '|^' +
                      this.weekdaysShort(r, '') +
                      '|^' +
                      this.weekdaysMin(r, '')),
                    (this._weekdaysParse[n] = new RegExp(
                      s.replace('.', ''),
                      'i'
                    ))),
                  i && 'dddd' === t && this._fullWeekdaysParse[n].test(e))
                )
                  return n;
                if (i && 'ddd' === t && this._shortWeekdaysParse[n].test(e))
                  return n;
                if (i && 'dd' === t && this._minWeekdaysParse[n].test(e))
                  return n;
                if (!i && this._weekdaysParse[n].test(e)) return n;
              }
            }),
            (Ci.weekdaysRegex = function (e) {
              return this._weekdaysParseExact
                ? (a(this, '_weekdaysRegex') || qe.call(this),
                  e ? this._weekdaysStrictRegex : this._weekdaysRegex)
                : (a(this, '_weekdaysRegex') || (this._weekdaysRegex = ze),
                  this._weekdaysStrictRegex && e
                    ? this._weekdaysStrictRegex
                    : this._weekdaysRegex);
            }),
            (Ci.weekdaysShortRegex = function (e) {
              return this._weekdaysParseExact
                ? (a(this, '_weekdaysRegex') || qe.call(this),
                  e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
                : (a(this, '_weekdaysShortRegex') ||
                    (this._weekdaysShortRegex = Ue),
                  this._weekdaysShortStrictRegex && e
                    ? this._weekdaysShortStrictRegex
                    : this._weekdaysShortRegex);
            }),
            (Ci.weekdaysMinRegex = function (e) {
              return this._weekdaysParseExact
                ? (a(this, '_weekdaysRegex') || qe.call(this),
                  e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
                : (a(this, '_weekdaysMinRegex') ||
                    (this._weekdaysMinRegex = $e),
                  this._weekdaysMinStrictRegex && e
                    ? this._weekdaysMinStrictRegex
                    : this._weekdaysMinRegex);
            }),
            (Ci.isPM = function (e) {
              return 'p' === (e + '').toLowerCase().charAt(0);
            }),
            (Ci.meridiem = function (e, t, i) {
              return e > 11 ? (i ? 'pm' : 'PM') : i ? 'am' : 'AM';
            }),
            ot('en', {
              eras: [
                {
                  since: '0001-01-01',
                  until: 1 / 0,
                  offset: 1,
                  name: 'Anno Domini',
                  narrow: 'AD',
                  abbr: 'AD',
                },
                {
                  since: '0000-12-31',
                  until: -1 / 0,
                  offset: 1,
                  name: 'Before Christ',
                  narrow: 'BC',
                  abbr: 'BC',
                },
              ],
              dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
              ordinal: function (e) {
                var t = e % 10;
                return (
                  e +
                  (1 === K((e % 100) / 10)
                    ? 'th'
                    : 1 === t
                    ? 'st'
                    : 2 === t
                    ? 'nd'
                    : 3 === t
                    ? 'rd'
                    : 'th')
                );
              },
            }),
            (r.lang = k(
              'moment.lang is deprecated. Use moment.locale instead.',
              ot
            )),
            (r.langData = k(
              'moment.langData is deprecated. Use moment.localeData instead.',
              lt
            ));
          var Li = Math.abs;
          function Mi(e, t, i, n) {
            var r = jt(t, i);
            return (
              (e._milliseconds += n * r._milliseconds),
              (e._days += n * r._days),
              (e._months += n * r._months),
              e._bubble()
            );
          }
          function Di(e) {
            return e < 0 ? Math.floor(e) : Math.ceil(e);
          }
          function Ni(e) {
            return (4800 * e) / 146097;
          }
          function Ei(e) {
            return (146097 * e) / 4800;
          }
          function Ti(e) {
            return function () {
              return this.as(e);
            };
          }
          var Ii = Ti('ms'),
            Oi = Ti('s'),
            Ai = Ti('m'),
            Ri = Ti('h'),
            Pi = Ti('d'),
            Fi = Ti('w'),
            Bi = Ti('M'),
            Wi = Ti('Q'),
            Yi = Ti('y');
          function Hi(e) {
            return function () {
              return this.isValid() ? this._data[e] : NaN;
            };
          }
          var ji = Hi('milliseconds'),
            Vi = Hi('seconds'),
            zi = Hi('minutes'),
            Ui = Hi('hours'),
            $i = Hi('days'),
            Ki = Hi('months'),
            qi = Hi('years');
          var Gi = Math.round,
            Zi = { ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11 };
          function Ji(e, t, i, n, r) {
            return r.relativeTime(t || 1, !!i, e, n);
          }
          var Qi = Math.abs;
          function Xi(e) {
            return (e > 0) - (e < 0) || +e;
          }
          function en() {
            if (!this.isValid()) return this.localeData().invalidDate();
            var e,
              t,
              i,
              n,
              r,
              s,
              o,
              a,
              l = Qi(this._milliseconds) / 1e3,
              c = Qi(this._days),
              d = Qi(this._months),
              h = this.asSeconds();
            return h
              ? ((e = $(l / 60)),
                (t = $(e / 60)),
                (l %= 60),
                (e %= 60),
                (i = $(d / 12)),
                (d %= 12),
                (n = l ? l.toFixed(3).replace(/\.?0+$/, '') : ''),
                (r = h < 0 ? '-' : ''),
                (s = Xi(this._months) !== Xi(h) ? '-' : ''),
                (o = Xi(this._days) !== Xi(h) ? '-' : ''),
                (a = Xi(this._milliseconds) !== Xi(h) ? '-' : ''),
                r +
                  'P' +
                  (i ? s + i + 'Y' : '') +
                  (d ? s + d + 'M' : '') +
                  (c ? o + c + 'D' : '') +
                  (t || e || l ? 'T' : '') +
                  (t ? a + t + 'H' : '') +
                  (e ? a + e + 'M' : '') +
                  (l ? a + n + 'S' : ''))
              : 'P0D';
          }
          var tn = Tt.prototype;
          return (
            (tn.isValid = function () {
              return this._isValid;
            }),
            (tn.abs = function () {
              var e = this._data;
              return (
                (this._milliseconds = Li(this._milliseconds)),
                (this._days = Li(this._days)),
                (this._months = Li(this._months)),
                (e.milliseconds = Li(e.milliseconds)),
                (e.seconds = Li(e.seconds)),
                (e.minutes = Li(e.minutes)),
                (e.hours = Li(e.hours)),
                (e.months = Li(e.months)),
                (e.years = Li(e.years)),
                this
              );
            }),
            (tn.add = function (e, t) {
              return Mi(this, e, t, 1);
            }),
            (tn.subtract = function (e, t) {
              return Mi(this, e, t, -1);
            }),
            (tn.as = function (e) {
              if (!this.isValid()) return NaN;
              var t,
                i,
                n = this._milliseconds;
              if ('month' === (e = H(e)) || 'quarter' === e || 'year' === e)
                switch (
                  ((t = this._days + n / 864e5), (i = this._months + Ni(t)), e)
                ) {
                  case 'month':
                    return i;
                  case 'quarter':
                    return i / 3;
                  case 'year':
                    return i / 12;
                }
              else
                switch (((t = this._days + Math.round(Ei(this._months))), e)) {
                  case 'week':
                    return t / 7 + n / 6048e5;
                  case 'day':
                    return t + n / 864e5;
                  case 'hour':
                    return 24 * t + n / 36e5;
                  case 'minute':
                    return 1440 * t + n / 6e4;
                  case 'second':
                    return 86400 * t + n / 1e3;
                  case 'millisecond':
                    return Math.floor(864e5 * t) + n;
                  default:
                    throw new Error('Unknown unit ' + e);
                }
            }),
            (tn.asMilliseconds = Ii),
            (tn.asSeconds = Oi),
            (tn.asMinutes = Ai),
            (tn.asHours = Ri),
            (tn.asDays = Pi),
            (tn.asWeeks = Fi),
            (tn.asMonths = Bi),
            (tn.asQuarters = Wi),
            (tn.asYears = Yi),
            (tn.valueOf = function () {
              return this.isValid()
                ? this._milliseconds +
                    864e5 * this._days +
                    (this._months % 12) * 2592e6 +
                    31536e6 * K(this._months / 12)
                : NaN;
            }),
            (tn._bubble = function () {
              var e,
                t,
                i,
                n,
                r,
                s = this._milliseconds,
                o = this._days,
                a = this._months,
                l = this._data;
              return (
                (s >= 0 && o >= 0 && a >= 0) ||
                  (s <= 0 && o <= 0 && a <= 0) ||
                  ((s += 864e5 * Di(Ei(a) + o)), (o = 0), (a = 0)),
                (l.milliseconds = s % 1e3),
                (e = $(s / 1e3)),
                (l.seconds = e % 60),
                (t = $(e / 60)),
                (l.minutes = t % 60),
                (i = $(t / 60)),
                (l.hours = i % 24),
                (o += $(i / 24)),
                (a += r = $(Ni(o))),
                (o -= Di(Ei(r))),
                (n = $(a / 12)),
                (a %= 12),
                (l.days = o),
                (l.months = a),
                (l.years = n),
                this
              );
            }),
            (tn.clone = function () {
              return jt(this);
            }),
            (tn.get = function (e) {
              return (e = H(e)), this.isValid() ? this[e + 's']() : NaN;
            }),
            (tn.milliseconds = ji),
            (tn.seconds = Vi),
            (tn.minutes = zi),
            (tn.hours = Ui),
            (tn.days = $i),
            (tn.weeks = function () {
              return $(this.days() / 7);
            }),
            (tn.months = Ki),
            (tn.years = qi),
            (tn.humanize = function (e, t) {
              if (!this.isValid()) return this.localeData().invalidDate();
              var i,
                n,
                r = !1,
                s = Zi;
              return (
                'object' == typeof e && ((t = e), (e = !1)),
                'boolean' == typeof e && (r = e),
                'object' == typeof t &&
                  ((s = Object.assign({}, Zi, t)),
                  null != t.s && null == t.ss && (s.ss = t.s - 1)),
                (n = (function (e, t, i, n) {
                  var r = jt(e).abs(),
                    s = Gi(r.as('s')),
                    o = Gi(r.as('m')),
                    a = Gi(r.as('h')),
                    l = Gi(r.as('d')),
                    c = Gi(r.as('M')),
                    d = Gi(r.as('w')),
                    h = Gi(r.as('y')),
                    u =
                      (s <= i.ss && ['s', s]) ||
                      (s < i.s && ['ss', s]) ||
                      (o <= 1 && ['m']) ||
                      (o < i.m && ['mm', o]) ||
                      (a <= 1 && ['h']) ||
                      (a < i.h && ['hh', a]) ||
                      (l <= 1 && ['d']) ||
                      (l < i.d && ['dd', l]);
                  return (
                    null != i.w &&
                      (u = u || (d <= 1 && ['w']) || (d < i.w && ['ww', d])),
                    ((u = u ||
                      (c <= 1 && ['M']) ||
                      (c < i.M && ['MM', c]) ||
                      (h <= 1 && ['y']) || ['yy', h])[2] = t),
                    (u[3] = +e > 0),
                    (u[4] = n),
                    Ji.apply(null, u)
                  );
                })(this, !r, s, (i = this.localeData()))),
                r && (n = i.pastFuture(+this, n)),
                i.postformat(n)
              );
            }),
            (tn.toISOString = en),
            (tn.toString = en),
            (tn.toJSON = en),
            (tn.locale = Xt),
            (tn.localeData = ti),
            (tn.toIsoString = k(
              'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
              en
            )),
            (tn.lang = ei),
            P('X', 0, 0, 'unix'),
            P('x', 0, 0, 'valueOf'),
            fe('x', de),
            fe('X', /[+-]?\d+(\.\d{1,3})?/),
            be('X', function (e, t, i) {
              i._d = new Date(1e3 * parseFloat(e));
            }),
            be('x', function (e, t, i) {
              i._d = new Date(K(e));
            }),
            (r.version = '2.29.1'),
            (t = Lt),
            (r.fn = yi),
            (r.min = function () {
              return Nt('isBefore', [].slice.call(arguments, 0));
            }),
            (r.max = function () {
              return Nt('isAfter', [].slice.call(arguments, 0));
            }),
            (r.now = function () {
              return Date.now ? Date.now() : +new Date();
            }),
            (r.utc = f),
            (r.unix = function (e) {
              return Lt(1e3 * e);
            }),
            (r.months = function (e, t) {
              return ki(e, t, 'months');
            }),
            (r.isDate = h),
            (r.locale = ot),
            (r.invalid = _),
            (r.duration = jt),
            (r.isMoment = C),
            (r.weekdays = function (e, t, i) {
              return xi(e, t, i, 'weekdays');
            }),
            (r.parseZone = function () {
              return Lt.apply(null, arguments).parseZone();
            }),
            (r.localeData = lt),
            (r.isDuration = It),
            (r.monthsShort = function (e, t) {
              return ki(e, t, 'monthsShort');
            }),
            (r.weekdaysMin = function (e, t, i) {
              return xi(e, t, i, 'weekdaysMin');
            }),
            (r.defineLocale = at),
            (r.updateLocale = function (e, t) {
              if (null != t) {
                var i,
                  n,
                  r = et;
                null != tt[e] && null != tt[e].parentLocale
                  ? tt[e].set(N(tt[e]._config, t))
                  : (null != (n = st(e)) && (r = n._config),
                    (t = N(r, t)),
                    null == n && (t.abbr = e),
                    ((i = new E(t)).parentLocale = tt[e]),
                    (tt[e] = i)),
                  ot(e);
              } else
                null != tt[e] &&
                  (null != tt[e].parentLocale
                    ? ((tt[e] = tt[e].parentLocale), e === ot() && ot(e))
                    : null != tt[e] && delete tt[e]);
              return tt[e];
            }),
            (r.locales = function () {
              return x(tt);
            }),
            (r.weekdaysShort = function (e, t, i) {
              return xi(e, t, i, 'weekdaysShort');
            }),
            (r.normalizeUnits = H),
            (r.relativeTimeRounding = function (e) {
              return void 0 === e
                ? Gi
                : 'function' == typeof e && ((Gi = e), !0);
            }),
            (r.relativeTimeThreshold = function (e, t) {
              return (
                void 0 !== Zi[e] &&
                (void 0 === t
                  ? Zi[e]
                  : ((Zi[e] = t), 's' === e && (Zi.ss = t - 1), !0))
              );
            }),
            (r.calendarFormat = function (e, t) {
              var i = e.diff(t, 'days', !0);
              return i < -6
                ? 'sameElse'
                : i < -1
                ? 'lastWeek'
                : i < 0
                ? 'lastDay'
                : i < 1
                ? 'sameDay'
                : i < 2
                ? 'nextDay'
                : i < 7
                ? 'nextWeek'
                : 'sameElse';
            }),
            (r.prototype = yi),
            (r.HTML5_FMT = {
              DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',
              DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',
              DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',
              DATE: 'YYYY-MM-DD',
              TIME: 'HH:mm',
              TIME_SECONDS: 'HH:mm:ss',
              TIME_MS: 'HH:mm:ss.SSS',
              WEEK: 'GGGG-[W]WW',
              MONTH: 'YYYY-MM',
            }),
            r
          );
        })();
      },
      50158: (e, t, i) => {
        var n;
        (self.MonacoEnvironment =
          ((n = {
            editorWorkerService: 'editor.worker.js',
            json: 'json.worker.js',
          }),
          {
            getWorkerUrl: function (e, t) {
              var r = i.p,
                s = (r ? r.replace(/\/$/, '') + '/' : '') + n[t];
              if (/^((http:)|(https:)|(file:)|(\/\/))/.test(s)) {
                var o = String(window.location),
                  a = o.substr(
                    0,
                    o.length -
                      window.location.hash.length -
                      window.location.search.length -
                      window.location.pathname.length
                  );
                if (s.substring(0, a.length) !== a) {
                  var l = new Blob(
                    ['/*' + t + '*/importScripts("' + s + '");'],
                    { type: 'application/javascript' }
                  );
                  return URL.createObjectURL(l);
                }
              }
              return s;
            },
          })),
          i(29477),
          i(17355),
          i(17084),
          i(84594),
          i(62015),
          i(9093),
          i(53832),
          i(64494),
          i(89098),
          i(76522),
          i(18728),
          i(42834),
          i(7441),
          i(93391),
          i(62943),
          i(23111),
          i(76798),
          i(42698),
          i(62097),
          i(92729),
          i(10365),
          i(25217),
          i(19646),
          i(83554),
          i(80638),
          i(97830),
          i(42408),
          i(34800),
          i(38486),
          i(55027),
          i(40517),
          i(97720),
          i(78944),
          i(98936),
          i(4454),
          i(81955),
          i(78694),
          i(24993),
          i(15662),
          i(19720),
          i(77847),
          i(31725),
          i(70185),
          i(43497),
          i(99453),
          i(60661),
          (e.exports = i(34935)),
          i(72323);
      },
      36640: (e, t, i) => {
        var n;
        (self.MonacoEnvironment =
          ((n = {
            editorWorkerService: 'editor.worker.js',
            json: 'json.worker.js',
          }),
          {
            getWorkerUrl: function (e, t) {
              var r = i.p,
                s = (r ? r.replace(/\/$/, '') + '/' : '') + n[t];
              if (/^((http:)|(https:)|(file:)|(\/\/))/.test(s)) {
                var o = String(window.location),
                  a = o.substr(
                    0,
                    o.length -
                      window.location.hash.length -
                      window.location.search.length -
                      window.location.pathname.length
                  );
                if (s.substring(0, a.length) !== a) {
                  var l = new Blob(
                    ['/*' + t + '*/importScripts("' + s + '");'],
                    { type: 'application/javascript' }
                  );
                  return URL.createObjectURL(l);
                }
              }
              return s;
            },
          })),
          i(29477),
          i(17355),
          i(17084),
          i(84594),
          i(62015),
          i(9093),
          i(53832),
          i(64494),
          i(89098),
          i(76522),
          i(18728),
          i(42834),
          i(7441),
          i(93391),
          i(62943),
          i(23111),
          i(76798),
          i(42698),
          i(62097),
          i(92729),
          i(10365),
          i(25217),
          i(19646),
          i(83554),
          i(80638),
          i(97830),
          i(42408),
          i(34800),
          i(38486),
          i(55027),
          i(40517),
          i(97720),
          i(78944),
          i(98936),
          i(4454),
          i(81955),
          i(78694),
          i(24993),
          i(15662),
          i(19720),
          i(77847),
          i(31725),
          i(70185),
          i(43497),
          i(99453),
          i(60661),
          (e.exports = i(98368)),
          i(72323);
      },
      16268: (e, t, i) => {
        'use strict';
        i.d(t, {
          px: () => s,
          WP: () => o,
          fX: () => a,
          ie: () => l,
          mX: () => c,
          un: () => h,
          vU: () => u,
          Pf: () => g,
          i7: () => f,
          G6: () => p,
          MG: () => m,
          zc: () => _,
          X5: () => b,
          $W: () => v,
        });
        var n = i(4669);
        class r {
          constructor() {
            (this._zoomLevel = 0),
              (this._lastZoomLevelChangeTime = 0),
              (this._onDidChangeZoomLevel = new n.Q5()),
              (this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event),
              (this._zoomFactor = 1);
          }
          getZoomLevel() {
            return this._zoomLevel;
          }
          getTimeSinceLastZoomLevelChanged() {
            return Date.now() - this._lastZoomLevelChangeTime;
          }
          getZoomFactor() {
            return this._zoomFactor;
          }
          getPixelRatio() {
            let e = document.createElement('canvas').getContext('2d');
            return (
              (window.devicePixelRatio || 1) /
              (e.webkitBackingStorePixelRatio ||
                e.mozBackingStorePixelRatio ||
                e.msBackingStorePixelRatio ||
                e.oBackingStorePixelRatio ||
                e.backingStorePixelRatio ||
                1)
            );
          }
        }
        function s() {
          return r.INSTANCE.getZoomLevel();
        }
        function o() {
          return r.INSTANCE.getTimeSinceLastZoomLevelChanged();
        }
        function a(e) {
          return r.INSTANCE.onDidChangeZoomLevel(e);
        }
        function l() {
          return r.INSTANCE.getZoomFactor();
        }
        function c() {
          return r.INSTANCE.getPixelRatio();
        }
        r.INSTANCE = new r();
        const d = navigator.userAgent,
          h = d.indexOf('Edge/') >= 0,
          u = d.indexOf('Firefox') >= 0,
          g = d.indexOf('AppleWebKit') >= 0,
          f = d.indexOf('Chrome') >= 0,
          p = !f && d.indexOf('Safari') >= 0,
          m = !f && !p && g,
          _ = d.indexOf('iPad') >= 0 || (p && navigator.maxTouchPoints > 0),
          b = h && d.indexOf('WebView/') >= 0,
          v =
            window.matchMedia &&
            window.matchMedia('(display-mode: standalone)').matches;
      },
      10161: (e, t, i) => {
        'use strict';
        i.d(t, { D: () => s });
        var n = i(16268),
          r = i(1432);
        const s = {
          clipboard: {
            writeText:
              r.tY ||
              (document.queryCommandSupported &&
                document.queryCommandSupported('copy')) ||
              !!(
                navigator &&
                navigator.clipboard &&
                navigator.clipboard.writeText
              ),
            readText:
              r.tY ||
              !!(
                navigator &&
                navigator.clipboard &&
                navigator.clipboard.readText
              ),
            richText: (() => {
              if (n.un) {
                let e = navigator.userAgent.indexOf('Edge/'),
                  t = parseInt(
                    navigator.userAgent.substring(
                      e + 5,
                      navigator.userAgent.indexOf('.', e)
                    ),
                    10
                  );
                if (!t || (t >= 12 && t <= 16)) return !1;
              }
              return !0;
            })(),
          },
          keyboard: r.tY || n.$W ? 0 : navigator.keyboard || n.G6 ? 1 : 2,
          touch:
            'ontouchstart' in window ||
            navigator.maxTouchPoints > 0 ||
            window.navigator.msMaxTouchPoints > 0,
          pointerEvents:
            window.PointerEvent &&
            ('ontouchstart' in window ||
              window.navigator.maxTouchPoints > 0 ||
              navigator.maxTouchPoints > 0 ||
              window.navigator.msMaxTouchPoints > 0),
        };
      },
      23547: (e, t, i) => {
        'use strict';
        i.d(t, { go: () => n, TN: () => r, P$: () => s });
        const n = {
          RESOURCES: 'ResourceURLs',
          DOWNLOAD_URL: 'DownloadURL',
          FILES: 'Files',
          TEXT: 'text/plain',
        };
        class r {
          constructor(e) {
            this.data = e;
          }
          update() {}
          getData() {
            return this.data;
          }
        }
        const s = { CurrentDragAndDropData: void 0 };
      },
      65321: (e, t, i) => {
        'use strict';
        i.d(t, {
          PO: () => p,
          ZF: () => m,
          Uw: () => _,
          pv: () => v,
          cn: () => y,
          PT: () => w,
          IV: () => C,
          GK: () => S,
          og: () => k,
          nm: () => L,
          mu: () => D,
          Gw: () => N,
          Lo: () => E,
          qV: () => T,
          j_: () => I,
          RE: () => O,
          lI: () => A,
          jL: () => R,
          Y_: () => Y,
          Dx: () => H,
          D6: () => j,
          xQ: () => U,
          i: () => $,
          DI: () => K,
          w: () => q,
          FK: () => G,
          If: () => Z,
          wn: () => J,
          jg: () => Q,
          Fx: () => X,
          uU: () => ee,
          OO: () => ie,
          Ay: () => ne,
          vY: () => re,
          dS: () => se,
          fk: () => le,
          uN: () => ce,
          Re: () => de,
          tw: () => he,
          zB: () => ue,
          vL: () => ge,
          _0: () => fe,
          go: () => me,
          R3: () => _e,
          mc: () => ve,
          $: () => Ce,
          $Z: () => Se,
          Cp: () => ke,
          eJ: () => xe,
          H$: () => Le,
          Uh: () => Me,
          V3: () => De,
          jt: () => Ne,
          uD: () => Ee,
          wY: () => Te,
        });
        var n = i(16268),
          r = i(4850),
          s = i(59069),
          o = i(23938),
          a = i(15393),
          l = i(17301),
          c = i(4669),
          d = i(5976),
          h = i(1432),
          u = i(9488),
          g = i(66663),
          f = i(10161);
        function p(e) {
          for (; e.firstChild; ) e.removeChild(e.firstChild);
        }
        function m(e) {
          e.parentNode && e.parentNode.removeChild(e);
        }
        function _(e) {
          for (; e; ) {
            if (e === document.body) return !0;
            e = e.parentNode || e.host;
          }
          return !1;
        }
        const b = new (class {
            hasClass(e, t) {
              return Boolean(t) && e.classList && e.classList.contains(t);
            }
            addClasses(e, ...t) {
              t.forEach((t) =>
                t.split(' ').forEach((t) => this.addClass(e, t))
              );
            }
            addClass(e, t) {
              t && e.classList && e.classList.add(t);
            }
            removeClass(e, t) {
              t && e.classList && e.classList.remove(t);
            }
            removeClasses(e, ...t) {
              t.forEach((t) =>
                t.split(' ').forEach((t) => this.removeClass(e, t))
              );
            }
            toggleClass(e, t, i) {
              e.classList && e.classList.toggle(t, i);
            }
          })(),
          v = b.hasClass.bind(b),
          y = b.addClass.bind(b),
          w = b.addClasses.bind(b),
          C = b.removeClass.bind(b),
          S = b.removeClasses.bind(b),
          k = b.toggleClass.bind(b);
        class x {
          constructor(e, t, i, n) {
            (this._node = e),
              (this._type = t),
              (this._handler = i),
              (this._options = n || !1),
              this._node.addEventListener(
                this._type,
                this._handler,
                this._options
              );
          }
          dispose() {
            this._handler &&
              (this._node.removeEventListener(
                this._type,
                this._handler,
                this._options
              ),
              (this._node = null),
              (this._handler = null));
          }
        }
        function L(e, t, i, n) {
          return new x(e, t, i, n);
        }
        function M(e) {
          return function (t) {
            return e(new o.n(t));
          };
        }
        let D = function (e, t, i, n) {
            let r = i;
            return (
              'click' === t || 'mousedown' === t
                ? (r = M(i))
                : ('keydown' !== t && 'keypress' !== t && 'keyup' !== t) ||
                  (r = (function (e) {
                    return function (t) {
                      return e(new s.y(t));
                    };
                  })(i)),
              L(e, t, r, n)
            );
          },
          N = function (e, t, i) {
            return E(e, M(t), i);
          };
        function E(e, t, i) {
          return L(
            e,
            h.gn && f.D.pointerEvents ? he.POINTER_DOWN : he.MOUSE_DOWN,
            t,
            i
          );
        }
        function T(e, t, i) {
          return L(
            e,
            h.gn && f.D.pointerEvents ? he.POINTER_UP : he.MOUSE_UP,
            t,
            i
          );
        }
        function I(e, t) {
          return L(e, 'mouseout', (i) => {
            let n = i.relatedTarget;
            for (; n && n !== e; ) n = n.parentNode;
            n !== e && t(i);
          });
        }
        function O(e, t) {
          return L(e, 'pointerout', (i) => {
            let n = i.relatedTarget;
            for (; n && n !== e; ) n = n.parentNode;
            n !== e && t(i);
          });
        }
        let A,
          R,
          P = null;
        class F {
          constructor(e, t = 0) {
            (this._runner = e), (this.priority = t), (this._canceled = !1);
          }
          dispose() {
            this._canceled = !0;
          }
          execute() {
            if (!this._canceled)
              try {
                this._runner();
              } catch (e) {
                (0, l.dL)(e);
              }
          }
          static sort(e, t) {
            return t.priority - e.priority;
          }
        }
        !(function () {
          let e = [],
            t = null,
            i = !1,
            n = !1,
            r = () => {
              for (i = !1, t = e, e = [], n = !0; t.length > 0; )
                t.sort(F.sort), t.shift().execute();
              n = !1;
            };
          (R = (t, n = 0) => {
            let s = new F(t, n);
            return (
              e.push(s),
              i ||
                ((i = !0),
                (function (e) {
                  if (!P) {
                    const e = (e) =>
                      setTimeout(() => e(new Date().getTime()), 0);
                    P =
                      self.requestAnimationFrame ||
                      self.msRequestAnimationFrame ||
                      self.webkitRequestAnimationFrame ||
                      self.mozRequestAnimationFrame ||
                      self.oRequestAnimationFrame ||
                      e;
                  }
                  P.call(self, e);
                })(r)),
              s
            );
          }),
            (A = (e, i) => {
              if (n) {
                let n = new F(e, i);
                return t.push(n), n;
              }
              return R(e, i);
            });
        })();
        const B = function (e, t) {
          return t;
        };
        class W extends d.JT {
          constructor(e, t, i, n = B, r = 16) {
            super();
            let s = null,
              o = 0,
              l = this._register(new a._F()),
              c = () => {
                (o = new Date().getTime()), i(s), (s = null);
              };
            this._register(
              L(e, t, (e) => {
                s = n(s, e);
                let t = new Date().getTime() - o;
                t >= r ? (l.cancel(), c()) : l.setIfNotSet(c, r - t);
              })
            );
          }
        }
        function Y(e, t, i, n, r) {
          return new W(e, t, i, n, r);
        }
        function H(e) {
          return document.defaultView.getComputedStyle(e, null);
        }
        function j(e) {
          if (e !== document.body) return new z(e.clientWidth, e.clientHeight);
          if (h.gn && window.visualViewport) {
            const e = window.visualViewport.width,
              t = window.visualViewport.height - (n.$W ? 24 : 0);
            return new z(e, t);
          }
          if (window.innerWidth && window.innerHeight)
            return new z(window.innerWidth, window.innerHeight);
          if (
            document.body &&
            document.body.clientWidth &&
            document.body.clientHeight
          )
            return new z(document.body.clientWidth, document.body.clientHeight);
          if (
            document.documentElement &&
            document.documentElement.clientWidth &&
            document.documentElement.clientHeight
          )
            return new z(
              document.documentElement.clientWidth,
              document.documentElement.clientHeight
            );
          throw new Error('Unable to figure out browser width and height');
        }
        class V {
          static convertToPixels(e, t) {
            return parseFloat(t) || 0;
          }
          static getDimension(e, t, i) {
            let n = H(e),
              r = '0';
            return (
              n &&
                (r = n.getPropertyValue
                  ? n.getPropertyValue(t)
                  : n.getAttribute(i)),
              V.convertToPixels(e, r)
            );
          }
          static getBorderLeftWidth(e) {
            return V.getDimension(e, 'border-left-width', 'borderLeftWidth');
          }
          static getBorderRightWidth(e) {
            return V.getDimension(e, 'border-right-width', 'borderRightWidth');
          }
          static getBorderTopWidth(e) {
            return V.getDimension(e, 'border-top-width', 'borderTopWidth');
          }
          static getBorderBottomWidth(e) {
            return V.getDimension(
              e,
              'border-bottom-width',
              'borderBottomWidth'
            );
          }
          static getPaddingLeft(e) {
            return V.getDimension(e, 'padding-left', 'paddingLeft');
          }
          static getPaddingRight(e) {
            return V.getDimension(e, 'padding-right', 'paddingRight');
          }
          static getPaddingTop(e) {
            return V.getDimension(e, 'padding-top', 'paddingTop');
          }
          static getPaddingBottom(e) {
            return V.getDimension(e, 'padding-bottom', 'paddingBottom');
          }
          static getMarginLeft(e) {
            return V.getDimension(e, 'margin-left', 'marginLeft');
          }
          static getMarginTop(e) {
            return V.getDimension(e, 'margin-top', 'marginTop');
          }
          static getMarginRight(e) {
            return V.getDimension(e, 'margin-right', 'marginRight');
          }
          static getMarginBottom(e) {
            return V.getDimension(e, 'margin-bottom', 'marginBottom');
          }
        }
        class z {
          constructor(e, t) {
            (this.width = e), (this.height = t);
          }
        }
        function U(e) {
          let t = e.offsetParent,
            i = e.offsetTop,
            n = e.offsetLeft;
          for (
            ;
            null !== (e = e.parentNode) &&
            e !== document.body &&
            e !== document.documentElement;

          ) {
            i -= e.scrollTop;
            const r = te(e) ? null : H(e);
            r && (n -= 'rtl' !== r.direction ? e.scrollLeft : -e.scrollLeft),
              e === t &&
                ((n += V.getBorderLeftWidth(e)),
                (i += V.getBorderTopWidth(e)),
                (i += e.offsetTop),
                (n += e.offsetLeft),
                (t = e.offsetParent));
          }
          return { left: n, top: i };
        }
        function $(e) {
          let t = e.getBoundingClientRect();
          return {
            left: t.left + K.scrollX,
            top: t.top + K.scrollY,
            width: t.width,
            height: t.height,
          };
        }
        const K = new (class {
          get scrollX() {
            return 'number' == typeof window.scrollX
              ? window.scrollX
              : document.body.scrollLeft + document.documentElement.scrollLeft;
          }
          get scrollY() {
            return 'number' == typeof window.scrollY
              ? window.scrollY
              : document.body.scrollTop + document.documentElement.scrollTop;
          }
        })();
        function q(e) {
          let t = V.getMarginLeft(e) + V.getMarginRight(e);
          return e.offsetWidth + t;
        }
        function G(e) {
          let t = V.getBorderLeftWidth(e) + V.getBorderRightWidth(e),
            i = V.getPaddingLeft(e) + V.getPaddingRight(e);
          return e.offsetWidth - t - i;
        }
        function Z(e) {
          let t = V.getBorderTopWidth(e) + V.getBorderBottomWidth(e),
            i = V.getPaddingTop(e) + V.getPaddingBottom(e);
          return e.offsetHeight - t - i;
        }
        function J(e) {
          let t = V.getMarginTop(e) + V.getMarginBottom(e);
          return e.offsetHeight + t;
        }
        function Q(e, t) {
          for (; e; ) {
            if (e === t) return !0;
            e = e.parentNode;
          }
          return !1;
        }
        function X(e, t, i) {
          for (; e && e.nodeType === e.ELEMENT_NODE; ) {
            if (v(e, t)) return e;
            if (i)
              if ('string' == typeof i) {
                if (v(e, i)) return null;
              } else if (e === i) return null;
            e = e.parentNode;
          }
          return null;
        }
        function ee(e, t, i) {
          return !!X(e, t, i);
        }
        function te(e) {
          return e && !!e.host && !!e.mode;
        }
        function ie(e) {
          return !!ne(e);
        }
        function ne(e) {
          for (; e.parentNode; ) {
            if (e === document.body) return null;
            e = e.parentNode;
          }
          return te(e) ? e : null;
        }
        function re() {
          let e = document.activeElement;
          for (; null == e ? void 0 : e.shadowRoot; )
            e = e.shadowRoot.activeElement;
          return e;
        }
        function se(e = document.getElementsByTagName('head')[0]) {
          let t = document.createElement('style');
          return (
            (t.type = 'text/css'), (t.media = 'screen'), e.appendChild(t), t
          );
        }
        let oe = null;
        function ae() {
          return oe || (oe = se()), oe;
        }
        function le(e, t, i = ae()) {
          i && t && i.sheet.insertRule(e + '{' + t + '}', 0);
        }
        function ce(e, t = ae()) {
          if (!t) return;
          let i = (function (e) {
              return e && e.sheet && e.sheet.rules
                ? e.sheet.rules
                : e && e.sheet && e.sheet.cssRules
                ? e.sheet.cssRules
                : [];
            })(t),
            n = [];
          for (let t = 0; t < i.length; t++)
            -1 !== i[t].selectorText.indexOf(e) && n.push(t);
          for (let e = n.length - 1; e >= 0; e--) t.sheet.deleteRule(n[e]);
        }
        function de(e) {
          return 'object' == typeof HTMLElement
            ? e instanceof HTMLElement
            : e &&
                'object' == typeof e &&
                1 === e.nodeType &&
                'string' == typeof e.nodeName;
        }
        const he = {
            CLICK: 'click',
            AUXCLICK: 'auxclick',
            DBLCLICK: 'dblclick',
            MOUSE_UP: 'mouseup',
            MOUSE_DOWN: 'mousedown',
            MOUSE_OVER: 'mouseover',
            MOUSE_MOVE: 'mousemove',
            MOUSE_OUT: 'mouseout',
            MOUSE_ENTER: 'mouseenter',
            MOUSE_LEAVE: 'mouseleave',
            MOUSE_WHEEL: n.un ? 'mousewheel' : 'wheel',
            POINTER_UP: 'pointerup',
            POINTER_DOWN: 'pointerdown',
            POINTER_MOVE: 'pointermove',
            CONTEXT_MENU: 'contextmenu',
            WHEEL: 'wheel',
            KEY_DOWN: 'keydown',
            KEY_PRESS: 'keypress',
            KEY_UP: 'keyup',
            LOAD: 'load',
            BEFORE_UNLOAD: 'beforeunload',
            UNLOAD: 'unload',
            ABORT: 'abort',
            ERROR: 'error',
            RESIZE: 'resize',
            SCROLL: 'scroll',
            FULLSCREEN_CHANGE: 'fullscreenchange',
            WK_FULLSCREEN_CHANGE: 'webkitfullscreenchange',
            SELECT: 'select',
            CHANGE: 'change',
            SUBMIT: 'submit',
            RESET: 'reset',
            FOCUS: 'focus',
            FOCUS_IN: 'focusin',
            FOCUS_OUT: 'focusout',
            BLUR: 'blur',
            INPUT: 'input',
            STORAGE: 'storage',
            DRAG_START: 'dragstart',
            DRAG: 'drag',
            DRAG_ENTER: 'dragenter',
            DRAG_LEAVE: 'dragleave',
            DRAG_OVER: 'dragover',
            DROP: 'drop',
            DRAG_END: 'dragend',
            ANIMATION_START: n.Pf ? 'webkitAnimationStart' : 'animationstart',
            ANIMATION_END: n.Pf ? 'webkitAnimationEnd' : 'animationend',
            ANIMATION_ITERATION: n.Pf
              ? 'webkitAnimationIteration'
              : 'animationiteration',
          },
          ue = {
            stop: function (e, t) {
              e.preventDefault ? e.preventDefault() : (e.returnValue = !1),
                t &&
                  (e.stopPropagation
                    ? e.stopPropagation()
                    : (e.cancelBubble = !0));
            },
          };
        function ge(e) {
          let t = [];
          for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++)
            (t[i] = e.scrollTop), (e = e.parentNode);
          return t;
        }
        function fe(e, t) {
          for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++)
            e.scrollTop !== t[i] && (e.scrollTop = t[i]), (e = e.parentNode);
        }
        class pe extends d.JT {
          constructor(e) {
            super(),
              (this._onDidFocus = this._register(new c.Q5())),
              (this.onDidFocus = this._onDidFocus.event),
              (this._onDidBlur = this._register(new c.Q5())),
              (this.onDidBlur = this._onDidBlur.event);
            let t = Q(document.activeElement, e),
              i = !1;
            const n = () => {
                (i = !1), t || ((t = !0), this._onDidFocus.fire());
              },
              s = () => {
                t &&
                  ((i = !0),
                  window.setTimeout(() => {
                    i && ((i = !1), (t = !1), this._onDidBlur.fire());
                  }, 0));
              };
            (this._refreshStateHandler = () => {
              Q(document.activeElement, e) !== t && (t ? s() : n());
            }),
              this._register((0, r.j)(e, he.FOCUS, !0)(n)),
              this._register((0, r.j)(e, he.BLUR, !0)(s));
          }
        }
        function me(e) {
          return new pe(e);
        }
        function _e(e, ...t) {
          return t.forEach((t) => e.appendChild(t)), t[t.length - 1];
        }
        const be = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;
        function ve(e, ...t) {
          (e.innerText = ''),
            (0, u.kX)(t).forEach((t) => {
              t instanceof Node
                ? e.appendChild(t)
                : e.appendChild(document.createTextNode(t));
            });
        }
        var ye;
        function we(e, t, i, ...n) {
          let r = be.exec(t);
          if (!r) throw new Error('Bad use of emmet');
          i = Object.assign({}, i || {});
          let s,
            o = r[1] || 'div';
          return (
            (s =
              e !== ye.HTML
                ? document.createElementNS(e, o)
                : document.createElement(o)),
            r[3] && (s.id = r[3]),
            r[4] && (s.className = r[4].replace(/\./g, ' ').trim()),
            Object.keys(i).forEach((e) => {
              const t = i[e];
              void 0 !== t &&
                (/^on\w+$/.test(e)
                  ? (s[e] = t)
                  : 'selected' === e
                  ? t && s.setAttribute(e, 'true')
                  : s.setAttribute(e, t));
            }),
            (0, u.kX)(n).forEach((e) => {
              e instanceof Node
                ? s.appendChild(e)
                : s.appendChild(document.createTextNode(e));
            }),
            s
          );
        }
        function Ce(e, t, ...i) {
          return we(ye.HTML, e, t, ...i);
        }
        function Se(...e) {
          for (let t of e)
            (t.style.display = ''), t.removeAttribute('aria-hidden');
        }
        function ke(...e) {
          for (let t of e)
            (t.style.display = 'none'), t.setAttribute('aria-hidden', 'true');
        }
        function xe(e) {
          if (e && e.hasAttribute('tabIndex')) {
            if (document.activeElement === e) {
              let t = (function (e, t) {
                for (; e && e.nodeType === e.ELEMENT_NODE; ) {
                  if (e instanceof HTMLElement && e.hasAttribute('tabIndex'))
                    return e;
                  e = e.parentNode;
                }
                return null;
              })(e.parentElement);
              t && t.focus();
            }
            e.removeAttribute('tabindex');
          }
        }
        function Le(e) {
          return Array.prototype.slice.call(
            document.getElementsByTagName(e),
            0
          );
        }
        function Me(e) {
          const t = window.devicePixelRatio * e;
          return Math.max(1, Math.floor(t)) / window.devicePixelRatio;
        }
        function De(e) {
          if (h.tY || n.X5) window.open(e);
          else {
            let t = window.open();
            t && ((t.opener = null), (t.location.href = e));
          }
        }
        function Ne(e) {
          const t = () => {
            e(), (i = R(t));
          };
          let i = R(t);
          return (0, d.OF)(() => i.dispose());
        }
        function Ee(e) {
          return e && g.l.vscodeRemote === e.scheme ? g.W.rewrite(e) : e;
        }
        function Te(e) {
          return e
            ? `url('${Ee(e).toString(!0).replace(/'/g, '%27')}')`
            : "url('')";
        }
        !(function (e) {
          (e.HTML = 'http://www.w3.org/1999/xhtml'),
            (e.SVG = 'http://www.w3.org/2000/svg');
        })(ye || (ye = {})),
          (Ce.SVG = function (e, t, ...i) {
            return we(ye.SVG, e, t, ...i);
          }),
          g.W.setPreferredWebSchema(
            /^https:/.test(window.location.href) ? 'https' : 'http'
          );
      },
      4850: (e, t, i) => {
        'use strict';
        i.d(t, { j: () => r, s: () => s });
        var n = i(4669);
        const r = (e, t, i) => {
          const r = (e) => s.fire(e),
            s = new n.Q5({
              onFirstListenerAdd: () => {
                e.addEventListener(t, r, i);
              },
              onLastListenerRemove: () => {
                e.removeEventListener(t, r, i);
              },
            });
          return s.event;
        };
        function s(e) {
          return n.ju.map(
            e,
            (e) => (e.preventDefault(), e.stopPropagation(), e)
          );
        }
      },
      38626: (e, t, i) => {
        'use strict';
        i.d(t, { Z: () => r, X: () => s });
        var n = i(65321);
        class r {
          constructor(e) {
            (this.domNode = e),
              (this._maxWidth = -1),
              (this._width = -1),
              (this._height = -1),
              (this._top = -1),
              (this._left = -1),
              (this._bottom = -1),
              (this._right = -1),
              (this._fontFamily = ''),
              (this._fontWeight = ''),
              (this._fontSize = -1),
              (this._fontFeatureSettings = ''),
              (this._lineHeight = -1),
              (this._letterSpacing = -100),
              (this._className = ''),
              (this._display = ''),
              (this._position = ''),
              (this._visibility = ''),
              (this._backgroundColor = ''),
              (this._layerHint = !1),
              (this._contain = 'none'),
              (this._boxShadow = '');
          }
          setMaxWidth(e) {
            this._maxWidth !== e &&
              ((this._maxWidth = e),
              (this.domNode.style.maxWidth = this._maxWidth + 'px'));
          }
          setWidth(e) {
            this._width !== e &&
              ((this._width = e),
              (this.domNode.style.width = this._width + 'px'));
          }
          setHeight(e) {
            this._height !== e &&
              ((this._height = e),
              (this.domNode.style.height = this._height + 'px'));
          }
          setTop(e) {
            this._top !== e &&
              ((this._top = e), (this.domNode.style.top = this._top + 'px'));
          }
          unsetTop() {
            -1 !== this._top &&
              ((this._top = -1), (this.domNode.style.top = ''));
          }
          setLeft(e) {
            this._left !== e &&
              ((this._left = e), (this.domNode.style.left = this._left + 'px'));
          }
          setBottom(e) {
            this._bottom !== e &&
              ((this._bottom = e),
              (this.domNode.style.bottom = this._bottom + 'px'));
          }
          setRight(e) {
            this._right !== e &&
              ((this._right = e),
              (this.domNode.style.right = this._right + 'px'));
          }
          setFontFamily(e) {
            this._fontFamily !== e &&
              ((this._fontFamily = e),
              (this.domNode.style.fontFamily = this._fontFamily));
          }
          setFontWeight(e) {
            this._fontWeight !== e &&
              ((this._fontWeight = e),
              (this.domNode.style.fontWeight = this._fontWeight));
          }
          setFontSize(e) {
            this._fontSize !== e &&
              ((this._fontSize = e),
              (this.domNode.style.fontSize = this._fontSize + 'px'));
          }
          setFontFeatureSettings(e) {
            this._fontFeatureSettings !== e &&
              ((this._fontFeatureSettings = e),
              (this.domNode.style.fontFeatureSettings = this._fontFeatureSettings));
          }
          setLineHeight(e) {
            this._lineHeight !== e &&
              ((this._lineHeight = e),
              (this.domNode.style.lineHeight = this._lineHeight + 'px'));
          }
          setLetterSpacing(e) {
            this._letterSpacing !== e &&
              ((this._letterSpacing = e),
              (this.domNode.style.letterSpacing = this._letterSpacing + 'px'));
          }
          setClassName(e) {
            this._className !== e &&
              ((this._className = e),
              (this.domNode.className = this._className));
          }
          toggleClassName(e, t) {
            n.og(this.domNode, e, t),
              (this._className = this.domNode.className);
          }
          setDisplay(e) {
            this._display !== e &&
              ((this._display = e),
              (this.domNode.style.display = this._display));
          }
          setPosition(e) {
            this._position !== e &&
              ((this._position = e),
              (this.domNode.style.position = this._position));
          }
          setVisibility(e) {
            this._visibility !== e &&
              ((this._visibility = e),
              (this.domNode.style.visibility = this._visibility));
          }
          setBackgroundColor(e) {
            this._backgroundColor !== e &&
              ((this._backgroundColor = e),
              (this.domNode.style.backgroundColor = this._backgroundColor));
          }
          setLayerHinting(e) {
            this._layerHint !== e &&
              ((this._layerHint = e),
              (this.domNode.style.transform = this._layerHint
                ? 'translate3d(0px, 0px, 0px)'
                : ''));
          }
          setBoxShadow(e) {
            this._boxShadow !== e &&
              ((this._boxShadow = e), (this.domNode.style.boxShadow = e));
          }
          setContain(e) {
            this._contain !== e &&
              ((this._contain = e),
              (this.domNode.style.contain = this._contain));
          }
          setAttribute(e, t) {
            this.domNode.setAttribute(e, t);
          }
          removeAttribute(e) {
            this.domNode.removeAttribute(e);
          }
          appendChild(e) {
            this.domNode.appendChild(e.domNode);
          }
          removeChild(e) {
            this.domNode.removeChild(e.domNode);
          }
        }
        function s(e) {
          return new r(e);
        }
      },
      48764: (e, t, i) => {
        'use strict';
        i.d(t, { IY: () => r, BO: () => s, az: () => o });
        var n = i(65321);
        function r(e, t = {}) {
          const i = o(t);
          return (i.textContent = e), i;
        }
        function s(e, t = {}) {
          const i = o(t);
          return (
            l(
              i,
              (function (e) {
                const t = { type: 1, children: [] };
                let i = 0,
                  n = t;
                const r = [],
                  s = new a(e);
                for (; !s.eos(); ) {
                  let e = s.next();
                  const t = '\\' === e && 0 !== c(s.peek());
                  if ((t && (e = s.next()), t || 0 === c(e) || e !== s.peek()))
                    if ('\n' === e)
                      2 === n.type && (n = r.pop()),
                        n.children.push({ type: 7 });
                    else if (2 !== n.type) {
                      const t = { type: 2, content: e };
                      n.children.push(t), r.push(n), (n = t);
                    } else n.content += e;
                  else {
                    s.advance(), 2 === n.type && (n = r.pop());
                    const t = c(e);
                    if (n.type === t || (5 === n.type && 6 === t)) n = r.pop();
                    else {
                      const e = { type: t, children: [] };
                      5 === t && ((e.index = i), i++),
                        n.children.push(e),
                        r.push(n),
                        (n = e);
                    }
                  }
                }
                return 2 === n.type && (n = r.pop()), r.length, t;
              })(e),
              t.actionHandler
            ),
            i
          );
        }
        function o(e) {
          const t = e.inline ? 'span' : 'div',
            i = document.createElement(t);
          return e.className && (i.className = e.className), i;
        }
        class a {
          constructor(e) {
            (this.source = e), (this.index = 0);
          }
          eos() {
            return this.index >= this.source.length;
          }
          next() {
            const e = this.peek();
            return this.advance(), e;
          }
          peek() {
            return this.source[this.index];
          }
          advance() {
            this.index++;
          }
        }
        function l(e, t, i) {
          let r;
          if (2 === t.type) r = document.createTextNode(t.content || '');
          else if (3 === t.type) r = document.createElement('b');
          else if (4 === t.type) r = document.createElement('i');
          else if (5 === t.type && i) {
            const e = document.createElement('a');
            (e.href = '#'),
              i.disposeables.add(
                n.mu(e, 'click', (e) => {
                  i.callback(String(t.index), e);
                })
              ),
              (r = e);
          } else
            7 === t.type
              ? (r = document.createElement('br'))
              : 1 === t.type && (r = e);
          r && e !== r && e.appendChild(r),
            r &&
              Array.isArray(t.children) &&
              t.children.forEach((e) => {
                l(r, e, i);
              });
        }
        function c(e) {
          switch (e) {
            case '*':
              return 3;
            case '_':
              return 4;
            case '[':
              return 5;
            case ']':
              return 6;
            default:
              return 0;
          }
        }
      },
      57974: (e, t, i) => {
        'use strict';
        i.d(t, { e: () => c, Z: () => d });
        var n = i(65321),
          r = i(1432),
          s = i(70262),
          o = i(23938),
          a = i(5976),
          l = i(10161);
        function c(e, t) {
          let i = new o.n(t);
          return (
            i.preventDefault(),
            {
              leftButton: i.leftButton,
              buttons: i.buttons,
              posx: i.posx,
              posy: i.posy,
            }
          );
        }
        class d {
          constructor() {
            (this._hooks = new a.SL()),
              (this._mouseMoveEventMerger = null),
              (this._mouseMoveCallback = null),
              (this._onStopCallback = null);
          }
          dispose() {
            this.stopMonitoring(!1), this._hooks.dispose();
          }
          stopMonitoring(e) {
            if (!this.isMonitoring()) return;
            this._hooks.clear(),
              (this._mouseMoveEventMerger = null),
              (this._mouseMoveCallback = null);
            const t = this._onStopCallback;
            (this._onStopCallback = null), e && t && t();
          }
          isMonitoring() {
            return !!this._mouseMoveEventMerger;
          }
          startMonitoring(e, t, i, a, c) {
            if (this.isMonitoring()) return;
            (this._mouseMoveEventMerger = i),
              (this._mouseMoveCallback = a),
              (this._onStopCallback = c);
            const d = s.E.getSameOriginWindowChain(),
              h = r.gn && l.D.pointerEvents ? 'pointermove' : 'mousemove',
              u = r.gn && l.D.pointerEvents ? 'pointerup' : 'mouseup',
              g = d.map((e) => e.window.document),
              f = n.Ay(e);
            f && g.unshift(f);
            for (const e of g)
              this._hooks.add(
                n.Y_(
                  e,
                  h,
                  (e) => {
                    e.buttons === t
                      ? this._mouseMoveCallback(e)
                      : this.stopMonitoring(!0);
                  },
                  (e, t) => this._mouseMoveEventMerger(e, t)
                )
              ),
                this._hooks.add(n.nm(e, u, (e) => this.stopMonitoring(!0)));
            if (s.E.hasDifferentOriginAncestor()) {
              let e = d[d.length - 1];
              this._hooks.add(
                n.nm(e.window.document, 'mouseout', (e) => {
                  'html' === new o.n(e).target.tagName.toLowerCase() &&
                    this.stopMonitoring(!0);
                })
              ),
                this._hooks.add(
                  n.nm(e.window.document, 'mouseover', (e) => {
                    'html' === new o.n(e).target.tagName.toLowerCase() &&
                      this.stopMonitoring(!0);
                  })
                ),
                this._hooks.add(
                  n.nm(e.window.document.body, 'mouseleave', (e) => {
                    this.stopMonitoring(!0);
                  })
                );
            }
          }
        }
      },
      70262: (e, t, i) => {
        'use strict';
        i.d(t, { E: () => o });
        let n = !1,
          r = null;
        function s(e) {
          if (!e.parent || e.parent === e) return null;
          try {
            let t = e.location,
              i = e.parent.location;
            if (
              'null' !== t.origin &&
              'null' !== i.origin &&
              (t.protocol !== i.protocol ||
                t.hostname !== i.hostname ||
                t.port !== i.port)
            )
              return (n = !0), null;
          } catch (e) {
            return (n = !0), null;
          }
          return e.parent;
        }
        class o {
          static getSameOriginWindowChain() {
            if (!r) {
              r = [];
              let e,
                t = window;
              do {
                (e = s(t)),
                  e
                    ? r.push({
                        window: t,
                        iframeElement: t.frameElement || null,
                      })
                    : r.push({ window: t, iframeElement: null }),
                  (t = e);
              } while (t);
            }
            return r.slice(0);
          }
          static hasDifferentOriginAncestor() {
            return r || this.getSameOriginWindowChain(), n;
          }
          static getPositionOfChildWindowRelativeToAncestorWindow(e, t) {
            if (!t || e === t) return { top: 0, left: 0 };
            let i = 0,
              n = 0,
              r = this.getSameOriginWindowChain();
            for (const e of r) {
              if (
                ((i += e.window.scrollY),
                (n += e.window.scrollX),
                e.window === t)
              )
                break;
              if (!e.iframeElement) break;
              let r = e.iframeElement.getBoundingClientRect();
              (i += r.top), (n += r.left);
            }
            return { top: i, left: n };
          }
        }
      },
      59069: (e, t, i) => {
        'use strict';
        i.d(t, { y: () => d });
        var n = i(16268),
          r = i(22258),
          s = i(1432);
        let o = new Array(230),
          a = new Array(112);
        !(function () {
          for (let e = 0; e < a.length; e++) a[e] = -1;
          function e(e, t) {
            (o[e] = t), (a[t] = e);
          }
          e(3, 7),
            e(8, 1),
            e(9, 2),
            e(13, 3),
            e(16, 4),
            e(17, 5),
            e(18, 6),
            e(19, 7),
            e(20, 8),
            e(27, 9),
            e(32, 10),
            e(33, 11),
            e(34, 12),
            e(35, 13),
            e(36, 14),
            e(37, 15),
            e(38, 16),
            e(39, 17),
            e(40, 18),
            e(45, 19),
            e(46, 20),
            e(48, 21),
            e(49, 22),
            e(50, 23),
            e(51, 24),
            e(52, 25),
            e(53, 26),
            e(54, 27),
            e(55, 28),
            e(56, 29),
            e(57, 30),
            e(65, 31),
            e(66, 32),
            e(67, 33),
            e(68, 34),
            e(69, 35),
            e(70, 36),
            e(71, 37),
            e(72, 38),
            e(73, 39),
            e(74, 40),
            e(75, 41),
            e(76, 42),
            e(77, 43),
            e(78, 44),
            e(79, 45),
            e(80, 46),
            e(81, 47),
            e(82, 48),
            e(83, 49),
            e(84, 50),
            e(85, 51),
            e(86, 52),
            e(87, 53),
            e(88, 54),
            e(89, 55),
            e(90, 56),
            e(93, 58),
            e(96, 93),
            e(97, 94),
            e(98, 95),
            e(99, 96),
            e(100, 97),
            e(101, 98),
            e(102, 99),
            e(103, 100),
            e(104, 101),
            e(105, 102),
            e(106, 103),
            e(107, 104),
            e(108, 105),
            e(109, 106),
            e(110, 107),
            e(111, 108),
            e(112, 59),
            e(113, 60),
            e(114, 61),
            e(115, 62),
            e(116, 63),
            e(117, 64),
            e(118, 65),
            e(119, 66),
            e(120, 67),
            e(121, 68),
            e(122, 69),
            e(123, 70),
            e(124, 71),
            e(125, 72),
            e(126, 73),
            e(127, 74),
            e(128, 75),
            e(129, 76),
            e(130, 77),
            e(144, 78),
            e(145, 79),
            e(186, 80),
            e(187, 81),
            e(188, 82),
            e(189, 83),
            e(190, 84),
            e(191, 85),
            e(192, 86),
            e(193, 110),
            e(194, 111),
            e(219, 87),
            e(220, 88),
            e(221, 89),
            e(222, 90),
            e(223, 91),
            e(226, 92),
            e(229, 109),
            n.vU
              ? (e(59, 80), e(107, 81), e(109, 83), s.dz && e(224, 57))
              : n.Pf && (e(91, 57), s.dz ? e(93, 57) : e(92, 57));
        })();
        const l = s.dz ? 256 : 2048,
          c = s.dz ? 2048 : 256;
        class d {
          constructor(e) {
            this._standardKeyboardEventBrand = !0;
            let t = e;
            (this.browserEvent = t),
              (this.target = t.target),
              (this.ctrlKey = t.ctrlKey),
              (this.shiftKey = t.shiftKey),
              (this.altKey = t.altKey),
              (this.metaKey = t.metaKey),
              (this.keyCode = (function (e) {
                if (e.charCode) {
                  let t = String.fromCharCode(e.charCode).toUpperCase();
                  return r.kL.fromString(t);
                }
                return o[e.keyCode] || 0;
              })(t)),
              (this.code = t.code),
              (this.ctrlKey = this.ctrlKey || 5 === this.keyCode),
              (this.altKey = this.altKey || 6 === this.keyCode),
              (this.shiftKey = this.shiftKey || 4 === this.keyCode),
              (this.metaKey = this.metaKey || 57 === this.keyCode),
              (this._asKeybinding = this._computeKeybinding()),
              (this._asRuntimeKeybinding = this._computeRuntimeKeybinding());
          }
          preventDefault() {
            this.browserEvent &&
              this.browserEvent.preventDefault &&
              this.browserEvent.preventDefault();
          }
          stopPropagation() {
            this.browserEvent &&
              this.browserEvent.stopPropagation &&
              this.browserEvent.stopPropagation();
          }
          toKeybinding() {
            return this._asRuntimeKeybinding;
          }
          equals(e) {
            return this._asKeybinding === e;
          }
          _computeKeybinding() {
            let e = 0;
            5 !== this.keyCode &&
              4 !== this.keyCode &&
              6 !== this.keyCode &&
              57 !== this.keyCode &&
              (e = this.keyCode);
            let t = 0;
            return (
              this.ctrlKey && (t |= l),
              this.altKey && (t |= 512),
              this.shiftKey && (t |= 1024),
              this.metaKey && (t |= c),
              (t |= e),
              t
            );
          }
          _computeRuntimeKeybinding() {
            let e = 0;
            return (
              5 !== this.keyCode &&
                4 !== this.keyCode &&
                6 !== this.keyCode &&
                57 !== this.keyCode &&
                (e = this.keyCode),
              new r.QC(
                this.ctrlKey,
                this.shiftKey,
                this.altKey,
                this.metaKey,
                e
              )
            );
          }
        }
      },
      23938: (e, t, i) => {
        'use strict';
        i.d(t, { n: () => o, q: () => a });
        var n = i(16268),
          r = i(70262),
          s = i(1432);
        class o {
          constructor(e) {
            (this.timestamp = Date.now()),
              (this.browserEvent = e),
              (this.leftButton = 0 === e.button),
              (this.middleButton = 1 === e.button),
              (this.rightButton = 2 === e.button),
              (this.buttons = e.buttons),
              (this.target = e.target),
              (this.detail = e.detail || 1),
              'dblclick' === e.type && (this.detail = 2),
              (this.ctrlKey = e.ctrlKey),
              (this.shiftKey = e.shiftKey),
              (this.altKey = e.altKey),
              (this.metaKey = e.metaKey),
              'number' == typeof e.pageX
                ? ((this.posx = e.pageX), (this.posy = e.pageY))
                : ((this.posx =
                    e.clientX +
                    document.body.scrollLeft +
                    document.documentElement.scrollLeft),
                  (this.posy =
                    e.clientY +
                    document.body.scrollTop +
                    document.documentElement.scrollTop));
            let t = r.E.getPositionOfChildWindowRelativeToAncestorWindow(
              self,
              e.view
            );
            (this.posx -= t.left), (this.posy -= t.top);
          }
          preventDefault() {
            this.browserEvent.preventDefault();
          }
          stopPropagation() {
            this.browserEvent.stopPropagation();
          }
        }
        class a {
          constructor(e, t = 0, i = 0) {
            if (
              ((this.browserEvent = e || null),
              (this.target = e
                ? e.target || e.targetNode || e.srcElement
                : null),
              (this.deltaY = i),
              (this.deltaX = t),
              e)
            ) {
              let t = e,
                i = e;
              if (void 0 !== t.wheelDeltaY) this.deltaY = t.wheelDeltaY / 120;
              else if (void 0 !== i.VERTICAL_AXIS && i.axis === i.VERTICAL_AXIS)
                this.deltaY = -i.detail / 3;
              else if ('wheel' === e.type) {
                const t = e;
                t.deltaMode === t.DOM_DELTA_LINE
                  ? n.vU && !s.dz
                    ? (this.deltaY = -e.deltaY / 3)
                    : (this.deltaY = -e.deltaY)
                  : (this.deltaY = -e.deltaY / 40);
              }
              if (void 0 !== t.wheelDeltaX)
                n.G6 && s.ED
                  ? (this.deltaX = -t.wheelDeltaX / 120)
                  : (this.deltaX = t.wheelDeltaX / 120);
              else if (
                void 0 !== i.HORIZONTAL_AXIS &&
                i.axis === i.HORIZONTAL_AXIS
              )
                this.deltaX = -e.detail / 3;
              else if ('wheel' === e.type) {
                const t = e;
                t.deltaMode === t.DOM_DELTA_LINE
                  ? n.vU && !s.dz
                    ? (this.deltaX = -e.deltaX / 3)
                    : (this.deltaX = -e.deltaX)
                  : (this.deltaX = -e.deltaX / 40);
              }
              0 === this.deltaY &&
                0 === this.deltaX &&
                e.wheelDelta &&
                (this.deltaY = e.wheelDelta / 120);
            }
          }
          preventDefault() {
            this.browserEvent && this.browserEvent.preventDefault();
          }
          stopPropagation() {
            this.browserEvent && this.browserEvent.stopPropagation();
          }
        }
      },
      10553: (e, t, i) => {
        'use strict';
        i.d(t, { t: () => n, o: () => l });
        var n,
          r = i(9488),
          s = i(5976),
          o = i(65321),
          a = i(49898);
        !(function (e) {
          (e.Tap = '-monaco-gesturetap'),
            (e.Change = '-monaco-gesturechange'),
            (e.Start = '-monaco-gesturestart'),
            (e.End = '-monaco-gesturesend'),
            (e.Contextmenu = '-monaco-gesturecontextmenu');
        })(n || (n = {}));
        class l extends s.JT {
          constructor() {
            super(),
              (this.dispatched = !1),
              (this.activeTouches = {}),
              (this.handle = null),
              (this.targets = []),
              (this.ignoreTargets = []),
              (this._lastSetTapCountTime = 0),
              this._register(
                o.nm(document, 'touchstart', (e) => this.onTouchStart(e), {
                  passive: !1,
                })
              ),
              this._register(
                o.nm(document, 'touchend', (e) => this.onTouchEnd(e))
              ),
              this._register(
                o.nm(document, 'touchmove', (e) => this.onTouchMove(e), {
                  passive: !1,
                })
              );
          }
          static addTarget(e) {
            return l.isTouchDevice()
              ? (l.INSTANCE || (l.INSTANCE = new l()),
                l.INSTANCE.targets.push(e),
                {
                  dispose: () => {
                    l.INSTANCE.targets = l.INSTANCE.targets.filter(
                      (t) => t !== e
                    );
                  },
                })
              : s.JT.None;
          }
          static ignoreTarget(e) {
            return l.isTouchDevice()
              ? (l.INSTANCE || (l.INSTANCE = new l()),
                l.INSTANCE.ignoreTargets.push(e),
                {
                  dispose: () => {
                    l.INSTANCE.ignoreTargets = l.INSTANCE.ignoreTargets.filter(
                      (t) => t !== e
                    );
                  },
                })
              : s.JT.None;
          }
          static isTouchDevice() {
            return (
              'ontouchstart' in window ||
              navigator.maxTouchPoints > 0 ||
              window.navigator.msMaxTouchPoints > 0
            );
          }
          dispose() {
            this.handle && (this.handle.dispose(), (this.handle = null)),
              super.dispose();
          }
          onTouchStart(e) {
            let t = Date.now();
            this.handle && (this.handle.dispose(), (this.handle = null));
            for (let i = 0, r = e.targetTouches.length; i < r; i++) {
              let r = e.targetTouches.item(i);
              this.activeTouches[r.identifier] = {
                id: r.identifier,
                initialTarget: r.target,
                initialTimeStamp: t,
                initialPageX: r.pageX,
                initialPageY: r.pageY,
                rollingTimestamps: [t],
                rollingPageX: [r.pageX],
                rollingPageY: [r.pageY],
              };
              let s = this.newGestureEvent(n.Start, r.target);
              (s.pageX = r.pageX), (s.pageY = r.pageY), this.dispatchEvent(s);
            }
            this.dispatched &&
              (e.preventDefault(), e.stopPropagation(), (this.dispatched = !1));
          }
          onTouchEnd(e) {
            let t = Date.now(),
              i = Object.keys(this.activeTouches).length;
            for (let s = 0, o = e.changedTouches.length; s < o; s++) {
              let o = e.changedTouches.item(s);
              if (!this.activeTouches.hasOwnProperty(String(o.identifier))) {
                console.warn('move of an UNKNOWN touch', o);
                continue;
              }
              let a = this.activeTouches[o.identifier],
                c = Date.now() - a.initialTimeStamp;
              if (
                c < l.HOLD_DELAY &&
                Math.abs(a.initialPageX - r.Gb(a.rollingPageX)) < 30 &&
                Math.abs(a.initialPageY - r.Gb(a.rollingPageY)) < 30
              ) {
                let e = this.newGestureEvent(n.Tap, a.initialTarget);
                (e.pageX = r.Gb(a.rollingPageX)),
                  (e.pageY = r.Gb(a.rollingPageY)),
                  this.dispatchEvent(e);
              } else if (
                c >= l.HOLD_DELAY &&
                Math.abs(a.initialPageX - r.Gb(a.rollingPageX)) < 30 &&
                Math.abs(a.initialPageY - r.Gb(a.rollingPageY)) < 30
              ) {
                let e = this.newGestureEvent(n.Contextmenu, a.initialTarget);
                (e.pageX = r.Gb(a.rollingPageX)),
                  (e.pageY = r.Gb(a.rollingPageY)),
                  this.dispatchEvent(e);
              } else if (1 === i) {
                let e = r.Gb(a.rollingPageX),
                  i = r.Gb(a.rollingPageY),
                  n = r.Gb(a.rollingTimestamps) - a.rollingTimestamps[0],
                  s = e - a.rollingPageX[0],
                  o = i - a.rollingPageY[0];
                const l = this.targets.filter(
                  (e) =>
                    a.initialTarget instanceof Node &&
                    e.contains(a.initialTarget)
                );
                this.inertia(
                  l,
                  t,
                  Math.abs(s) / n,
                  s > 0 ? 1 : -1,
                  e,
                  Math.abs(o) / n,
                  o > 0 ? 1 : -1,
                  i
                );
              }
              this.dispatchEvent(this.newGestureEvent(n.End, a.initialTarget)),
                delete this.activeTouches[o.identifier];
            }
            this.dispatched &&
              (e.preventDefault(), e.stopPropagation(), (this.dispatched = !1));
          }
          newGestureEvent(e, t) {
            let i = document.createEvent('CustomEvent');
            return (
              i.initEvent(e, !1, !0), (i.initialTarget = t), (i.tapCount = 0), i
            );
          }
          dispatchEvent(e) {
            if (e.type === n.Tap) {
              const t = new Date().getTime();
              let i = 0;
              (i =
                t - this._lastSetTapCountTime > l.CLEAR_TAP_COUNT_TIME ? 1 : 2),
                (this._lastSetTapCountTime = t),
                (e.tapCount = i);
            } else
              (e.type !== n.Change && e.type !== n.Contextmenu) ||
                (this._lastSetTapCountTime = 0);
            for (let t = 0; t < this.ignoreTargets.length; t++)
              if (
                e.initialTarget instanceof Node &&
                this.ignoreTargets[t].contains(e.initialTarget)
              )
                return;
            this.targets.forEach((t) => {
              e.initialTarget instanceof Node &&
                t.contains(e.initialTarget) &&
                (t.dispatchEvent(e), (this.dispatched = !0));
            });
          }
          inertia(e, t, i, r, s, a, c, d) {
            this.handle = o.jL(() => {
              let o = Date.now(),
                h = o - t,
                u = 0,
                g = 0,
                f = !0;
              (i += l.SCROLL_FRICTION * h),
                (a += l.SCROLL_FRICTION * h),
                i > 0 && ((f = !1), (u = r * i * h)),
                a > 0 && ((f = !1), (g = c * a * h));
              let p = this.newGestureEvent(n.Change);
              (p.translationX = u),
                (p.translationY = g),
                e.forEach((e) => e.dispatchEvent(p)),
                f || this.inertia(e, o, i, r, s + u, a, c, d + g);
            });
          }
          onTouchMove(e) {
            let t = Date.now();
            for (let i = 0, s = e.changedTouches.length; i < s; i++) {
              let s = e.changedTouches.item(i);
              if (!this.activeTouches.hasOwnProperty(String(s.identifier))) {
                console.warn('end of an UNKNOWN touch', s);
                continue;
              }
              let o = this.activeTouches[s.identifier],
                a = this.newGestureEvent(n.Change, o.initialTarget);
              (a.translationX = s.pageX - r.Gb(o.rollingPageX)),
                (a.translationY = s.pageY - r.Gb(o.rollingPageY)),
                (a.pageX = s.pageX),
                (a.pageY = s.pageY),
                this.dispatchEvent(a),
                o.rollingPageX.length > 3 &&
                  (o.rollingPageX.shift(),
                  o.rollingPageY.shift(),
                  o.rollingTimestamps.shift()),
                o.rollingPageX.push(s.pageX),
                o.rollingPageY.push(s.pageY),
                o.rollingTimestamps.push(t);
            }
            this.dispatched &&
              (e.preventDefault(), e.stopPropagation(), (this.dispatched = !1));
          }
        }
        (l.SCROLL_FRICTION = -0.005),
          (l.HOLD_DELAY = 700),
          (l.CLEAR_TAP_COUNT_TIME = 400),
          (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            s > 3 && o && Object.defineProperty(t, i, o);
          })([a.H], l, 'isTouchDevice', null);
      },
      76033: (e, t, i) => {
        'use strict';
        i.d(t, { Y: () => u, g: () => g });
        var n = i(1432),
          r = i(63580),
          s = i(5976),
          o = i(74741),
          a = i(65321),
          l = i(98401),
          c = i(10553),
          d = i(23547),
          h = i(16268);
        class u extends s.JT {
          constructor(e, t, i = {}) {
            super(),
              (this.options = i),
              (this._context = e || this),
              (this._action = t),
              t instanceof o.aU &&
                this._register(
                  t.onDidChange((e) => {
                    this.element && this.handleActionChangeEvent(e);
                  })
                );
          }
          handleActionChangeEvent(e) {
            void 0 !== e.enabled && this.updateEnabled(),
              void 0 !== e.checked && this.updateChecked(),
              void 0 !== e.class && this.updateClass(),
              void 0 !== e.label && (this.updateLabel(), this.updateTooltip()),
              void 0 !== e.tooltip && this.updateTooltip();
          }
          get actionRunner() {
            return (
              this._actionRunner ||
                (this._actionRunner = this._register(new o.Wi())),
              this._actionRunner
            );
          }
          set actionRunner(e) {
            this._actionRunner = e;
          }
          getAction() {
            return this._action;
          }
          isEnabled() {
            return this._action.enabled;
          }
          setActionContext(e) {
            this._context = e;
          }
          render(e) {
            const t = (this.element = e);
            this._register(c.o.addTarget(e));
            const i = this.options && this.options.draggable;
            i &&
              ((e.draggable = !0),
              h.vU &&
                this._register(
                  a.nm(e, a.tw.DRAG_START, (e) => {
                    var t;
                    return null === (t = e.dataTransfer) || void 0 === t
                      ? void 0
                      : t.setData(d.go.TEXT, this._action.label);
                  })
                )),
              this._register(a.nm(t, c.t.Tap, (e) => this.onClick(e))),
              this._register(
                a.nm(t, a.tw.MOUSE_DOWN, (e) => {
                  i || a.zB.stop(e, !0),
                    this._action.enabled && 0 === e.button && a.cn(t, 'active');
                })
              ),
              n.dz &&
                this._register(
                  a.nm(t, a.tw.CONTEXT_MENU, (e) => {
                    0 === e.button && !0 === e.ctrlKey && this.onClick(e);
                  })
                ),
              this._register(
                a.nm(t, a.tw.CLICK, (e) => {
                  a.zB.stop(e, !0),
                    (this.options && this.options.isMenu) ||
                      n.xS(() => this.onClick(e));
                })
              ),
              this._register(
                a.nm(t, a.tw.DBLCLICK, (e) => {
                  a.zB.stop(e, !0);
                })
              ),
              [a.tw.MOUSE_UP, a.tw.MOUSE_OUT].forEach((e) => {
                this._register(
                  a.nm(t, e, (e) => {
                    a.zB.stop(e), a.IV(t, 'active');
                  })
                );
              });
          }
          onClick(e) {
            var t;
            a.zB.stop(e, !0);
            const i = l.Jp(this._context)
              ? (
                  null === (t = this.options) || void 0 === t
                    ? void 0
                    : t.useEventAsContext
                )
                ? e
                : void 0
              : this._context;
            this.actionRunner.run(this._action, i);
          }
          focus() {
            this.element &&
              (this.element.focus(), a.cn(this.element, 'focused'));
          }
          blur() {
            this.element &&
              (this.element.blur(), a.IV(this.element, 'focused'));
          }
          updateEnabled() {}
          updateLabel() {}
          updateTooltip() {}
          updateClass() {}
          updateChecked() {}
          dispose() {
            this.element && (a.ZF(this.element), (this.element = void 0)),
              super.dispose();
          }
        }
        class g extends u {
          constructor(e, t, i = {}) {
            super(e, t, i),
              (this.options = i),
              (this.options.icon = void 0 !== i.icon && i.icon),
              (this.options.label = void 0 === i.label || i.label),
              (this.cssClass = '');
          }
          render(e) {
            super.render(e),
              this.element &&
                (this.label = a.R3(this.element, a.$('a.action-label'))),
              this.label &&
                (this._action.id === o.Z0.ID
                  ? this.label.setAttribute('role', 'presentation')
                  : this.options.isMenu
                  ? this.label.setAttribute('role', 'menuitem')
                  : this.label.setAttribute('role', 'button')),
              this.options.label &&
                this.options.keybinding &&
                this.element &&
                (a.R3(
                  this.element,
                  a.$('span.keybinding')
                ).textContent = this.options.keybinding),
              this.updateClass(),
              this.updateLabel(),
              this.updateTooltip(),
              this.updateEnabled(),
              this.updateChecked();
          }
          focus() {
            super.focus(), this.label && this.label.focus();
          }
          updateLabel() {
            this.options.label &&
              this.label &&
              (this.label.textContent = this.getAction().label);
          }
          updateTooltip() {
            let e = null;
            this.getAction().tooltip
              ? (e = this.getAction().tooltip)
              : !this.options.label &&
                this.getAction().label &&
                this.options.icon &&
                ((e = this.getAction().label),
                this.options.keybinding &&
                  (e = r.N(
                    {
                      key: 'titleLabel',
                      comment: ['action title', 'action keybinding'],
                    },
                    '{0} ({1})',
                    e,
                    this.options.keybinding
                  ))),
              e && this.label && (this.label.title = e);
          }
          updateClass() {
            this.cssClass && this.label && a.GK(this.label, this.cssClass),
              this.options.icon
                ? ((this.cssClass = this.getAction().class),
                  this.label &&
                    (a.cn(this.label, 'codicon'),
                    this.cssClass && a.PT(this.label, this.cssClass)),
                  this.updateEnabled())
                : this.label && a.IV(this.label, 'codicon');
          }
          updateEnabled() {
            this.getAction().enabled
              ? (this.label &&
                  (this.label.removeAttribute('aria-disabled'),
                  a.IV(this.label, 'disabled'),
                  (this.label.tabIndex = 0)),
                this.element && a.IV(this.element, 'disabled'))
              : (this.label &&
                  (this.label.setAttribute('aria-disabled', 'true'),
                  a.cn(this.label, 'disabled'),
                  a.eJ(this.label)),
                this.element && a.cn(this.element, 'disabled'));
          }
          updateChecked() {
            this.label &&
              (this.getAction().checked
                ? a.cn(this.label, 'checked')
                : a.IV(this.label, 'checked'));
          }
        }
      },
      90317: (e, t, i) => {
        'use strict';
        i.d(t, { o: () => d });
        var n = i(5976),
          r = i(74741),
          s = i(65321),
          o = i(98401),
          a = i(59069),
          l = i(4669),
          c = i(76033);
        class d extends n.JT {
          constructor(e, t = {}) {
            var i, n, o;
            let c, d;
            switch (
              (super(),
              (this._onDidBlur = this._register(new l.Q5())),
              (this.onDidBlur = this._onDidBlur.event),
              (this._onDidCancel = this._register(new l.Q5())),
              (this.onDidCancel = this._onDidCancel.event),
              (this._onDidRun = this._register(new l.Q5())),
              (this.onDidRun = this._onDidRun.event),
              (this._onDidBeforeRun = this._register(new l.Q5())),
              (this.onDidBeforeRun = this._onDidBeforeRun.event),
              (this.options = t),
              (this._context =
                null !== (i = t.context) && void 0 !== i ? i : null),
              (this._orientation =
                null !== (n = this.options.orientation) && void 0 !== n
                  ? n
                  : 0),
              (this._triggerKeys =
                null !== (o = this.options.triggerKeys) && void 0 !== o
                  ? o
                  : { keys: [3, 10], keyDown: !1 }),
              this.options.actionRunner
                ? (this._actionRunner = this.options.actionRunner)
                : ((this._actionRunner = new r.Wi()),
                  this._register(this._actionRunner)),
              this._register(
                this._actionRunner.onDidRun((e) => this._onDidRun.fire(e))
              ),
              this._register(
                this._actionRunner.onDidBeforeRun((e) =>
                  this._onDidBeforeRun.fire(e)
                )
              ),
              (this.viewItems = []),
              (this.focusedItem = void 0),
              (this.domNode = document.createElement('div')),
              (this.domNode.className = 'monaco-action-bar'),
              !1 !== t.animated && s.cn(this.domNode, 'animated'),
              this._orientation)
            ) {
              case 0:
                (c = 15), (d = 17);
                break;
              case 1:
                (c = 17), (d = 15), (this.domNode.className += ' reverse');
                break;
              case 2:
                (c = 16), (d = 18), (this.domNode.className += ' vertical');
                break;
              case 3:
                (c = 18),
                  (d = 16),
                  (this.domNode.className += ' vertical reverse');
            }
            this._register(
              s.nm(this.domNode, s.tw.KEY_DOWN, (e) => {
                const t = new a.y(e);
                let i = !0;
                t.equals(c)
                  ? (i = this.focusPrevious())
                  : t.equals(d)
                  ? (i = this.focusNext())
                  : t.equals(9)
                  ? this._onDidCancel.fire()
                  : this.isTriggerKeyEvent(t)
                  ? this._triggerKeys.keyDown && this.doTrigger(t)
                  : (i = !1),
                  i && (t.preventDefault(), t.stopPropagation());
              })
            ),
              this._register(
                s.nm(this.domNode, s.tw.KEY_UP, (e) => {
                  const t = new a.y(e);
                  this.isTriggerKeyEvent(t)
                    ? (this._triggerKeys.keyDown || this.doTrigger(t),
                      t.preventDefault(),
                      t.stopPropagation())
                    : (t.equals(2) || t.equals(1026)) &&
                      this.updateFocusedItem();
                })
              ),
              (this.focusTracker = this._register(s.go(this.domNode))),
              this._register(
                this.focusTracker.onDidBlur(() => {
                  (s.vY() !== this.domNode && s.jg(s.vY(), this.domNode)) ||
                    (this._onDidBlur.fire(), (this.focusedItem = void 0));
                })
              ),
              this._register(
                this.focusTracker.onDidFocus(() => this.updateFocusedItem())
              ),
              (this.actionsList = document.createElement('ul')),
              (this.actionsList.className = 'actions-container'),
              this.actionsList.setAttribute('role', 'toolbar'),
              this.options.ariaLabel &&
                this.actionsList.setAttribute(
                  'aria-label',
                  this.options.ariaLabel
                ),
              this.domNode.appendChild(this.actionsList),
              e.appendChild(this.domNode);
          }
          isTriggerKeyEvent(e) {
            let t = !1;
            return (
              this._triggerKeys.keys.forEach((i) => {
                t = t || e.equals(i);
              }),
              t
            );
          }
          updateFocusedItem() {
            for (let e = 0; e < this.actionsList.children.length; e++) {
              const t = this.actionsList.children[e];
              if (s.jg(s.vY(), t)) {
                this.focusedItem = e;
                break;
              }
            }
          }
          get context() {
            return this._context;
          }
          set context(e) {
            (this._context = e),
              this.viewItems.forEach((t) => t.setActionContext(e));
          }
          get actionRunner() {
            return this._actionRunner;
          }
          set actionRunner(e) {
            e &&
              ((this._actionRunner = e),
              this.viewItems.forEach((t) => (t.actionRunner = e)));
          }
          getContainer() {
            return this.domNode;
          }
          push(e, t = {}) {
            const i = Array.isArray(e) ? e : [e];
            let n = o.hj(t.index) ? t.index : null;
            i.forEach((e) => {
              const i = document.createElement('li');
              let r;
              (i.className = 'action-item'),
                i.setAttribute('role', 'presentation'),
                this.options.allowContextMenu ||
                  this._register(
                    s.nm(i, s.tw.CONTEXT_MENU, (e) => {
                      s.zB.stop(e, !0);
                    })
                  ),
                this.options.actionViewItemProvider &&
                  (r = this.options.actionViewItemProvider(e)),
                r || (r = new c.g(this.context, e, t)),
                (r.actionRunner = this._actionRunner),
                r.setActionContext(this.context),
                r.render(i),
                null === n || n < 0 || n >= this.actionsList.children.length
                  ? (this.actionsList.appendChild(i), this.viewItems.push(r))
                  : (this.actionsList.insertBefore(
                      i,
                      this.actionsList.children[n]
                    ),
                    this.viewItems.splice(n, 0, r),
                    n++);
            }),
              this.focusedItem && this.focus(this.focusedItem);
          }
          clear() {
            (0, n.B9)(this.viewItems),
              (this.viewItems = []),
              s.PO(this.actionsList);
          }
          focus(e) {
            let t,
              i = !1;
            void 0 === e
              ? (i = !0)
              : 'number' == typeof e
              ? (t = e)
              : 'boolean' == typeof e && (i = e),
              i && void 0 === this.focusedItem
                ? ((this.focusedItem = -1), this.focusNext())
                : (void 0 !== t && (this.focusedItem = t), this.updateFocus());
          }
          focusNext() {
            void 0 === this.focusedItem &&
              (this.focusedItem = this.viewItems.length - 1);
            const e = this.focusedItem;
            let t;
            do {
              if (
                this.options.preventLoopNavigation &&
                this.focusedItem + 1 >= this.viewItems.length
              )
                return (this.focusedItem = e), !1;
              (this.focusedItem =
                (this.focusedItem + 1) % this.viewItems.length),
                (t = this.viewItems[this.focusedItem]);
            } while (this.focusedItem !== e && !t.isEnabled());
            return (
              this.focusedItem !== e ||
                t.isEnabled() ||
                (this.focusedItem = void 0),
              this.updateFocus(),
              !0
            );
          }
          focusPrevious() {
            void 0 === this.focusedItem && (this.focusedItem = 0);
            const e = this.focusedItem;
            let t;
            do {
              if (
                ((this.focusedItem = this.focusedItem - 1),
                this.focusedItem < 0)
              ) {
                if (this.options.preventLoopNavigation)
                  return (this.focusedItem = e), !1;
                this.focusedItem = this.viewItems.length - 1;
              }
              t = this.viewItems[this.focusedItem];
            } while (this.focusedItem !== e && !t.isEnabled());
            return (
              this.focusedItem !== e ||
                t.isEnabled() ||
                (this.focusedItem = void 0),
              this.updateFocus(!0),
              !0
            );
          }
          updateFocus(e, t) {
            void 0 === this.focusedItem &&
              this.actionsList.focus({ preventScroll: t });
            for (let i = 0; i < this.viewItems.length; i++) {
              const n = this.viewItems[i];
              i === this.focusedItem
                ? o.mf(n.isEnabled) &&
                  (n.isEnabled() && o.mf(n.focus)
                    ? n.focus(e)
                    : this.actionsList.focus({ preventScroll: t }))
                : o.mf(n.blur) && n.blur();
            }
          }
          doTrigger(e) {
            if (void 0 === this.focusedItem) return;
            const t = this.viewItems[this.focusedItem];
            if (t instanceof c.Y) {
              const i =
                null === t._context || void 0 === t._context ? e : t._context;
              this.run(t._action, i);
            }
          }
          run(e, t) {
            return this._actionRunner.run(e, t);
          }
          dispose() {
            (0, n.B9)(this.viewItems),
              (this.viewItems = []),
              s.ZF(this.getContainer()),
              super.dispose();
          }
        }
      },
      85152: (e, t, i) => {
        'use strict';
        i.d(t, { wW: () => d, Z9: () => h, i7: () => u });
        var n = i(1432),
          r = i(65321);
        let s, o, a, l, c;
        function d(e) {
          (s = document.createElement('div')),
            (s.className = 'monaco-aria-container');
          const t = () => {
            const e = document.createElement('div');
            return (
              (e.className = 'monaco-alert'),
              e.setAttribute('role', 'alert'),
              e.setAttribute('aria-atomic', 'true'),
              s.appendChild(e),
              e
            );
          };
          (o = t()), (a = t());
          const i = () => {
            const e = document.createElement('div');
            return (
              (e.className = 'monaco-status'),
              e.setAttribute('role', 'complementary'),
              e.setAttribute('aria-live', 'polite'),
              e.setAttribute('aria-atomic', 'true'),
              s.appendChild(e),
              e
            );
          };
          (l = i()), (c = i()), e.appendChild(s);
        }
        function h(e) {
          s && (o.textContent !== e ? (r.PO(a), g(o, e)) : (r.PO(o), g(a, e)));
        }
        function u(e) {
          s &&
            (n.dz
              ? h(e)
              : l.textContent !== e
              ? (r.PO(c), g(l, e))
              : (r.PO(l), g(c, e)));
        }
        function g(e, t) {
          r.PO(e),
            t.length > 2e4 && (t = t.substr(0, 2e4)),
            (e.textContent = t),
            (e.style.visibility = 'hidden'),
            (e.style.visibility = 'visible');
        }
      },
      28609: (e, t, i) => {
        'use strict';
        i.d(t, { D: () => r, a: () => s });
        var n = i(73046);
        const r = new (class {
          constructor() {
            this.onDidChange = n.fK.onDidRegister;
          }
          getCSS() {
            const e = [];
            for (let t of n.fK.all) e.push(s(t));
            return e.join('\n');
          }
        })();
        function s(e) {
          let t = e.definition;
          for (; t instanceof n.lA; ) t = t.definition;
          return `.codicon-${e.id}:before { content: '${t.character}'; }`;
        }
      },
      67488: (e, t, i) => {
        'use strict';
        i.d(t, { Z: () => l });
        var n = i(65321),
          r = i(97295),
          s = i(41264),
          o = i(36248);
        const a = {
          badgeBackground: s.Il.fromHex('#4D4D4D'),
          badgeForeground: s.Il.fromHex('#FFFFFF'),
        };
        class l {
          constructor(e, t) {
            (this.count = 0),
              (this.options = t || Object.create(null)),
              (0, o.jB)(this.options, a, !1),
              (this.badgeBackground = this.options.badgeBackground),
              (this.badgeForeground = this.options.badgeForeground),
              (this.badgeBorder = this.options.badgeBorder),
              (this.element = (0, n.R3)(e, (0, n.$)('.monaco-count-badge'))),
              (this.countFormat = this.options.countFormat || '{0}'),
              (this.titleFormat = this.options.titleFormat || ''),
              this.setCount(this.options.count || 0);
          }
          setCount(e) {
            (this.count = e), this.render();
          }
          setTitleFormat(e) {
            (this.titleFormat = e), this.render();
          }
          render() {
            (this.element.textContent = (0, r.WU)(
              this.countFormat,
              this.count
            )),
              (this.element.title = (0, r.WU)(this.titleFormat, this.count)),
              this.applyStyles();
          }
          style(e) {
            (this.badgeBackground = e.badgeBackground),
              (this.badgeForeground = e.badgeForeground),
              (this.badgeBorder = e.badgeBorder),
              this.applyStyles();
          }
          applyStyles() {
            if (this.element) {
              const e = this.badgeBackground
                  ? this.badgeBackground.toString()
                  : '',
                t = this.badgeForeground ? this.badgeForeground.toString() : '',
                i = this.badgeBorder ? this.badgeBorder.toString() : '';
              (this.element.style.backgroundColor = e),
                (this.element.style.color = t),
                (this.element.style.borderWidth = i ? '1px' : ''),
                (this.element.style.borderStyle = i ? 'solid' : ''),
                (this.element.style.borderColor = i);
            }
          }
        }
      },
      34650: (e, t, i) => {
        'use strict';
        i.d(t, { q: () => o });
        var n = i(36248),
          r = i(73046),
          s = i(97295);
        class o {
          constructor(e, t) {
            (this.supportCodicons = t),
              (this.text = ''),
              (this.title = ''),
              (this.highlights = []),
              (this.didEverRender = !1),
              (this.domNode = document.createElement('span')),
              (this.domNode.className = 'monaco-highlighted-label'),
              e.appendChild(this.domNode);
          }
          get element() {
            return this.domNode;
          }
          set(e, t = [], i = '', r) {
            e || (e = ''),
              r && (e = o.escapeNewLines(e, t)),
              (this.didEverRender &&
                this.text === e &&
                this.title === i &&
                n.fS(this.highlights, t)) ||
                (Array.isArray(t) || (t = []),
                (this.text = e),
                (this.title = i),
                (this.highlights = t),
                this.render());
          }
          render() {
            let e = '',
              t = 0;
            for (const i of this.highlights) {
              if (i.end === i.start) continue;
              if (t < i.start) {
                e += '<span>';
                const n = this.text.substring(t, i.start);
                (e += this.supportCodicons
                  ? (0, r.Mi)((0, s.YU)(n))
                  : (0, s.YU)(n)),
                  (e += '</span>'),
                  (t = i.end);
              }
              i.extraClasses
                ? (e += `<span class="highlight ${i.extraClasses}">`)
                : (e += '<span class="highlight">');
              const n = this.text.substring(i.start, i.end);
              (e += this.supportCodicons
                ? (0, r.Mi)((0, s.YU)(n))
                : (0, s.YU)(n)),
                (e += '</span>'),
                (t = i.end);
            }
            if (t < this.text.length) {
              e += '<span>';
              const i = this.text.substring(t);
              (e += this.supportCodicons
                ? (0, r.Mi)((0, s.YU)(i))
                : (0, s.YU)(i)),
                (e += '</span>');
            }
            (this.domNode.innerHTML = e),
              this.title
                ? (this.domNode.title = this.title)
                : this.domNode.removeAttribute('title'),
              (this.didEverRender = !0);
          }
          static escapeNewLines(e, t) {
            let i = 0,
              n = 0;
            return e.replace(/\r\n|\r|\n/g, (e, r) => {
              (n = '\r\n' === e ? -1 : 0), (r += i);
              for (const e of t)
                e.end <= r ||
                  (e.start >= r && (e.start += n), e.end >= r && (e.end += n));
              return (i += n), '⏎';
            });
          }
        }
      },
      59834: (e, t, i) => {
        'use strict';
        i.d(t, { g: () => c });
        var n = i(65321),
          r = i(34650),
          s = i(5976),
          o = i(61134),
          a = i(36248);
        class l {
          constructor(e) {
            this._element = e;
          }
          get element() {
            return this._element;
          }
          set textContent(e) {
            this.disposed ||
              e === this._textContent ||
              ((this._textContent = e), (this._element.textContent = e));
          }
          set className(e) {
            this.disposed ||
              e === this._className ||
              ((this._className = e), (this._element.className = e));
          }
          set title(e) {
            this.disposed ||
              e === this._title ||
              ((this._title = e),
              this._title
                ? (this._element.title = e)
                : this._element.removeAttribute('title'));
          }
          set empty(e) {
            this.disposed ||
              e === this._empty ||
              ((this._empty = e),
              (this._element.style.marginLeft = e ? '0' : ''));
          }
          dispose() {
            this.disposed = !0;
          }
        }
        class c extends s.JT {
          constructor(e, t) {
            super(),
              (this.domNode = this._register(
                new l(n.R3(e, n.$('.monaco-icon-label')))
              ));
            const i = n.R3(
                this.domNode.element,
                n.$('.monaco-icon-label-container')
              ),
              s = n.R3(i, n.$('span.monaco-icon-name-container'));
            (this.descriptionContainer = this._register(
              new l(n.R3(i, n.$('span.monaco-icon-description-container')))
            )),
              (null == t ? void 0 : t.supportHighlights)
                ? (this.nameNode = new h(s, !!t.supportCodicons))
                : (this.nameNode = new d(s)),
              (null == t ? void 0 : t.supportDescriptionHighlights)
                ? (this.descriptionNodeFactory = () =>
                    new r.q(
                      n.R3(
                        this.descriptionContainer.element,
                        n.$('span.label-description')
                      ),
                      !!t.supportCodicons
                    ))
                : (this.descriptionNodeFactory = () =>
                    this._register(
                      new l(
                        n.R3(
                          this.descriptionContainer.element,
                          n.$('span.label-description')
                        )
                      )
                    ));
          }
          setLabel(e, t, i) {
            const n = ['monaco-icon-label'];
            i &&
              (i.extraClasses && n.push(...i.extraClasses),
              i.italic && n.push('italic'),
              i.strikethrough && n.push('strikethrough')),
              (this.domNode.className = n.join(' ')),
              (this.domNode.title = (null == i ? void 0 : i.title) || ''),
              this.nameNode.setLabel(e, i),
              (t || this.descriptionNode) &&
                (this.descriptionNode ||
                  (this.descriptionNode = this.descriptionNodeFactory()),
                this.descriptionNode instanceof r.q
                  ? (this.descriptionNode.set(
                      t || '',
                      i ? i.descriptionMatches : void 0
                    ),
                    (null == i ? void 0 : i.descriptionTitle)
                      ? (this.descriptionNode.element.title =
                          i.descriptionTitle)
                      : this.descriptionNode.element.removeAttribute('title'))
                  : ((this.descriptionNode.textContent = t || ''),
                    (this.descriptionNode.title =
                      (null == i ? void 0 : i.descriptionTitle) || ''),
                    (this.descriptionNode.empty = !t)));
          }
        }
        class d {
          constructor(e) {
            (this.container = e),
              (this.label = void 0),
              (this.singleLabel = void 0);
          }
          setLabel(e, t) {
            if (this.label !== e || !(0, a.fS)(this.options, t))
              if (((this.label = e), (this.options = t), 'string' == typeof e))
                this.singleLabel ||
                  ((this.container.innerText = ''),
                  n.IV(this.container, 'multiple'),
                  (this.singleLabel = n.R3(
                    this.container,
                    n.$('a.label-name', { id: null == t ? void 0 : t.domId })
                  ))),
                  (this.singleLabel.textContent = e);
              else {
                (this.container.innerText = ''),
                  n.cn(this.container, 'multiple'),
                  (this.singleLabel = void 0);
                for (let i = 0; i < e.length; i++) {
                  const r = e[i],
                    s =
                      (null == t ? void 0 : t.domId) &&
                      `${null == t ? void 0 : t.domId}_${i}`;
                  n.R3(
                    this.container,
                    n.$(
                      'a.label-name',
                      {
                        id: s,
                        'data-icon-label-count': e.length,
                        'data-icon-label-index': i,
                        role: 'treeitem',
                      },
                      r
                    )
                  ),
                    i < e.length - 1 &&
                      n.R3(
                        this.container,
                        n.$(
                          'span.label-separator',
                          void 0,
                          (null == t ? void 0 : t.separator) || '/'
                        )
                      );
                }
              }
          }
        }
        class h {
          constructor(e, t) {
            (this.container = e),
              (this.supportCodicons = t),
              (this.label = void 0),
              (this.singleLabel = void 0);
          }
          setLabel(e, t) {
            if (this.label !== e || !(0, a.fS)(this.options, t))
              if (((this.label = e), (this.options = t), 'string' == typeof e))
                this.singleLabel ||
                  ((this.container.innerText = ''),
                  n.IV(this.container, 'multiple'),
                  (this.singleLabel = new r.q(
                    n.R3(
                      this.container,
                      n.$('a.label-name', { id: null == t ? void 0 : t.domId })
                    ),
                    this.supportCodicons
                  ))),
                  this.singleLabel.set(
                    e,
                    null == t ? void 0 : t.matches,
                    null == t ? void 0 : t.title,
                    null == t ? void 0 : t.labelEscapeNewLines
                  );
              else {
                (this.container.innerText = ''),
                  n.cn(this.container, 'multiple'),
                  (this.singleLabel = void 0);
                const i = (null == t ? void 0 : t.separator) || '/',
                  s = (function (e, t, i) {
                    if (!i) return;
                    let n = 0;
                    return e.map((e) => {
                      const r = { start: n, end: n + e.length },
                        s = i
                          .map((e) => o.e.intersect(r, e))
                          .filter((e) => !o.e.isEmpty(e))
                          .map(({ start: e, end: t }) => ({
                            start: e - n,
                            end: t - n,
                          }));
                      return (n = r.end + t.length), s;
                    });
                  })(e, i, null == t ? void 0 : t.matches);
                for (let o = 0; o < e.length; o++) {
                  const a = e[o],
                    l = s ? s[o] : void 0,
                    c =
                      (null == t ? void 0 : t.domId) &&
                      `${null == t ? void 0 : t.domId}_${o}`,
                    d = n.$('a.label-name', {
                      id: c,
                      'data-icon-label-count': e.length,
                      'data-icon-label-index': o,
                      role: 'treeitem',
                    });
                  new r.q(n.R3(this.container, d), this.supportCodicons).set(
                    a,
                    l,
                    null == t ? void 0 : t.title,
                    null == t ? void 0 : t.labelEscapeNewLines
                  ),
                    o < e.length - 1 &&
                      n.R3(d, n.$('span.label-separator', void 0, i));
                }
              }
          }
        }
      },
      77927: (e, t, i) => {
        'use strict';
        i.d(t, { p: () => v, W: () => b });
        var n = i(63580),
          r = i(65321),
          s = i(48764),
          o = i(85152),
          a = i(90317),
          l = i(4669),
          c = i(93794),
          d = i(41264),
          h = i(36248);
        class u {
          constructor(e, t = 0, i = e.length, n = t - 1) {
            (this.items = e),
              (this.start = t),
              (this.end = i),
              (this.index = n);
          }
          current() {
            return this.index === this.start - 1 || this.index === this.end
              ? null
              : this.items[this.index];
          }
          next() {
            return (
              (this.index = Math.min(this.index + 1, this.end)), this.current()
            );
          }
          previous() {
            return (
              (this.index = Math.max(this.index - 1, this.start - 1)),
              this.current()
            );
          }
          first() {
            return (this.index = this.start), this.current();
          }
          last() {
            return (this.index = this.end - 1), this.current();
          }
        }
        class g {
          constructor(e = [], t = 10) {
            this._initialize(e), (this._limit = t), this._onChange();
          }
          add(e) {
            this._history.delete(e), this._history.add(e), this._onChange();
          }
          next() {
            return this._currentPosition() !== this._elements.length - 1
              ? this._navigator.next()
              : null;
          }
          previous() {
            return 0 !== this._currentPosition()
              ? this._navigator.previous()
              : null;
          }
          current() {
            return this._navigator.current();
          }
          first() {
            return this._navigator.first();
          }
          last() {
            return this._navigator.last();
          }
          has(e) {
            return this._history.has(e);
          }
          _onChange() {
            this._reduceToLimit();
            const e = this._elements;
            this._navigator = new u(e, 0, e.length, e.length);
          }
          _reduceToLimit() {
            const e = this._elements;
            e.length > this._limit &&
              this._initialize(e.slice(e.length - this._limit));
          }
          _currentPosition() {
            const e = this._navigator.current();
            return e ? this._elements.indexOf(e) : -1;
          }
          _initialize(e) {
            this._history = new Set();
            for (const t of e) this._history.add(t);
          }
          get _elements() {
            const e = [];
            return this._history.forEach((t) => e.push(t)), e;
          }
        }
        var f = i(9802),
          p = i(4850);
        const m = r.$,
          _ = {
            inputBackground: d.Il.fromHex('#3C3C3C'),
            inputForeground: d.Il.fromHex('#CCCCCC'),
            inputValidationInfoBorder: d.Il.fromHex('#55AAFF'),
            inputValidationInfoBackground: d.Il.fromHex('#063B49'),
            inputValidationWarningBorder: d.Il.fromHex('#B89500'),
            inputValidationWarningBackground: d.Il.fromHex('#352A05'),
            inputValidationErrorBorder: d.Il.fromHex('#BE1100'),
            inputValidationErrorBackground: d.Il.fromHex('#5A1D1D'),
          };
        class b extends c.$ {
          constructor(e, t, i) {
            super(),
              (this.state = 'idle'),
              (this.maxHeight = Number.POSITIVE_INFINITY),
              (this._onDidChange = this._register(new l.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._onDidHeightChange = this._register(new l.Q5())),
              (this.onDidHeightChange = this._onDidHeightChange.event),
              (this.contextViewProvider = t),
              (this.options = i || Object.create(null)),
              (0, h.jB)(this.options, _, !1),
              (this.message = null),
              (this.placeholder = this.options.placeholder || ''),
              (this.ariaLabel = this.options.ariaLabel || ''),
              (this.inputBackground = this.options.inputBackground),
              (this.inputForeground = this.options.inputForeground),
              (this.inputBorder = this.options.inputBorder),
              (this.inputValidationInfoBorder = this.options.inputValidationInfoBorder),
              (this.inputValidationInfoBackground = this.options.inputValidationInfoBackground),
              (this.inputValidationInfoForeground = this.options.inputValidationInfoForeground),
              (this.inputValidationWarningBorder = this.options.inputValidationWarningBorder),
              (this.inputValidationWarningBackground = this.options.inputValidationWarningBackground),
              (this.inputValidationWarningForeground = this.options.inputValidationWarningForeground),
              (this.inputValidationErrorBorder = this.options.inputValidationErrorBorder),
              (this.inputValidationErrorBackground = this.options.inputValidationErrorBackground),
              (this.inputValidationErrorForeground = this.options.inputValidationErrorForeground),
              this.options.validationOptions &&
                (this.validation = this.options.validationOptions.validation),
              (this.element = r.R3(e, m('.monaco-inputbox.idle')));
            let n = this.options.flexibleHeight ? 'textarea' : 'input',
              s = r.R3(this.element, m('.wrapper'));
            if (
              ((this.input = r.R3(s, m(n + '.input.empty'))),
              this.input.setAttribute('autocorrect', 'off'),
              this.input.setAttribute('autocapitalize', 'off'),
              this.input.setAttribute('spellcheck', 'false'),
              this.onfocus(this.input, () =>
                this.element.classList.add('synthetic-focus')
              ),
              this.onblur(this.input, () =>
                this.element.classList.remove('synthetic-focus')
              ),
              this.options.flexibleHeight)
            ) {
              (this.maxHeight =
                'number' == typeof this.options.flexibleMaxHeight
                  ? this.options.flexibleMaxHeight
                  : Number.POSITIVE_INFINITY),
                (this.mirror = r.R3(s, m('div.mirror'))),
                (this.mirror.innerText = ' '),
                (this.scrollableElement = new f.NB(this.element, {
                  vertical: 1,
                })),
                this.options.flexibleWidth &&
                  (this.input.setAttribute('wrap', 'off'),
                  (this.mirror.style.whiteSpace = 'pre'),
                  (this.mirror.style.wordWrap = 'initial')),
                r.R3(e, this.scrollableElement.getDomNode()),
                this._register(this.scrollableElement),
                this._register(
                  this.scrollableElement.onScroll(
                    (e) => (this.input.scrollTop = e.scrollTop)
                  )
                );
              const t = l.ju.filter(
                (0, p.j)(document, 'selectionchange'),
                () => {
                  const e = document.getSelection();
                  return (null == e ? void 0 : e.anchorNode) === s;
                }
              );
              this._register(t(this.updateScrollDimensions, this)),
                this._register(
                  this.onDidHeightChange(this.updateScrollDimensions, this)
                );
            } else
              (this.input.type = this.options.type || 'text'),
                this.input.setAttribute('wrap', 'off');
            this.ariaLabel &&
              this.input.setAttribute('aria-label', this.ariaLabel),
              this.placeholder && this.setPlaceHolder(this.placeholder),
              this.oninput(this.input, () => this.onValueChange()),
              this.onblur(this.input, () => this.onBlur()),
              this.onfocus(this.input, () => this.onFocus()),
              this.ignoreGesture(this.input),
              setTimeout(() => this.updateMirror(), 0),
              this.options.actions &&
                ((this.actionbar = this._register(new a.o(this.element))),
                this.actionbar.push(this.options.actions, {
                  icon: !0,
                  label: !1,
                })),
              this.applyStyles();
          }
          onBlur() {
            this._hideMessage();
          }
          onFocus() {
            this._showMessage();
          }
          setPlaceHolder(e) {
            (this.placeholder = e),
              this.input.setAttribute('placeholder', e),
              (this.input.title = e);
          }
          setAriaLabel(e) {
            (this.ariaLabel = e),
              e
                ? this.input.setAttribute('aria-label', this.ariaLabel)
                : this.input.removeAttribute('aria-label');
          }
          getAriaLabel() {
            return this.ariaLabel;
          }
          get inputElement() {
            return this.input;
          }
          get value() {
            return this.input.value;
          }
          set value(e) {
            this.input.value !== e &&
              ((this.input.value = e), this.onValueChange());
          }
          get height() {
            return 'number' == typeof this.cachedHeight
              ? this.cachedHeight
              : r.wn(this.element);
          }
          focus() {
            this.input.focus();
          }
          blur() {
            this.input.blur();
          }
          hasFocus() {
            return document.activeElement === this.input;
          }
          select(e = null) {
            this.input.select(),
              e && this.input.setSelectionRange(e.start, e.end);
          }
          isSelectionAtEnd() {
            return (
              this.input.selectionEnd === this.input.value.length &&
              this.input.selectionStart === this.input.selectionEnd
            );
          }
          enable() {
            this.input.removeAttribute('disabled');
          }
          disable() {
            this.blur(), (this.input.disabled = !0), this._hideMessage();
          }
          get width() {
            return r.w(this.input);
          }
          set width(e) {
            if (this.options.flexibleHeight && this.options.flexibleWidth) {
              let t = 0;
              this.mirror &&
                (t =
                  (parseFloat(this.mirror.style.paddingLeft || '') || 0) +
                  (parseFloat(this.mirror.style.paddingRight || '') || 0)),
                (this.input.style.width = e - t + 'px');
            } else this.input.style.width = e + 'px';
            this.mirror && (this.mirror.style.width = e + 'px');
          }
          set paddingRight(e) {
            this.options.flexibleHeight && this.options.flexibleWidth
              ? (this.input.style.width = `calc(100% - ${e}px)`)
              : (this.input.style.paddingRight = e + 'px'),
              this.mirror && (this.mirror.style.paddingRight = e + 'px');
          }
          updateScrollDimensions() {
            if (
              'number' != typeof this.cachedContentHeight ||
              'number' != typeof this.cachedHeight ||
              !this.scrollableElement
            )
              return;
            const e = this.cachedContentHeight,
              t = this.cachedHeight,
              i = this.input.scrollTop;
            this.scrollableElement.setScrollDimensions({
              scrollHeight: e,
              height: t,
            }),
              this.scrollableElement.setScrollPosition({ scrollTop: i });
          }
          showMessage(e, t) {
            (this.message = e),
              this.element.classList.remove('idle'),
              this.element.classList.remove('info'),
              this.element.classList.remove('warning'),
              this.element.classList.remove('error'),
              this.element.classList.add(this.classForType(e.type));
            const i = this.stylesForType(this.message.type);
            (this.element.style.border = i.border
              ? `1px solid ${i.border}`
              : ''),
              (this.hasFocus() || t) && this._showMessage();
          }
          hideMessage() {
            (this.message = null),
              this.element.classList.remove('info'),
              this.element.classList.remove('warning'),
              this.element.classList.remove('error'),
              this.element.classList.add('idle'),
              this._hideMessage(),
              this.applyStyles();
          }
          validate() {
            let e = null;
            return (
              this.validation &&
                ((e = this.validation(this.value)),
                e
                  ? (this.inputElement.setAttribute('aria-invalid', 'true'),
                    this.showMessage(e))
                  : this.inputElement.hasAttribute('aria-invalid') &&
                    (this.inputElement.removeAttribute('aria-invalid'),
                    this.hideMessage())),
              !e
            );
          }
          stylesForType(e) {
            switch (e) {
              case 1:
                return {
                  border: this.inputValidationInfoBorder,
                  background: this.inputValidationInfoBackground,
                  foreground: this.inputValidationInfoForeground,
                };
              case 2:
                return {
                  border: this.inputValidationWarningBorder,
                  background: this.inputValidationWarningBackground,
                  foreground: this.inputValidationWarningForeground,
                };
              default:
                return {
                  border: this.inputValidationErrorBorder,
                  background: this.inputValidationErrorBackground,
                  foreground: this.inputValidationErrorForeground,
                };
            }
          }
          classForType(e) {
            switch (e) {
              case 1:
                return 'info';
              case 2:
                return 'warning';
              default:
                return 'error';
            }
          }
          _showMessage() {
            if (!this.contextViewProvider || !this.message) return;
            let e,
              t,
              i = () => (e.style.width = r.w(this.element) + 'px');
            this.contextViewProvider.showContextView({
              getAnchor: () => this.element,
              anchorAlignment: 1,
              render: (t) => {
                if (!this.message) return null;
                (e = r.R3(t, m('.monaco-inputbox-container'))), i();
                const n = { inline: !0, className: 'monaco-inputbox-message' },
                  o = this.message.formatContent
                    ? (0, s.BO)(this.message.content, n)
                    : (0, s.IY)(this.message.content, n);
                o.classList.add(this.classForType(this.message.type));
                const a = this.stylesForType(this.message.type);
                return (
                  (o.style.backgroundColor = a.background
                    ? a.background.toString()
                    : ''),
                  (o.style.color = a.foreground ? a.foreground.toString() : ''),
                  (o.style.border = a.border ? `1px solid ${a.border}` : ''),
                  r.R3(e, o),
                  null
                );
              },
              onHide: () => {
                this.state = 'closed';
              },
              layout: i,
            }),
              (t =
                3 === this.message.type
                  ? n.N('alertErrorMessage', 'Error: {0}', this.message.content)
                  : 2 === this.message.type
                  ? n.N(
                      'alertWarningMessage',
                      'Warning: {0}',
                      this.message.content
                    )
                  : n.N('alertInfoMessage', 'Info: {0}', this.message.content)),
              o.Z9(t),
              (this.state = 'open');
          }
          _hideMessage() {
            this.contextViewProvider &&
              ('open' === this.state &&
                this.contextViewProvider.hideContextView(),
              (this.state = 'idle'));
          }
          onValueChange() {
            this._onDidChange.fire(this.value),
              this.validate(),
              this.updateMirror(),
              this.input.classList.toggle('empty', !this.value),
              'open' === this.state &&
                this.contextViewProvider &&
                this.contextViewProvider.layout();
          }
          updateMirror() {
            if (!this.mirror) return;
            const e = this.value,
              t = 10 === e.charCodeAt(e.length - 1) ? ' ' : '';
            e + t
              ? (this.mirror.textContent = e + t)
              : (this.mirror.innerText = ' '),
              this.layout();
          }
          style(e) {
            (this.inputBackground = e.inputBackground),
              (this.inputForeground = e.inputForeground),
              (this.inputBorder = e.inputBorder),
              (this.inputValidationInfoBackground =
                e.inputValidationInfoBackground),
              (this.inputValidationInfoForeground =
                e.inputValidationInfoForeground),
              (this.inputValidationInfoBorder = e.inputValidationInfoBorder),
              (this.inputValidationWarningBackground =
                e.inputValidationWarningBackground),
              (this.inputValidationWarningForeground =
                e.inputValidationWarningForeground),
              (this.inputValidationWarningBorder =
                e.inputValidationWarningBorder),
              (this.inputValidationErrorBackground =
                e.inputValidationErrorBackground),
              (this.inputValidationErrorForeground =
                e.inputValidationErrorForeground),
              (this.inputValidationErrorBorder = e.inputValidationErrorBorder),
              this.applyStyles();
          }
          applyStyles() {
            const e = this.inputBackground
                ? this.inputBackground.toString()
                : '',
              t = this.inputForeground ? this.inputForeground.toString() : '',
              i = this.inputBorder ? this.inputBorder.toString() : '';
            (this.element.style.backgroundColor = e),
              (this.element.style.color = t),
              (this.input.style.backgroundColor = 'inherit'),
              (this.input.style.color = t),
              (this.element.style.borderWidth = i ? '1px' : ''),
              (this.element.style.borderStyle = i ? 'solid' : ''),
              (this.element.style.borderColor = i);
          }
          layout() {
            if (!this.mirror) return;
            const e = this.cachedContentHeight;
            (this.cachedContentHeight = r.wn(this.mirror)),
              e !== this.cachedContentHeight &&
                ((this.cachedHeight = Math.min(
                  this.cachedContentHeight,
                  this.maxHeight
                )),
                (this.input.style.height = this.cachedHeight + 'px'),
                this._onDidHeightChange.fire(this.cachedContentHeight));
          }
          insertAtCursor(e) {
            const t = this.inputElement,
              i = t.selectionStart,
              n = t.selectionEnd,
              r = t.value;
            null !== i &&
              null !== n &&
              ((this.value = r.substr(0, i) + e + r.substr(n)),
              t.setSelectionRange(i + 1, i + 1),
              this.layout());
          }
          dispose() {
            this._hideMessage(),
              (this.message = null),
              this.actionbar && this.actionbar.dispose(),
              super.dispose();
          }
        }
        class v extends b {
          constructor(e, t, i) {
            super(e, t, i), (this.history = new g(i.history, 100));
          }
          addToHistory() {
            this.value &&
              this.value !== this.getCurrentValue() &&
              this.history.add(this.value);
          }
          showNextValue() {
            this.history.has(this.value) || this.addToHistory();
            let e = this.getNextValue();
            e && (e = e === this.value ? this.getNextValue() : e),
              e && ((this.value = e), o.i7(this.value));
          }
          showPreviousValue() {
            this.history.has(this.value) || this.addToHistory();
            let e = this.getPreviousValue();
            e && (e = e === this.value ? this.getPreviousValue() : e),
              e && ((this.value = e), o.i7(this.value));
          }
          getCurrentValue() {
            let e = this.history.current();
            return e || ((e = this.history.last()), this.history.next()), e;
          }
          getPreviousValue() {
            return this.history.previous() || this.history.first();
          }
          getNextValue() {
            return this.history.next() || this.history.last();
          }
        }
      },
      25707: (e, t, i) => {
        'use strict';
        i.d(t, { kX: () => S, Bv: () => M });
        var n = i(36248),
          r = i(5976),
          s = i(10553),
          o = i(65321),
          a = i(4669),
          l = i(4850),
          c = i(9802),
          d = i(76633),
          h = i(61134);
        function u(e, t) {
          const i = [];
          for (let n of t) {
            if (e.start >= n.range.end) continue;
            if (e.end < n.range.start) break;
            const t = h.e.intersect(e, n.range);
            h.e.isEmpty(t) || i.push({ range: t, size: n.size });
          }
          return i;
        }
        function g({ start: e, end: t }, i) {
          return { start: e + i, end: t + i };
        }
        class f {
          constructor() {
            (this.groups = []), (this._size = 0);
          }
          splice(e, t, i = []) {
            const n = i.length - t,
              r = u({ start: 0, end: e }, this.groups),
              s = u(
                { start: e + t, end: Number.POSITIVE_INFINITY },
                this.groups
              ).map((e) => ({ range: g(e.range, n), size: e.size })),
              o = i.map((t, i) => ({
                range: { start: e + i, end: e + i + 1 },
                size: t.size,
              }));
            (this.groups = (function (...e) {
              return (function (e) {
                const t = [];
                let i = null;
                for (let n of e) {
                  const e = n.range.start,
                    r = n.range.end,
                    s = n.size;
                  i && s === i.size
                    ? (i.range.end = r)
                    : ((i = { range: { start: e, end: r }, size: s }),
                      t.push(i));
                }
                return t;
              })(e.reduce((e, t) => e.concat(t), []));
            })(r, o, s)),
              (this._size = this.groups.reduce(
                (e, t) => e + t.size * (t.range.end - t.range.start),
                0
              ));
          }
          get count() {
            const e = this.groups.length;
            return e ? this.groups[e - 1].range.end : 0;
          }
          get size() {
            return this._size;
          }
          indexAt(e) {
            if (e < 0) return -1;
            let t = 0,
              i = 0;
            for (let n of this.groups) {
              const r = n.range.end - n.range.start,
                s = i + r * n.size;
              if (e < s) return t + Math.floor((e - i) / n.size);
              (t += r), (i = s);
            }
            return t;
          }
          indexAfter(e) {
            return Math.min(this.indexAt(e) + 1, this.count);
          }
          positionAt(e) {
            if (e < 0) return -1;
            let t = 0,
              i = 0;
            for (let n of this.groups) {
              const r = n.range.end - n.range.start,
                s = i + r;
              if (e < s) return t + (e - i) * n.size;
              (t += r * n.size), (i = s);
            }
            return -1;
          }
        }
        class p {
          constructor(e) {
            (this.renderers = e), (this.cache = new Map());
          }
          alloc(e) {
            let t = this.getTemplateCache(e).pop();
            if (!t) {
              const i = (0, o.$)('.monaco-list-row');
              t = {
                domNode: i,
                templateId: e,
                templateData: this.getRenderer(e).renderTemplate(i),
              };
            }
            return t;
          }
          release(e) {
            e && this.releaseRow(e);
          }
          releaseRow(e) {
            const { domNode: t, templateId: i } = e;
            t &&
              ((0, o.IV)(t, 'scrolling'),
              (function (e) {
                try {
                  e.parentElement && e.parentElement.removeChild(e);
                } catch (e) {}
              })(t)),
              this.getTemplateCache(i).push(e);
          }
          getTemplateCache(e) {
            let t = this.cache.get(e);
            return t || ((t = []), this.cache.set(e, t)), t;
          }
          dispose() {
            this.cache.forEach((e, t) => {
              for (const i of e)
                this.getRenderer(t).disposeTemplate(i.templateData),
                  (i.domNode = null),
                  (i.templateData = null);
            }),
              this.cache.clear();
          }
          getRenderer(e) {
            const t = this.renderers.get(e);
            if (!t) throw new Error(`No renderer found for ${e}`);
            return t;
          }
        }
        var m = i(49898),
          _ = i(9488),
          b = i(23547),
          v = i(15393),
          y = i(16268),
          w = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          };
        const C = {
          useShadows: !0,
          verticalScrollMode: 1,
          setRowLineHeight: !0,
          setRowHeight: !0,
          supportDynamicHeights: !1,
          dnd: {
            getDragElements: (e) => [e],
            getDragURI: () => null,
            onDragStart() {},
            onDragOver: () => !1,
            drop() {},
          },
          horizontalScrolling: !1,
          transformOptimization: !0,
        };
        class S {
          constructor(e) {
            this.elements = e;
          }
          update() {}
          getData() {
            return this.elements;
          }
        }
        class k {
          constructor(e) {
            this.elements = e;
          }
          update() {}
          getData() {
            return this.elements;
          }
        }
        class x {
          constructor() {
            (this.types = []), (this.files = []);
          }
          update(e) {
            if (
              (e.types && this.types.splice(0, this.types.length, ...e.types),
              e.files)
            ) {
              this.files.splice(0, this.files.length);
              for (let t = 0; t < e.files.length; t++) {
                const i = e.files.item(t);
                i && (i.size || i.type) && this.files.push(i);
              }
            }
          }
          getData() {
            return { types: this.types, files: this.files };
          }
        }
        class L {
          constructor(e) {
            (null == e ? void 0 : e.getSetSize)
              ? (this.getSetSize = e.getSetSize.bind(e))
              : (this.getSetSize = (e, t, i) => i),
              (null == e ? void 0 : e.getPosInSet)
                ? (this.getPosInSet = e.getPosInSet.bind(e))
                : (this.getPosInSet = (e, t) => t + 1),
              (null == e ? void 0 : e.getRole)
                ? (this.getRole = e.getRole.bind(e))
                : (this.getRole = (e) => 'listitem'),
              (null == e ? void 0 : e.isChecked)
                ? (this.isChecked = e.isChecked.bind(e))
                : (this.isChecked = (e) => {});
          }
        }
        class M {
          constructor(e, t, i, h = C) {
            if (
              ((this.virtualDelegate = t),
              (this.domId = 'list_id_' + ++M.InstanceCount),
              (this.renderers = new Map()),
              (this.renderWidth = 0),
              (this._scrollHeight = 0),
              (this.scrollableElementUpdateDisposable = null),
              (this.scrollableElementWidthDelayer = new v.vp(50)),
              (this.splicing = !1),
              (this.dragOverAnimationStopDisposable = r.JT.None),
              (this.dragOverMouseY = 0),
              (this.canDrop = !1),
              (this.currentDragFeedbackDisposable = r.JT.None),
              (this.onDragLeaveTimeout = r.JT.None),
              (this.disposables = new r.SL()),
              (this._onDidChangeContentHeight = new a.Q5()),
              (this._horizontalScrolling = !1),
              h.horizontalScrolling && h.supportDynamicHeights)
            )
              throw new Error(
                'Horizontal scrolling and dynamic heights not supported simultaneously'
              );
            (this.items = []), (this.itemId = 0), (this.rangeMap = new f());
            for (const e of i) this.renderers.set(e.templateId, e);
            (this.cache = this.disposables.add(new p(this.renderers))),
              (this.lastRenderTop = 0),
              (this.lastRenderHeight = 0),
              (this.domNode = document.createElement('div')),
              (this.domNode.className = 'monaco-list'),
              o.cn(this.domNode, this.domId),
              (this.domNode.tabIndex = 0),
              o.og(
                this.domNode,
                'mouse-support',
                'boolean' != typeof h.mouseSupport || h.mouseSupport
              ),
              (this._horizontalScrolling = (0, n.CJ)(
                h,
                (e) => e.horizontalScrolling,
                C.horizontalScrolling
              )),
              o.og(
                this.domNode,
                'horizontal-scrolling',
                this._horizontalScrolling
              ),
              (this.additionalScrollHeight =
                void 0 === h.additionalScrollHeight
                  ? 0
                  : h.additionalScrollHeight),
              (this.accessibilityProvider = new L(h.accessibilityProvider)),
              (this.rowsContainer = document.createElement('div')),
              (this.rowsContainer.className = 'monaco-list-rows'),
              (0, n.CJ)(
                h,
                (e) => e.transformOptimization,
                C.transformOptimization
              ) &&
                (this.rowsContainer.style.transform =
                  'translate3d(0px, 0px, 0px)'),
              this.disposables.add(s.o.addTarget(this.rowsContainer)),
              (this.scrollable = new d.Rm(
                (0, n.CJ)(h, (e) => e.smoothScrolling, !1) ? 125 : 0,
                (e) => o.jL(e)
              )),
              (this.scrollableElement = this.disposables.add(
                new c.$Z(
                  this.rowsContainer,
                  {
                    alwaysConsumeMouseWheel: !0,
                    horizontal: 1,
                    vertical: (0, n.CJ)(
                      h,
                      (e) => e.verticalScrollMode,
                      C.verticalScrollMode
                    ),
                    useShadows: (0, n.CJ)(h, (e) => e.useShadows, C.useShadows),
                  },
                  this.scrollable
                )
              )),
              this.domNode.appendChild(this.scrollableElement.getDomNode()),
              e.appendChild(this.domNode),
              this.scrollableElement.onScroll(
                this.onScroll,
                this,
                this.disposables
              ),
              (0, l.j)(this.rowsContainer, s.t.Change)(
                this.onTouchChange,
                this,
                this.disposables
              ),
              (0, l.j)(this.scrollableElement.getDomNode(), 'scroll')(
                (e) => (e.target.scrollTop = 0),
                null,
                this.disposables
              ),
              a.ju.map((0, l.j)(this.domNode, 'dragover'), (e) =>
                this.toDragEvent(e)
              )(this.onDragOver, this, this.disposables),
              a.ju.map((0, l.j)(this.domNode, 'drop'), (e) =>
                this.toDragEvent(e)
              )(this.onDrop, this, this.disposables),
              (0, l.j)(this.domNode, 'dragleave')(
                this.onDragLeave,
                this,
                this.disposables
              ),
              (0, l.j)(window, 'dragend')(
                this.onDragEnd,
                this,
                this.disposables
              ),
              (this.setRowLineHeight = (0, n.CJ)(
                h,
                (e) => e.setRowLineHeight,
                C.setRowLineHeight
              )),
              (this.setRowHeight = (0, n.CJ)(
                h,
                (e) => e.setRowHeight,
                C.setRowHeight
              )),
              (this.supportDynamicHeights = (0, n.CJ)(
                h,
                (e) => e.supportDynamicHeights,
                C.supportDynamicHeights
              )),
              (this.dnd = (0, n.CJ)(h, (e) => e.dnd, C.dnd)),
              this.layout();
          }
          get contentHeight() {
            return this.rangeMap.size;
          }
          get horizontalScrolling() {
            return this._horizontalScrolling;
          }
          set horizontalScrolling(e) {
            if (e !== this._horizontalScrolling) {
              if (e && this.supportDynamicHeights)
                throw new Error(
                  'Horizontal scrolling and dynamic heights not supported simultaneously'
                );
              if (
                ((this._horizontalScrolling = e),
                o.og(
                  this.domNode,
                  'horizontal-scrolling',
                  this._horizontalScrolling
                ),
                this._horizontalScrolling)
              ) {
                for (const e of this.items) this.measureItemWidth(e);
                this.updateScrollWidth(),
                  this.scrollableElement.setScrollDimensions({
                    width: o.FK(this.domNode),
                  }),
                  (this.rowsContainer.style.width = `${Math.max(
                    this.scrollWidth || 0,
                    this.renderWidth
                  )}px`);
              } else
                this.scrollableElementWidthDelayer.cancel(),
                  this.scrollableElement.setScrollDimensions({
                    width: this.renderWidth,
                    scrollWidth: this.renderWidth,
                  }),
                  (this.rowsContainer.style.width = '');
            }
          }
          updateOptions(e) {
            void 0 !== e.additionalScrollHeight &&
              (this.additionalScrollHeight = e.additionalScrollHeight),
              void 0 !== e.smoothScrolling &&
                this.scrollable.setSmoothScrollDuration(
                  e.smoothScrolling ? 125 : 0
                ),
              void 0 !== e.horizontalScrolling &&
                (this.horizontalScrolling = e.horizontalScrolling);
          }
          splice(e, t, i = []) {
            if (this.splicing) throw new Error("Can't run recursive splices.");
            this.splicing = !0;
            try {
              return this._splice(e, t, i);
            } finally {
              (this.splicing = !1),
                this._onDidChangeContentHeight.fire(this.contentHeight);
            }
          }
          _splice(e, t, i = []) {
            const n = this.getRenderRange(
                this.lastRenderTop,
                this.lastRenderHeight
              ),
              s = { start: e, end: e + t },
              o = h.e.intersect(n, s);
            for (let e = o.start; e < o.end; e++) this.removeItemFromDOM(e);
            const a = { start: e + t, end: this.items.length },
              l = h.e.intersect(a, n),
              c = h.e.relativeComplement(a, n),
              d = i.map((e) => ({
                id: String(this.itemId++),
                element: e,
                templateId: this.virtualDelegate.getTemplateId(e),
                size: this.virtualDelegate.getHeight(e),
                width: void 0,
                hasDynamicHeight:
                  !!this.virtualDelegate.hasDynamicHeight &&
                  this.virtualDelegate.hasDynamicHeight(e),
                lastDynamicHeightWidth: void 0,
                row: null,
                uri: void 0,
                dropTarget: !1,
                dragStartDisposable: r.JT.None,
              }));
            let u;
            0 === e && t >= this.items.length
              ? ((this.rangeMap = new f()),
                this.rangeMap.splice(0, 0, d),
                (this.items = d),
                (u = []))
              : (this.rangeMap.splice(e, t, d),
                (u = this.items.splice(e, t, ...d)));
            const p = i.length - t,
              m = this.getRenderRange(
                this.lastRenderTop,
                this.lastRenderHeight
              ),
              _ = g(l, p),
              b = h.e.intersect(m, _);
            for (let e = b.start; e < b.end; e++)
              this.updateItemInDOM(this.items[e], e);
            const v = h.e.relativeComplement(_, m);
            for (const e of v)
              for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t);
            const y = c.map((e) => g(e, p)),
              w = [{ start: e, end: e + i.length }, ...y].map((e) =>
                h.e.intersect(m, e)
              ),
              C = this.getNextToLastElement(w);
            for (const e of w)
              for (let t = e.start; t < e.end; t++) this.insertItemInDOM(t, C);
            return (
              this.eventuallyUpdateScrollDimensions(),
              this.supportDynamicHeights &&
                this._rerender(this.scrollTop, this.renderHeight),
              u.map((e) => e.element)
            );
          }
          eventuallyUpdateScrollDimensions() {
            (this._scrollHeight = this.contentHeight),
              (this.rowsContainer.style.height = `${this._scrollHeight}px`),
              this.scrollableElementUpdateDisposable ||
                (this.scrollableElementUpdateDisposable = o.jL(() => {
                  this.scrollableElement.setScrollDimensions({
                    scrollHeight: this.scrollHeight,
                  }),
                    this.updateScrollWidth(),
                    (this.scrollableElementUpdateDisposable = null);
                }));
          }
          eventuallyUpdateScrollWidth() {
            this.horizontalScrolling
              ? this.scrollableElementWidthDelayer.trigger(() =>
                  this.updateScrollWidth()
                )
              : this.scrollableElementWidthDelayer.cancel();
          }
          updateScrollWidth() {
            if (!this.horizontalScrolling) return;
            let e = 0;
            for (const t of this.items)
              void 0 !== t.width && (e = Math.max(e, t.width));
            (this.scrollWidth = e),
              this.scrollableElement.setScrollDimensions({
                scrollWidth: 0 === e ? 0 : e + 10,
              });
          }
          rerender() {
            if (this.supportDynamicHeights) {
              for (const e of this.items) e.lastDynamicHeightWidth = void 0;
              this._rerender(this.lastRenderTop, this.lastRenderHeight);
            }
          }
          get length() {
            return this.items.length;
          }
          get renderHeight() {
            return this.scrollableElement.getScrollDimensions().height;
          }
          element(e) {
            return this.items[e].element;
          }
          domElement(e) {
            const t = this.items[e].row;
            return t && t.domNode;
          }
          elementHeight(e) {
            return this.items[e].size;
          }
          elementTop(e) {
            return this.rangeMap.positionAt(e);
          }
          indexAt(e) {
            return this.rangeMap.indexAt(e);
          }
          indexAfter(e) {
            return this.rangeMap.indexAfter(e);
          }
          layout(e, t) {
            let i = { height: 'number' == typeof e ? e : o.If(this.domNode) };
            this.scrollableElementUpdateDisposable &&
              (this.scrollableElementUpdateDisposable.dispose(),
              (this.scrollableElementUpdateDisposable = null),
              (i.scrollHeight = this.scrollHeight)),
              this.scrollableElement.setScrollDimensions(i),
              void 0 !== t &&
                ((this.renderWidth = t),
                this.supportDynamicHeights &&
                  this._rerender(this.scrollTop, this.renderHeight),
                this.horizontalScrolling &&
                  this.scrollableElement.setScrollDimensions({
                    width: 'number' == typeof t ? t : o.FK(this.domNode),
                  }));
          }
          render(e, t, i, n, r, s = !1) {
            const o = this.getRenderRange(t, i),
              a = h.e.relativeComplement(o, e),
              l = h.e.relativeComplement(e, o),
              c = this.getNextToLastElement(a);
            if (s) {
              const t = h.e.intersect(e, o);
              for (let e = t.start; e < t.end; e++)
                this.updateItemInDOM(this.items[e], e);
            }
            for (const e of a)
              for (let t = e.start; t < e.end; t++) this.insertItemInDOM(t, c);
            for (const e of l)
              for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t);
            void 0 !== n && (this.rowsContainer.style.left = `-${n}px`),
              (this.rowsContainer.style.top = `-${t}px`),
              this.horizontalScrolling &&
                void 0 !== r &&
                (this.rowsContainer.style.width = `${Math.max(
                  r,
                  this.renderWidth
                )}px`),
              (this.lastRenderTop = t),
              (this.lastRenderHeight = i);
          }
          insertItemInDOM(e, t) {
            const i = this.items[e];
            if (!i.row) {
              i.row = this.cache.alloc(i.templateId);
              const e =
                this.accessibilityProvider.getRole(i.element) || 'listitem';
              i.row.domNode.setAttribute('role', e);
              const t = this.accessibilityProvider.isChecked(i.element);
              void 0 !== t &&
                i.row.domNode.setAttribute('aria-checked', String(!!t));
            }
            i.row.domNode.parentElement ||
              (t
                ? this.rowsContainer.insertBefore(i.row.domNode, t)
                : this.rowsContainer.appendChild(i.row.domNode)),
              this.updateItemInDOM(i, e);
            const n = this.renderers.get(i.templateId);
            if (!n)
              throw new Error(
                `No renderer found for template id ${i.templateId}`
              );
            n && n.renderElement(i.element, e, i.row.templateData, i.size);
            const r = this.dnd.getDragURI(i.element);
            if (
              (i.dragStartDisposable.dispose(),
              (i.row.domNode.draggable = !!r),
              r)
            ) {
              const e = (0, l.j)(i.row.domNode, 'dragstart');
              i.dragStartDisposable = e((e) =>
                this.onDragStart(i.element, r, e)
              );
            }
            this.horizontalScrolling &&
              (this.measureItemWidth(i), this.eventuallyUpdateScrollWidth());
          }
          measureItemWidth(e) {
            if (!e.row || !e.row.domNode) return;
            (e.row.domNode.style.width = y.vU
              ? '-moz-fit-content'
              : 'fit-content'),
              (e.width = o.FK(e.row.domNode));
            const t = window.getComputedStyle(e.row.domNode);
            t.paddingLeft && (e.width += parseFloat(t.paddingLeft)),
              t.paddingRight && (e.width += parseFloat(t.paddingRight)),
              (e.row.domNode.style.width = '');
          }
          updateItemInDOM(e, t) {
            (e.row.domNode.style.top = `${this.elementTop(t)}px`),
              this.setRowHeight && (e.row.domNode.style.height = `${e.size}px`),
              this.setRowLineHeight &&
                (e.row.domNode.style.lineHeight = `${e.size}px`),
              e.row.domNode.setAttribute('data-index', `${t}`),
              e.row.domNode.setAttribute(
                'data-last-element',
                t === this.length - 1 ? 'true' : 'false'
              ),
              e.row.domNode.setAttribute(
                'aria-setsize',
                String(
                  this.accessibilityProvider.getSetSize(
                    e.element,
                    t,
                    this.length
                  )
                )
              ),
              e.row.domNode.setAttribute(
                'aria-posinset',
                String(this.accessibilityProvider.getPosInSet(e.element, t))
              ),
              e.row.domNode.setAttribute('id', this.getElementDomId(t)),
              o.og(e.row.domNode, 'drop-target', e.dropTarget);
          }
          removeItemFromDOM(e) {
            const t = this.items[e];
            t.dragStartDisposable.dispose();
            const i = this.renderers.get(t.templateId);
            t.row &&
              i &&
              i.disposeElement &&
              i.disposeElement(t.element, e, t.row.templateData, t.size),
              this.cache.release(t.row),
              (t.row = null),
              this.horizontalScrolling && this.eventuallyUpdateScrollWidth();
          }
          getScrollTop() {
            return this.scrollableElement.getScrollPosition().scrollTop;
          }
          setScrollTop(e) {
            this.scrollableElementUpdateDisposable &&
              (this.scrollableElementUpdateDisposable.dispose(),
              (this.scrollableElementUpdateDisposable = null),
              this.scrollableElement.setScrollDimensions({
                scrollHeight: this.scrollHeight,
              })),
              this.scrollableElement.setScrollPosition({ scrollTop: e });
          }
          get scrollTop() {
            return this.getScrollTop();
          }
          set scrollTop(e) {
            this.setScrollTop(e);
          }
          get scrollHeight() {
            return (
              this._scrollHeight +
              (this.horizontalScrolling ? 10 : 0) +
              this.additionalScrollHeight
            );
          }
          get onMouseClick() {
            return a.ju.map((0, l.j)(this.domNode, 'click'), (e) =>
              this.toMouseEvent(e)
            );
          }
          get onMouseDblClick() {
            return a.ju.map((0, l.j)(this.domNode, 'dblclick'), (e) =>
              this.toMouseEvent(e)
            );
          }
          get onMouseMiddleClick() {
            return a.ju.filter(
              a.ju.map((0, l.j)(this.domNode, 'auxclick'), (e) =>
                this.toMouseEvent(e)
              ),
              (e) => 1 === e.browserEvent.button
            );
          }
          get onMouseDown() {
            return a.ju.map((0, l.j)(this.domNode, 'mousedown'), (e) =>
              this.toMouseEvent(e)
            );
          }
          get onContextMenu() {
            return a.ju.map((0, l.j)(this.domNode, 'contextmenu'), (e) =>
              this.toMouseEvent(e)
            );
          }
          get onTouchStart() {
            return a.ju.map((0, l.j)(this.domNode, 'touchstart'), (e) =>
              this.toTouchEvent(e)
            );
          }
          get onTap() {
            return a.ju.map((0, l.j)(this.rowsContainer, s.t.Tap), (e) =>
              this.toGestureEvent(e)
            );
          }
          toMouseEvent(e) {
            const t = this.getItemIndexFromEventTarget(e.target || null),
              i = void 0 === t ? void 0 : this.items[t];
            return { browserEvent: e, index: t, element: i && i.element };
          }
          toTouchEvent(e) {
            const t = this.getItemIndexFromEventTarget(e.target || null),
              i = void 0 === t ? void 0 : this.items[t];
            return { browserEvent: e, index: t, element: i && i.element };
          }
          toGestureEvent(e) {
            const t = this.getItemIndexFromEventTarget(e.initialTarget || null),
              i = void 0 === t ? void 0 : this.items[t];
            return { browserEvent: e, index: t, element: i && i.element };
          }
          toDragEvent(e) {
            const t = this.getItemIndexFromEventTarget(e.target || null),
              i = void 0 === t ? void 0 : this.items[t];
            return { browserEvent: e, index: t, element: i && i.element };
          }
          onScroll(e) {
            try {
              const t = this.getRenderRange(
                this.lastRenderTop,
                this.lastRenderHeight
              );
              this.render(
                t,
                e.scrollTop,
                e.height,
                e.scrollLeft,
                e.scrollWidth
              ),
                this.supportDynamicHeights &&
                  this._rerender(e.scrollTop, e.height);
            } catch (t) {
              throw (console.error('Got bad scroll event:', e), t);
            }
          }
          onTouchChange(e) {
            e.preventDefault(),
              e.stopPropagation(),
              (this.scrollTop -= e.translationY);
          }
          onDragStart(e, t, i) {
            if (!i.dataTransfer) return;
            const n = this.dnd.getDragElements(e);
            if (
              ((i.dataTransfer.effectAllowed = 'copyMove'),
              i.dataTransfer.setData(b.go.RESOURCES, JSON.stringify([t])),
              i.dataTransfer.setDragImage)
            ) {
              let e;
              this.dnd.getDragLabel && (e = this.dnd.getDragLabel(n, i)),
                void 0 === e && (e = String(n.length));
              const t = o.$('.monaco-drag-image');
              (t.textContent = e),
                document.body.appendChild(t),
                i.dataTransfer.setDragImage(t, -10, -10),
                setTimeout(() => document.body.removeChild(t), 0);
            }
            (this.currentDragData = new S(n)),
              (b.P$.CurrentDragAndDropData = new k(n)),
              this.dnd.onDragStart &&
                this.dnd.onDragStart(this.currentDragData, i);
          }
          onDragOver(e) {
            if (
              (e.browserEvent.preventDefault(),
              this.onDragLeaveTimeout.dispose(),
              b.P$.CurrentDragAndDropData &&
                'vscode-ui' === b.P$.CurrentDragAndDropData.getData())
            )
              return !1;
            if (
              (this.setupDragAndDropScrollTopAnimation(e.browserEvent),
              !e.browserEvent.dataTransfer)
            )
              return !1;
            if (!this.currentDragData)
              if (b.P$.CurrentDragAndDropData)
                this.currentDragData = b.P$.CurrentDragAndDropData;
              else {
                if (!e.browserEvent.dataTransfer.types) return !1;
                this.currentDragData = new x();
              }
            const t = this.dnd.onDragOver(
              this.currentDragData,
              e.element,
              e.index,
              e.browserEvent
            );
            if (
              ((this.canDrop = 'boolean' == typeof t ? t : t.accept),
              !this.canDrop)
            )
              return (
                (this.currentDragFeedback = void 0),
                this.currentDragFeedbackDisposable.dispose(),
                !1
              );
            let i;
            if (
              ((e.browserEvent.dataTransfer.dropEffect =
                'boolean' != typeof t && 0 === t.effect ? 'copy' : 'move'),
              (i =
                'boolean' != typeof t && t.feedback
                  ? t.feedback
                  : void 0 === e.index
                  ? [-1]
                  : [e.index]),
              (i = (0, _.EB)(i)
                .filter((e) => e >= -1 && e < this.length)
                .sort((e, t) => e - t)),
              (i = -1 === i[0] ? [-1] : i),
              (n = this.currentDragFeedback),
              (s = i),
              Array.isArray(n) && Array.isArray(s) ? (0, _.fS)(n, s) : n === s)
            )
              return !0;
            var n, s;
            if (
              ((this.currentDragFeedback = i),
              this.currentDragFeedbackDisposable.dispose(),
              -1 === i[0])
            )
              o.cn(this.domNode, 'drop-target'),
                o.cn(this.rowsContainer, 'drop-target'),
                (this.currentDragFeedbackDisposable = (0, r.OF)(() => {
                  o.IV(this.domNode, 'drop-target'),
                    o.IV(this.rowsContainer, 'drop-target');
                }));
            else {
              for (const e of i) {
                const t = this.items[e];
                (t.dropTarget = !0),
                  t.row && t.row.domNode && o.cn(t.row.domNode, 'drop-target');
              }
              this.currentDragFeedbackDisposable = (0, r.OF)(() => {
                for (const e of i) {
                  const t = this.items[e];
                  (t.dropTarget = !1),
                    t.row &&
                      t.row.domNode &&
                      o.IV(t.row.domNode, 'drop-target');
                }
              });
            }
            return !0;
          }
          onDragLeave() {
            this.onDragLeaveTimeout.dispose(),
              (this.onDragLeaveTimeout = (0, v.Vg)(
                () => this.clearDragOverFeedback(),
                100
              ));
          }
          onDrop(e) {
            if (!this.canDrop) return;
            const t = this.currentDragData;
            this.teardownDragAndDropScrollTopAnimation(),
              this.clearDragOverFeedback(),
              (this.currentDragData = void 0),
              (b.P$.CurrentDragAndDropData = void 0),
              t &&
                e.browserEvent.dataTransfer &&
                (e.browserEvent.preventDefault(),
                t.update(e.browserEvent.dataTransfer),
                this.dnd.drop(t, e.element, e.index, e.browserEvent));
          }
          onDragEnd(e) {
            (this.canDrop = !1),
              this.teardownDragAndDropScrollTopAnimation(),
              this.clearDragOverFeedback(),
              (this.currentDragData = void 0),
              (b.P$.CurrentDragAndDropData = void 0),
              this.dnd.onDragEnd && this.dnd.onDragEnd(e);
          }
          clearDragOverFeedback() {
            (this.currentDragFeedback = void 0),
              this.currentDragFeedbackDisposable.dispose(),
              (this.currentDragFeedbackDisposable = r.JT.None);
          }
          setupDragAndDropScrollTopAnimation(e) {
            if (!this.dragOverAnimationDisposable) {
              const e = o.xQ(this.domNode).top;
              this.dragOverAnimationDisposable = o.jt(
                this.animateDragAndDropScrollTop.bind(this, e)
              );
            }
            this.dragOverAnimationStopDisposable.dispose(),
              (this.dragOverAnimationStopDisposable = (0, v.Vg)(() => {
                this.dragOverAnimationDisposable &&
                  (this.dragOverAnimationDisposable.dispose(),
                  (this.dragOverAnimationDisposable = void 0));
              }, 1e3)),
              (this.dragOverMouseY = e.pageY);
          }
          animateDragAndDropScrollTop(e) {
            if (void 0 === this.dragOverMouseY) return;
            const t = this.dragOverMouseY - e,
              i = this.renderHeight - 35;
            t < 35
              ? (this.scrollTop += Math.max(-14, Math.floor(0.3 * (t - 35))))
              : t > i &&
                (this.scrollTop += Math.min(14, Math.floor(0.3 * (t - i))));
          }
          teardownDragAndDropScrollTopAnimation() {
            this.dragOverAnimationStopDisposable.dispose(),
              this.dragOverAnimationDisposable &&
                (this.dragOverAnimationDisposable.dispose(),
                (this.dragOverAnimationDisposable = void 0));
          }
          getItemIndexFromEventTarget(e) {
            const t = this.scrollableElement.getDomNode();
            let i = e;
            for (
              ;
              i instanceof HTMLElement &&
              i !== this.rowsContainer &&
              t.contains(i);

            ) {
              const e = i.getAttribute('data-index');
              if (e) {
                const t = Number(e);
                if (!isNaN(t)) return t;
              }
              i = i.parentElement;
            }
          }
          getRenderRange(e, t) {
            return {
              start: this.rangeMap.indexAt(e),
              end: this.rangeMap.indexAfter(e + t - 1),
            };
          }
          _rerender(e, t) {
            const i = this.getRenderRange(e, t);
            let n, r;
            e === this.elementTop(i.start)
              ? ((n = i.start), (r = 0))
              : i.end - i.start > 1 &&
                ((n = i.start + 1), (r = this.elementTop(n) - e));
            let s = 0;
            for (;;) {
              const o = this.getRenderRange(e, t);
              let a = !1;
              for (let e = o.start; e < o.end; e++) {
                const t = this.probeDynamicHeight(e);
                0 !== t && this.rangeMap.splice(e, 1, [this.items[e]]),
                  (s += t),
                  (a = a || 0 !== t);
              }
              if (!a) {
                0 !== s && this.eventuallyUpdateScrollDimensions();
                const e = h.e.relativeComplement(i, o);
                for (const t of e)
                  for (let e = t.start; e < t.end; e++)
                    this.items[e].row && this.removeItemFromDOM(e);
                const t = h.e.relativeComplement(o, i);
                for (const e of t)
                  for (let t = e.start; t < e.end; t++) {
                    const e = t + 1,
                      i = e < this.items.length ? this.items[e].row : null,
                      n = i ? i.domNode : null;
                    this.insertItemInDOM(t, n);
                  }
                for (let e = o.start; e < o.end; e++)
                  this.items[e].row && this.updateItemInDOM(this.items[e], e);
                return (
                  'number' == typeof n &&
                    (this.scrollTop = this.elementTop(n) - r),
                  void this._onDidChangeContentHeight.fire(this.contentHeight)
                );
              }
            }
          }
          probeDynamicHeight(e) {
            const t = this.items[e];
            if (
              !t.hasDynamicHeight ||
              t.lastDynamicHeightWidth === this.renderWidth
            )
              return 0;
            if (
              this.virtualDelegate.hasDynamicHeight &&
              !this.virtualDelegate.hasDynamicHeight(t.element)
            )
              return 0;
            const i = t.size;
            if (!this.setRowHeight && t.row && t.row.domNode) {
              let e = t.row.domNode.offsetHeight;
              return (
                (t.size = e),
                (t.lastDynamicHeightWidth = this.renderWidth),
                e - i
              );
            }
            const n = this.cache.alloc(t.templateId);
            (n.domNode.style.height = ''),
              this.rowsContainer.appendChild(n.domNode);
            const r = this.renderers.get(t.templateId);
            return (
              r &&
                (r.renderElement(t.element, e, n.templateData, void 0),
                r.disposeElement &&
                  r.disposeElement(t.element, e, n.templateData, void 0)),
              (t.size = n.domNode.offsetHeight),
              this.virtualDelegate.setDynamicHeight &&
                this.virtualDelegate.setDynamicHeight(t.element, t.size),
              (t.lastDynamicHeightWidth = this.renderWidth),
              this.rowsContainer.removeChild(n.domNode),
              this.cache.release(n),
              t.size - i
            );
          }
          getNextToLastElement(e) {
            const t = e[e.length - 1];
            if (!t) return null;
            const i = this.items[t.end];
            return i && i.row ? i.row.domNode : null;
          }
          getElementDomId(e) {
            return `${this.domId}_${e}`;
          }
          dispose() {
            if (this.items) {
              for (const e of this.items)
                if (e.row) {
                  const t = this.renderers.get(e.row.templateId);
                  t && t.disposeTemplate(e.row.templateData);
                }
              this.items = [];
            }
            this.domNode &&
              this.domNode.parentNode &&
              this.domNode.parentNode.removeChild(this.domNode),
              (0, r.B9)(this.disposables);
          }
        }
        (M.InstanceCount = 0),
          w([m.H], M.prototype, 'onMouseClick', null),
          w([m.H], M.prototype, 'onMouseDblClick', null),
          w([m.H], M.prototype, 'onMouseMiddleClick', null),
          w([m.H], M.prototype, 'onMouseDown', null),
          w([m.H], M.prototype, 'onContextMenu', null),
          w([m.H], M.prototype, 'onTouchStart', null),
          w([m.H], M.prototype, 'onTap', null);
      },
      43799: (e, t, i) => {
        'use strict';
        i.d(t, {
          WK: () => E,
          wD: () => F,
          aV: () => U,
          sx: () => P,
          cK: () => M,
          hD: () => D,
          wn: () => A,
          Zo: () => O,
        });
        var n = i(5976),
          r = i(98401),
          s = i(9488),
          o = i(49898),
          a = i(65321),
          l = i(1432),
          c = i(10553),
          d = i(59069),
          h = i(4669),
          u = i(4850);
        class g extends Error {
          constructor(e, t) {
            super(`ListError [${e}] ${t}`);
          }
        }
        var f = i(25707),
          p = i(41264),
          m = i(36248);
        class _ {
          constructor(e) {
            this.spliceables = e;
          }
          splice(e, t, i) {
            this.spliceables.forEach((n) => n.splice(e, t, i));
          }
        }
        var b,
          v = i(59870),
          y = i(75392),
          w = i(85152),
          C = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          };
        class S {
          constructor(e) {
            (this.trait = e), (this.renderedElements = []);
          }
          get templateId() {
            return `template:${this.trait.trait}`;
          }
          renderTemplate(e) {
            return e;
          }
          renderElement(e, t, i) {
            const n = (0, s.Zr)(
              this.renderedElements,
              (e) => e.templateData === i
            );
            if (n >= 0) {
              const e = this.renderedElements[n];
              this.trait.unrender(i), (e.index = t);
            } else {
              const e = { index: t, templateData: i };
              this.renderedElements.push(e);
            }
            this.trait.renderIndex(t, i);
          }
          splice(e, t, i) {
            const n = [];
            for (const r of this.renderedElements)
              r.index < e
                ? n.push(r)
                : r.index >= e + t &&
                  n.push({
                    index: r.index + i - t,
                    templateData: r.templateData,
                  });
            this.renderedElements = n;
          }
          renderIndexes(e) {
            for (const { index: t, templateData: i } of this.renderedElements)
              e.indexOf(t) > -1 && this.trait.renderIndex(t, i);
          }
          disposeTemplate(e) {
            const t = (0, s.Zr)(
              this.renderedElements,
              (t) => t.templateData === e
            );
            t < 0 || this.renderedElements.splice(t, 1);
          }
        }
        class k {
          constructor(e) {
            (this._trait = e),
              (this.indexes = []),
              (this.sortedIndexes = []),
              (this._onChange = new h.Q5()),
              (this.onChange = this._onChange.event);
          }
          get trait() {
            return this._trait;
          }
          get renderer() {
            return new S(this);
          }
          splice(e, t, i) {
            const n = i.length - t,
              r = e + t,
              s = [
                ...this.sortedIndexes.filter((t) => t < e),
                ...i.map((t, i) => (t ? i + e : -1)).filter((e) => -1 !== e),
                ...this.sortedIndexes.filter((e) => e >= r).map((e) => e + n),
              ];
            this.renderer.splice(e, t, i.length), this._set(s, s);
          }
          renderIndex(e, t) {
            a.og(t, this._trait, this.contains(e));
          }
          unrender(e) {
            a.IV(e, this._trait);
          }
          set(e, t) {
            return this._set(e, [...e].sort(H), t);
          }
          _set(e, t, i) {
            const n = this.indexes,
              r = this.sortedIndexes;
            (this.indexes = e), (this.sortedIndexes = t);
            const s = Y(r, e);
            return (
              this.renderer.renderIndexes(s),
              this._onChange.fire({ indexes: e, browserEvent: i }),
              n
            );
          }
          get() {
            return this.indexes;
          }
          contains(e) {
            return (0, s.ry)(this.sortedIndexes, e, H) >= 0;
          }
          dispose() {
            (0, n.B9)(this._onChange);
          }
        }
        C([o.H], k.prototype, 'renderer', null);
        class x extends k {
          constructor(e) {
            super('selected'), (this.setAriaSelected = e);
          }
          renderIndex(e, t) {
            super.renderIndex(e, t),
              this.setAriaSelected &&
                (this.contains(e)
                  ? t.setAttribute('aria-selected', 'true')
                  : t.setAttribute('aria-selected', 'false'));
          }
        }
        class L {
          constructor(e, t, i) {
            (this.trait = e), (this.view = t), (this.identityProvider = i);
          }
          splice(e, t, i) {
            if (!this.identityProvider)
              return this.trait.splice(
                e,
                t,
                i.map(() => !1)
              );
            const n = this.trait
                .get()
                .map((e) =>
                  this.identityProvider.getId(this.view.element(e)).toString()
                ),
              r = i.map(
                (e) => n.indexOf(this.identityProvider.getId(e).toString()) > -1
              );
            this.trait.splice(e, t, r);
          }
        }
        function M(e) {
          return 'INPUT' === e.tagName || 'TEXTAREA' === e.tagName;
        }
        function D(e) {
          return (
            !!a.pv(e, 'monaco-editor') ||
            (!a.pv(e, 'monaco-list') && !!e.parentElement && D(e.parentElement))
          );
        }
        class N {
          constructor(e, t, i) {
            (this.list = e), (this.view = t), (this.disposables = new n.SL());
            const r = !1 !== i.multipleSelectionSupport,
              s = h.ju
                .chain((0, u.j)(t.domNode, 'keydown'))
                .filter((e) => !M(e.target))
                .map((e) => new d.y(e));
            s
              .filter((e) => 3 === e.keyCode)
              .on(this.onEnter, this, this.disposables),
              s
                .filter((e) => 16 === e.keyCode)
                .on(this.onUpArrow, this, this.disposables),
              s
                .filter((e) => 18 === e.keyCode)
                .on(this.onDownArrow, this, this.disposables),
              s
                .filter((e) => 11 === e.keyCode)
                .on(this.onPageUpArrow, this, this.disposables),
              s
                .filter((e) => 12 === e.keyCode)
                .on(this.onPageDownArrow, this, this.disposables),
              s
                .filter((e) => 9 === e.keyCode)
                .on(this.onEscape, this, this.disposables),
              r &&
                s
                  .filter(
                    (e) => (l.dz ? e.metaKey : e.ctrlKey) && 31 === e.keyCode
                  )
                  .on(this.onCtrlA, this, this.disposables);
          }
          onEnter(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.setSelection(this.list.getFocus(), e.browserEvent);
          }
          onUpArrow(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.focusPrevious(1, !1, e.browserEvent),
              this.list.reveal(this.list.getFocus()[0]),
              this.view.domNode.focus();
          }
          onDownArrow(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.focusNext(1, !1, e.browserEvent),
              this.list.reveal(this.list.getFocus()[0]),
              this.view.domNode.focus();
          }
          onPageUpArrow(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.focusPreviousPage(e.browserEvent),
              this.list.reveal(this.list.getFocus()[0]),
              this.view.domNode.focus();
          }
          onPageDownArrow(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.focusNextPage(e.browserEvent),
              this.list.reveal(this.list.getFocus()[0]),
              this.view.domNode.focus();
          }
          onCtrlA(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.setSelection(
                (0, s.w6)(this.list.length),
                e.browserEvent
              ),
              this.view.domNode.focus();
          }
          onEscape(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this.list.setSelection([], e.browserEvent),
              this.view.domNode.focus();
          }
          dispose() {
            this.disposables.dispose();
          }
        }
        !(function (e) {
          (e[(e.Idle = 0)] = 'Idle'), (e[(e.Typing = 1)] = 'Typing');
        })(b || (b = {}));
        const E = new (class {
          mightProducePrintableCharacter(e) {
            return (
              !(e.ctrlKey || e.metaKey || e.altKey) &&
              ((e.keyCode >= 31 && e.keyCode <= 56) ||
                (e.keyCode >= 21 && e.keyCode <= 30) ||
                (e.keyCode >= 93 && e.keyCode <= 102) ||
                (e.keyCode >= 80 && e.keyCode <= 90))
            );
          }
        })();
        class T {
          constructor(e, t, i, r) {
            (this.list = e),
              (this.view = t),
              (this.keyboardNavigationLabelProvider = i),
              (this.delegate = r),
              (this.enabled = !1),
              (this.state = b.Idle),
              (this.automaticKeyboardNavigation = !0),
              (this.triggered = !1),
              (this.previouslyFocused = -1),
              (this.enabledDisposables = new n.SL()),
              (this.disposables = new n.SL()),
              this.updateOptions(e.options);
          }
          updateOptions(e) {
            void 0 === e.enableKeyboardNavigation || e.enableKeyboardNavigation
              ? this.enable()
              : this.disable(),
              void 0 !== e.automaticKeyboardNavigation &&
                (this.automaticKeyboardNavigation =
                  e.automaticKeyboardNavigation);
          }
          enable() {
            if (this.enabled) return;
            const e = h.ju
                .chain((0, u.j)(this.view.domNode, 'keydown'))
                .filter((e) => !M(e.target))
                .filter(
                  () => this.automaticKeyboardNavigation || this.triggered
                )
                .map((e) => new d.y(e))
                .filter((e) => this.delegate.mightProducePrintableCharacter(e))
                .forEach((e) => {
                  e.stopPropagation(), e.preventDefault();
                })
                .map((e) => e.browserEvent.key).event,
              t = h.ju.debounce(e, () => null, 800);
            h.ju.reduce(h.ju.any(e, t), (e, t) =>
              null === t ? null : (e || '') + t
            )(this.onInput, this, this.enabledDisposables),
              t(this.onClear, this, this.enabledDisposables),
              (this.enabled = !0),
              (this.triggered = !1);
          }
          disable() {
            this.enabled &&
              (this.enabledDisposables.clear(),
              (this.enabled = !1),
              (this.triggered = !1));
          }
          onClear() {
            var e;
            const t = this.list.getFocus();
            if (t.length > 0 && t[0] === this.previouslyFocused) {
              const i =
                null === (e = this.list.options.accessibilityProvider) ||
                void 0 === e
                  ? void 0
                  : e.getAriaLabel(this.list.element(t[0]));
              i && (0, w.Z9)(i);
            }
            this.previouslyFocused = -1;
          }
          onInput(e) {
            if (!e) return (this.state = b.Idle), void (this.triggered = !1);
            const t = this.list.getFocus(),
              i = t.length > 0 ? t[0] : 0,
              n = this.state === b.Idle ? 1 : 0;
            this.state = b.Typing;
            for (let t = 0; t < this.list.length; t++) {
              const r = (i + t + n) % this.list.length,
                s = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(
                  this.view.element(r)
                ),
                o = s && s.toString();
              if (void 0 === o || (0, y.Ji)(e, o))
                return (
                  (this.previouslyFocused = i),
                  this.list.setFocus([r]),
                  void this.list.reveal(r)
                );
            }
          }
          dispose() {
            this.disable(),
              this.enabledDisposables.dispose(),
              this.disposables.dispose();
          }
        }
        class I {
          constructor(e, t) {
            (this.list = e),
              (this.view = t),
              (this.disposables = new n.SL()),
              h.ju
                .chain((0, u.j)(t.domNode, 'keydown'))
                .filter((e) => !M(e.target))
                .map((e) => new d.y(e))
                .filter(
                  (e) =>
                    !(
                      2 !== e.keyCode ||
                      e.ctrlKey ||
                      e.metaKey ||
                      e.shiftKey ||
                      e.altKey
                    )
                )
                .on(this.onTab, this, this.disposables);
          }
          onTab(e) {
            if (e.target !== this.view.domNode) return;
            const t = this.list.getFocus();
            if (0 === t.length) return;
            const i = this.view.domElement(t[0]);
            if (!i) return;
            const n = i.querySelector('[tabIndex]');
            if (!(n && n instanceof HTMLElement && -1 !== n.tabIndex)) return;
            const r = window.getComputedStyle(n);
            'hidden' !== r.visibility &&
              'none' !== r.display &&
              (e.preventDefault(), e.stopPropagation(), n.focus());
          }
          dispose() {
            this.disposables.dispose();
          }
        }
        function O(e) {
          return l.dz ? e.browserEvent.metaKey : e.browserEvent.ctrlKey;
        }
        function A(e) {
          return e.browserEvent.shiftKey;
        }
        const R = {
          isSelectionSingleChangeEvent: O,
          isSelectionRangeChangeEvent: A,
        };
        class P {
          constructor(e) {
            (this.list = e),
              (this.disposables = new n.SL()),
              (this._onPointer = new h.Q5()),
              (this.onPointer = this._onPointer.event),
              (this.multipleSelectionSupport = !(
                !1 === e.options.multipleSelectionSupport
              )),
              this.multipleSelectionSupport &&
                (this.multipleSelectionController =
                  e.options.multipleSelectionController || R),
              (this.mouseSupport =
                void 0 === e.options.mouseSupport || !!e.options.mouseSupport),
              this.mouseSupport &&
                (e.onMouseDown(this.onMouseDown, this, this.disposables),
                e.onContextMenu(this.onContextMenu, this, this.disposables),
                e.onMouseDblClick(this.onDoubleClick, this, this.disposables),
                e.onTouchStart(this.onMouseDown, this, this.disposables),
                this.disposables.add(c.o.addTarget(e.getHTMLElement()))),
              h.ju.any(e.onMouseClick, e.onMouseMiddleClick, e.onTap)(
                this.onViewPointer,
                this,
                this.disposables
              );
          }
          isSelectionSingleChangeEvent(e) {
            return this.multipleSelectionController
              ? this.multipleSelectionController.isSelectionSingleChangeEvent(e)
              : l.dz
              ? e.browserEvent.metaKey
              : e.browserEvent.ctrlKey;
          }
          isSelectionRangeChangeEvent(e) {
            return this.multipleSelectionController
              ? this.multipleSelectionController.isSelectionRangeChangeEvent(e)
              : e.browserEvent.shiftKey;
          }
          isSelectionChangeEvent(e) {
            return (
              this.isSelectionSingleChangeEvent(e) ||
              this.isSelectionRangeChangeEvent(e)
            );
          }
          onMouseDown(e) {
            D(e.browserEvent.target) ||
              (document.activeElement !== e.browserEvent.target &&
                this.list.domFocus());
          }
          onContextMenu(e) {
            if (D(e.browserEvent.target)) return;
            const t = void 0 === e.index ? [] : [e.index];
            this.list.setFocus(t, e.browserEvent);
          }
          onViewPointer(e) {
            if (!this.mouseSupport) return;
            if (M(e.browserEvent.target) || D(e.browserEvent.target)) return;
            let t = this.list.getFocus()[0];
            const i = this.list.getSelection();
            t = void 0 === t ? i[0] : t;
            const n = e.index;
            return void 0 === n
              ? (this.list.setFocus([], e.browserEvent),
                void this.list.setSelection([], e.browserEvent))
              : (this.multipleSelectionSupport &&
                  this.isSelectionRangeChangeEvent(e)) ||
                (this.multipleSelectionSupport &&
                  this.isSelectionChangeEvent(e))
              ? this.changeSelection(e, t)
              : (this.list.setFocus([n], e.browserEvent),
                ((r = e.browserEvent) instanceof MouseEvent &&
                  2 === r.button) ||
                  this.list.setSelection([n], e.browserEvent),
                void this._onPointer.fire(e));
            var r;
          }
          onDoubleClick(e) {
            if (M(e.browserEvent.target) || D(e.browserEvent.target)) return;
            if (this.multipleSelectionSupport && this.isSelectionChangeEvent(e))
              return;
            const t = this.list.getFocus();
            this.list.setSelection(t, e.browserEvent);
          }
          changeSelection(e, t) {
            const i = e.index;
            if (this.isSelectionRangeChangeEvent(e) && void 0 !== t) {
              const n = Math.min(t, i),
                r = Math.max(t, i),
                o = (0, s.w6)(n, r + 1),
                a = this.list.getSelection(),
                l = (function (e, t) {
                  const i = e.indexOf(t);
                  if (-1 === i) return [];
                  const n = [];
                  let r = i - 1;
                  for (; r >= 0 && e[r] === t - (i - r); ) n.push(e[r--]);
                  for (
                    n.reverse(), r = i;
                    r < e.length && e[r] === t + (r - i);

                  )
                    n.push(e[r++]);
                  return n;
                })(Y(a, [t]), t);
              if (0 === l.length) return;
              const c = Y(
                o,
                (function (e, t) {
                  const i = [];
                  let n = 0,
                    r = 0;
                  for (; n < e.length || r < t.length; )
                    if (n >= e.length) i.push(t[r++]);
                    else if (r >= t.length) i.push(e[n++]);
                    else {
                      if (e[n] === t[r]) {
                        n++, r++;
                        continue;
                      }
                      e[n] < t[r] ? i.push(e[n++]) : r++;
                    }
                  return i;
                })(a, l)
              );
              this.list.setSelection(c, e.browserEvent);
            } else if (this.isSelectionSingleChangeEvent(e)) {
              const t = this.list.getSelection(),
                n = t.filter((e) => e !== i);
              this.list.setFocus([i]),
                t.length === n.length
                  ? this.list.setSelection([...n, i], e.browserEvent)
                  : this.list.setSelection(n, e.browserEvent);
            }
          }
          dispose() {
            this.disposables.dispose();
          }
        }
        class F {
          constructor(e, t) {
            (this.styleElement = e), (this.selectorSuffix = t);
          }
          style(e) {
            const t = this.selectorSuffix && `.${this.selectorSuffix}`,
              i = [];
            e.listBackground &&
              (e.listBackground.isOpaque()
                ? i.push(
                    `.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`
                  )
                : l.dz ||
                  console.warn(
                    `List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`
                  )),
              e.listFocusBackground &&
                (i.push(
                  `.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`
                ),
                i.push(
                  `.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`
                )),
              e.listFocusForeground &&
                i.push(
                  `.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`
                ),
              e.listActiveSelectionBackground &&
                (i.push(
                  `.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`
                ),
                i.push(
                  `.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`
                )),
              e.listActiveSelectionForeground &&
                i.push(
                  `.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`
                ),
              e.listFocusAndSelectionBackground &&
                i.push(
                  `\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\n\t\t\t`
                ),
              e.listFocusAndSelectionForeground &&
                i.push(
                  `\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\n\t\t\t`
                ),
              e.listInactiveFocusBackground &&
                (i.push(
                  `.monaco-list${t} .monaco-list-row.focused { background-color:  ${e.listInactiveFocusBackground}; }`
                ),
                i.push(
                  `.monaco-list${t} .monaco-list-row.focused:hover { background-color:  ${e.listInactiveFocusBackground}; }`
                )),
              e.listInactiveSelectionBackground &&
                (i.push(
                  `.monaco-list${t} .monaco-list-row.selected { background-color:  ${e.listInactiveSelectionBackground}; }`
                ),
                i.push(
                  `.monaco-list${t} .monaco-list-row.selected:hover { background-color:  ${e.listInactiveSelectionBackground}; }`
                )),
              e.listInactiveSelectionForeground &&
                i.push(
                  `.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`
                ),
              e.listHoverBackground &&
                i.push(
                  `.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color:  ${e.listHoverBackground}; }`
                ),
              e.listHoverForeground &&
                i.push(
                  `.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color:  ${e.listHoverForeground}; }`
                ),
              e.listSelectionOutline &&
                i.push(
                  `.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`
                ),
              e.listFocusOutline &&
                i.push(
                  `\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`
                ),
              e.listInactiveFocusOutline &&
                i.push(
                  `.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`
                ),
              e.listHoverOutline &&
                i.push(
                  `.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`
                ),
              e.listDropBackground &&
                i.push(
                  `\n\t\t\t\t.monaco-list${t}.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }\n\t\t\t`
                ),
              e.listFilterWidgetBackground &&
                i.push(
                  `.monaco-list-type-filter { background-color: ${e.listFilterWidgetBackground} }`
                ),
              e.listFilterWidgetOutline &&
                i.push(
                  `.monaco-list-type-filter { border: 1px solid ${e.listFilterWidgetOutline}; }`
                ),
              e.listFilterWidgetNoMatchesOutline &&
                i.push(
                  `.monaco-list-type-filter.no-matches { border: 1px solid ${e.listFilterWidgetNoMatchesOutline}; }`
                ),
              e.listMatchesShadow &&
                i.push(
                  `.monaco-list-type-filter { box-shadow: 1px 1px 1px ${e.listMatchesShadow}; }`
                );
            const n = i.join('\n');
            n !== this.styleElement.innerHTML &&
              (this.styleElement.innerHTML = n);
          }
        }
        const B = {
            listFocusBackground: p.Il.fromHex('#7FB0D0'),
            listActiveSelectionBackground: p.Il.fromHex('#0E639C'),
            listActiveSelectionForeground: p.Il.fromHex('#FFFFFF'),
            listFocusAndSelectionBackground: p.Il.fromHex('#094771'),
            listFocusAndSelectionForeground: p.Il.fromHex('#FFFFFF'),
            listInactiveSelectionBackground: p.Il.fromHex('#3F3F46'),
            listHoverBackground: p.Il.fromHex('#2A2D2E'),
            listDropBackground: p.Il.fromHex('#383B3D'),
            treeIndentGuidesStroke: p.Il.fromHex('#a9a9a9'),
          },
          W = {
            keyboardSupport: !0,
            mouseSupport: !0,
            multipleSelectionSupport: !0,
            dnd: {
              getDragURI: () => null,
              onDragStart() {},
              onDragOver: () => !1,
              drop() {},
            },
          };
        function Y(e, t) {
          const i = [];
          let n = 0,
            r = 0;
          for (; n < e.length || r < t.length; )
            if (n >= e.length) i.push(t[r++]);
            else if (r >= t.length) i.push(e[n++]);
            else {
              if (e[n] === t[r]) {
                i.push(e[n]), n++, r++;
                continue;
              }
              e[n] < t[r] ? i.push(e[n++]) : i.push(t[r++]);
            }
          return i;
        }
        const H = (e, t) => e - t;
        class j {
          constructor(e, t) {
            (this._templateId = e), (this.renderers = t);
          }
          get templateId() {
            return this._templateId;
          }
          renderTemplate(e) {
            return this.renderers.map((t) => t.renderTemplate(e));
          }
          renderElement(e, t, i, n) {
            let r = 0;
            for (const s of this.renderers) s.renderElement(e, t, i[r++], n);
          }
          disposeElement(e, t, i, n) {
            let r = 0;
            for (const s of this.renderers)
              s.disposeElement && s.disposeElement(e, t, i[r], n), (r += 1);
          }
          disposeTemplate(e) {
            let t = 0;
            for (const i of this.renderers) i.disposeTemplate(e[t++]);
          }
        }
        class V {
          constructor(e) {
            (this.accessibilityProvider = e), (this.templateId = 'a18n');
          }
          renderTemplate(e) {
            return e;
          }
          renderElement(e, t, i) {
            const n = this.accessibilityProvider.getAriaLabel(e);
            n
              ? i.setAttribute('aria-label', n)
              : i.removeAttribute('aria-label');
            const r =
              this.accessibilityProvider.getAriaLevel &&
              this.accessibilityProvider.getAriaLevel(e);
            'number' == typeof r
              ? i.setAttribute('aria-level', `${r}`)
              : i.removeAttribute('aria-level');
          }
          disposeTemplate(e) {}
        }
        class z {
          constructor(e, t) {
            (this.list = e), (this.dnd = t);
          }
          getDragElements(e) {
            const t = this.list.getSelectedElements();
            return t.indexOf(e) > -1 ? t : [e];
          }
          getDragURI(e) {
            return this.dnd.getDragURI(e);
          }
          getDragLabel(e, t) {
            if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e, t);
          }
          onDragStart(e, t) {
            this.dnd.onDragStart && this.dnd.onDragStart(e, t);
          }
          onDragOver(e, t, i, n) {
            return this.dnd.onDragOver(e, t, i, n);
          }
          onDragEnd(e) {
            this.dnd.onDragEnd && this.dnd.onDragEnd(e);
          }
          drop(e, t, i, n) {
            this.dnd.drop(e, t, i, n);
          }
        }
        class U {
          constructor(e, t, i, r, s = W) {
            var o;
            (this.user = e),
              (this._options = s),
              (this.eventBufferer = new h.E7()),
              (this._ariaLabel = ''),
              (this.disposables = new n.SL()),
              (this.didJustPressContextMenuKey = !1),
              (this._onDidDispose = new h.Q5()),
              (this.onDidDispose = this._onDidDispose.event);
            const l =
              this._options.accessibilityProvider &&
              this._options.accessibilityProvider.getWidgetRole
                ? null === (o = this._options.accessibilityProvider) ||
                  void 0 === o
                  ? void 0
                  : o.getWidgetRole()
                : 'list';
            (this.selection = new x('listbox' !== l)),
              (this.focus = new k('focused')),
              (0, m.jB)(s, B, !1);
            const c = [this.focus.renderer, this.selection.renderer];
            (this.accessibilityProvider = s.accessibilityProvider),
              this.accessibilityProvider &&
                (c.push(new V(this.accessibilityProvider)),
                this.accessibilityProvider.onDidChangeActiveDescendant &&
                  this.accessibilityProvider.onDidChangeActiveDescendant(
                    this.onDidChangeActiveDescendant,
                    this,
                    this.disposables
                  )),
              (r = r.map((e) => new j(e.templateId, [...c, e])));
            const d = Object.assign(Object.assign({}, s), {
              dnd: s.dnd && new z(this, s.dnd),
            });
            if (
              ((this.view = new f.Bv(t, i, r, d)),
              this.view.domNode.setAttribute('role', l),
              s.styleController)
            )
              this.styleController = s.styleController(this.view.domId);
            else {
              const e = a.dS(this.view.domNode);
              this.styleController = new F(e, this.view.domId);
            }
            if (
              ((this.spliceable = new _([
                new L(this.focus, this.view, s.identityProvider),
                new L(this.selection, this.view, s.identityProvider),
                this.view,
              ])),
              this.disposables.add(this.focus),
              this.disposables.add(this.selection),
              this.disposables.add(this.view),
              this.disposables.add(this._onDidDispose),
              (this.onDidFocus = h.ju.map(
                (0, u.j)(this.view.domNode, 'focus', !0),
                () => null
              )),
              (this.onDidBlur = h.ju.map(
                (0, u.j)(this.view.domNode, 'blur', !0),
                () => null
              )),
              this.disposables.add(new I(this, this.view)),
              'boolean' != typeof s.keyboardSupport || s.keyboardSupport)
            ) {
              const e = new N(this, this.view, s);
              this.disposables.add(e);
            }
            if (s.keyboardNavigationLabelProvider) {
              const e = s.keyboardNavigationDelegate || E;
              (this.typeLabelController = new T(
                this,
                this.view,
                s.keyboardNavigationLabelProvider,
                e
              )),
                this.disposables.add(this.typeLabelController);
            }
            (this.mouseController = this.createMouseController(s)),
              this.disposables.add(this.mouseController),
              this.onDidChangeFocus(
                this._onFocusChange,
                this,
                this.disposables
              ),
              this.onDidChangeSelection(
                this._onSelectionChange,
                this,
                this.disposables
              ),
              this.accessibilityProvider &&
                (this.ariaLabel = this.accessibilityProvider.getWidgetAriaLabel()),
              s.multipleSelectionSupport &&
                this.view.domNode.setAttribute('aria-multiselectable', 'true');
          }
          get onDidChangeFocus() {
            return h.ju.map(
              this.eventBufferer.wrapEvent(this.focus.onChange),
              (e) => this.toListEvent(e)
            );
          }
          get onDidChangeSelection() {
            return h.ju.map(
              this.eventBufferer.wrapEvent(this.selection.onChange),
              (e) => this.toListEvent(e)
            );
          }
          get domId() {
            return this.view.domId;
          }
          get onMouseClick() {
            return this.view.onMouseClick;
          }
          get onMouseDblClick() {
            return this.view.onMouseDblClick;
          }
          get onMouseMiddleClick() {
            return this.view.onMouseMiddleClick;
          }
          get onPointer() {
            return this.mouseController.onPointer;
          }
          get onMouseDown() {
            return this.view.onMouseDown;
          }
          get onTouchStart() {
            return this.view.onTouchStart;
          }
          get onTap() {
            return this.view.onTap;
          }
          get onContextMenu() {
            const e = h.ju
                .chain((0, u.j)(this.view.domNode, 'keydown'))
                .map((e) => new d.y(e))
                .filter(
                  (e) =>
                    (this.didJustPressContextMenuKey =
                      58 === e.keyCode || (e.shiftKey && 68 === e.keyCode))
                )
                .filter((e) => (e.preventDefault(), e.stopPropagation(), !1))
                .event,
              t = h.ju
                .chain((0, u.j)(this.view.domNode, 'keyup'))
                .filter(() => {
                  const e = this.didJustPressContextMenuKey;
                  return (this.didJustPressContextMenuKey = !1), e;
                })
                .filter(
                  () =>
                    this.getFocus().length > 0 &&
                    !!this.view.domElement(this.getFocus()[0])
                )
                .map((e) => {
                  const t = this.getFocus()[0];
                  return {
                    index: t,
                    element: this.view.element(t),
                    anchor: this.view.domElement(t),
                    browserEvent: e,
                  };
                }).event,
              i = h.ju
                .chain(this.view.onContextMenu)
                .filter(() => !this.didJustPressContextMenuKey)
                .map(({ element: e, index: t, browserEvent: i }) => ({
                  element: e,
                  index: t,
                  anchor: { x: i.clientX + 1, y: i.clientY },
                  browserEvent: i,
                })).event;
            return h.ju.any(e, t, i);
          }
          get onKeyDown() {
            return (0, u.j)(this.view.domNode, 'keydown');
          }
          createMouseController(e) {
            return new P(this);
          }
          updateOptions(e = {}) {
            (this._options = Object.assign(
              Object.assign({}, this._options),
              e
            )),
              this.typeLabelController &&
                this.typeLabelController.updateOptions(this._options),
              this.view.updateOptions(e);
          }
          get options() {
            return this._options;
          }
          splice(e, t, i = []) {
            if (e < 0 || e > this.view.length)
              throw new g(this.user, `Invalid start index: ${e}`);
            if (t < 0) throw new g(this.user, `Invalid delete count: ${t}`);
            (0 === t && 0 === i.length) ||
              this.eventBufferer.bufferEvents(() =>
                this.spliceable.splice(e, t, i)
              );
          }
          rerender() {
            this.view.rerender();
          }
          element(e) {
            return this.view.element(e);
          }
          get length() {
            return this.view.length;
          }
          get contentHeight() {
            return this.view.contentHeight;
          }
          get scrollTop() {
            return this.view.getScrollTop();
          }
          set scrollTop(e) {
            this.view.setScrollTop(e);
          }
          get ariaLabel() {
            return this._ariaLabel;
          }
          set ariaLabel(e) {
            (this._ariaLabel = e),
              this.view.domNode.setAttribute('aria-label', e);
          }
          domFocus() {
            this.view.domNode.focus();
          }
          layout(e, t) {
            this.view.layout(e, t);
          }
          setSelection(e, t) {
            for (const t of e)
              if (t < 0 || t >= this.length)
                throw new g(this.user, `Invalid index ${t}`);
            this.selection.set(e, t);
          }
          getSelection() {
            return this.selection.get();
          }
          getSelectedElements() {
            return this.getSelection().map((e) => this.view.element(e));
          }
          setFocus(e, t) {
            for (const t of e)
              if (t < 0 || t >= this.length)
                throw new g(this.user, `Invalid index ${t}`);
            this.focus.set(e, t);
          }
          focusNext(e = 1, t = !1, i, n) {
            if (0 === this.length) return;
            const r = this.focus.get(),
              s = this.findNextIndex(r.length > 0 ? r[0] + e : 0, t, n);
            s > -1 && this.setFocus([s], i);
          }
          focusPrevious(e = 1, t = !1, i, n) {
            if (0 === this.length) return;
            const r = this.focus.get(),
              s = this.findPreviousIndex(r.length > 0 ? r[0] - e : 0, t, n);
            s > -1 && this.setFocus([s], i);
          }
          focusNextPage(e, t) {
            let i = this.view.indexAt(
              this.view.getScrollTop() + this.view.renderHeight
            );
            i = 0 === i ? 0 : i - 1;
            const n = this.view.element(i),
              r = this.getFocusedElements()[0];
            if (r !== n) {
              const n = this.findPreviousIndex(i, !1, t);
              n > -1 && r !== this.view.element(n)
                ? this.setFocus([n], e)
                : this.setFocus([i], e);
            } else {
              const n = this.view.getScrollTop();
              this.view.setScrollTop(
                n + this.view.renderHeight - this.view.elementHeight(i)
              ),
                this.view.getScrollTop() !== n &&
                  setTimeout(() => this.focusNextPage(e, t), 0);
            }
          }
          focusPreviousPage(e, t) {
            let i;
            const n = this.view.getScrollTop();
            i = 0 === n ? this.view.indexAt(n) : this.view.indexAfter(n - 1);
            const r = this.view.element(i),
              s = this.getFocusedElements()[0];
            if (s !== r) {
              const n = this.findNextIndex(i, !1, t);
              n > -1 && s !== this.view.element(n)
                ? this.setFocus([n], e)
                : this.setFocus([i], e);
            } else {
              const i = n;
              this.view.setScrollTop(n - this.view.renderHeight),
                this.view.getScrollTop() !== i &&
                  setTimeout(() => this.focusPreviousPage(e, t), 0);
            }
          }
          focusLast(e, t) {
            if (0 === this.length) return;
            const i = this.findPreviousIndex(this.length - 1, !1, t);
            i > -1 && this.setFocus([i], e);
          }
          focusFirst(e, t) {
            this.focusNth(0, e, t);
          }
          focusNth(e, t, i) {
            if (0 === this.length) return;
            const n = this.findNextIndex(e, !1, i);
            n > -1 && this.setFocus([n], t);
          }
          findNextIndex(e, t = !1, i) {
            for (let n = 0; n < this.length; n++) {
              if (e >= this.length && !t) return -1;
              if (((e %= this.length), !i || i(this.element(e)))) return e;
              e++;
            }
            return -1;
          }
          findPreviousIndex(e, t = !1, i) {
            for (let n = 0; n < this.length; n++) {
              if (e < 0 && !t) return -1;
              if (
                ((e = (this.length + (e % this.length)) % this.length),
                !i || i(this.element(e)))
              )
                return e;
              e--;
            }
            return -1;
          }
          getFocus() {
            return this.focus.get();
          }
          getFocusedElements() {
            return this.getFocus().map((e) => this.view.element(e));
          }
          reveal(e, t) {
            if (e < 0 || e >= this.length)
              throw new g(this.user, `Invalid index ${e}`);
            const i = this.view.getScrollTop(),
              n = this.view.elementTop(e),
              s = this.view.elementHeight(e);
            if ((0, r.hj)(t)) {
              const e = s - this.view.renderHeight;
              this.view.setScrollTop(e * (0, v.u)(t, 0, 1) + n);
            } else {
              const e = n + s,
                t = i + this.view.renderHeight;
              (n < i && e >= t) ||
                (n < i
                  ? this.view.setScrollTop(n)
                  : e >= t &&
                    this.view.setScrollTop(e - this.view.renderHeight));
            }
          }
          getRelativeTop(e) {
            if (e < 0 || e >= this.length)
              throw new g(this.user, `Invalid index ${e}`);
            const t = this.view.getScrollTop(),
              i = this.view.elementTop(e),
              n = this.view.elementHeight(e);
            if (i < t || i + n > t + this.view.renderHeight) return null;
            const r = n - this.view.renderHeight;
            return Math.abs((t - i) / r);
          }
          getHTMLElement() {
            return this.view.domNode;
          }
          style(e) {
            this.styleController.style(e);
          }
          toListEvent({ indexes: e, browserEvent: t }) {
            return {
              indexes: e,
              elements: e.map((e) => this.view.element(e)),
              browserEvent: t,
            };
          }
          _onFocusChange() {
            const e = this.focus.get();
            a.og(this.view.domNode, 'element-focused', e.length > 0),
              this.onDidChangeActiveDescendant();
          }
          onDidChangeActiveDescendant() {
            var e;
            const t = this.focus.get();
            if (t.length > 0) {
              let i;
              (null === (e = this.accessibilityProvider) || void 0 === e
                ? void 0
                : e.getActiveDescendantId) &&
                (i = this.accessibilityProvider.getActiveDescendantId(
                  this.view.element(t[0])
                )),
                this.view.domNode.setAttribute(
                  'aria-activedescendant',
                  i || this.view.getElementDomId(t[0])
                );
            } else this.view.domNode.removeAttribute('aria-activedescendant');
          }
          _onSelectionChange() {
            const e = this.selection.get();
            a.og(this.view.domNode, 'selection-none', 0 === e.length),
              a.og(this.view.domNode, 'selection-single', 1 === e.length),
              a.og(this.view.domNode, 'selection-multiple', e.length > 1);
          }
          dispose() {
            this._onDidDispose.fire(),
              this.disposables.dispose(),
              this._onDidDispose.dispose();
          }
        }
        C([o.H], U.prototype, 'onDidChangeFocus', null),
          C([o.H], U.prototype, 'onDidChangeSelection', null),
          C([o.H], U.prototype, 'onContextMenu', null);
      },
      96542: (e, t, i) => {
        'use strict';
        i.d(t, { S: () => n });
        const n = 'monaco-mouse-cursor-text';
      },
      73098: (e, t, i) => {
        'use strict';
        i.d(t, { g: () => u });
        var n = i(5976),
          r = i(1432),
          s = i(98401),
          o = i(10553),
          a = i(23938),
          l = i(4669),
          c = i(65321),
          d = i(4850);
        const h = new l.Q5();
        class u extends n.JT {
          constructor(e, t, i) {
            super(),
              (this._state = 3),
              (this._onDidEnablementChange = this._register(new l.Q5())),
              (this.onDidEnablementChange = this._onDidEnablementChange.event),
              (this._onDidStart = this._register(new l.Q5())),
              (this.onDidStart = this._onDidStart.event),
              (this._onDidChange = this._register(new l.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._onDidReset = this._register(new l.Q5())),
              (this.onDidReset = this._onDidReset.event),
              (this._onDidEnd = this._register(new l.Q5())),
              (this.onDidEnd = this._onDidEnd.event),
              (this.linkedSash = void 0),
              (this.orthogonalStartSashDisposables = this._register(
                new n.SL()
              )),
              (this.orthogonalEndSashDisposables = this._register(new n.SL())),
              (this.el = (0, c.R3)(e, (0, c.$)('.monaco-sash'))),
              r.dz && (0, c.cn)(this.el, 'mac'),
              this._register(
                (0, d.j)(this.el, 'mousedown')(this.onMouseDown, this)
              ),
              this._register(
                (0, d.j)(this.el, 'dblclick')(this.onMouseDoubleClick, this)
              ),
              this._register(o.o.addTarget(this.el)),
              this._register(
                (0, d.j)(this.el, o.t.Start)(this.onTouchStart, this)
              ),
              'number' == typeof i.size
                ? ((this.size = i.size),
                  0 === i.orientation
                    ? (this.el.style.width = `${this.size}px`)
                    : (this.el.style.height = `${this.size}px`))
                : ((this.size = 4),
                  this._register(
                    h.event((e) => {
                      (this.size = e), this.layout();
                    })
                  )),
              (this.hidden = !1),
              (this.layoutProvider = t),
              (this.orthogonalStartSash = i.orthogonalStartSash),
              (this.orthogonalEndSash = i.orthogonalEndSash),
              (this.orientation = i.orientation || 0),
              1 === this.orientation
                ? ((0, c.cn)(this.el, 'horizontal'),
                  (0, c.IV)(this.el, 'vertical'))
                : ((0, c.IV)(this.el, 'horizontal'),
                  (0, c.cn)(this.el, 'vertical')),
              (0, c.og)(this.el, 'debug', !1),
              this.layout();
          }
          get state() {
            return this._state;
          }
          set state(e) {
            this._state !== e &&
              ((0, c.og)(this.el, 'disabled', 0 === e),
              (0, c.og)(this.el, 'minimum', 1 === e),
              (0, c.og)(this.el, 'maximum', 2 === e),
              (this._state = e),
              this._onDidEnablementChange.fire(e));
          }
          get orthogonalStartSash() {
            return this._orthogonalStartSash;
          }
          set orthogonalStartSash(e) {
            this.orthogonalStartSashDisposables.clear(),
              e
                ? (this.orthogonalStartSashDisposables.add(
                    e.onDidEnablementChange(
                      this.onOrthogonalStartSashEnablementChange,
                      this
                    )
                  ),
                  this.onOrthogonalStartSashEnablementChange(e.state))
                : this.onOrthogonalStartSashEnablementChange(0),
              (this._orthogonalStartSash = e);
          }
          get orthogonalEndSash() {
            return this._orthogonalEndSash;
          }
          set orthogonalEndSash(e) {
            this.orthogonalEndSashDisposables.clear(),
              e
                ? (this.orthogonalEndSashDisposables.add(
                    e.onDidEnablementChange(
                      this.onOrthogonalEndSashEnablementChange,
                      this
                    )
                  ),
                  this.onOrthogonalEndSashEnablementChange(e.state))
                : this.onOrthogonalEndSashEnablementChange(0),
              (this._orthogonalEndSash = e);
          }
          onMouseDown(e) {
            c.zB.stop(e, !1);
            let t = !1;
            if (!e.__orthogonalSashEvent) {
              const i = this.getOrthogonalSash(e);
              i && ((t = !0), (e.__orthogonalSashEvent = !0), i.onMouseDown(e));
            }
            if (
              (this.linkedSash &&
                !e.__linkedSashEvent &&
                ((e.__linkedSashEvent = !0), this.linkedSash.onMouseDown(e)),
              !this.state)
            )
              return;
            const i = [...(0, c.H$)('iframe'), ...(0, c.H$)('webview')];
            for (const e of i) e.style.pointerEvents = 'none';
            const s = new a.n(e),
              o = s.posx,
              l = s.posy,
              h = s.altKey,
              u = { startX: o, currentX: o, startY: l, currentY: l, altKey: h };
            (0, c.cn)(this.el, 'active'), this._onDidStart.fire(u);
            const g = (0, c.dS)(this.el),
              f = () => {
                let e = '';
                (e = t
                  ? 'all-scroll'
                  : 1 === this.orientation
                  ? 1 === this.state
                    ? 's-resize'
                    : 2 === this.state
                    ? 'n-resize'
                    : r.dz
                    ? 'row-resize'
                    : 'ns-resize'
                  : 1 === this.state
                  ? 'e-resize'
                  : 2 === this.state
                  ? 'w-resize'
                  : r.dz
                  ? 'col-resize'
                  : 'ew-resize'),
                  (g.innerHTML = `* { cursor: ${e} !important; }`);
              },
              p = new n.SL();
            f(),
              t || this.onDidEnablementChange(f, null, p),
              (0, d.j)(window, 'mousemove')(
                (e) => {
                  c.zB.stop(e, !1);
                  const t = new a.n(e),
                    i = {
                      startX: o,
                      currentX: t.posx,
                      startY: l,
                      currentY: t.posy,
                      altKey: h,
                    };
                  this._onDidChange.fire(i);
                },
                null,
                p
              ),
              (0, d.j)(window, 'mouseup')(
                (e) => {
                  c.zB.stop(e, !1),
                    this.el.removeChild(g),
                    (0, c.IV)(this.el, 'active'),
                    this._onDidEnd.fire(),
                    p.dispose();
                  for (const e of i) e.style.pointerEvents = 'auto';
                },
                null,
                p
              );
          }
          onMouseDoubleClick(e) {
            const t = this.getOrthogonalSash(e);
            t && t._onDidReset.fire(),
              this.linkedSash && this.linkedSash._onDidReset.fire(),
              this._onDidReset.fire();
          }
          onTouchStart(e) {
            c.zB.stop(e);
            const t = [],
              i = e.pageX,
              r = e.pageY,
              a = e.altKey;
            this._onDidStart.fire({
              startX: i,
              currentX: i,
              startY: r,
              currentY: r,
              altKey: a,
            }),
              t.push(
                (0, c.nm)(this.el, o.t.Change, (e) => {
                  s.hj(e.pageX) &&
                    s.hj(e.pageY) &&
                    this._onDidChange.fire({
                      startX: i,
                      currentX: e.pageX,
                      startY: r,
                      currentY: e.pageY,
                      altKey: a,
                    });
                })
              ),
              t.push(
                (0, c.nm)(this.el, o.t.End, (e) => {
                  this._onDidEnd.fire(), (0, n.B9)(t);
                })
              );
          }
          layout() {
            if (0 === this.orientation) {
              const e = this.layoutProvider;
              (this.el.style.left =
                e.getVerticalSashLeft(this) - this.size / 2 + 'px'),
                e.getVerticalSashTop &&
                  (this.el.style.top = e.getVerticalSashTop(this) + 'px'),
                e.getVerticalSashHeight &&
                  (this.el.style.height = e.getVerticalSashHeight(this) + 'px');
            } else {
              const e = this.layoutProvider;
              (this.el.style.top =
                e.getHorizontalSashTop(this) - this.size / 2 + 'px'),
                e.getHorizontalSashLeft &&
                  (this.el.style.left = e.getHorizontalSashLeft(this) + 'px'),
                e.getHorizontalSashWidth &&
                  (this.el.style.width = e.getHorizontalSashWidth(this) + 'px');
            }
          }
          hide() {
            (this.hidden = !0),
              (this.el.style.display = 'none'),
              this.el.setAttribute('aria-hidden', 'true');
          }
          onOrthogonalStartSashEnablementChange(e) {
            (0, c.og)(this.el, 'orthogonal-start', 0 !== e);
          }
          onOrthogonalEndSashEnablementChange(e) {
            (0, c.og)(this.el, 'orthogonal-end', 0 !== e);
          }
          getOrthogonalSash(e) {
            if (0 === this.orientation) {
              if (e.offsetY <= this.size) return this.orthogonalStartSash;
              if (e.offsetY >= this.el.clientHeight - this.size)
                return this.orthogonalEndSash;
            } else {
              if (e.offsetX <= this.size) return this.orthogonalStartSash;
              if (e.offsetX >= this.el.clientWidth - this.size)
                return this.orthogonalEndSash;
            }
          }
          dispose() {
            super.dispose(), this.el.remove();
          }
        }
      },
      9802: (e, t, i) => {
        'use strict';
        i.d(t, { s$: () => E, NB: () => D, $Z: () => N });
        var n = i(65321),
          r = i(38626),
          s = i(23938),
          o = i(57974),
          a = i(93794),
          l = i(15393);
        class c extends a.$ {
          constructor(e) {
            super(),
              (this._onActivate = e.onActivate),
              (this.bgDomNode = document.createElement('div')),
              (this.bgDomNode.className = 'arrow-background'),
              (this.bgDomNode.style.position = 'absolute'),
              (this.bgDomNode.style.width = e.bgWidth + 'px'),
              (this.bgDomNode.style.height = e.bgHeight + 'px'),
              void 0 !== e.top && (this.bgDomNode.style.top = '0px'),
              void 0 !== e.left && (this.bgDomNode.style.left = '0px'),
              void 0 !== e.bottom && (this.bgDomNode.style.bottom = '0px'),
              void 0 !== e.right && (this.bgDomNode.style.right = '0px'),
              (this.domNode = document.createElement('div')),
              (this.domNode.className = e.className),
              (0, n.PT)(this.domNode, e.icon.classNames),
              (this.domNode.style.position = 'absolute'),
              (this.domNode.style.width = '11px'),
              (this.domNode.style.height = '11px'),
              void 0 !== e.top && (this.domNode.style.top = e.top + 'px'),
              void 0 !== e.left && (this.domNode.style.left = e.left + 'px'),
              void 0 !== e.bottom &&
                (this.domNode.style.bottom = e.bottom + 'px'),
              void 0 !== e.right && (this.domNode.style.right = e.right + 'px'),
              (this._mouseMoveMonitor = this._register(new o.Z())),
              this.onmousedown(this.bgDomNode, (e) => this._arrowMouseDown(e)),
              this.onmousedown(this.domNode, (e) => this._arrowMouseDown(e)),
              (this._mousedownRepeatTimer = this._register(new l.zh())),
              (this._mousedownScheduleRepeatTimer = this._register(new l._F()));
          }
          _arrowMouseDown(e) {
            this._onActivate(),
              this._mousedownRepeatTimer.cancel(),
              this._mousedownScheduleRepeatTimer.cancelAndSet(() => {
                this._mousedownRepeatTimer.cancelAndSet(
                  () => this._onActivate(),
                  1e3 / 24
                );
              }, 200),
              this._mouseMoveMonitor.startMonitoring(
                e.target,
                e.buttons,
                o.e,
                (e) => {},
                () => {
                  this._mousedownRepeatTimer.cancel(),
                    this._mousedownScheduleRepeatTimer.cancel();
                }
              ),
              e.preventDefault();
          }
        }
        var d = i(5976);
        class h extends d.JT {
          constructor(e, t, i) {
            super(),
              (this._visibility = e),
              (this._visibleClassName = t),
              (this._invisibleClassName = i),
              (this._domNode = null),
              (this._isVisible = !1),
              (this._isNeeded = !1),
              (this._shouldBeVisible = !1),
              (this._revealTimer = this._register(new l._F()));
          }
          applyVisibilitySetting(e) {
            return 2 !== this._visibility && (3 === this._visibility || e);
          }
          setShouldBeVisible(e) {
            let t = this.applyVisibilitySetting(e);
            this._shouldBeVisible !== t &&
              ((this._shouldBeVisible = t), this.ensureVisibility());
          }
          setIsNeeded(e) {
            this._isNeeded !== e &&
              ((this._isNeeded = e), this.ensureVisibility());
          }
          setDomNode(e) {
            (this._domNode = e),
              this._domNode.setClassName(this._invisibleClassName),
              this.setShouldBeVisible(!1);
          }
          ensureVisibility() {
            this._isNeeded
              ? this._shouldBeVisible
                ? this._reveal()
                : this._hide(!0)
              : this._hide(!1);
          }
          _reveal() {
            this._isVisible ||
              ((this._isVisible = !0),
              this._revealTimer.setIfNotSet(() => {
                this._domNode &&
                  this._domNode.setClassName(this._visibleClassName);
              }, 0));
          }
          _hide(e) {
            this._revealTimer.cancel(),
              this._isVisible &&
                ((this._isVisible = !1),
                this._domNode &&
                  this._domNode.setClassName(
                    this._invisibleClassName + (e ? ' fade' : '')
                  ));
          }
        }
        var u = i(1432);
        class g extends a.$ {
          constructor(e) {
            super(),
              (this._lazyRender = e.lazyRender),
              (this._host = e.host),
              (this._scrollable = e.scrollable),
              (this._scrollbarState = e.scrollbarState),
              (this._visibilityController = this._register(
                new h(
                  e.visibility,
                  'visible scrollbar ' + e.extraScrollbarClassName,
                  'invisible scrollbar ' + e.extraScrollbarClassName
                )
              )),
              this._visibilityController.setIsNeeded(
                this._scrollbarState.isNeeded()
              ),
              (this._mouseMoveMonitor = this._register(new o.Z())),
              (this._shouldRender = !0),
              (this.domNode = (0, r.X)(document.createElement('div'))),
              this.domNode.setAttribute('role', 'presentation'),
              this.domNode.setAttribute('aria-hidden', 'true'),
              this._visibilityController.setDomNode(this.domNode),
              this.domNode.setPosition('absolute'),
              this.onmousedown(this.domNode.domNode, (e) =>
                this._domNodeMouseDown(e)
              );
          }
          _createArrow(e) {
            let t = this._register(new c(e));
            this.domNode.domNode.appendChild(t.bgDomNode),
              this.domNode.domNode.appendChild(t.domNode);
          }
          _createSlider(e, t, i, n) {
            (this.slider = (0, r.X)(document.createElement('div'))),
              this.slider.setClassName('slider'),
              this.slider.setPosition('absolute'),
              this.slider.setTop(e),
              this.slider.setLeft(t),
              'number' == typeof i && this.slider.setWidth(i),
              'number' == typeof n && this.slider.setHeight(n),
              this.slider.setLayerHinting(!0),
              this.slider.setContain('strict'),
              this.domNode.domNode.appendChild(this.slider.domNode),
              this.onmousedown(this.slider.domNode, (e) => {
                e.leftButton &&
                  (e.preventDefault(), this._sliderMouseDown(e, () => {}));
              }),
              this.onclick(this.slider.domNode, (e) => {
                e.leftButton && e.stopPropagation();
              });
          }
          _onElementSize(e) {
            return (
              this._scrollbarState.setVisibleSize(e) &&
                (this._visibilityController.setIsNeeded(
                  this._scrollbarState.isNeeded()
                ),
                (this._shouldRender = !0),
                this._lazyRender || this.render()),
              this._shouldRender
            );
          }
          _onElementScrollSize(e) {
            return (
              this._scrollbarState.setScrollSize(e) &&
                (this._visibilityController.setIsNeeded(
                  this._scrollbarState.isNeeded()
                ),
                (this._shouldRender = !0),
                this._lazyRender || this.render()),
              this._shouldRender
            );
          }
          _onElementScrollPosition(e) {
            return (
              this._scrollbarState.setScrollPosition(e) &&
                (this._visibilityController.setIsNeeded(
                  this._scrollbarState.isNeeded()
                ),
                (this._shouldRender = !0),
                this._lazyRender || this.render()),
              this._shouldRender
            );
          }
          beginReveal() {
            this._visibilityController.setShouldBeVisible(!0);
          }
          beginHide() {
            this._visibilityController.setShouldBeVisible(!1);
          }
          render() {
            this._shouldRender &&
              ((this._shouldRender = !1),
              this._renderDomNode(
                this._scrollbarState.getRectangleLargeSize(),
                this._scrollbarState.getRectangleSmallSize()
              ),
              this._updateSlider(
                this._scrollbarState.getSliderSize(),
                this._scrollbarState.getArrowSize() +
                  this._scrollbarState.getSliderPosition()
              ));
          }
          _domNodeMouseDown(e) {
            e.target === this.domNode.domNode && this._onMouseDown(e);
          }
          delegateMouseDown(e) {
            let t = this.domNode.domNode.getClientRects()[0].top,
              i = t + this._scrollbarState.getSliderPosition(),
              n =
                t +
                this._scrollbarState.getSliderPosition() +
                this._scrollbarState.getSliderSize(),
              r = this._sliderMousePosition(e);
            i <= r && r <= n
              ? e.leftButton &&
                (e.preventDefault(), this._sliderMouseDown(e, () => {}))
              : this._onMouseDown(e);
          }
          _onMouseDown(e) {
            let t, i;
            if (
              e.target === this.domNode.domNode &&
              'number' == typeof e.browserEvent.offsetX &&
              'number' == typeof e.browserEvent.offsetY
            )
              (t = e.browserEvent.offsetX), (i = e.browserEvent.offsetY);
            else {
              const r = n.i(this.domNode.domNode);
              (t = e.posx - r.left), (i = e.posy - r.top);
            }
            this._setDesiredScrollPositionNow(
              this._scrollbarState.getDesiredScrollPositionFromOffset(
                this._mouseDownRelativePosition(t, i)
              )
            ),
              e.leftButton &&
                (e.preventDefault(), this._sliderMouseDown(e, () => {}));
          }
          _sliderMouseDown(e, t) {
            const i = this._sliderMousePosition(e),
              n = this._sliderOrthogonalMousePosition(e),
              r = this._scrollbarState.clone();
            this.slider.toggleClassName('active', !0),
              this._mouseMoveMonitor.startMonitoring(
                e.target,
                e.buttons,
                o.e,
                (e) => {
                  const t = this._sliderOrthogonalMousePosition(e),
                    s = Math.abs(t - n);
                  if (u.ED && s > 140)
                    return void this._setDesiredScrollPositionNow(
                      r.getScrollPosition()
                    );
                  const o = this._sliderMousePosition(e) - i;
                  this._setDesiredScrollPositionNow(
                    r.getDesiredScrollPositionFromDelta(o)
                  );
                },
                () => {
                  this.slider.toggleClassName('active', !1),
                    this._host.onDragEnd(),
                    t();
                }
              ),
              this._host.onDragStart();
          }
          _setDesiredScrollPositionNow(e) {
            let t = {};
            this.writeScrollPosition(t, e),
              this._scrollable.setScrollPositionNow(t);
          }
          updateScrollbarSize(e) {
            this._updateScrollbarSize(e),
              this._scrollbarState.setScrollbarSize(e),
              (this._shouldRender = !0),
              this._lazyRender || this.render();
          }
        }
        class f {
          constructor(e, t, i, n, r, s) {
            (this._scrollbarSize = Math.round(t)),
              (this._oppositeScrollbarSize = Math.round(i)),
              (this._arrowSize = Math.round(e)),
              (this._visibleSize = n),
              (this._scrollSize = r),
              (this._scrollPosition = s),
              (this._computedAvailableSize = 0),
              (this._computedIsNeeded = !1),
              (this._computedSliderSize = 0),
              (this._computedSliderRatio = 0),
              (this._computedSliderPosition = 0),
              this._refreshComputedValues();
          }
          clone() {
            return new f(
              this._arrowSize,
              this._scrollbarSize,
              this._oppositeScrollbarSize,
              this._visibleSize,
              this._scrollSize,
              this._scrollPosition
            );
          }
          setVisibleSize(e) {
            let t = Math.round(e);
            return (
              this._visibleSize !== t &&
              ((this._visibleSize = t), this._refreshComputedValues(), !0)
            );
          }
          setScrollSize(e) {
            let t = Math.round(e);
            return (
              this._scrollSize !== t &&
              ((this._scrollSize = t), this._refreshComputedValues(), !0)
            );
          }
          setScrollPosition(e) {
            let t = Math.round(e);
            return (
              this._scrollPosition !== t &&
              ((this._scrollPosition = t), this._refreshComputedValues(), !0)
            );
          }
          setScrollbarSize(e) {
            this._scrollbarSize = e;
          }
          static _computeValues(e, t, i, n, r) {
            const s = Math.max(0, i - e),
              o = Math.max(0, s - 2 * t),
              a = n > 0 && n > i;
            if (!a)
              return {
                computedAvailableSize: Math.round(s),
                computedIsNeeded: a,
                computedSliderSize: Math.round(o),
                computedSliderRatio: 0,
                computedSliderPosition: 0,
              };
            const l = Math.round(Math.max(20, Math.floor((i * o) / n))),
              c = (o - l) / (n - i),
              d = r * c;
            return {
              computedAvailableSize: Math.round(s),
              computedIsNeeded: a,
              computedSliderSize: Math.round(l),
              computedSliderRatio: c,
              computedSliderPosition: Math.round(d),
            };
          }
          _refreshComputedValues() {
            const e = f._computeValues(
              this._oppositeScrollbarSize,
              this._arrowSize,
              this._visibleSize,
              this._scrollSize,
              this._scrollPosition
            );
            (this._computedAvailableSize = e.computedAvailableSize),
              (this._computedIsNeeded = e.computedIsNeeded),
              (this._computedSliderSize = e.computedSliderSize),
              (this._computedSliderRatio = e.computedSliderRatio),
              (this._computedSliderPosition = e.computedSliderPosition);
          }
          getArrowSize() {
            return this._arrowSize;
          }
          getScrollPosition() {
            return this._scrollPosition;
          }
          getRectangleLargeSize() {
            return this._computedAvailableSize;
          }
          getRectangleSmallSize() {
            return this._scrollbarSize;
          }
          isNeeded() {
            return this._computedIsNeeded;
          }
          getSliderSize() {
            return this._computedSliderSize;
          }
          getSliderPosition() {
            return this._computedSliderPosition;
          }
          getDesiredScrollPositionFromOffset(e) {
            if (!this._computedIsNeeded) return 0;
            let t = e - this._arrowSize - this._computedSliderSize / 2;
            return Math.round(t / this._computedSliderRatio);
          }
          getDesiredScrollPositionFromDelta(e) {
            if (!this._computedIsNeeded) return 0;
            let t = this._computedSliderPosition + e;
            return Math.round(t / this._computedSliderRatio);
          }
        }
        var p = i(73046);
        const m = (0, p.q5)('scrollbar-button-left', p.lA.triangleLeft),
          _ = (0, p.q5)('scrollbar-button-right', p.lA.triangleRight);
        class b extends g {
          constructor(e, t, i) {
            const n = e.getScrollDimensions(),
              r = e.getCurrentScrollPosition();
            if (
              (super({
                lazyRender: t.lazyRender,
                host: i,
                scrollbarState: new f(
                  t.horizontalHasArrows ? t.arrowSize : 0,
                  2 === t.horizontal ? 0 : t.horizontalScrollbarSize,
                  2 === t.vertical ? 0 : t.verticalScrollbarSize,
                  n.width,
                  n.scrollWidth,
                  r.scrollLeft
                ),
                visibility: t.horizontal,
                extraScrollbarClassName: 'horizontal',
                scrollable: e,
              }),
              t.horizontalHasArrows)
            ) {
              let e = (t.arrowSize - 11) / 2,
                i = (t.horizontalScrollbarSize - 11) / 2;
              this._createArrow({
                className: 'scra',
                icon: m,
                top: i,
                left: e,
                bottom: void 0,
                right: void 0,
                bgWidth: t.arrowSize,
                bgHeight: t.horizontalScrollbarSize,
                onActivate: () => this._host.onMouseWheel(new s.q(null, 1, 0)),
              }),
                this._createArrow({
                  className: 'scra',
                  icon: _,
                  top: i,
                  left: void 0,
                  bottom: void 0,
                  right: e,
                  bgWidth: t.arrowSize,
                  bgHeight: t.horizontalScrollbarSize,
                  onActivate: () =>
                    this._host.onMouseWheel(new s.q(null, -1, 0)),
                });
            }
            this._createSlider(
              Math.floor(
                (t.horizontalScrollbarSize - t.horizontalSliderSize) / 2
              ),
              0,
              void 0,
              t.horizontalSliderSize
            );
          }
          _updateSlider(e, t) {
            this.slider.setWidth(e), this.slider.setLeft(t);
          }
          _renderDomNode(e, t) {
            this.domNode.setWidth(e),
              this.domNode.setHeight(t),
              this.domNode.setLeft(0),
              this.domNode.setBottom(0);
          }
          onDidScroll(e) {
            return (
              (this._shouldRender =
                this._onElementScrollSize(e.scrollWidth) || this._shouldRender),
              (this._shouldRender =
                this._onElementScrollPosition(e.scrollLeft) ||
                this._shouldRender),
              (this._shouldRender =
                this._onElementSize(e.width) || this._shouldRender),
              this._shouldRender
            );
          }
          _mouseDownRelativePosition(e, t) {
            return e;
          }
          _sliderMousePosition(e) {
            return e.posx;
          }
          _sliderOrthogonalMousePosition(e) {
            return e.posy;
          }
          _updateScrollbarSize(e) {
            this.slider.setHeight(e);
          }
          writeScrollPosition(e, t) {
            e.scrollLeft = t;
          }
        }
        const v = (0, p.q5)('scrollbar-button-up', p.lA.triangleUp),
          y = (0, p.q5)('scrollbar-button-down', p.lA.triangleDown);
        class w extends g {
          constructor(e, t, i) {
            const n = e.getScrollDimensions(),
              r = e.getCurrentScrollPosition();
            if (
              (super({
                lazyRender: t.lazyRender,
                host: i,
                scrollbarState: new f(
                  t.verticalHasArrows ? t.arrowSize : 0,
                  2 === t.vertical ? 0 : t.verticalScrollbarSize,
                  0,
                  n.height,
                  n.scrollHeight,
                  r.scrollTop
                ),
                visibility: t.vertical,
                extraScrollbarClassName: 'vertical',
                scrollable: e,
              }),
              t.verticalHasArrows)
            ) {
              let e = (t.arrowSize - 11) / 2,
                i = (t.verticalScrollbarSize - 11) / 2;
              this._createArrow({
                className: 'scra',
                icon: v,
                top: e,
                left: i,
                bottom: void 0,
                right: void 0,
                bgWidth: t.verticalScrollbarSize,
                bgHeight: t.arrowSize,
                onActivate: () => this._host.onMouseWheel(new s.q(null, 0, 1)),
              }),
                this._createArrow({
                  className: 'scra',
                  icon: y,
                  top: void 0,
                  left: i,
                  bottom: e,
                  right: void 0,
                  bgWidth: t.verticalScrollbarSize,
                  bgHeight: t.arrowSize,
                  onActivate: () =>
                    this._host.onMouseWheel(new s.q(null, 0, -1)),
                });
            }
            this._createSlider(
              0,
              Math.floor((t.verticalScrollbarSize - t.verticalSliderSize) / 2),
              t.verticalSliderSize,
              void 0
            );
          }
          _updateSlider(e, t) {
            this.slider.setHeight(e), this.slider.setTop(t);
          }
          _renderDomNode(e, t) {
            this.domNode.setWidth(t),
              this.domNode.setHeight(e),
              this.domNode.setRight(0),
              this.domNode.setTop(0);
          }
          onDidScroll(e) {
            return (
              (this._shouldRender =
                this._onElementScrollSize(e.scrollHeight) ||
                this._shouldRender),
              (this._shouldRender =
                this._onElementScrollPosition(e.scrollTop) ||
                this._shouldRender),
              (this._shouldRender =
                this._onElementSize(e.height) || this._shouldRender),
              this._shouldRender
            );
          }
          _mouseDownRelativePosition(e, t) {
            return t;
          }
          _sliderMousePosition(e) {
            return e.posy;
          }
          _sliderOrthogonalMousePosition(e) {
            return e.posx;
          }
          _updateScrollbarSize(e) {
            this.slider.setWidth(e);
          }
          writeScrollPosition(e, t) {
            e.scrollTop = t;
          }
        }
        var C = i(4669),
          S = i(76633),
          k = i(16268);
        class x {
          constructor(e, t, i) {
            (this.timestamp = e),
              (this.deltaX = t),
              (this.deltaY = i),
              (this.score = 0);
          }
        }
        class L {
          constructor() {
            (this._capacity = 5),
              (this._memory = []),
              (this._front = -1),
              (this._rear = -1);
          }
          isPhysicalMouseWheel() {
            if (-1 === this._front && -1 === this._rear) return !1;
            let e = 1,
              t = 0,
              i = 1,
              n = this._rear;
            for (;;) {
              const r = n === this._front ? e : Math.pow(2, -i);
              if (
                ((e -= r), (t += this._memory[n].score * r), n === this._front)
              )
                break;
              (n = (this._capacity + n - 1) % this._capacity), i++;
            }
            return t <= 0.5;
          }
          accept(e, t, i) {
            const n = new x(e, t, i);
            (n.score = this._computeScore(n)),
              -1 === this._front && -1 === this._rear
                ? ((this._memory[0] = n), (this._front = 0), (this._rear = 0))
                : ((this._rear = (this._rear + 1) % this._capacity),
                  this._rear === this._front &&
                    (this._front = (this._front + 1) % this._capacity),
                  (this._memory[this._rear] = n));
          }
          _computeScore(e) {
            if (Math.abs(e.deltaX) > 0 && Math.abs(e.deltaY) > 0) return 1;
            let t = 0.5;
            return (
              (-1 === this._front && -1 === this._rear) ||
                this._memory[this._rear],
              (this._isAlmostInt(e.deltaX) && this._isAlmostInt(e.deltaY)) ||
                (t += 0.25),
              Math.min(Math.max(t, 0), 1)
            );
          }
          _isAlmostInt(e) {
            return Math.abs(Math.round(e) - e) < 0.01;
          }
        }
        L.INSTANCE = new L();
        class M extends a.$ {
          constructor(e, t, i) {
            super(),
              (this._onScroll = this._register(new C.Q5())),
              (this.onScroll = this._onScroll.event),
              (this._onWillScroll = this._register(new C.Q5())),
              (e.style.overflow = 'hidden'),
              (this._options = (function (e) {
                let t = {
                  lazyRender: void 0 !== e.lazyRender && e.lazyRender,
                  className: void 0 !== e.className ? e.className : '',
                  useShadows: void 0 === e.useShadows || e.useShadows,
                  handleMouseWheel:
                    void 0 === e.handleMouseWheel || e.handleMouseWheel,
                  flipAxes: void 0 !== e.flipAxes && e.flipAxes,
                  alwaysConsumeMouseWheel:
                    void 0 !== e.alwaysConsumeMouseWheel &&
                    e.alwaysConsumeMouseWheel,
                  scrollYToX: void 0 !== e.scrollYToX && e.scrollYToX,
                  mouseWheelScrollSensitivity:
                    void 0 !== e.mouseWheelScrollSensitivity
                      ? e.mouseWheelScrollSensitivity
                      : 1,
                  fastScrollSensitivity:
                    void 0 !== e.fastScrollSensitivity
                      ? e.fastScrollSensitivity
                      : 5,
                  scrollPredominantAxis:
                    void 0 === e.scrollPredominantAxis ||
                    e.scrollPredominantAxis,
                  mouseWheelSmoothScroll:
                    void 0 === e.mouseWheelSmoothScroll ||
                    e.mouseWheelSmoothScroll,
                  arrowSize: void 0 !== e.arrowSize ? e.arrowSize : 11,
                  listenOnDomNode:
                    void 0 !== e.listenOnDomNode ? e.listenOnDomNode : null,
                  horizontal: void 0 !== e.horizontal ? e.horizontal : 1,
                  horizontalScrollbarSize:
                    void 0 !== e.horizontalScrollbarSize
                      ? e.horizontalScrollbarSize
                      : 10,
                  horizontalSliderSize:
                    void 0 !== e.horizontalSliderSize
                      ? e.horizontalSliderSize
                      : 0,
                  horizontalHasArrows:
                    void 0 !== e.horizontalHasArrows && e.horizontalHasArrows,
                  vertical: void 0 !== e.vertical ? e.vertical : 1,
                  verticalScrollbarSize:
                    void 0 !== e.verticalScrollbarSize
                      ? e.verticalScrollbarSize
                      : 10,
                  verticalHasArrows:
                    void 0 !== e.verticalHasArrows && e.verticalHasArrows,
                  verticalSliderSize:
                    void 0 !== e.verticalSliderSize ? e.verticalSliderSize : 0,
                };
                return (
                  (t.horizontalSliderSize =
                    void 0 !== e.horizontalSliderSize
                      ? e.horizontalSliderSize
                      : t.horizontalScrollbarSize),
                  (t.verticalSliderSize =
                    void 0 !== e.verticalSliderSize
                      ? e.verticalSliderSize
                      : t.verticalScrollbarSize),
                  u.dz && (t.className += ' mac'),
                  t
                );
              })(t)),
              (this._scrollable = i),
              this._register(
                this._scrollable.onScroll((e) => {
                  this._onWillScroll.fire(e),
                    this._onDidScroll(e),
                    this._onScroll.fire(e);
                })
              );
            let n = {
              onMouseWheel: (e) => this._onMouseWheel(e),
              onDragStart: () => this._onDragStart(),
              onDragEnd: () => this._onDragEnd(),
            };
            (this._verticalScrollbar = this._register(
              new w(this._scrollable, this._options, n)
            )),
              (this._horizontalScrollbar = this._register(
                new b(this._scrollable, this._options, n)
              )),
              (this._domNode = document.createElement('div')),
              (this._domNode.className =
                'monaco-scrollable-element ' + this._options.className),
              this._domNode.setAttribute('role', 'presentation'),
              (this._domNode.style.position = 'relative'),
              (this._domNode.style.overflow = 'hidden'),
              this._domNode.appendChild(e),
              this._domNode.appendChild(
                this._horizontalScrollbar.domNode.domNode
              ),
              this._domNode.appendChild(
                this._verticalScrollbar.domNode.domNode
              ),
              this._options.useShadows
                ? ((this._leftShadowDomNode = (0, r.X)(
                    document.createElement('div')
                  )),
                  this._leftShadowDomNode.setClassName('shadow'),
                  this._domNode.appendChild(this._leftShadowDomNode.domNode),
                  (this._topShadowDomNode = (0, r.X)(
                    document.createElement('div')
                  )),
                  this._topShadowDomNode.setClassName('shadow'),
                  this._domNode.appendChild(this._topShadowDomNode.domNode),
                  (this._topLeftShadowDomNode = (0, r.X)(
                    document.createElement('div')
                  )),
                  this._topLeftShadowDomNode.setClassName(
                    'shadow top-left-corner'
                  ),
                  this._domNode.appendChild(this._topLeftShadowDomNode.domNode))
                : ((this._leftShadowDomNode = null),
                  (this._topShadowDomNode = null),
                  (this._topLeftShadowDomNode = null)),
              (this._listenOnDomNode =
                this._options.listenOnDomNode || this._domNode),
              (this._mouseWheelToDispose = []),
              this._setListeningToMouseWheel(this._options.handleMouseWheel),
              this.onmouseover(this._listenOnDomNode, (e) =>
                this._onMouseOver(e)
              ),
              this.onnonbubblingmouseout(this._listenOnDomNode, (e) =>
                this._onMouseOut(e)
              ),
              (this._hideTimeout = this._register(new l._F())),
              (this._isDragging = !1),
              (this._mouseIsOver = !1),
              (this._shouldRender = !0),
              (this._revealOnScroll = !0);
          }
          dispose() {
            (this._mouseWheelToDispose = (0, d.B9)(this._mouseWheelToDispose)),
              super.dispose();
          }
          getDomNode() {
            return this._domNode;
          }
          getOverviewRulerLayoutInfo() {
            return {
              parent: this._domNode,
              insertBefore: this._verticalScrollbar.domNode.domNode,
            };
          }
          delegateVerticalScrollbarMouseDown(e) {
            this._verticalScrollbar.delegateMouseDown(e);
          }
          getScrollDimensions() {
            return this._scrollable.getScrollDimensions();
          }
          setScrollDimensions(e) {
            this._scrollable.setScrollDimensions(e, !1);
          }
          updateClassName(e) {
            (this._options.className = e),
              u.dz && (this._options.className += ' mac'),
              (this._domNode.className =
                'monaco-scrollable-element ' + this._options.className);
          }
          updateOptions(e) {
            void 0 !== e.handleMouseWheel &&
              ((this._options.handleMouseWheel = e.handleMouseWheel),
              this._setListeningToMouseWheel(this._options.handleMouseWheel)),
              void 0 !== e.mouseWheelScrollSensitivity &&
                (this._options.mouseWheelScrollSensitivity =
                  e.mouseWheelScrollSensitivity),
              void 0 !== e.fastScrollSensitivity &&
                (this._options.fastScrollSensitivity = e.fastScrollSensitivity),
              void 0 !== e.scrollPredominantAxis &&
                (this._options.scrollPredominantAxis = e.scrollPredominantAxis),
              void 0 !== e.horizontalScrollbarSize &&
                this._horizontalScrollbar.updateScrollbarSize(
                  e.horizontalScrollbarSize
                ),
              this._options.lazyRender || this._render();
          }
          _setListeningToMouseWheel(e) {
            if (
              this._mouseWheelToDispose.length > 0 !== e &&
              ((this._mouseWheelToDispose = (0, d.B9)(
                this._mouseWheelToDispose
              )),
              e)
            ) {
              let e = (e) => {
                this._onMouseWheel(new s.q(e));
              };
              this._mouseWheelToDispose.push(
                n.nm(this._listenOnDomNode, n.tw.MOUSE_WHEEL, e, {
                  passive: !1,
                })
              );
            }
          }
          _onMouseWheel(e) {
            const t = L.INSTANCE;
            {
              const i = window.devicePixelRatio / (0, k.ie)();
              u.ED || u.IJ
                ? t.accept(Date.now(), e.deltaX / i, e.deltaY / i)
                : t.accept(Date.now(), e.deltaX, e.deltaY);
            }
            if (e.deltaY || e.deltaX) {
              let i = e.deltaY * this._options.mouseWheelScrollSensitivity,
                n = e.deltaX * this._options.mouseWheelScrollSensitivity;
              this._options.scrollPredominantAxis &&
                (Math.abs(i) >= Math.abs(n) ? (n = 0) : (i = 0)),
                this._options.flipAxes && ([i, n] = [n, i]);
              const r = !u.dz && e.browserEvent && e.browserEvent.shiftKey;
              (!this._options.scrollYToX && !r) || n || ((n = i), (i = 0)),
                e.browserEvent &&
                  e.browserEvent.altKey &&
                  ((n *= this._options.fastScrollSensitivity),
                  (i *= this._options.fastScrollSensitivity));
              const s = this._scrollable.getFutureScrollPosition();
              let o = {};
              if (i) {
                const e = s.scrollTop - 50 * i;
                this._verticalScrollbar.writeScrollPosition(o, e);
              }
              if (n) {
                const e = s.scrollLeft - 50 * n;
                this._horizontalScrollbar.writeScrollPosition(o, e);
              }
              (o = this._scrollable.validateScrollPosition(o)),
                (s.scrollLeft !== o.scrollLeft ||
                  s.scrollTop !== o.scrollTop) &&
                  (this._options.mouseWheelSmoothScroll &&
                  t.isPhysicalMouseWheel()
                    ? this._scrollable.setScrollPositionSmooth(o)
                    : this._scrollable.setScrollPositionNow(o),
                  (this._shouldRender = !0));
            }
            (this._options.alwaysConsumeMouseWheel || this._shouldRender) &&
              (e.preventDefault(), e.stopPropagation());
          }
          _onDidScroll(e) {
            (this._shouldRender =
              this._horizontalScrollbar.onDidScroll(e) || this._shouldRender),
              (this._shouldRender =
                this._verticalScrollbar.onDidScroll(e) || this._shouldRender),
              this._options.useShadows && (this._shouldRender = !0),
              this._revealOnScroll && this._reveal(),
              this._options.lazyRender || this._render();
          }
          renderNow() {
            if (!this._options.lazyRender)
              throw new Error(
                'Please use `lazyRender` together with `renderNow`!'
              );
            this._render();
          }
          _render() {
            if (
              this._shouldRender &&
              ((this._shouldRender = !1),
              this._horizontalScrollbar.render(),
              this._verticalScrollbar.render(),
              this._options.useShadows)
            ) {
              const e = this._scrollable.getCurrentScrollPosition();
              let t = e.scrollTop > 0,
                i = e.scrollLeft > 0;
              this._leftShadowDomNode.setClassName(
                'shadow' + (i ? ' left' : '')
              ),
                this._topShadowDomNode.setClassName(
                  'shadow' + (t ? ' top' : '')
                ),
                this._topLeftShadowDomNode.setClassName(
                  'shadow top-left-corner' +
                    (t ? ' top' : '') +
                    (i ? ' left' : '')
                );
            }
          }
          _onDragStart() {
            (this._isDragging = !0), this._reveal();
          }
          _onDragEnd() {
            (this._isDragging = !1), this._hide();
          }
          _onMouseOut(e) {
            (this._mouseIsOver = !1), this._hide();
          }
          _onMouseOver(e) {
            (this._mouseIsOver = !0), this._reveal();
          }
          _reveal() {
            this._verticalScrollbar.beginReveal(),
              this._horizontalScrollbar.beginReveal(),
              this._scheduleHide();
          }
          _hide() {
            this._mouseIsOver ||
              this._isDragging ||
              (this._verticalScrollbar.beginHide(),
              this._horizontalScrollbar.beginHide());
          }
          _scheduleHide() {
            this._mouseIsOver ||
              this._isDragging ||
              this._hideTimeout.cancelAndSet(() => this._hide(), 500);
          }
        }
        class D extends M {
          constructor(e, t) {
            (t = t || {}).mouseWheelSmoothScroll = !1;
            const i = new S.Rm(0, (e) => n.jL(e));
            super(e, t, i), this._register(i);
          }
          setScrollPosition(e) {
            this._scrollable.setScrollPositionNow(e);
          }
        }
        class N extends M {
          constructor(e, t, i) {
            super(e, t, i);
          }
          setScrollPosition(e) {
            this._scrollable.setScrollPositionNow(e);
          }
          getScrollPosition() {
            return this._scrollable.getCurrentScrollPosition();
          }
        }
        class E extends D {
          constructor(e, t) {
            super(e, t),
              (this._element = e),
              this.onScroll((e) => {
                e.scrollTopChanged && (this._element.scrollTop = e.scrollTop),
                  e.scrollLeftChanged &&
                    (this._element.scrollLeft = e.scrollLeft);
              }),
              this.scanDomNode();
          }
          scanDomNode() {
            this.setScrollDimensions({
              width: this._element.clientWidth,
              scrollWidth: this._element.scrollWidth,
              height: this._element.clientHeight,
              scrollHeight: this._element.scrollHeight,
            }),
              this.setScrollPosition({
                scrollLeft: this._element.scrollLeft,
                scrollTop: this._element.scrollTop,
              });
          }
        }
      },
      93794: (e, t, i) => {
        'use strict';
        i.d(t, { $: () => l });
        var n = i(65321),
          r = i(59069),
          s = i(23938),
          o = i(5976),
          a = i(10553);
        class l extends o.JT {
          onclick(e, t) {
            this._register(n.nm(e, n.tw.CLICK, (e) => t(new s.n(e))));
          }
          onmousedown(e, t) {
            this._register(n.nm(e, n.tw.MOUSE_DOWN, (e) => t(new s.n(e))));
          }
          onmouseover(e, t) {
            this._register(n.nm(e, n.tw.MOUSE_OVER, (e) => t(new s.n(e))));
          }
          onnonbubblingmouseout(e, t) {
            this._register(n.j_(e, (e) => t(new s.n(e))));
          }
          onkeydown(e, t) {
            this._register(n.nm(e, n.tw.KEY_DOWN, (e) => t(new r.y(e))));
          }
          onkeyup(e, t) {
            this._register(n.nm(e, n.tw.KEY_UP, (e) => t(new r.y(e))));
          }
          oninput(e, t) {
            this._register(n.nm(e, n.tw.INPUT, t));
          }
          onblur(e, t) {
            this._register(n.nm(e, n.tw.BLUR, t));
          }
          onfocus(e, t) {
            this._register(n.nm(e, n.tw.FOCUS, t));
          }
          ignoreGesture(e) {
            a.o.ignoreTarget(e);
          }
        }
      },
      74741: (e, t, i) => {
        'use strict';
        i.d(t, { aU: () => s, Wi: () => o, Z0: () => a, wY: () => l });
        var n = i(5976),
          r = i(4669);
        class s extends n.JT {
          constructor(e, t = '', i = '', n = !0, s) {
            super(),
              (this._onDidChange = this._register(new r.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._enabled = !0),
              (this._checked = !1),
              (this._id = e),
              (this._label = t),
              (this._cssClass = i),
              (this._enabled = n),
              (this._actionCallback = s);
          }
          get id() {
            return this._id;
          }
          get label() {
            return this._label;
          }
          set label(e) {
            this._setLabel(e);
          }
          _setLabel(e) {
            this._label !== e &&
              ((this._label = e), this._onDidChange.fire({ label: e }));
          }
          get tooltip() {
            return this._tooltip || '';
          }
          set tooltip(e) {
            this._setTooltip(e);
          }
          _setTooltip(e) {
            this._tooltip !== e &&
              ((this._tooltip = e), this._onDidChange.fire({ tooltip: e }));
          }
          get class() {
            return this._cssClass;
          }
          set class(e) {
            this._setClass(e);
          }
          _setClass(e) {
            this._cssClass !== e &&
              ((this._cssClass = e), this._onDidChange.fire({ class: e }));
          }
          get enabled() {
            return this._enabled;
          }
          set enabled(e) {
            this._setEnabled(e);
          }
          _setEnabled(e) {
            this._enabled !== e &&
              ((this._enabled = e), this._onDidChange.fire({ enabled: e }));
          }
          get checked() {
            return this._checked;
          }
          set checked(e) {
            this._setChecked(e);
          }
          _setChecked(e) {
            this._checked !== e &&
              ((this._checked = e), this._onDidChange.fire({ checked: e }));
          }
          run(e, t) {
            return this._actionCallback
              ? this._actionCallback(e)
              : Promise.resolve(!0);
          }
        }
        class o extends n.JT {
          constructor() {
            super(...arguments),
              (this._onDidBeforeRun = this._register(new r.Q5())),
              (this.onDidBeforeRun = this._onDidBeforeRun.event),
              (this._onDidRun = this._register(new r.Q5())),
              (this.onDidRun = this._onDidRun.event);
          }
          run(e, t) {
            return (
              (i = this),
              (n = void 0),
              (s = function* () {
                if (!e.enabled) return Promise.resolve(null);
                this._onDidBeforeRun.fire({ action: e });
                try {
                  const i = yield this.runAction(e, t);
                  this._onDidRun.fire({ action: e, result: i });
                } catch (t) {
                  this._onDidRun.fire({ action: e, error: t });
                }
              }),
              new ((r = void 0) || (r = Promise))(function (e, t) {
                function o(e) {
                  try {
                    l(s.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function a(e) {
                  try {
                    l(s.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof r
                        ? i
                        : new r(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((s = s.apply(i, n || [])).next());
              })
            );
            var i, n, r, s;
          }
          runAction(e, t) {
            const i = t ? e.run(t) : e.run();
            return Promise.resolve(i);
          }
        }
        class a extends s {
          constructor(e) {
            super(a.ID, e, e ? 'separator text' : 'separator'),
              (this.checked = !1),
              (this.enabled = !1);
          }
        }
        a.ID = 'vs.actions.separator';
        class l extends s {
          constructor(e, t, i, n) {
            super(e, t, n, !0), (this._actions = i);
          }
          get actions() {
            return Array.isArray(this._actions)
              ? this._actions
              : this._actions();
          }
        }
      },
      9488: (e, t, i) => {
        'use strict';
        function n(e, t = 0) {
          return e[e.length - (1 + t)];
        }
        function r(e) {
          if (0 === e.length) throw new Error('Invalid tail call');
          return [e.slice(0, e.length - 1), e[e.length - 1]];
        }
        function s(e, t, i = (e, t) => e === t) {
          if (e === t) return !0;
          if (!e || !t) return !1;
          if (e.length !== t.length) return !1;
          for (let n = 0, r = e.length; n < r; n++)
            if (!i(e[n], t[n])) return !1;
          return !0;
        }
        function o(e, t, i) {
          let n = 0,
            r = e.length - 1;
          for (; n <= r; ) {
            const s = ((n + r) / 2) | 0,
              o = i(e[s], t);
            if (o < 0) n = s + 1;
            else {
              if (!(o > 0)) return s;
              r = s - 1;
            }
          }
          return -(n + 1);
        }
        function a(e, t) {
          let i = 0,
            n = e.length;
          if (0 === n) return 0;
          for (; i < n; ) {
            const r = Math.floor((i + n) / 2);
            t(e[r]) ? (n = r) : (i = r + 1);
          }
          return i;
        }
        function l(e, t) {
          return c(e, t, 0, e.length - 1, []), e;
        }
        function c(e, t, i, n, r) {
          if (n <= i) return;
          const s = (i + (n - i) / 2) | 0;
          c(e, t, i, s, r),
            c(e, t, s + 1, n, r),
            t(e[s], e[s + 1]) <= 0 ||
              (function (e, t, i, n, r, s) {
                let o = i,
                  a = n + 1;
                for (let t = i; t <= r; t++) s[t] = e[t];
                for (let l = i; l <= r; l++)
                  o > n
                    ? (e[l] = s[a++])
                    : a > r
                    ? (e[l] = s[o++])
                    : t(s[a], s[o]) < 0
                    ? (e[l] = s[a++])
                    : (e[l] = s[o++]);
              })(e, t, i, s, n, r);
        }
        function d(e, t) {
          const i = [];
          let n;
          for (const r of l(e.slice(0), t))
            n && 0 === t(n[0], r) ? n.push(r) : ((n = [r]), i.push(n));
          return i;
        }
        function h(e) {
          return e.filter((e) => !!e);
        }
        function u(e) {
          return !Array.isArray(e) || 0 === e.length;
        }
        function g(e) {
          return Array.isArray(e) && e.length > 0;
        }
        function f(e, t) {
          if (!t) return e.filter((t, i) => e.indexOf(t) === i);
          const i = Object.create(null);
          return e.filter((e) => {
            const n = t(e);
            return !i[n] && ((i[n] = !0), !0);
          });
        }
        function p(e) {
          const t = new Set();
          return e.filter((e) => !t.has(e) && (t.add(e), !0));
        }
        function m(e, t) {
          for (let i = 0; i < e.length; i++) if (t(e[i])) return i;
          return -1;
        }
        function _(e, t, i) {
          const n = m(e, t);
          return n < 0 ? i : e[n];
        }
        function b(e, t) {
          return e.length > 0 ? e[0] : t;
        }
        function v(e) {
          return [].concat(...e);
        }
        function y(e, t) {
          let i = 'number' == typeof t ? e : 0;
          'number' == typeof t ? (i = e) : ((i = 0), (t = e));
          const n = [];
          if (i <= t) for (let e = i; e < t; e++) n.push(e);
          else for (let e = i; e > t; e--) n.push(e);
          return n;
        }
        function w(e, t, i) {
          const n = e.slice(0, t),
            r = e.slice(t);
          return n.concat(i, r);
        }
        function C(e, t) {
          const i = e.indexOf(t);
          i > -1 && (e.splice(i, 1), e.unshift(t));
        }
        function S(e, t) {
          const i = e.indexOf(t);
          i > -1 && (e.splice(i, 1), e.push(t));
        }
        function k(e) {
          return Array.isArray(e) ? e : [e];
        }
        i.d(t, {
          Gb: () => n,
          JH: () => r,
          fS: () => s,
          ry: () => o,
          lG: () => a,
          qt: () => l,
          vM: () => d,
          kX: () => h,
          XY: () => u,
          Of: () => g,
          EB: () => f,
          cU: () => p,
          Zr: () => m,
          Ps: () => _,
          Xh: () => b,
          xH: () => v,
          w6: () => y,
          Zv: () => w,
          zI: () => C,
          al: () => S,
          _2: () => k,
        });
      },
      35146: (e, t, i) => {
        'use strict';
        function n(e, t) {
          if (!e)
            throw new Error(t ? `Assertion failed (${t})` : 'Assertion Failed');
        }
        i.d(t, { ok: () => n });
      },
      15393: (e, t, i) => {
        'use strict';
        i.d(t, {
          J8: () => o,
          PG: () => a,
          eP: () => l,
          vp: () => c,
          Vs: () => d,
          Vg: () => h,
          Ps: () => u,
          _F: () => g,
          zh: () => f,
          pY: () => p,
          To: () => m,
          Ue: () => _,
        });
        var n = i(71050),
          r = i(17301),
          s = i(5976);
        function o(e) {
          return e && 'function' == typeof e.then;
        }
        function a(e) {
          const t = new n.A(),
            i = e(t.token),
            s = new Promise((e, n) => {
              t.token.onCancellationRequested(() => {
                n(r.F0());
              }),
                Promise.resolve(i).then(
                  (i) => {
                    t.dispose(), e(i);
                  },
                  (e) => {
                    t.dispose(), n(e);
                  }
                );
            });
          return new (class {
            cancel() {
              t.cancel();
            }
            then(e, t) {
              return s.then(e, t);
            }
            catch(e) {
              return this.then(void 0, e);
            }
            finally(e) {
              return s.finally(e);
            }
          })();
        }
        function l(e, t, i) {
          return Promise.race([
            e,
            new Promise((e) => t.onCancellationRequested(() => e(i))),
          ]);
        }
        class c {
          constructor(e) {
            (this.defaultDelay = e),
              (this.timeout = null),
              (this.completionPromise = null),
              (this.doResolve = null),
              (this.doReject = null),
              (this.task = null);
          }
          trigger(e, t = this.defaultDelay) {
            return (
              (this.task = e),
              this.cancelTimeout(),
              this.completionPromise ||
                (this.completionPromise = new Promise((e, t) => {
                  (this.doResolve = e), (this.doReject = t);
                }).then(() => {
                  if (
                    ((this.completionPromise = null),
                    (this.doResolve = null),
                    this.task)
                  ) {
                    const e = this.task;
                    return (this.task = null), e();
                  }
                })),
              (this.timeout = setTimeout(() => {
                (this.timeout = null), this.doResolve && this.doResolve(null);
              }, t)),
              this.completionPromise
            );
          }
          isTriggered() {
            return null !== this.timeout;
          }
          cancel() {
            this.cancelTimeout(),
              this.completionPromise &&
                (this.doReject && this.doReject(r.F0()),
                (this.completionPromise = null));
          }
          cancelTimeout() {
            null !== this.timeout &&
              (clearTimeout(this.timeout), (this.timeout = null));
          }
          dispose() {
            this.cancelTimeout();
          }
        }
        function d(e, t) {
          return t
            ? new Promise((i, n) => {
                const s = setTimeout(i, e);
                t.onCancellationRequested(() => {
                  clearTimeout(s), n(r.F0());
                });
              })
            : a((t) => d(e, t));
        }
        function h(e, t = 0) {
          const i = setTimeout(e, t);
          return (0, s.OF)(() => clearTimeout(i));
        }
        function u(e, t = (e) => !!e, i = null) {
          let n = 0;
          const r = e.length,
            s = () => {
              if (n >= r) return Promise.resolve(i);
              const o = e[n++];
              return Promise.resolve(o()).then((e) =>
                t(e) ? Promise.resolve(e) : s()
              );
            };
          return s();
        }
        class g {
          constructor(e, t) {
            (this._token = -1),
              'function' == typeof e &&
                'number' == typeof t &&
                this.setIfNotSet(e, t);
          }
          dispose() {
            this.cancel();
          }
          cancel() {
            -1 !== this._token &&
              (clearTimeout(this._token), (this._token = -1));
          }
          cancelAndSet(e, t) {
            this.cancel(),
              (this._token = setTimeout(() => {
                (this._token = -1), e();
              }, t));
          }
          setIfNotSet(e, t) {
            -1 === this._token &&
              (this._token = setTimeout(() => {
                (this._token = -1), e();
              }, t));
          }
        }
        class f {
          constructor() {
            this._token = -1;
          }
          dispose() {
            this.cancel();
          }
          cancel() {
            -1 !== this._token &&
              (clearInterval(this._token), (this._token = -1));
          }
          cancelAndSet(e, t) {
            this.cancel(),
              (this._token = setInterval(() => {
                e();
              }, t));
          }
        }
        class p {
          constructor(e, t) {
            (this.timeoutToken = -1),
              (this.runner = e),
              (this.timeout = t),
              (this.timeoutHandler = this.onTimeout.bind(this));
          }
          dispose() {
            this.cancel(), (this.runner = null);
          }
          cancel() {
            this.isScheduled() &&
              (clearTimeout(this.timeoutToken), (this.timeoutToken = -1));
          }
          schedule(e = this.timeout) {
            this.cancel(),
              (this.timeoutToken = setTimeout(this.timeoutHandler, e));
          }
          isScheduled() {
            return -1 !== this.timeoutToken;
          }
          onTimeout() {
            (this.timeoutToken = -1), this.runner && this.doRun();
          }
          doRun() {
            this.runner && this.runner();
          }
        }
        let m;
        !(function () {
          if (
            'function' != typeof requestIdleCallback ||
            'function' != typeof cancelIdleCallback
          ) {
            const e = Object.freeze({
              didTimeout: !0,
              timeRemaining: () => 15,
            });
            m = (t) => {
              const i = setTimeout(() => t(e));
              let n = !1;
              return {
                dispose() {
                  n || ((n = !0), clearTimeout(i));
                },
              };
            };
          } else
            m = (e, t) => {
              const i = requestIdleCallback(
                e,
                'number' == typeof t ? { timeout: t } : void 0
              );
              let n = !1;
              return {
                dispose() {
                  n || ((n = !0), cancelIdleCallback(i));
                },
              };
            };
        })();
        class _ {
          constructor(e) {
            (this._didRun = !1),
              (this._executor = () => {
                try {
                  this._value = e();
                } catch (e) {
                  this._error = e;
                } finally {
                  this._didRun = !0;
                }
              }),
              (this._handle = m(() => this._executor()));
          }
          dispose() {
            this._handle.dispose();
          }
          get value() {
            if (
              (this._didRun || (this._handle.dispose(), this._executor()),
              this._error)
            )
              throw this._error;
            return this._value;
          }
        }
      },
      53060: (e, t, i) => {
        'use strict';
        i.d(t, {
          KN: () => a,
          mP: () => l,
          oq: () => c,
          Ag: () => d,
          T4: () => h,
          Q$: () => u,
          Cg: () => g,
        });
        var n = i(97295);
        const r = 'undefined' != typeof Buffer,
          s = 'undefined' != typeof TextDecoder;
        let o;
        class a {
          constructor(e) {
            (this.buffer = e), (this.byteLength = this.buffer.byteLength);
          }
          toString() {
            return r
              ? this.buffer.toString()
              : s
              ? (o || (o = new TextDecoder()), o.decode(this.buffer))
              : n.CZ(this.buffer);
          }
        }
        function l(e, t) {
          return ((e[t + 0] << 0) >>> 0) | ((e[t + 1] << 8) >>> 0);
        }
        function c(e, t, i) {
          (e[i + 0] = 255 & t), (t >>>= 8), (e[i + 1] = 255 & t);
        }
        function d(e, t) {
          return (
            e[t] * Math.pow(2, 24) +
            e[t + 1] * Math.pow(2, 16) +
            e[t + 2] * Math.pow(2, 8) +
            e[t + 3]
          );
        }
        function h(e, t, i) {
          (e[i + 3] = t),
            (t >>>= 8),
            (e[i + 2] = t),
            (t >>>= 8),
            (e[i + 1] = t),
            (t >>>= 8),
            (e[i] = t);
        }
        function u(e, t) {
          return e[t];
        }
        function g(e, t, i) {
          e[i] = t;
        }
      },
      71050: (e, t, i) => {
        'use strict';
        i.d(t, { T: () => s, A: () => a });
        var n = i(4669);
        const r = Object.freeze(function (e, t) {
          const i = setTimeout(e.bind(t), 0);
          return {
            dispose() {
              clearTimeout(i);
            },
          };
        });
        var s;
        !(function (e) {
          (e.isCancellationToken = function (t) {
            return (
              t === e.None ||
              t === e.Cancelled ||
              t instanceof o ||
              (!(!t || 'object' != typeof t) &&
                'boolean' == typeof t.isCancellationRequested &&
                'function' == typeof t.onCancellationRequested)
            );
          }),
            (e.None = Object.freeze({
              isCancellationRequested: !1,
              onCancellationRequested: n.ju.None,
            })),
            (e.Cancelled = Object.freeze({
              isCancellationRequested: !0,
              onCancellationRequested: r,
            }));
        })(s || (s = {}));
        class o {
          constructor() {
            (this._isCancelled = !1), (this._emitter = null);
          }
          cancel() {
            this._isCancelled ||
              ((this._isCancelled = !0),
              this._emitter && (this._emitter.fire(void 0), this.dispose()));
          }
          get isCancellationRequested() {
            return this._isCancelled;
          }
          get onCancellationRequested() {
            return this._isCancelled
              ? r
              : (this._emitter || (this._emitter = new n.Q5()),
                this._emitter.event);
          }
          dispose() {
            this._emitter && (this._emitter.dispose(), (this._emitter = null));
          }
        }
        class a {
          constructor(e) {
            (this._token = void 0),
              (this._parentListener = void 0),
              (this._parentListener =
                e && e.onCancellationRequested(this.cancel, this));
          }
          get token() {
            return this._token || (this._token = new o()), this._token;
          }
          cancel() {
            this._token
              ? this._token instanceof o && this._token.cancel()
              : (this._token = s.Cancelled);
          }
          dispose(e = !1) {
            e && this.cancel(),
              this._parentListener && this._parentListener.dispose(),
              this._token
                ? this._token instanceof o && this._token.dispose()
                : (this._token = s.None);
          }
        }
      },
      60703: (e, t, i) => {
        'use strict';
        i.d(t, { Ln: () => s, fe: () => o, YU: () => a });
        var n = i(75392),
          r = i(97295);
        const s = '$(';
        function o(e) {
          const t = e.indexOf(s);
          return -1 === t
            ? { text: e }
            : (function (e, t) {
                const i = [];
                let n = '';
                function r(e) {
                  if (e) {
                    n += e;
                    for (const t of e) i.push(d);
                  }
                }
                let o,
                  a,
                  l = -1,
                  c = '',
                  d = 0,
                  h = t;
                const u = e.length;
                for (r(e.substr(0, t)); h < u; )
                  (o = e[h]),
                    (a = e[h + 1]),
                    o === s[0] && a === s[1]
                      ? ((l = h), r(c), (c = s), h++)
                      : ')' === o && -1 !== l
                      ? ((d += h - l + 1), (l = -1), (c = ''))
                      : -1 !== l
                      ? /^[a-z0-9\-]$/i.test(o)
                        ? (c += o)
                        : (r(c), (l = -1), (c = ''))
                      : r(o),
                    h++;
                return r(c), { text: n, codiconOffsets: i };
              })(e, t);
        }
        function a(e, t, i = !1) {
          const { text: s, codiconOffsets: o } = t;
          if (!o || 0 === o.length) return (0, n.Oh)(e, s, i);
          const a = (0, r.j3)(s, ' '),
            l = s.length - a.length,
            c = (0, n.Oh)(e, a, i);
          if (c)
            for (const e of c) {
              const t = o[e.start + l] + l;
              (e.start += t), (e.end += t);
            }
          return c;
        }
      },
      73046: (e, t, i) => {
        'use strict';
        i.d(t, {
          fK: () => o,
          q5: () => a,
          lA: () => l,
          qQ: () => d,
          dg: () => u,
          b3: () => g,
          Mi: () => f,
          QF: () => m,
        });
        var n = i(60703),
          r = i(4669);
        const s = new (class {
            constructor() {
              (this._icons = new Map()), (this._onDidRegister = new r.Q5());
            }
            add(e) {
              this._icons.has(e.id)
                ? console.error(`Duplicate registration of codicon ${e.id}`)
                : (this._icons.set(e.id, e), this._onDidRegister.fire(e));
            }
            get(e) {
              return this._icons.get(e);
            }
            get all() {
              return this._icons.values();
            }
            get onDidRegister() {
              return this._onDidRegister.event;
            }
          })(),
          o = s;
        function a(e, t, i) {
          return new l(e, t);
        }
        class l {
          constructor(e, t, i) {
            (this.id = e),
              (this.definition = t),
              (this.description = i),
              s.add(this);
          }
          get classNames() {
            return 'codicon codicon-' + this.id;
          }
          get cssSelector() {
            return '.codicon.codicon-' + this.id;
          }
        }
        !(function (e) {
          (e.add = new e('add', { character: '\\ea60' })),
            (e.plus = new e('plus', { character: '\\ea60' })),
            (e.gistNew = new e('gist-new', { character: '\\ea60' })),
            (e.repoCreate = new e('repo-create', { character: '\\ea60' })),
            (e.lightbulb = new e('lightbulb', { character: '\\ea61' })),
            (e.lightBulb = new e('light-bulb', { character: '\\ea61' })),
            (e.repo = new e('repo', { character: '\\ea62' })),
            (e.repoDelete = new e('repo-delete', { character: '\\ea62' })),
            (e.gistFork = new e('gist-fork', { character: '\\ea63' })),
            (e.repoForked = new e('repo-forked', { character: '\\ea63' })),
            (e.gitPullRequest = new e('git-pull-request', {
              character: '\\ea64',
            })),
            (e.gitPullRequestAbandoned = new e('git-pull-request-abandoned', {
              character: '\\ea64',
            })),
            (e.recordKeys = new e('record-keys', { character: '\\ea65' })),
            (e.keyboard = new e('keyboard', { character: '\\ea65' })),
            (e.tag = new e('tag', { character: '\\ea66' })),
            (e.tagAdd = new e('tag-add', { character: '\\ea66' })),
            (e.tagRemove = new e('tag-remove', { character: '\\ea66' })),
            (e.person = new e('person', { character: '\\ea67' })),
            (e.personAdd = new e('person-add', { character: '\\ea67' })),
            (e.personFollow = new e('person-follow', { character: '\\ea67' })),
            (e.personOutline = new e('person-outline', {
              character: '\\ea67',
            })),
            (e.personFilled = new e('person-filled', { character: '\\ea67' })),
            (e.gitBranch = new e('git-branch', { character: '\\ea68' })),
            (e.gitBranchCreate = new e('git-branch-create', {
              character: '\\ea68',
            })),
            (e.gitBranchDelete = new e('git-branch-delete', {
              character: '\\ea68',
            })),
            (e.sourceControl = new e('source-control', {
              character: '\\ea68',
            })),
            (e.mirror = new e('mirror', { character: '\\ea69' })),
            (e.mirrorPublic = new e('mirror-public', { character: '\\ea69' })),
            (e.star = new e('star', { character: '\\ea6a' })),
            (e.starAdd = new e('star-add', { character: '\\ea6a' })),
            (e.starDelete = new e('star-delete', { character: '\\ea6a' })),
            (e.starEmpty = new e('star-empty', { character: '\\ea6a' })),
            (e.comment = new e('comment', { character: '\\ea6b' })),
            (e.commentAdd = new e('comment-add', { character: '\\ea6b' })),
            (e.alert = new e('alert', { character: '\\ea6c' })),
            (e.warning = new e('warning', { character: '\\ea6c' })),
            (e.search = new e('search', { character: '\\ea6d' })),
            (e.searchSave = new e('search-save', { character: '\\ea6d' })),
            (e.logOut = new e('log-out', { character: '\\ea6e' })),
            (e.signOut = new e('sign-out', { character: '\\ea6e' })),
            (e.logIn = new e('log-in', { character: '\\ea6f' })),
            (e.signIn = new e('sign-in', { character: '\\ea6f' })),
            (e.eye = new e('eye', { character: '\\ea70' })),
            (e.eyeUnwatch = new e('eye-unwatch', { character: '\\ea70' })),
            (e.eyeWatch = new e('eye-watch', { character: '\\ea70' })),
            (e.circleFilled = new e('circle-filled', { character: '\\ea71' })),
            (e.primitiveDot = new e('primitive-dot', { character: '\\ea71' })),
            (e.closeDirty = new e('close-dirty', { character: '\\ea71' })),
            (e.debugBreakpoint = new e('debug-breakpoint', {
              character: '\\ea71',
            })),
            (e.debugBreakpointDisabled = new e('debug-breakpoint-disabled', {
              character: '\\ea71',
            })),
            (e.debugHint = new e('debug-hint', { character: '\\ea71' })),
            (e.primitiveSquare = new e('primitive-square', {
              character: '\\ea72',
            })),
            (e.edit = new e('edit', { character: '\\ea73' })),
            (e.pencil = new e('pencil', { character: '\\ea73' })),
            (e.info = new e('info', { character: '\\ea74' })),
            (e.issueOpened = new e('issue-opened', { character: '\\ea74' })),
            (e.gistPrivate = new e('gist-private', { character: '\\ea75' })),
            (e.gitForkPrivate = new e('git-fork-private', {
              character: '\\ea75',
            })),
            (e.lock = new e('lock', { character: '\\ea75' })),
            (e.mirrorPrivate = new e('mirror-private', {
              character: '\\ea75',
            })),
            (e.close = new e('close', { character: '\\ea76' })),
            (e.removeClose = new e('remove-close', { character: '\\ea76' })),
            (e.x = new e('x', { character: '\\ea76' })),
            (e.repoSync = new e('repo-sync', { character: '\\ea77' })),
            (e.sync = new e('sync', { character: '\\ea77' })),
            (e.clone = new e('clone', { character: '\\ea78' })),
            (e.desktopDownload = new e('desktop-download', {
              character: '\\ea78',
            })),
            (e.beaker = new e('beaker', { character: '\\ea79' })),
            (e.microscope = new e('microscope', { character: '\\ea79' })),
            (e.vm = new e('vm', { character: '\\ea7a' })),
            (e.deviceDesktop = new e('device-desktop', {
              character: '\\ea7a',
            })),
            (e.file = new e('file', { character: '\\ea7b' })),
            (e.fileText = new e('file-text', { character: '\\ea7b' })),
            (e.more = new e('more', { character: '\\ea7c' })),
            (e.ellipsis = new e('ellipsis', { character: '\\ea7c' })),
            (e.kebabHorizontal = new e('kebab-horizontal', {
              character: '\\ea7c',
            })),
            (e.mailReply = new e('mail-reply', { character: '\\ea7d' })),
            (e.reply = new e('reply', { character: '\\ea7d' })),
            (e.organization = new e('organization', { character: '\\ea7e' })),
            (e.organizationFilled = new e('organization-filled', {
              character: '\\ea7e',
            })),
            (e.organizationOutline = new e('organization-outline', {
              character: '\\ea7e',
            })),
            (e.newFile = new e('new-file', { character: '\\ea7f' })),
            (e.fileAdd = new e('file-add', { character: '\\ea7f' })),
            (e.newFolder = new e('new-folder', { character: '\\ea80' })),
            (e.fileDirectoryCreate = new e('file-directory-create', {
              character: '\\ea80',
            })),
            (e.trash = new e('trash', { character: '\\ea81' })),
            (e.trashcan = new e('trashcan', { character: '\\ea81' })),
            (e.history = new e('history', { character: '\\ea82' })),
            (e.clock = new e('clock', { character: '\\ea82' })),
            (e.folder = new e('folder', { character: '\\ea83' })),
            (e.fileDirectory = new e('file-directory', {
              character: '\\ea83',
            })),
            (e.symbolFolder = new e('symbol-folder', { character: '\\ea83' })),
            (e.logoGithub = new e('logo-github', { character: '\\ea84' })),
            (e.markGithub = new e('mark-github', { character: '\\ea84' })),
            (e.github = new e('github', { character: '\\ea84' })),
            (e.terminal = new e('terminal', { character: '\\ea85' })),
            (e.console = new e('console', { character: '\\ea85' })),
            (e.repl = new e('repl', { character: '\\ea85' })),
            (e.zap = new e('zap', { character: '\\ea86' })),
            (e.symbolEvent = new e('symbol-event', { character: '\\ea86' })),
            (e.error = new e('error', { character: '\\ea87' })),
            (e.stop = new e('stop', { character: '\\ea87' })),
            (e.variable = new e('variable', { character: '\\ea88' })),
            (e.symbolVariable = new e('symbol-variable', {
              character: '\\ea88',
            })),
            (e.array = new e('array', { character: '\\ea8a' })),
            (e.symbolArray = new e('symbol-array', { character: '\\ea8a' })),
            (e.symbolModule = new e('symbol-module', { character: '\\ea8b' })),
            (e.symbolPackage = new e('symbol-package', {
              character: '\\ea8b',
            })),
            (e.symbolNamespace = new e('symbol-namespace', {
              character: '\\ea8b',
            })),
            (e.symbolObject = new e('symbol-object', { character: '\\ea8b' })),
            (e.symbolMethod = new e('symbol-method', { character: '\\ea8c' })),
            (e.symbolFunction = new e('symbol-function', {
              character: '\\ea8c',
            })),
            (e.symbolConstructor = new e('symbol-constructor', {
              character: '\\ea8c',
            })),
            (e.symbolBoolean = new e('symbol-boolean', {
              character: '\\ea8f',
            })),
            (e.symbolNull = new e('symbol-null', { character: '\\ea8f' })),
            (e.symbolNumeric = new e('symbol-numeric', {
              character: '\\ea90',
            })),
            (e.symbolNumber = new e('symbol-number', { character: '\\ea90' })),
            (e.symbolStructure = new e('symbol-structure', {
              character: '\\ea91',
            })),
            (e.symbolStruct = new e('symbol-struct', { character: '\\ea91' })),
            (e.symbolParameter = new e('symbol-parameter', {
              character: '\\ea92',
            })),
            (e.symbolTypeParameter = new e('symbol-type-parameter', {
              character: '\\ea92',
            })),
            (e.symbolKey = new e('symbol-key', { character: '\\ea93' })),
            (e.symbolText = new e('symbol-text', { character: '\\ea93' })),
            (e.symbolReference = new e('symbol-reference', {
              character: '\\ea94',
            })),
            (e.goToFile = new e('go-to-file', { character: '\\ea94' })),
            (e.symbolEnum = new e('symbol-enum', { character: '\\ea95' })),
            (e.symbolValue = new e('symbol-value', { character: '\\ea95' })),
            (e.symbolRuler = new e('symbol-ruler', { character: '\\ea96' })),
            (e.symbolUnit = new e('symbol-unit', { character: '\\ea96' })),
            (e.activateBreakpoints = new e('activate-breakpoints', {
              character: '\\ea97',
            })),
            (e.archive = new e('archive', { character: '\\ea98' })),
            (e.arrowBoth = new e('arrow-both', { character: '\\ea99' })),
            (e.arrowDown = new e('arrow-down', { character: '\\ea9a' })),
            (e.arrowLeft = new e('arrow-left', { character: '\\ea9b' })),
            (e.arrowRight = new e('arrow-right', { character: '\\ea9c' })),
            (e.arrowSmallDown = new e('arrow-small-down', {
              character: '\\ea9d',
            })),
            (e.arrowSmallLeft = new e('arrow-small-left', {
              character: '\\ea9e',
            })),
            (e.arrowSmallRight = new e('arrow-small-right', {
              character: '\\ea9f',
            })),
            (e.arrowSmallUp = new e('arrow-small-up', { character: '\\eaa0' })),
            (e.arrowUp = new e('arrow-up', { character: '\\eaa1' })),
            (e.bell = new e('bell', { character: '\\eaa2' })),
            (e.bold = new e('bold', { character: '\\eaa3' })),
            (e.book = new e('book', { character: '\\eaa4' })),
            (e.bookmark = new e('bookmark', { character: '\\eaa5' })),
            (e.debugBreakpointConditionalUnverified = new e(
              'debug-breakpoint-conditional-unverified',
              { character: '\\eaa6' }
            )),
            (e.debugBreakpointConditional = new e(
              'debug-breakpoint-conditional',
              { character: '\\eaa7' }
            )),
            (e.debugBreakpointConditionalDisabled = new e(
              'debug-breakpoint-conditional-disabled',
              { character: '\\eaa7' }
            )),
            (e.debugBreakpointDataUnverified = new e(
              'debug-breakpoint-data-unverified',
              { character: '\\eaa8' }
            )),
            (e.debugBreakpointData = new e('debug-breakpoint-data', {
              character: '\\eaa9',
            })),
            (e.debugBreakpointDataDisabled = new e(
              'debug-breakpoint-data-disabled',
              { character: '\\eaa9' }
            )),
            (e.debugBreakpointLogUnverified = new e(
              'debug-breakpoint-log-unverified',
              { character: '\\eaaa' }
            )),
            (e.debugBreakpointLog = new e('debug-breakpoint-log', {
              character: '\\eaab',
            })),
            (e.debugBreakpointLogDisabled = new e(
              'debug-breakpoint-log-disabled',
              { character: '\\eaab' }
            )),
            (e.briefcase = new e('briefcase', { character: '\\eaac' })),
            (e.broadcast = new e('broadcast', { character: '\\eaad' })),
            (e.browser = new e('browser', { character: '\\eaae' })),
            (e.bug = new e('bug', { character: '\\eaaf' })),
            (e.calendar = new e('calendar', { character: '\\eab0' })),
            (e.caseSensitive = new e('case-sensitive', {
              character: '\\eab1',
            })),
            (e.check = new e('check', { character: '\\eab2' })),
            (e.checklist = new e('checklist', { character: '\\eab3' })),
            (e.chevronDown = new e('chevron-down', { character: '\\eab4' })),
            (e.chevronLeft = new e('chevron-left', { character: '\\eab5' })),
            (e.chevronRight = new e('chevron-right', { character: '\\eab6' })),
            (e.chevronUp = new e('chevron-up', { character: '\\eab7' })),
            (e.chromeClose = new e('chrome-close', { character: '\\eab8' })),
            (e.chromeMaximize = new e('chrome-maximize', {
              character: '\\eab9',
            })),
            (e.chromeMinimize = new e('chrome-minimize', {
              character: '\\eaba',
            })),
            (e.chromeRestore = new e('chrome-restore', {
              character: '\\eabb',
            })),
            (e.circleOutline = new e('circle-outline', {
              character: '\\eabc',
            })),
            (e.debugBreakpointUnverified = new e(
              'debug-breakpoint-unverified',
              { character: '\\eabc' }
            )),
            (e.circleSlash = new e('circle-slash', { character: '\\eabd' })),
            (e.circuitBoard = new e('circuit-board', { character: '\\eabe' })),
            (e.clearAll = new e('clear-all', { character: '\\eabf' })),
            (e.clippy = new e('clippy', { character: '\\eac0' })),
            (e.closeAll = new e('close-all', { character: '\\eac1' })),
            (e.cloudDownload = new e('cloud-download', {
              character: '\\eac2',
            })),
            (e.cloudUpload = new e('cloud-upload', { character: '\\eac3' })),
            (e.code = new e('code', { character: '\\eac4' })),
            (e.collapseAll = new e('collapse-all', { character: '\\eac5' })),
            (e.colorMode = new e('color-mode', { character: '\\eac6' })),
            (e.commentDiscussion = new e('comment-discussion', {
              character: '\\eac7',
            })),
            (e.compareChanges = new e('compare-changes', {
              character: '\\eafd',
            })),
            (e.creditCard = new e('credit-card', { character: '\\eac9' })),
            (e.dash = new e('dash', { character: '\\eacc' })),
            (e.dashboard = new e('dashboard', { character: '\\eacd' })),
            (e.database = new e('database', { character: '\\eace' })),
            (e.debugContinue = new e('debug-continue', {
              character: '\\eacf',
            })),
            (e.debugDisconnect = new e('debug-disconnect', {
              character: '\\ead0',
            })),
            (e.debugPause = new e('debug-pause', { character: '\\ead1' })),
            (e.debugRestart = new e('debug-restart', { character: '\\ead2' })),
            (e.debugStart = new e('debug-start', { character: '\\ead3' })),
            (e.debugStepInto = new e('debug-step-into', {
              character: '\\ead4',
            })),
            (e.debugStepOut = new e('debug-step-out', { character: '\\ead5' })),
            (e.debugStepOver = new e('debug-step-over', {
              character: '\\ead6',
            })),
            (e.debugStop = new e('debug-stop', { character: '\\ead7' })),
            (e.debug = new e('debug', { character: '\\ead8' })),
            (e.deviceCameraVideo = new e('device-camera-video', {
              character: '\\ead9',
            })),
            (e.deviceCamera = new e('device-camera', { character: '\\eada' })),
            (e.deviceMobile = new e('device-mobile', { character: '\\eadb' })),
            (e.diffAdded = new e('diff-added', { character: '\\eadc' })),
            (e.diffIgnored = new e('diff-ignored', { character: '\\eadd' })),
            (e.diffModified = new e('diff-modified', { character: '\\eade' })),
            (e.diffRemoved = new e('diff-removed', { character: '\\eadf' })),
            (e.diffRenamed = new e('diff-renamed', { character: '\\eae0' })),
            (e.diff = new e('diff', { character: '\\eae1' })),
            (e.discard = new e('discard', { character: '\\eae2' })),
            (e.editorLayout = new e('editor-layout', { character: '\\eae3' })),
            (e.emptyWindow = new e('empty-window', { character: '\\eae4' })),
            (e.exclude = new e('exclude', { character: '\\eae5' })),
            (e.extensions = new e('extensions', { character: '\\eae6' })),
            (e.eyeClosed = new e('eye-closed', { character: '\\eae7' })),
            (e.fileBinary = new e('file-binary', { character: '\\eae8' })),
            (e.fileCode = new e('file-code', { character: '\\eae9' })),
            (e.fileMedia = new e('file-media', { character: '\\eaea' })),
            (e.filePdf = new e('file-pdf', { character: '\\eaeb' })),
            (e.fileSubmodule = new e('file-submodule', {
              character: '\\eaec',
            })),
            (e.fileSymlinkDirectory = new e('file-symlink-directory', {
              character: '\\eaed',
            })),
            (e.fileSymlinkFile = new e('file-symlink-file', {
              character: '\\eaee',
            })),
            (e.fileZip = new e('file-zip', { character: '\\eaef' })),
            (e.files = new e('files', { character: '\\eaf0' })),
            (e.filter = new e('filter', { character: '\\eaf1' })),
            (e.flame = new e('flame', { character: '\\eaf2' })),
            (e.foldDown = new e('fold-down', { character: '\\eaf3' })),
            (e.foldUp = new e('fold-up', { character: '\\eaf4' })),
            (e.fold = new e('fold', { character: '\\eaf5' })),
            (e.folderActive = new e('folder-active', { character: '\\eaf6' })),
            (e.folderOpened = new e('folder-opened', { character: '\\eaf7' })),
            (e.gear = new e('gear', { character: '\\eaf8' })),
            (e.gift = new e('gift', { character: '\\eaf9' })),
            (e.gistSecret = new e('gist-secret', { character: '\\eafa' })),
            (e.gist = new e('gist', { character: '\\eafb' })),
            (e.gitCommit = new e('git-commit', { character: '\\eafc' })),
            (e.gitCompare = new e('git-compare', { character: '\\eafd' })),
            (e.gitMerge = new e('git-merge', { character: '\\eafe' })),
            (e.githubAction = new e('github-action', { character: '\\eaff' })),
            (e.githubAlt = new e('github-alt', { character: '\\eb00' })),
            (e.globe = new e('globe', { character: '\\eb01' })),
            (e.grabber = new e('grabber', { character: '\\eb02' })),
            (e.graph = new e('graph', { character: '\\eb03' })),
            (e.gripper = new e('gripper', { character: '\\eb04' })),
            (e.heart = new e('heart', { character: '\\eb05' })),
            (e.home = new e('home', { character: '\\eb06' })),
            (e.horizontalRule = new e('horizontal-rule', {
              character: '\\eb07',
            })),
            (e.hubot = new e('hubot', { character: '\\eb08' })),
            (e.inbox = new e('inbox', { character: '\\eb09' })),
            (e.issueClosed = new e('issue-closed', { character: '\\eb0a' })),
            (e.issueReopened = new e('issue-reopened', {
              character: '\\eb0b',
            })),
            (e.issues = new e('issues', { character: '\\eb0c' })),
            (e.italic = new e('italic', { character: '\\eb0d' })),
            (e.jersey = new e('jersey', { character: '\\eb0e' })),
            (e.json = new e('json', { character: '\\eb0f' })),
            (e.kebabVertical = new e('kebab-vertical', {
              character: '\\eb10',
            })),
            (e.key = new e('key', { character: '\\eb11' })),
            (e.law = new e('law', { character: '\\eb12' })),
            (e.lightbulbAutofix = new e('lightbulb-autofix', {
              character: '\\eb13',
            })),
            (e.linkExternal = new e('link-external', { character: '\\eb14' })),
            (e.link = new e('link', { character: '\\eb15' })),
            (e.listOrdered = new e('list-ordered', { character: '\\eb16' })),
            (e.listUnordered = new e('list-unordered', {
              character: '\\eb17',
            })),
            (e.liveShare = new e('live-share', { character: '\\eb18' })),
            (e.loading = new e('loading', { character: '\\eb19' })),
            (e.location = new e('location', { character: '\\eb1a' })),
            (e.mailRead = new e('mail-read', { character: '\\eb1b' })),
            (e.mail = new e('mail', { character: '\\eb1c' })),
            (e.markdown = new e('markdown', { character: '\\eb1d' })),
            (e.megaphone = new e('megaphone', { character: '\\eb1e' })),
            (e.mention = new e('mention', { character: '\\eb1f' })),
            (e.milestone = new e('milestone', { character: '\\eb20' })),
            (e.mortarBoard = new e('mortar-board', { character: '\\eb21' })),
            (e.move = new e('move', { character: '\\eb22' })),
            (e.multipleWindows = new e('multiple-windows', {
              character: '\\eb23',
            })),
            (e.mute = new e('mute', { character: '\\eb24' })),
            (e.noNewline = new e('no-newline', { character: '\\eb25' })),
            (e.note = new e('note', { character: '\\eb26' })),
            (e.octoface = new e('octoface', { character: '\\eb27' })),
            (e.openPreview = new e('open-preview', { character: '\\eb28' })),
            (e.package_ = new e('package', { character: '\\eb29' })),
            (e.paintcan = new e('paintcan', { character: '\\eb2a' })),
            (e.pin = new e('pin', { character: '\\eb2b' })),
            (e.play = new e('play', { character: '\\eb2c' })),
            (e.run = new e('run', { character: '\\eb2c' })),
            (e.plug = new e('plug', { character: '\\eb2d' })),
            (e.preserveCase = new e('preserve-case', { character: '\\eb2e' })),
            (e.preview = new e('preview', { character: '\\eb2f' })),
            (e.project = new e('project', { character: '\\eb30' })),
            (e.pulse = new e('pulse', { character: '\\eb31' })),
            (e.question = new e('question', { character: '\\eb32' })),
            (e.quote = new e('quote', { character: '\\eb33' })),
            (e.radioTower = new e('radio-tower', { character: '\\eb34' })),
            (e.reactions = new e('reactions', { character: '\\eb35' })),
            (e.references = new e('references', { character: '\\eb36' })),
            (e.refresh = new e('refresh', { character: '\\eb37' })),
            (e.regex = new e('regex', { character: '\\eb38' })),
            (e.remoteExplorer = new e('remote-explorer', {
              character: '\\eb39',
            })),
            (e.remote = new e('remote', { character: '\\eb3a' })),
            (e.remove = new e('remove', { character: '\\eb3b' })),
            (e.replaceAll = new e('replace-all', { character: '\\eb3c' })),
            (e.replace = new e('replace', { character: '\\eb3d' })),
            (e.repoClone = new e('repo-clone', { character: '\\eb3e' })),
            (e.repoForcePush = new e('repo-force-push', {
              character: '\\eb3f',
            })),
            (e.repoPull = new e('repo-pull', { character: '\\eb40' })),
            (e.repoPush = new e('repo-push', { character: '\\eb41' })),
            (e.report = new e('report', { character: '\\eb42' })),
            (e.requestChanges = new e('request-changes', {
              character: '\\eb43',
            })),
            (e.rocket = new e('rocket', { character: '\\eb44' })),
            (e.rootFolderOpened = new e('root-folder-opened', {
              character: '\\eb45',
            })),
            (e.rootFolder = new e('root-folder', { character: '\\eb46' })),
            (e.rss = new e('rss', { character: '\\eb47' })),
            (e.ruby = new e('ruby', { character: '\\eb48' })),
            (e.saveAll = new e('save-all', { character: '\\eb49' })),
            (e.saveAs = new e('save-as', { character: '\\eb4a' })),
            (e.save = new e('save', { character: '\\eb4b' })),
            (e.screenFull = new e('screen-full', { character: '\\eb4c' })),
            (e.screenNormal = new e('screen-normal', { character: '\\eb4d' })),
            (e.searchStop = new e('search-stop', { character: '\\eb4e' })),
            (e.server = new e('server', { character: '\\eb50' })),
            (e.settingsGear = new e('settings-gear', { character: '\\eb51' })),
            (e.settings = new e('settings', { character: '\\eb52' })),
            (e.shield = new e('shield', { character: '\\eb53' })),
            (e.smiley = new e('smiley', { character: '\\eb54' })),
            (e.sortPrecedence = new e('sort-precedence', {
              character: '\\eb55',
            })),
            (e.splitHorizontal = new e('split-horizontal', {
              character: '\\eb56',
            })),
            (e.splitVertical = new e('split-vertical', {
              character: '\\eb57',
            })),
            (e.squirrel = new e('squirrel', { character: '\\eb58' })),
            (e.starFull = new e('star-full', { character: '\\eb59' })),
            (e.starHalf = new e('star-half', { character: '\\eb5a' })),
            (e.symbolClass = new e('symbol-class', { character: '\\eb5b' })),
            (e.symbolColor = new e('symbol-color', { character: '\\eb5c' })),
            (e.symbolConstant = new e('symbol-constant', {
              character: '\\eb5d',
            })),
            (e.symbolEnumMember = new e('symbol-enum-member', {
              character: '\\eb5e',
            })),
            (e.symbolField = new e('symbol-field', { character: '\\eb5f' })),
            (e.symbolFile = new e('symbol-file', { character: '\\eb60' })),
            (e.symbolInterface = new e('symbol-interface', {
              character: '\\eb61',
            })),
            (e.symbolKeyword = new e('symbol-keyword', {
              character: '\\eb62',
            })),
            (e.symbolMisc = new e('symbol-misc', { character: '\\eb63' })),
            (e.symbolOperator = new e('symbol-operator', {
              character: '\\eb64',
            })),
            (e.symbolProperty = new e('symbol-property', {
              character: '\\eb65',
            })),
            (e.wrench = new e('wrench', { character: '\\eb65' })),
            (e.wrenchSubaction = new e('wrench-subaction', {
              character: '\\eb65',
            })),
            (e.symbolSnippet = new e('symbol-snippet', {
              character: '\\eb66',
            })),
            (e.tasklist = new e('tasklist', { character: '\\eb67' })),
            (e.telescope = new e('telescope', { character: '\\eb68' })),
            (e.textSize = new e('text-size', { character: '\\eb69' })),
            (e.threeBars = new e('three-bars', { character: '\\eb6a' })),
            (e.thumbsdown = new e('thumbsdown', { character: '\\eb6b' })),
            (e.thumbsup = new e('thumbsup', { character: '\\eb6c' })),
            (e.tools = new e('tools', { character: '\\eb6d' })),
            (e.triangleDown = new e('triangle-down', { character: '\\eb6e' })),
            (e.triangleLeft = new e('triangle-left', { character: '\\eb6f' })),
            (e.triangleRight = new e('triangle-right', {
              character: '\\eb70',
            })),
            (e.triangleUp = new e('triangle-up', { character: '\\eb71' })),
            (e.twitter = new e('twitter', { character: '\\eb72' })),
            (e.unfold = new e('unfold', { character: '\\eb73' })),
            (e.unlock = new e('unlock', { character: '\\eb74' })),
            (e.unmute = new e('unmute', { character: '\\eb75' })),
            (e.unverified = new e('unverified', { character: '\\eb76' })),
            (e.verified = new e('verified', { character: '\\eb77' })),
            (e.versions = new e('versions', { character: '\\eb78' })),
            (e.vmActive = new e('vm-active', { character: '\\eb79' })),
            (e.vmOutline = new e('vm-outline', { character: '\\eb7a' })),
            (e.vmRunning = new e('vm-running', { character: '\\eb7b' })),
            (e.watch = new e('watch', { character: '\\eb7c' })),
            (e.whitespace = new e('whitespace', { character: '\\eb7d' })),
            (e.wholeWord = new e('whole-word', { character: '\\eb7e' })),
            (e.window = new e('window', { character: '\\eb7f' })),
            (e.wordWrap = new e('word-wrap', { character: '\\eb80' })),
            (e.zoomIn = new e('zoom-in', { character: '\\eb81' })),
            (e.zoomOut = new e('zoom-out', { character: '\\eb82' })),
            (e.listFilter = new e('list-filter', { character: '\\eb83' })),
            (e.listFlat = new e('list-flat', { character: '\\eb84' })),
            (e.listSelection = new e('list-selection', {
              character: '\\eb85',
            })),
            (e.selection = new e('selection', { character: '\\eb85' })),
            (e.listTree = new e('list-tree', { character: '\\eb86' })),
            (e.debugBreakpointFunctionUnverified = new e(
              'debug-breakpoint-function-unverified',
              { character: '\\eb87' }
            )),
            (e.debugBreakpointFunction = new e('debug-breakpoint-function', {
              character: '\\eb88',
            })),
            (e.debugBreakpointFunctionDisabled = new e(
              'debug-breakpoint-function-disabled',
              { character: '\\eb88' }
            )),
            (e.debugStackframeActive = new e('debug-stackframe-active', {
              character: '\\eb89',
            })),
            (e.debugStackframeDot = new e('debug-stackframe-dot', {
              character: '\\eb8a',
            })),
            (e.debugStackframe = new e('debug-stackframe', {
              character: '\\eb8b',
            })),
            (e.debugStackframeFocused = new e('debug-stackframe-focused', {
              character: '\\eb8b',
            })),
            (e.debugBreakpointUnsupported = new e(
              'debug-breakpoint-unsupported',
              { character: '\\eb8c' }
            )),
            (e.symbolString = new e('symbol-string', { character: '\\eb8d' })),
            (e.debugReverseContinue = new e('debug-reverse-continue', {
              character: '\\eb8e',
            })),
            (e.debugStepBack = new e('debug-step-back', {
              character: '\\eb8f',
            })),
            (e.debugRestartFrame = new e('debug-restart-frame', {
              character: '\\eb90',
            })),
            (e.callIncoming = new e('call-incoming', { character: '\\eb92' })),
            (e.callOutgoing = new e('call-outgoing', { character: '\\eb93' })),
            (e.menu = new e('menu', { character: '\\eb94' })),
            (e.expandAll = new e('expand-all', { character: '\\eb95' })),
            (e.feedback = new e('feedback', { character: '\\eb96' })),
            (e.groupByRefType = new e('group-by-ref-type', {
              character: '\\eb97',
            })),
            (e.ungroupByRefType = new e('ungroup-by-ref-type', {
              character: '\\eb98',
            })),
            (e.account = new e('account', { character: '\\eb99' })),
            (e.bellDot = new e('bell-dot', { character: '\\eb9a' })),
            (e.debugConsole = new e('debug-console', { character: '\\eb9b' })),
            (e.library = new e('library', { character: '\\eb9c' })),
            (e.output = new e('output', { character: '\\eb9d' })),
            (e.runAll = new e('run-all', { character: '\\eb9e' })),
            (e.syncIgnored = new e('sync-ignored', { character: '\\eb9f' })),
            (e.pinned = new e('pinned', { character: '\\eba0' })),
            (e.githubInverted = new e('github-inverted', {
              character: '\\eba1',
            })),
            (e.debugAlt = new e('debug-alt', { character: '\\eb91' })),
            (e.serverProcess = new e('server-process', {
              character: '\\eba2',
            })),
            (e.serverEnvironment = new e('server-environment', {
              character: '\\eba3',
            })),
            (e.pass = new e('pass', { character: '\\eba4' })),
            (e.stopCircle = new e('stop-circle', { character: '\\eba5' })),
            (e.playCircle = new e('play-circle', { character: '\\eba6' })),
            (e.record = new e('record', { character: '\\eba7' })),
            (e.debugAltSmall = new e('debug-alt-small', {
              character: '\\eba8',
            })),
            (e.vmConnect = new e('vm-connect', { character: '\\eba9' })),
            (e.cloud = new e('cloud', { character: '\\ebaa' })),
            (e.merge = new e('merge', { character: '\\ebab' }));
        })(l || (l = {}));
        const c = /(\\)?\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)/gi;
        function d(e) {
          return e.replace(c, (e, t) => (t ? e : `\\${e}`));
        }
        const h = /\\\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)/gi;
        function u(e) {
          return e.replace(h, (e) => `\\${e}`);
        }
        const g = /(\\)?\$\((([a-z0-9\-]+?)(?:~([a-z0-9\-]*?))?)\)/gi;
        function f(e) {
          return e.replace(g, (e, t, i, n, r) =>
            t
              ? `$(${i})`
              : `<span class="codicon codicon-${n}${
                  r ? ` codicon-animation-${r}` : ''
                }"></span>`
          );
        }
        const p = /(\s)?(\\)?\$\([a-z0-9\-]+?(?:~[a-z0-9\-]*?)?\)(\s)?/gi;
        function m(e) {
          return -1 === e.indexOf(n.Ln)
            ? e
            : e.replace(p, (e, t, i, n) => (i ? e : t || n || ''));
        }
      },
      6626: (e, t, i) => {
        'use strict';
        i.d(t, { E: () => r, r: () => s });
        const n = Object.prototype.hasOwnProperty;
        function r(e, t) {
          for (let i in e)
            if (
              n.call(e, i) &&
              !1 ===
                t({ key: i, value: e[i] }, function () {
                  delete e[i];
                })
            )
              return;
        }
        class s {
          constructor() {
            this.map = new Map();
          }
          add(e, t) {
            let i = this.map.get(e);
            i || ((i = new Set()), this.map.set(e, i)), i.add(t);
          }
          delete(e, t) {
            const i = this.map.get(e);
            i && (i.delete(t), 0 === i.size && this.map.delete(e));
          }
          forEach(e, t) {
            const i = this.map.get(e);
            i && i.forEach(t);
          }
        }
      },
      41264: (e, t, i) => {
        'use strict';
        function n(e, t) {
          const i = Math.pow(10, t);
          return Math.round(e * i) / i;
        }
        i.d(t, { VS: () => r, tx: () => o, Il: () => a });
        class r {
          constructor(e, t, i, r = 1) {
            (this.r = 0 | Math.min(255, Math.max(0, e))),
              (this.g = 0 | Math.min(255, Math.max(0, t))),
              (this.b = 0 | Math.min(255, Math.max(0, i))),
              (this.a = n(Math.max(Math.min(1, r), 0), 3));
          }
          static equals(e, t) {
            return e.r === t.r && e.g === t.g && e.b === t.b && e.a === t.a;
          }
        }
        class s {
          constructor(e, t, i, r) {
            (this.h = 0 | Math.max(Math.min(360, e), 0)),
              (this.s = n(Math.max(Math.min(1, t), 0), 3)),
              (this.l = n(Math.max(Math.min(1, i), 0), 3)),
              (this.a = n(Math.max(Math.min(1, r), 0), 3));
          }
          static equals(e, t) {
            return e.h === t.h && e.s === t.s && e.l === t.l && e.a === t.a;
          }
          static fromRGBA(e) {
            const t = e.r / 255,
              i = e.g / 255,
              n = e.b / 255,
              r = e.a,
              o = Math.max(t, i, n),
              a = Math.min(t, i, n);
            let l = 0,
              c = 0;
            const d = (a + o) / 2,
              h = o - a;
            if (h > 0) {
              switch (
                ((c = Math.min(d <= 0.5 ? h / (2 * d) : h / (2 - 2 * d), 1)), o)
              ) {
                case t:
                  l = (i - n) / h + (i < n ? 6 : 0);
                  break;
                case i:
                  l = (n - t) / h + 2;
                  break;
                case n:
                  l = (t - i) / h + 4;
              }
              (l *= 60), (l = Math.round(l));
            }
            return new s(l, c, d, r);
          }
          static _hue2rgb(e, t, i) {
            return (
              i < 0 && (i += 1),
              i > 1 && (i -= 1),
              i < 1 / 6
                ? e + 6 * (t - e) * i
                : i < 0.5
                ? t
                : i < 2 / 3
                ? e + (t - e) * (2 / 3 - i) * 6
                : e
            );
          }
          static toRGBA(e) {
            const t = e.h / 360,
              { s: i, l: n, a: o } = e;
            let a, l, c;
            if (0 === i) a = l = c = n;
            else {
              const e = n < 0.5 ? n * (1 + i) : n + i - n * i,
                r = 2 * n - e;
              (a = s._hue2rgb(r, e, t + 1 / 3)),
                (l = s._hue2rgb(r, e, t)),
                (c = s._hue2rgb(r, e, t - 1 / 3));
            }
            return new r(
              Math.round(255 * a),
              Math.round(255 * l),
              Math.round(255 * c),
              o
            );
          }
        }
        class o {
          constructor(e, t, i, r) {
            (this.h = 0 | Math.max(Math.min(360, e), 0)),
              (this.s = n(Math.max(Math.min(1, t), 0), 3)),
              (this.v = n(Math.max(Math.min(1, i), 0), 3)),
              (this.a = n(Math.max(Math.min(1, r), 0), 3));
          }
          static equals(e, t) {
            return e.h === t.h && e.s === t.s && e.v === t.v && e.a === t.a;
          }
          static fromRGBA(e) {
            const t = e.r / 255,
              i = e.g / 255,
              n = e.b / 255,
              r = Math.max(t, i, n),
              s = r - Math.min(t, i, n),
              a = 0 === r ? 0 : s / r;
            let l;
            return (
              (l =
                0 === s
                  ? 0
                  : r === t
                  ? ((((i - n) / s) % 6) + 6) % 6
                  : r === i
                  ? (n - t) / s + 2
                  : (t - i) / s + 4),
              new o(Math.round(60 * l), a, r, e.a)
            );
          }
          static toRGBA(e) {
            const { h: t, s: i, v: n, a: s } = e,
              o = n * i,
              a = o * (1 - Math.abs(((t / 60) % 2) - 1)),
              l = n - o;
            let [c, d, h] = [0, 0, 0];
            return (
              t < 60
                ? ((c = o), (d = a))
                : t < 120
                ? ((c = a), (d = o))
                : t < 180
                ? ((d = o), (h = a))
                : t < 240
                ? ((d = a), (h = o))
                : t < 300
                ? ((c = a), (h = o))
                : t < 360 && ((c = o), (h = a)),
              (c = Math.round(255 * (c + l))),
              (d = Math.round(255 * (d + l))),
              (h = Math.round(255 * (h + l))),
              new r(c, d, h, s)
            );
          }
        }
        class a {
          constructor(e) {
            if (!e) throw new Error('Color needs a value');
            if (e instanceof r) this.rgba = e;
            else if (e instanceof s)
              (this._hsla = e), (this.rgba = s.toRGBA(e));
            else {
              if (!(e instanceof o))
                throw new Error('Invalid color ctor argument');
              (this._hsva = e), (this.rgba = o.toRGBA(e));
            }
          }
          static fromHex(e) {
            return a.Format.CSS.parseHex(e) || a.red;
          }
          get hsla() {
            return this._hsla ? this._hsla : s.fromRGBA(this.rgba);
          }
          get hsva() {
            return this._hsva ? this._hsva : o.fromRGBA(this.rgba);
          }
          equals(e) {
            return (
              !!e &&
              r.equals(this.rgba, e.rgba) &&
              s.equals(this.hsla, e.hsla) &&
              o.equals(this.hsva, e.hsva)
            );
          }
          getRelativeLuminance() {
            return n(
              0.2126 * a._relativeLuminanceForComponent(this.rgba.r) +
                0.7152 * a._relativeLuminanceForComponent(this.rgba.g) +
                0.0722 * a._relativeLuminanceForComponent(this.rgba.b),
              4
            );
          }
          static _relativeLuminanceForComponent(e) {
            const t = e / 255;
            return t <= 0.03928
              ? t / 12.92
              : Math.pow((t + 0.055) / 1.055, 2.4);
          }
          isLighter() {
            return (
              (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) /
                1e3 >=
              128
            );
          }
          isLighterThan(e) {
            return this.getRelativeLuminance() > e.getRelativeLuminance();
          }
          isDarkerThan(e) {
            return this.getRelativeLuminance() < e.getRelativeLuminance();
          }
          lighten(e) {
            return new a(
              new s(
                this.hsla.h,
                this.hsla.s,
                this.hsla.l + this.hsla.l * e,
                this.hsla.a
              )
            );
          }
          darken(e) {
            return new a(
              new s(
                this.hsla.h,
                this.hsla.s,
                this.hsla.l - this.hsla.l * e,
                this.hsla.a
              )
            );
          }
          transparent(e) {
            const { r: t, g: i, b: n, a: s } = this.rgba;
            return new a(new r(t, i, n, s * e));
          }
          isTransparent() {
            return 0 === this.rgba.a;
          }
          isOpaque() {
            return 1 === this.rgba.a;
          }
          opposite() {
            return new a(
              new r(
                255 - this.rgba.r,
                255 - this.rgba.g,
                255 - this.rgba.b,
                this.rgba.a
              )
            );
          }
          toString() {
            return '' + a.Format.CSS.format(this);
          }
          static getLighterColor(e, t, i) {
            if (e.isLighterThan(t)) return e;
            i = i || 0.5;
            const n = e.getRelativeLuminance(),
              r = t.getRelativeLuminance();
            return (i = (i * (r - n)) / r), e.lighten(i);
          }
          static getDarkerColor(e, t, i) {
            if (e.isDarkerThan(t)) return e;
            i = i || 0.5;
            const n = e.getRelativeLuminance();
            return (i = (i * (n - t.getRelativeLuminance())) / n), e.darken(i);
          }
        }
        (a.white = new a(new r(255, 255, 255, 1))),
          (a.black = new a(new r(0, 0, 0, 1))),
          (a.red = new a(new r(255, 0, 0, 1))),
          (a.blue = new a(new r(0, 0, 255, 1))),
          (a.cyan = new a(new r(0, 255, 255, 1))),
          (a.lightgrey = new a(new r(211, 211, 211, 1))),
          (a.transparent = new a(new r(0, 0, 0, 0))),
          (function (e) {
            let t;
            !(function (t) {
              let i;
              !(function (t) {
                function i(e) {
                  const t = e.toString(16);
                  return 2 !== t.length ? '0' + t : t;
                }
                function n(e) {
                  switch (e) {
                    case 48:
                      return 0;
                    case 49:
                      return 1;
                    case 50:
                      return 2;
                    case 51:
                      return 3;
                    case 52:
                      return 4;
                    case 53:
                      return 5;
                    case 54:
                      return 6;
                    case 55:
                      return 7;
                    case 56:
                      return 8;
                    case 57:
                      return 9;
                    case 97:
                    case 65:
                      return 10;
                    case 98:
                    case 66:
                      return 11;
                    case 99:
                    case 67:
                      return 12;
                    case 100:
                    case 68:
                      return 13;
                    case 101:
                    case 69:
                      return 14;
                    case 102:
                    case 70:
                      return 15;
                  }
                  return 0;
                }
                (t.formatRGB = function (t) {
                  return 1 === t.rgba.a
                    ? `rgb(${t.rgba.r}, ${t.rgba.g}, ${t.rgba.b})`
                    : e.Format.CSS.formatRGBA(t);
                }),
                  (t.formatRGBA = function (e) {
                    return `rgba(${e.rgba.r}, ${e.rgba.g}, ${
                      e.rgba.b
                    }, ${+e.rgba.a.toFixed(2)})`;
                  }),
                  (t.formatHSL = function (t) {
                    return 1 === t.hsla.a
                      ? `hsl(${t.hsla.h}, ${(100 * t.hsla.s).toFixed(2)}%, ${(
                          100 * t.hsla.l
                        ).toFixed(2)}%)`
                      : e.Format.CSS.formatHSLA(t);
                  }),
                  (t.formatHSLA = function (e) {
                    return `hsla(${e.hsla.h}, ${(100 * e.hsla.s).toFixed(
                      2
                    )}%, ${(100 * e.hsla.l).toFixed(2)}%, ${e.hsla.a.toFixed(
                      2
                    )})`;
                  }),
                  (t.formatHex = function (e) {
                    return `#${i(e.rgba.r)}${i(e.rgba.g)}${i(e.rgba.b)}`;
                  }),
                  (t.formatHexA = function (t, n = !1) {
                    return n && 1 === t.rgba.a
                      ? e.Format.CSS.formatHex(t)
                      : `#${i(t.rgba.r)}${i(t.rgba.g)}${i(t.rgba.b)}${i(
                          Math.round(255 * t.rgba.a)
                        )}`;
                  }),
                  (t.format = function (t) {
                    return t.isOpaque()
                      ? e.Format.CSS.formatHex(t)
                      : e.Format.CSS.formatRGBA(t);
                  }),
                  (t.parseHex = function (t) {
                    const i = t.length;
                    if (0 === i) return null;
                    if (35 !== t.charCodeAt(0)) return null;
                    if (7 === i) {
                      const i = 16 * n(t.charCodeAt(1)) + n(t.charCodeAt(2)),
                        s = 16 * n(t.charCodeAt(3)) + n(t.charCodeAt(4)),
                        o = 16 * n(t.charCodeAt(5)) + n(t.charCodeAt(6));
                      return new e(new r(i, s, o, 1));
                    }
                    if (9 === i) {
                      const i = 16 * n(t.charCodeAt(1)) + n(t.charCodeAt(2)),
                        s = 16 * n(t.charCodeAt(3)) + n(t.charCodeAt(4)),
                        o = 16 * n(t.charCodeAt(5)) + n(t.charCodeAt(6)),
                        a = 16 * n(t.charCodeAt(7)) + n(t.charCodeAt(8));
                      return new e(new r(i, s, o, a / 255));
                    }
                    if (4 === i) {
                      const i = n(t.charCodeAt(1)),
                        s = n(t.charCodeAt(2)),
                        o = n(t.charCodeAt(3));
                      return new e(new r(16 * i + i, 16 * s + s, 16 * o + o));
                    }
                    if (5 === i) {
                      const i = n(t.charCodeAt(1)),
                        s = n(t.charCodeAt(2)),
                        o = n(t.charCodeAt(3)),
                        a = n(t.charCodeAt(4));
                      return new e(
                        new r(
                          16 * i + i,
                          16 * s + s,
                          16 * o + o,
                          (16 * a + a) / 255
                        )
                      );
                    }
                    return null;
                  });
              })((i = t.CSS || (t.CSS = {})));
            })((t = e.Format || (e.Format = {})));
          })(a || (a = {}));
      },
      49898: (e, t, i) => {
        'use strict';
        i.d(t, { H: () => r });
        let n = 0;
        function r(e, t, i) {
          return (function () {
            const e = '$memoize' + n++;
            let t;
            const i = function (i, n, r) {
              let s = null,
                o = null;
              if (
                ('function' == typeof r.value
                  ? ((s = 'value'),
                    (o = r.value),
                    0 !== o.length &&
                      console.warn(
                        'Memoize should only be used in functions with zero parameters'
                      ))
                  : 'function' == typeof r.get && ((s = 'get'), (o = r.get)),
                !o)
              )
                throw new Error('not supported');
              const a = `${e}:${n}`;
              r[s] = function (...e) {
                return (
                  (t = this),
                  this.hasOwnProperty(a) ||
                    Object.defineProperty(this, a, {
                      configurable: !0,
                      enumerable: !1,
                      writable: !0,
                      value: o.apply(this, e),
                    }),
                  this[a]
                );
              };
            };
            return (
              (i.clear = () => {
                void 0 !== t &&
                  Object.getOwnPropertyNames(t).forEach((i) => {
                    0 === i.indexOf(e) && delete t[i];
                  });
              }),
              i
            );
          })()(e, t, i);
        }
      },
      17301: (e, t, i) => {
        'use strict';
        i.d(t, {
          dL: () => r,
          Cp: () => s,
          ri: () => o,
          VV: () => l,
          F0: () => c,
          b1: () => d,
          L6: () => h,
        });
        const n = new (class {
          constructor() {
            (this.listeners = []),
              (this.unexpectedErrorHandler = function (e) {
                setTimeout(() => {
                  if (e.stack) throw new Error(e.message + '\n\n' + e.stack);
                  throw e;
                }, 0);
              });
          }
          emit(e) {
            this.listeners.forEach((t) => {
              t(e);
            });
          }
          onUnexpectedError(e) {
            this.unexpectedErrorHandler(e), this.emit(e);
          }
          onUnexpectedExternalError(e) {
            this.unexpectedErrorHandler(e);
          }
        })();
        function r(e) {
          l(e) || n.onUnexpectedError(e);
        }
        function s(e) {
          l(e) || n.onUnexpectedExternalError(e);
        }
        function o(e) {
          if (e instanceof Error) {
            let { name: t, message: i } = e;
            return {
              $isError: !0,
              name: t,
              message: i,
              stack: e.stacktrace || e.stack,
            };
          }
          return e;
        }
        const a = 'Canceled';
        function l(e) {
          return e instanceof Error && e.name === a && e.message === a;
        }
        function c() {
          const e = new Error(a);
          return (e.name = e.message), e;
        }
        function d(e) {
          return e
            ? new Error(`Illegal argument: ${e}`)
            : new Error('Illegal argument');
        }
        function h(e) {
          return e
            ? new Error(`Illegal state: ${e}`)
            : new Error('Illegal state');
        }
      },
      4669: (e, t, i) => {
        'use strict';
        i.d(t, {
          ju: () => n,
          Q5: () => a,
          K3: () => l,
          E7: () => c,
          ZD: () => d,
        });
        var n,
          r = i(17301),
          s = i(5976),
          o = i(91741);
        !(function (e) {
          function t(e) {
            return (t, i = null, n) => {
              let r,
                s = !1;
              return (
                (r = e(
                  (e) => {
                    if (!s) return r ? r.dispose() : (s = !0), t.call(i, e);
                  },
                  null,
                  n
                )),
                s && r.dispose(),
                r
              );
            };
          }
          function i(e, t) {
            return l((i, n = null, r) => e((e) => i.call(n, t(e)), null, r));
          }
          function n(e, t) {
            return l((i, n = null, r) =>
              e(
                (e) => {
                  t(e), i.call(n, e);
                },
                null,
                r
              )
            );
          }
          function r(e, t) {
            return l((i, n = null, r) =>
              e((e) => t(e) && i.call(n, e), null, r)
            );
          }
          function o(e, t, n) {
            let r = n;
            return i(e, (e) => ((r = t(r, e)), r));
          }
          function l(e) {
            let t;
            const i = new a({
              onFirstListenerAdd() {
                t = e(i.fire, i);
              },
              onLastListenerRemove() {
                t.dispose();
              },
            });
            return i.event;
          }
          function c(e, t, i = 100, n = !1, r) {
            let s,
              o,
              l,
              c = 0;
            const d = new a({
              leakWarningThreshold: r,
              onFirstListenerAdd() {
                s = e((e) => {
                  c++,
                    (o = t(o, e)),
                    n && !l && (d.fire(o), (o = void 0)),
                    clearTimeout(l),
                    (l = setTimeout(() => {
                      const e = o;
                      (o = void 0),
                        (l = void 0),
                        (!n || c > 1) && d.fire(e),
                        (c = 0);
                    }, i));
                });
              },
              onLastListenerRemove() {
                s.dispose();
              },
            });
            return d.event;
          }
          function d(e) {
            let t,
              i = !0;
            return r(e, (e) => {
              const n = i || e !== t;
              return (i = !1), (t = e), n;
            });
          }
          (e.None = () => s.JT.None),
            (e.once = t),
            (e.map = i),
            (e.forEach = n),
            (e.filter = r),
            (e.signal = function (e) {
              return e;
            }),
            (e.any = function (...e) {
              return (t, i = null, n) =>
                (0, s.F8)(...e.map((e) => e((e) => t.call(i, e), null, n)));
            }),
            (e.reduce = o),
            (e.snapshot = l),
            (e.debounce = c),
            (e.stopwatch = function (e) {
              const n = new Date().getTime();
              return i(t(e), (e) => new Date().getTime() - n);
            }),
            (e.latch = d),
            (e.buffer = function (e, t = !1, i = []) {
              let n = i.slice(),
                r = e((e) => {
                  n ? n.push(e) : o.fire(e);
                });
              const s = () => {
                  n && n.forEach((e) => o.fire(e)), (n = null);
                },
                o = new a({
                  onFirstListenerAdd() {
                    r || (r = e((e) => o.fire(e)));
                  },
                  onFirstListenerDidAdd() {
                    n && (t ? setTimeout(s) : s());
                  },
                  onLastListenerRemove() {
                    r && r.dispose(), (r = null);
                  },
                });
              return o.event;
            });
          class h {
            constructor(e) {
              this.event = e;
            }
            map(e) {
              return new h(i(this.event, e));
            }
            forEach(e) {
              return new h(n(this.event, e));
            }
            filter(e) {
              return new h(r(this.event, e));
            }
            reduce(e, t) {
              return new h(o(this.event, e, t));
            }
            latch() {
              return new h(d(this.event));
            }
            debounce(e, t = 100, i = !1, n) {
              return new h(c(this.event, e, t, i, n));
            }
            on(e, t, i) {
              return this.event(e, t, i);
            }
            once(e, i, n) {
              return t(this.event)(e, i, n);
            }
          }
          (e.chain = function (e) {
            return new h(e);
          }),
            (e.fromNodeEventEmitter = function (e, t, i = (e) => e) {
              const n = (...e) => r.fire(i(...e)),
                r = new a({
                  onFirstListenerAdd: () => e.on(t, n),
                  onLastListenerRemove: () => e.removeListener(t, n),
                });
              return r.event;
            }),
            (e.fromDOMEventEmitter = function (e, t, i = (e) => e) {
              const n = (...e) => r.fire(i(...e)),
                r = new a({
                  onFirstListenerAdd: () => e.addEventListener(t, n),
                  onLastListenerRemove: () => e.removeEventListener(t, n),
                });
              return r.event;
            }),
            (e.fromPromise = function (e) {
              const t = new a();
              let i = !1;
              return (
                e
                  .then(void 0, () => null)
                  .then(() => {
                    i ? t.fire(void 0) : setTimeout(() => t.fire(void 0), 0);
                  }),
                (i = !0),
                t.event
              );
            }),
            (e.toPromise = function (e) {
              return new Promise((i) => t(e)(i));
            });
        })(n || (n = {}));
        class a {
          constructor(e) {
            (this._disposed = !1),
              (this._options = e),
              (this._leakageMon = void 0);
          }
          get event() {
            return (
              this._event ||
                (this._event = (e, t, i) => {
                  this._listeners || (this._listeners = new o.S());
                  const n = this._listeners.isEmpty();
                  n &&
                    this._options &&
                    this._options.onFirstListenerAdd &&
                    this._options.onFirstListenerAdd(this);
                  const r = this._listeners.push(t ? [e, t] : e);
                  let l, c;
                  return (
                    n &&
                      this._options &&
                      this._options.onFirstListenerDidAdd &&
                      this._options.onFirstListenerDidAdd(this),
                    this._options &&
                      this._options.onListenerDidAdd &&
                      this._options.onListenerDidAdd(this, e, t),
                    this._leakageMon &&
                      (l = this._leakageMon.check(this._listeners.size)),
                    (c = {
                      dispose: () => {
                        l && l(),
                          (c.dispose = a._noop),
                          !this._disposed &&
                            (r(),
                            this._options &&
                              this._options.onLastListenerRemove) &&
                            ((this._listeners && !this._listeners.isEmpty()) ||
                              this._options.onLastListenerRemove(this));
                      },
                    }),
                    i instanceof s.SL
                      ? i.add(c)
                      : Array.isArray(i) && i.push(c),
                    c
                  );
                }),
              this._event
            );
          }
          fire(e) {
            if (this._listeners) {
              this._deliveryQueue || (this._deliveryQueue = new o.S());
              for (let t of this._listeners) this._deliveryQueue.push([t, e]);
              for (; this._deliveryQueue.size > 0; ) {
                const [e, t] = this._deliveryQueue.shift();
                try {
                  'function' == typeof e
                    ? e.call(void 0, t)
                    : e[0].call(e[1], t);
                } catch (e) {
                  (0, r.dL)(e);
                }
              }
            }
          }
          dispose() {
            this._listeners && this._listeners.clear(),
              this._deliveryQueue && this._deliveryQueue.clear(),
              this._leakageMon && this._leakageMon.dispose(),
              (this._disposed = !0);
          }
        }
        a._noop = function () {};
        class l extends a {
          constructor(e) {
            super(e),
              (this._isPaused = 0),
              (this._eventQueue = new o.S()),
              (this._mergeFn = e && e.merge);
          }
          pause() {
            this._isPaused++;
          }
          resume() {
            if (0 !== this._isPaused && 0 == --this._isPaused)
              if (this._mergeFn) {
                const e = this._eventQueue.toArray();
                this._eventQueue.clear(), super.fire(this._mergeFn(e));
              } else
                for (; !this._isPaused && 0 !== this._eventQueue.size; )
                  super.fire(this._eventQueue.shift());
          }
          fire(e) {
            this._listeners &&
              (0 !== this._isPaused ? this._eventQueue.push(e) : super.fire(e));
          }
        }
        class c {
          constructor() {
            this.buffers = [];
          }
          wrapEvent(e) {
            return (t, i, n) =>
              e(
                (e) => {
                  const n = this.buffers[this.buffers.length - 1];
                  n ? n.push(() => t.call(i, e)) : t.call(i, e);
                },
                void 0,
                n
              );
          }
          bufferEvents(e) {
            const t = [];
            this.buffers.push(t);
            const i = e();
            return this.buffers.pop(), t.forEach((e) => e()), i;
          }
        }
        class d {
          constructor() {
            (this.listening = !1),
              (this.inputEvent = n.None),
              (this.inputEventListener = s.JT.None),
              (this.emitter = new a({
                onFirstListenerDidAdd: () => {
                  (this.listening = !0),
                    (this.inputEventListener = this.inputEvent(
                      this.emitter.fire,
                      this.emitter
                    ));
                },
                onLastListenerRemove: () => {
                  (this.listening = !1), this.inputEventListener.dispose();
                },
              })),
              (this.event = this.emitter.event);
          }
          set input(e) {
            (this.inputEvent = e),
              this.listening &&
                (this.inputEventListener.dispose(),
                (this.inputEventListener = e(this.emitter.fire, this.emitter)));
          }
          dispose() {
            this.inputEventListener.dispose(), this.emitter.dispose();
          }
        }
      },
      15527: (e, t, i) => {
        'use strict';
        i.d(t, { e: () => s, K: () => o });
        var n = i(97295),
          r = i(88721);
        function s(e) {
          return e.replace(/[\\/]/g, r.KR.sep);
        }
        function o(e, t, i, s = r.ir) {
          if (e === t) return !0;
          if (!e || !t) return !1;
          if (t.length > e.length) return !1;
          if (i) {
            if (!(0, n.ok)(e, t)) return !1;
            if (t.length === e.length) return !0;
            let i = t.length;
            return t.charAt(t.length - 1) === s && i--, e.charAt(i) === s;
          }
          return t.charAt(t.length - 1) !== s && (t += s), 0 === e.indexOf(t);
        }
      },
      75392: (e, t, i) => {
        'use strict';
        i.d(t, {
          or: () => s,
          Ji: () => o,
          ir: () => a,
          KZ: () => y,
          Oh: () => L,
          jB: () => M,
          mB: () => D,
          CL: () => P,
          EW: () => F,
          l7: () => U,
        });
        var n = i(43702),
          r = i(97295);
        function s(...e) {
          return function (t, i) {
            for (let n = 0, r = e.length; n < r; n++) {
              const r = e[n](t, i);
              if (r) return r;
            }
            return null;
          };
        }
        const o = function (e, t, i) {
          if (!i || i.length < t.length) return null;
          let n;
          return (
            (n = e ? r.ok(i, t) : 0 === i.indexOf(t)),
            n ? (t.length > 0 ? [{ start: 0, end: t.length }] : []) : null
          );
        }.bind(void 0, !0);
        function a(e, t) {
          const i = t.toLowerCase().indexOf(e.toLowerCase());
          return -1 === i ? null : [{ start: i, end: i + e.length }];
        }
        function l(e, t, i, n) {
          if (i === e.length) return [];
          if (n === t.length) return null;
          if (e[i] === t[n]) {
            let r = null;
            return (r = l(e, t, i + 1, n + 1))
              ? m({ start: n, end: n + 1 }, r)
              : null;
          }
          return l(e, t, i, n + 1);
        }
        function c(e) {
          return 97 <= e && e <= 122;
        }
        function d(e) {
          return 65 <= e && e <= 90;
        }
        function h(e) {
          return 48 <= e && e <= 57;
        }
        function u(e) {
          return 32 === e || 9 === e || 10 === e || 13 === e;
        }
        const g = new Set();
        function f(e) {
          return u(e) || g.has(e);
        }
        function p(e) {
          return c(e) || d(e) || h(e);
        }
        function m(e, t) {
          return (
            0 === t.length
              ? (t = [e])
              : e.end === t[0].start
              ? (t[0].start = e.start)
              : t.unshift(e),
            t
          );
        }
        function _(e, t) {
          for (let i = t; i < e.length; i++) {
            const t = e.charCodeAt(i);
            if (d(t) || h(t) || (i > 0 && !p(e.charCodeAt(i - 1)))) return i;
          }
          return e.length;
        }
        function b(e, t, i, n) {
          if (i === e.length) return [];
          if (n === t.length) return null;
          if (e[i] !== t[n].toLowerCase()) return null;
          {
            let r = null,
              s = n + 1;
            for (r = b(e, t, i + 1, n + 1); !r && (s = _(t, s)) < t.length; )
              (r = b(e, t, i + 1, s)), s++;
            return null === r ? null : m({ start: n, end: n + 1 }, r);
          }
        }
        function v(e, t) {
          if (!t) return null;
          if (0 === (t = t.trim()).length) return null;
          if (
            !(function (e) {
              let t = 0,
                i = 0,
                n = 0,
                r = 0;
              for (let s = 0; s < e.length; s++)
                (n = e.charCodeAt(s)), d(n) && t++, c(n) && i++, u(n) && r++;
              return (0 !== t && 0 !== i) || 0 !== r ? t <= 5 : e.length <= 30;
            })(e)
          )
            return null;
          if (t.length > 60) return null;
          const i = (function (e) {
            let t = 0,
              i = 0,
              n = 0,
              r = 0,
              s = 0;
            for (let o = 0; o < e.length; o++)
              (s = e.charCodeAt(o)),
                d(s) && t++,
                c(s) && i++,
                p(s) && n++,
                h(s) && r++;
            return {
              upperPercent: t / e.length,
              lowerPercent: i / e.length,
              alphaPercent: n / e.length,
              numericPercent: r / e.length,
            };
          })(t);
          if (
            !(function (e) {
              const {
                upperPercent: t,
                lowerPercent: i,
                alphaPercent: n,
                numericPercent: r,
              } = e;
              return i > 0.2 && t < 0.8 && n > 0.6 && r < 0.2;
            })(i)
          ) {
            if (
              !(function (e) {
                const { upperPercent: t, lowerPercent: i } = e;
                return 0 === i && t > 0.6;
              })(i)
            )
              return null;
            t = t.toLowerCase();
          }
          let n = null,
            r = 0;
          for (
            e = e.toLowerCase();
            r < t.length && null === (n = b(e, t, 0, r));

          )
            r = _(t, r + 1);
          return n;
        }
        function y(e, t, i = !1) {
          if (!t || 0 === t.length) return null;
          let n = null,
            r = 0;
          for (
            e = e.toLowerCase(), t = t.toLowerCase();
            r < t.length && null === (n = w(e, t, 0, r, i));

          )
            r = C(t, r + 1);
          return n;
        }
        function w(e, t, i, n, r) {
          if (i === e.length) return [];
          if (n === t.length) return null;
          if (
            (s = e.charCodeAt(i)) === (o = t.charCodeAt(n)) ||
            (f(s) && f(o))
          ) {
            let s = null,
              o = n + 1;
            if (((s = w(e, t, i + 1, n + 1, r)), !r))
              for (; !s && (o = C(t, o)) < t.length; )
                (s = w(e, t, i + 1, o, r)), o++;
            return null === s ? null : m({ start: n, end: n + 1 }, s);
          }
          return null;
          var s, o;
        }
        function C(e, t) {
          for (let i = t; i < e.length; i++)
            if (f(e.charCodeAt(i)) || (i > 0 && f(e.charCodeAt(i - 1))))
              return i;
          return e.length;
        }
        '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?'
          .split('')
          .forEach((e) => g.add(e.charCodeAt(0)));
        const S = s(o, v, a),
          k = s(o, v, function (e, t) {
            return l(e.toLowerCase(), t.toLowerCase(), 0, 0);
          }),
          x = new n.z6(1e4);
        function L(e, t, i = !1) {
          if ('string' != typeof e || 'string' != typeof t) return null;
          let n = x.get(e);
          n || ((n = new RegExp(r.un(e), 'i')), x.set(e, n));
          const s = n.exec(t);
          return s
            ? [{ start: s.index, end: s.index + s[0].length }]
            : i
            ? k(e, t)
            : S(e, t);
        }
        function M(e, t, i, n, r, s) {
          const o = F(e, t, 0, n, r, 0, !0);
          if (o) return o;
          let a = 0,
            l = 0,
            c = s;
          for (let e = 0; e < t.length && e < N; ++e) {
            const i = r.indexOf(t.charAt(e), c);
            if (i >= 0) (l += 1), (a += Math.pow(2, i)), (c = i + 1);
            else if (0 !== a) break;
          }
          return [l, a, s];
        }
        function D(e) {
          if (void 0 === e) return [];
          const t = e[1].toString(2),
            i = [];
          for (let n = e[2]; n < N; n++)
            if ('1' === t[t.length - (n + 1)]) {
              const e = i[i.length - 1];
              e && e.end === n
                ? (e.end = n + 1)
                : i.push({ start: n, end: n + 1 });
            }
          return i;
        }
        const N = 128;
        function E() {
          const e = [],
            t = [0];
          for (let e = 1; e <= N; e++) t.push(-e);
          for (let i = 0; i <= N; i++) {
            const n = t.slice(0);
            (n[0] = -i), e.push(n);
          }
          return e;
        }
        const T = E(),
          I = E(),
          O = E();
        function A(e, t) {
          if (t < 0 || t >= e.length) return !1;
          switch (e.charCodeAt(t)) {
            case 95:
            case 45:
            case 46:
            case 32:
            case 47:
            case 92:
            case 39:
            case 34:
            case 58:
            case 36:
              return !0;
            default:
              return !1;
          }
        }
        function R(e, t, i) {
          return t[e] !== i[e];
        }
        var P;
        function F(e, t, i, n, r, s, o) {
          const a = e.length > N ? N : e.length,
            l = n.length > N ? N : n.length;
          if (i >= a || s >= l || a - i > l - s) return;
          if (
            !(function (e, t, i, n, r, s) {
              for (; t < i && r < s; ) e[t] === n[r] && (t += 1), (r += 1);
              return t === i;
            })(t, i, a, r, s, l)
          )
            return;
          let c = 1,
            d = 1,
            h = i,
            u = s,
            g = !1;
          for (c = 1, h = i; h < a; c++, h++)
            for (d = 1, u = s; u < l; d++, u++) {
              const s = B(e, t, h, i, n, r, u);
              h === i && s > 1 && (g = !0), (I[c][d] = s);
              const o = T[c - 1][d - 1] + (s > 1 ? 1 : s),
                a = T[c - 1][d] + -1,
                l = T[c][d - 1] + -1;
              l >= a
                ? l > o
                  ? ((T[c][d] = l), (O[c][d] = 4))
                  : l === o
                  ? ((T[c][d] = l), (O[c][d] = 6))
                  : ((T[c][d] = o), (O[c][d] = 2))
                : a > o
                ? ((T[c][d] = a), (O[c][d] = 1))
                : a === o
                ? ((T[c][d] = a), (O[c][d] = 3))
                : ((T[c][d] = o), (O[c][d] = 2));
            }
          return (g || o) &&
            ((W = 0),
            (H = -100),
            (j = s),
            (V = o),
            z(c - 1, d - 1, a === l ? 1 : 0, 0, !1),
            0 !== W)
            ? [H, Y, s]
            : void 0;
        }
        function B(e, t, i, n, r, s, o) {
          return t[i] !== s[o]
            ? -1
            : o === i - n
            ? e[i] === r[o]
              ? 7
              : 5
            : !R(o, r, s) || (0 !== o && R(o - 1, r, s))
            ? !A(s, o) || (0 !== o && A(s, o - 1))
              ? A(s, o - 1) ||
                (function (e, t) {
                  if (t < 0 || t >= e.length) return !1;
                  switch (e.charCodeAt(t)) {
                    case 32:
                    case 9:
                      return !0;
                    default:
                      return !1;
                  }
                })(s, o - 1)
                ? 5
                : 1
              : 5
            : e[i] === r[o]
            ? 7
            : 5;
        }
        !(function (e) {
          (e.Default = Object.freeze([-100, 0, 0])),
            (e.isDefault = function (e) {
              return !e || (-100 === e[0] && 0 === e[1] && 0 === e[2]);
            });
        })(P || (P = {}));
        let W = 0,
          Y = 0,
          H = 0,
          j = 0,
          V = !1;
        function z(e, t, i, n, r) {
          if (W >= 10 || i < -25) return;
          let s = 0;
          for (; e > 0 && t > 0; ) {
            const o = I[e][t],
              a = O[e][t];
            if (4 === a)
              (t -= 1), r ? (i -= 5) : 0 !== n && (i -= 1), (r = !1), (s = 0);
            else {
              if (!(2 & a)) return;
              if (
                (4 & a && z(e, t - 1, 0 !== n ? i - 1 : i, n, r),
                (i += o),
                (e -= 1),
                (t -= 1),
                (r = !0),
                (n += Math.pow(2, t + j)),
                1 === o)
              ) {
                if (((s += 1), 0 === e && !V)) return;
              } else (i += 1 + s * (o - 1)), (s = 0);
            }
          }
          (W += 1), (i -= t >= 3 ? 9 : 3 * t) > H && ((H = i), (Y = n));
        }
        function U(e, t, i, n, r, s, o) {
          return (function (e, t, i, n, r, s, o, a) {
            let l = F(e, t, i, n, r, s, a);
            if (e.length >= 3) {
              const t = Math.min(7, e.length - 1);
              for (let o = i + 1; o < t; o++) {
                const t = $(e, o);
                if (t) {
                  const e = F(t, t.toLowerCase(), i, n, r, s, a);
                  e && ((e[0] -= 3), (!l || e[0] > l[0]) && (l = e));
                }
              }
            }
            return l;
          })(e, t, i, n, r, s, 0, o);
        }
        function $(e, t) {
          if (t + 1 >= e.length) return;
          const i = e[t],
            n = e[t + 1];
          return i !== n ? e.slice(0, t) + n + i + e.slice(t + 2) : void 0;
        }
      },
      88289: (e, t, i) => {
        'use strict';
        function n(e) {
          const t = this;
          let i,
            n = !1;
          return function () {
            return n || ((n = !0), (i = e.apply(t, arguments))), i;
          };
        }
        i.d(t, { I: () => n });
      },
      14118: (e, t, i) => {
        'use strict';
        i.d(t, { EQ: () => M });
        var n = i(9488),
          r = i(97295),
          s = i(15527),
          o = i(88721),
          a = i(43702),
          l = i(15393);
        const c = '**',
          d = /\//g;
        function h(e) {
          switch (e) {
            case 0:
              return '';
            case 1:
              return '[^/\\\\]*?';
            default:
              return '(?:[/\\\\]|[^/\\\\]+[/\\\\]|[/\\\\][^/\\\\]+)*?';
          }
        }
        function u(e, t) {
          if (!e) return [];
          const i = [];
          let n = !1,
            r = !1,
            s = '';
          for (const o of e) {
            switch (o) {
              case t:
                if (!n && !r) {
                  i.push(s), (s = '');
                  continue;
                }
                break;
              case '{':
                n = !0;
                break;
              case '}':
                n = !1;
                break;
              case '[':
                r = !0;
                break;
              case ']':
                r = !1;
            }
            s += o;
          }
          return s && i.push(s), i;
        }
        function g(e) {
          if (!e) return '';
          let t = '';
          const i = u(e, '/');
          if (i.every((e) => e === c)) t = '.*';
          else {
            let e = !1;
            i.forEach((n, s) => {
              if (n === c) return void (e || ((t += h(2)), (e = !0)));
              let o = !1,
                a = '',
                l = !1,
                d = '';
              for (const e of n)
                if ('}' !== e && o) a += e;
                else if (!l || (']' === e && d))
                  switch (e) {
                    case '{':
                      o = !0;
                      continue;
                    case '[':
                      l = !0;
                      continue;
                    case '}':
                      const i = `(?:${u(a, ',')
                        .map((e) => g(e))
                        .join('|')})`;
                      (t += i), (o = !1), (a = '');
                      break;
                    case ']':
                      (t += '[' + d + ']'), (l = !1), (d = '');
                      break;
                    case '?':
                      t += '[^/\\\\]';
                      continue;
                    case '*':
                      t += h(1);
                      continue;
                    default:
                      t += r.ec(e);
                  }
                else {
                  let t;
                  (t =
                    '-' === e
                      ? e
                      : ('^' !== e && '!' !== e) || d
                      ? '/' === e
                        ? ''
                        : r.ec(e)
                      : '^'),
                    (d += t);
                }
              s < i.length - 1 &&
                (i[s + 1] !== c || s + 2 < i.length) &&
                (t += '[/\\\\]'),
                (e = !1);
            });
          }
          return t;
        }
        const f = /^\*\*\/\*\.[\w\.-]+$/,
          p = /^\*\*\/([\w\.-]+)\/?$/,
          m = /^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/,
          _ = /^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/,
          b = /^\*\*((\/[\w\.-]+)+)\/?$/,
          v = /^([\w\.-]+(\/[\w\.-]+)*)\/?$/,
          y = new a.z6(1e4),
          w = function () {
            return !1;
          },
          C = function () {
            return null;
          };
        function S(e, t) {
          if (!e) return C;
          let i;
          (i = 'string' != typeof e ? e.pattern : e), (i = i.trim());
          const r = `${i}_${!!t.trimForExclusions}`;
          let s,
            o = y.get(r);
          if (o) return k(o, e);
          if (f.test(i)) {
            const e = i.substr(4);
            o = function (t, n) {
              return 'string' == typeof t && t.endsWith(e) ? i : null;
            };
          } else
            o = (s = p.exec(x(i, t)))
              ? (function (e, t) {
                  const i = `/${e}`,
                    n = `\\${e}`,
                    r = function (r, s) {
                      return 'string' != typeof r
                        ? null
                        : s
                        ? s === e
                          ? t
                          : null
                        : r === e || r.endsWith(i) || r.endsWith(n)
                        ? t
                        : null;
                    },
                    s = [e];
                  return (
                    (r.basenames = s),
                    (r.patterns = [t]),
                    (r.allBasenames = s),
                    r
                  );
                })(s[1], i)
              : (t.trimForExclusions ? _ : m).test(i)
              ? (function (e, t) {
                  const i = D(
                      e
                        .slice(1, -1)
                        .split(',')
                        .map((e) => S(e, t))
                        .filter((e) => e !== C),
                      e
                    ),
                    r = i.length;
                  if (!r) return C;
                  if (1 === r) return i[0];
                  const s = function (t, n) {
                      for (let r = 0, s = i.length; r < s; r++)
                        if (i[r](t, n)) return e;
                      return null;
                    },
                    o = n.Ps(i, (e) => !!e.allBasenames);
                  o && (s.allBasenames = o.allBasenames);
                  const a = i.reduce(
                    (e, t) => (t.allPaths ? e.concat(t.allPaths) : e),
                    []
                  );
                  return a.length && (s.allPaths = a), s;
                })(i, t)
              : (s = b.exec(x(i, t)))
              ? L(s[1].substr(1), i, !0)
              : (s = v.exec(x(i, t)))
              ? L(s[1], i, !1)
              : (function (e) {
                  try {
                    const t = new RegExp(`^${g(e)}$`);
                    return function (i) {
                      return (
                        (t.lastIndex = 0),
                        'string' == typeof i && t.test(i) ? e : null
                      );
                    };
                  } catch (e) {
                    return C;
                  }
                })(i);
          return y.set(r, o), k(o, e);
        }
        function k(e, t) {
          return 'string' == typeof t
            ? e
            : function (i, n) {
                return s.K(i, t.base) ? e(o.Gf(t.base, i), n) : null;
              };
        }
        function x(e, t) {
          return t.trimForExclusions && e.endsWith('/**')
            ? e.substr(0, e.length - 2)
            : e;
        }
        function L(e, t, i) {
          const n = o.ir !== o.KR.sep ? e.replace(d, o.ir) : e,
            r = o.ir + n,
            s = i
              ? function (e, i) {
                  return 'string' != typeof e || (e !== n && !e.endsWith(r))
                    ? null
                    : t;
                }
              : function (e, i) {
                  return 'string' == typeof e && e === n ? t : null;
                };
          return (s.allPaths = [(i ? '*/' : './') + e]), s;
        }
        function M(e, t, i) {
          return (
            !(!e || 'string' != typeof t) &&
            (function (e, t = {}) {
              if (!e) return w;
              if (
                'string' == typeof e ||
                (function (e) {
                  const t = e;
                  return (
                    t &&
                    'string' == typeof t.base &&
                    'string' == typeof t.pattern
                  );
                })(e)
              ) {
                const i = S(e, t);
                if (i === C) return w;
                const n = function (e, t) {
                  return !!i(e, t);
                };
                return (
                  i.allBasenames && (n.allBasenames = i.allBasenames),
                  i.allPaths && (n.allPaths = i.allPaths),
                  n
                );
              }
              return (function (e, t) {
                const i = D(
                    Object.getOwnPropertyNames(e)
                      .map((i) =>
                        (function (e, t, i) {
                          if (!1 === t) return C;
                          const n = S(e, i);
                          if (n === C) return C;
                          if ('boolean' == typeof t) return n;
                          if (t) {
                            const i = t.when;
                            if ('string' == typeof i) {
                              const t = (t, r, s, o) => {
                                if (!o || !n(t, r)) return null;
                                const a = o(i.replace('$(basename)', s));
                                return (0, l.J8)(a)
                                  ? a.then((t) => (t ? e : null))
                                  : a
                                  ? e
                                  : null;
                              };
                              return (t.requiresSiblings = !0), t;
                            }
                          }
                          return n;
                        })(i, e[i], t)
                      )
                      .filter((e) => e !== C)
                  ),
                  r = i.length;
                if (!r) return C;
                if (!i.some((e) => !!e.requiresSiblings)) {
                  if (1 === r) return i[0];
                  const e = function (e, t) {
                      for (let n = 0, r = i.length; n < r; n++) {
                        const r = i[n](e, t);
                        if (r) return r;
                      }
                      return null;
                    },
                    t = n.Ps(i, (e) => !!e.allBasenames);
                  t && (e.allBasenames = t.allBasenames);
                  const s = i.reduce(
                    (e, t) => (t.allPaths ? e.concat(t.allPaths) : e),
                    []
                  );
                  return s.length && (e.allPaths = s), e;
                }
                const s = function (e, t, n) {
                    let r;
                    for (let s = 0, a = i.length; s < a; s++) {
                      const a = i[s];
                      a.requiresSiblings &&
                        n &&
                        (t || (t = o.EZ(e)),
                        r || (r = t.substr(0, t.length - o.DZ(e).length)));
                      const l = a(e, t, r, n);
                      if (l) return l;
                    }
                    return null;
                  },
                  a = n.Ps(i, (e) => !!e.allBasenames);
                a && (s.allBasenames = a.allBasenames);
                const c = i.reduce(
                  (e, t) => (t.allPaths ? e.concat(t.allPaths) : e),
                  []
                );
                return c.length && (s.allPaths = c), s;
              })(e, t);
            })(e)(t, void 0, i)
          );
        }
        function D(e, t) {
          const i = e.filter((e) => !!e.basenames);
          if (i.length < 2) return e;
          const n = i.reduce((e, t) => {
            const i = t.basenames;
            return i ? e.concat(i) : e;
          }, []);
          let r;
          if (t) {
            r = [];
            for (let e = 0, i = n.length; e < i; e++) r.push(t);
          } else
            r = i.reduce((e, t) => {
              const i = t.patterns;
              return i ? e.concat(i) : e;
            }, []);
          const s = function (e, t) {
            if ('string' != typeof e) return null;
            if (!t) {
              let i;
              for (i = e.length; i > 0; i--) {
                const t = e.charCodeAt(i - 1);
                if (47 === t || 92 === t) break;
              }
              t = e.substr(i);
            }
            const i = n.indexOf(t);
            return -1 !== i ? r[i] : null;
          };
          (s.basenames = n), (s.patterns = r), (s.allBasenames = n);
          const o = e.filter((e) => !e.basenames);
          return o.push(s), o;
        }
      },
      89954: (e, t, i) => {
        'use strict';
        i.d(t, { vp: () => r, Cv: () => a, yP: () => h });
        var n = i(97295);
        function r(e) {
          return s(e, 0);
        }
        function s(e, t) {
          switch (typeof e) {
            case 'object':
              return null === e
                ? o(349, t)
                : Array.isArray(e)
                ? ((i = e),
                  (n = o(104579, (n = t))),
                  i.reduce((e, t) => s(t, e), n))
                : (function (e, t) {
                    return (
                      (t = o(181387, t)),
                      Object.keys(e)
                        .sort()
                        .reduce((t, i) => ((t = a(i, t)), s(e[i], t)), t)
                    );
                  })(e, t);
            case 'string':
              return a(e, t);
            case 'boolean':
              return (function (e, t) {
                return o(e ? 433 : 863, t);
              })(e, t);
            case 'number':
              return o(e, t);
            case 'undefined':
              return o(937, t);
            default:
              return o(617, t);
          }
          var i, n;
        }
        function o(e, t) {
          return ((t << 5) - t + e) | 0;
        }
        function a(e, t) {
          t = o(149417, t);
          for (let i = 0, n = e.length; i < n; i++) t = o(e.charCodeAt(i), t);
          return t;
        }
        function l(e, t, i = 32) {
          const n = i - t;
          return ((e << t) | ((~((1 << n) - 1) & e) >>> n)) >>> 0;
        }
        function c(e, t = 0, i = e.byteLength, n = 0) {
          for (let r = 0; r < i; r++) e[t + r] = n;
        }
        function d(e, t = 32) {
          return (function (e, t, i = '0') {
            for (; e.length < t; ) e = i + e;
            return e;
          })((e >>> 0).toString(16), t / 4);
        }
        class h {
          constructor() {
            (this._h0 = 1732584193),
              (this._h1 = 4023233417),
              (this._h2 = 2562383102),
              (this._h3 = 271733878),
              (this._h4 = 3285377520),
              (this._buff = new Uint8Array(67)),
              (this._buffDV = new DataView(this._buff.buffer)),
              (this._buffLen = 0),
              (this._totalLen = 0),
              (this._leftoverHighSurrogate = 0),
              (this._finished = !1);
          }
          update(e) {
            const t = e.length;
            if (0 === t) return;
            const i = this._buff;
            let r,
              s,
              o = this._buffLen,
              a = this._leftoverHighSurrogate;
            for (
              0 !== a
                ? ((r = a), (s = -1), (a = 0))
                : ((r = e.charCodeAt(0)), (s = 0));
              ;

            ) {
              let l = r;
              if (n.ZG(r)) {
                if (!(s + 1 < t)) {
                  a = r;
                  break;
                }
                {
                  const t = e.charCodeAt(s + 1);
                  n.YK(t) ? (s++, (l = n.rL(r, t))) : (l = 65533);
                }
              } else n.YK(r) && (l = 65533);
              if (((o = this._push(i, o, l)), s++, !(s < t))) break;
              r = e.charCodeAt(s);
            }
            (this._buffLen = o), (this._leftoverHighSurrogate = a);
          }
          _push(e, t, i) {
            return (
              i < 128
                ? (e[t++] = i)
                : i < 2048
                ? ((e[t++] = 192 | ((1984 & i) >>> 6)),
                  (e[t++] = 128 | ((63 & i) >>> 0)))
                : i < 65536
                ? ((e[t++] = 224 | ((61440 & i) >>> 12)),
                  (e[t++] = 128 | ((4032 & i) >>> 6)),
                  (e[t++] = 128 | ((63 & i) >>> 0)))
                : ((e[t++] = 240 | ((1835008 & i) >>> 18)),
                  (e[t++] = 128 | ((258048 & i) >>> 12)),
                  (e[t++] = 128 | ((4032 & i) >>> 6)),
                  (e[t++] = 128 | ((63 & i) >>> 0))),
              t >= 64 &&
                (this._step(),
                (t -= 64),
                (this._totalLen += 64),
                (e[0] = e[64]),
                (e[1] = e[65]),
                (e[2] = e[66])),
              t
            );
          }
          digest() {
            return (
              this._finished ||
                ((this._finished = !0),
                this._leftoverHighSurrogate &&
                  ((this._leftoverHighSurrogate = 0),
                  (this._buffLen = this._push(
                    this._buff,
                    this._buffLen,
                    65533
                  ))),
                (this._totalLen += this._buffLen),
                this._wrapUp()),
              d(this._h0) +
                d(this._h1) +
                d(this._h2) +
                d(this._h3) +
                d(this._h4)
            );
          }
          _wrapUp() {
            (this._buff[this._buffLen++] = 128),
              c(this._buff, this._buffLen),
              this._buffLen > 56 && (this._step(), c(this._buff));
            const e = 8 * this._totalLen;
            this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1),
              this._buffDV.setUint32(60, e % 4294967296, !1),
              this._step();
          }
          _step() {
            const e = h._bigBlock32,
              t = this._buffDV;
            for (let i = 0; i < 64; i += 4)
              e.setUint32(i, t.getUint32(i, !1), !1);
            for (let t = 64; t < 320; t += 4)
              e.setUint32(
                t,
                l(
                  e.getUint32(t - 12, !1) ^
                    e.getUint32(t - 32, !1) ^
                    e.getUint32(t - 56, !1) ^
                    e.getUint32(t - 64, !1),
                  1
                ),
                !1
              );
            let i,
              n,
              r,
              s = this._h0,
              o = this._h1,
              a = this._h2,
              c = this._h3,
              d = this._h4;
            for (let t = 0; t < 80; t++)
              t < 20
                ? ((i = (o & a) | (~o & c)), (n = 1518500249))
                : t < 40
                ? ((i = o ^ a ^ c), (n = 1859775393))
                : t < 60
                ? ((i = (o & a) | (o & c) | (a & c)), (n = 2400959708))
                : ((i = o ^ a ^ c), (n = 3395469782)),
                (r =
                  (l(s, 5) + i + d + n + e.getUint32(4 * t, !1)) & 4294967295),
                (d = c),
                (c = a),
                (a = l(o, 30)),
                (o = s),
                (s = r);
            (this._h0 = (this._h0 + s) & 4294967295),
              (this._h1 = (this._h1 + o) & 4294967295),
              (this._h2 = (this._h2 + a) & 4294967295),
              (this._h3 = (this._h3 + c) & 4294967295),
              (this._h4 = (this._h4 + d) & 4294967295);
          }
        }
        h._bigBlock32 = new DataView(new ArrayBuffer(320));
      },
      59365: (e, t, i) => {
        'use strict';
        i.d(t, {
          W5: () => o,
          CP: () => a,
          W6: () => c,
          oR: () => h,
          v1: () => u,
        });
        var n = i(9488),
          r = i(73046),
          s = i(17301);
        class o {
          constructor(e = '', t = !1) {
            var i, n;
            if (((this._value = e), 'string' != typeof this._value))
              throw (0, s.b1)('value');
            'boolean' == typeof t
              ? ((this._isTrusted = t), (this._supportThemeIcons = !1))
              : ((this._isTrusted =
                  null !== (i = t.isTrusted) && void 0 !== i && i),
                (this._supportThemeIcons =
                  null !== (n = t.supportThemeIcons) && void 0 !== n && n));
          }
          get value() {
            return this._value;
          }
          get isTrusted() {
            return this._isTrusted;
          }
          get supportThemeIcons() {
            return this._supportThemeIcons;
          }
          appendText(e) {
            return (
              (this._value += (this._supportThemeIcons ? (0, r.qQ)(e) : e)
                .replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&')
                .replace(/\n/g, '\n\n')),
              this
            );
          }
          appendMarkdown(e) {
            return (this._value += e), this;
          }
          appendCodeblock(e, t) {
            return (
              (this._value += '\n```'),
              (this._value += e),
              (this._value += '\n'),
              (this._value += t),
              (this._value += '\n```\n'),
              this
            );
          }
        }
        function a(e) {
          return l(e) ? !e.value : !Array.isArray(e) || e.every(a);
        }
        function l(e) {
          return (
            e instanceof o ||
            (!(!e || 'object' != typeof e) &&
              !(
                'string' != typeof e.value ||
                ('boolean' != typeof e.isTrusted && void 0 !== e.isTrusted) ||
                ('boolean' != typeof e.supportThemeIcons &&
                  void 0 !== e.supportThemeIcons)
              ))
          );
        }
        function c(e, t) {
          return (
            (!e && !t) ||
            (!(!e || !t) &&
              (Array.isArray(e) && Array.isArray(t)
                ? (0, n.fS)(e, t, d)
                : !(!l(e) || !l(t)) && d(e, t)))
          );
        }
        function d(e, t) {
          return (
            e === t ||
            (!(!e || !t) &&
              e.value === t.value &&
              e.isTrusted === t.isTrusted &&
              e.supportThemeIcons === t.supportThemeIcons)
          );
        }
        function h(e) {
          return e ? e.replace(/\\([\\`*_{}[\]()#+\-.!])/g, '$1') : e;
        }
        function u(e) {
          const t = [],
            i = e.split('|').map((e) => e.trim());
          e = i[0];
          const n = i[1];
          if (n) {
            const e = /height=(\d+)/.exec(n),
              i = /width=(\d+)/.exec(n),
              r = e ? e[1] : '',
              s = i ? i[1] : '',
              o = isFinite(parseInt(s)),
              a = isFinite(parseInt(r));
            o && t.push(`width="${s}"`), a && t.push(`height="${r}"`);
          }
          return { href: e, dimensions: t };
        }
      },
      44742: (e, t, i) => {
        'use strict';
        i.d(t, { R: () => n, a: () => r });
        class n {
          constructor(e) {
            (this._prefix = e), (this._lastId = 0);
          }
          nextId() {
            return this._prefix + ++this._lastId;
          }
        }
        const r = new n('id#');
      },
      53725: (e, t, i) => {
        'use strict';
        var n;
        i.d(t, { $: () => n }),
          (function (e) {
            e.is = function (e) {
              return (
                e &&
                'object' == typeof e &&
                'function' == typeof e[Symbol.iterator]
              );
            };
            const t = Object.freeze([]);
            (e.empty = function () {
              return t;
            }),
              (e.single = function* (e) {
                yield e;
              }),
              (e.from = function (e) {
                return e || t;
              }),
              (e.first = function (e) {
                return e[Symbol.iterator]().next().value;
              }),
              (e.some = function (e, t) {
                for (const i of e) if (t(i)) return !0;
                return !1;
              }),
              (e.filter = function* (e, t) {
                for (const i of e) t(i) && (yield i);
              }),
              (e.map = function* (e, t) {
                for (const i of e) yield t(i);
              }),
              (e.concat = function* (...e) {
                for (const t of e) for (const e of t) yield e;
              }),
              (e.consume = function (t, i = Number.POSITIVE_INFINITY) {
                const n = [];
                if (0 === i) return [n, t];
                const r = t[Symbol.iterator]();
                for (let t = 0; t < i; t++) {
                  const t = r.next();
                  if (t.done) return [n, e.empty()];
                  n.push(t.value);
                }
                return [n, { [Symbol.iterator]: () => r }];
              });
          })(n || (n = {}));
      },
      22258: (e, t, i) => {
        'use strict';
        i.d(t, {
          kL: () => l,
          gx: () => c,
          gm: () => d,
          QC: () => u,
          BQ: () => f,
          f1: () => p,
        });
        var n = i(17301);
        class r {
          constructor() {
            (this._keyCodeToStr = []),
              (this._strToKeyCode = Object.create(null));
          }
          define(e, t) {
            (this._keyCodeToStr[e] = t),
              (this._strToKeyCode[t.toLowerCase()] = e);
          }
          keyCodeToStr(e) {
            return this._keyCodeToStr[e];
          }
          strToKeyCode(e) {
            return this._strToKeyCode[e.toLowerCase()] || 0;
          }
        }
        const s = new r(),
          o = new r(),
          a = new r();
        var l;
        function c(e, t) {
          return (e | (((65535 & t) << 16) >>> 0)) >>> 0;
        }
        function d(e, t) {
          if (0 === e) return null;
          const i = (65535 & e) >>> 0,
            n = (4294901760 & e) >>> 16;
          return new g(0 !== n ? [h(i, t), h(n, t)] : [h(i, t)]);
        }
        function h(e, t) {
          const i = !!(2048 & e),
            n = !!(256 & e);
          return new u(
            2 === t ? n : i,
            !!(1024 & e),
            !!(512 & e),
            2 === t ? i : n,
            255 & e
          );
        }
        !(function () {
          function e(e, t, i = t, n = i) {
            s.define(e, t), o.define(e, i), a.define(e, n);
          }
          e(0, 'unknown'),
            e(1, 'Backspace'),
            e(2, 'Tab'),
            e(3, 'Enter'),
            e(4, 'Shift'),
            e(5, 'Ctrl'),
            e(6, 'Alt'),
            e(7, 'PauseBreak'),
            e(8, 'CapsLock'),
            e(9, 'Escape'),
            e(10, 'Space'),
            e(11, 'PageUp'),
            e(12, 'PageDown'),
            e(13, 'End'),
            e(14, 'Home'),
            e(15, 'LeftArrow', 'Left'),
            e(16, 'UpArrow', 'Up'),
            e(17, 'RightArrow', 'Right'),
            e(18, 'DownArrow', 'Down'),
            e(19, 'Insert'),
            e(20, 'Delete'),
            e(21, '0'),
            e(22, '1'),
            e(23, '2'),
            e(24, '3'),
            e(25, '4'),
            e(26, '5'),
            e(27, '6'),
            e(28, '7'),
            e(29, '8'),
            e(30, '9'),
            e(31, 'A'),
            e(32, 'B'),
            e(33, 'C'),
            e(34, 'D'),
            e(35, 'E'),
            e(36, 'F'),
            e(37, 'G'),
            e(38, 'H'),
            e(39, 'I'),
            e(40, 'J'),
            e(41, 'K'),
            e(42, 'L'),
            e(43, 'M'),
            e(44, 'N'),
            e(45, 'O'),
            e(46, 'P'),
            e(47, 'Q'),
            e(48, 'R'),
            e(49, 'S'),
            e(50, 'T'),
            e(51, 'U'),
            e(52, 'V'),
            e(53, 'W'),
            e(54, 'X'),
            e(55, 'Y'),
            e(56, 'Z'),
            e(57, 'Meta'),
            e(58, 'ContextMenu'),
            e(59, 'F1'),
            e(60, 'F2'),
            e(61, 'F3'),
            e(62, 'F4'),
            e(63, 'F5'),
            e(64, 'F6'),
            e(65, 'F7'),
            e(66, 'F8'),
            e(67, 'F9'),
            e(68, 'F10'),
            e(69, 'F11'),
            e(70, 'F12'),
            e(71, 'F13'),
            e(72, 'F14'),
            e(73, 'F15'),
            e(74, 'F16'),
            e(75, 'F17'),
            e(76, 'F18'),
            e(77, 'F19'),
            e(78, 'NumLock'),
            e(79, 'ScrollLock'),
            e(80, ';', ';', 'OEM_1'),
            e(81, '=', '=', 'OEM_PLUS'),
            e(82, ',', ',', 'OEM_COMMA'),
            e(83, '-', '-', 'OEM_MINUS'),
            e(84, '.', '.', 'OEM_PERIOD'),
            e(85, '/', '/', 'OEM_2'),
            e(86, '`', '`', 'OEM_3'),
            e(110, 'ABNT_C1'),
            e(111, 'ABNT_C2'),
            e(87, '[', '[', 'OEM_4'),
            e(88, '\\', '\\', 'OEM_5'),
            e(89, ']', ']', 'OEM_6'),
            e(90, "'", "'", 'OEM_7'),
            e(91, 'OEM_8'),
            e(92, 'OEM_102'),
            e(93, 'NumPad0'),
            e(94, 'NumPad1'),
            e(95, 'NumPad2'),
            e(96, 'NumPad3'),
            e(97, 'NumPad4'),
            e(98, 'NumPad5'),
            e(99, 'NumPad6'),
            e(100, 'NumPad7'),
            e(101, 'NumPad8'),
            e(102, 'NumPad9'),
            e(103, 'NumPad_Multiply'),
            e(104, 'NumPad_Add'),
            e(105, 'NumPad_Separator'),
            e(106, 'NumPad_Subtract'),
            e(107, 'NumPad_Decimal'),
            e(108, 'NumPad_Divide');
        })(),
          (function (e) {
            (e.toString = function (e) {
              return s.keyCodeToStr(e);
            }),
              (e.fromString = function (e) {
                return s.strToKeyCode(e);
              }),
              (e.toUserSettingsUS = function (e) {
                return o.keyCodeToStr(e);
              }),
              (e.toUserSettingsGeneral = function (e) {
                return a.keyCodeToStr(e);
              }),
              (e.fromUserSettings = function (e) {
                return o.strToKeyCode(e) || a.strToKeyCode(e);
              });
          })(l || (l = {}));
        class u {
          constructor(e, t, i, n, r) {
            (this.ctrlKey = e),
              (this.shiftKey = t),
              (this.altKey = i),
              (this.metaKey = n),
              (this.keyCode = r);
          }
          equals(e) {
            return (
              this.ctrlKey === e.ctrlKey &&
              this.shiftKey === e.shiftKey &&
              this.altKey === e.altKey &&
              this.metaKey === e.metaKey &&
              this.keyCode === e.keyCode
            );
          }
          isModifierKey() {
            return (
              0 === this.keyCode ||
              5 === this.keyCode ||
              57 === this.keyCode ||
              6 === this.keyCode ||
              4 === this.keyCode
            );
          }
          toChord() {
            return new g([this]);
          }
          isDuplicateModifierCase() {
            return (
              (this.ctrlKey && 5 === this.keyCode) ||
              (this.shiftKey && 4 === this.keyCode) ||
              (this.altKey && 6 === this.keyCode) ||
              (this.metaKey && 57 === this.keyCode)
            );
          }
        }
        class g {
          constructor(e) {
            if (0 === e.length) throw (0, n.b1)('parts');
            this.parts = e;
          }
        }
        class f {
          constructor(e, t, i, n, r, s) {
            (this.ctrlKey = e),
              (this.shiftKey = t),
              (this.altKey = i),
              (this.metaKey = n),
              (this.keyLabel = r),
              (this.keyAriaLabel = s);
          }
        }
        class p {}
      },
      68843: (e, t, i) => {
        'use strict';
        i.d(t, { kz: () => c, pP: () => d, DT: () => u });
        var n = i(70666),
          r = i(88721),
          s = i(97295),
          o = i(66663),
          a = i(1432),
          l = i(95935);
        function c(e, t, i) {
          if (('string' == typeof e && (e = n.o.file(e)), i)) {
            const t = i.getWorkspaceFolder(e);
            if (t) {
              const n = i.getWorkspace().folders.length > 1;
              let r;
              if (((r = (0, l.Xy)(t.uri, e) ? '' : (0, l.lX)(t.uri, e)), n)) {
                const e = t.name ? t.name : (0, l.EZ)(t.uri);
                r = r ? e + ' • ' + r : e;
              }
              return r;
            }
          }
          if (e.scheme !== o.l.file && e.scheme !== o.l.untitled)
            return e.with({ query: null, fragment: null }).toString(!0);
          if (h(e.fsPath)) return (0, r.Fv)(u(e.fsPath));
          let c = (0, r.Fv)(e.fsPath);
          return (
            !a.ED &&
              (null == t ? void 0 : t.userHome) &&
              (c = (function (e, t) {
                if (a.ED || !e || !t) return e;
                let i = g.original === t ? g.normalized : void 0;
                return (
                  i ||
                    ((i = `${(0, s.oL)(t, r.KR.sep)}${r.KR.sep}`),
                    (g = { original: t, normalized: i })),
                  (a.IJ ? e.startsWith(i) : (0, s.ok)(e, i)) &&
                    (e = `~/${e.substr(i.length)}`),
                  e
                );
              })(c, t.userHome.fsPath)),
            c
          );
        }
        function d(e) {
          if (!e) return;
          'string' == typeof e && (e = n.o.file(e));
          const t = (0, l.EZ)(e) || (e.scheme === o.l.file ? e.fsPath : e.path);
          return h(t) ? u(t) : t;
        }
        function h(e) {
          return !(!a.ED || !e || ':' !== e[1]);
        }
        function u(e) {
          return h(e) ? e.charAt(0).toUpperCase() + e.slice(1) : e;
        }
        let g = Object.create(null);
      },
      5976: (e, t, i) => {
        'use strict';
        i.d(t, {
          Wf: () => o,
          B9: () => a,
          F8: () => l,
          OF: () => c,
          SL: () => d,
          JT: () => h,
          XK: () => u,
          Jz: () => g,
        });
        var n = i(53725);
        function r(e) {}
        class s extends Error {
          constructor(e) {
            super(
              `Encounter errors while disposing of store. Errors: [${e.join(
                ', '
              )}]`
            ),
              (this.errors = e);
          }
        }
        function o(e) {
          return 'function' == typeof e.dispose && 0 === e.dispose.length;
        }
        function a(e) {
          if (n.$.is(e)) {
            let t = [];
            for (const i of e)
              if (i)
                try {
                  i.dispose();
                } catch (e) {
                  t.push(e);
                }
            if (1 === t.length) throw t[0];
            if (t.length > 1) throw new s(t);
            return Array.isArray(e) ? [] : e;
          }
          if (e) return e.dispose(), e;
        }
        function l(...e) {
          return e.forEach(r), { dispose: () => a(e) };
        }
        function c(e) {
          return {
            dispose: () => {
              e();
            },
          };
        }
        class d {
          constructor() {
            (this._toDispose = new Set()), (this._isDisposed = !1);
          }
          dispose() {
            this._isDisposed || ((this._isDisposed = !0), this.clear());
          }
          clear() {
            try {
              a(this._toDispose.values());
            } finally {
              this._toDispose.clear();
            }
          }
          add(e) {
            if (!e) return e;
            if (e === this)
              throw new Error('Cannot register a disposable on itself!');
            return (
              this._isDisposed
                ? d.DISABLE_DISPOSED_WARNING ||
                  console.warn(
                    new Error(
                      'Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!'
                    ).stack
                  )
                : this._toDispose.add(e),
              e
            );
          }
        }
        d.DISABLE_DISPOSED_WARNING = !1;
        class h {
          constructor() {
            this._store = new d();
          }
          dispose() {
            this._store.dispose();
          }
          _register(e) {
            if (e === this)
              throw new Error('Cannot register a disposable on itself!');
            return this._store.add(e);
          }
        }
        h.None = Object.freeze({ dispose() {} });
        class u {
          constructor() {
            this._isDisposed = !1;
          }
          get value() {
            return this._isDisposed ? void 0 : this._value;
          }
          set value(e) {
            this._isDisposed ||
              e === this._value ||
              (this._value && this._value.dispose(), (this._value = e));
          }
          clear() {
            this.value = void 0;
          }
          dispose() {
            (this._isDisposed = !0),
              this._value && this._value.dispose(),
              (this._value = void 0);
          }
        }
        class g {
          constructor(e) {
            this.object = e;
          }
          dispose() {}
        }
      },
      91741: (e, t, i) => {
        'use strict';
        i.d(t, { S: () => r });
        class n {
          constructor(e) {
            (this.element = e),
              (this.next = n.Undefined),
              (this.prev = n.Undefined);
          }
        }
        n.Undefined = new n(void 0);
        class r {
          constructor() {
            (this._first = n.Undefined),
              (this._last = n.Undefined),
              (this._size = 0);
          }
          get size() {
            return this._size;
          }
          isEmpty() {
            return this._first === n.Undefined;
          }
          clear() {
            (this._first = n.Undefined),
              (this._last = n.Undefined),
              (this._size = 0);
          }
          unshift(e) {
            return this._insert(e, !1);
          }
          push(e) {
            return this._insert(e, !0);
          }
          _insert(e, t) {
            const i = new n(e);
            if (this._first === n.Undefined)
              (this._first = i), (this._last = i);
            else if (t) {
              const e = this._last;
              (this._last = i), (i.prev = e), (e.next = i);
            } else {
              const e = this._first;
              (this._first = i), (i.next = e), (e.prev = i);
            }
            this._size += 1;
            let r = !1;
            return () => {
              r || ((r = !0), this._remove(i));
            };
          }
          shift() {
            if (this._first !== n.Undefined) {
              const e = this._first.element;
              return this._remove(this._first), e;
            }
          }
          pop() {
            if (this._last !== n.Undefined) {
              const e = this._last.element;
              return this._remove(this._last), e;
            }
          }
          _remove(e) {
            if (e.prev !== n.Undefined && e.next !== n.Undefined) {
              const t = e.prev;
              (t.next = e.next), (e.next.prev = t);
            } else
              e.prev === n.Undefined && e.next === n.Undefined
                ? ((this._first = n.Undefined), (this._last = n.Undefined))
                : e.next === n.Undefined
                ? ((this._last = this._last.prev),
                  (this._last.next = n.Undefined))
                : e.prev === n.Undefined &&
                  ((this._first = this._first.next),
                  (this._first.prev = n.Undefined));
            this._size -= 1;
          }
          *[Symbol.iterator]() {
            let e = this._first;
            for (; e !== n.Undefined; ) yield e.element, (e = e.next);
          }
          toArray() {
            const e = [];
            for (let t = this._first; t !== n.Undefined; t = t.next)
              e.push(t.element);
            return e;
          }
        }
      },
      43702: (e, t, i) => {
        'use strict';
        i.d(t, { Id: () => h, Y9: () => u, z6: () => f });
        var n = i(70666),
          r = i(97295),
          s = i(66663),
          o = i(1432);
        class a {
          constructor() {
            (this._value = ''), (this._pos = 0);
          }
          reset(e) {
            return (this._value = e), (this._pos = 0), this;
          }
          next() {
            return (this._pos += 1), this;
          }
          hasNext() {
            return this._pos < this._value.length - 1;
          }
          cmp(e) {
            return e.charCodeAt(0) - this._value.charCodeAt(this._pos);
          }
          value() {
            return this._value[this._pos];
          }
        }
        class l {
          constructor(e = !0, t = !0) {
            (this._splitOnBackslash = e), (this._caseSensitive = t);
          }
          reset(e) {
            return (
              (this._value = e.replace(/\\$|\/$/, '')),
              (this._from = 0),
              (this._to = 0),
              this.next()
            );
          }
          hasNext() {
            return this._to < this._value.length;
          }
          next() {
            this._from = this._to;
            let e = !0;
            for (; this._to < this._value.length; this._to++) {
              const t = this._value.charCodeAt(this._to);
              if (47 === t || (this._splitOnBackslash && 92 === t)) {
                if (!e) break;
                this._from++;
              } else e = !1;
            }
            return this;
          }
          cmp(e) {
            return this._caseSensitive
              ? (0, r.TT)(e, this._value, 0, e.length, this._from, this._to)
              : (0, r.j_)(e, this._value, 0, e.length, this._from, this._to);
          }
          value() {
            return this._value.substring(this._from, this._to);
          }
        }
        class c {
          constructor() {
            (this._states = []), (this._stateIdx = 0);
          }
          reset(e) {
            if (
              ((this._value = e),
              (this._states = []),
              this._value.scheme && this._states.push(1),
              this._value.authority && this._states.push(2),
              this._value.path)
            ) {
              const t = e.scheme === s.l.file && o.IJ;
              (this._pathIterator = new l(!1, t)),
                this._pathIterator.reset(e.path),
                this._pathIterator.value() && this._states.push(3);
            }
            return (
              this._value.query && this._states.push(4),
              this._value.fragment && this._states.push(5),
              (this._stateIdx = 0),
              this
            );
          }
          next() {
            return (
              3 === this._states[this._stateIdx] && this._pathIterator.hasNext()
                ? this._pathIterator.next()
                : (this._stateIdx += 1),
              this
            );
          }
          hasNext() {
            return (
              (3 === this._states[this._stateIdx] &&
                this._pathIterator.hasNext()) ||
              this._stateIdx < this._states.length - 1
            );
          }
          cmp(e) {
            if (1 === this._states[this._stateIdx])
              return (0, r.qu)(e, this._value.scheme);
            if (2 === this._states[this._stateIdx])
              return (0, r.j_)(e, this._value.authority);
            if (3 === this._states[this._stateIdx])
              return this._pathIterator.cmp(e);
            if (4 === this._states[this._stateIdx])
              return (0, r.qu)(e, this._value.query);
            if (5 === this._states[this._stateIdx])
              return (0, r.qu)(e, this._value.fragment);
            throw new Error();
          }
          value() {
            if (1 === this._states[this._stateIdx]) return this._value.scheme;
            if (2 === this._states[this._stateIdx])
              return this._value.authority;
            if (3 === this._states[this._stateIdx])
              return this._pathIterator.value();
            if (4 === this._states[this._stateIdx]) return this._value.query;
            if (5 === this._states[this._stateIdx]) return this._value.fragment;
            throw new Error();
          }
        }
        class d {}
        class h {
          constructor(e) {
            this._iter = e;
          }
          static forUris() {
            return new h(new c());
          }
          static forStrings() {
            return new h(new a());
          }
          clear() {
            this._root = void 0;
          }
          set(e, t) {
            const i = this._iter.reset(e);
            let n;
            for (
              this._root ||
                ((this._root = new d()), (this._root.segment = i.value())),
                n = this._root;
              ;

            ) {
              const e = i.cmp(n.segment);
              if (e > 0)
                n.left || ((n.left = new d()), (n.left.segment = i.value())),
                  (n = n.left);
              else if (e < 0)
                n.right || ((n.right = new d()), (n.right.segment = i.value())),
                  (n = n.right);
              else {
                if (!i.hasNext()) break;
                i.next(),
                  n.mid || ((n.mid = new d()), (n.mid.segment = i.value())),
                  (n = n.mid);
              }
            }
            const r = n.value;
            return (n.value = t), (n.key = e), r;
          }
          get(e) {
            const t = this._iter.reset(e);
            let i = this._root;
            for (; i; ) {
              const e = t.cmp(i.segment);
              if (e > 0) i = i.left;
              else if (e < 0) i = i.right;
              else {
                if (!t.hasNext()) break;
                t.next(), (i = i.mid);
              }
            }
            return i ? i.value : void 0;
          }
          findSubstr(e) {
            const t = this._iter.reset(e);
            let i,
              n = this._root;
            for (; n; ) {
              const e = t.cmp(n.segment);
              if (e > 0) n = n.left;
              else if (e < 0) n = n.right;
              else {
                if (!t.hasNext()) break;
                t.next(), (i = n.value || i), (n = n.mid);
              }
            }
            return (n && n.value) || i;
          }
          forEach(e) {
            this._forEach(this._root, e);
          }
          _forEach(e, t) {
            e &&
              (this._forEach(e.left, t),
              e.value && t(e.value, e.key),
              this._forEach(e.mid, t),
              this._forEach(e.right, t));
          }
        }
        class u {
          constructor(e, t) {
            (this[Symbol.toStringTag] = 'ResourceMap'),
              e instanceof u
                ? ((this.map = new Map(e.map)),
                  (this.toKey = null != t ? t : u.defaultToKey))
                : ((this.map = new Map()),
                  (this.toKey = null != e ? e : u.defaultToKey));
          }
          set(e, t) {
            return this.map.set(this.toKey(e), t), this;
          }
          get(e) {
            return this.map.get(this.toKey(e));
          }
          has(e) {
            return this.map.has(this.toKey(e));
          }
          get size() {
            return this.map.size;
          }
          clear() {
            this.map.clear();
          }
          delete(e) {
            return this.map.delete(this.toKey(e));
          }
          forEach(e, t) {
            void 0 !== t && (e = e.bind(t));
            for (let [t, i] of this.map) e(i, n.o.parse(t), this);
          }
          values() {
            return this.map.values();
          }
          *keys() {
            for (let e of this.map.keys()) yield n.o.parse(e);
          }
          *entries() {
            for (let e of this.map.entries()) yield [n.o.parse(e[0]), e[1]];
          }
          *[Symbol.iterator]() {
            for (let e of this.map) yield [n.o.parse(e[0]), e[1]];
          }
        }
        u.defaultToKey = (e) => e.toString();
        class g {
          constructor() {
            (this[Symbol.toStringTag] = 'LinkedMap'),
              (this._map = new Map()),
              (this._head = void 0),
              (this._tail = void 0),
              (this._size = 0),
              (this._state = 0);
          }
          clear() {
            this._map.clear(),
              (this._head = void 0),
              (this._tail = void 0),
              (this._size = 0),
              this._state++;
          }
          isEmpty() {
            return !this._head && !this._tail;
          }
          get size() {
            return this._size;
          }
          get first() {
            var e;
            return null === (e = this._head) || void 0 === e ? void 0 : e.value;
          }
          get last() {
            var e;
            return null === (e = this._tail) || void 0 === e ? void 0 : e.value;
          }
          has(e) {
            return this._map.has(e);
          }
          get(e, t = 0) {
            const i = this._map.get(e);
            if (i) return 0 !== t && this.touch(i, t), i.value;
          }
          set(e, t, i = 0) {
            let n = this._map.get(e);
            if (n) (n.value = t), 0 !== i && this.touch(n, i);
            else {
              switch (
                ((n = { key: e, value: t, next: void 0, previous: void 0 }), i)
              ) {
                case 0:
                  this.addItemLast(n);
                  break;
                case 1:
                  this.addItemFirst(n);
                  break;
                case 2:
                default:
                  this.addItemLast(n);
              }
              this._map.set(e, n), this._size++;
            }
            return this;
          }
          delete(e) {
            return !!this.remove(e);
          }
          remove(e) {
            const t = this._map.get(e);
            if (t)
              return (
                this._map.delete(e), this.removeItem(t), this._size--, t.value
              );
          }
          shift() {
            if (!this._head && !this._tail) return;
            if (!this._head || !this._tail) throw new Error('Invalid list');
            const e = this._head;
            return (
              this._map.delete(e.key), this.removeItem(e), this._size--, e.value
            );
          }
          forEach(e, t) {
            const i = this._state;
            let n = this._head;
            for (; n; ) {
              if (
                (t ? e.bind(t)(n.value, n.key, this) : e(n.value, n.key, this),
                this._state !== i)
              )
                throw new Error('LinkedMap got modified during iteration.');
              n = n.next;
            }
          }
          keys() {
            const e = this,
              t = this._state;
            let i = this._head;
            const n = {
              [Symbol.iterator]: () => n,
              next() {
                if (e._state !== t)
                  throw new Error('LinkedMap got modified during iteration.');
                if (i) {
                  const e = { value: i.key, done: !1 };
                  return (i = i.next), e;
                }
                return { value: void 0, done: !0 };
              },
            };
            return n;
          }
          values() {
            const e = this,
              t = this._state;
            let i = this._head;
            const n = {
              [Symbol.iterator]: () => n,
              next() {
                if (e._state !== t)
                  throw new Error('LinkedMap got modified during iteration.');
                if (i) {
                  const e = { value: i.value, done: !1 };
                  return (i = i.next), e;
                }
                return { value: void 0, done: !0 };
              },
            };
            return n;
          }
          entries() {
            const e = this,
              t = this._state;
            let i = this._head;
            const n = {
              [Symbol.iterator]: () => n,
              next() {
                if (e._state !== t)
                  throw new Error('LinkedMap got modified during iteration.');
                if (i) {
                  const e = { value: [i.key, i.value], done: !1 };
                  return (i = i.next), e;
                }
                return { value: void 0, done: !0 };
              },
            };
            return n;
          }
          [Symbol.iterator]() {
            return this.entries();
          }
          trimOld(e) {
            if (e >= this.size) return;
            if (0 === e) return void this.clear();
            let t = this._head,
              i = this.size;
            for (; t && i > e; ) this._map.delete(t.key), (t = t.next), i--;
            (this._head = t),
              (this._size = i),
              t && (t.previous = void 0),
              this._state++;
          }
          addItemFirst(e) {
            if (this._head || this._tail) {
              if (!this._head) throw new Error('Invalid list');
              (e.next = this._head), (this._head.previous = e);
            } else this._tail = e;
            (this._head = e), this._state++;
          }
          addItemLast(e) {
            if (this._head || this._tail) {
              if (!this._tail) throw new Error('Invalid list');
              (e.previous = this._tail), (this._tail.next = e);
            } else this._head = e;
            (this._tail = e), this._state++;
          }
          removeItem(e) {
            if (e === this._head && e === this._tail)
              (this._head = void 0), (this._tail = void 0);
            else if (e === this._head) {
              if (!e.next) throw new Error('Invalid list');
              (e.next.previous = void 0), (this._head = e.next);
            } else if (e === this._tail) {
              if (!e.previous) throw new Error('Invalid list');
              (e.previous.next = void 0), (this._tail = e.previous);
            } else {
              const t = e.next,
                i = e.previous;
              if (!t || !i) throw new Error('Invalid list');
              (t.previous = i), (i.next = t);
            }
            (e.next = void 0), (e.previous = void 0), this._state++;
          }
          touch(e, t) {
            if (!this._head || !this._tail) throw new Error('Invalid list');
            if (1 === t || 2 === t)
              if (1 === t) {
                if (e === this._head) return;
                const t = e.next,
                  i = e.previous;
                e === this._tail
                  ? ((i.next = void 0), (this._tail = i))
                  : ((t.previous = i), (i.next = t)),
                  (e.previous = void 0),
                  (e.next = this._head),
                  (this._head.previous = e),
                  (this._head = e),
                  this._state++;
              } else if (2 === t) {
                if (e === this._tail) return;
                const t = e.next,
                  i = e.previous;
                e === this._head
                  ? ((t.previous = void 0), (this._head = t))
                  : ((t.previous = i), (i.next = t)),
                  (e.next = void 0),
                  (e.previous = this._tail),
                  (this._tail.next = e),
                  (this._tail = e),
                  this._state++;
              }
          }
          toJSON() {
            const e = [];
            return (
              this.forEach((t, i) => {
                e.push([i, t]);
              }),
              e
            );
          }
          fromJSON(e) {
            this.clear();
            for (const [t, i] of e) this.set(t, i);
          }
        }
        class f extends g {
          constructor(e, t = 1) {
            super(),
              (this._limit = e),
              (this._ratio = Math.min(Math.max(0, t), 1));
          }
          get limit() {
            return this._limit;
          }
          set limit(e) {
            (this._limit = e), this.checkTrim();
          }
          get(e, t = 2) {
            return super.get(e, t);
          }
          peek(e) {
            return super.get(e, 0);
          }
          set(e, t) {
            return super.set(e, t, 2), this.checkTrim(), this;
          }
          checkTrim() {
            this.size > this._limit &&
              this.trimOld(Math.round(this._limit * this._ratio));
          }
        }
      },
      33720: function (e) {
        e.exports = (function () {
          'use strict';
          function e(e, t) {
            for (var i = 0; i < t.length; i++) {
              var n = t[i];
              (n.enumerable = n.enumerable || !1),
                (n.configurable = !0),
                'value' in n && (n.writable = !0),
                Object.defineProperty(e, n.key, n);
            }
          }
          function t(e, t) {
            (null == t || t > e.length) && (t = e.length);
            for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];
            return n;
          }
          function i(e, i) {
            var n;
            if ('undefined' == typeof Symbol || null == e[Symbol.iterator]) {
              if (
                Array.isArray(e) ||
                (n = (function (e, i) {
                  if (e) {
                    if ('string' == typeof e) return t(e, i);
                    var n = Object.prototype.toString.call(e).slice(8, -1);
                    return (
                      'Object' === n &&
                        e.constructor &&
                        (n = e.constructor.name),
                      'Map' === n || 'Set' === n
                        ? Array.from(e)
                        : 'Arguments' === n ||
                          /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)
                        ? t(e, i)
                        : void 0
                    );
                  }
                })(e)) ||
                (i && e && 'number' == typeof e.length)
              ) {
                n && (e = n);
                var r = 0;
                return function () {
                  return r >= e.length
                    ? { done: !0 }
                    : { done: !1, value: e[r++] };
                };
              }
              throw new TypeError(
                'Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
              );
            }
            return (n = e[Symbol.iterator]()).next.bind(n);
          }
          var n = (function (e, t) {
              return e((t = { exports: {} }), t.exports), t.exports;
            })(function (e) {
              function t() {
                return {
                  baseUrl: null,
                  breaks: !1,
                  gfm: !0,
                  headerIds: !0,
                  headerPrefix: '',
                  highlight: null,
                  langPrefix: 'language-',
                  mangle: !0,
                  pedantic: !1,
                  renderer: null,
                  sanitize: !1,
                  sanitizer: null,
                  silent: !1,
                  smartLists: !1,
                  smartypants: !1,
                  tokenizer: null,
                  walkTokens: null,
                  xhtml: !1,
                };
              }
              e.exports = {
                defaults: {
                  baseUrl: null,
                  breaks: !1,
                  gfm: !0,
                  headerIds: !0,
                  headerPrefix: '',
                  highlight: null,
                  langPrefix: 'language-',
                  mangle: !0,
                  pedantic: !1,
                  renderer: null,
                  sanitize: !1,
                  sanitizer: null,
                  silent: !1,
                  smartLists: !1,
                  smartypants: !1,
                  tokenizer: null,
                  walkTokens: null,
                  xhtml: !1,
                },
                getDefaults: t,
                changeDefaults: function (t) {
                  e.exports.defaults = t;
                },
              };
            }),
            r = (n.defaults, n.getDefaults, n.changeDefaults, /[&<>"']/),
            s = /[&<>"']/g,
            o = /[<>"']|&(?!#?\w+;)/,
            a = /[<>"']|&(?!#?\w+;)/g,
            l = {
              '&': '&amp;',
              '<': '&lt;',
              '>': '&gt;',
              '"': '&quot;',
              "'": '&#39;',
            },
            c = function (e) {
              return l[e];
            };
          var d = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;
          function h(e) {
            return e.replace(d, function (e, t) {
              return 'colon' === (t = t.toLowerCase())
                ? ':'
                : '#' === t.charAt(0)
                ? 'x' === t.charAt(1)
                  ? String.fromCharCode(parseInt(t.substring(2), 16))
                  : String.fromCharCode(+t.substring(1))
                : '';
            });
          }
          var u = /(^|[^\[])\^/g;
          var g = /[^\w:]/g,
            f = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
          var p = {},
            m = /^[^:]+:\/*[^/]*$/,
            _ = /^([^:]+:)[\s\S]*$/,
            b = /^([^:]+:\/*[^/]*)[\s\S]*$/;
          function v(e, t) {
            p[' ' + e] ||
              (m.test(e)
                ? (p[' ' + e] = e + '/')
                : (p[' ' + e] = y(e, '/', !0)));
            var i = -1 === (e = p[' ' + e]).indexOf(':');
            return '//' === t.substring(0, 2)
              ? i
                ? t
                : e.replace(_, '$1') + t
              : '/' === t.charAt(0)
              ? i
                ? t
                : e.replace(b, '$1') + t
              : e + t;
          }
          function y(e, t, i) {
            var n = e.length;
            if (0 === n) return '';
            for (var r = 0; r < n; ) {
              var s = e.charAt(n - r - 1);
              if (s !== t || i) {
                if (s === t || !i) break;
                r++;
              } else r++;
            }
            return e.substr(0, n - r);
          }
          var w = function (e, t) {
              if (t) {
                if (r.test(e)) return e.replace(s, c);
              } else if (o.test(e)) return e.replace(a, c);
              return e;
            },
            C = h,
            S = function (e, t) {
              (e = e.source || e), (t = t || '');
              var i = {
                replace: function (t, n) {
                  return (
                    (n = (n = n.source || n).replace(u, '$1')),
                    (e = e.replace(t, n)),
                    i
                  );
                },
                getRegex: function () {
                  return new RegExp(e, t);
                },
              };
              return i;
            },
            k = function (e, t, i) {
              if (e) {
                var n;
                try {
                  n = decodeURIComponent(h(i)).replace(g, '').toLowerCase();
                } catch (e) {
                  return null;
                }
                if (
                  0 === n.indexOf('javascript:') ||
                  0 === n.indexOf('vbscript:') ||
                  0 === n.indexOf('data:')
                )
                  return null;
              }
              t && !f.test(i) && (i = v(t, i));
              try {
                i = encodeURI(i).replace(/%25/g, '%');
              } catch (e) {
                return null;
              }
              return i;
            },
            x = { exec: function () {} },
            L = function (e) {
              for (var t, i, n = 1; n < arguments.length; n++)
                for (i in (t = arguments[n]))
                  Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
              return e;
            },
            M = function (e, t) {
              var i = e
                  .replace(/\|/g, function (e, t, i) {
                    for (var n = !1, r = t; --r >= 0 && '\\' === i[r]; ) n = !n;
                    return n ? '|' : ' |';
                  })
                  .split(/ \|/),
                n = 0;
              if (i.length > t) i.splice(t);
              else for (; i.length < t; ) i.push('');
              for (; n < i.length; n++)
                i[n] = i[n].trim().replace(/\\\|/g, '|');
              return i;
            },
            D = y,
            N = function (e, t) {
              if (-1 === e.indexOf(t[1])) return -1;
              for (var i = e.length, n = 0, r = 0; r < i; r++)
                if ('\\' === e[r]) r++;
                else if (e[r] === t[0]) n++;
                else if (e[r] === t[1] && --n < 0) return r;
              return -1;
            },
            E = function (e) {
              e && e.sanitize && e.silent;
            },
            T = n.defaults,
            I = D,
            O = M,
            A = w,
            R = N;
          function P(e, t, i) {
            var n = t.href,
              r = t.title ? A(t.title) : null,
              s = e[1].replace(/\\([\[\]])/g, '$1');
            return '!' !== e[0].charAt(0)
              ? { type: 'link', raw: i, href: n, title: r, text: s }
              : { type: 'image', raw: i, href: n, title: r, text: A(s) };
          }
          var F = (function () {
              function e(e) {
                this.options = e || T;
              }
              var t = e.prototype;
              return (
                (t.space = function (e) {
                  var t = this.rules.block.newline.exec(e);
                  if (t)
                    return t[0].length > 1
                      ? { type: 'space', raw: t[0] }
                      : { raw: '\n' };
                }),
                (t.code = function (e, t) {
                  var i = this.rules.block.code.exec(e);
                  if (i) {
                    var n = t[t.length - 1];
                    if (n && 'paragraph' === n.type)
                      return { raw: i[0], text: i[0].trimRight() };
                    var r = i[0].replace(/^ {4}/gm, '');
                    return {
                      type: 'code',
                      raw: i[0],
                      codeBlockStyle: 'indented',
                      text: this.options.pedantic ? r : I(r, '\n'),
                    };
                  }
                }),
                (t.fences = function (e) {
                  var t = this.rules.block.fences.exec(e);
                  if (t) {
                    var i = t[0],
                      n = (function (e, t) {
                        var i = e.match(/^(\s+)(?:```)/);
                        if (null === i) return t;
                        var n = i[1];
                        return t
                          .split('\n')
                          .map(function (e) {
                            var t = e.match(/^\s+/);
                            return null === t
                              ? e
                              : t[0].length >= n.length
                              ? e.slice(n.length)
                              : e;
                          })
                          .join('\n');
                      })(i, t[3] || '');
                    return {
                      type: 'code',
                      raw: i,
                      lang: t[2] ? t[2].trim() : t[2],
                      text: n,
                    };
                  }
                }),
                (t.heading = function (e) {
                  var t = this.rules.block.heading.exec(e);
                  if (t)
                    return {
                      type: 'heading',
                      raw: t[0],
                      depth: t[1].length,
                      text: t[2],
                    };
                }),
                (t.nptable = function (e) {
                  var t = this.rules.block.nptable.exec(e);
                  if (t) {
                    var i = {
                      type: 'table',
                      header: O(t[1].replace(/^ *| *\| *$/g, '')),
                      align: t[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
                      cells: t[3] ? t[3].replace(/\n$/, '').split('\n') : [],
                      raw: t[0],
                    };
                    if (i.header.length === i.align.length) {
                      var n,
                        r = i.align.length;
                      for (n = 0; n < r; n++)
                        /^ *-+: *$/.test(i.align[n])
                          ? (i.align[n] = 'right')
                          : /^ *:-+: *$/.test(i.align[n])
                          ? (i.align[n] = 'center')
                          : /^ *:-+ *$/.test(i.align[n])
                          ? (i.align[n] = 'left')
                          : (i.align[n] = null);
                      for (r = i.cells.length, n = 0; n < r; n++)
                        i.cells[n] = O(i.cells[n], i.header.length);
                      return i;
                    }
                  }
                }),
                (t.hr = function (e) {
                  var t = this.rules.block.hr.exec(e);
                  if (t) return { type: 'hr', raw: t[0] };
                }),
                (t.blockquote = function (e) {
                  var t = this.rules.block.blockquote.exec(e);
                  if (t) {
                    var i = t[0].replace(/^ *> ?/gm, '');
                    return { type: 'blockquote', raw: t[0], text: i };
                  }
                }),
                (t.list = function (e) {
                  var t = this.rules.block.list.exec(e);
                  if (t) {
                    for (
                      var i,
                        n,
                        r,
                        s,
                        o,
                        a,
                        l,
                        c = t[0],
                        d = t[2],
                        h = d.length > 1,
                        u = ')' === d[d.length - 1],
                        g = {
                          type: 'list',
                          raw: c,
                          ordered: h,
                          start: h ? +d.slice(0, -1) : '',
                          loose: !1,
                          items: [],
                        },
                        f = t[0].match(this.rules.block.item),
                        p = !1,
                        m = f.length,
                        _ = 0;
                      _ < m;
                      _++
                    )
                      (c = i = f[_]),
                        (n = i.length),
                        ~(i = i.replace(/^ *([*+-]|\d+[.)]) */, '')).indexOf(
                          '\n '
                        ) &&
                          ((n -= i.length),
                          (i = this.options.pedantic
                            ? i.replace(/^ {1,4}/gm, '')
                            : i.replace(
                                new RegExp('^ {1,' + n + '}', 'gm'),
                                ''
                              ))),
                        _ !== m - 1 &&
                          ((r = this.rules.block.bullet.exec(f[_ + 1])[0]),
                          (h
                            ? 1 === r.length || (!u && ')' === r[r.length - 1])
                            : r.length > 1 ||
                              (this.options.smartLists && r !== d)) &&
                            ((s = f.slice(_ + 1).join('\n')),
                            (g.raw = g.raw.substring(
                              0,
                              g.raw.length - s.length
                            )),
                            (_ = m - 1))),
                        (o = p || /\n\n(?!\s*$)/.test(i)),
                        _ !== m - 1 &&
                          ((p = '\n' === i.charAt(i.length - 1)), o || (o = p)),
                        o && (g.loose = !0),
                        (l = void 0),
                        (a = /^\[[ xX]\] /.test(i)) &&
                          ((l = ' ' !== i[1]),
                          (i = i.replace(/^\[[ xX]\] +/, ''))),
                        g.items.push({
                          type: 'list_item',
                          raw: c,
                          task: a,
                          checked: l,
                          loose: o,
                          text: i,
                        });
                    return g;
                  }
                }),
                (t.html = function (e) {
                  var t = this.rules.block.html.exec(e);
                  if (t)
                    return {
                      type: this.options.sanitize ? 'paragraph' : 'html',
                      raw: t[0],
                      pre:
                        !this.options.sanitizer &&
                        ('pre' === t[1] ||
                          'script' === t[1] ||
                          'style' === t[1]),
                      text: this.options.sanitize
                        ? this.options.sanitizer
                          ? this.options.sanitizer(t[0])
                          : A(t[0])
                        : t[0],
                    };
                }),
                (t.def = function (e) {
                  var t = this.rules.block.def.exec(e);
                  if (t)
                    return (
                      t[3] && (t[3] = t[3].substring(1, t[3].length - 1)),
                      {
                        tag: t[1].toLowerCase().replace(/\s+/g, ' '),
                        raw: t[0],
                        href: t[2],
                        title: t[3],
                      }
                    );
                }),
                (t.table = function (e) {
                  var t = this.rules.block.table.exec(e);
                  if (t) {
                    var i = {
                      type: 'table',
                      header: O(t[1].replace(/^ *| *\| *$/g, '')),
                      align: t[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
                      cells: t[3] ? t[3].replace(/\n$/, '').split('\n') : [],
                    };
                    if (i.header.length === i.align.length) {
                      i.raw = t[0];
                      var n,
                        r = i.align.length;
                      for (n = 0; n < r; n++)
                        /^ *-+: *$/.test(i.align[n])
                          ? (i.align[n] = 'right')
                          : /^ *:-+: *$/.test(i.align[n])
                          ? (i.align[n] = 'center')
                          : /^ *:-+ *$/.test(i.align[n])
                          ? (i.align[n] = 'left')
                          : (i.align[n] = null);
                      for (r = i.cells.length, n = 0; n < r; n++)
                        i.cells[n] = O(
                          i.cells[n].replace(/^ *\| *| *\| *$/g, ''),
                          i.header.length
                        );
                      return i;
                    }
                  }
                }),
                (t.lheading = function (e) {
                  var t = this.rules.block.lheading.exec(e);
                  if (t)
                    return {
                      type: 'heading',
                      raw: t[0],
                      depth: '=' === t[2].charAt(0) ? 1 : 2,
                      text: t[1],
                    };
                }),
                (t.paragraph = function (e) {
                  var t = this.rules.block.paragraph.exec(e);
                  if (t)
                    return {
                      type: 'paragraph',
                      raw: t[0],
                      text:
                        '\n' === t[1].charAt(t[1].length - 1)
                          ? t[1].slice(0, -1)
                          : t[1],
                    };
                }),
                (t.text = function (e, t) {
                  var i = this.rules.block.text.exec(e);
                  if (i) {
                    var n = t[t.length - 1];
                    return n && 'text' === n.type
                      ? { raw: i[0], text: i[0] }
                      : { type: 'text', raw: i[0], text: i[0] };
                  }
                }),
                (t.escape = function (e) {
                  var t = this.rules.inline.escape.exec(e);
                  if (t) return { type: 'escape', raw: t[0], text: A(t[1]) };
                }),
                (t.tag = function (e, t, i) {
                  var n = this.rules.inline.tag.exec(e);
                  if (n)
                    return (
                      !t && /^<a /i.test(n[0])
                        ? (t = !0)
                        : t && /^<\/a>/i.test(n[0]) && (t = !1),
                      !i && /^<(pre|code|kbd|script)(\s|>)/i.test(n[0])
                        ? (i = !0)
                        : i &&
                          /^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0]) &&
                          (i = !1),
                      {
                        type: this.options.sanitize ? 'text' : 'html',
                        raw: n[0],
                        inLink: t,
                        inRawBlock: i,
                        text: this.options.sanitize
                          ? this.options.sanitizer
                            ? this.options.sanitizer(n[0])
                            : A(n[0])
                          : n[0],
                      }
                    );
                }),
                (t.link = function (e) {
                  var t = this.rules.inline.link.exec(e);
                  if (t) {
                    var i = R(t[2], '()');
                    if (i > -1) {
                      var n =
                        (0 === t[0].indexOf('!') ? 5 : 4) + t[1].length + i;
                      (t[2] = t[2].substring(0, i)),
                        (t[0] = t[0].substring(0, n).trim()),
                        (t[3] = '');
                    }
                    var r = t[2],
                      s = '';
                    if (this.options.pedantic) {
                      var o = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);
                      o ? ((r = o[1]), (s = o[3])) : (s = '');
                    } else s = t[3] ? t[3].slice(1, -1) : '';
                    return P(
                      t,
                      {
                        href: (r = r.trim().replace(/^<([\s\S]*)>$/, '$1'))
                          ? r.replace(this.rules.inline._escapes, '$1')
                          : r,
                        title: s
                          ? s.replace(this.rules.inline._escapes, '$1')
                          : s,
                      },
                      t[0]
                    );
                  }
                }),
                (t.reflink = function (e, t) {
                  var i;
                  if (
                    (i = this.rules.inline.reflink.exec(e)) ||
                    (i = this.rules.inline.nolink.exec(e))
                  ) {
                    var n = (i[2] || i[1]).replace(/\s+/g, ' ');
                    if (!(n = t[n.toLowerCase()]) || !n.href) {
                      var r = i[0].charAt(0);
                      return { type: 'text', raw: r, text: r };
                    }
                    return P(i, n, i[0]);
                  }
                }),
                (t.strong = function (e, t, i) {
                  void 0 === i && (i = '');
                  var n = this.rules.inline.strong.start.exec(e);
                  if (
                    n &&
                    (!n[1] ||
                      (n[1] &&
                        ('' === i || this.rules.inline.punctuation.exec(i))))
                  ) {
                    t = t.slice(-1 * e.length);
                    var r,
                      s =
                        '**' === n[0]
                          ? this.rules.inline.strong.endAst
                          : this.rules.inline.strong.endUnd;
                    for (s.lastIndex = 0; null != (n = s.exec(t)); )
                      if (
                        (r = this.rules.inline.strong.middle.exec(
                          t.slice(0, n.index + 3)
                        ))
                      )
                        return {
                          type: 'strong',
                          raw: e.slice(0, r[0].length),
                          text: e.slice(2, r[0].length - 2),
                        };
                  }
                }),
                (t.em = function (e, t, i) {
                  void 0 === i && (i = '');
                  var n = this.rules.inline.em.start.exec(e);
                  if (
                    n &&
                    (!n[1] ||
                      (n[1] &&
                        ('' === i || this.rules.inline.punctuation.exec(i))))
                  ) {
                    t = t.slice(-1 * e.length);
                    var r,
                      s =
                        '*' === n[0]
                          ? this.rules.inline.em.endAst
                          : this.rules.inline.em.endUnd;
                    for (s.lastIndex = 0; null != (n = s.exec(t)); )
                      if (
                        (r = this.rules.inline.em.middle.exec(
                          t.slice(0, n.index + 2)
                        ))
                      )
                        return {
                          type: 'em',
                          raw: e.slice(0, r[0].length),
                          text: e.slice(1, r[0].length - 1),
                        };
                  }
                }),
                (t.codespan = function (e) {
                  var t = this.rules.inline.code.exec(e);
                  if (t) {
                    var i = t[2].replace(/\n/g, ' '),
                      n = /[^ ]/.test(i),
                      r = i.startsWith(' ') && i.endsWith(' ');
                    return (
                      n && r && (i = i.substring(1, i.length - 1)),
                      (i = A(i, !0)),
                      { type: 'codespan', raw: t[0], text: i }
                    );
                  }
                }),
                (t.br = function (e) {
                  var t = this.rules.inline.br.exec(e);
                  if (t) return { type: 'br', raw: t[0] };
                }),
                (t.del = function (e) {
                  var t = this.rules.inline.del.exec(e);
                  if (t) return { type: 'del', raw: t[0], text: t[1] };
                }),
                (t.autolink = function (e, t) {
                  var i,
                    n,
                    r = this.rules.inline.autolink.exec(e);
                  if (r)
                    return (
                      (n =
                        '@' === r[2]
                          ? 'mailto:' +
                            (i = A(this.options.mangle ? t(r[1]) : r[1]))
                          : (i = A(r[1]))),
                      {
                        type: 'link',
                        raw: r[0],
                        text: i,
                        href: n,
                        tokens: [{ type: 'text', raw: i, text: i }],
                      }
                    );
                }),
                (t.url = function (e, t) {
                  var i;
                  if ((i = this.rules.inline.url.exec(e))) {
                    var n, r;
                    if ('@' === i[2])
                      r =
                        'mailto:' +
                        (n = A(this.options.mangle ? t(i[0]) : i[0]));
                    else {
                      var s;
                      do {
                        (s = i[0]),
                          (i[0] = this.rules.inline._backpedal.exec(i[0])[0]);
                      } while (s !== i[0]);
                      (n = A(i[0])), (r = 'www.' === i[1] ? 'http://' + n : n);
                    }
                    return {
                      type: 'link',
                      raw: i[0],
                      text: n,
                      href: r,
                      tokens: [{ type: 'text', raw: n, text: n }],
                    };
                  }
                }),
                (t.inlineText = function (e, t, i) {
                  var n,
                    r = this.rules.inline.text.exec(e);
                  if (r)
                    return (
                      (n = t
                        ? this.options.sanitize
                          ? this.options.sanitizer
                            ? this.options.sanitizer(r[0])
                            : A(r[0])
                          : r[0]
                        : A(this.options.smartypants ? i(r[0]) : r[0])),
                      { type: 'text', raw: r[0], text: n }
                    );
                }),
                e
              );
            })(),
            B = x,
            W = S,
            Y = L,
            H = {
              newline: /^\n+/,
              code: /^( {4}[^\n]+\n*)+/,
              fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,
              hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
              heading: /^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,
              blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
              list: /^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
              html:
                '^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))',
              def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
              nptable: B,
              table: B,
              lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
              _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,
              text: /^[^\n]+/,
              _label: /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,
              _title: /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,
            };
          (H.def = W(H.def)
            .replace('label', H._label)
            .replace('title', H._title)
            .getRegex()),
            (H.bullet = /(?:[*+-]|\d{1,9}[.)])/),
            (H.item = /^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/),
            (H.item = W(H.item, 'gm').replace(/bull/g, H.bullet).getRegex()),
            (H.list = W(H.list)
              .replace(/bull/g, H.bullet)
              .replace(
                'hr',
                '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))'
              )
              .replace('def', '\\n+(?=' + H.def.source + ')')
              .getRegex()),
            (H._tag =
              'address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul'),
            (H._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/),
            (H.html = W(H.html, 'i')
              .replace('comment', H._comment)
              .replace('tag', H._tag)
              .replace(
                'attribute',
                / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/
              )
              .getRegex()),
            (H.paragraph = W(H._paragraph)
              .replace('hr', H.hr)
              .replace('heading', ' {0,3}#{1,6} ')
              .replace('|lheading', '')
              .replace('blockquote', ' {0,3}>')
              .replace(
                'fences',
                ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n'
              )
              .replace('list', ' {0,3}(?:[*+-]|1[.)]) ')
              .replace(
                'html',
                '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)'
              )
              .replace('tag', H._tag)
              .getRegex()),
            (H.blockquote = W(H.blockquote)
              .replace('paragraph', H.paragraph)
              .getRegex()),
            (H.normal = Y({}, H)),
            (H.gfm = Y({}, H.normal, {
              nptable:
                '^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)',
              table:
                '^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)',
            })),
            (H.gfm.nptable = W(H.gfm.nptable)
              .replace('hr', H.hr)
              .replace('heading', ' {0,3}#{1,6} ')
              .replace('blockquote', ' {0,3}>')
              .replace('code', ' {4}[^\\n]')
              .replace(
                'fences',
                ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n'
              )
              .replace('list', ' {0,3}(?:[*+-]|1[.)]) ')
              .replace(
                'html',
                '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)'
              )
              .replace('tag', H._tag)
              .getRegex()),
            (H.gfm.table = W(H.gfm.table)
              .replace('hr', H.hr)
              .replace('heading', ' {0,3}#{1,6} ')
              .replace('blockquote', ' {0,3}>')
              .replace('code', ' {4}[^\\n]')
              .replace(
                'fences',
                ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n'
              )
              .replace('list', ' {0,3}(?:[*+-]|1[.)]) ')
              .replace(
                'html',
                '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)'
              )
              .replace('tag', H._tag)
              .getRegex()),
            (H.pedantic = Y({}, H.normal, {
              html: W(
                '^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))'
              )
                .replace('comment', H._comment)
                .replace(
                  /tag/g,
                  '(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b'
                )
                .getRegex(),
              def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
              heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,
              fences: B,
              paragraph: W(H.normal._paragraph)
                .replace('hr', H.hr)
                .replace('heading', ' *#{1,6} *[^\n]')
                .replace('lheading', H.lheading)
                .replace('blockquote', ' {0,3}>')
                .replace('|fences', '')
                .replace('|list', '')
                .replace('|html', '')
                .getRegex(),
            }));
          var j = {
            escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
            autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
            url: B,
            tag:
              '^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
            link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
            reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
            nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
            reflinkSearch: 'reflink|nolink(?!\\()',
            strong: {
              start: /^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,
              middle: /^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,
              endAst: /[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation\s]|$))/,
              endUnd: /[^\s]__(?!_)(?:(?=[punctuation\s])|$)/,
            },
            em: {
              start: /^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,
              middle: /^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,
              endAst: /[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation\s]|$))/,
              endUnd: /[^\s]_(?!_)(?:(?=[punctuation\s])|$)/,
            },
            code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
            br: /^( {2,}|\\)\n(?!\s*$)/,
            del: B,
            text: /^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/,
            punctuation: /^([\s*punctuation])/,
            _punctuation: '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~',
          };
          (j.punctuation = W(j.punctuation)
            .replace(/punctuation/g, j._punctuation)
            .getRegex()),
            (j._blockSkip = '\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>'),
            (j._overlapSkip = '__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*'),
            (j._comment = W(H._comment)
              .replace('(?:--\x3e|$)', '--\x3e')
              .getRegex()),
            (j.em.start = W(j.em.start)
              .replace(/punctuation/g, j._punctuation)
              .getRegex()),
            (j.em.middle = W(j.em.middle)
              .replace(/punctuation/g, j._punctuation)
              .replace(/overlapSkip/g, j._overlapSkip)
              .getRegex()),
            (j.em.endAst = W(j.em.endAst, 'g')
              .replace(/punctuation/g, j._punctuation)
              .getRegex()),
            (j.em.endUnd = W(j.em.endUnd, 'g')
              .replace(/punctuation/g, j._punctuation)
              .getRegex()),
            (j.strong.start = W(j.strong.start)
              .replace(/punctuation/g, j._punctuation)
              .getRegex()),
            (j.strong.middle = W(j.strong.middle)
              .replace(/punctuation/g, j._punctuation)
              .replace(/blockSkip/g, j._blockSkip)
              .getRegex()),
            (j.strong.endAst = W(j.strong.endAst, 'g')
              .replace(/punctuation/g, j._punctuation)
              .getRegex()),
            (j.strong.endUnd = W(j.strong.endUnd, 'g')
              .replace(/punctuation/g, j._punctuation)
              .getRegex()),
            (j.blockSkip = W(j._blockSkip, 'g').getRegex()),
            (j.overlapSkip = W(j._overlapSkip, 'g').getRegex()),
            (j._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g),
            (j._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/),
            (j._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/),
            (j.autolink = W(j.autolink)
              .replace('scheme', j._scheme)
              .replace('email', j._email)
              .getRegex()),
            (j._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/),
            (j.tag = W(j.tag)
              .replace('comment', j._comment)
              .replace('attribute', j._attribute)
              .getRegex()),
            (j._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/),
            (j._href = /<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/),
            (j._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/),
            (j.link = W(j.link)
              .replace('label', j._label)
              .replace('href', j._href)
              .replace('title', j._title)
              .getRegex()),
            (j.reflink = W(j.reflink).replace('label', j._label).getRegex()),
            (j.reflinkSearch = W(j.reflinkSearch, 'g')
              .replace('reflink', j.reflink)
              .replace('nolink', j.nolink)
              .getRegex()),
            (j.normal = Y({}, j)),
            (j.pedantic = Y({}, j.normal, {
              strong: {
                start: /^__|\*\*/,
                middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
                endAst: /\*\*(?!\*)/g,
                endUnd: /__(?!_)/g,
              },
              em: {
                start: /^_|\*/,
                middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
                endAst: /\*(?!\*)/g,
                endUnd: /_(?!_)/g,
              },
              link: W(/^!?\[(label)\]\((.*?)\)/)
                .replace('label', j._label)
                .getRegex(),
              reflink: W(/^!?\[(label)\]\s*\[([^\]]*)\]/)
                .replace('label', j._label)
                .getRegex(),
            })),
            (j.gfm = Y({}, j.normal, {
              escape: W(j.escape).replace('])', '~|])').getRegex(),
              _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
              url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
              _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
              del: /^~+(?=\S)([\s\S]*?\S)~+/,
              text: /^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/,
            })),
            (j.gfm.url = W(j.gfm.url, 'i')
              .replace('email', j.gfm._extended_email)
              .getRegex()),
            (j.breaks = Y({}, j.gfm, {
              br: W(j.br).replace('{2,}', '*').getRegex(),
              text: W(j.gfm.text)
                .replace('\\b_', '\\b_| {2,}\\n')
                .replace(/\{2,\}/g, '*')
                .getRegex(),
            }));
          var V = { block: H, inline: j },
            z = n.defaults,
            U = V.block,
            $ = V.inline;
          function K(e) {
            return e
              .replace(/---/g, '—')
              .replace(/--/g, '–')
              .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1‘')
              .replace(/'/g, '’')
              .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1“')
              .replace(/"/g, '”')
              .replace(/\.{3}/g, '…');
          }
          function q(e) {
            var t,
              i,
              n = '',
              r = e.length;
            for (t = 0; t < r; t++)
              (i = e.charCodeAt(t)),
                Math.random() > 0.5 && (i = 'x' + i.toString(16)),
                (n += '&#' + i + ';');
            return n;
          }
          var G = (function () {
              function t(e) {
                (this.tokens = []),
                  (this.tokens.links = Object.create(null)),
                  (this.options = e || z),
                  (this.options.tokenizer = this.options.tokenizer || new F()),
                  (this.tokenizer = this.options.tokenizer),
                  (this.tokenizer.options = this.options);
                var t = { block: U.normal, inline: $.normal };
                this.options.pedantic
                  ? ((t.block = U.pedantic), (t.inline = $.pedantic))
                  : this.options.gfm &&
                    ((t.block = U.gfm),
                    this.options.breaks
                      ? (t.inline = $.breaks)
                      : (t.inline = $.gfm)),
                  (this.tokenizer.rules = t);
              }
              t.lex = function (e, i) {
                return new t(i).lex(e);
              };
              var i,
                n,
                r,
                s = t.prototype;
              return (
                (s.lex = function (e) {
                  return (
                    (e = e.replace(/\r\n|\r/g, '\n').replace(/\t/g, '    ')),
                    this.blockTokens(e, this.tokens, !0),
                    this.inline(this.tokens),
                    this.tokens
                  );
                }),
                (s.blockTokens = function (e, t, i) {
                  var n, r, s, o;
                  for (
                    void 0 === t && (t = []),
                      void 0 === i && (i = !0),
                      e = e.replace(/^ +$/gm, '');
                    e;

                  )
                    if ((n = this.tokenizer.space(e)))
                      (e = e.substring(n.raw.length)), n.type && t.push(n);
                    else if ((n = this.tokenizer.code(e, t)))
                      (e = e.substring(n.raw.length)),
                        n.type
                          ? t.push(n)
                          : (((o = t[t.length - 1]).raw += '\n' + n.raw),
                            (o.text += '\n' + n.text));
                    else if ((n = this.tokenizer.fences(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if ((n = this.tokenizer.heading(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if ((n = this.tokenizer.nptable(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if ((n = this.tokenizer.hr(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if ((n = this.tokenizer.blockquote(e)))
                      (e = e.substring(n.raw.length)),
                        (n.tokens = this.blockTokens(n.text, [], i)),
                        t.push(n);
                    else if ((n = this.tokenizer.list(e))) {
                      for (
                        e = e.substring(n.raw.length),
                          s = n.items.length,
                          r = 0;
                        r < s;
                        r++
                      )
                        n.items[r].tokens = this.blockTokens(
                          n.items[r].text,
                          [],
                          !1
                        );
                      t.push(n);
                    } else if ((n = this.tokenizer.html(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if (i && (n = this.tokenizer.def(e)))
                      (e = e.substring(n.raw.length)),
                        this.tokens.links[n.tag] ||
                          (this.tokens.links[n.tag] = {
                            href: n.href,
                            title: n.title,
                          });
                    else if ((n = this.tokenizer.table(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if ((n = this.tokenizer.lheading(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if (i && (n = this.tokenizer.paragraph(e)))
                      (e = e.substring(n.raw.length)), t.push(n);
                    else if ((n = this.tokenizer.text(e, t)))
                      (e = e.substring(n.raw.length)),
                        n.type
                          ? t.push(n)
                          : (((o = t[t.length - 1]).raw += '\n' + n.raw),
                            (o.text += '\n' + n.text));
                    else if (e) {
                      var a = 'Infinite loop on byte: ' + e.charCodeAt(0);
                      if (this.options.silent) {
                        console.error(a);
                        break;
                      }
                      throw new Error(a);
                    }
                  return t;
                }),
                (s.inline = function (e) {
                  var t,
                    i,
                    n,
                    r,
                    s,
                    o,
                    a = e.length;
                  for (t = 0; t < a; t++)
                    switch ((o = e[t]).type) {
                      case 'paragraph':
                      case 'text':
                      case 'heading':
                        (o.tokens = []), this.inlineTokens(o.text, o.tokens);
                        break;
                      case 'table':
                        for (
                          o.tokens = { header: [], cells: [] },
                            r = o.header.length,
                            i = 0;
                          i < r;
                          i++
                        )
                          (o.tokens.header[i] = []),
                            this.inlineTokens(o.header[i], o.tokens.header[i]);
                        for (r = o.cells.length, i = 0; i < r; i++)
                          for (
                            s = o.cells[i], o.tokens.cells[i] = [], n = 0;
                            n < s.length;
                            n++
                          )
                            (o.tokens.cells[i][n] = []),
                              this.inlineTokens(s[n], o.tokens.cells[i][n]);
                        break;
                      case 'blockquote':
                        this.inline(o.tokens);
                        break;
                      case 'list':
                        for (r = o.items.length, i = 0; i < r; i++)
                          this.inline(o.items[i].tokens);
                    }
                  return e;
                }),
                (s.inlineTokens = function (e, t, i, n, r) {
                  var s;
                  void 0 === t && (t = []),
                    void 0 === i && (i = !1),
                    void 0 === n && (n = !1),
                    void 0 === r && (r = '');
                  var o,
                    a = e;
                  if (this.tokens.links) {
                    var l = Object.keys(this.tokens.links);
                    if (l.length > 0)
                      for (
                        ;
                        null !=
                        (o = this.tokenizer.rules.inline.reflinkSearch.exec(a));

                      )
                        l.includes(o[0].slice(o[0].lastIndexOf('[') + 1, -1)) &&
                          (a =
                            a.slice(0, o.index) +
                            '[' +
                            'a'.repeat(o[0].length - 2) +
                            ']' +
                            a.slice(
                              this.tokenizer.rules.inline.reflinkSearch
                                .lastIndex
                            ));
                  }
                  for (
                    ;
                    null != (o = this.tokenizer.rules.inline.blockSkip.exec(a));

                  )
                    a =
                      a.slice(0, o.index) +
                      '[' +
                      'a'.repeat(o[0].length - 2) +
                      ']' +
                      a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
                  for (; e; )
                    if ((s = this.tokenizer.escape(e)))
                      (e = e.substring(s.raw.length)), t.push(s);
                    else if ((s = this.tokenizer.tag(e, i, n)))
                      (e = e.substring(s.raw.length)),
                        (i = s.inLink),
                        (n = s.inRawBlock),
                        t.push(s);
                    else if ((s = this.tokenizer.link(e)))
                      (e = e.substring(s.raw.length)),
                        'link' === s.type &&
                          (s.tokens = this.inlineTokens(s.text, [], !0, n)),
                        t.push(s);
                    else if ((s = this.tokenizer.reflink(e, this.tokens.links)))
                      (e = e.substring(s.raw.length)),
                        'link' === s.type &&
                          (s.tokens = this.inlineTokens(s.text, [], !0, n)),
                        t.push(s);
                    else if ((s = this.tokenizer.strong(e, a, r)))
                      (e = e.substring(s.raw.length)),
                        (s.tokens = this.inlineTokens(s.text, [], i, n)),
                        t.push(s);
                    else if ((s = this.tokenizer.em(e, a, r)))
                      (e = e.substring(s.raw.length)),
                        (s.tokens = this.inlineTokens(s.text, [], i, n)),
                        t.push(s);
                    else if ((s = this.tokenizer.codespan(e)))
                      (e = e.substring(s.raw.length)), t.push(s);
                    else if ((s = this.tokenizer.br(e)))
                      (e = e.substring(s.raw.length)), t.push(s);
                    else if ((s = this.tokenizer.del(e)))
                      (e = e.substring(s.raw.length)),
                        (s.tokens = this.inlineTokens(s.text, [], i, n)),
                        t.push(s);
                    else if ((s = this.tokenizer.autolink(e, q)))
                      (e = e.substring(s.raw.length)), t.push(s);
                    else if (i || !(s = this.tokenizer.url(e, q))) {
                      if ((s = this.tokenizer.inlineText(e, n, K)))
                        (e = e.substring(s.raw.length)),
                          (r = s.raw.slice(-1)),
                          t.push(s);
                      else if (e) {
                        var c = 'Infinite loop on byte: ' + e.charCodeAt(0);
                        if (this.options.silent) {
                          console.error(c);
                          break;
                        }
                        throw new Error(c);
                      }
                    } else (e = e.substring(s.raw.length)), t.push(s);
                  return t;
                }),
                (i = t),
                (r = [
                  {
                    key: 'rules',
                    get: function () {
                      return { block: U, inline: $ };
                    },
                  },
                ]),
                (n = null) && e(i.prototype, n),
                r && e(i, r),
                t
              );
            })(),
            Z = n.defaults,
            J = k,
            Q = w,
            X = (function () {
              function e(e) {
                this.options = e || Z;
              }
              var t = e.prototype;
              return (
                (t.code = function (e, t, i) {
                  var n = (t || '').match(/\S*/)[0];
                  if (this.options.highlight) {
                    var r = this.options.highlight(e, n);
                    null != r && r !== e && ((i = !0), (e = r));
                  }
                  return n
                    ? '<pre><code class="' +
                        this.options.langPrefix +
                        Q(n, !0) +
                        '">' +
                        (i ? e : Q(e, !0)) +
                        '</code></pre>\n'
                    : '<pre><code>' + (i ? e : Q(e, !0)) + '</code></pre>\n';
                }),
                (t.blockquote = function (e) {
                  return '<blockquote>\n' + e + '</blockquote>\n';
                }),
                (t.html = function (e) {
                  return e;
                }),
                (t.heading = function (e, t, i, n) {
                  return this.options.headerIds
                    ? '<h' +
                        t +
                        ' id="' +
                        this.options.headerPrefix +
                        n.slug(i) +
                        '">' +
                        e +
                        '</h' +
                        t +
                        '>\n'
                    : '<h' + t + '>' + e + '</h' + t + '>\n';
                }),
                (t.hr = function () {
                  return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
                }),
                (t.list = function (e, t, i) {
                  var n = t ? 'ol' : 'ul';
                  return (
                    '<' +
                    n +
                    (t && 1 !== i ? ' start="' + i + '"' : '') +
                    '>\n' +
                    e +
                    '</' +
                    n +
                    '>\n'
                  );
                }),
                (t.listitem = function (e) {
                  return '<li>' + e + '</li>\n';
                }),
                (t.checkbox = function (e) {
                  return (
                    '<input ' +
                    (e ? 'checked="" ' : '') +
                    'disabled="" type="checkbox"' +
                    (this.options.xhtml ? ' /' : '') +
                    '> '
                  );
                }),
                (t.paragraph = function (e) {
                  return '<p>' + e + '</p>\n';
                }),
                (t.table = function (e, t) {
                  return (
                    t && (t = '<tbody>' + t + '</tbody>'),
                    '<table>\n<thead>\n' + e + '</thead>\n' + t + '</table>\n'
                  );
                }),
                (t.tablerow = function (e) {
                  return '<tr>\n' + e + '</tr>\n';
                }),
                (t.tablecell = function (e, t) {
                  var i = t.header ? 'th' : 'td';
                  return (
                    (t.align
                      ? '<' + i + ' align="' + t.align + '">'
                      : '<' + i + '>') +
                    e +
                    '</' +
                    i +
                    '>\n'
                  );
                }),
                (t.strong = function (e) {
                  return '<strong>' + e + '</strong>';
                }),
                (t.em = function (e) {
                  return '<em>' + e + '</em>';
                }),
                (t.codespan = function (e) {
                  return '<code>' + e + '</code>';
                }),
                (t.br = function () {
                  return this.options.xhtml ? '<br/>' : '<br>';
                }),
                (t.del = function (e) {
                  return '<del>' + e + '</del>';
                }),
                (t.link = function (e, t, i) {
                  if (
                    null ===
                    (e = J(this.options.sanitize, this.options.baseUrl, e))
                  )
                    return i;
                  var n = '<a href="' + Q(e) + '"';
                  return t && (n += ' title="' + t + '"'), n + '>' + i + '</a>';
                }),
                (t.image = function (e, t, i) {
                  if (
                    null ===
                    (e = J(this.options.sanitize, this.options.baseUrl, e))
                  )
                    return i;
                  var n = '<img src="' + e + '" alt="' + i + '"';
                  return (
                    t && (n += ' title="' + t + '"'),
                    n + (this.options.xhtml ? '/>' : '>')
                  );
                }),
                (t.text = function (e) {
                  return e;
                }),
                e
              );
            })(),
            ee = (function () {
              function e() {}
              var t = e.prototype;
              return (
                (t.strong = function (e) {
                  return e;
                }),
                (t.em = function (e) {
                  return e;
                }),
                (t.codespan = function (e) {
                  return e;
                }),
                (t.del = function (e) {
                  return e;
                }),
                (t.html = function (e) {
                  return e;
                }),
                (t.text = function (e) {
                  return e;
                }),
                (t.link = function (e, t, i) {
                  return '' + i;
                }),
                (t.image = function (e, t, i) {
                  return '' + i;
                }),
                (t.br = function () {
                  return '';
                }),
                e
              );
            })(),
            te = (function () {
              function e() {
                this.seen = {};
              }
              var t = e.prototype;
              return (
                (t.serialize = function (e) {
                  return e
                    .toLowerCase()
                    .trim()
                    .replace(/<[!\/a-z].*?>/gi, '')
                    .replace(
                      /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,
                      ''
                    )
                    .replace(/\s/g, '-');
                }),
                (t.getNextSafeSlug = function (e, t) {
                  var i = e,
                    n = 0;
                  if (this.seen.hasOwnProperty(i)) {
                    n = this.seen[e];
                    do {
                      i = e + '-' + ++n;
                    } while (this.seen.hasOwnProperty(i));
                  }
                  return t || ((this.seen[e] = n), (this.seen[i] = 0)), i;
                }),
                (t.slug = function (e, t) {
                  void 0 === t && (t = {});
                  var i = this.serialize(e);
                  return this.getNextSafeSlug(i, t.dryrun);
                }),
                e
              );
            })(),
            ie = n.defaults,
            ne = C,
            re = (function () {
              function e(e) {
                (this.options = e || ie),
                  (this.options.renderer = this.options.renderer || new X()),
                  (this.renderer = this.options.renderer),
                  (this.renderer.options = this.options),
                  (this.textRenderer = new ee()),
                  (this.slugger = new te());
              }
              e.parse = function (t, i) {
                return new e(i).parse(t);
              };
              var t = e.prototype;
              return (
                (t.parse = function (e, t) {
                  void 0 === t && (t = !0);
                  var i,
                    n,
                    r,
                    s,
                    o,
                    a,
                    l,
                    c,
                    d,
                    h,
                    u,
                    g,
                    f,
                    p,
                    m,
                    _,
                    b,
                    v,
                    y = '',
                    w = e.length;
                  for (i = 0; i < w; i++)
                    switch ((h = e[i]).type) {
                      case 'space':
                        continue;
                      case 'hr':
                        y += this.renderer.hr();
                        continue;
                      case 'heading':
                        y += this.renderer.heading(
                          this.parseInline(h.tokens),
                          h.depth,
                          ne(this.parseInline(h.tokens, this.textRenderer)),
                          this.slugger
                        );
                        continue;
                      case 'code':
                        y += this.renderer.code(h.text, h.lang, h.escaped);
                        continue;
                      case 'table':
                        for (
                          c = '', l = '', s = h.header.length, n = 0;
                          n < s;
                          n++
                        )
                          l += this.renderer.tablecell(
                            this.parseInline(h.tokens.header[n]),
                            { header: !0, align: h.align[n] }
                          );
                        for (
                          c += this.renderer.tablerow(l),
                            d = '',
                            s = h.cells.length,
                            n = 0;
                          n < s;
                          n++
                        ) {
                          for (
                            l = '', o = (a = h.tokens.cells[n]).length, r = 0;
                            r < o;
                            r++
                          )
                            l += this.renderer.tablecell(
                              this.parseInline(a[r]),
                              { header: !1, align: h.align[r] }
                            );
                          d += this.renderer.tablerow(l);
                        }
                        y += this.renderer.table(c, d);
                        continue;
                      case 'blockquote':
                        (d = this.parse(h.tokens)),
                          (y += this.renderer.blockquote(d));
                        continue;
                      case 'list':
                        for (
                          u = h.ordered,
                            g = h.start,
                            f = h.loose,
                            s = h.items.length,
                            d = '',
                            n = 0;
                          n < s;
                          n++
                        )
                          (_ = (m = h.items[n]).checked),
                            (b = m.task),
                            (p = ''),
                            m.task &&
                              ((v = this.renderer.checkbox(_)),
                              f
                                ? m.tokens.length > 0 &&
                                  'text' === m.tokens[0].type
                                  ? ((m.tokens[0].text =
                                      v + ' ' + m.tokens[0].text),
                                    m.tokens[0].tokens &&
                                      m.tokens[0].tokens.length > 0 &&
                                      'text' === m.tokens[0].tokens[0].type &&
                                      (m.tokens[0].tokens[0].text =
                                        v + ' ' + m.tokens[0].tokens[0].text))
                                  : m.tokens.unshift({ type: 'text', text: v })
                                : (p += v)),
                            (p += this.parse(m.tokens, f)),
                            (d += this.renderer.listitem(p, b, _));
                        y += this.renderer.list(d, u, g);
                        continue;
                      case 'html':
                        y += this.renderer.html(h.text);
                        continue;
                      case 'paragraph':
                        y += this.renderer.paragraph(
                          this.parseInline(h.tokens)
                        );
                        continue;
                      case 'text':
                        for (
                          d = h.tokens ? this.parseInline(h.tokens) : h.text;
                          i + 1 < w && 'text' === e[i + 1].type;

                        )
                          d +=
                            '\n' +
                            ((h = e[++i]).tokens
                              ? this.parseInline(h.tokens)
                              : h.text);
                        y += t ? this.renderer.paragraph(d) : d;
                        continue;
                      default:
                        var C =
                          'Token with "' + h.type + '" type was not found.';
                        if (this.options.silent) return void console.error(C);
                        throw new Error(C);
                    }
                  return y;
                }),
                (t.parseInline = function (e, t) {
                  t = t || this.renderer;
                  var i,
                    n,
                    r = '',
                    s = e.length;
                  for (i = 0; i < s; i++)
                    switch ((n = e[i]).type) {
                      case 'escape':
                        r += t.text(n.text);
                        break;
                      case 'html':
                        r += t.html(n.text);
                        break;
                      case 'link':
                        r += t.link(
                          n.href,
                          n.title,
                          this.parseInline(n.tokens, t)
                        );
                        break;
                      case 'image':
                        r += t.image(n.href, n.title, n.text);
                        break;
                      case 'strong':
                        r += t.strong(this.parseInline(n.tokens, t));
                        break;
                      case 'em':
                        r += t.em(this.parseInline(n.tokens, t));
                        break;
                      case 'codespan':
                        r += t.codespan(n.text);
                        break;
                      case 'br':
                        r += t.br();
                        break;
                      case 'del':
                        r += t.del(this.parseInline(n.tokens, t));
                        break;
                      case 'text':
                        r += t.text(n.text);
                        break;
                      default:
                        var o =
                          'Token with "' + n.type + '" type was not found.';
                        if (this.options.silent) return void console.error(o);
                        throw new Error(o);
                    }
                  return r;
                }),
                e
              );
            })(),
            se = L,
            oe = E,
            ae = w,
            le = n.getDefaults,
            ce = n.changeDefaults,
            de = n.defaults;
          function he(e, t, i) {
            if (null == e)
              throw new Error('marked(): input parameter is undefined or null');
            if ('string' != typeof e)
              throw new Error(
                'marked(): input parameter is of type ' +
                  Object.prototype.toString.call(e) +
                  ', string expected'
              );
            if (
              ('function' == typeof t && ((i = t), (t = null)),
              (t = se({}, he.defaults, t || {})),
              oe(t),
              i)
            ) {
              var n,
                r = t.highlight;
              try {
                n = G.lex(e, t);
              } catch (e) {
                return i(e);
              }
              var s = function (e) {
                var s;
                if (!e)
                  try {
                    s = re.parse(n, t);
                  } catch (t) {
                    e = t;
                  }
                return (t.highlight = r), e ? i(e) : i(null, s);
              };
              if (!r || r.length < 3) return s();
              if ((delete t.highlight, !n.length)) return s();
              var o = 0;
              return (
                he.walkTokens(n, function (e) {
                  'code' === e.type &&
                    (o++,
                    setTimeout(function () {
                      r(e.text, e.lang, function (t, i) {
                        if (t) return s(t);
                        null != i &&
                          i !== e.text &&
                          ((e.text = i), (e.escaped = !0)),
                          0 == --o && s();
                      });
                    }, 0));
                }),
                void (0 === o && s())
              );
            }
            try {
              var a = G.lex(e, t);
              return (
                t.walkTokens && he.walkTokens(a, t.walkTokens), re.parse(a, t)
              );
            } catch (e) {
              if (
                ((e.message +=
                  '\nPlease report this to https://github.com/markedjs/marked.'),
                t.silent)
              )
                return (
                  '<p>An error occurred:</p><pre>' +
                  ae(e.message + '', !0) +
                  '</pre>'
                );
              throw e;
            }
          }
          return (
            (he.options = he.setOptions = function (e) {
              return se(he.defaults, e), ce(he.defaults), he;
            }),
            (he.getDefaults = le),
            (he.defaults = de),
            (he.use = function (e) {
              var t = se({}, e);
              if (
                (e.renderer &&
                  (function () {
                    var i = he.defaults.renderer || new X(),
                      n = function (t) {
                        var n = i[t];
                        i[t] = function () {
                          for (
                            var r = arguments.length, s = new Array(r), o = 0;
                            o < r;
                            o++
                          )
                            s[o] = arguments[o];
                          var a = e.renderer[t].apply(i, s);
                          return !1 === a && (a = n.apply(i, s)), a;
                        };
                      };
                    for (var r in e.renderer) n(r);
                    t.renderer = i;
                  })(),
                e.tokenizer &&
                  (function () {
                    var i = he.defaults.tokenizer || new F(),
                      n = function (t) {
                        var n = i[t];
                        i[t] = function () {
                          for (
                            var r = arguments.length, s = new Array(r), o = 0;
                            o < r;
                            o++
                          )
                            s[o] = arguments[o];
                          var a = e.tokenizer[t].apply(i, s);
                          return !1 === a && (a = n.apply(i, s)), a;
                        };
                      };
                    for (var r in e.tokenizer) n(r);
                    t.tokenizer = i;
                  })(),
                e.walkTokens)
              ) {
                var i = he.defaults.walkTokens;
                t.walkTokens = function (t) {
                  e.walkTokens(t), i && i(t);
                };
              }
              he.setOptions(t);
            }),
            (he.walkTokens = function (e, t) {
              for (var n, r = i(e); !(n = r()).done; ) {
                var s = n.value;
                switch ((t(s), s.type)) {
                  case 'table':
                    for (var o, a = i(s.tokens.header); !(o = a()).done; ) {
                      var l = o.value;
                      he.walkTokens(l, t);
                    }
                    for (var c, d = i(s.tokens.cells); !(c = d()).done; )
                      for (var h, u = i(c.value); !(h = u()).done; ) {
                        var g = h.value;
                        he.walkTokens(g, t);
                      }
                    break;
                  case 'list':
                    he.walkTokens(s.items, t);
                    break;
                  default:
                    s.tokens && he.walkTokens(s.tokens, t);
                }
              }
            }),
            (he.Parser = re),
            (he.parser = re.parse),
            (he.Renderer = X),
            (he.TextRenderer = ee),
            (he.Lexer = G),
            (he.lexer = G.lex),
            (he.Tokenizer = F),
            (he.Slugger = te),
            (he.parse = he),
            he
          );
        })();
      },
      23897: (e, t, i) => {
        'use strict';
        i.d(t, { Q: () => s });
        var n = i(53060),
          r = i(70666);
        function s(e) {
          let t = JSON.parse(e);
          return (t = o(t)), t;
        }
        function o(e, t = 0) {
          if (!e || t > 200) return e;
          if ('object' == typeof e) {
            switch (e.$mid) {
              case 1:
                return r.o.revive(e);
              case 2:
                return new RegExp(e.source, e.flags);
            }
            if (e instanceof n.KN || e instanceof Uint8Array) return e;
            if (Array.isArray(e))
              for (let i = 0; i < e.length; ++i) e[i] = o(e[i], t + 1);
            else
              for (const i in e)
                Object.hasOwnProperty.call(e, i) && (e[i] = o(e[i], t + 1));
          }
          return e;
        }
      },
      66663: (e, t, i) => {
        'use strict';
        i.d(t, { l: () => n, W: () => o });
        var n,
          r = i(70666),
          s = i(1432);
        !(function (e) {
          (e.inMemory = 'inmemory'),
            (e.vscode = 'vscode'),
            (e.internal = 'private'),
            (e.walkThrough = 'walkThrough'),
            (e.walkThroughSnippet = 'walkThroughSnippet'),
            (e.http = 'http'),
            (e.https = 'https'),
            (e.file = 'file'),
            (e.mailto = 'mailto'),
            (e.untitled = 'untitled'),
            (e.data = 'data'),
            (e.command = 'command'),
            (e.vscodeRemote = 'vscode-remote'),
            (e.vscodeRemoteResource = 'vscode-remote-resource'),
            (e.userData = 'vscode-userdata'),
            (e.vscodeCustomEditor = 'vscode-custom-editor'),
            (e.vscodeNotebook = 'vscode-notebook'),
            (e.vscodeNotebookCell = 'vscode-notebook-cell'),
            (e.vscodeSettings = 'vscode-settings'),
            (e.webviewPanel = 'webview-panel'),
            (e.vscodeWebview = 'vscode-webview'),
            (e.vscodeWebviewResource = 'vscode-webview-resource'),
            (e.extension = 'extension');
        })(n || (n = {}));
        const o = new (class {
          constructor() {
            (this._hosts = Object.create(null)),
              (this._ports = Object.create(null)),
              (this._connectionTokens = Object.create(null)),
              (this._preferredWebSchema = 'http'),
              (this._delegate = null);
          }
          setPreferredWebSchema(e) {
            this._preferredWebSchema = e;
          }
          rewrite(e) {
            if (this._delegate) return this._delegate(e);
            const t = e.authority;
            let i = this._hosts[t];
            i && -1 !== i.indexOf(':') && (i = `[${i}]`);
            const o = this._ports[t],
              a = this._connectionTokens[t];
            let l = `path=${encodeURIComponent(e.path)}`;
            return (
              'string' == typeof a && (l += `&tkn=${encodeURIComponent(a)}`),
              r.o.from({
                scheme: s.$L
                  ? this._preferredWebSchema
                  : n.vscodeRemoteResource,
                authority: `${i}:${o}`,
                path: '/vscode-remote-resource',
                query: l,
              })
            );
          }
        })();
      },
      59870: (e, t, i) => {
        'use strict';
        function n(e, t, i) {
          return Math.min(Math.max(e, t), i);
        }
        i.d(t, { u: () => n, n: () => r });
        class r {
          constructor() {
            (this._n = 1), (this._val = 0);
          }
          update(e) {
            return (
              (this._val = this._val + (e - this._val) / this._n),
              (this._n += 1),
              this
            );
          }
        }
      },
      36248: (e, t, i) => {
        'use strict';
        i.d(t, {
          I8: () => r,
          _A: () => s,
          rs: () => a,
          jB: () => c,
          f0: () => d,
          fS: () => h,
          CJ: () => u,
        });
        var n = i(98401);
        function r(e) {
          if (!e || 'object' != typeof e) return e;
          if (e instanceof RegExp) return e;
          const t = Array.isArray(e) ? [] : {};
          return (
            Object.keys(e).forEach((i) => {
              e[i] && 'object' == typeof e[i]
                ? (t[i] = r(e[i]))
                : (t[i] = e[i]);
            }),
            t
          );
        }
        function s(e) {
          if (!e || 'object' != typeof e) return e;
          const t = [e];
          for (; t.length > 0; ) {
            const e = t.shift();
            Object.freeze(e);
            for (const i in e)
              if (o.call(e, i)) {
                const n = e[i];
                'object' != typeof n || Object.isFrozen(n) || t.push(n);
              }
          }
          return e;
        }
        const o = Object.prototype.hasOwnProperty;
        function a(e, t) {
          return l(e, t, new Set());
        }
        function l(e, t, i) {
          if ((0, n.Jp)(e)) return e;
          const r = t(e);
          if (void 0 !== r) return r;
          if ((0, n.kJ)(e)) {
            const n = [];
            for (const r of e) n.push(l(r, t, i));
            return n;
          }
          if ((0, n.Kn)(e)) {
            if (i.has(e))
              throw new Error('Cannot clone recursive data-structure');
            i.add(e);
            const n = {};
            for (let r in e) o.call(e, r) && (n[r] = l(e[r], t, i));
            return i.delete(e), n;
          }
          return e;
        }
        function c(e, t, i = !0) {
          return (0, n.Kn)(e)
            ? ((0, n.Kn)(t) &&
                Object.keys(t).forEach((r) => {
                  r in e
                    ? i &&
                      ((0, n.Kn)(e[r]) && (0, n.Kn)(t[r])
                        ? c(e[r], t[r], i)
                        : (e[r] = t[r]))
                    : (e[r] = t[r]);
                }),
              e)
            : t;
        }
        function d(e, ...t) {
          return (
            t.forEach((t) => Object.keys(t).forEach((i) => (e[i] = t[i]))), e
          );
        }
        function h(e, t) {
          if (e === t) return !0;
          if (null == e || null == t) return !1;
          if (typeof e != typeof t) return !1;
          if ('object' != typeof e) return !1;
          if (Array.isArray(e) !== Array.isArray(t)) return !1;
          let i, n;
          if (Array.isArray(e)) {
            if (e.length !== t.length) return !1;
            for (i = 0; i < e.length; i++) if (!h(e[i], t[i])) return !1;
          } else {
            const r = [];
            for (n in e) r.push(n);
            r.sort();
            const s = [];
            for (n in t) s.push(n);
            if ((s.sort(), !h(r, s))) return !1;
            for (i = 0; i < r.length; i++) if (!h(e[r[i]], t[r[i]])) return !1;
          }
          return !0;
        }
        function u(e, t, i) {
          const n = t(e);
          return void 0 === n ? i : n;
        }
      },
      88721: (e, t, i) => {
        'use strict';
        i.d(t, {
          EZ: () => x,
          XX: () => k,
          DZ: () => L,
          Fv: () => w,
          KR: () => y,
          Gf: () => S,
          DB: () => C,
          ir: () => M,
          Ku: () => v,
        });
        var n = i(1432);
        const r =
            'undefined' == typeof process
              ? {
                  cwd: () => '/',
                  env: Object.create(null),
                  get platform() {
                    return n.ED ? 'win32' : n.dz ? 'darwin' : 'linux';
                  },
                  nextTick: (e) => (0, n.xS)(e),
                }
              : process,
          s = r.cwd,
          o = r.env,
          a = r.platform,
          l = 46,
          c = 47,
          d = 92,
          h = 58;
        class u extends Error {
          constructor(e, t, i) {
            let n;
            'string' == typeof t && 0 === t.indexOf('not ')
              ? ((n = 'must not be'), (t = t.replace(/^not /, '')))
              : (n = 'must be');
            const r = -1 !== e.indexOf('.') ? 'property' : 'argument';
            let s = `The "${e}" ${r} ${n} of type ${t}`;
            (s += '. Received type ' + typeof i),
              super(s),
              (this.code = 'ERR_INVALID_ARG_TYPE');
          }
        }
        function g(e, t) {
          if ('string' != typeof e) throw new u(t, 'string', e);
        }
        function f(e) {
          return e === c || e === d;
        }
        function p(e) {
          return e === c;
        }
        function m(e) {
          return (e >= 65 && e <= 90) || (e >= 97 && e <= 122);
        }
        function _(e, t, i, n) {
          let r = '',
            s = 0,
            o = -1,
            a = 0,
            d = 0;
          for (let h = 0; h <= e.length; ++h) {
            if (h < e.length) d = e.charCodeAt(h);
            else {
              if (n(d)) break;
              d = c;
            }
            if (n(d)) {
              if (o === h - 1 || 1 === a);
              else if (2 === a) {
                if (
                  r.length < 2 ||
                  2 !== s ||
                  r.charCodeAt(r.length - 1) !== l ||
                  r.charCodeAt(r.length - 2) !== l
                ) {
                  if (r.length > 2) {
                    const e = r.lastIndexOf(i);
                    -1 === e
                      ? ((r = ''), (s = 0))
                      : ((r = r.slice(0, e)),
                        (s = r.length - 1 - r.lastIndexOf(i))),
                      (o = h),
                      (a = 0);
                    continue;
                  }
                  if (0 !== r.length) {
                    (r = ''), (s = 0), (o = h), (a = 0);
                    continue;
                  }
                }
                t && ((r += r.length > 0 ? `${i}..` : '..'), (s = 2));
              } else
                r.length > 0
                  ? (r += `${i}${e.slice(o + 1, h)}`)
                  : (r = e.slice(o + 1, h)),
                  (s = h - o - 1);
              (o = h), (a = 0);
            } else d === l && -1 !== a ? ++a : (a = -1);
          }
          return r;
        }
        function b(e, t) {
          if (null === t || 'object' != typeof t)
            throw new u('pathObject', 'Object', t);
          const i = t.dir || t.root,
            n = t.base || `${t.name || ''}${t.ext || ''}`;
          return i ? (i === t.root ? `${i}${n}` : `${i}${e}${n}`) : n;
        }
        const v = {
            resolve(...e) {
              let t = '',
                i = '',
                n = !1;
              for (let r = e.length - 1; r >= -1; r--) {
                let a;
                if (r >= 0) {
                  if (((a = e[r]), g(a, 'path'), 0 === a.length)) continue;
                } else
                  0 === t.length
                    ? (a = s())
                    : ((a = o[`=${t}`] || s()),
                      (void 0 === a ||
                        (a.slice(0, 2).toLowerCase() !== t.toLowerCase() &&
                          a.charCodeAt(2) === d)) &&
                        (a = `${t}\\`));
                const l = a.length;
                let c = 0,
                  u = '',
                  p = !1;
                const _ = a.charCodeAt(0);
                if (1 === l) f(_) && ((c = 1), (p = !0));
                else if (f(_))
                  if (((p = !0), f(a.charCodeAt(1)))) {
                    let e = 2,
                      t = e;
                    for (; e < l && !f(a.charCodeAt(e)); ) e++;
                    if (e < l && e !== t) {
                      const i = a.slice(t, e);
                      for (t = e; e < l && f(a.charCodeAt(e)); ) e++;
                      if (e < l && e !== t) {
                        for (t = e; e < l && !f(a.charCodeAt(e)); ) e++;
                        (e !== l && e === t) ||
                          ((u = `\\\\${i}\\${a.slice(t, e)}`), (c = e));
                      }
                    }
                  } else c = 1;
                else
                  m(_) &&
                    a.charCodeAt(1) === h &&
                    ((u = a.slice(0, 2)),
                    (c = 2),
                    l > 2 && f(a.charCodeAt(2)) && ((p = !0), (c = 3)));
                if (u.length > 0)
                  if (t.length > 0) {
                    if (u.toLowerCase() !== t.toLowerCase()) continue;
                  } else t = u;
                if (n) {
                  if (t.length > 0) break;
                } else if (
                  ((i = `${a.slice(c)}\\${i}`), (n = p), p && t.length > 0)
                )
                  break;
              }
              return (
                (i = _(i, !n, '\\', f)), n ? `${t}\\${i}` : `${t}${i}` || '.'
              );
            },
            normalize(e) {
              g(e, 'path');
              const t = e.length;
              if (0 === t) return '.';
              let i,
                n = 0,
                r = !1;
              const s = e.charCodeAt(0);
              if (1 === t) return p(s) ? '\\' : e;
              if (f(s))
                if (((r = !0), f(e.charCodeAt(1)))) {
                  let r = 2,
                    s = r;
                  for (; r < t && !f(e.charCodeAt(r)); ) r++;
                  if (r < t && r !== s) {
                    const o = e.slice(s, r);
                    for (s = r; r < t && f(e.charCodeAt(r)); ) r++;
                    if (r < t && r !== s) {
                      for (s = r; r < t && !f(e.charCodeAt(r)); ) r++;
                      if (r === t) return `\\\\${o}\\${e.slice(s)}\\`;
                      r !== s && ((i = `\\\\${o}\\${e.slice(s, r)}`), (n = r));
                    }
                  }
                } else n = 1;
              else
                m(s) &&
                  e.charCodeAt(1) === h &&
                  ((i = e.slice(0, 2)),
                  (n = 2),
                  t > 2 && f(e.charCodeAt(2)) && ((r = !0), (n = 3)));
              let o = n < t ? _(e.slice(n), !r, '\\', f) : '';
              return (
                0 !== o.length || r || (o = '.'),
                o.length > 0 && f(e.charCodeAt(t - 1)) && (o += '\\'),
                void 0 === i
                  ? r
                    ? `\\${o}`
                    : o
                  : r
                  ? `${i}\\${o}`
                  : `${i}${o}`
              );
            },
            isAbsolute(e) {
              g(e, 'path');
              const t = e.length;
              if (0 === t) return !1;
              const i = e.charCodeAt(0);
              return (
                f(i) ||
                (t > 2 && m(i) && e.charCodeAt(1) === h && f(e.charCodeAt(2)))
              );
            },
            join(...e) {
              if (0 === e.length) return '.';
              let t, i;
              for (let n = 0; n < e.length; ++n) {
                const r = e[n];
                g(r, 'path'),
                  r.length > 0 &&
                    (void 0 === t ? (t = i = r) : (t += `\\${r}`));
              }
              if (void 0 === t) return '.';
              let n = !0,
                r = 0;
              if ('string' == typeof i && f(i.charCodeAt(0))) {
                ++r;
                const e = i.length;
                e > 1 &&
                  f(i.charCodeAt(1)) &&
                  (++r, e > 2 && (f(i.charCodeAt(2)) ? ++r : (n = !1)));
              }
              if (n) {
                for (; r < t.length && f(t.charCodeAt(r)); ) r++;
                r >= 2 && (t = `\\${t.slice(r)}`);
              }
              return v.normalize(t);
            },
            relative(e, t) {
              if ((g(e, 'from'), g(t, 'to'), e === t)) return '';
              const i = v.resolve(e),
                n = v.resolve(t);
              if (i === n) return '';
              if ((e = i.toLowerCase()) === (t = n.toLowerCase())) return '';
              let r = 0;
              for (; r < e.length && e.charCodeAt(r) === d; ) r++;
              let s = e.length;
              for (; s - 1 > r && e.charCodeAt(s - 1) === d; ) s--;
              const o = s - r;
              let a = 0;
              for (; a < t.length && t.charCodeAt(a) === d; ) a++;
              let l = t.length;
              for (; l - 1 > a && t.charCodeAt(l - 1) === d; ) l--;
              const c = l - a,
                h = o < c ? o : c;
              let u = -1,
                f = 0;
              for (; f < h; f++) {
                const i = e.charCodeAt(r + f);
                if (i !== t.charCodeAt(a + f)) break;
                i === d && (u = f);
              }
              if (f !== h) {
                if (-1 === u) return n;
              } else {
                if (c > h) {
                  if (t.charCodeAt(a + f) === d) return n.slice(a + f + 1);
                  if (2 === f) return n.slice(a + f);
                }
                o > h &&
                  (e.charCodeAt(r + f) === d ? (u = f) : 2 === f && (u = 3)),
                  -1 === u && (u = 0);
              }
              let p = '';
              for (f = r + u + 1; f <= s; ++f)
                (f !== s && e.charCodeAt(f) !== d) ||
                  (p += 0 === p.length ? '..' : '\\..');
              return (
                (a += u),
                p.length > 0
                  ? `${p}${n.slice(a, l)}`
                  : (n.charCodeAt(a) === d && ++a, n.slice(a, l))
              );
            },
            toNamespacedPath(e) {
              if ('string' != typeof e) return e;
              if (0 === e.length) return '';
              const t = v.resolve(e);
              if (t.length <= 2) return e;
              if (t.charCodeAt(0) === d) {
                if (t.charCodeAt(1) === d) {
                  const e = t.charCodeAt(2);
                  if (63 !== e && e !== l) return `\\\\?\\UNC\\${t.slice(2)}`;
                }
              } else if (
                m(t.charCodeAt(0)) &&
                t.charCodeAt(1) === h &&
                t.charCodeAt(2) === d
              )
                return `\\\\?\\${t}`;
              return e;
            },
            dirname(e) {
              g(e, 'path');
              const t = e.length;
              if (0 === t) return '.';
              let i = -1,
                n = 0;
              const r = e.charCodeAt(0);
              if (1 === t) return f(r) ? e : '.';
              if (f(r)) {
                if (((i = n = 1), f(e.charCodeAt(1)))) {
                  let r = 2,
                    s = r;
                  for (; r < t && !f(e.charCodeAt(r)); ) r++;
                  if (r < t && r !== s) {
                    for (s = r; r < t && f(e.charCodeAt(r)); ) r++;
                    if (r < t && r !== s) {
                      for (s = r; r < t && !f(e.charCodeAt(r)); ) r++;
                      if (r === t) return e;
                      r !== s && (i = n = r + 1);
                    }
                  }
                }
              } else
                m(r) &&
                  e.charCodeAt(1) === h &&
                  ((i = t > 2 && f(e.charCodeAt(2)) ? 3 : 2), (n = i));
              let s = -1,
                o = !0;
              for (let i = t - 1; i >= n; --i)
                if (f(e.charCodeAt(i))) {
                  if (!o) {
                    s = i;
                    break;
                  }
                } else o = !1;
              if (-1 === s) {
                if (-1 === i) return '.';
                s = i;
              }
              return e.slice(0, s);
            },
            basename(e, t) {
              void 0 !== t && g(t, 'ext'), g(e, 'path');
              let i,
                n = 0,
                r = -1,
                s = !0;
              if (
                (e.length >= 2 &&
                  m(e.charCodeAt(0)) &&
                  e.charCodeAt(1) === h &&
                  (n = 2),
                void 0 !== t && t.length > 0 && t.length <= e.length)
              ) {
                if (t === e) return '';
                let o = t.length - 1,
                  a = -1;
                for (i = e.length - 1; i >= n; --i) {
                  const l = e.charCodeAt(i);
                  if (f(l)) {
                    if (!s) {
                      n = i + 1;
                      break;
                    }
                  } else
                    -1 === a && ((s = !1), (a = i + 1)),
                      o >= 0 &&
                        (l === t.charCodeAt(o)
                          ? -1 == --o && (r = i)
                          : ((o = -1), (r = a)));
                }
                return (
                  n === r ? (r = a) : -1 === r && (r = e.length), e.slice(n, r)
                );
              }
              for (i = e.length - 1; i >= n; --i)
                if (f(e.charCodeAt(i))) {
                  if (!s) {
                    n = i + 1;
                    break;
                  }
                } else -1 === r && ((s = !1), (r = i + 1));
              return -1 === r ? '' : e.slice(n, r);
            },
            extname(e) {
              g(e, 'path');
              let t = 0,
                i = -1,
                n = 0,
                r = -1,
                s = !0,
                o = 0;
              e.length >= 2 &&
                e.charCodeAt(1) === h &&
                m(e.charCodeAt(0)) &&
                (t = n = 2);
              for (let a = e.length - 1; a >= t; --a) {
                const t = e.charCodeAt(a);
                if (f(t)) {
                  if (!s) {
                    n = a + 1;
                    break;
                  }
                } else
                  -1 === r && ((s = !1), (r = a + 1)),
                    t === l
                      ? -1 === i
                        ? (i = a)
                        : 1 !== o && (o = 1)
                      : -1 !== i && (o = -1);
              }
              return -1 === i ||
                -1 === r ||
                0 === o ||
                (1 === o && i === r - 1 && i === n + 1)
                ? ''
                : e.slice(i, r);
            },
            format: b.bind(null, '\\'),
            parse(e) {
              g(e, 'path');
              const t = { root: '', dir: '', base: '', ext: '', name: '' };
              if (0 === e.length) return t;
              const i = e.length;
              let n = 0,
                r = e.charCodeAt(0);
              if (1 === i)
                return f(r)
                  ? ((t.root = t.dir = e), t)
                  : ((t.base = t.name = e), t);
              if (f(r)) {
                if (((n = 1), f(e.charCodeAt(1)))) {
                  let t = 2,
                    r = t;
                  for (; t < i && !f(e.charCodeAt(t)); ) t++;
                  if (t < i && t !== r) {
                    for (r = t; t < i && f(e.charCodeAt(t)); ) t++;
                    if (t < i && t !== r) {
                      for (r = t; t < i && !f(e.charCodeAt(t)); ) t++;
                      t === i ? (n = t) : t !== r && (n = t + 1);
                    }
                  }
                }
              } else if (m(r) && e.charCodeAt(1) === h) {
                if (i <= 2) return (t.root = t.dir = e), t;
                if (((n = 2), f(e.charCodeAt(2)))) {
                  if (3 === i) return (t.root = t.dir = e), t;
                  n = 3;
                }
              }
              n > 0 && (t.root = e.slice(0, n));
              let s = -1,
                o = n,
                a = -1,
                c = !0,
                d = e.length - 1,
                u = 0;
              for (; d >= n; --d)
                if (((r = e.charCodeAt(d)), f(r))) {
                  if (!c) {
                    o = d + 1;
                    break;
                  }
                } else
                  -1 === a && ((c = !1), (a = d + 1)),
                    r === l
                      ? -1 === s
                        ? (s = d)
                        : 1 !== u && (u = 1)
                      : -1 !== s && (u = -1);
              return (
                -1 !== a &&
                  (-1 === s ||
                  0 === u ||
                  (1 === u && s === a - 1 && s === o + 1)
                    ? (t.base = t.name = e.slice(o, a))
                    : ((t.name = e.slice(o, s)),
                      (t.base = e.slice(o, a)),
                      (t.ext = e.slice(s, a)))),
                (t.dir = o > 0 && o !== n ? e.slice(0, o - 1) : t.root),
                t
              );
            },
            sep: '\\',
            delimiter: ';',
            win32: null,
            posix: null,
          },
          y = {
            resolve(...e) {
              let t = '',
                i = !1;
              for (let n = e.length - 1; n >= -1 && !i; n--) {
                const r = n >= 0 ? e[n] : s();
                g(r, 'path'),
                  0 !== r.length &&
                    ((t = `${r}/${t}`), (i = r.charCodeAt(0) === c));
              }
              return (
                (t = _(t, !i, '/', p)), i ? `/${t}` : t.length > 0 ? t : '.'
              );
            },
            normalize(e) {
              if ((g(e, 'path'), 0 === e.length)) return '.';
              const t = e.charCodeAt(0) === c,
                i = e.charCodeAt(e.length - 1) === c;
              return 0 === (e = _(e, !t, '/', p)).length
                ? t
                  ? '/'
                  : i
                  ? './'
                  : '.'
                : (i && (e += '/'), t ? `/${e}` : e);
            },
            isAbsolute: (e) => (
              g(e, 'path'), e.length > 0 && e.charCodeAt(0) === c
            ),
            join(...e) {
              if (0 === e.length) return '.';
              let t;
              for (let i = 0; i < e.length; ++i) {
                const n = e[i];
                g(n, 'path'),
                  n.length > 0 && (void 0 === t ? (t = n) : (t += `/${n}`));
              }
              return void 0 === t ? '.' : y.normalize(t);
            },
            relative(e, t) {
              if ((g(e, 'from'), g(t, 'to'), e === t)) return '';
              if ((e = y.resolve(e)) === (t = y.resolve(t))) return '';
              const i = e.length,
                n = i - 1,
                r = t.length - 1,
                s = n < r ? n : r;
              let o = -1,
                a = 0;
              for (; a < s; a++) {
                const i = e.charCodeAt(1 + a);
                if (i !== t.charCodeAt(1 + a)) break;
                i === c && (o = a);
              }
              if (a === s)
                if (r > s) {
                  if (t.charCodeAt(1 + a) === c) return t.slice(1 + a + 1);
                  if (0 === a) return t.slice(1 + a);
                } else
                  n > s &&
                    (e.charCodeAt(1 + a) === c ? (o = a) : 0 === a && (o = 0));
              let l = '';
              for (a = 1 + o + 1; a <= i; ++a)
                (a !== i && e.charCodeAt(a) !== c) ||
                  (l += 0 === l.length ? '..' : '/..');
              return `${l}${t.slice(1 + o)}`;
            },
            toNamespacedPath: (e) => e,
            dirname(e) {
              if ((g(e, 'path'), 0 === e.length)) return '.';
              const t = e.charCodeAt(0) === c;
              let i = -1,
                n = !0;
              for (let t = e.length - 1; t >= 1; --t)
                if (e.charCodeAt(t) === c) {
                  if (!n) {
                    i = t;
                    break;
                  }
                } else n = !1;
              return -1 === i
                ? t
                  ? '/'
                  : '.'
                : t && 1 === i
                ? '//'
                : e.slice(0, i);
            },
            basename(e, t) {
              void 0 !== t && g(t, 'ext'), g(e, 'path');
              let i,
                n = 0,
                r = -1,
                s = !0;
              if (void 0 !== t && t.length > 0 && t.length <= e.length) {
                if (t === e) return '';
                let o = t.length - 1,
                  a = -1;
                for (i = e.length - 1; i >= 0; --i) {
                  const l = e.charCodeAt(i);
                  if (l === c) {
                    if (!s) {
                      n = i + 1;
                      break;
                    }
                  } else
                    -1 === a && ((s = !1), (a = i + 1)),
                      o >= 0 &&
                        (l === t.charCodeAt(o)
                          ? -1 == --o && (r = i)
                          : ((o = -1), (r = a)));
                }
                return (
                  n === r ? (r = a) : -1 === r && (r = e.length), e.slice(n, r)
                );
              }
              for (i = e.length - 1; i >= 0; --i)
                if (e.charCodeAt(i) === c) {
                  if (!s) {
                    n = i + 1;
                    break;
                  }
                } else -1 === r && ((s = !1), (r = i + 1));
              return -1 === r ? '' : e.slice(n, r);
            },
            extname(e) {
              g(e, 'path');
              let t = -1,
                i = 0,
                n = -1,
                r = !0,
                s = 0;
              for (let o = e.length - 1; o >= 0; --o) {
                const a = e.charCodeAt(o);
                if (a !== c)
                  -1 === n && ((r = !1), (n = o + 1)),
                    a === l
                      ? -1 === t
                        ? (t = o)
                        : 1 !== s && (s = 1)
                      : -1 !== t && (s = -1);
                else if (!r) {
                  i = o + 1;
                  break;
                }
              }
              return -1 === t ||
                -1 === n ||
                0 === s ||
                (1 === s && t === n - 1 && t === i + 1)
                ? ''
                : e.slice(t, n);
            },
            format: b.bind(null, '/'),
            parse(e) {
              g(e, 'path');
              const t = { root: '', dir: '', base: '', ext: '', name: '' };
              if (0 === e.length) return t;
              const i = e.charCodeAt(0) === c;
              let n;
              i ? ((t.root = '/'), (n = 1)) : (n = 0);
              let r = -1,
                s = 0,
                o = -1,
                a = !0,
                d = e.length - 1,
                h = 0;
              for (; d >= n; --d) {
                const t = e.charCodeAt(d);
                if (t !== c)
                  -1 === o && ((a = !1), (o = d + 1)),
                    t === l
                      ? -1 === r
                        ? (r = d)
                        : 1 !== h && (h = 1)
                      : -1 !== r && (h = -1);
                else if (!a) {
                  s = d + 1;
                  break;
                }
              }
              if (-1 !== o) {
                const n = 0 === s && i ? 1 : s;
                -1 === r || 0 === h || (1 === h && r === o - 1 && r === s + 1)
                  ? (t.base = t.name = e.slice(n, o))
                  : ((t.name = e.slice(n, r)),
                    (t.base = e.slice(n, o)),
                    (t.ext = e.slice(r, o)));
              }
              return (
                s > 0 ? (t.dir = e.slice(0, s - 1)) : i && (t.dir = '/'), t
              );
            },
            sep: '/',
            delimiter: ':',
            win32: null,
            posix: null,
          };
        (y.win32 = v.win32 = v), (y.posix = v.posix = y);
        const w = 'win32' === a ? v.normalize : y.normalize,
          C = 'win32' === a ? v.resolve : y.resolve,
          S = 'win32' === a ? v.relative : y.relative,
          k = 'win32' === a ? v.dirname : y.dirname,
          x = 'win32' === a ? v.basename : y.basename,
          L = 'win32' === a ? v.extname : y.extname,
          M = 'win32' === a ? v.sep : y.sep;
      },
      1432: (e, t, i) => {
        'use strict';
        i.d(t, {
          ED: () => m,
          dz: () => _,
          IJ: () => b,
          tY: () => v,
          $L: () => y,
          gn: () => w,
          li: () => C,
          xS: () => S,
          OS: () => k,
          r: () => M,
        });
        const n = 'en';
        let r,
          s,
          o,
          a = !1,
          l = !1,
          c = !1,
          d = !1,
          h = !1,
          u = !1,
          g = null;
        const f =
          'undefined' != typeof process &&
          void 0 !== process.versions &&
          void 0 !== process.versions.electron &&
          'renderer' === process.type;
        if ('object' != typeof navigator || f) {
          if ('object' == typeof process) {
            (a = 'win32' === process.platform),
              (l = 'darwin' === process.platform),
              (c = 'linux' === process.platform),
              (r = n),
              (g = n);
            const e = process.env.VSCODE_NLS_CONFIG;
            if (e)
              try {
                const t = JSON.parse(e),
                  i = t.availableLanguages['*'];
                (r = t.locale), (g = i || n), (s = t._translationsConfigFile);
              } catch (e) {}
            d = !0;
          }
        } else
          (o = navigator.userAgent),
            (a = o.indexOf('Windows') >= 0),
            (l = o.indexOf('Macintosh') >= 0),
            (u =
              (o.indexOf('Macintosh') >= 0 ||
                o.indexOf('iPad') >= 0 ||
                o.indexOf('iPhone') >= 0) &&
              !!navigator.maxTouchPoints &&
              navigator.maxTouchPoints > 0),
            (c = o.indexOf('Linux') >= 0),
            (h = !0),
            (r = navigator.language),
            (g = r);
        let p = 0;
        l ? (p = 1) : a ? (p = 3) : c && (p = 2);
        const m = a,
          _ = l,
          b = c,
          v = d,
          y = h,
          w = u,
          C =
            'object' == typeof self ? self : 'object' == typeof i.g ? i.g : {},
          S = (function () {
            if (C.setImmediate) return C.setImmediate.bind(C);
            if ('function' == typeof C.postMessage && !C.importScripts) {
              let e = [];
              C.addEventListener('message', (t) => {
                if (t.data && t.data.vscodeSetImmediateId)
                  for (let i = 0, n = e.length; i < n; i++) {
                    const n = e[i];
                    if (n.id === t.data.vscodeSetImmediateId)
                      return e.splice(i, 1), void n.callback();
                  }
              });
              let t = 0;
              return (i) => {
                const n = ++t;
                e.push({ id: n, callback: i }),
                  C.postMessage({ vscodeSetImmediateId: n }, '*');
              };
            }
            if (
              'undefined' != typeof process &&
              'function' == typeof process.nextTick
            )
              return process.nextTick.bind(process);
            const e = Promise.resolve();
            return (t) => e.then(t);
          })(),
          k = l || u ? 2 : a ? 1 : 3;
        let x = !0,
          L = !1;
        function M() {
          if (!L) {
            L = !0;
            const e = new Uint8Array(2);
            (e[0] = 1), (e[1] = 2);
            const t = new Uint16Array(e.buffer);
            x = 513 === t[0];
          }
          return x;
        }
      },
      61134: (e, t, i) => {
        'use strict';
        var n;
        i.d(t, { e: () => n }),
          (function (e) {
            function t(e, t) {
              if (e.start >= t.end || t.start >= e.end)
                return { start: 0, end: 0 };
              const i = Math.max(e.start, t.start),
                n = Math.min(e.end, t.end);
              return n - i <= 0 ? { start: 0, end: 0 } : { start: i, end: n };
            }
            function i(e) {
              return e.end - e.start <= 0;
            }
            (e.intersect = t),
              (e.isEmpty = i),
              (e.intersects = function (e, n) {
                return !i(t(e, n));
              }),
              (e.relativeComplement = function (e, t) {
                const n = [],
                  r = { start: e.start, end: Math.min(t.start, e.end) },
                  s = { start: Math.max(t.end, e.start), end: e.end };
                return i(r) || n.push(r), i(s) || n.push(s), n;
              });
          })(n || (n = {}));
      },
      95935: (e, t, i) => {
        'use strict';
        i.d(t, {
          z_: () => c,
          SF: () => d,
          Xy: () => h,
          Hx: () => u,
          EZ: () => g,
          XX: () => f,
          Vo: () => p,
          AH: () => m,
          lX: () => _,
          i3: () => b,
          Vb: () => y,
        });
        var n = i(15527),
          r = i(88721),
          s = i(70666),
          o = i(97295),
          a = i(66663),
          l = i(1432);
        function c(e) {
          return (0, s.q)(e, !0);
        }
        const d = new (class {
            constructor(e) {
              this._ignorePathCasing = e;
            }
            compare(e, t, i = !1) {
              return e === t
                ? 0
                : (0, o.qu)(
                    this.getComparisonKey(e, i),
                    this.getComparisonKey(t, i)
                  );
            }
            isEqual(e, t, i = !1) {
              return (
                e === t ||
                (!(!e || !t) &&
                  this.getComparisonKey(e, i) === this.getComparisonKey(t, i))
              );
            }
            getComparisonKey(e, t = !1) {
              return e
                .with({
                  path: this._ignorePathCasing(e)
                    ? e.path.toLowerCase()
                    : void 0,
                  fragment: t ? null : void 0,
                })
                .toString();
            }
            joinPath(e, ...t) {
              return s.o.joinPath(e, ...t);
            }
            basenameOrAuthority(e) {
              return g(e) || e.authority;
            }
            basename(e) {
              return r.KR.basename(e.path);
            }
            dirname(e) {
              if (0 === e.path.length) return e;
              let t;
              return (
                e.scheme === a.l.file
                  ? (t = s.o.file(r.XX(c(e))).path)
                  : ((t = r.KR.dirname(e.path)),
                    e.authority &&
                      t.length &&
                      47 !== t.charCodeAt(0) &&
                      (console.error(
                        `dirname("${e.toString})) resulted in a relative path`
                      ),
                      (t = '/'))),
                e.with({ path: t })
              );
            }
            normalizePath(e) {
              if (!e.path.length) return e;
              let t;
              return (
                (t =
                  e.scheme === a.l.file
                    ? s.o.file(r.Fv(c(e))).path
                    : r.KR.normalize(e.path)),
                e.with({ path: t })
              );
            }
            relativePath(e, t) {
              if (e.scheme !== t.scheme || !v(e.authority, t.authority)) return;
              if (e.scheme === a.l.file) {
                const i = r.Gf(c(e), c(t));
                return l.ED ? n.e(i) : i;
              }
              let i = e.path || '/',
                s = t.path || '/';
              if (this._ignorePathCasing(e)) {
                let e = 0;
                for (
                  const t = Math.min(i.length, s.length);
                  e < t &&
                  (i.charCodeAt(e) === s.charCodeAt(e) ||
                    i.charAt(e).toLowerCase() === s.charAt(e).toLowerCase());
                  e++
                );
                i = s.substr(0, e) + i.substr(e);
              }
              return r.KR.relative(i, s);
            }
            resolvePath(e, t) {
              if (e.scheme === a.l.file) {
                const i = s.o.file(r.DB(c(e), t));
                return e.with({ authority: i.authority, path: i.path });
              }
              return (
                -1 === t.indexOf('/') &&
                  ((t = n.e(t)), /^[a-zA-Z]:(\/|$)/.test(t) && (t = '/' + t)),
                e.with({ path: r.KR.resolve(e.path, t) })
              );
            }
            isEqualAuthority(e, t) {
              return e === t || (0, o.qq)(e, t);
            }
          })(() => !1),
          h = d.isEqual.bind(d),
          u = d.basenameOrAuthority.bind(d),
          g = d.basename.bind(d),
          f = d.dirname.bind(d),
          p = d.joinPath.bind(d),
          m = d.normalizePath.bind(d),
          _ = d.relativePath.bind(d),
          b = d.resolvePath.bind(d),
          v = d.isEqualAuthority.bind(d);
        var y;
        !(function (e) {
          (e.META_DATA_LABEL = 'label'),
            (e.META_DATA_DESCRIPTION = 'description'),
            (e.META_DATA_SIZE = 'size'),
            (e.META_DATA_MIME = 'mime'),
            (e.parseMetaData = function (t) {
              const i = new Map();
              t.path
                .substring(t.path.indexOf(';') + 1, t.path.lastIndexOf(';'))
                .split(';')
                .forEach((e) => {
                  const [t, n] = e.split(':');
                  t && n && i.set(t, n);
                });
              const n = t.path.substring(0, t.path.indexOf(';'));
              return n && i.set(e.META_DATA_MIME, n), i;
            });
        })(y || (y = {}));
      },
      76633: (e, t, i) => {
        'use strict';
        i.d(t, { Rm: () => o });
        var n = i(4669),
          r = i(5976);
        class s {
          constructor(e, t, i, n, r, s) {
            (e |= 0),
              (t |= 0),
              (i |= 0),
              (n |= 0),
              (r |= 0),
              (s |= 0),
              (this.rawScrollLeft = i),
              (this.rawScrollTop = s),
              e < 0 && (e = 0),
              i + e > t && (i = t - e),
              i < 0 && (i = 0),
              n < 0 && (n = 0),
              s + n > r && (s = r - n),
              s < 0 && (s = 0),
              (this.width = e),
              (this.scrollWidth = t),
              (this.scrollLeft = i),
              (this.height = n),
              (this.scrollHeight = r),
              (this.scrollTop = s);
          }
          equals(e) {
            return (
              this.rawScrollLeft === e.rawScrollLeft &&
              this.rawScrollTop === e.rawScrollTop &&
              this.width === e.width &&
              this.scrollWidth === e.scrollWidth &&
              this.scrollLeft === e.scrollLeft &&
              this.height === e.height &&
              this.scrollHeight === e.scrollHeight &&
              this.scrollTop === e.scrollTop
            );
          }
          withScrollDimensions(e, t) {
            return new s(
              void 0 !== e.width ? e.width : this.width,
              void 0 !== e.scrollWidth ? e.scrollWidth : this.scrollWidth,
              t ? this.rawScrollLeft : this.scrollLeft,
              void 0 !== e.height ? e.height : this.height,
              void 0 !== e.scrollHeight ? e.scrollHeight : this.scrollHeight,
              t ? this.rawScrollTop : this.scrollTop
            );
          }
          withScrollPosition(e) {
            return new s(
              this.width,
              this.scrollWidth,
              void 0 !== e.scrollLeft ? e.scrollLeft : this.rawScrollLeft,
              this.height,
              this.scrollHeight,
              void 0 !== e.scrollTop ? e.scrollTop : this.rawScrollTop
            );
          }
          createScrollEvent(e) {
            const t = this.width !== e.width,
              i = this.scrollWidth !== e.scrollWidth,
              n = this.scrollLeft !== e.scrollLeft,
              r = this.height !== e.height,
              s = this.scrollHeight !== e.scrollHeight,
              o = this.scrollTop !== e.scrollTop;
            return {
              oldWidth: e.width,
              oldScrollWidth: e.scrollWidth,
              oldScrollLeft: e.scrollLeft,
              width: this.width,
              scrollWidth: this.scrollWidth,
              scrollLeft: this.scrollLeft,
              oldHeight: e.height,
              oldScrollHeight: e.scrollHeight,
              oldScrollTop: e.scrollTop,
              height: this.height,
              scrollHeight: this.scrollHeight,
              scrollTop: this.scrollTop,
              widthChanged: t,
              scrollWidthChanged: i,
              scrollLeftChanged: n,
              heightChanged: r,
              scrollHeightChanged: s,
              scrollTopChanged: o,
            };
          }
        }
        class o extends r.JT {
          constructor(e, t) {
            super(),
              (this._onScroll = this._register(new n.Q5())),
              (this.onScroll = this._onScroll.event),
              (this._smoothScrollDuration = e),
              (this._scheduleAtNextAnimationFrame = t),
              (this._state = new s(0, 0, 0, 0, 0, 0)),
              (this._smoothScrolling = null);
          }
          dispose() {
            this._smoothScrolling &&
              (this._smoothScrolling.dispose(), (this._smoothScrolling = null)),
              super.dispose();
          }
          setSmoothScrollDuration(e) {
            this._smoothScrollDuration = e;
          }
          validateScrollPosition(e) {
            return this._state.withScrollPosition(e);
          }
          getScrollDimensions() {
            return this._state;
          }
          setScrollDimensions(e, t) {
            const i = this._state.withScrollDimensions(e, t);
            this._setState(i),
              this._smoothScrolling &&
                this._smoothScrolling.acceptScrollDimensions(this._state);
          }
          getFutureScrollPosition() {
            return this._smoothScrolling
              ? this._smoothScrolling.to
              : this._state;
          }
          getCurrentScrollPosition() {
            return this._state;
          }
          setScrollPositionNow(e) {
            const t = this._state.withScrollPosition(e);
            this._smoothScrolling &&
              (this._smoothScrolling.dispose(), (this._smoothScrolling = null)),
              this._setState(t);
          }
          setScrollPositionSmooth(e) {
            if (0 === this._smoothScrollDuration)
              return this.setScrollPositionNow(e);
            if (this._smoothScrolling) {
              e = {
                scrollLeft:
                  void 0 === e.scrollLeft
                    ? this._smoothScrolling.to.scrollLeft
                    : e.scrollLeft,
                scrollTop:
                  void 0 === e.scrollTop
                    ? this._smoothScrolling.to.scrollTop
                    : e.scrollTop,
              };
              const t = this._state.withScrollPosition(e);
              if (
                this._smoothScrolling.to.scrollLeft === t.scrollLeft &&
                this._smoothScrolling.to.scrollTop === t.scrollTop
              )
                return;
              const i = this._smoothScrolling.combine(
                this._state,
                t,
                this._smoothScrollDuration
              );
              this._smoothScrolling.dispose(), (this._smoothScrolling = i);
            } else {
              const t = this._state.withScrollPosition(e);
              this._smoothScrolling = c.start(
                this._state,
                t,
                this._smoothScrollDuration
              );
            }
            this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(
              () => {
                this._smoothScrolling &&
                  ((this._smoothScrolling.animationFrameDisposable = null),
                  this._performSmoothScrolling());
              }
            );
          }
          _performSmoothScrolling() {
            if (!this._smoothScrolling) return;
            const e = this._smoothScrolling.tick(),
              t = this._state.withScrollPosition(e);
            return (
              this._setState(t),
              this._smoothScrolling
                ? e.isDone
                  ? (this._smoothScrolling.dispose(),
                    void (this._smoothScrolling = null))
                  : void (this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(
                      () => {
                        this._smoothScrolling &&
                          ((this._smoothScrolling.animationFrameDisposable = null),
                          this._performSmoothScrolling());
                      }
                    ))
                : void 0
            );
          }
          _setState(e) {
            const t = this._state;
            t.equals(e) ||
              ((this._state = e),
              this._onScroll.fire(this._state.createScrollEvent(t)));
          }
        }
        class a {
          constructor(e, t, i) {
            (this.scrollLeft = e), (this.scrollTop = t), (this.isDone = i);
          }
        }
        function l(e, t) {
          const i = t - e;
          return function (t) {
            return e + i * (1 - ((n = 1 - t), Math.pow(n, 3)));
            var n;
          };
        }
        class c {
          constructor(e, t, i, n) {
            (this.from = e),
              (this.to = t),
              (this.duration = n),
              (this._startTime = i),
              (this.animationFrameDisposable = null),
              this._initAnimations();
          }
          _initAnimations() {
            (this.scrollLeft = this._initAnimation(
              this.from.scrollLeft,
              this.to.scrollLeft,
              this.to.width
            )),
              (this.scrollTop = this._initAnimation(
                this.from.scrollTop,
                this.to.scrollTop,
                this.to.height
              ));
          }
          _initAnimation(e, t, i) {
            if (Math.abs(e - t) > 2.5 * i) {
              let o, a;
              return (
                e < t
                  ? ((o = e + 0.75 * i), (a = t - 0.75 * i))
                  : ((o = e - 0.75 * i), (a = t + 0.75 * i)),
                (n = l(e, o)),
                (r = l(a, t)),
                (s = 0.33),
                function (e) {
                  return e < s ? n(e / s) : r((e - s) / (1 - s));
                }
              );
            }
            var n, r, s;
            return l(e, t);
          }
          dispose() {
            null !== this.animationFrameDisposable &&
              (this.animationFrameDisposable.dispose(),
              (this.animationFrameDisposable = null));
          }
          acceptScrollDimensions(e) {
            (this.to = e.withScrollPosition(this.to)), this._initAnimations();
          }
          tick() {
            return this._tick(Date.now());
          }
          _tick(e) {
            const t = (e - this._startTime) / this.duration;
            if (t < 1) {
              const e = this.scrollLeft(t),
                i = this.scrollTop(t);
              return new a(e, i, !1);
            }
            return new a(this.to.scrollLeft, this.to.scrollTop, !0);
          }
          combine(e, t, i) {
            return c.start(e, t, i);
          }
          static start(e, t, i) {
            i += 10;
            const n = Date.now() - 10;
            return new c(e, t, n, i);
          }
        }
      },
      14603: (e, t, i) => {
        'use strict';
        i.d(t, { Z: () => s });
        var n,
          r = i(97295);
        !(function (e) {
          (e[(e.Ignore = 0)] = 'Ignore'),
            (e[(e.Info = 1)] = 'Info'),
            (e[(e.Warning = 2)] = 'Warning'),
            (e[(e.Error = 3)] = 'Error');
        })(n || (n = {})),
          (function (e) {
            e.fromValue = function (t) {
              return t
                ? r.qq('error', t)
                  ? e.Error
                  : r.qq('warning', t) || r.qq('warn', t)
                  ? e.Warning
                  : r.qq('info', t)
                  ? e.Info
                  : e.Ignore
                : e.Ignore;
            };
          })(n || (n = {}));
        const s = n;
      },
      84013: (e, t, i) => {
        'use strict';
        i.d(t, { G: () => s });
        var n = i(1432);
        const r = n.li.performance && 'function' == typeof n.li.performance.now;
        class s {
          constructor(e) {
            (this._highResolution = r && e),
              (this._startTime = this._now()),
              (this._stopTime = -1);
          }
          static create(e = !0) {
            return new s(e);
          }
          stop() {
            this._stopTime = this._now();
          }
          elapsed() {
            return -1 !== this._stopTime
              ? this._stopTime - this._startTime
              : this._now() - this._startTime;
          }
          _now() {
            return this._highResolution
              ? n.li.performance.now()
              : new Date().getTime();
          }
        }
      },
      97295: (e, t, i) => {
        'use strict';
        function n(e) {
          return !e || 'string' != typeof e || 0 === e.trim().length;
        }
        function r(e, t, i = '0') {
          const n = '' + e,
            r = [n];
          for (let e = n.length; e < t; e++) r.push(i);
          return r.reverse().join('');
        }
        i.d(t, {
          m5: () => n,
          vk: () => r,
          WU: () => o,
          YU: () => a,
          ec: () => l,
          fy: () => c,
          j3: () => d,
          oL: () => h,
          un: () => u,
          R1: () => g,
          Ny: () => f,
          pn: () => p,
          GF: () => m,
          IO: () => _,
          mr: () => b,
          LC: () => v,
          V8: () => y,
          ow: () => w,
          qu: () => C,
          TT: () => S,
          zY: () => k,
          j_: () => x,
          mK: () => L,
          df: () => M,
          qq: () => N,
          ok: () => T,
          Mh: () => I,
          P1: () => O,
          ZG: () => A,
          YK: () => R,
          rL: () => P,
          ZH: () => F,
          vH: () => W,
          HO: () => Y,
          CZ: () => H,
          Ut: () => V,
          RP: () => U,
          $i: () => K,
          Qe: () => q,
          ab: () => G,
          xe: () => Z,
          K7: () => J,
          C8: () => Q,
          c1: () => X,
          uS: () => ee,
          Kw: () => te,
          PJ: () => ie,
          S6: () => ne,
          fi: () => re,
        });
        const s = /{(\d+)}/g;
        function o(e, ...t) {
          return 0 === t.length
            ? e
            : e.replace(s, function (e, i) {
                const n = parseInt(i, 10);
                return isNaN(n) || n < 0 || n >= t.length ? e : t[n];
              });
        }
        function a(e) {
          return e.replace(/[<>&]/g, function (e) {
            switch (e) {
              case '<':
                return '&lt;';
              case '>':
                return '&gt;';
              case '&':
                return '&amp;';
              default:
                return e;
            }
          });
        }
        function l(e) {
          return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, '\\$&');
        }
        function c(e, t = ' ') {
          return h(d(e, t), t);
        }
        function d(e, t) {
          if (!e || !t) return e;
          const i = t.length;
          if (0 === i || 0 === e.length) return e;
          let n = 0;
          for (; e.indexOf(t, n) === n; ) n += i;
          return e.substring(n);
        }
        function h(e, t) {
          if (!e || !t) return e;
          const i = t.length,
            n = e.length;
          if (0 === i || 0 === n) return e;
          let r = n,
            s = -1;
          for (; (s = e.lastIndexOf(t, r - 1)), -1 !== s && s + i === r; ) {
            if (0 === s) return '';
            r = s;
          }
          return e.substring(0, r);
        }
        function u(e) {
          return e
            .replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, '\\$&')
            .replace(/[\*]/g, '.*');
        }
        function g(e) {
          return e.replace(/\*/g, '');
        }
        function f(e, t) {
          if (e.length < t.length) return !1;
          if (e === t) return !0;
          for (let i = 0; i < t.length; i++) if (e[i] !== t[i]) return !1;
          return !0;
        }
        function p(e, t) {
          const i = e.length - t.length;
          return i > 0 ? e.indexOf(t, i) === i : 0 === i && e === t;
        }
        function m(e, t, i = {}) {
          if (!e) throw new Error('Cannot create regex from empty string');
          t || (e = l(e)),
            i.wholeWord &&
              (/\B/.test(e.charAt(0)) || (e = '\\b' + e),
              /\B/.test(e.charAt(e.length - 1)) || (e += '\\b'));
          let n = '';
          return (
            i.global && (n += 'g'),
            i.matchCase || (n += 'i'),
            i.multiline && (n += 'm'),
            i.unicode && (n += 'u'),
            new RegExp(e, n)
          );
        }
        function _(e) {
          return (
            '^' !== e.source &&
            '^$' !== e.source &&
            '$' !== e.source &&
            '^\\s*$' !== e.source &&
            !(!e.exec('') || 0 !== e.lastIndex)
          );
        }
        function b(e) {
          return (
            (e.global ? 'g' : '') +
            (e.ignoreCase ? 'i' : '') +
            (e.multiline ? 'm' : '') +
            (e.unicode ? 'u' : '')
          );
        }
        function v(e) {
          for (let t = 0, i = e.length; t < i; t++) {
            const i = e.charCodeAt(t);
            if (32 !== i && 9 !== i) return t;
          }
          return -1;
        }
        function y(e, t = 0, i = e.length) {
          for (let n = t; n < i; n++) {
            const i = e.charCodeAt(n);
            if (32 !== i && 9 !== i) return e.substring(t, n);
          }
          return e.substring(t, i);
        }
        function w(e, t = e.length - 1) {
          for (let i = t; i >= 0; i--) {
            const t = e.charCodeAt(i);
            if (32 !== t && 9 !== t) return i;
          }
          return -1;
        }
        function C(e, t) {
          return e < t ? -1 : e > t ? 1 : 0;
        }
        function S(e, t, i = 0, n = e.length, r = 0, s = t.length) {
          for (; i < n && r < s; i++, r++) {
            let n = e.charCodeAt(i),
              s = t.charCodeAt(r);
            if (n < s) return -1;
            if (n > s) return 1;
          }
          const o = n - i,
            a = s - r;
          return o < a ? -1 : o > a ? 1 : 0;
        }
        function k(e, t) {
          return x(e, t, 0, e.length, 0, t.length);
        }
        function x(e, t, i = 0, n = e.length, r = 0, s = t.length) {
          for (; i < n && r < s; i++, r++) {
            let o = e.charCodeAt(i),
              a = t.charCodeAt(r);
            if (o === a) continue;
            const l = o - a;
            if (!((32 === l && M(a)) || (-32 === l && M(o))))
              return L(o) && L(a)
                ? l
                : S(e.toLowerCase(), t.toLowerCase(), i, n, r, s);
          }
          const o = n - i,
            a = s - r;
          return o < a ? -1 : o > a ? 1 : 0;
        }
        function L(e) {
          return e >= 97 && e <= 122;
        }
        function M(e) {
          return e >= 65 && e <= 90;
        }
        function D(e) {
          return L(e) || M(e);
        }
        function N(e, t) {
          return e.length === t.length && E(e, t);
        }
        function E(e, t, i = e.length) {
          for (let n = 0; n < i; n++) {
            const i = e.charCodeAt(n),
              r = t.charCodeAt(n);
            if (i !== r)
              if (D(i) && D(r)) {
                const e = Math.abs(i - r);
                if (0 !== e && 32 !== e) return !1;
              } else if (
                String.fromCharCode(i).toLowerCase() !==
                String.fromCharCode(r).toLowerCase()
              )
                return !1;
          }
          return !0;
        }
        function T(e, t) {
          const i = t.length;
          return !(t.length > e.length) && E(e, t, i);
        }
        function I(e, t) {
          let i,
            n = Math.min(e.length, t.length);
          for (i = 0; i < n; i++)
            if (e.charCodeAt(i) !== t.charCodeAt(i)) return i;
          return n;
        }
        function O(e, t) {
          let i,
            n = Math.min(e.length, t.length);
          const r = e.length - 1,
            s = t.length - 1;
          for (i = 0; i < n; i++)
            if (e.charCodeAt(r - i) !== t.charCodeAt(s - i)) return i;
          return n;
        }
        function A(e) {
          return 55296 <= e && e <= 56319;
        }
        function R(e) {
          return 56320 <= e && e <= 57343;
        }
        function P(e, t) {
          return t - 56320 + ((e - 55296) << 10) + 65536;
        }
        function F(e, t, i) {
          const n = e.charCodeAt(i);
          if (A(n) && i + 1 < t) {
            const t = e.charCodeAt(i + 1);
            if (R(t)) return P(n, t);
          }
          return n;
        }
        function B(e, t) {
          const i = e.charCodeAt(t - 1);
          if (R(i) && t > 1) {
            const n = e.charCodeAt(t - 2);
            if (A(n)) return P(n, i);
          }
          return i;
        }
        function W(e, t) {
          const i = se.getInstance(),
            n = t,
            r = e.length,
            s = F(e, r, t);
          t += s >= 65536 ? 2 : 1;
          let o = i.getGraphemeBreakType(s);
          for (; t < r; ) {
            const n = F(e, r, t),
              s = i.getGraphemeBreakType(n);
            if (re(o, s)) break;
            (t += n >= 65536 ? 2 : 1), (o = s);
          }
          return t - n;
        }
        function Y(e, t) {
          const i = se.getInstance(),
            n = t,
            r = B(e, t);
          t -= r >= 65536 ? 2 : 1;
          let s = i.getGraphemeBreakType(r);
          for (; t > 0; ) {
            const n = B(e, t),
              r = i.getGraphemeBreakType(n);
            if (re(r, s)) break;
            (t -= n >= 65536 ? 2 : 1), (s = r);
          }
          return n - t;
        }
        function H(e) {
          const t = e.byteLength,
            i = [];
          let n = 0;
          for (; n < t; ) {
            const r = e[n];
            let s;
            if (
              ((s =
                r >= 240 && n + 3 < t
                  ? (((7 & e[n++]) << 18) >>> 0) |
                    (((63 & e[n++]) << 12) >>> 0) |
                    (((63 & e[n++]) << 6) >>> 0) |
                    (((63 & e[n++]) << 0) >>> 0)
                  : r >= 224 && n + 2 < t
                  ? (((15 & e[n++]) << 12) >>> 0) |
                    (((63 & e[n++]) << 6) >>> 0) |
                    (((63 & e[n++]) << 0) >>> 0)
                  : r >= 192 && n + 1 < t
                  ? (((31 & e[n++]) << 6) >>> 0) | (((63 & e[n++]) << 0) >>> 0)
                  : e[n++]),
              (s >= 0 && s <= 55295) || (s >= 57344 && s <= 65535))
            )
              i.push(String.fromCharCode(s));
            else if (s >= 65536 && s <= 1114111) {
              const e = s - 65536,
                t = 55296 + ((1047552 & e) >>> 10),
                n = 56320 + ((1023 & e) >>> 0);
              i.push(String.fromCharCode(t)), i.push(String.fromCharCode(n));
            } else i.push(String.fromCharCode(65533));
          }
          return i.join('');
        }
        const j = /(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;
        function V(e) {
          return j.test(e);
        }
        const z = /(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDE73\uDE78-\uDE82\uDE90-\uDE95])/;
        function U(e) {
          return z.test(e);
        }
        const $ = /^[\t\n\r\x20-\x7E]*$/;
        function K(e) {
          return $.test(e);
        }
        const q = /[\u2028\u2029]/;
        function G(e) {
          return q.test(e);
        }
        function Z(e) {
          for (let t = 0, i = e.length; t < i; t++)
            if (J(e.charCodeAt(t))) return !0;
          return !1;
        }
        function J(e) {
          return (
            ((e = +e) >= 11904 && e <= 55215) ||
            (e >= 63744 && e <= 64255) ||
            (e >= 65281 && e <= 65374)
          );
        }
        function Q(e) {
          return (
            (e >= 127462 && e <= 127487) ||
            (e >= 9728 && e <= 10175) ||
            (e >= 127744 && e <= 128591) ||
            (e >= 128640 && e <= 128764) ||
            (e >= 128992 && e <= 129003) ||
            (e >= 129280 && e <= 129535) ||
            (e >= 129648 && e <= 129651) ||
            (e >= 129656 && e <= 129666) ||
            (e >= 129680 && e <= 129685)
          );
        }
        const X = String.fromCharCode(65279);
        function ee(e) {
          return !!(e && e.length > 0 && 65279 === e.charCodeAt(0));
        }
        function te(e, t = !1) {
          return (
            !!e && (t && (e = e.replace(/\\./g, '')), e.toLowerCase() !== e)
          );
        }
        function ie(e) {
          return (e %= 52) < 26
            ? String.fromCharCode(97 + e)
            : String.fromCharCode(65 + e - 26);
        }
        function ne(e) {
          return se.getInstance().getGraphemeBreakType(e);
        }
        function re(e, t) {
          return 0 === e
            ? 5 !== t && 7 !== t
            : !(
                (2 === e && 3 === t) ||
                (4 !== e &&
                  2 !== e &&
                  3 !== e &&
                  4 !== t &&
                  2 !== t &&
                  3 !== t &&
                  ((8 === e && (8 === t || 9 === t || 11 === t || 12 === t)) ||
                    !((11 !== e && 9 !== e) || (9 !== t && 10 !== t)) ||
                    ((12 === e || 10 === e) && 10 === t) ||
                    5 === t ||
                    13 === t ||
                    7 === t ||
                    1 === e ||
                    (13 === e && 14 === t) ||
                    (6 === e && 6 === t)))
              );
        }
        class se {
          constructor() {
            this._data = JSON.parse(
              '[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]'
            );
          }
          static getInstance() {
            return se._INSTANCE || (se._INSTANCE = new se()), se._INSTANCE;
          }
          getGraphemeBreakType(e) {
            if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;
            if (e < 127) return 0;
            const t = this._data,
              i = t.length / 3;
            let n = 1;
            for (; n <= i; )
              if (e < t[3 * n]) n *= 2;
              else {
                if (!(e > t[3 * n + 1])) return t[3 * n + 2];
                n = 2 * n + 1;
              }
            return 0;
          }
        }
        se._INSTANCE = null;
      },
      98401: (e, t, i) => {
        'use strict';
        function n(e) {
          return Array.isArray(e);
        }
        function r(e) {
          return 'string' == typeof e;
        }
        function s(e) {
          return !(
            'object' != typeof e ||
            null === e ||
            Array.isArray(e) ||
            e instanceof RegExp ||
            e instanceof Date
          );
        }
        function o(e) {
          return 'number' == typeof e && !isNaN(e);
        }
        function a(e) {
          return !0 === e || !1 === e;
        }
        function l(e) {
          return void 0 === e;
        }
        function c(e) {
          return l(e) || null === e;
        }
        function d(e, t) {
          if (!e)
            throw new Error(
              t ? `Unexpected type, expected '${t}'` : 'Unexpected type'
            );
        }
        function h(e) {
          if (c(e))
            throw new Error('Assertion Failed: argument is undefined or null');
          return e;
        }
        function u(e) {
          return 'function' == typeof e;
        }
        function g(e, t) {
          const i = Math.min(e.length, t.length);
          for (let n = 0; n < i; n++) f(e[n], t[n]);
        }
        function f(e, t) {
          if (r(t)) {
            if (typeof e !== t)
              throw new Error(
                `argument does not match constraint: typeof ${t}`
              );
          } else if (u(t)) {
            try {
              if (e instanceof t) return;
            } catch (e) {}
            if (!c(e) && e.constructor === t) return;
            if (1 === t.length && !0 === t.call(void 0, e)) return;
            throw new Error(
              'argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true'
            );
          }
        }
        function p(e) {
          const t = [];
          for (const i of (function (e) {
            let t = [],
              i = Object.getPrototypeOf(e);
            for (; Object.prototype !== i; )
              (t = t.concat(Object.getOwnPropertyNames(i))),
                (i = Object.getPrototypeOf(i));
            return t;
          })(e))
            'function' == typeof e[i] && t.push(i);
          return t;
        }
        function m(e, t) {
          const i = (e) =>
            function () {
              const i = Array.prototype.slice.call(arguments, 0);
              return t(e, i);
            };
          let n = {};
          for (const t of e) n[t] = i(t);
          return n;
        }
        function _(e) {
          return null === e ? void 0 : e;
        }
        i.d(t, {
          kJ: () => n,
          HD: () => r,
          Kn: () => s,
          hj: () => o,
          jn: () => a,
          o8: () => l,
          Jp: () => c,
          p_: () => d,
          cW: () => h,
          mf: () => u,
          D8: () => g,
          $E: () => p,
          IU: () => m,
          f6: () => _,
        });
      },
      85427: (e, t, i) => {
        'use strict';
        function n(e) {
          return e < 0 ? 0 : e > 255 ? 255 : 0 | e;
        }
        function r(e) {
          return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e;
        }
        i.d(t, { K: () => n, A: () => r });
      },
      70666: (e, t, i) => {
        'use strict';
        i.d(t, { o: () => h, q: () => _ });
        var n = i(1432),
          r = i(88721);
        const s = /^\w[\w\d+.-]*$/,
          o = /^\//,
          a = /^\/\//,
          l = '',
          c = '/',
          d = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
        class h {
          constructor(e, t, i, n, r, d = !1) {
            'object' == typeof e
              ? ((this.scheme = e.scheme || l),
                (this.authority = e.authority || l),
                (this.path = e.path || l),
                (this.query = e.query || l),
                (this.fragment = e.fragment || l))
              : ((this.scheme = (function (e, t) {
                  return e || t ? e : 'file';
                })(e, d)),
                (this.authority = t || l),
                (this.path = (function (e, t) {
                  switch (e) {
                    case 'https':
                    case 'http':
                    case 'file':
                      t ? t[0] !== c && (t = c + t) : (t = c);
                  }
                  return t;
                })(this.scheme, i || l)),
                (this.query = n || l),
                (this.fragment = r || l),
                (function (e, t) {
                  if (!e.scheme && t)
                    throw new Error(
                      `[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`
                    );
                  if (e.scheme && !s.test(e.scheme))
                    throw new Error(
                      '[UriError]: Scheme contains illegal characters.'
                    );
                  if (e.path)
                    if (e.authority) {
                      if (!o.test(e.path))
                        throw new Error(
                          '[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'
                        );
                    } else if (a.test(e.path))
                      throw new Error(
                        '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'
                      );
                })(this, d));
          }
          static isUri(e) {
            return (
              e instanceof h ||
              (!!e &&
                'string' == typeof e.authority &&
                'string' == typeof e.fragment &&
                'string' == typeof e.path &&
                'string' == typeof e.query &&
                'string' == typeof e.scheme &&
                'function' == typeof e.fsPath &&
                'function' == typeof e.with &&
                'function' == typeof e.toString)
            );
          }
          get fsPath() {
            return _(this, !1);
          }
          with(e) {
            if (!e) return this;
            let { scheme: t, authority: i, path: n, query: r, fragment: s } = e;
            return (
              void 0 === t ? (t = this.scheme) : null === t && (t = l),
              void 0 === i ? (i = this.authority) : null === i && (i = l),
              void 0 === n ? (n = this.path) : null === n && (n = l),
              void 0 === r ? (r = this.query) : null === r && (r = l),
              void 0 === s ? (s = this.fragment) : null === s && (s = l),
              t === this.scheme &&
              i === this.authority &&
              n === this.path &&
              r === this.query &&
              s === this.fragment
                ? this
                : new g(t, i, n, r, s)
            );
          }
          static parse(e, t = !1) {
            const i = d.exec(e);
            return i
              ? new g(
                  i[2] || l,
                  w(i[4] || l),
                  w(i[5] || l),
                  w(i[7] || l),
                  w(i[9] || l),
                  t
                )
              : new g(l, l, l, l, l);
          }
          static file(e) {
            let t = l;
            if ((n.ED && (e = e.replace(/\\/g, c)), e[0] === c && e[1] === c)) {
              const i = e.indexOf(c, 2);
              -1 === i
                ? ((t = e.substring(2)), (e = c))
                : ((t = e.substring(2, i)), (e = e.substring(i) || c));
            }
            return new g('file', t, e, l, l);
          }
          static from(e) {
            return new g(e.scheme, e.authority, e.path, e.query, e.fragment);
          }
          static joinPath(e, ...t) {
            if (!e.path)
              throw new Error(
                '[UriError]: cannot call joinPaths on URI without path'
              );
            let i;
            return (
              (i =
                n.ED && 'file' === e.scheme
                  ? h.file(r.Ku.join(_(e, !0), ...t)).path
                  : r.KR.join(e.path, ...t)),
              e.with({ path: i })
            );
          }
          toString(e = !1) {
            return b(this, e);
          }
          toJSON() {
            return this;
          }
          static revive(e) {
            if (e) {
              if (e instanceof h) return e;
              {
                const t = new g(e);
                return (
                  (t._formatted = e.external),
                  (t._fsPath = e._sep === u ? e.fsPath : null),
                  t
                );
              }
            }
            return e;
          }
        }
        const u = n.ED ? 1 : void 0;
        class g extends h {
          constructor() {
            super(...arguments),
              (this._formatted = null),
              (this._fsPath = null);
          }
          get fsPath() {
            return this._fsPath || (this._fsPath = _(this, !1)), this._fsPath;
          }
          toString(e = !1) {
            return e
              ? b(this, !0)
              : (this._formatted || (this._formatted = b(this, !1)),
                this._formatted);
          }
          toJSON() {
            const e = { $mid: 1 };
            return (
              this._fsPath && ((e.fsPath = this._fsPath), (e._sep = u)),
              this._formatted && (e.external = this._formatted),
              this.path && (e.path = this.path),
              this.scheme && (e.scheme = this.scheme),
              this.authority && (e.authority = this.authority),
              this.query && (e.query = this.query),
              this.fragment && (e.fragment = this.fragment),
              e
            );
          }
        }
        const f = {
          58: '%3A',
          47: '%2F',
          63: '%3F',
          35: '%23',
          91: '%5B',
          93: '%5D',
          64: '%40',
          33: '%21',
          36: '%24',
          38: '%26',
          39: '%27',
          40: '%28',
          41: '%29',
          42: '%2A',
          43: '%2B',
          44: '%2C',
          59: '%3B',
          61: '%3D',
          32: '%20',
        };
        function p(e, t) {
          let i,
            n = -1;
          for (let r = 0; r < e.length; r++) {
            const s = e.charCodeAt(r);
            if (
              (s >= 97 && s <= 122) ||
              (s >= 65 && s <= 90) ||
              (s >= 48 && s <= 57) ||
              45 === s ||
              46 === s ||
              95 === s ||
              126 === s ||
              (t && 47 === s)
            )
              -1 !== n &&
                ((i += encodeURIComponent(e.substring(n, r))), (n = -1)),
                void 0 !== i && (i += e.charAt(r));
            else {
              void 0 === i && (i = e.substr(0, r));
              const t = f[s];
              void 0 !== t
                ? (-1 !== n &&
                    ((i += encodeURIComponent(e.substring(n, r))), (n = -1)),
                  (i += t))
                : -1 === n && (n = r);
            }
          }
          return (
            -1 !== n && (i += encodeURIComponent(e.substring(n))),
            void 0 !== i ? i : e
          );
        }
        function m(e) {
          let t;
          for (let i = 0; i < e.length; i++) {
            const n = e.charCodeAt(i);
            35 === n || 63 === n
              ? (void 0 === t && (t = e.substr(0, i)), (t += f[n]))
              : void 0 !== t && (t += e[i]);
          }
          return void 0 !== t ? t : e;
        }
        function _(e, t) {
          let i;
          return (
            (i =
              e.authority && e.path.length > 1 && 'file' === e.scheme
                ? `//${e.authority}${e.path}`
                : 47 === e.path.charCodeAt(0) &&
                  ((e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90) ||
                    (e.path.charCodeAt(1) >= 97 &&
                      e.path.charCodeAt(1) <= 122)) &&
                  58 === e.path.charCodeAt(2)
                ? t
                  ? e.path.substr(1)
                  : e.path[1].toLowerCase() + e.path.substr(2)
                : e.path),
            n.ED && (i = i.replace(/\//g, '\\')),
            i
          );
        }
        function b(e, t) {
          const i = t ? m : p;
          let n = '',
            { scheme: r, authority: s, path: o, query: a, fragment: l } = e;
          if (
            (r && ((n += r), (n += ':')),
            (s || 'file' === r) && ((n += c), (n += c)),
            s)
          ) {
            let e = s.indexOf('@');
            if (-1 !== e) {
              const t = s.substr(0, e);
              (s = s.substr(e + 1)),
                (e = t.indexOf(':')),
                -1 === e
                  ? (n += i(t, !1))
                  : ((n += i(t.substr(0, e), !1)),
                    (n += ':'),
                    (n += i(t.substr(e + 1), !1))),
                (n += '@');
            }
            (s = s.toLowerCase()),
              (e = s.indexOf(':')),
              -1 === e
                ? (n += i(s, !1))
                : ((n += i(s.substr(0, e), !1)), (n += s.substr(e)));
          }
          if (o) {
            if (
              o.length >= 3 &&
              47 === o.charCodeAt(0) &&
              58 === o.charCodeAt(2)
            ) {
              const e = o.charCodeAt(1);
              e >= 65 &&
                e <= 90 &&
                (o = `/${String.fromCharCode(e + 32)}:${o.substr(3)}`);
            } else if (o.length >= 2 && 58 === o.charCodeAt(1)) {
              const e = o.charCodeAt(0);
              e >= 65 &&
                e <= 90 &&
                (o = `${String.fromCharCode(e + 32)}:${o.substr(2)}`);
            }
            n += i(o, !0);
          }
          return (
            a && ((n += '?'), (n += i(a, !1))),
            l && ((n += '#'), (n += t ? l : p(l, !1))),
            n
          );
        }
        function v(e) {
          try {
            return decodeURIComponent(e);
          } catch (t) {
            return e.length > 3 ? e.substr(0, 3) + v(e.substr(3)) : e;
          }
        }
        const y = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
        function w(e) {
          return e.match(y) ? e.replace(y, (e) => v(e)) : e;
        }
      },
      67746: (e, t, i) => {
        'use strict';
        i.d(t, { X: () => n, j: () => r });
        const n = { ctrlCmd: !1, alt: !1 };
        var r;
        !(function (e) {
          (e[(e.NONE = 0)] = 'NONE'),
            (e[(e.FIRST = 1)] = 'FIRST'),
            (e[(e.SECOND = 2)] = 'SECOND'),
            (e[(e.LAST = 3)] = 'LAST');
        })(r || (r = {}));
      },
      89587: (e, t, i) => {
        'use strict';
        i.d(t, { Mj: () => n.languages });
        var n = i(50158);
      },
      89052: (e, t, i) => {
        'use strict';
        i.d(t, { V: () => m, P: () => f });
        var n = i(16268),
          r = i(4669),
          s = i(5976),
          o = i(1432);
        class a {
          constructor(e, t) {
            (this.chr = e), (this.type = t), (this.width = 0);
          }
          fulfill(e) {
            this.width = e;
          }
        }
        class l {
          constructor(e, t) {
            (this._bareFontInfo = e),
              (this._requests = t),
              (this._container = null),
              (this._testElements = null);
          }
          read() {
            this._createDomElements(),
              document.body.appendChild(this._container),
              this._readFromDomElements(),
              document.body.removeChild(this._container),
              (this._container = null),
              (this._testElements = null);
          }
          _createDomElements() {
            const e = document.createElement('div');
            (e.style.position = 'absolute'),
              (e.style.top = '-50000px'),
              (e.style.width = '50000px');
            const t = document.createElement('div');
            (t.style.fontFamily = this._bareFontInfo.getMassagedFontFamily()),
              (t.style.fontWeight = this._bareFontInfo.fontWeight),
              (t.style.fontSize = this._bareFontInfo.fontSize + 'px'),
              (t.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings),
              (t.style.lineHeight = this._bareFontInfo.lineHeight + 'px'),
              (t.style.letterSpacing = this._bareFontInfo.letterSpacing + 'px'),
              e.appendChild(t);
            const i = document.createElement('div');
            (i.style.fontFamily = this._bareFontInfo.getMassagedFontFamily()),
              (i.style.fontWeight = 'bold'),
              (i.style.fontSize = this._bareFontInfo.fontSize + 'px'),
              (i.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings),
              (i.style.lineHeight = this._bareFontInfo.lineHeight + 'px'),
              (i.style.letterSpacing = this._bareFontInfo.letterSpacing + 'px'),
              e.appendChild(i);
            const n = document.createElement('div');
            (n.style.fontFamily = this._bareFontInfo.getMassagedFontFamily()),
              (n.style.fontWeight = this._bareFontInfo.fontWeight),
              (n.style.fontSize = this._bareFontInfo.fontSize + 'px'),
              (n.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings),
              (n.style.lineHeight = this._bareFontInfo.lineHeight + 'px'),
              (n.style.letterSpacing = this._bareFontInfo.letterSpacing + 'px'),
              (n.style.fontStyle = 'italic'),
              e.appendChild(n);
            const r = [];
            for (const e of this._requests) {
              let s;
              0 === e.type && (s = t),
                2 === e.type && (s = i),
                1 === e.type && (s = n),
                s.appendChild(document.createElement('br'));
              const o = document.createElement('span');
              l._render(o, e), s.appendChild(o), r.push(o);
            }
            (this._container = e), (this._testElements = r);
          }
          static _render(e, t) {
            if (' ' === t.chr) {
              let t = ' ';
              for (let e = 0; e < 8; e++) t += t;
              e.innerText = t;
            } else {
              let i = t.chr;
              for (let e = 0; e < 8; e++) i += i;
              e.textContent = i;
            }
          }
          _readFromDomElements() {
            for (let e = 0, t = this._requests.length; e < t; e++) {
              const t = this._requests[e],
                i = this._testElements[e];
              t.fulfill(i.offsetWidth / 256);
            }
          }
        }
        var c = i(54534),
          d = i(56345),
          h = i(64141),
          u = i(27374);
        class g {
          constructor() {
            (this._keys = Object.create(null)),
              (this._values = Object.create(null));
          }
          has(e) {
            const t = e.getId();
            return !!this._values[t];
          }
          get(e) {
            const t = e.getId();
            return this._values[t];
          }
          put(e, t) {
            const i = e.getId();
            (this._keys[i] = e), (this._values[i] = t);
          }
          remove(e) {
            const t = e.getId();
            delete this._keys[t], delete this._values[t];
          }
          getValues() {
            return Object.keys(this._keys).map((e) => this._values[e]);
          }
        }
        function f() {
          p.INSTANCE.clearCache();
        }
        class p extends s.JT {
          constructor() {
            super(),
              (this._onDidChange = this._register(new r.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._cache = new g()),
              (this._evictUntrustedReadingsTimeout = -1);
          }
          dispose() {
            -1 !== this._evictUntrustedReadingsTimeout &&
              (clearTimeout(this._evictUntrustedReadingsTimeout),
              (this._evictUntrustedReadingsTimeout = -1)),
              super.dispose();
          }
          clearCache() {
            (this._cache = new g()), this._onDidChange.fire();
          }
          _writeToCache(e, t) {
            this._cache.put(e, t),
              t.isTrusted ||
                -1 !== this._evictUntrustedReadingsTimeout ||
                (this._evictUntrustedReadingsTimeout = setTimeout(() => {
                  (this._evictUntrustedReadingsTimeout = -1),
                    this._evictUntrustedReadings();
                }, 5e3));
          }
          _evictUntrustedReadings() {
            const e = this._cache.getValues();
            let t = !1;
            for (let i = 0, n = e.length; i < n; i++) {
              const n = e[i];
              n.isTrusted || ((t = !0), this._cache.remove(n));
            }
            t && this._onDidChange.fire();
          }
          readConfiguration(e) {
            if (!this._cache.has(e)) {
              let t = p._actualReadConfiguration(e);
              (t.typicalHalfwidthCharacterWidth <= 2 ||
                t.typicalFullwidthCharacterWidth <= 2 ||
                t.spaceWidth <= 2 ||
                t.maxDigitWidth <= 2) &&
                (t = new u.p(
                  {
                    zoomLevel: n.px(),
                    fontFamily: t.fontFamily,
                    fontWeight: t.fontWeight,
                    fontSize: t.fontSize,
                    fontFeatureSettings: t.fontFeatureSettings,
                    lineHeight: t.lineHeight,
                    letterSpacing: t.letterSpacing,
                    isMonospace: t.isMonospace,
                    typicalHalfwidthCharacterWidth: Math.max(
                      t.typicalHalfwidthCharacterWidth,
                      5
                    ),
                    typicalFullwidthCharacterWidth: Math.max(
                      t.typicalFullwidthCharacterWidth,
                      5
                    ),
                    canUseHalfwidthRightwardsArrow:
                      t.canUseHalfwidthRightwardsArrow,
                    spaceWidth: Math.max(t.spaceWidth, 5),
                    middotWidth: Math.max(t.middotWidth, 5),
                    wsmiddotWidth: Math.max(t.wsmiddotWidth, 5),
                    maxDigitWidth: Math.max(t.maxDigitWidth, 5),
                  },
                  !1
                )),
                this._writeToCache(e, t);
            }
            return this._cache.get(e);
          }
          static createRequest(e, t, i, n) {
            const r = new a(e, t);
            return i.push(r), n && n.push(r), r;
          }
          static _actualReadConfiguration(e) {
            const t = [],
              i = [],
              r = this.createRequest('n', 0, t, i),
              s = this.createRequest('ｍ', 0, t, null),
              o = this.createRequest(' ', 0, t, i),
              a = this.createRequest('0', 0, t, i),
              c = this.createRequest('1', 0, t, i),
              d = this.createRequest('2', 0, t, i),
              g = this.createRequest('3', 0, t, i),
              f = this.createRequest('4', 0, t, i),
              p = this.createRequest('5', 0, t, i),
              m = this.createRequest('6', 0, t, i),
              _ = this.createRequest('7', 0, t, i),
              b = this.createRequest('8', 0, t, i),
              v = this.createRequest('9', 0, t, i),
              y = this.createRequest('→', 0, t, i),
              w = this.createRequest('￫', 0, t, null),
              C = this.createRequest('·', 0, t, i),
              S = this.createRequest(String.fromCharCode(11825), 0, t, null);
            this.createRequest('|', 0, t, i),
              this.createRequest('/', 0, t, i),
              this.createRequest('-', 0, t, i),
              this.createRequest('_', 0, t, i),
              this.createRequest('i', 0, t, i),
              this.createRequest('l', 0, t, i),
              this.createRequest('m', 0, t, i),
              this.createRequest('|', 1, t, i),
              this.createRequest('_', 1, t, i),
              this.createRequest('i', 1, t, i),
              this.createRequest('l', 1, t, i),
              this.createRequest('m', 1, t, i),
              this.createRequest('n', 1, t, i),
              this.createRequest('|', 2, t, i),
              this.createRequest('_', 2, t, i),
              this.createRequest('i', 2, t, i),
              this.createRequest('l', 2, t, i),
              this.createRequest('m', 2, t, i),
              this.createRequest('n', 2, t, i),
              (function (e, t) {
                new l(e, t).read();
              })(e, t);
            const k = Math.max(
              a.width,
              c.width,
              d.width,
              g.width,
              f.width,
              p.width,
              m.width,
              _.width,
              b.width,
              v.width
            );
            let x = e.fontFeatureSettings === h.n0.OFF;
            const L = i[0].width;
            for (let e = 1, t = i.length; x && e < t; e++) {
              const t = L - i[e].width;
              if (t < -0.001 || t > 0.001) {
                x = !1;
                break;
              }
            }
            let M = !0;
            x && w.width !== L && (M = !1), w.width > y.width && (M = !1);
            const D = n.WP() > 2e3;
            return new u.p(
              {
                zoomLevel: n.px(),
                fontFamily: e.fontFamily,
                fontWeight: e.fontWeight,
                fontSize: e.fontSize,
                fontFeatureSettings: e.fontFeatureSettings,
                lineHeight: e.lineHeight,
                letterSpacing: e.letterSpacing,
                isMonospace: x,
                typicalHalfwidthCharacterWidth: r.width,
                typicalFullwidthCharacterWidth: s.width,
                canUseHalfwidthRightwardsArrow: M,
                spaceWidth: o.width,
                middotWidth: C.width,
                wsmiddotWidth: S.width,
                maxDigitWidth: k,
              },
              D
            );
          }
        }
        p.INSTANCE = new p();
        class m extends d.fv {
          constructor(e, t, i = null, r) {
            super(e, t),
              (this.accessibilityService = r),
              (this._elementSizeObserver = this._register(
                new c.I(i, t.dimension, () =>
                  this._onReferenceDomElementSizeChanged()
                )
              )),
              this._register(
                p.INSTANCE.onDidChange(() =>
                  this._onCSSBasedConfigurationChanged()
                )
              ),
              this._validatedOptions.get(9) &&
                this._elementSizeObserver.startObserving(),
              this._register(n.fX((e) => this._recomputeOptions())),
              this._register(
                this.accessibilityService.onDidChangeScreenReaderOptimized(() =>
                  this._recomputeOptions()
                )
              ),
              this._recomputeOptions();
          }
          static applyFontInfoSlow(e, t) {
            (e.style.fontFamily = t.getMassagedFontFamily()),
              (e.style.fontWeight = t.fontWeight),
              (e.style.fontSize = t.fontSize + 'px'),
              (e.style.fontFeatureSettings = t.fontFeatureSettings),
              (e.style.lineHeight = t.lineHeight + 'px'),
              (e.style.letterSpacing = t.letterSpacing + 'px');
          }
          static applyFontInfo(e, t) {
            e.setFontFamily(t.getMassagedFontFamily()),
              e.setFontWeight(t.fontWeight),
              e.setFontSize(t.fontSize),
              e.setFontFeatureSettings(t.fontFeatureSettings),
              e.setLineHeight(t.lineHeight),
              e.setLetterSpacing(t.letterSpacing);
          }
          _onReferenceDomElementSizeChanged() {
            this._recomputeOptions();
          }
          _onCSSBasedConfigurationChanged() {
            this._recomputeOptions();
          }
          observeReferenceElement(e) {
            this._elementSizeObserver.observe(e);
          }
          dispose() {
            super.dispose();
          }
          _getExtraEditorClassName() {
            let e = '';
            return (
              n.G6 || n.MG || (e += 'no-user-select '), o.dz && (e += 'mac '), e
            );
          }
          _getEnvConfiguration() {
            return {
              extraEditorClassName: this._getExtraEditorClassName(),
              outerWidth: this._elementSizeObserver.getWidth(),
              outerHeight: this._elementSizeObserver.getHeight(),
              emptySelectionClipboard: n.Pf || n.vU,
              pixelRatio: n.mX(),
              zoomLevel: n.px(),
              accessibilitySupport: this.accessibilityService.isScreenReaderOptimized()
                ? 2
                : this.accessibilityService.getAccessibilitySupport(),
            };
          }
          readConfiguration(e) {
            return p.INSTANCE.readConfiguration(e);
          }
        }
      },
      54534: (e, t, i) => {
        'use strict';
        i.d(t, { I: () => r });
        var n = i(5976);
        class r extends n.JT {
          constructor(e, t, i) {
            super(),
              (this.referenceDomElement = e),
              (this.changeCallback = i),
              (this.width = -1),
              (this.height = -1),
              (this.resizeObserver = null),
              (this.measureReferenceDomElementToken = -1),
              this.measureReferenceDomElement(!1, t);
          }
          dispose() {
            this.stopObserving(), super.dispose();
          }
          getWidth() {
            return this.width;
          }
          getHeight() {
            return this.height;
          }
          startObserving() {
            'undefined' != typeof ResizeObserver
              ? !this.resizeObserver &&
                this.referenceDomElement &&
                ((this.resizeObserver = new ResizeObserver((e) => {
                  e && e[0] && e[0].contentRect
                    ? this.observe({
                        width: e[0].contentRect.width,
                        height: e[0].contentRect.height,
                      })
                    : this.observe();
                })),
                this.resizeObserver.observe(this.referenceDomElement))
              : -1 === this.measureReferenceDomElementToken &&
                (this.measureReferenceDomElementToken = setInterval(
                  () => this.observe(),
                  100
                ));
          }
          stopObserving() {
            this.resizeObserver &&
              (this.resizeObserver.disconnect(), (this.resizeObserver = null)),
              -1 !== this.measureReferenceDomElementToken &&
                (clearInterval(this.measureReferenceDomElementToken),
                (this.measureReferenceDomElementToken = -1));
          }
          observe(e) {
            this.measureReferenceDomElement(!0, e);
          }
          measureReferenceDomElement(e, t) {
            let i = 0,
              n = 0;
            t
              ? ((i = t.width), (n = t.height))
              : this.referenceDomElement &&
                ((i = this.referenceDomElement.clientWidth),
                (n = this.referenceDomElement.clientHeight)),
              (i = Math.max(5, i)),
              (n = Math.max(5, n)),
              (this.width === i && this.height === n) ||
                ((this.width = i),
                (this.height = n),
                e && this.changeCallback());
          }
        }
      },
      18728: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CoreEditingCommands: () => x,
            CoreEditorCommand: () => y,
            CoreNavigationCommands: () => g,
            EditorScroll_: () => h,
            RevealLine_: () => u,
          });
        var n = i(63580),
          r = i(98401),
          s = i(16830),
          o = i(11640),
          a = i(33181),
          l = i(50187),
          c = i(24314);
        class d {
          static columnSelect(e, t, i, n, r, s) {
            let o = Math.abs(r - i) + 1,
              d = i > r,
              h = n > s,
              u = n < s,
              g = [];
            for (let r = 0; r < o; r++) {
              let o = i + (d ? -r : r),
                f = a.io.columnFromVisibleColumn2(e, t, o, n),
                p = a.io.columnFromVisibleColumn2(e, t, o, s),
                m = a.io.visibleColumnFromColumn2(e, t, new l.L(o, f)),
                _ = a.io.visibleColumnFromColumn2(e, t, new l.L(o, p));
              if (u) {
                if (m > s) continue;
                if (_ < n) continue;
              }
              if (h) {
                if (_ > n) continue;
                if (m < s) continue;
              }
              g.push(new a.rS(new c.e(o, f, o, f), 0, new l.L(o, p), 0));
            }
            if (0 === g.length)
              for (let e = 0; e < o; e++) {
                const n = i + (d ? -e : e),
                  r = t.getLineMaxColumn(n);
                g.push(new a.rS(new c.e(n, r, n, r), 0, new l.L(n, r), 0));
              }
            return {
              viewStates: g,
              reversed: d,
              fromLineNumber: i,
              fromVisualColumn: n,
              toLineNumber: r,
              toVisualColumn: s,
            };
          }
          static columnSelectLeft(e, t, i) {
            let n = i.toViewVisualColumn;
            return (
              n > 1 && n--,
              d.columnSelect(
                e,
                t,
                i.fromViewLineNumber,
                i.fromViewVisualColumn,
                i.toViewLineNumber,
                n
              )
            );
          }
          static columnSelectRight(e, t, i) {
            let n = 0;
            const r = Math.min(i.fromViewLineNumber, i.toViewLineNumber),
              s = Math.max(i.fromViewLineNumber, i.toViewLineNumber);
            for (let i = r; i <= s; i++) {
              const r = t.getLineMaxColumn(i),
                s = a.io.visibleColumnFromColumn2(e, t, new l.L(i, r));
              n = Math.max(n, s);
            }
            let o = i.toViewVisualColumn;
            return (
              o < n && o++,
              this.columnSelect(
                e,
                t,
                i.fromViewLineNumber,
                i.fromViewVisualColumn,
                i.toViewLineNumber,
                o
              )
            );
          }
          static columnSelectUp(e, t, i, n) {
            const r = n ? e.pageSize : 1,
              s = Math.max(1, i.toViewLineNumber - r);
            return this.columnSelect(
              e,
              t,
              i.fromViewLineNumber,
              i.fromViewVisualColumn,
              s,
              i.toViewVisualColumn
            );
          }
          static columnSelectDown(e, t, i, n) {
            const r = n ? e.pageSize : 1,
              s = Math.min(t.getLineCount(), i.toViewLineNumber + r);
            return this.columnSelect(
              e,
              t,
              i.fromViewLineNumber,
              i.fromViewVisualColumn,
              s,
              i.toViewVisualColumn
            );
          }
        }
        var h,
          u,
          g,
          f = i(31380),
          p = i(83814),
          m = i(23582),
          _ = i(29102),
          b = i(38819),
          v = i(49989);
        class y extends s._l {
          runEditorCommand(e, t, i) {
            const n = t._getViewModel();
            n && this.runCoreEditorCommand(n, i || {});
          }
        }
        !(function (e) {
          (e.description = {
            description: 'Scroll editor in the given direction',
            args: [
              {
                name: 'Editor scroll argument object',
                description:
                  "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",
                constraint: function (e) {
                  if (!r.Kn(e)) return !1;
                  const t = e;
                  return !(
                    !r.HD(t.to) ||
                    (!r.o8(t.by) && !r.HD(t.by)) ||
                    (!r.o8(t.value) && !r.hj(t.value)) ||
                    (!r.o8(t.revealCursor) && !r.jn(t.revealCursor))
                  );
                },
                schema: {
                  type: 'object',
                  required: ['to'],
                  properties: {
                    to: { type: 'string', enum: ['up', 'down'] },
                    by: {
                      type: 'string',
                      enum: ['line', 'wrappedLine', 'page', 'halfPage'],
                    },
                    value: { type: 'number', default: 1 },
                    revealCursor: { type: 'boolean' },
                  },
                },
              },
            ],
          }),
            (e.RawDirection = { Up: 'up', Down: 'down' }),
            (e.RawUnit = {
              Line: 'line',
              WrappedLine: 'wrappedLine',
              Page: 'page',
              HalfPage: 'halfPage',
            }),
            (e.parse = function (t) {
              let i, n;
              switch (t.to) {
                case e.RawDirection.Up:
                  i = 1;
                  break;
                case e.RawDirection.Down:
                  i = 2;
                  break;
                default:
                  return null;
              }
              switch (t.by) {
                case e.RawUnit.Line:
                  n = 1;
                  break;
                case e.RawUnit.WrappedLine:
                  n = 2;
                  break;
                case e.RawUnit.Page:
                  n = 3;
                  break;
                case e.RawUnit.HalfPage:
                  n = 4;
                  break;
                default:
                  n = 2;
              }
              return {
                direction: i,
                unit: n,
                value: Math.floor(t.value || 1),
                revealCursor: !!t.revealCursor,
                select: !!t.select,
              };
            });
        })(h || (h = {})),
          (function (e) {
            (e.description = {
              description:
                'Reveal the given line at the given logical position',
              args: [
                {
                  name: 'Reveal line argument object',
                  description:
                    "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed .\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",
                  constraint: function (e) {
                    if (!r.Kn(e)) return !1;
                    const t = e;
                    return !(
                      !r.hj(t.lineNumber) ||
                      (!r.o8(t.at) && !r.HD(t.at))
                    );
                  },
                  schema: {
                    type: 'object',
                    required: ['lineNumber'],
                    properties: {
                      lineNumber: { type: 'number' },
                      at: { type: 'string', enum: ['top', 'center', 'bottom'] },
                    },
                  },
                },
              ],
            }),
              (e.RawAtArgument = {
                Top: 'top',
                Center: 'center',
                Bottom: 'bottom',
              });
          })(u || (u = {}));
        class w {
          constructor(e) {
            e.addImplementation(1e4, (e, t) => {
              const i = e.get(o.$).getFocusedCodeEditor();
              return !(
                !i ||
                !i.hasTextFocus() ||
                (this.runEditorCommand(e, i, t), 0)
              );
            }),
              e.addImplementation(1e3, (e, t) => {
                const i = document.activeElement;
                return (
                  !!(
                    i &&
                    ['input', 'textarea'].indexOf(i.tagName.toLowerCase()) >= 0
                  ) && (this.runDOMCommand(), !0)
                );
              }),
              e.addImplementation(0, (e, t) => {
                const i = e.get(o.$).getActiveCodeEditor();
                return !!i && (i.focus(), this.runEditorCommand(e, i, t), !0);
              });
          }
        }
        !(function (e) {
          class t extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(t.source, 3, [
                  p.P.moveTo(
                    e,
                    e.getPrimaryCursorState(),
                    this._inSelectionMode,
                    t.position,
                    t.viewPosition
                  ),
                ]),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.MoveTo = (0, s.fK)(
            new t({ id: '_moveTo', inSelectionMode: !1, precondition: void 0 })
          )),
            (e.MoveToSelect = (0, s.fK)(
              new t({
                id: '_moveToSelect',
                inSelectionMode: !0,
                precondition: void 0,
              })
            ));
          class i extends y {
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement();
              const i = this._getColumnSelectResult(
                e,
                e.getPrimaryCursorState(),
                e.getCursorColumnSelectData(),
                t
              );
              e.setCursorStates(
                t.source,
                3,
                i.viewStates.map((e) => a.Vi.fromViewState(e))
              ),
                e.setCursorColumnSelectData({
                  isReal: !0,
                  fromViewLineNumber: i.fromLineNumber,
                  fromViewVisualColumn: i.fromVisualColumn,
                  toViewLineNumber: i.toLineNumber,
                  toViewVisualColumn: i.toVisualColumn,
                }),
                i.reversed
                  ? e.revealTopMostCursor(t.source)
                  : e.revealBottomMostCursor(t.source);
            }
          }
          (e.ColumnSelect = (0, s.fK)(
            new (class extends i {
              constructor() {
                super({ id: 'columnSelect', precondition: void 0 });
              }
              _getColumnSelectResult(e, t, i, n) {
                const r = e.model.validatePosition(n.position),
                  s = e.coordinatesConverter.validateViewPosition(
                    new l.L(n.viewPosition.lineNumber, n.viewPosition.column),
                    r
                  );
                let o = n.doColumnSelect ? i.fromViewLineNumber : s.lineNumber,
                  a = n.doColumnSelect
                    ? i.fromViewVisualColumn
                    : n.mouseColumn - 1;
                return d.columnSelect(
                  e.cursorConfig,
                  e,
                  o,
                  a,
                  s.lineNumber,
                  n.mouseColumn - 1
                );
              }
            })()
          )),
            (e.CursorColumnSelectLeft = (0, s.fK)(
              new (class extends i {
                constructor() {
                  super({
                    id: 'cursorColumnSelectLeft',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 3599,
                      linux: { primary: 0 },
                    },
                  });
                }
                _getColumnSelectResult(e, t, i, n) {
                  return d.columnSelectLeft(e.cursorConfig, e, i);
                }
              })()
            )),
            (e.CursorColumnSelectRight = (0, s.fK)(
              new (class extends i {
                constructor() {
                  super({
                    id: 'cursorColumnSelectRight',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 3601,
                      linux: { primary: 0 },
                    },
                  });
                }
                _getColumnSelectResult(e, t, i, n) {
                  return d.columnSelectRight(e.cursorConfig, e, i);
                }
              })()
            ));
          class r extends i {
            constructor(e) {
              super(e), (this._isPaged = e.isPaged);
            }
            _getColumnSelectResult(e, t, i, n) {
              return d.columnSelectUp(e.cursorConfig, e, i, this._isPaged);
            }
          }
          (e.CursorColumnSelectUp = (0, s.fK)(
            new r({
              isPaged: !1,
              id: 'cursorColumnSelectUp',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 3600,
                linux: { primary: 0 },
              },
            })
          )),
            (e.CursorColumnSelectPageUp = (0, s.fK)(
              new r({
                isPaged: !0,
                id: 'cursorColumnSelectPageUp',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 3595,
                  linux: { primary: 0 },
                },
              })
            ));
          class o extends i {
            constructor(e) {
              super(e), (this._isPaged = e.isPaged);
            }
            _getColumnSelectResult(e, t, i, n) {
              return d.columnSelectDown(e.cursorConfig, e, i, this._isPaged);
            }
          }
          (e.CursorColumnSelectDown = (0, s.fK)(
            new o({
              isPaged: !1,
              id: 'cursorColumnSelectDown',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 3602,
                linux: { primary: 0 },
              },
            })
          )),
            (e.CursorColumnSelectPageDown = (0, s.fK)(
              new o({
                isPaged: !0,
                id: 'cursorColumnSelectPageDown',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 3596,
                  linux: { primary: 0 },
                },
              })
            ));
          class g extends y {
            constructor() {
              super({
                id: 'cursorMove',
                precondition: void 0,
                description: p.N.description,
              });
            }
            runCoreEditorCommand(e, t) {
              const i = p.N.parse(t);
              i && this._runCursorMove(e, t.source, i);
            }
            _runCursorMove(e, t, i) {
              e.model.pushStackElement(),
                e.setCursorStates(t, 3, g._move(e, e.getCursorStates(), i)),
                e.revealPrimaryCursor(t, !0);
            }
            static _move(e, t, i) {
              const n = i.select,
                r = i.value;
              switch (i.direction) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                  return p.P.simpleMove(e, t, i.direction, n, r, i.unit);
                case 9:
                case 11:
                case 10:
                case 12:
                  return p.P.viewportMove(e, t, i.direction, n, r);
                default:
                  return null;
              }
            }
          }
          (e.CursorMoveImpl = g), (e.CursorMove = (0, s.fK)(new g()));
          class f extends y {
            constructor(e) {
              super(e), (this._staticArgs = e.args);
            }
            runCoreEditorCommand(e, t) {
              let i = this._staticArgs;
              -1 === this._staticArgs.value &&
                (i = {
                  direction: this._staticArgs.direction,
                  unit: this._staticArgs.unit,
                  select: this._staticArgs.select,
                  value: e.cursorConfig.pageSize,
                }),
                e.model.pushStackElement(),
                e.setCursorStates(
                  t.source,
                  3,
                  p.P.simpleMove(
                    e,
                    e.getCursorStates(),
                    i.direction,
                    i.select,
                    i.value,
                    i.unit
                  )
                ),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.CursorLeft = (0, s.fK)(
            new f({
              args: { direction: 0, unit: 0, select: !1, value: 1 },
              id: 'cursorLeft',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 15,
                mac: { primary: 15, secondary: [288] },
              },
            })
          )),
            (e.CursorLeftSelect = (0, s.fK)(
              new f({
                args: { direction: 0, unit: 0, select: !0, value: 1 },
                id: 'cursorLeftSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1039,
                },
              })
            )),
            (e.CursorRight = (0, s.fK)(
              new f({
                args: { direction: 1, unit: 0, select: !1, value: 1 },
                id: 'cursorRight',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 17,
                  mac: { primary: 17, secondary: [292] },
                },
              })
            )),
            (e.CursorRightSelect = (0, s.fK)(
              new f({
                args: { direction: 1, unit: 0, select: !0, value: 1 },
                id: 'cursorRightSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1041,
                },
              })
            )),
            (e.CursorUp = (0, s.fK)(
              new f({
                args: { direction: 2, unit: 2, select: !1, value: 1 },
                id: 'cursorUp',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 16,
                  mac: { primary: 16, secondary: [302] },
                },
              })
            )),
            (e.CursorUpSelect = (0, s.fK)(
              new f({
                args: { direction: 2, unit: 2, select: !0, value: 1 },
                id: 'cursorUpSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1040,
                  secondary: [3088],
                  mac: { primary: 1040 },
                  linux: { primary: 1040 },
                },
              })
            )),
            (e.CursorPageUp = (0, s.fK)(
              new f({
                args: { direction: 2, unit: 2, select: !1, value: -1 },
                id: 'cursorPageUp',
                precondition: void 0,
                kbOpts: { weight: 0, kbExpr: _.u.textInputFocus, primary: 11 },
              })
            )),
            (e.CursorPageUpSelect = (0, s.fK)(
              new f({
                args: { direction: 2, unit: 2, select: !0, value: -1 },
                id: 'cursorPageUpSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1035,
                },
              })
            )),
            (e.CursorDown = (0, s.fK)(
              new f({
                args: { direction: 3, unit: 2, select: !1, value: 1 },
                id: 'cursorDown',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 18,
                  mac: { primary: 18, secondary: [300] },
                },
              })
            )),
            (e.CursorDownSelect = (0, s.fK)(
              new f({
                args: { direction: 3, unit: 2, select: !0, value: 1 },
                id: 'cursorDownSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1042,
                  secondary: [3090],
                  mac: { primary: 1042 },
                  linux: { primary: 1042 },
                },
              })
            )),
            (e.CursorPageDown = (0, s.fK)(
              new f({
                args: { direction: 3, unit: 2, select: !1, value: -1 },
                id: 'cursorPageDown',
                precondition: void 0,
                kbOpts: { weight: 0, kbExpr: _.u.textInputFocus, primary: 12 },
              })
            )),
            (e.CursorPageDownSelect = (0, s.fK)(
              new f({
                args: { direction: 3, unit: 2, select: !0, value: -1 },
                id: 'cursorPageDownSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1036,
                },
              })
            )),
            (e.CreateCursor = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({ id: 'createCursor', precondition: void 0 });
                }
                runCoreEditorCommand(e, t) {
                  let i;
                  i = t.wholeLine
                    ? p.P.line(
                        e,
                        e.getPrimaryCursorState(),
                        !1,
                        t.position,
                        t.viewPosition
                      )
                    : p.P.moveTo(
                        e,
                        e.getPrimaryCursorState(),
                        !1,
                        t.position,
                        t.viewPosition
                      );
                  const n = e.getCursorStates();
                  if (n.length > 1) {
                    const r = i.modelState ? i.modelState.position : null,
                      s = i.viewState ? i.viewState.position : null;
                    for (let i = 0, o = n.length; i < o; i++) {
                      const o = n[i];
                      if (
                        (!r || o.modelState.selection.containsPosition(r)) &&
                        (!s || o.viewState.selection.containsPosition(s))
                      )
                        return (
                          n.splice(i, 1),
                          e.model.pushStackElement(),
                          void e.setCursorStates(t.source, 3, n)
                        );
                    }
                  }
                  n.push(i),
                    e.model.pushStackElement(),
                    e.setCursorStates(t.source, 3, n);
                }
              })()
            )),
            (e.LastCursorMoveToSelect = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: '_lastCursorMoveToSelect',
                    precondition: void 0,
                  });
                }
                runCoreEditorCommand(e, t) {
                  const i = e.getLastAddedCursorIndex(),
                    n = e.getCursorStates(),
                    r = n.slice(0);
                  (r[i] = p.P.moveTo(e, n[i], !0, t.position, t.viewPosition)),
                    e.model.pushStackElement(),
                    e.setCursorStates(t.source, 3, r);
                }
              })()
            ));
          class m extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(
                  t.source,
                  3,
                  p.P.moveToBeginningOfLine(
                    e,
                    e.getCursorStates(),
                    this._inSelectionMode
                  )
                ),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.CursorHome = (0, s.fK)(
            new m({
              inSelectionMode: !1,
              id: 'cursorHome',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 14,
                mac: { primary: 14, secondary: [2063] },
              },
            })
          )),
            (e.CursorHomeSelect = (0, s.fK)(
              new m({
                inSelectionMode: !0,
                id: 'cursorHomeSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1038,
                  mac: { primary: 1038, secondary: [3087] },
                },
              })
            ));
          class b extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(t.source, 3, this._exec(e.getCursorStates())),
                e.revealPrimaryCursor(t.source, !0);
            }
            _exec(e) {
              const t = [];
              for (let i = 0, n = e.length; i < n; i++) {
                const n = e[i],
                  r = n.modelState.position.lineNumber;
                t[i] = a.Vi.fromModelState(
                  n.modelState.move(this._inSelectionMode, r, 1, 0)
                );
              }
              return t;
            }
          }
          (e.CursorLineStart = (0, s.fK)(
            new b({
              inSelectionMode: !1,
              id: 'cursorLineStart',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 0,
                mac: { primary: 287 },
              },
            })
          )),
            (e.CursorLineStartSelect = (0, s.fK)(
              new b({
                inSelectionMode: !0,
                id: 'cursorLineStartSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 0,
                  mac: { primary: 1311 },
                },
              })
            ));
          class v extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(
                  t.source,
                  3,
                  p.P.moveToEndOfLine(
                    e,
                    e.getCursorStates(),
                    this._inSelectionMode,
                    t.sticky || !1
                  )
                ),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.CursorEnd = (0, s.fK)(
            new v({
              inSelectionMode: !1,
              id: 'cursorEnd',
              precondition: void 0,
              kbOpts: {
                args: { sticky: !1 },
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 13,
                mac: { primary: 13, secondary: [2065] },
              },
              description: {
                description: 'Go to End',
                args: [
                  {
                    name: 'args',
                    schema: {
                      type: 'object',
                      properties: {
                        sticky: {
                          description: n.N(
                            'stickydesc',
                            'Stick to the end even when going to longer lines'
                          ),
                          type: 'boolean',
                          default: !1,
                        },
                      },
                    },
                  },
                ],
              },
            })
          )),
            (e.CursorEndSelect = (0, s.fK)(
              new v({
                inSelectionMode: !0,
                id: 'cursorEndSelect',
                precondition: void 0,
                kbOpts: {
                  args: { sticky: !1 },
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 1037,
                  mac: { primary: 1037, secondary: [3089] },
                },
                description: {
                  description: 'Select to End',
                  args: [
                    {
                      name: 'args',
                      schema: {
                        type: 'object',
                        properties: {
                          sticky: {
                            description: n.N(
                              'stickydesc',
                              'Stick to the end even when going to longer lines'
                            ),
                            type: 'boolean',
                            default: !1,
                          },
                        },
                      },
                    },
                  ],
                },
              })
            ));
          class C extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(
                  t.source,
                  3,
                  this._exec(e, e.getCursorStates())
                ),
                e.revealPrimaryCursor(t.source, !0);
            }
            _exec(e, t) {
              const i = [];
              for (let n = 0, r = t.length; n < r; n++) {
                const r = t[n],
                  s = r.modelState.position.lineNumber,
                  o = e.model.getLineMaxColumn(s);
                i[n] = a.Vi.fromModelState(
                  r.modelState.move(this._inSelectionMode, s, o, 0)
                );
              }
              return i;
            }
          }
          (e.CursorLineEnd = (0, s.fK)(
            new C({
              inSelectionMode: !1,
              id: 'cursorLineEnd',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 0,
                mac: { primary: 291 },
              },
            })
          )),
            (e.CursorLineEndSelect = (0, s.fK)(
              new C({
                inSelectionMode: !0,
                id: 'cursorLineEndSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 0,
                  mac: { primary: 1315 },
                },
              })
            ));
          class S extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(
                  t.source,
                  3,
                  p.P.moveToBeginningOfBuffer(
                    e,
                    e.getCursorStates(),
                    this._inSelectionMode
                  )
                ),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.CursorTop = (0, s.fK)(
            new S({
              inSelectionMode: !1,
              id: 'cursorTop',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 2062,
                mac: { primary: 2064 },
              },
            })
          )),
            (e.CursorTopSelect = (0, s.fK)(
              new S({
                inSelectionMode: !0,
                id: 'cursorTopSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 3086,
                  mac: { primary: 3088 },
                },
              })
            ));
          class k extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(
                  t.source,
                  3,
                  p.P.moveToEndOfBuffer(
                    e,
                    e.getCursorStates(),
                    this._inSelectionMode
                  )
                ),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.CursorBottom = (0, s.fK)(
            new k({
              inSelectionMode: !1,
              id: 'cursorBottom',
              precondition: void 0,
              kbOpts: {
                weight: 0,
                kbExpr: _.u.textInputFocus,
                primary: 2061,
                mac: { primary: 2066 },
              },
            })
          )),
            (e.CursorBottomSelect = (0, s.fK)(
              new k({
                inSelectionMode: !0,
                id: 'cursorBottomSelect',
                precondition: void 0,
                kbOpts: {
                  weight: 0,
                  kbExpr: _.u.textInputFocus,
                  primary: 3085,
                  mac: { primary: 3090 },
                },
              })
            ));
          class x extends y {
            constructor() {
              super({
                id: 'editorScroll',
                precondition: void 0,
                description: h.description,
              });
            }
            runCoreEditorCommand(e, t) {
              const i = h.parse(t);
              i && this._runEditorScroll(e, t.source, i);
            }
            _runEditorScroll(e, t, i) {
              const n = this._computeDesiredScrollTop(e, i);
              if (i.revealCursor) {
                const r = e.getCompletelyVisibleViewRangeAtScrollTop(n);
                e.setCursorStates(t, 3, [
                  p.P.findPositionInViewportIfOutside(
                    e,
                    e.getPrimaryCursorState(),
                    r,
                    i.select
                  ),
                ]);
              }
              e.setScrollTop(n, 0);
            }
            _computeDesiredScrollTop(e, t) {
              if (1 === t.unit) {
                const i = e.getCompletelyVisibleViewRange(),
                  n = e.coordinatesConverter.convertViewRangeToModelRange(i);
                let r;
                r =
                  1 === t.direction
                    ? Math.max(1, n.startLineNumber - t.value)
                    : Math.min(
                        e.model.getLineCount(),
                        n.startLineNumber + t.value
                      );
                const s = e.coordinatesConverter.convertModelPositionToViewPosition(
                  new l.L(r, 1)
                );
                return e.getVerticalOffsetForLineNumber(s.lineNumber);
              }
              let i;
              i =
                3 === t.unit
                  ? e.cursorConfig.pageSize * t.value
                  : 4 === t.unit
                  ? Math.round(e.cursorConfig.pageSize / 2) * t.value
                  : t.value;
              const n = (1 === t.direction ? -1 : 1) * i;
              return e.getScrollTop() + n * e.cursorConfig.lineHeight;
            }
          }
          (e.EditorScrollImpl = x),
            (e.EditorScroll = (0, s.fK)(new x())),
            (e.ScrollLineUp = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'scrollLineUp',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 2064,
                      mac: { primary: 267 },
                    },
                  });
                }
                runCoreEditorCommand(t, i) {
                  e.EditorScroll._runEditorScroll(t, i.source, {
                    direction: 1,
                    unit: 2,
                    value: 1,
                    revealCursor: !1,
                    select: !1,
                  });
                }
              })()
            )),
            (e.ScrollPageUp = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'scrollPageUp',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 2059,
                      win: { primary: 523 },
                      linux: { primary: 523 },
                    },
                  });
                }
                runCoreEditorCommand(t, i) {
                  e.EditorScroll._runEditorScroll(t, i.source, {
                    direction: 1,
                    unit: 3,
                    value: 1,
                    revealCursor: !1,
                    select: !1,
                  });
                }
              })()
            )),
            (e.ScrollLineDown = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'scrollLineDown',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 2066,
                      mac: { primary: 268 },
                    },
                  });
                }
                runCoreEditorCommand(t, i) {
                  e.EditorScroll._runEditorScroll(t, i.source, {
                    direction: 2,
                    unit: 2,
                    value: 1,
                    revealCursor: !1,
                    select: !1,
                  });
                }
              })()
            )),
            (e.ScrollPageDown = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'scrollPageDown',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 2060,
                      win: { primary: 524 },
                      linux: { primary: 524 },
                    },
                  });
                }
                runCoreEditorCommand(t, i) {
                  e.EditorScroll._runEditorScroll(t, i.source, {
                    direction: 2,
                    unit: 3,
                    value: 1,
                    revealCursor: !1,
                    select: !1,
                  });
                }
              })()
            ));
          class L extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(t.source, 3, [
                  p.P.word(
                    e,
                    e.getPrimaryCursorState(),
                    this._inSelectionMode,
                    t.position
                  ),
                ]),
                e.revealPrimaryCursor(t.source, !0);
            }
          }
          (e.WordSelect = (0, s.fK)(
            new L({
              inSelectionMode: !1,
              id: '_wordSelect',
              precondition: void 0,
            })
          )),
            (e.WordSelectDrag = (0, s.fK)(
              new L({
                inSelectionMode: !0,
                id: '_wordSelectDrag',
                precondition: void 0,
              })
            )),
            (e.LastCursorWordSelect = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({ id: 'lastCursorWordSelect', precondition: void 0 });
                }
                runCoreEditorCommand(e, t) {
                  const i = e.getLastAddedCursorIndex(),
                    n = e.getCursorStates(),
                    r = n.slice(0),
                    s = n[i];
                  (r[i] = p.P.word(
                    e,
                    s,
                    s.modelState.hasSelection(),
                    t.position
                  )),
                    e.model.pushStackElement(),
                    e.setCursorStates(t.source, 3, r);
                }
              })()
            ));
          class M extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              e.model.pushStackElement(),
                e.setCursorStates(t.source, 3, [
                  p.P.line(
                    e,
                    e.getPrimaryCursorState(),
                    this._inSelectionMode,
                    t.position,
                    t.viewPosition
                  ),
                ]),
                e.revealPrimaryCursor(t.source, !1);
            }
          }
          (e.LineSelect = (0, s.fK)(
            new M({
              inSelectionMode: !1,
              id: '_lineSelect',
              precondition: void 0,
            })
          )),
            (e.LineSelectDrag = (0, s.fK)(
              new M({
                inSelectionMode: !0,
                id: '_lineSelectDrag',
                precondition: void 0,
              })
            ));
          class D extends y {
            constructor(e) {
              super(e), (this._inSelectionMode = e.inSelectionMode);
            }
            runCoreEditorCommand(e, t) {
              const i = e.getLastAddedCursorIndex(),
                n = e.getCursorStates(),
                r = n.slice(0);
              (r[i] = p.P.line(
                e,
                n[i],
                this._inSelectionMode,
                t.position,
                t.viewPosition
              )),
                e.model.pushStackElement(),
                e.setCursorStates(t.source, 3, r);
            }
          }
          (e.LastCursorLineSelect = (0, s.fK)(
            new D({
              inSelectionMode: !1,
              id: 'lastCursorLineSelect',
              precondition: void 0,
            })
          )),
            (e.LastCursorLineSelectDrag = (0, s.fK)(
              new D({
                inSelectionMode: !0,
                id: 'lastCursorLineSelectDrag',
                precondition: void 0,
              })
            )),
            (e.ExpandLineSelection = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'expandLineSelection',
                    precondition: void 0,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 2090,
                    },
                  });
                }
                runCoreEditorCommand(e, t) {
                  e.model.pushStackElement(),
                    e.setCursorStates(
                      t.source,
                      3,
                      p.P.expandLineSelection(e, e.getCursorStates())
                    ),
                    e.revealPrimaryCursor(t.source, !0);
                }
              })()
            )),
            (e.CancelSelection = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'cancelSelection',
                    precondition: _.u.hasNonEmptySelection,
                    kbOpts: {
                      weight: 0,
                      kbExpr: _.u.textInputFocus,
                      primary: 9,
                      secondary: [1033],
                    },
                  });
                }
                runCoreEditorCommand(e, t) {
                  e.model.pushStackElement(),
                    e.setCursorStates(t.source, 3, [
                      p.P.cancelSelection(e, e.getPrimaryCursorState()),
                    ]),
                    e.revealPrimaryCursor(t.source, !0);
                }
              })()
            )),
            (e.RemoveSecondaryCursors = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'removeSecondaryCursors',
                    precondition: _.u.hasMultipleSelections,
                    kbOpts: {
                      weight: 1,
                      kbExpr: _.u.textInputFocus,
                      primary: 9,
                      secondary: [1033],
                    },
                  });
                }
                runCoreEditorCommand(e, t) {
                  e.model.pushStackElement(),
                    e.setCursorStates(t.source, 3, [e.getPrimaryCursorState()]),
                    e.revealPrimaryCursor(t.source, !0);
                }
              })()
            )),
            (e.RevealLine = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({
                    id: 'revealLine',
                    precondition: void 0,
                    description: u.description,
                  });
                }
                runCoreEditorCommand(e, t) {
                  const i = t;
                  let n = (i.lineNumber || 0) + 1;
                  n < 1 && (n = 1);
                  const r = e.model.getLineCount();
                  n > r && (n = r);
                  const s = new c.e(n, 1, n, e.model.getLineMaxColumn(n));
                  let o = 0;
                  if (i.at)
                    switch (i.at) {
                      case u.RawAtArgument.Top:
                        o = 3;
                        break;
                      case u.RawAtArgument.Center:
                        o = 1;
                        break;
                      case u.RawAtArgument.Bottom:
                        o = 4;
                    }
                  const a = e.coordinatesConverter.convertModelRangeToViewRange(
                    s
                  );
                  e.revealRange(t.source, !1, a, o, 0);
                }
              })()
            )),
            (e.SelectAll = new (class extends w {
              constructor() {
                super(s.Sq);
              }
              runDOMCommand() {
                document.execCommand('selectAll');
              }
              runEditorCommand(e, t, i) {
                const n = t._getViewModel();
                n && this.runCoreEditorCommand(n, i);
              }
              runCoreEditorCommand(e, t) {
                e.model.pushStackElement(),
                  e.setCursorStates('keyboard', 3, [
                    p.P.selectAll(e, e.getPrimaryCursorState()),
                  ]);
              }
            })()),
            (e.SetSelection = (0, s.fK)(
              new (class extends y {
                constructor() {
                  super({ id: 'setSelection', precondition: void 0 });
                }
                runCoreEditorCommand(e, t) {
                  e.model.pushStackElement(),
                    e.setCursorStates(t.source, 3, [
                      a.Vi.fromModelSelection(t.selection),
                    ]);
                }
              })()
            ));
        })(g || (g = {}));
        const C = b.Ao.and(_.u.textInputFocus, _.u.columnSelection);
        function S(e, t) {
          v.W.registerKeybindingRule({ id: e, primary: t, when: C, weight: 1 });
        }
        function k(e) {
          return e.register(), e;
        }
        var x;
        S(g.CursorColumnSelectLeft.id, 1039),
          S(g.CursorColumnSelectRight.id, 1041),
          S(g.CursorColumnSelectUp.id, 1040),
          S(g.CursorColumnSelectPageUp.id, 1035),
          S(g.CursorColumnSelectDown.id, 1042),
          S(g.CursorColumnSelectPageDown.id, 1036),
          (function (e) {
            class t extends s._l {
              runEditorCommand(e, t, i) {
                const n = t._getViewModel();
                n && this.runCoreEditingCommand(t, n, i || {});
              }
            }
            (e.CoreEditingCommand = t),
              (e.LineBreakInsert = (0, s.fK)(
                new (class extends t {
                  constructor() {
                    super({
                      id: 'lineBreakInsert',
                      precondition: _.u.writable,
                      kbOpts: {
                        weight: 0,
                        kbExpr: _.u.textInputFocus,
                        primary: 0,
                        mac: { primary: 301 },
                      },
                    });
                  }
                  runCoreEditingCommand(e, t, i) {
                    e.pushUndoStop(),
                      e.executeCommands(
                        this.id,
                        m.u.lineBreakInsert(
                          t.cursorConfig,
                          t.model,
                          t.getCursorStates().map((e) => e.modelState.selection)
                        )
                      );
                  }
                })()
              )),
              (e.Outdent = (0, s.fK)(
                new (class extends t {
                  constructor() {
                    super({
                      id: 'outdent',
                      precondition: _.u.writable,
                      kbOpts: {
                        weight: 0,
                        kbExpr: b.Ao.and(
                          _.u.editorTextFocus,
                          _.u.tabDoesNotMoveFocus
                        ),
                        primary: 1026,
                      },
                    });
                  }
                  runCoreEditingCommand(e, t, i) {
                    e.pushUndoStop(),
                      e.executeCommands(
                        this.id,
                        m.u.outdent(
                          t.cursorConfig,
                          t.model,
                          t.getCursorStates().map((e) => e.modelState.selection)
                        )
                      ),
                      e.pushUndoStop();
                  }
                })()
              )),
              (e.Tab = (0, s.fK)(
                new (class extends t {
                  constructor() {
                    super({
                      id: 'tab',
                      precondition: _.u.writable,
                      kbOpts: {
                        weight: 0,
                        kbExpr: b.Ao.and(
                          _.u.editorTextFocus,
                          _.u.tabDoesNotMoveFocus
                        ),
                        primary: 2,
                      },
                    });
                  }
                  runCoreEditingCommand(e, t, i) {
                    e.pushUndoStop(),
                      e.executeCommands(
                        this.id,
                        m.u.tab(
                          t.cursorConfig,
                          t.model,
                          t.getCursorStates().map((e) => e.modelState.selection)
                        )
                      ),
                      e.pushUndoStop();
                  }
                })()
              )),
              (e.DeleteLeft = (0, s.fK)(
                new (class extends t {
                  constructor() {
                    super({
                      id: 'deleteLeft',
                      precondition: void 0,
                      kbOpts: {
                        weight: 0,
                        kbExpr: _.u.textInputFocus,
                        primary: 1,
                        secondary: [1025],
                        mac: { primary: 1, secondary: [1025, 294, 257] },
                      },
                    });
                  }
                  runCoreEditingCommand(e, t, i) {
                    const [n, r] = f.A.deleteLeft(
                      t.getPrevEditOperationType(),
                      t.cursorConfig,
                      t.model,
                      t.getCursorStates().map((e) => e.modelState.selection)
                    );
                    n && e.pushUndoStop(),
                      e.executeCommands(this.id, r),
                      t.setPrevEditOperationType(2);
                  }
                })()
              )),
              (e.DeleteRight = (0, s.fK)(
                new (class extends t {
                  constructor() {
                    super({
                      id: 'deleteRight',
                      precondition: void 0,
                      kbOpts: {
                        weight: 0,
                        kbExpr: _.u.textInputFocus,
                        primary: 20,
                        mac: { primary: 20, secondary: [290, 276] },
                      },
                    });
                  }
                  runCoreEditingCommand(e, t, i) {
                    const [n, r] = f.A.deleteRight(
                      t.getPrevEditOperationType(),
                      t.cursorConfig,
                      t.model,
                      t.getCursorStates().map((e) => e.modelState.selection)
                    );
                    n && e.pushUndoStop(),
                      e.executeCommands(this.id, r),
                      t.setPrevEditOperationType(3);
                  }
                })()
              )),
              (e.Undo = new (class extends w {
                constructor() {
                  super(s.n_);
                }
                runDOMCommand() {
                  document.execCommand('undo');
                }
                runEditorCommand(e, t, i) {
                  t.hasModel() && !0 !== t.getOption(72) && t.getModel().undo();
                }
              })()),
              (e.Redo = new (class extends w {
                constructor() {
                  super(s.kz);
                }
                runDOMCommand() {
                  document.execCommand('redo');
                }
                runEditorCommand(e, t, i) {
                  t.hasModel() && !0 !== t.getOption(72) && t.getModel().redo();
                }
              })());
          })(x || (x = {}));
        class L extends s.mY {
          constructor(e, t, i) {
            super({ id: e, precondition: void 0, description: i }),
              (this._handlerId = t);
          }
          runCommand(e, t) {
            const i = e.get(o.$).getFocusedCodeEditor();
            i && i.trigger('keyboard', this._handlerId, t);
          }
        }
        function M(e, t) {
          k(new L('default:' + e, e)), k(new L(e, e, t));
        }
        M('type', {
          description: 'Type',
          args: [
            {
              name: 'args',
              schema: {
                type: 'object',
                required: ['text'],
                properties: { text: { type: 'string' } },
              },
            },
          ],
        }),
          M('replacePreviousChar'),
          M('compositionStart'),
          M('compositionEnd'),
          M('paste'),
          M('cut');
      },
      35715: (e, t, i) => {
        'use strict';
        i.d(t, { RA: () => f, Nl: () => p, Fz: () => m });
        var n = i(16268),
          r = i(65321),
          s = i(15393),
          o = i(4669),
          a = i(5976),
          l = i(1432),
          c = i(97295),
          d = i(15887),
          h = i(50187),
          u = i(3860),
          g = i(10161);
        const f = { forceCopyWithSyntaxHighlighting: !1 };
        class p {
          constructor() {
            this._lastState = null;
          }
          set(e, t) {
            this._lastState = { lastCopiedValue: e, data: t };
          }
          get(e) {
            return this._lastState && this._lastState.lastCopiedValue === e
              ? this._lastState.data
              : ((this._lastState = null), null);
          }
        }
        p.INSTANCE = new p();
        class m extends a.JT {
          constructor(e, t) {
            super(),
              (this.textArea = t),
              (this._onFocus = this._register(new o.Q5())),
              (this.onFocus = this._onFocus.event),
              (this._onBlur = this._register(new o.Q5())),
              (this.onBlur = this._onBlur.event),
              (this._onKeyDown = this._register(new o.Q5())),
              (this.onKeyDown = this._onKeyDown.event),
              (this._onKeyUp = this._register(new o.Q5())),
              (this.onKeyUp = this._onKeyUp.event),
              (this._onCut = this._register(new o.Q5())),
              (this.onCut = this._onCut.event),
              (this._onPaste = this._register(new o.Q5())),
              (this.onPaste = this._onPaste.event),
              (this._onType = this._register(new o.Q5())),
              (this.onType = this._onType.event),
              (this._onCompositionStart = this._register(new o.Q5())),
              (this.onCompositionStart = this._onCompositionStart.event),
              (this._onCompositionUpdate = this._register(new o.Q5())),
              (this.onCompositionUpdate = this._onCompositionUpdate.event),
              (this._onCompositionEnd = this._register(new o.Q5())),
              (this.onCompositionEnd = this._onCompositionEnd.event),
              (this._onSelectionChangeRequest = this._register(new o.Q5())),
              (this.onSelectionChangeRequest = this._onSelectionChangeRequest.event),
              (this._host = e),
              (this._textArea = this._register(new b(t))),
              (this._asyncTriggerCut = this._register(
                new s.pY(() => this._onCut.fire(), 0)
              )),
              (this._textAreaState = d.u.EMPTY),
              (this._selectionChangeListener = null),
              this.writeScreenReaderContent('ctor'),
              (this._hasFocus = !1),
              (this._isDoingComposition = !1),
              (this._nextCommand = 0);
            let i = null;
            this._register(
              r.mu(t.domNode, 'keydown', (e) => {
                (109 === e.keyCode ||
                  (this._isDoingComposition && 1 === e.keyCode)) &&
                  e.stopPropagation(),
                  e.equals(9) && e.preventDefault(),
                  (i = e),
                  this._onKeyDown.fire(e);
              })
            ),
              this._register(
                r.mu(t.domNode, 'keyup', (e) => {
                  this._onKeyUp.fire(e);
                })
              ),
              this._register(
                r.nm(t.domNode, 'compositionstart', (e) => {
                  if (this._isDoingComposition) return;
                  this._isDoingComposition = !0;
                  let t = !1;
                  l.dz &&
                    i &&
                    i.equals(109) &&
                    this._textAreaState.selectionStart ===
                      this._textAreaState.selectionEnd &&
                    this._textAreaState.selectionStart > 0 &&
                    this._textAreaState.value.substr(
                      this._textAreaState.selectionStart - 1,
                      1
                    ) === e.data &&
                    (('ArrowRight' !== i.code && 'ArrowLeft' !== i.code) ||
                      (t = !0)),
                    t
                      ? (this._textAreaState = new d.u(
                          this._textAreaState.value,
                          this._textAreaState.selectionStart - 1,
                          this._textAreaState.selectionEnd,
                          this._textAreaState.selectionStartPosition
                            ? new h.L(
                                this._textAreaState.selectionStartPosition.lineNumber,
                                this._textAreaState.selectionStartPosition
                                  .column - 1
                              )
                            : null,
                          this._textAreaState.selectionEndPosition
                        ))
                      : n.un ||
                        this._setAndWriteTextAreaState(
                          'compositionstart',
                          d.u.EMPTY
                        ),
                    this._onCompositionStart.fire({ moveOneCharacterLeft: t });
                })
              );
            const a = (e) => {
                const t = this._textAreaState,
                  i = d.u.readFromTextArea(this._textArea);
                return [i, d.u.deduceInput(t, i, e)];
              },
              u = (e) => {
                const t = this._textAreaState,
                  i = d.u.selectedText(e);
                return [
                  i,
                  {
                    text: i.value,
                    replaceCharCnt: t.selectionEnd - t.selectionStart,
                  },
                ];
              },
              g = (e) => !(!n.un || 'ja' !== e);
            this._register(
              r.nm(t.domNode, 'compositionupdate', (e) => {
                if (g(e.locale)) {
                  const [t, i] = a(!1);
                  return (
                    (this._textAreaState = t),
                    this._onType.fire(i),
                    void this._onCompositionUpdate.fire(e)
                  );
                }
                const [t, i] = u(e.data || '');
                (this._textAreaState = t),
                  this._onType.fire(i),
                  this._onCompositionUpdate.fire(e);
              })
            ),
              this._register(
                r.nm(t.domNode, 'compositionend', (e) => {
                  if (this._isDoingComposition) {
                    if (g(e.locale)) {
                      const [e, t] = a(!1);
                      (this._textAreaState = e), this._onType.fire(t);
                    } else {
                      const [t, i] = u(e.data || '');
                      (this._textAreaState = t), this._onType.fire(i);
                    }
                    (n.un || n.i7) &&
                      (this._textAreaState = d.u.readFromTextArea(
                        this._textArea
                      )),
                      this._isDoingComposition &&
                        ((this._isDoingComposition = !1),
                        this._onCompositionEnd.fire());
                  }
                })
              ),
              this._register(
                r.nm(t.domNode, 'input', () => {
                  if (
                    (this._textArea.setIgnoreSelectionChangeTime(
                      'received input event'
                    ),
                    this._isDoingComposition)
                  )
                    return;
                  const [e, t] = a(l.dz);
                  (0 === t.replaceCharCnt &&
                    1 === t.text.length &&
                    c.ZG(t.text.charCodeAt(0))) ||
                    ((this._textAreaState = e),
                    0 === this._nextCommand
                      ? '' !== t.text && this._onType.fire(t)
                      : (('' === t.text && 0 === t.replaceCharCnt) ||
                          this._firePaste(t.text, null),
                        (this._nextCommand = 0)));
                })
              ),
              this._register(
                r.nm(t.domNode, 'cut', (e) => {
                  this._textArea.setIgnoreSelectionChangeTime(
                    'received cut event'
                  ),
                    this._ensureClipboardGetsEditorSelection(e),
                    this._asyncTriggerCut.schedule();
                })
              ),
              this._register(
                r.nm(t.domNode, 'copy', (e) => {
                  this._ensureClipboardGetsEditorSelection(e);
                })
              ),
              this._register(
                r.nm(t.domNode, 'paste', (e) => {
                  if (
                    (this._textArea.setIgnoreSelectionChangeTime(
                      'received paste event'
                    ),
                    _.canUseTextData(e))
                  ) {
                    const [t, i] = _.getTextData(e);
                    '' !== t && this._firePaste(t, i);
                  } else
                    this._textArea.getSelectionStart() !==
                      this._textArea.getSelectionEnd() &&
                      this._setAndWriteTextAreaState('paste', d.u.EMPTY),
                      (this._nextCommand = 1);
                })
              ),
              this._register(
                r.nm(t.domNode, 'focus', () => {
                  this._setHasFocus(!0);
                })
              ),
              this._register(
                r.nm(t.domNode, 'blur', () => {
                  this._setHasFocus(!1);
                })
              );
          }
          _installSelectionChangeListener() {
            let e = 0;
            return r.nm(document, 'selectionchange', (t) => {
              if (!this._hasFocus) return;
              if (this._isDoingComposition) return;
              if (!n.i7) return;
              const i = Date.now(),
                r = i - e;
              if (((e = i), r < 5)) return;
              const s = i - this._textArea.getIgnoreSelectionChangeTime();
              if ((this._textArea.resetSelectionChangeTime(), s < 100)) return;
              if (
                !this._textAreaState.selectionStartPosition ||
                !this._textAreaState.selectionEndPosition
              )
                return;
              const o = this._textArea.getValue();
              if (this._textAreaState.value !== o) return;
              const a = this._textArea.getSelectionStart(),
                l = this._textArea.getSelectionEnd();
              if (
                this._textAreaState.selectionStart === a &&
                this._textAreaState.selectionEnd === l
              )
                return;
              const c = this._textAreaState.deduceEditorPosition(a),
                d = this._host.deduceModelPosition(c[0], c[1], c[2]),
                h = this._textAreaState.deduceEditorPosition(l),
                g = this._host.deduceModelPosition(h[0], h[1], h[2]),
                f = new u.Y(d.lineNumber, d.column, g.lineNumber, g.column);
              this._onSelectionChangeRequest.fire(f);
            });
          }
          dispose() {
            super.dispose(),
              this._selectionChangeListener &&
                (this._selectionChangeListener.dispose(),
                (this._selectionChangeListener = null));
          }
          focusTextArea() {
            this._setHasFocus(!0), this.refreshFocusState();
          }
          isFocused() {
            return this._hasFocus;
          }
          refreshFocusState() {
            const e = r.Ay(this.textArea.domNode);
            e
              ? this._setHasFocus(e.activeElement === this.textArea.domNode)
              : r.Uw(this.textArea.domNode)
              ? this._setHasFocus(
                  document.activeElement === this.textArea.domNode
                )
              : this._setHasFocus(!1);
          }
          _setHasFocus(e) {
            this._hasFocus !== e &&
              ((this._hasFocus = e),
              this._selectionChangeListener &&
                (this._selectionChangeListener.dispose(),
                (this._selectionChangeListener = null)),
              this._hasFocus &&
                (this._selectionChangeListener = this._installSelectionChangeListener()),
              this._hasFocus &&
                (n.un
                  ? this._setAndWriteTextAreaState('focusgain', d.u.EMPTY)
                  : this.writeScreenReaderContent('focusgain')),
              this._hasFocus ? this._onFocus.fire() : this._onBlur.fire());
          }
          _setAndWriteTextAreaState(e, t) {
            this._hasFocus || (t = t.collapseSelection()),
              t.writeToTextArea(e, this._textArea, this._hasFocus),
              (this._textAreaState = t);
          }
          writeScreenReaderContent(e) {
            this._isDoingComposition ||
              this._setAndWriteTextAreaState(
                e,
                this._host.getScreenReaderContent(this._textAreaState)
              );
          }
          _ensureClipboardGetsEditorSelection(e) {
            const t = this._host.getDataToCopy(
                _.canUseTextData(e) && g.D.clipboard.richText
              ),
              i = {
                version: 1,
                isFromEmptySelection: t.isFromEmptySelection,
                multicursorText: t.multicursorText,
                mode: t.mode,
              };
            p.INSTANCE.set(n.vU ? t.text.replace(/\r\n/g, '\n') : t.text, i),
              _.canUseTextData(e)
                ? _.setTextData(e, t.text, t.html, i)
                : this._setAndWriteTextAreaState(
                    'copy or cut',
                    d.u.selectedText(t.text)
                  );
          }
          _firePaste(e, t) {
            t || (t = p.INSTANCE.get(e)),
              this._onPaste.fire({ text: e, metadata: t });
          }
        }
        class _ {
          static canUseTextData(e) {
            return !!e.clipboardData || !!window.clipboardData;
          }
          static getTextData(e) {
            if (e.clipboardData) {
              e.preventDefault();
              const t = e.clipboardData.getData('text/plain');
              let i = null;
              const n = e.clipboardData.getData('vscode-editor-data');
              if ('string' == typeof n)
                try {
                  (i = JSON.parse(n)), 1 !== i.version && (i = null);
                } catch (e) {}
              return [t, i];
            }
            if (window.clipboardData)
              return (
                e.preventDefault(), [window.clipboardData.getData('Text'), null]
              );
            throw new Error(
              'ClipboardEventUtils.getTextData: Cannot use text data!'
            );
          }
          static setTextData(e, t, i, n) {
            if (e.clipboardData)
              return (
                e.clipboardData.setData('text/plain', t),
                'string' == typeof i && e.clipboardData.setData('text/html', i),
                e.clipboardData.setData(
                  'vscode-editor-data',
                  JSON.stringify(n)
                ),
                void e.preventDefault()
              );
            if (window.clipboardData)
              return (
                window.clipboardData.setData('Text', t), void e.preventDefault()
              );
            throw new Error(
              'ClipboardEventUtils.setTextData: Cannot use text data!'
            );
          }
        }
        class b extends a.JT {
          constructor(e) {
            super(), (this._actual = e), (this._ignoreSelectionChangeTime = 0);
          }
          setIgnoreSelectionChangeTime(e) {
            this._ignoreSelectionChangeTime = Date.now();
          }
          getIgnoreSelectionChangeTime() {
            return this._ignoreSelectionChangeTime;
          }
          resetSelectionChangeTime() {
            this._ignoreSelectionChangeTime = 0;
          }
          getValue() {
            return this._actual.domNode.value;
          }
          setValue(e, t) {
            const i = this._actual.domNode;
            i.value !== t &&
              (this.setIgnoreSelectionChangeTime('setValue'), (i.value = t));
          }
          getSelectionStart() {
            return this._actual.domNode.selectionStart;
          }
          getSelectionEnd() {
            return this._actual.domNode.selectionEnd;
          }
          setSelectionRange(e, t, i) {
            const s = this._actual.domNode;
            let o = null;
            const a = r.Ay(s);
            o = a ? a.activeElement : document.activeElement;
            const l = o === s,
              c = s.selectionStart,
              d = s.selectionEnd;
            if (l && c === t && d === i)
              n.vU && window.parent !== window && s.focus();
            else {
              if (l)
                return (
                  this.setIgnoreSelectionChangeTime('setSelectionRange'),
                  s.setSelectionRange(t, i),
                  void (n.vU && window.parent !== window && s.focus())
                );
              try {
                const e = r.vL(s);
                this.setIgnoreSelectionChangeTime('setSelectionRange'),
                  s.focus(),
                  s.setSelectionRange(t, i),
                  r._0(s, e);
              } catch (e) {}
            }
          }
        }
      },
      15887: (e, t, i) => {
        'use strict';
        i.d(t, { u: () => o, e: () => a });
        var n = i(97295),
          r = i(50187),
          s = i(24314);
        class o {
          constructor(e, t, i, n, r) {
            (this.value = e),
              (this.selectionStart = t),
              (this.selectionEnd = i),
              (this.selectionStartPosition = n),
              (this.selectionEndPosition = r);
          }
          toString() {
            return (
              '[ <' +
              this.value +
              '>, selectionStart: ' +
              this.selectionStart +
              ', selectionEnd: ' +
              this.selectionEnd +
              ']'
            );
          }
          static readFromTextArea(e) {
            return new o(
              e.getValue(),
              e.getSelectionStart(),
              e.getSelectionEnd(),
              null,
              null
            );
          }
          collapseSelection() {
            return new o(
              this.value,
              this.value.length,
              this.value.length,
              null,
              null
            );
          }
          writeToTextArea(e, t, i) {
            t.setValue(e, this.value),
              i &&
                t.setSelectionRange(e, this.selectionStart, this.selectionEnd);
          }
          deduceEditorPosition(e) {
            if (e <= this.selectionStart) {
              const t = this.value.substring(e, this.selectionStart);
              return this._finishDeduceEditorPosition(
                this.selectionStartPosition,
                t,
                -1
              );
            }
            if (e >= this.selectionEnd) {
              const t = this.value.substring(this.selectionEnd, e);
              return this._finishDeduceEditorPosition(
                this.selectionEndPosition,
                t,
                1
              );
            }
            const t = this.value.substring(this.selectionStart, e);
            if (-1 === t.indexOf(String.fromCharCode(8230)))
              return this._finishDeduceEditorPosition(
                this.selectionStartPosition,
                t,
                1
              );
            const i = this.value.substring(e, this.selectionEnd);
            return this._finishDeduceEditorPosition(
              this.selectionEndPosition,
              i,
              -1
            );
          }
          _finishDeduceEditorPosition(e, t, i) {
            let n = 0,
              r = -1;
            for (; -1 !== (r = t.indexOf('\n', r + 1)); ) n++;
            return [e, i * t.length, n];
          }
          static selectedText(e) {
            return new o(e, 0, e.length, null, null);
          }
          static deduceInput(e, t, i) {
            if (!e) return { text: '', replaceCharCnt: 0 };
            let r = e.value,
              s = e.selectionStart,
              o = e.selectionEnd,
              a = t.value,
              l = t.selectionStart,
              c = t.selectionEnd;
            const d = r.substring(o),
              h = a.substring(c),
              u = n.P1(d, h);
            (a = a.substring(0, a.length - u)),
              (r = r.substring(0, r.length - u));
            const g = r.substring(0, s),
              f = a.substring(0, l),
              p = n.Mh(g, f);
            if (
              ((a = a.substring(p)),
              (r = r.substring(p)),
              (l -= p),
              (s -= p),
              (c -= p),
              (o -= p),
              i && l === c && r.length > 0)
            ) {
              let e = null;
              if (
                (l === a.length
                  ? n.Ny(a, r) && (e = a.substring(r.length))
                  : n.pn(a, r) && (e = a.substring(0, a.length - r.length)),
                null !== e && e.length > 0 && (/\uFE0F/.test(e) || n.RP(e)))
              )
                return { text: e, replaceCharCnt: 0 };
            }
            return l === c
              ? r === a &&
                0 === s &&
                o === r.length &&
                l === a.length &&
                -1 === a.indexOf('\n') &&
                n.xe(a)
                ? { text: '', replaceCharCnt: 0 }
                : { text: a, replaceCharCnt: g.length - p }
              : { text: a, replaceCharCnt: o - s };
          }
        }
        o.EMPTY = new o('', 0, 0, null, null);
        class a {
          static _getPageOfLine(e, t) {
            return Math.floor((e - 1) / t);
          }
          static _getRangeForPage(e, t) {
            const i = e * t,
              n = i + 1,
              r = i + t;
            return new s.e(n, 1, r + 1, 1);
          }
          static fromEditorSelection(e, t, i, n, l) {
            const c = a._getPageOfLine(i.startLineNumber, n),
              d = a._getRangeForPage(c, n),
              h = a._getPageOfLine(i.endLineNumber, n),
              u = a._getRangeForPage(h, n),
              g = d.intersectRanges(
                new s.e(1, 1, i.startLineNumber, i.startColumn)
              );
            let f = t.getValueInRange(g, 1);
            const p = t.getLineCount(),
              m = t.getLineMaxColumn(p),
              _ = u.intersectRanges(
                new s.e(i.endLineNumber, i.endColumn, p, m)
              );
            let b,
              v = t.getValueInRange(_, 1);
            if (c === h || c + 1 === h) b = t.getValueInRange(i, 1);
            else {
              const e = d.intersectRanges(i),
                n = u.intersectRanges(i);
              b =
                t.getValueInRange(e, 1) +
                String.fromCharCode(8230) +
                t.getValueInRange(n, 1);
            }
            if (l) {
              const e = 500;
              f.length > e && (f = f.substring(f.length - e, f.length)),
                v.length > e && (v = v.substring(0, e)),
                b.length > 2 * e &&
                  (b =
                    b.substring(0, e) +
                    String.fromCharCode(8230) +
                    b.substring(b.length - e, b.length));
            }
            return new o(
              f + b + v,
              f.length,
              f.length + b.length,
              new r.L(i.startLineNumber, i.startColumn),
              new r.L(i.endLineNumber, i.endColumn)
            );
          }
        }
      },
      39925: (e, t, i) => {
        'use strict';
        i.d(t, { yy: () => p, Dl: () => m, ZF: () => b, YQ: () => _ });
        var n = i(97295),
          r = i(24314),
          s = i(71050),
          o = i(5976),
          a = i(16830),
          l = i(38819),
          c = i(91741),
          d = i(72065),
          h = i(65026);
        const u = (0, d.yh)('IEditorCancelService'),
          g = new l.uy('cancellableOperation', !1);
        (0, h.z)(
          u,
          class {
            constructor() {
              this._tokens = new WeakMap();
            }
            add(e, t) {
              let i,
                n = this._tokens.get(e);
              return (
                n ||
                  ((n = e.invokeWithinContext((e) => ({
                    key: g.bindTo(e.get(l.i6)),
                    tokens: new c.S(),
                  }))),
                  this._tokens.set(e, n)),
                n.key.set(!0),
                (i = n.tokens.push(t)),
                () => {
                  i && (i(), n.key.set(!n.tokens.isEmpty()), (i = void 0));
                }
              );
            }
            cancel(e) {
              const t = this._tokens.get(e);
              if (!t) return;
              const i = t.tokens.pop();
              i && (i.cancel(), t.key.set(!t.tokens.isEmpty()));
            }
          },
          !0
        );
        class f extends s.A {
          constructor(e, t) {
            super(t),
              (this.editor = e),
              (this._unregister = e.invokeWithinContext((t) =>
                t.get(u).add(e, this)
              ));
          }
          dispose() {
            this._unregister(), super.dispose();
          }
        }
        (0, a.fK)(
          new (class extends a._l {
            constructor() {
              super({
                id: 'editor.cancelOperation',
                kbOpts: { weight: 100, primary: 9 },
                precondition: g,
              });
            }
            runEditorCommand(e, t) {
              e.get(u).cancel(t);
            }
          })()
        );
        class p {
          constructor(e, t) {
            if (((this.flags = t), 0 != (1 & this.flags))) {
              const t = e.getModel();
              this.modelVersionId = t
                ? n.WU('{0}#{1}', t.uri.toString(), t.getVersionId())
                : null;
            } else this.modelVersionId = null;
            0 != (4 & this.flags)
              ? (this.position = e.getPosition())
              : (this.position = null),
              0 != (2 & this.flags)
                ? (this.selection = e.getSelection())
                : (this.selection = null),
              0 != (8 & this.flags)
                ? ((this.scrollLeft = e.getScrollLeft()),
                  (this.scrollTop = e.getScrollTop()))
                : ((this.scrollLeft = -1), (this.scrollTop = -1));
          }
          _equals(e) {
            if (!(e instanceof p)) return !1;
            const t = e;
            return (
              this.modelVersionId === t.modelVersionId &&
              this.scrollLeft === t.scrollLeft &&
              this.scrollTop === t.scrollTop &&
              !(
                (!this.position && t.position) ||
                (this.position && !t.position) ||
                (this.position &&
                  t.position &&
                  !this.position.equals(t.position))
              ) &&
              !(
                (!this.selection && t.selection) ||
                (this.selection && !t.selection) ||
                (this.selection &&
                  t.selection &&
                  !this.selection.equalsRange(t.selection))
              )
            );
          }
          validate(e) {
            return this._equals(new p(e, this.flags));
          }
        }
        class m extends f {
          constructor(e, t, i, n) {
            super(e, n),
              (this.editor = e),
              (this._listener = new o.SL()),
              4 & t &&
                this._listener.add(
                  e.onDidChangeCursorPosition((e) => {
                    (i && r.e.containsPosition(i, e.position)) || this.cancel();
                  })
                ),
              2 & t &&
                this._listener.add(
                  e.onDidChangeCursorSelection((e) => {
                    (i && r.e.containsRange(i, e.selection)) || this.cancel();
                  })
                ),
              8 & t &&
                this._listener.add(e.onDidScrollChange((e) => this.cancel())),
              1 & t &&
                (this._listener.add(e.onDidChangeModel((e) => this.cancel())),
                this._listener.add(
                  e.onDidChangeModelContent((e) => this.cancel())
                ));
          }
          dispose() {
            this._listener.dispose(), super.dispose();
          }
        }
        class _ extends s.A {
          constructor(e, t) {
            super(t),
              (this._listener = e.onDidChangeContent(() => this.cancel()));
          }
          dispose() {
            this._listener.dispose(), super.dispose();
          }
        }
        class b {
          constructor(e, t, i) {
            (this._visiblePosition = e),
              (this._visiblePositionScrollDelta = t),
              (this._cursorPosition = i);
          }
          static capture(e) {
            let t = null,
              i = 0;
            if (0 !== e.getScrollTop()) {
              const n = e.getVisibleRanges();
              if (n.length > 0) {
                t = n[0].getStartPosition();
                const r = e.getTopForPosition(t.lineNumber, t.column);
                i = e.getScrollTop() - r;
              }
            }
            return new b(t, i, e.getPosition());
          }
          restore(e) {
            if (this._visiblePosition) {
              const t = e.getTopForPosition(
                this._visiblePosition.lineNumber,
                this._visiblePosition.column
              );
              e.setScrollTop(t + this._visiblePositionScrollDelta);
            }
          }
          restoreRelativeVerticalPositionOfCursor(e) {
            const t = e.getPosition();
            if (!this._cursorPosition || !t) return;
            const i =
              e.getTopForLineNumber(t.lineNumber) -
              e.getTopForLineNumber(this._cursorPosition.lineNumber);
            e.setScrollTop(e.getScrollTop() + i);
          }
        }
      },
      65520: (e, t, i) => {
        'use strict';
        i.d(t, { CL: () => r, QI: () => s, Pi: () => o });
        var n = i(96518);
        function r(e) {
          return (
            !(!e || 'function' != typeof e.getEditorType) &&
            e.getEditorType() === n.g.ICodeEditor
          );
        }
        function s(e) {
          return (
            !(!e || 'function' != typeof e.getEditorType) &&
            e.getEditorType() === n.g.IDiffEditor
          );
        }
        function o(e) {
          return r(e) ? e : s(e) ? e.getModifiedEditor() : null;
        }
      },
      16830: (e, t, i) => {
        'use strict';
        i.d(t, {
          mY: () => b,
          AJ: () => v,
          _l: () => w,
          R6: () => C,
          jY: () => S,
          _h: () => k,
          kT: () => x,
          sb: () => L,
          f: () => M,
          fK: () => D,
          Qr: () => N,
          rn: () => E,
          QG: () => T,
          _K: () => I,
          Uc: () => n,
          n_: () => R,
          kz: () => P,
          Sq: () => F,
        });
        var n,
          r = i(63580),
          s = i(17301),
          o = i(70666),
          a = i(11640),
          l = i(50187),
          c = i(51200),
          d = i(88216),
          h = i(84144),
          u = i(94565),
          g = i(38819),
          f = i(49989),
          p = i(89872),
          m = i(10829),
          _ = i(98401);
        class b {
          constructor(e) {
            (this.id = e.id),
              (this.precondition = e.precondition),
              (this._kbOpts = e.kbOpts),
              (this._menuOpts = e.menuOpts),
              (this._description = e.description);
          }
          register() {
            if (
              (Array.isArray(this._menuOpts)
                ? this._menuOpts.forEach(this._registerMenuItem, this)
                : this._menuOpts && this._registerMenuItem(this._menuOpts),
              this._kbOpts)
            ) {
              let e = this._kbOpts.kbExpr;
              this.precondition &&
                (e = e ? g.Ao.and(e, this.precondition) : this.precondition),
                f.W.registerCommandAndKeybindingRule({
                  id: this.id,
                  handler: (e, t) => this.runCommand(e, t),
                  weight: this._kbOpts.weight,
                  args: this._kbOpts.args,
                  when: e,
                  primary: this._kbOpts.primary,
                  secondary: this._kbOpts.secondary,
                  win: this._kbOpts.win,
                  linux: this._kbOpts.linux,
                  mac: this._kbOpts.mac,
                  description: this._description,
                });
            } else
              u.P.registerCommand({
                id: this.id,
                handler: (e, t) => this.runCommand(e, t),
                description: this._description,
              });
          }
          _registerMenuItem(e) {
            h.BH.appendMenuItem(e.menuId, {
              group: e.group,
              command: { id: this.id, title: e.title, icon: e.icon },
              when: e.when,
              order: e.order,
            });
          }
        }
        class v extends b {
          constructor() {
            super(...arguments), (this._implementations = []);
          }
          addImplementation(e, t) {
            return (
              this._implementations.push([e, t]),
              this._implementations.sort((e, t) => t[0] - e[0]),
              {
                dispose: () => {
                  for (let e = 0; e < this._implementations.length; e++)
                    if (this._implementations[e][1] === t)
                      return void this._implementations.splice(e, 1);
                },
              }
            );
          }
          runCommand(e, t) {
            for (const i of this._implementations) if (i[1](e, t)) return;
          }
        }
        class y extends b {
          constructor(e, t) {
            super(t), (this.command = e);
          }
          runCommand(e, t) {
            return this.command.runCommand(e, t);
          }
        }
        class w extends b {
          static bindToContribution(e) {
            return class extends w {
              constructor(e) {
                super(e), (this._callback = e.handler);
              }
              runEditorCommand(t, i, n) {
                e(i) && this._callback(e(i), n);
              }
            };
          }
          runCommand(e, t) {
            const i = e.get(a.$),
              n = i.getFocusedCodeEditor() || i.getActiveCodeEditor();
            if (n)
              return n.invokeWithinContext((e) => {
                if (
                  e.get(g.i6).contextMatchesRules((0, _.f6)(this.precondition))
                )
                  return this.runEditorCommand(e, n, t);
              });
          }
        }
        class C extends w {
          constructor(e) {
            super(C.convertOptions(e)),
              (this.label = e.label),
              (this.alias = e.alias);
          }
          static convertOptions(e) {
            let t;
            function i(t) {
              return (
                t.menuId || (t.menuId = h.eH.EditorContext),
                t.title || (t.title = e.label),
                (t.when = g.Ao.and(e.precondition, t.when)),
                t
              );
            }
            return (
              (t = Array.isArray(e.menuOpts)
                ? e.menuOpts
                : e.menuOpts
                ? [e.menuOpts]
                : []),
              Array.isArray(e.contextMenuOpts)
                ? t.push(...e.contextMenuOpts.map(i))
                : e.contextMenuOpts && t.push(i(e.contextMenuOpts)),
              (e.menuOpts = t),
              e
            );
          }
          runEditorCommand(e, t, i) {
            return this.reportTelemetry(e, t), this.run(e, t, i || {});
          }
          reportTelemetry(e, t) {
            e.get(m.b).publicLog2('editorActionInvoked', {
              name: this.label,
              id: this.id,
            });
          }
        }
        class S extends C {
          constructor(e) {
            super(e), (this._implementations = []);
          }
          runEditorCommand(e, t, i) {
            this.reportTelemetry(e, t);
            for (const t of this._implementations) if (t[1](e, i)) return;
            return this.run(e, t, i || {});
          }
        }
        function k(e, t) {
          u.P.registerCommand(e, (e, i) => t(e, i || {}));
        }
        function x(e, t) {
          k(e, function (e, i) {
            const { resource: n, position: r } = i;
            if (!(n instanceof o.o)) throw (0, s.b1)('resource');
            if (!l.L.isIPosition(r)) throw (0, s.b1)('position');
            const a = e.get(c.q).getModel(n);
            if (a) {
              const e = l.L.lift(r);
              return t(a, e, i);
            }
            return e
              .get(d.S)
              .createModelReference(n)
              .then((e) =>
                new Promise((n, s) => {
                  try {
                    n(t(e.object.textEditorModel, l.L.lift(r), i));
                  } catch (e) {
                    s(e);
                  }
                }).finally(() => {
                  e.dispose();
                })
              );
          });
        }
        function L(e, t) {
          u.P.registerCommand(e, function (e, ...i) {
            const [n, r] = i;
            (0, _.p_)(o.o.isUri(n)), (0, _.p_)(l.L.isIPosition(r));
            const s = e.get(c.q).getModel(n);
            if (s) {
              const e = l.L.lift(r);
              return t(s, e, ...i.slice(2));
            }
            return e
              .get(d.S)
              .createModelReference(n)
              .then((e) =>
                new Promise((n, s) => {
                  try {
                    n(t(e.object.textEditorModel, l.L.lift(r), i.slice(2)));
                  } catch (e) {
                    s(e);
                  }
                }).finally(() => {
                  e.dispose();
                })
              );
          });
        }
        function M(e, t) {
          u.P.registerCommand(e, function (e, ...i) {
            const [n] = i;
            (0, _.p_)(o.o.isUri(n));
            const r = e.get(c.q).getModel(n);
            return r
              ? t(r, ...i.slice(1))
              : e
                  .get(d.S)
                  .createModelReference(n)
                  .then((e) =>
                    new Promise((n, r) => {
                      try {
                        n(t(e.object.textEditorModel, i.slice(1)));
                      } catch (e) {
                        r(e);
                      }
                    }).finally(() => {
                      e.dispose();
                    })
                  );
          });
        }
        function D(e) {
          return O.INSTANCE.registerEditorCommand(e), e;
        }
        function N(e) {
          const t = new e();
          return O.INSTANCE.registerEditorAction(t), t;
        }
        function E(e) {
          return O.INSTANCE.registerEditorAction(e), e;
        }
        function T(e) {
          O.INSTANCE.registerEditorAction(e);
        }
        function I(e, t) {
          O.INSTANCE.registerEditorContribution(e, t);
        }
        !(function (e) {
          (e.getEditorCommand = function (e) {
            return O.INSTANCE.getEditorCommand(e);
          }),
            (e.getEditorActions = function () {
              return O.INSTANCE.getEditorActions();
            }),
            (e.getEditorContributions = function () {
              return O.INSTANCE.getEditorContributions();
            }),
            (e.getSomeEditorContributions = function (e) {
              return O.INSTANCE.getEditorContributions().filter(
                (t) => e.indexOf(t.id) >= 0
              );
            }),
            (e.getDiffEditorContributions = function () {
              return O.INSTANCE.getDiffEditorContributions();
            });
        })(n || (n = {}));
        class O {
          constructor() {
            (this.editorContributions = []),
              (this.diffEditorContributions = []),
              (this.editorActions = []),
              (this.editorCommands = Object.create(null));
          }
          registerEditorContribution(e, t) {
            this.editorContributions.push({ id: e, ctor: t });
          }
          getEditorContributions() {
            return this.editorContributions.slice(0);
          }
          getDiffEditorContributions() {
            return this.diffEditorContributions.slice(0);
          }
          registerEditorAction(e) {
            e.register(), this.editorActions.push(e);
          }
          getEditorActions() {
            return this.editorActions.slice(0);
          }
          registerEditorCommand(e) {
            e.register(), (this.editorCommands[e.id] = e);
          }
          getEditorCommand(e) {
            return this.editorCommands[e] || null;
          }
        }
        function A(e) {
          return e.register(), e;
        }
        (O.INSTANCE = new O()), p.B.add('editor.contributions', O.INSTANCE);
        const R = A(
          new v({
            id: 'undo',
            precondition: void 0,
            kbOpts: { weight: 0, primary: 2104 },
            menuOpts: [
              {
                menuId: h.eH.MenubarEditMenu,
                group: '1_do',
                title: r.N(
                  { key: 'miUndo', comment: ['&& denotes a mnemonic'] },
                  '&&Undo'
                ),
                order: 1,
              },
              {
                menuId: h.eH.CommandPalette,
                group: '',
                title: r.N('undo', 'Undo'),
                order: 1,
              },
            ],
          })
        );
        A(new y(R, { id: 'default:undo', precondition: void 0 }));
        const P = A(
          new v({
            id: 'redo',
            precondition: void 0,
            kbOpts: {
              weight: 0,
              primary: 2103,
              secondary: [3128],
              mac: { primary: 3128 },
            },
            menuOpts: [
              {
                menuId: h.eH.MenubarEditMenu,
                group: '1_do',
                title: r.N(
                  { key: 'miRedo', comment: ['&& denotes a mnemonic'] },
                  '&&Redo'
                ),
                order: 2,
              },
              {
                menuId: h.eH.CommandPalette,
                group: '',
                title: r.N('redo', 'Redo'),
                order: 1,
              },
            ],
          })
        );
        A(new y(P, { id: 'default:redo', precondition: void 0 }));
        const F = A(
          new v({
            id: 'editor.action.selectAll',
            precondition: void 0,
            kbOpts: { weight: 0, kbExpr: null, primary: 2079 },
            menuOpts: [
              {
                menuId: h.eH.MenubarSelectionMenu,
                group: '1_basic',
                title: r.N(
                  { key: 'miSelectAll', comment: ['&& denotes a mnemonic'] },
                  '&&Select All'
                ),
                order: 1,
              },
              {
                menuId: h.eH.CommandPalette,
                group: '',
                title: r.N('selectAll', 'Select All'),
                order: 1,
              },
            ],
          })
        );
      },
      66007: (e, t, i) => {
        'use strict';
        i.d(t, { vu: () => o, fo: () => a, Gl: () => l });
        var n = i(72065),
          r = i(70666),
          s = i(98401);
        const o = (0, n.yh)('IWorkspaceEditService');
        class a {
          constructor(e) {
            this.metadata = e;
          }
          static convert(e) {
            return e.edits.map((e) => {
              if (
                ((t = e),
                (0, s.Kn)(t) && r.o.isUri(t.resource) && (0, s.Kn)(t.edit))
              )
                return new l(e.resource, e.edit, e.modelVersionId, e.metadata);
              var t;
              if (
                (function (e) {
                  return (
                    (0, s.Kn)(e) && (Boolean(e.newUri) || Boolean(e.oldUri))
                  );
                })(e)
              )
                return new c(e.oldUri, e.newUri, e.options, e.metadata);
              throw new Error('Unsupported edit');
            });
          }
        }
        class l extends a {
          constructor(e, t, i, n) {
            super(n),
              (this.resource = e),
              (this.textEdit = t),
              (this.versionId = i),
              (this.metadata = n);
          }
        }
        class c extends a {
          constructor(e, t, i, n) {
            super(n),
              (this.oldResource = e),
              (this.newResource = t),
              (this.options = i),
              (this.metadata = n);
          }
        }
      },
      11640: (e, t, i) => {
        'use strict';
        i.d(t, { $: () => n });
        const n = (0, i(72065).yh)('codeEditorService');
      },
      95190: (e, t, i) => {
        'use strict';
        i.d(t, { Gm: () => Wn });
        var n = i(63580),
          r = i(65321),
          s = i(17301),
          o = i(4669),
          a = i(5976),
          l = i(66663),
          c = i(89052),
          d = i(16830),
          h = i(11640),
          u = i(3860),
          g = i(38626),
          f = i(1432),
          p = i(10553),
          m = i(23938),
          _ = i(15393),
          b = i(16268),
          v = i(57974);
        class y {
          constructor(e, t) {
            (this.x = e), (this.y = t);
          }
          toClientCoordinates() {
            return new w(this.x - r.DI.scrollX, this.y - r.DI.scrollY);
          }
        }
        class w {
          constructor(e, t) {
            (this.clientX = e), (this.clientY = t);
          }
          toPageCoordinates() {
            return new y(
              this.clientX + r.DI.scrollX,
              this.clientY + r.DI.scrollY
            );
          }
        }
        class C {
          constructor(e, t, i, n) {
            (this.x = e), (this.y = t), (this.width = i), (this.height = n);
          }
        }
        function S(e) {
          const t = r.i(e);
          return new C(t.left, t.top, t.width, t.height);
        }
        class k extends m.n {
          constructor(e, t) {
            super(e),
              (this.pos = new y(this.posx, this.posy)),
              (this.editorPos = S(t));
          }
        }
        class x {
          constructor(e) {
            this._editorViewDomNode = e;
          }
          _create(e) {
            return new k(e, this._editorViewDomNode);
          }
          onContextMenu(e, t) {
            return r.nm(e, 'contextmenu', (e) => {
              t(this._create(e));
            });
          }
          onMouseUp(e, t) {
            return r.nm(e, 'mouseup', (e) => {
              t(this._create(e));
            });
          }
          onMouseDown(e, t) {
            return r.nm(e, 'mousedown', (e) => {
              t(this._create(e));
            });
          }
          onMouseLeave(e, t) {
            return r.j_(e, (e) => {
              t(this._create(e));
            });
          }
          onMouseMoveThrottled(e, t, i, n) {
            return r.Y_(e, 'mousemove', t, (e, t) => i(e, this._create(t)), n);
          }
        }
        class L {
          constructor(e) {
            this._editorViewDomNode = e;
          }
          _create(e) {
            return new k(e, this._editorViewDomNode);
          }
          onPointerUp(e, t) {
            return r.nm(e, 'pointerup', (e) => {
              t(this._create(e));
            });
          }
          onPointerDown(e, t) {
            return r.nm(e, 'pointerdown', (e) => {
              t(this._create(e));
            });
          }
          onPointerLeave(e, t) {
            return r.RE(e, (e) => {
              t(this._create(e));
            });
          }
          onPointerMoveThrottled(e, t, i, n) {
            return r.Y_(
              e,
              'pointermove',
              t,
              (e, t) => i(e, this._create(t)),
              n
            );
          }
        }
        class M extends a.JT {
          constructor(e) {
            super(),
              (this._editorViewDomNode = e),
              (this._globalMouseMoveMonitor = this._register(new v.Z())),
              (this._keydownListener = null);
          }
          startMonitoring(e, t, i, n, s) {
            (this._keydownListener = r.mu(
              document,
              'keydown',
              (e) => {
                e.toKeybinding().isModifierKey() ||
                  this._globalMouseMoveMonitor.stopMonitoring(!0);
              },
              !0
            )),
              this._globalMouseMoveMonitor.startMonitoring(
                e,
                t,
                (e, t) => i(e, new k(t, this._editorViewDomNode)),
                n,
                () => {
                  this._keydownListener.dispose(), s();
                }
              );
          }
        }
        class D extends a.JT {
          constructor() {
            super(), (this._shouldRender = !0);
          }
          shouldRender() {
            return this._shouldRender;
          }
          forceShouldRender() {
            this._shouldRender = !0;
          }
          setShouldRender() {
            this._shouldRender = !0;
          }
          onDidRender() {
            this._shouldRender = !1;
          }
          onConfigurationChanged(e) {
            return !1;
          }
          onCursorStateChanged(e) {
            return !1;
          }
          onDecorationsChanged(e) {
            return !1;
          }
          onFlushed(e) {
            return !1;
          }
          onFocusChanged(e) {
            return !1;
          }
          onLanguageConfigurationChanged(e) {
            return !1;
          }
          onLineMappingChanged(e) {
            return !1;
          }
          onLinesChanged(e) {
            return !1;
          }
          onLinesDeleted(e) {
            return !1;
          }
          onLinesInserted(e) {
            return !1;
          }
          onRevealRangeRequest(e) {
            return !1;
          }
          onScrollChanged(e) {
            return !1;
          }
          onThemeChanged(e) {
            return !1;
          }
          onTokensChanged(e) {
            return !1;
          }
          onTokensColorsChanged(e) {
            return !1;
          }
          onZonesChanged(e) {
            return !1;
          }
          handleEvents(e) {
            let t = !1;
            for (let i = 0, n = e.length; i < n; i++) {
              let n = e[i];
              switch (n.type) {
                case 0:
                  this.onConfigurationChanged(n) && (t = !0);
                  break;
                case 1:
                  this.onCursorStateChanged(n) && (t = !0);
                  break;
                case 2:
                  this.onDecorationsChanged(n) && (t = !0);
                  break;
                case 3:
                  this.onFlushed(n) && (t = !0);
                  break;
                case 4:
                  this.onFocusChanged(n) && (t = !0);
                  break;
                case 5:
                  this.onLanguageConfigurationChanged(n) && (t = !0);
                  break;
                case 6:
                  this.onLineMappingChanged(n) && (t = !0);
                  break;
                case 7:
                  this.onLinesChanged(n) && (t = !0);
                  break;
                case 8:
                  this.onLinesDeleted(n) && (t = !0);
                  break;
                case 9:
                  this.onLinesInserted(n) && (t = !0);
                  break;
                case 10:
                  this.onRevealRangeRequest(n) && (t = !0);
                  break;
                case 11:
                  this.onScrollChanged(n) && (t = !0);
                  break;
                case 13:
                  this.onTokensChanged(n) && (t = !0);
                  break;
                case 12:
                  this.onThemeChanged(n) && (t = !0);
                  break;
                case 14:
                  this.onTokensColorsChanged(n) && (t = !0);
                  break;
                case 15:
                  this.onZonesChanged(n) && (t = !0);
                  break;
                default:
                  console.info('View received unknown event: '),
                    console.info(n);
              }
            }
            t && (this._shouldRender = !0);
          }
        }
        class N extends D {
          constructor(e) {
            super(), (this._context = e), this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this), super.dispose();
          }
        }
        class E {
          static write(e, t) {
            g.Z, e.setAttribute('data-mprt', String(t));
          }
          static read(e) {
            const t = e.getAttribute('data-mprt');
            return null === t ? 0 : parseInt(t, 10);
          }
          static collect(e, t) {
            let i = [],
              n = 0;
            for (; e && e !== document.body && e !== t; )
              e.nodeType === e.ELEMENT_NODE && (i[n++] = this.read(e)),
                (e = e.parentElement);
            const r = new Uint8Array(n);
            for (let e = 0; e < n; e++) r[e] = i[n - e - 1];
            return r;
          }
        }
        class T extends class {
          constructor(e, t) {
            (this._viewLayout = e),
              (this.viewportData = t),
              (this.scrollWidth = this._viewLayout.getScrollWidth()),
              (this.scrollHeight = this._viewLayout.getScrollHeight()),
              (this.visibleRange = this.viewportData.visibleRange),
              (this.bigNumbersDelta = this.viewportData.bigNumbersDelta);
            const i = this._viewLayout.getCurrentViewport();
            (this.scrollTop = i.top),
              (this.scrollLeft = i.left),
              (this.viewportWidth = i.width),
              (this.viewportHeight = i.height);
          }
          getScrolledTopFromAbsoluteTop(e) {
            return e - this.scrollTop;
          }
          getVerticalOffsetForLineNumber(e) {
            return this._viewLayout.getVerticalOffsetForLineNumber(e);
          }
          getDecorationsInViewport() {
            return this.viewportData.getDecorationsInViewport();
          }
        } {
          constructor(e, t, i) {
            super(e, t), (this._viewLines = i);
          }
          linesVisibleRangesForRange(e, t) {
            return this._viewLines.linesVisibleRangesForRange(e, t);
          }
          visibleRangeForPosition(e) {
            return this._viewLines.visibleRangeForPosition(e);
          }
        }
        class I {
          constructor(e, t, i) {
            (this.outsideRenderedLine = e),
              (this.lineNumber = t),
              (this.ranges = i);
          }
        }
        class O {
          constructor(e, t) {
            (this.left = Math.round(e)), (this.width = Math.round(t));
          }
          toString() {
            return `[${this.left},${this.width}]`;
          }
        }
        class A {
          constructor(e, t) {
            (this.outsideRenderedLine = e), (this.left = Math.round(t));
          }
        }
        class R {
          constructor(e, t) {
            (this.outsideRenderedLine = e), (this.ranges = t);
          }
        }
        class P {
          constructor(e, t) {
            (this.left = e), (this.width = t);
          }
          toString() {
            return `[${this.left},${this.width}]`;
          }
          static compare(e, t) {
            return e.left - t.left;
          }
        }
        class F {
          static _createRange() {
            return (
              this._handyReadyRange ||
                (this._handyReadyRange = document.createRange()),
              this._handyReadyRange
            );
          }
          static _detachRange(e, t) {
            e.selectNodeContents(t);
          }
          static _readClientRects(e, t, i, n, r) {
            const s = this._createRange();
            try {
              return s.setStart(e, t), s.setEnd(i, n), s.getClientRects();
            } catch (e) {
              return null;
            } finally {
              this._detachRange(s, r);
            }
          }
          static _mergeAdjacentRanges(e) {
            if (1 === e.length) return [new O(e[0].left, e[0].width)];
            e.sort(P.compare);
            let t = [],
              i = 0,
              n = e[0].left,
              r = e[0].width;
            for (let s = 1, o = e.length; s < o; s++) {
              const o = e[s],
                a = o.left,
                l = o.width;
              n + r + 0.9 >= a
                ? (r = Math.max(r, a + l - n))
                : ((t[i++] = new O(n, r)), (n = a), (r = l));
            }
            return (t[i++] = new O(n, r)), t;
          }
          static _createHorizontalRangesFromClientRects(e, t) {
            if (!e || 0 === e.length) return null;
            const i = [];
            for (let n = 0, r = e.length; n < r; n++) {
              const r = e[n];
              i[n] = new P(Math.max(0, r.left - t), r.width);
            }
            return this._mergeAdjacentRanges(i);
          }
          static readHorizontalRanges(e, t, i, n, r, s, o) {
            const a = e.children.length - 1;
            if (0 > a) return null;
            if (
              (t = Math.min(a, Math.max(0, t))) ===
                (n = Math.min(a, Math.max(0, n))) &&
              i === r &&
              0 === i
            ) {
              const i = e.children[t].getClientRects();
              return this._createHorizontalRangesFromClientRects(i, s);
            }
            t !== n && n > 0 && 0 === r && (n--, (r = 1073741824));
            let l = e.children[t].firstChild,
              c = e.children[n].firstChild;
            if (
              ((l && c) ||
                (!l &&
                  0 === i &&
                  t > 0 &&
                  ((l = e.children[t - 1].firstChild), (i = 1073741824)),
                !c &&
                  0 === r &&
                  n > 0 &&
                  ((c = e.children[n - 1].firstChild), (r = 1073741824))),
              !l || !c)
            )
              return null;
            (i = Math.min(l.textContent.length, Math.max(0, i))),
              (r = Math.min(c.textContent.length, Math.max(0, r)));
            const d = this._readClientRects(l, i, c, r, o);
            return this._createHorizontalRangesFromClientRects(d, s);
          }
        }
        var B = i(92550),
          W = i(77736),
          Y = i(97781),
          H = i(64141);
        const j = !!f.tY || !(f.IJ || b.vU || b.G6);
        let V = !0;
        const z = b.un;
        class U {
          constructor(e, t) {
            (this._domNode = e),
              (this._clientRectDeltaLeft = 0),
              (this._clientRectDeltaLeftRead = !1),
              (this.endNode = t);
          }
          get clientRectDeltaLeft() {
            return (
              this._clientRectDeltaLeftRead ||
                ((this._clientRectDeltaLeftRead = !0),
                (this._clientRectDeltaLeft = this._domNode.getBoundingClientRect().left)),
              this._clientRectDeltaLeft
            );
          }
        }
        class $ {
          constructor(e, t) {
            this.themeType = t;
            const i = e.options,
              n = i.get(36);
            (this.renderWhitespace = i.get(80)),
              (this.renderControlCharacters = i.get(74)),
              (this.spaceWidth = n.spaceWidth),
              (this.middotWidth = n.middotWidth),
              (this.wsmiddotWidth = n.wsmiddotWidth),
              (this.useMonospaceOptimizations = n.isMonospace && !i.get(24)),
              (this.canUseHalfwidthRightwardsArrow =
                n.canUseHalfwidthRightwardsArrow),
              (this.lineHeight = i.get(51)),
              (this.stopRenderingLineAfter = i.get(95)),
              (this.fontLigatures = i.get(37));
          }
          equals(e) {
            return (
              this.themeType === e.themeType &&
              this.renderWhitespace === e.renderWhitespace &&
              this.renderControlCharacters === e.renderControlCharacters &&
              this.spaceWidth === e.spaceWidth &&
              this.middotWidth === e.middotWidth &&
              this.wsmiddotWidth === e.wsmiddotWidth &&
              this.useMonospaceOptimizations === e.useMonospaceOptimizations &&
              this.canUseHalfwidthRightwardsArrow ===
                e.canUseHalfwidthRightwardsArrow &&
              this.lineHeight === e.lineHeight &&
              this.stopRenderingLineAfter === e.stopRenderingLineAfter &&
              this.fontLigatures === e.fontLigatures
            );
          }
        }
        class K {
          constructor(e) {
            (this._options = e),
              (this._isMaybeInvalid = !0),
              (this._renderedViewLine = null);
          }
          getDomNode() {
            return this._renderedViewLine && this._renderedViewLine.domNode
              ? this._renderedViewLine.domNode.domNode
              : null;
          }
          setDomNode(e) {
            if (!this._renderedViewLine)
              throw new Error(
                'I have no rendered view line to set the dom node to...'
              );
            this._renderedViewLine.domNode = (0, g.X)(e);
          }
          onContentChanged() {
            this._isMaybeInvalid = !0;
          }
          onTokensChanged() {
            this._isMaybeInvalid = !0;
          }
          onDecorationsChanged() {
            this._isMaybeInvalid = !0;
          }
          onOptionsChanged(e) {
            (this._isMaybeInvalid = !0), (this._options = e);
          }
          onSelectionChanged() {
            return !(
              (!z &&
                this._options.themeType !== Y.QP &&
                'selection' !== this._options.renderWhitespace) ||
              ((this._isMaybeInvalid = !0), 0)
            );
          }
          renderLine(e, t, i, n) {
            if (!1 === this._isMaybeInvalid) return !1;
            this._isMaybeInvalid = !1;
            const r = i.getViewLineRenderingData(e),
              s = this._options,
              o = B.Kp.filter(r.inlineDecorations, e, r.minColumn, r.maxColumn);
            let a = null;
            if (
              z ||
              s.themeType === Y.QP ||
              'selection' === this._options.renderWhitespace
            ) {
              const t = i.selections;
              for (const i of t) {
                if (i.endLineNumber < e || i.startLineNumber > e) continue;
                const t = i.startLineNumber === e ? i.startColumn : r.minColumn,
                  n = i.endLineNumber === e ? i.endColumn : r.maxColumn;
                t < n &&
                  (s.themeType === Y.QP ||
                  'selection' !== this._options.renderWhitespace
                    ? o.push(new B.Kp(t, n, 'inline-selected-text', 0))
                    : (a || (a = []), a.push(new W.zG(t - 1, n - 1))));
              }
            }
            const l = new W.IJ(
              s.useMonospaceOptimizations,
              s.canUseHalfwidthRightwardsArrow,
              r.content,
              r.continuesWithWrappedLine,
              r.isBasicASCII,
              r.containsRTL,
              r.minColumn - 1,
              r.tokens,
              o,
              r.tabSize,
              r.startVisibleColumn,
              s.spaceWidth,
              s.middotWidth,
              s.wsmiddotWidth,
              s.stopRenderingLineAfter,
              s.renderWhitespace,
              s.renderControlCharacters,
              s.fontLigatures !== H.n0.OFF,
              a
            );
            if (
              this._renderedViewLine &&
              this._renderedViewLine.input.equals(l)
            )
              return !1;
            n.appendASCIIString('<div style="top:'),
              n.appendASCIIString(String(t)),
              n.appendASCIIString('px;height:'),
              n.appendASCIIString(String(this._options.lineHeight)),
              n.appendASCIIString('px;" class="'),
              n.appendASCIIString(K.CLASS_NAME),
              n.appendASCIIString('">');
            const c = (0, W.d1)(l, n);
            n.appendASCIIString('</div>');
            let d = null;
            return (
              V &&
                j &&
                r.isBasicASCII &&
                s.useMonospaceOptimizations &&
                0 === c.containsForeignElements &&
                r.content.length < 300 &&
                l.lineTokens.getCount() < 100 &&
                (d = new q(
                  this._renderedViewLine
                    ? this._renderedViewLine.domNode
                    : null,
                  l,
                  c.characterMapping
                )),
              d ||
                (d = J(
                  this._renderedViewLine
                    ? this._renderedViewLine.domNode
                    : null,
                  l,
                  c.characterMapping,
                  c.containsRTL,
                  c.containsForeignElements
                )),
              (this._renderedViewLine = d),
              !0
            );
          }
          layoutLine(e, t) {
            this._renderedViewLine &&
              this._renderedViewLine.domNode &&
              (this._renderedViewLine.domNode.setTop(t),
              this._renderedViewLine.domNode.setHeight(
                this._options.lineHeight
              ));
          }
          getWidth() {
            return this._renderedViewLine
              ? this._renderedViewLine.getWidth()
              : 0;
          }
          getWidthIsFast() {
            return (
              !this._renderedViewLine || this._renderedViewLine.getWidthIsFast()
            );
          }
          needsMonospaceFontCheck() {
            return (
              !!this._renderedViewLine && this._renderedViewLine instanceof q
            );
          }
          monospaceAssumptionsAreValid() {
            return this._renderedViewLine && this._renderedViewLine instanceof q
              ? this._renderedViewLine.monospaceAssumptionsAreValid()
              : V;
          }
          onMonospaceAssumptionsInvalidated() {
            this._renderedViewLine &&
              this._renderedViewLine instanceof q &&
              (this._renderedViewLine = this._renderedViewLine.toSlowRenderedLine());
          }
          getVisibleRangesForRange(e, t, i) {
            if (!this._renderedViewLine) return null;
            (e |= 0),
              (t |= 0),
              (e = Math.min(
                this._renderedViewLine.input.lineContent.length + 1,
                Math.max(1, e)
              )),
              (t = Math.min(
                this._renderedViewLine.input.lineContent.length + 1,
                Math.max(1, t)
              ));
            const n = 0 | this._renderedViewLine.input.stopRenderingLineAfter;
            let r = !1;
            -1 !== n && e > n + 1 && t > n + 1 && (r = !0),
              -1 !== n && e > n + 1 && (e = n + 1),
              -1 !== n && t > n + 1 && (t = n + 1);
            const s = this._renderedViewLine.getVisibleRangesForRange(e, t, i);
            return s && s.length > 0 ? new R(r, s) : null;
          }
          getColumnOfNodeOffset(e, t, i) {
            return this._renderedViewLine
              ? this._renderedViewLine.getColumnOfNodeOffset(e, t, i)
              : 1;
          }
        }
        K.CLASS_NAME = 'view-line';
        class q {
          constructor(e, t, i) {
            (this.domNode = e),
              (this.input = t),
              (this._characterMapping = i),
              (this._charWidth = t.spaceWidth);
          }
          getWidth() {
            return this._getCharPosition(this._characterMapping.length);
          }
          getWidthIsFast() {
            return !0;
          }
          monospaceAssumptionsAreValid() {
            if (!this.domNode) return V;
            const e = this.getWidth(),
              t = this.domNode.domNode.firstChild.offsetWidth;
            return (
              Math.abs(e - t) >= 2 &&
                (console.warn(
                  'monospace assumptions have been violated, therefore disabling monospace optimizations!'
                ),
                (V = !1)),
              V
            );
          }
          toSlowRenderedLine() {
            return J(this.domNode, this.input, this._characterMapping, !1, 0);
          }
          getVisibleRangesForRange(e, t, i) {
            const n = this._getCharPosition(e),
              r = this._getCharPosition(t);
            return [new O(n, r - n)];
          }
          _getCharPosition(e) {
            const t = this._characterMapping.getAbsoluteOffsets();
            return 0 === t.length ? 0 : Math.round(this._charWidth * t[e - 1]);
          }
          getColumnOfNodeOffset(e, t, i) {
            const n = t.textContent.length;
            let r = -1;
            for (; t; ) (t = t.previousSibling), r++;
            return this._characterMapping.partDataToCharOffset(r, n, i) + 1;
          }
        }
        class G {
          constructor(e, t, i, n, r) {
            if (
              ((this.domNode = e),
              (this.input = t),
              (this._characterMapping = i),
              (this._isWhitespaceOnly = /^\s*$/.test(t.lineContent)),
              (this._containsForeignElements = r),
              (this._cachedWidth = -1),
              (this._pixelOffsetCache = null),
              !n || 0 === this._characterMapping.length)
            ) {
              this._pixelOffsetCache = new Int32Array(
                Math.max(2, this._characterMapping.length + 1)
              );
              for (let e = 0, t = this._characterMapping.length; e <= t; e++)
                this._pixelOffsetCache[e] = -1;
            }
          }
          _getReadingTarget(e) {
            return e.domNode.firstChild;
          }
          getWidth() {
            return this.domNode
              ? (-1 === this._cachedWidth &&
                  (this._cachedWidth = this._getReadingTarget(
                    this.domNode
                  ).offsetWidth),
                this._cachedWidth)
              : 0;
          }
          getWidthIsFast() {
            return -1 !== this._cachedWidth;
          }
          getVisibleRangesForRange(e, t, i) {
            if (!this.domNode) return null;
            if (null !== this._pixelOffsetCache) {
              const n = this._readPixelOffset(this.domNode, e, i);
              if (-1 === n) return null;
              const r = this._readPixelOffset(this.domNode, t, i);
              return -1 === r ? null : [new O(n, r - n)];
            }
            return this._readVisibleRangesForRange(this.domNode, e, t, i);
          }
          _readVisibleRangesForRange(e, t, i, n) {
            if (t === i) {
              const i = this._readPixelOffset(e, t, n);
              return -1 === i ? null : [new O(i, 0)];
            }
            return this._readRawVisibleRangesForRange(e, t, i, n);
          }
          _readPixelOffset(e, t, i) {
            if (0 === this._characterMapping.length) {
              if (0 === this._containsForeignElements) return 0;
              if (2 === this._containsForeignElements) return 0;
              if (1 === this._containsForeignElements) return this.getWidth();
              const t = this._getReadingTarget(e);
              return t.firstChild ? t.firstChild.offsetWidth : 0;
            }
            if (null !== this._pixelOffsetCache) {
              const n = this._pixelOffsetCache[t];
              if (-1 !== n) return n;
              const r = this._actualReadPixelOffset(e, t, i);
              return (this._pixelOffsetCache[t] = r), r;
            }
            return this._actualReadPixelOffset(e, t, i);
          }
          _actualReadPixelOffset(e, t, i) {
            if (0 === this._characterMapping.length) {
              const t = F.readHorizontalRanges(
                this._getReadingTarget(e),
                0,
                0,
                0,
                0,
                i.clientRectDeltaLeft,
                i.endNode
              );
              return t && 0 !== t.length ? t[0].left : -1;
            }
            if (
              t === this._characterMapping.length &&
              this._isWhitespaceOnly &&
              0 === this._containsForeignElements
            )
              return this.getWidth();
            const n = this._characterMapping.charOffsetToPartData(t - 1),
              r = W.fH.getPartIndex(n),
              s = W.fH.getCharIndex(n),
              o = F.readHorizontalRanges(
                this._getReadingTarget(e),
                r,
                s,
                r,
                s,
                i.clientRectDeltaLeft,
                i.endNode
              );
            if (!o || 0 === o.length) return -1;
            const a = o[0].left;
            if (this.input.isBasicASCII) {
              const e = this._characterMapping.getAbsoluteOffsets(),
                i = Math.round(this.input.spaceWidth * e[t - 1]);
              if (Math.abs(i - a) <= 1) return i;
            }
            return a;
          }
          _readRawVisibleRangesForRange(e, t, i, n) {
            if (1 === t && i === this._characterMapping.length)
              return [new O(0, this.getWidth())];
            const r = this._characterMapping.charOffsetToPartData(t - 1),
              s = W.fH.getPartIndex(r),
              o = W.fH.getCharIndex(r),
              a = this._characterMapping.charOffsetToPartData(i - 1),
              l = W.fH.getPartIndex(a),
              c = W.fH.getCharIndex(a);
            return F.readHorizontalRanges(
              this._getReadingTarget(e),
              s,
              o,
              l,
              c,
              n.clientRectDeltaLeft,
              n.endNode
            );
          }
          getColumnOfNodeOffset(e, t, i) {
            const n = t.textContent.length;
            let r = -1;
            for (; t; ) (t = t.previousSibling), r++;
            return this._characterMapping.partDataToCharOffset(r, n, i) + 1;
          }
        }
        class Z extends G {
          _readVisibleRangesForRange(e, t, i, n) {
            const r = super._readVisibleRangesForRange(e, t, i, n);
            if (
              !r ||
              0 === r.length ||
              t === i ||
              (1 === t && i === this._characterMapping.length)
            )
              return r;
            if (!this.input.containsRTL) {
              const t = this._readPixelOffset(e, i, n);
              if (-1 !== t) {
                const e = r[r.length - 1];
                e.left < t && (e.width = t - e.left);
              }
            }
            return r;
          }
        }
        const J = b.Pf
          ? function (e, t, i, n, r) {
              return new Z(e, t, i, n, r);
            }
          : function (e, t, i, n, r) {
              return new G(e, t, i, n, r);
            };
        var Q = i(50187),
          X = i(24314),
          ee = i(33181);
        class te {
          constructor(e, t) {
            (this.lastViewCursorsRenderData = e),
              (this.lastTextareaPosition = t);
          }
        }
        class ie {
          constructor(e, t, i = 0, n = null, r = null, s = null) {
            (this.element = e),
              (this.type = t),
              (this.mouseColumn = i),
              (this.position = n),
              !r &&
                n &&
                (r = new X.e(n.lineNumber, n.column, n.lineNumber, n.column)),
              (this.range = r),
              (this.detail = s);
          }
          static _typeToString(e) {
            return 1 === e
              ? 'TEXTAREA'
              : 2 === e
              ? 'GUTTER_GLYPH_MARGIN'
              : 3 === e
              ? 'GUTTER_LINE_NUMBERS'
              : 4 === e
              ? 'GUTTER_LINE_DECORATIONS'
              : 5 === e
              ? 'GUTTER_VIEW_ZONE'
              : 6 === e
              ? 'CONTENT_TEXT'
              : 7 === e
              ? 'CONTENT_EMPTY'
              : 8 === e
              ? 'CONTENT_VIEW_ZONE'
              : 9 === e
              ? 'CONTENT_WIDGET'
              : 10 === e
              ? 'OVERVIEW_RULER'
              : 11 === e
              ? 'SCROLLBAR'
              : 12 === e
              ? 'OVERLAY_WIDGET'
              : 'UNKNOWN';
          }
          static toString(e) {
            return (
              this._typeToString(e.type) +
              ': ' +
              e.position +
              ' - ' +
              e.range +
              ' - ' +
              e.detail
            );
          }
          toString() {
            return ie.toString(this);
          }
        }
        class ne {
          static isTextArea(e) {
            return 2 === e.length && 3 === e[0] && 6 === e[1];
          }
          static isChildOfViewLines(e) {
            return e.length >= 4 && 3 === e[0] && 7 === e[3];
          }
          static isStrictChildOfViewLines(e) {
            return e.length > 4 && 3 === e[0] && 7 === e[3];
          }
          static isChildOfScrollableElement(e) {
            return e.length >= 2 && 3 === e[0] && 5 === e[1];
          }
          static isChildOfMinimap(e) {
            return e.length >= 2 && 3 === e[0] && 8 === e[1];
          }
          static isChildOfContentWidgets(e) {
            return e.length >= 4 && 3 === e[0] && 1 === e[3];
          }
          static isChildOfOverflowingContentWidgets(e) {
            return e.length >= 1 && 2 === e[0];
          }
          static isChildOfOverlayWidgets(e) {
            return e.length >= 2 && 3 === e[0] && 4 === e[1];
          }
        }
        class re {
          constructor(e, t, i) {
            this.model = e.model;
            const n = e.configuration.options;
            (this.layoutInfo = n.get(117)),
              (this.viewDomNode = t.viewDomNode),
              (this.lineHeight = n.get(51)),
              (this.typicalHalfwidthCharacterWidth = n.get(
                36
              ).typicalHalfwidthCharacterWidth),
              (this.lastRenderData = i),
              (this._context = e),
              (this._viewHelper = t);
          }
          getZoneAtCoord(e) {
            return re.getZoneAtCoord(this._context, e);
          }
          static getZoneAtCoord(e, t) {
            const i = e.viewLayout.getWhitespaceAtVerticalOffset(t);
            if (i) {
              let n,
                r = i.verticalOffset + i.height / 2,
                s = e.model.getLineCount(),
                o = null,
                a = null;
              return (
                i.afterLineNumber !== s &&
                  (a = new Q.L(i.afterLineNumber + 1, 1)),
                i.afterLineNumber > 0 &&
                  (o = new Q.L(
                    i.afterLineNumber,
                    e.model.getLineMaxColumn(i.afterLineNumber)
                  )),
                (n = null === a ? o : null === o ? a : t < r ? o : a),
                {
                  viewZoneId: i.id,
                  afterLineNumber: i.afterLineNumber,
                  positionBefore: o,
                  positionAfter: a,
                  position: n,
                }
              );
            }
            return null;
          }
          getFullLineRangeAtCoord(e) {
            if (this._context.viewLayout.isAfterLines(e)) {
              const e = this._context.model.getLineCount(),
                t = this._context.model.getLineMaxColumn(e);
              return { range: new X.e(e, t, e, t), isAfterLines: !0 };
            }
            const t = this._context.viewLayout.getLineNumberAtVerticalOffset(e),
              i = this._context.model.getLineMaxColumn(t);
            return { range: new X.e(t, 1, t, i), isAfterLines: !1 };
          }
          getLineNumberAtVerticalOffset(e) {
            return this._context.viewLayout.getLineNumberAtVerticalOffset(e);
          }
          isAfterLines(e) {
            return this._context.viewLayout.isAfterLines(e);
          }
          getVerticalOffsetForLineNumber(e) {
            return this._context.viewLayout.getVerticalOffsetForLineNumber(e);
          }
          findAttribute(e, t) {
            return re._findAttribute(e, t, this._viewHelper.viewDomNode);
          }
          static _findAttribute(e, t, i) {
            for (; e && e !== document.body; ) {
              if (e.hasAttribute && e.hasAttribute(t)) return e.getAttribute(t);
              if (e === i) return null;
              e = e.parentNode;
            }
            return null;
          }
          getLineWidth(e) {
            return this._viewHelper.getLineWidth(e);
          }
          visibleRangeForPosition(e, t) {
            return this._viewHelper.visibleRangeForPosition(e, t);
          }
          getPositionFromDOMInfo(e, t) {
            return this._viewHelper.getPositionFromDOMInfo(e, t);
          }
          getCurrentScrollTop() {
            return this._context.viewLayout.getCurrentScrollTop();
          }
          getCurrentScrollLeft() {
            return this._context.viewLayout.getCurrentScrollLeft();
          }
        }
        class se extends class {
          constructor(e, t, i) {
            (this.editorPos = t),
              (this.pos = i),
              (this.mouseVerticalOffset = Math.max(
                0,
                e.getCurrentScrollTop() + i.y - t.y
              )),
              (this.mouseContentHorizontalOffset =
                e.getCurrentScrollLeft() +
                i.x -
                t.x -
                e.layoutInfo.contentLeft),
              (this.isInMarginArea =
                i.x - t.x < e.layoutInfo.contentLeft &&
                i.x - t.x >= e.layoutInfo.glyphMarginLeft),
              (this.isInContentArea = !this.isInMarginArea),
              (this.mouseColumn = Math.max(
                0,
                le._getMouseColumn(
                  this.mouseContentHorizontalOffset,
                  e.typicalHalfwidthCharacterWidth
                )
              ));
          }
        } {
          constructor(e, t, i, n) {
            super(e, t, i),
              (this._ctx = e),
              n
                ? ((this.target = n),
                  (this.targetPath = E.collect(n, e.viewDomNode)))
                : ((this.target = null), (this.targetPath = new Uint8Array(0)));
          }
          toString() {
            return `pos(${this.pos.x},${this.pos.y}), editorPos(${
              this.editorPos.x
            },${this.editorPos.y}), mouseVerticalOffset: ${
              this.mouseVerticalOffset
            }, mouseContentHorizontalOffset: ${
              this.mouseContentHorizontalOffset
            }\n\ttarget: ${this.target ? this.target.outerHTML : null}`;
          }
          fulfill(e, t = null, i = null, n = null) {
            let r = this.mouseColumn;
            return (
              t &&
                t.column < this._ctx.model.getLineMaxColumn(t.lineNumber) &&
                (r =
                  ee.io.visibleColumnFromColumn(
                    this._ctx.model.getLineContent(t.lineNumber),
                    t.column,
                    this._ctx.model.getTextModelOptions().tabSize
                  ) + 1),
              new ie(this.target, e, r, t, i, n)
            );
          }
          withTarget(e) {
            return new se(this._ctx, this.editorPos, this.pos, e);
          }
        }
        const oe = { isAfterLines: !0 };
        function ae(e) {
          return { isAfterLines: !1, horizontalDistanceToText: e };
        }
        class le {
          constructor(e, t) {
            (this._context = e), (this._viewHelper = t);
          }
          mouseTargetIsWidget(e) {
            const t = e.target,
              i = E.collect(t, this._viewHelper.viewDomNode);
            return !(
              !ne.isChildOfContentWidgets(i) &&
              !ne.isChildOfOverflowingContentWidgets(i) &&
              !ne.isChildOfOverlayWidgets(i)
            );
          }
          createMouseTarget(e, t, i, n) {
            const r = new re(this._context, this._viewHelper, e),
              s = new se(r, t, i, n);
            try {
              return le._createMouseTarget(r, s, !1);
            } catch (e) {
              return s.fulfill(0);
            }
          }
          static _createMouseTarget(e, t, i) {
            if (null === t.target) {
              if (i) return t.fulfill(0);
              const n = le._doHitTest(e, t);
              return n.position
                ? le.createMouseTargetFromHitTestPosition(
                    e,
                    t,
                    n.position.lineNumber,
                    n.position.column
                  )
                : this._createMouseTarget(e, t.withTarget(n.hitTarget), !0);
            }
            const n = t;
            let r = null;
            return (
              (r = r || le._hitTestContentWidget(e, n)),
              (r = r || le._hitTestOverlayWidget(e, n)),
              (r = r || le._hitTestMinimap(e, n)),
              (r = r || le._hitTestScrollbarSlider(e, n)),
              (r = r || le._hitTestViewZone(e, n)),
              (r = r || le._hitTestMargin(e, n)),
              (r = r || le._hitTestViewCursor(e, n)),
              (r = r || le._hitTestTextArea(e, n)),
              (r = r || le._hitTestViewLines(e, n, i)),
              (r = r || le._hitTestScrollbar(e, n)),
              r || t.fulfill(0)
            );
          }
          static _hitTestContentWidget(e, t) {
            if (
              ne.isChildOfContentWidgets(t.targetPath) ||
              ne.isChildOfOverflowingContentWidgets(t.targetPath)
            ) {
              const i = e.findAttribute(t.target, 'widgetId');
              return i ? t.fulfill(9, null, null, i) : t.fulfill(0);
            }
            return null;
          }
          static _hitTestOverlayWidget(e, t) {
            if (ne.isChildOfOverlayWidgets(t.targetPath)) {
              const i = e.findAttribute(t.target, 'widgetId');
              return i ? t.fulfill(12, null, null, i) : t.fulfill(0);
            }
            return null;
          }
          static _hitTestViewCursor(e, t) {
            if (t.target) {
              const i = e.lastRenderData.lastViewCursorsRenderData;
              for (const e of i)
                if (t.target === e.domNode) return t.fulfill(6, e.position);
            }
            if (t.isInContentArea) {
              const i = e.lastRenderData.lastViewCursorsRenderData,
                n = t.mouseContentHorizontalOffset,
                r = t.mouseVerticalOffset;
              for (const s of i) {
                if (n < s.contentLeft) continue;
                if (n > s.contentLeft + s.width) continue;
                const i = e.getVerticalOffsetForLineNumber(
                  s.position.lineNumber
                );
                if (i <= r && r <= i + s.height)
                  return t.fulfill(6, s.position);
              }
            }
            return null;
          }
          static _hitTestViewZone(e, t) {
            const i = e.getZoneAtCoord(t.mouseVerticalOffset);
            if (i) {
              const e = t.isInContentArea ? 8 : 5;
              return t.fulfill(e, i.position, null, i);
            }
            return null;
          }
          static _hitTestTextArea(e, t) {
            return ne.isTextArea(t.targetPath)
              ? e.lastRenderData.lastTextareaPosition
                ? t.fulfill(6, e.lastRenderData.lastTextareaPosition)
                : t.fulfill(1, e.lastRenderData.lastTextareaPosition)
              : null;
          }
          static _hitTestMargin(e, t) {
            if (t.isInMarginArea) {
              const i = e.getFullLineRangeAtCoord(t.mouseVerticalOffset),
                n = i.range.getStartPosition();
              let r = Math.abs(t.pos.x - t.editorPos.x);
              const s = {
                isAfterLines: i.isAfterLines,
                glyphMarginLeft: e.layoutInfo.glyphMarginLeft,
                glyphMarginWidth: e.layoutInfo.glyphMarginWidth,
                lineNumbersWidth: e.layoutInfo.lineNumbersWidth,
                offsetX: r,
              };
              return (
                (r -= e.layoutInfo.glyphMarginLeft),
                r <= e.layoutInfo.glyphMarginWidth
                  ? t.fulfill(2, n, i.range, s)
                  : ((r -= e.layoutInfo.glyphMarginWidth),
                    r <= e.layoutInfo.lineNumbersWidth
                      ? t.fulfill(3, n, i.range, s)
                      : ((r -= e.layoutInfo.lineNumbersWidth),
                        t.fulfill(4, n, i.range, s)))
              );
            }
            return null;
          }
          static _hitTestViewLines(e, t, i) {
            if (!ne.isChildOfViewLines(t.targetPath)) return null;
            if (e.isAfterLines(t.mouseVerticalOffset)) {
              const i = e.model.getLineCount(),
                n = e.model.getLineMaxColumn(i);
              return t.fulfill(7, new Q.L(i, n), void 0, oe);
            }
            if (i) {
              if (ne.isStrictChildOfViewLines(t.targetPath)) {
                const i = e.getLineNumberAtVerticalOffset(
                  t.mouseVerticalOffset
                );
                if (0 === e.model.getLineLength(i)) {
                  const n = e.getLineWidth(i),
                    r = ae(t.mouseContentHorizontalOffset - n);
                  return t.fulfill(7, new Q.L(i, 1), void 0, r);
                }
                const n = e.getLineWidth(i);
                if (t.mouseContentHorizontalOffset >= n) {
                  const r = ae(t.mouseContentHorizontalOffset - n),
                    s = new Q.L(i, e.model.getLineMaxColumn(i));
                  return t.fulfill(7, s, void 0, r);
                }
              }
              return t.fulfill(0);
            }
            const n = le._doHitTest(e, t);
            return n.position
              ? le.createMouseTargetFromHitTestPosition(
                  e,
                  t,
                  n.position.lineNumber,
                  n.position.column
                )
              : this._createMouseTarget(e, t.withTarget(n.hitTarget), !0);
          }
          static _hitTestMinimap(e, t) {
            if (ne.isChildOfMinimap(t.targetPath)) {
              const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
                n = e.model.getLineMaxColumn(i);
              return t.fulfill(11, new Q.L(i, n));
            }
            return null;
          }
          static _hitTestScrollbarSlider(e, t) {
            if (
              ne.isChildOfScrollableElement(t.targetPath) &&
              t.target &&
              1 === t.target.nodeType
            ) {
              const i = t.target.className;
              if (i && /\b(slider|scrollbar)\b/.test(i)) {
                const i = e.getLineNumberAtVerticalOffset(
                    t.mouseVerticalOffset
                  ),
                  n = e.model.getLineMaxColumn(i);
                return t.fulfill(11, new Q.L(i, n));
              }
            }
            return null;
          }
          static _hitTestScrollbar(e, t) {
            if (ne.isChildOfScrollableElement(t.targetPath)) {
              const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
                n = e.model.getLineMaxColumn(i);
              return t.fulfill(11, new Q.L(i, n));
            }
            return null;
          }
          getMouseColumn(e, t) {
            const i = this._context.configuration.options,
              n = i.get(117),
              r =
                this._context.viewLayout.getCurrentScrollLeft() +
                t.x -
                e.x -
                n.contentLeft;
            return le._getMouseColumn(
              r,
              i.get(36).typicalHalfwidthCharacterWidth
            );
          }
          static _getMouseColumn(e, t) {
            return e < 0 ? 1 : Math.round(e / t) + 1;
          }
          static createMouseTargetFromHitTestPosition(e, t, i, n) {
            const r = new Q.L(i, n),
              s = e.getLineWidth(i);
            if (t.mouseContentHorizontalOffset > s) {
              if (b.un && 1 === r.column) {
                const n = ae(t.mouseContentHorizontalOffset - s);
                return t.fulfill(
                  7,
                  new Q.L(i, e.model.getLineMaxColumn(i)),
                  void 0,
                  n
                );
              }
              const n = ae(t.mouseContentHorizontalOffset - s);
              return t.fulfill(7, r, void 0, n);
            }
            const o = e.visibleRangeForPosition(i, n);
            if (!o) return t.fulfill(0, r);
            const a = o.left;
            if (t.mouseContentHorizontalOffset === a) return t.fulfill(6, r);
            const l = [];
            if ((l.push({ offset: o.left, column: n }), n > 1)) {
              const t = e.visibleRangeForPosition(i, n - 1);
              t && l.push({ offset: t.left, column: n - 1 });
            }
            if (n < e.model.getLineMaxColumn(i)) {
              const t = e.visibleRangeForPosition(i, n + 1);
              t && l.push({ offset: t.left, column: n + 1 });
            }
            l.sort((e, t) => e.offset - t.offset);
            for (let e = 1; e < l.length; e++) {
              const n = l[e - 1],
                s = l[e];
              if (
                n.offset <= t.mouseContentHorizontalOffset &&
                t.mouseContentHorizontalOffset <= s.offset
              ) {
                const e = new X.e(i, n.column, i, s.column);
                return t.fulfill(6, r, e);
              }
            }
            return t.fulfill(6, r);
          }
          static _doHitTestWithCaretRangeFromPoint(e, t) {
            const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
              n =
                e.getVerticalOffsetForLineNumber(i) +
                Math.floor(e.lineHeight / 2);
            let r = t.pos.y + (n - t.mouseVerticalOffset);
            r <= t.editorPos.y && (r = t.editorPos.y + 1),
              r >= t.editorPos.y + e.layoutInfo.height &&
                (r = t.editorPos.y + e.layoutInfo.height - 1);
            const s = new y(t.pos.x, r),
              o = this._actualDoHitTestWithCaretRangeFromPoint(
                e,
                s.toClientCoordinates()
              );
            return o.position
              ? o
              : this._actualDoHitTestWithCaretRangeFromPoint(
                  e,
                  t.pos.toClientCoordinates()
                );
          }
          static _actualDoHitTestWithCaretRangeFromPoint(e, t) {
            const i = r.Ay(e.viewDomNode);
            let n;
            if (
              ((n = i
                ? void 0 === i.caretRangeFromPoint
                  ? (function (e, t, i) {
                      const n = document.createRange();
                      let r = e.elementFromPoint(t, i);
                      if (null !== r) {
                        for (
                          ;
                          r &&
                          r.firstChild &&
                          r.firstChild.nodeType !== r.firstChild.TEXT_NODE;

                        )
                          r = r.lastChild;
                        const e = r.getBoundingClientRect(),
                          i = window
                            .getComputedStyle(r, null)
                            .getPropertyValue('font'),
                          s = r.innerText;
                        let o,
                          a = e.left,
                          l = 0;
                        if (t > e.left + e.width) l = s.length;
                        else {
                          const e = ce.getInstance();
                          for (let n = 0; n < s.length + 1; n++) {
                            if (
                              ((o = e.getCharWidth(s.charAt(n), i) / 2),
                              (a += o),
                              t < a)
                            ) {
                              l = n;
                              break;
                            }
                            a += o;
                          }
                        }
                        n.setStart(r.firstChild, l), n.setEnd(r.firstChild, l);
                      }
                      return n;
                    })(i, t.clientX, t.clientY)
                  : i.caretRangeFromPoint(t.clientX, t.clientY)
                : document.caretRangeFromPoint(t.clientX, t.clientY)),
              !n || !n.startContainer)
            )
              return { position: null, hitTarget: null };
            const s = n.startContainer;
            let o = null;
            if (s.nodeType === s.TEXT_NODE) {
              const t = s.parentNode,
                i = t ? t.parentNode : null,
                r = i ? i.parentNode : null;
              if (
                (r && r.nodeType === r.ELEMENT_NODE ? r.className : null) ===
                K.CLASS_NAME
              )
                return {
                  position: e.getPositionFromDOMInfo(t, n.startOffset),
                  hitTarget: null,
                };
              o = s.parentNode;
            } else if (s.nodeType === s.ELEMENT_NODE) {
              const t = s.parentNode,
                i = t ? t.parentNode : null;
              if (
                (i && i.nodeType === i.ELEMENT_NODE ? i.className : null) ===
                K.CLASS_NAME
              )
                return {
                  position: e.getPositionFromDOMInfo(s, s.textContent.length),
                  hitTarget: null,
                };
              o = s;
            }
            return { position: null, hitTarget: o };
          }
          static _doHitTestWithCaretPositionFromPoint(e, t) {
            const i = document.caretPositionFromPoint(t.clientX, t.clientY);
            if (i.offsetNode.nodeType === i.offsetNode.TEXT_NODE) {
              const t = i.offsetNode.parentNode,
                n = t ? t.parentNode : null,
                r = n ? n.parentNode : null;
              return (r && r.nodeType === r.ELEMENT_NODE
                ? r.className
                : null) === K.CLASS_NAME
                ? {
                    position: e.getPositionFromDOMInfo(
                      i.offsetNode.parentNode,
                      i.offset
                    ),
                    hitTarget: null,
                  }
                : { position: null, hitTarget: i.offsetNode.parentNode };
            }
            if (i.offsetNode.nodeType === i.offsetNode.ELEMENT_NODE) {
              const t = i.offsetNode.parentNode;
              if (
                (t && t.nodeType === t.ELEMENT_NODE ? t.className : null) ===
                K.CLASS_NAME
              ) {
                const t =
                  i.offsetNode.childNodes[
                    Math.min(i.offset, i.offsetNode.childNodes.length - 1)
                  ];
                if (t)
                  return {
                    position: e.getPositionFromDOMInfo(t, 0),
                    hitTarget: null,
                  };
              }
            }
            return { position: null, hitTarget: i.offsetNode };
          }
          static _doHitTestWithMoveToPoint(e, t) {
            let i = null,
              n = null;
            const r = document.body.createTextRange();
            try {
              r.moveToPoint(t.clientX, t.clientY);
            } catch (e) {
              return { position: null, hitTarget: null };
            }
            r.collapse(!0);
            const s = r ? r.parentElement() : null,
              o = s ? s.parentNode : null,
              a = o ? o.parentNode : null;
            if (
              (a && a.nodeType === a.ELEMENT_NODE ? a.className : '') ===
              K.CLASS_NAME
            ) {
              const t = r.duplicate();
              t.moveToElementText(s),
                t.setEndPoint('EndToStart', r),
                (i = e.getPositionFromDOMInfo(s, t.text.length)),
                t.moveToElementText(e.viewDomNode);
            } else n = s;
            return (
              r.moveToElementText(e.viewDomNode), { position: i, hitTarget: n }
            );
          }
          static _doHitTest(e, t) {
            return 'function' == typeof document.caretRangeFromPoint
              ? this._doHitTestWithCaretRangeFromPoint(e, t)
              : document.caretPositionFromPoint
              ? this._doHitTestWithCaretPositionFromPoint(
                  e,
                  t.pos.toClientCoordinates()
                )
              : document.body.createTextRange
              ? this._doHitTestWithMoveToPoint(e, t.pos.toClientCoordinates())
              : { position: null, hitTarget: null };
          }
        }
        class ce {
          constructor() {
            (this._cache = {}),
              (this._canvas = document.createElement('canvas'));
          }
          static getInstance() {
            return ce._INSTANCE || (ce._INSTANCE = new ce()), ce._INSTANCE;
          }
          getCharWidth(e, t) {
            const i = e + t;
            if (this._cache[i]) return this._cache[i];
            const n = this._canvas.getContext('2d');
            n.font = t;
            const r = n.measureText(e).width;
            return (this._cache[i] = r), r;
          }
        }
        ce._INSTANCE = null;
        var de = i(82334);
        function he(e) {
          return function (t, i) {
            let n = !1;
            return (
              e && (n = e.mouseTargetIsWidget(i)), n || i.preventDefault(), i
            );
          };
        }
        class ue extends D {
          constructor(e, t, i) {
            super(),
              (this._context = e),
              (this.viewController = t),
              (this.viewHelper = i),
              (this.mouseTargetFactory = new le(this._context, i)),
              (this._mouseDownOperation = this._register(
                new ge(
                  this._context,
                  this.viewController,
                  this.viewHelper,
                  (e, t) => this._createMouseTarget(e, t),
                  (e) => this._getMouseColumn(e)
                )
              )),
              (this.lastMouseLeaveTime = -1);
            const n = new x(this.viewHelper.viewDomNode);
            this._register(
              n.onContextMenu(this.viewHelper.viewDomNode, (e) =>
                this._onContextMenu(e, !0)
              )
            ),
              this._register(
                n.onMouseMoveThrottled(
                  this.viewHelper.viewDomNode,
                  (e) => this._onMouseMove(e),
                  he(this.mouseTargetFactory),
                  ue.MOUSE_MOVE_MINIMUM_TIME
                )
              ),
              this._register(
                n.onMouseUp(this.viewHelper.viewDomNode, (e) =>
                  this._onMouseUp(e)
                )
              ),
              this._register(
                n.onMouseLeave(this.viewHelper.viewDomNode, (e) =>
                  this._onMouseLeave(e)
                )
              ),
              this._register(
                n.onMouseDown(this.viewHelper.viewDomNode, (e) =>
                  this._onMouseDown(e)
                )
              ),
              this._register(
                r.nm(
                  this.viewHelper.viewDomNode,
                  r.tw.MOUSE_WHEEL,
                  (e) => {
                    if (
                      (this.viewController.emitMouseWheel(e),
                      !this._context.configuration.options.get(59))
                    )
                      return;
                    const t = new m.q(e);
                    if (t.browserEvent.ctrlKey || t.browserEvent.metaKey) {
                      const e = de.C.getZoomLevel(),
                        i = t.deltaY > 0 ? 1 : -1;
                      de.C.setZoomLevel(e + i),
                        t.preventDefault(),
                        t.stopPropagation();
                    }
                  },
                  { capture: !0, passive: !1 }
                )
              ),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this), super.dispose();
          }
          onCursorStateChanged(e) {
            return this._mouseDownOperation.onCursorStateChanged(e), !1;
          }
          onFocusChanged(e) {
            return !1;
          }
          onScrollChanged(e) {
            return this._mouseDownOperation.onScrollChanged(), !1;
          }
          getTargetAtClientPoint(e, t) {
            const i = new w(e, t).toPageCoordinates(),
              n = S(this.viewHelper.viewDomNode);
            return i.y < n.y ||
              i.y > n.y + n.height ||
              i.x < n.x ||
              i.x > n.x + n.width
              ? null
              : this.mouseTargetFactory.createMouseTarget(
                  this.viewHelper.getLastRenderData(),
                  n,
                  i,
                  null
                );
          }
          _createMouseTarget(e, t) {
            return this.mouseTargetFactory.createMouseTarget(
              this.viewHelper.getLastRenderData(),
              e.editorPos,
              e.pos,
              t ? e.target : null
            );
          }
          _getMouseColumn(e) {
            return this.mouseTargetFactory.getMouseColumn(e.editorPos, e.pos);
          }
          _onContextMenu(e, t) {
            this.viewController.emitContextMenu({
              event: e,
              target: this._createMouseTarget(e, t),
            });
          }
          _onMouseMove(e) {
            this._mouseDownOperation.isActive() ||
              e.timestamp < this.lastMouseLeaveTime ||
              this.viewController.emitMouseMove({
                event: e,
                target: this._createMouseTarget(e, !0),
              });
          }
          _onMouseLeave(e) {
            (this.lastMouseLeaveTime = new Date().getTime()),
              this.viewController.emitMouseLeave({ event: e, target: null });
          }
          _onMouseUp(e) {
            this.viewController.emitMouseUp({
              event: e,
              target: this._createMouseTarget(e, !0),
            });
          }
          _onMouseDown(e) {
            const t = this._createMouseTarget(e, !0),
              i = 6 === t.type || 7 === t.type,
              n = 2 === t.type || 3 === t.type || 4 === t.type,
              r = 3 === t.type,
              s = this._context.configuration.options.get(90),
              o = 8 === t.type || 5 === t.type,
              a = 9 === t.type;
            let l = e.leftButton || e.middleButton;
            f.dz && e.leftButton && e.ctrlKey && (l = !1);
            const c = () => {
              e.preventDefault(), this.viewHelper.focusTextArea();
            };
            if (l && (i || (r && s)))
              c(), this._mouseDownOperation.start(t.type, e);
            else if (n) e.preventDefault();
            else if (o) {
              const i = t.detail;
              this.viewHelper.shouldSuppressMouseDownOnViewZone(i.viewZoneId) &&
                (c(),
                this._mouseDownOperation.start(t.type, e),
                e.preventDefault());
            } else
              a &&
                this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail) &&
                (c(), e.preventDefault());
            this.viewController.emitMouseDown({ event: e, target: t });
          }
        }
        ue.MOUSE_MOVE_MINIMUM_TIME = 100;
        class ge extends a.JT {
          constructor(e, t, i, n, r) {
            super(),
              (this._context = e),
              (this._viewController = t),
              (this._viewHelper = i),
              (this._createMouseTarget = n),
              (this._getMouseColumn = r),
              (this._mouseMoveMonitor = this._register(
                new M(this._viewHelper.viewDomNode)
              )),
              (this._onScrollTimeout = this._register(new _._F())),
              (this._mouseState = new fe()),
              (this._currentSelection = new u.Y(1, 1, 1, 1)),
              (this._isActive = !1),
              (this._lastMouseEvent = null);
          }
          dispose() {
            super.dispose();
          }
          isActive() {
            return this._isActive;
          }
          _onMouseDownThenMove(e) {
            (this._lastMouseEvent = e), this._mouseState.setModifiers(e);
            const t = this._findMousePosition(e, !0);
            t &&
              (this._mouseState.isDragAndDrop
                ? this._viewController.emitMouseDrag({ event: e, target: t })
                : this._dispatchMouse(t, !0));
          }
          start(e, t) {
            (this._lastMouseEvent = t),
              this._mouseState.setStartedOnLineNumbers(3 === e),
              this._mouseState.setStartButtons(t),
              this._mouseState.setModifiers(t);
            const i = this._findMousePosition(t, !0);
            if (!i || !i.position) return;
            this._mouseState.trySetCount(t.detail, i.position),
              (t.detail = this._mouseState.count);
            const n = this._context.configuration.options;
            if (
              !n.get(72) &&
              n.get(25) &&
              !n.get(13) &&
              !this._mouseState.altKey &&
              t.detail < 2 &&
              !this._isActive &&
              !this._currentSelection.isEmpty() &&
              6 === i.type &&
              i.position &&
              this._currentSelection.containsPosition(i.position)
            )
              return (
                (this._mouseState.isDragAndDrop = !0),
                (this._isActive = !0),
                void this._mouseMoveMonitor.startMonitoring(
                  t.target,
                  t.buttons,
                  he(null),
                  (e) => this._onMouseDownThenMove(e),
                  () => {
                    const e = this._findMousePosition(this._lastMouseEvent, !0);
                    this._viewController.emitMouseDrop({
                      event: this._lastMouseEvent,
                      target: e
                        ? this._createMouseTarget(this._lastMouseEvent, !0)
                        : null,
                    }),
                      this._stop();
                  }
                )
              );
            (this._mouseState.isDragAndDrop = !1),
              this._dispatchMouse(i, t.shiftKey),
              this._isActive ||
                ((this._isActive = !0),
                this._mouseMoveMonitor.startMonitoring(
                  t.target,
                  t.buttons,
                  he(null),
                  (e) => this._onMouseDownThenMove(e),
                  () => this._stop()
                ));
          }
          _stop() {
            (this._isActive = !1), this._onScrollTimeout.cancel();
          }
          onScrollChanged() {
            this._isActive &&
              this._onScrollTimeout.setIfNotSet(() => {
                if (!this._lastMouseEvent) return;
                const e = this._findMousePosition(this._lastMouseEvent, !1);
                e &&
                  (this._mouseState.isDragAndDrop ||
                    this._dispatchMouse(e, !0));
              }, 10);
          }
          onCursorStateChanged(e) {
            this._currentSelection = e.selections[0];
          }
          _getPositionOutsideEditor(e) {
            const t = e.editorPos,
              i = this._context.model,
              n = this._context.viewLayout,
              r = this._getMouseColumn(e);
            if (e.posy < t.y) {
              const i = Math.max(n.getCurrentScrollTop() - (t.y - e.posy), 0),
                s = re.getZoneAtCoord(this._context, i);
              if (s) {
                const e = this._helpPositionJumpOverViewZone(s);
                if (e) return new ie(null, 13, r, e);
              }
              const o = n.getLineNumberAtVerticalOffset(i);
              return new ie(null, 13, r, new Q.L(o, 1));
            }
            if (e.posy > t.y + t.height) {
              const s = n.getCurrentScrollTop() + (e.posy - t.y),
                o = re.getZoneAtCoord(this._context, s);
              if (o) {
                const e = this._helpPositionJumpOverViewZone(o);
                if (e) return new ie(null, 13, r, e);
              }
              const a = n.getLineNumberAtVerticalOffset(s);
              return new ie(null, 13, r, new Q.L(a, i.getLineMaxColumn(a)));
            }
            const s = n.getLineNumberAtVerticalOffset(
              n.getCurrentScrollTop() + (e.posy - t.y)
            );
            return e.posx < t.x
              ? new ie(null, 13, r, new Q.L(s, 1))
              : e.posx > t.x + t.width
              ? new ie(null, 13, r, new Q.L(s, i.getLineMaxColumn(s)))
              : null;
          }
          _findMousePosition(e, t) {
            const i = this._getPositionOutsideEditor(e);
            if (i) return i;
            const n = this._createMouseTarget(e, t);
            if (!n.position) return null;
            if (8 === n.type || 5 === n.type) {
              const e = this._helpPositionJumpOverViewZone(n.detail);
              if (e)
                return new ie(
                  n.element,
                  n.type,
                  n.mouseColumn,
                  e,
                  null,
                  n.detail
                );
            }
            return n;
          }
          _helpPositionJumpOverViewZone(e) {
            const t = new Q.L(
                this._currentSelection.selectionStartLineNumber,
                this._currentSelection.selectionStartColumn
              ),
              i = e.positionBefore,
              n = e.positionAfter;
            return i && n ? (i.isBefore(t) ? i : n) : null;
          }
          _dispatchMouse(e, t) {
            e.position &&
              this._viewController.dispatchMouse({
                position: e.position,
                mouseColumn: e.mouseColumn,
                startedOnLineNumbers: this._mouseState.startedOnLineNumbers,
                inSelectionMode: t,
                mouseDownCount: this._mouseState.count,
                altKey: this._mouseState.altKey,
                ctrlKey: this._mouseState.ctrlKey,
                metaKey: this._mouseState.metaKey,
                shiftKey: this._mouseState.shiftKey,
                leftButton: this._mouseState.leftButton,
                middleButton: this._mouseState.middleButton,
              });
          }
        }
        class fe {
          constructor() {
            (this._altKey = !1),
              (this._ctrlKey = !1),
              (this._metaKey = !1),
              (this._shiftKey = !1),
              (this._leftButton = !1),
              (this._middleButton = !1),
              (this._startedOnLineNumbers = !1),
              (this._lastMouseDownPosition = null),
              (this._lastMouseDownPositionEqualCount = 0),
              (this._lastMouseDownCount = 0),
              (this._lastSetMouseDownCountTime = 0),
              (this.isDragAndDrop = !1);
          }
          get altKey() {
            return this._altKey;
          }
          get ctrlKey() {
            return this._ctrlKey;
          }
          get metaKey() {
            return this._metaKey;
          }
          get shiftKey() {
            return this._shiftKey;
          }
          get leftButton() {
            return this._leftButton;
          }
          get middleButton() {
            return this._middleButton;
          }
          get startedOnLineNumbers() {
            return this._startedOnLineNumbers;
          }
          get count() {
            return this._lastMouseDownCount;
          }
          setModifiers(e) {
            (this._altKey = e.altKey),
              (this._ctrlKey = e.ctrlKey),
              (this._metaKey = e.metaKey),
              (this._shiftKey = e.shiftKey);
          }
          setStartButtons(e) {
            (this._leftButton = e.leftButton),
              (this._middleButton = e.middleButton);
          }
          setStartedOnLineNumbers(e) {
            this._startedOnLineNumbers = e;
          }
          trySetCount(e, t) {
            const i = new Date().getTime();
            i - this._lastSetMouseDownCountTime >
              fe.CLEAR_MOUSE_DOWN_COUNT_TIME && (e = 1),
              (this._lastSetMouseDownCountTime = i),
              e > this._lastMouseDownCount + 1 &&
                (e = this._lastMouseDownCount + 1),
              this._lastMouseDownPosition &&
              this._lastMouseDownPosition.equals(t)
                ? this._lastMouseDownPositionEqualCount++
                : (this._lastMouseDownPositionEqualCount = 1),
              (this._lastMouseDownPosition = t),
              (this._lastMouseDownCount = Math.min(
                e,
                this._lastMouseDownPositionEqualCount
              ));
          }
        }
        fe.CLEAR_MOUSE_DOWN_COUNT_TIME = 400;
        var pe = i(10161);
        function me(e, t) {
          const i = {
            translationY: t.translationY,
            translationX: t.translationX,
          };
          return (
            e &&
              ((i.translationY += e.translationY),
              (i.translationX += e.translationX)),
            i
          );
        }
        class _e extends ue {
          constructor(e, t, i) {
            super(e, t, i),
              (this.viewHelper.linesContentDomNode.style.touchAction = 'none'),
              (this._installGestureHandlerTimeout = window.setTimeout(() => {
                if (
                  ((this._installGestureHandlerTimeout = -1), window.MSGesture)
                ) {
                  const e = new MSGesture(),
                    t = new MSGesture();
                  (e.target = this.viewHelper.linesContentDomNode),
                    (t.target = this.viewHelper.linesContentDomNode),
                    this.viewHelper.linesContentDomNode.addEventListener(
                      'pointerdown',
                      (i) => {
                        const n = i.pointerType;
                        'mouse' !== n
                          ? 'touch' === n
                            ? ((this._lastPointerType = 'touch'),
                              e.addPointer(i.pointerId))
                            : ((this._lastPointerType = 'pen'),
                              t.addPointer(i.pointerId))
                          : (this._lastPointerType = 'mouse');
                      }
                    ),
                    this._register(
                      r.Y_(
                        this.viewHelper.linesContentDomNode,
                        'MSGestureChange',
                        (e) => this._onGestureChange(e),
                        me
                      )
                    ),
                    this._register(
                      r.nm(
                        this.viewHelper.linesContentDomNode,
                        'MSGestureTap',
                        (e) => this._onCaptureGestureTap(e),
                        !0
                      )
                    );
                }
              }, 100)),
              (this._lastPointerType = 'mouse');
          }
          _onMouseDown(e) {
            'mouse' === this._lastPointerType && super._onMouseDown(e);
          }
          _onCaptureGestureTap(e) {
            const t = new k(e, this.viewHelper.viewDomNode),
              i = this._createMouseTarget(t, !1);
            i.position && this.viewController.moveTo(i.position),
              t.browserEvent.fromElement
                ? (t.preventDefault(), this.viewHelper.focusTextArea())
                : setTimeout(() => {
                    this.viewHelper.focusTextArea();
                  });
          }
          _onGestureChange(e) {
            this._context.model.deltaScrollNow(
              -e.translationX,
              -e.translationY
            );
          }
          dispose() {
            window.clearTimeout(this._installGestureHandlerTimeout),
              super.dispose();
          }
        }
        class be extends ue {
          constructor(e, t, i) {
            super(e, t, i),
              this._register(
                p.o.addTarget(this.viewHelper.linesContentDomNode)
              ),
              this._register(
                r.nm(this.viewHelper.linesContentDomNode, p.t.Tap, (e) =>
                  this.onTap(e)
                )
              ),
              this._register(
                r.nm(this.viewHelper.linesContentDomNode, p.t.Change, (e) =>
                  this.onChange(e)
                )
              ),
              this._register(
                r.nm(
                  this.viewHelper.linesContentDomNode,
                  p.t.Contextmenu,
                  (e) =>
                    this._onContextMenu(
                      new k(e, this.viewHelper.viewDomNode),
                      !1
                    )
                )
              ),
              (this._lastPointerType = 'mouse'),
              this._register(
                r.nm(
                  this.viewHelper.linesContentDomNode,
                  'pointerdown',
                  (e) => {
                    const t = e.pointerType;
                    this._lastPointerType =
                      'mouse' !== t
                        ? 'touch' === t
                          ? 'touch'
                          : 'pen'
                        : 'mouse';
                  }
                )
              );
            const n = new L(this.viewHelper.viewDomNode);
            this._register(
              n.onPointerMoveThrottled(
                this.viewHelper.viewDomNode,
                (e) => this._onMouseMove(e),
                he(this.mouseTargetFactory),
                ue.MOUSE_MOVE_MINIMUM_TIME
              )
            ),
              this._register(
                n.onPointerUp(this.viewHelper.viewDomNode, (e) =>
                  this._onMouseUp(e)
                )
              ),
              this._register(
                n.onPointerLeave(this.viewHelper.viewDomNode, (e) =>
                  this._onMouseLeave(e)
                )
              ),
              this._register(
                n.onPointerDown(this.viewHelper.viewDomNode, (e) =>
                  this._onMouseDown(e)
                )
              );
          }
          onTap(e) {
            if (
              !e.initialTarget ||
              !this.viewHelper.linesContentDomNode.contains(e.initialTarget)
            )
              return;
            e.preventDefault(), this.viewHelper.focusTextArea();
            const t = this._createMouseTarget(
              new k(e, this.viewHelper.viewDomNode),
              !1
            );
            t.position &&
              this.viewController.dispatchMouse({
                position: t.position,
                mouseColumn: t.position.column,
                startedOnLineNumbers: !1,
                mouseDownCount: e.tapCount,
                inSelectionMode: !1,
                altKey: !1,
                ctrlKey: !1,
                metaKey: !1,
                shiftKey: !1,
                leftButton: !1,
                middleButton: !1,
              });
          }
          onChange(e) {
            'touch' === this._lastPointerType &&
              this._context.model.deltaScrollNow(
                -e.translationX,
                -e.translationY
              );
          }
          _onMouseDown(e) {
            (e.target &&
              this.viewHelper.linesContentDomNode.contains(e.target) &&
              'touch' === this._lastPointerType) ||
              super._onMouseDown(e);
          }
        }
        class ve extends ue {
          constructor(e, t, i) {
            super(e, t, i),
              this._register(
                p.o.addTarget(this.viewHelper.linesContentDomNode)
              ),
              this._register(
                r.nm(this.viewHelper.linesContentDomNode, p.t.Tap, (e) =>
                  this.onTap(e)
                )
              ),
              this._register(
                r.nm(this.viewHelper.linesContentDomNode, p.t.Change, (e) =>
                  this.onChange(e)
                )
              ),
              this._register(
                r.nm(
                  this.viewHelper.linesContentDomNode,
                  p.t.Contextmenu,
                  (e) =>
                    this._onContextMenu(
                      new k(e, this.viewHelper.viewDomNode),
                      !1
                    )
                )
              );
          }
          onTap(e) {
            e.preventDefault(), this.viewHelper.focusTextArea();
            const t = this._createMouseTarget(
              new k(e, this.viewHelper.viewDomNode),
              !1
            );
            t.position && this.viewController.moveTo(t.position);
          }
          onChange(e) {
            this._context.model.deltaScrollNow(
              -e.translationX,
              -e.translationY
            );
          }
        }
        class ye extends a.JT {
          constructor(e, t, i) {
            super(),
              f.gn && pe.D.pointerEvents
                ? (this.handler = this._register(new be(e, t, i)))
                : window.TouchEvent
                ? (this.handler = this._register(new ve(e, t, i)))
                : window.navigator.pointerEnabled || window.PointerEvent
                ? (this.handler = this._register(new _e(e, t, i)))
                : (this.handler = this._register(new ue(e, t, i)));
          }
          getTargetAtClientPoint(e, t) {
            return this.handler.getTargetAtClientPoint(e, t);
          }
        }
        var we = i(97295),
          Ce = i(35715),
          Se = i(15887);
        class ke extends D {}
        var xe = i(27869);
        class Le extends ke {
          constructor(e) {
            super(),
              (this._context = e),
              this._readConfig(),
              (this._lastCursorModelPosition = new Q.L(1, 1)),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          _readConfig() {
            const e = this._context.configuration.options;
            this._lineHeight = e.get(51);
            const t = e.get(52);
            (this._renderLineNumbers = t.renderType),
              (this._renderCustomLineNumbers = t.renderFn),
              (this._renderFinalNewline = e.get(76));
            const i = e.get(117);
            (this._lineNumbersLeft = i.lineNumbersLeft),
              (this._lineNumbersWidth = i.lineNumbersWidth);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            return this._readConfig(), !0;
          }
          onCursorStateChanged(e) {
            const t = e.selections[0].getPosition();
            return (
              (this._lastCursorModelPosition = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                t
              )),
              2 === this._renderLineNumbers || 3 === this._renderLineNumbers
            );
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          _getLineRenderLineNumber(e) {
            const t = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
              new Q.L(e, 1)
            );
            if (1 !== t.column) return '';
            const i = t.lineNumber;
            if (this._renderCustomLineNumbers)
              return this._renderCustomLineNumbers(i);
            if (2 === this._renderLineNumbers) {
              const e = Math.abs(this._lastCursorModelPosition.lineNumber - i);
              return 0 === e
                ? '<span class="relative-current-line-number">' + i + '</span>'
                : String(e);
            }
            return 3 === this._renderLineNumbers
              ? this._lastCursorModelPosition.lineNumber === i || i % 10 == 0
                ? String(i)
                : ''
              : String(i);
          }
          prepareRender(e) {
            if (0 === this._renderLineNumbers)
              return void (this._renderResult = null);
            const t = f.IJ
                ? this._lineHeight % 2 == 0
                  ? ' lh-even'
                  : ' lh-odd'
                : '',
              i = e.visibleRange.startLineNumber,
              n = e.visibleRange.endLineNumber,
              r =
                '<div class="' +
                Le.CLASS_NAME +
                t +
                '" style="left:' +
                this._lineNumbersLeft.toString() +
                'px;width:' +
                this._lineNumbersWidth.toString() +
                'px;">',
              s = this._context.model.getLineCount(),
              o = [];
            for (let e = i; e <= n; e++) {
              const t = e - i;
              if (
                !this._renderFinalNewline &&
                e === s &&
                0 === this._context.model.getLineLength(e)
              ) {
                o[t] = '';
                continue;
              }
              const n = this._getLineRenderLineNumber(e);
              o[t] = n ? r + n + '</div>' : '';
            }
            this._renderResult = o;
          }
          render(e, t) {
            if (!this._renderResult) return '';
            const i = t - e;
            return i < 0 || i >= this._renderResult.length
              ? ''
              : this._renderResult[i];
          }
        }
        (Le.CLASS_NAME = 'line-numbers'),
          (0, Y.Ic)((e, t) => {
            const i = e.getColor(xe.hw);
            i && t.addRule(`.monaco-editor .line-numbers { color: ${i}; }`);
            const n = e.getColor(xe.DD);
            n &&
              t.addRule(
                `.monaco-editor .current-line ~ .line-numbers { color: ${n}; }`
              );
          });
        class Me extends N {
          constructor(e) {
            super(e);
            const t = this._context.configuration.options,
              i = t.get(117);
            (this._canUseLayerHinting = !t.get(23)),
              (this._contentLeft = i.contentLeft),
              (this._glyphMarginLeft = i.glyphMarginLeft),
              (this._glyphMarginWidth = i.glyphMarginWidth),
              (this._domNode = (0, g.X)(document.createElement('div'))),
              this._domNode.setClassName(Me.OUTER_CLASS_NAME),
              this._domNode.setPosition('absolute'),
              this._domNode.setAttribute('role', 'presentation'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              (this._glyphMarginBackgroundDomNode = (0, g.X)(
                document.createElement('div')
              )),
              this._glyphMarginBackgroundDomNode.setClassName(Me.CLASS_NAME),
              this._domNode.appendChild(this._glyphMarginBackgroundDomNode);
          }
          dispose() {
            super.dispose();
          }
          getDomNode() {
            return this._domNode;
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(117);
            return (
              (this._canUseLayerHinting = !t.get(23)),
              (this._contentLeft = i.contentLeft),
              (this._glyphMarginLeft = i.glyphMarginLeft),
              (this._glyphMarginWidth = i.glyphMarginWidth),
              !0
            );
          }
          onScrollChanged(e) {
            return super.onScrollChanged(e) || e.scrollTopChanged;
          }
          prepareRender(e) {}
          render(e) {
            this._domNode.setLayerHinting(this._canUseLayerHinting),
              this._domNode.setContain('strict');
            const t = e.scrollTop - e.bigNumbersDelta;
            this._domNode.setTop(-t);
            const i = Math.min(e.scrollHeight, 1e6);
            this._domNode.setHeight(i),
              this._domNode.setWidth(this._contentLeft),
              this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),
              this._glyphMarginBackgroundDomNode.setWidth(
                this._glyphMarginWidth
              ),
              this._glyphMarginBackgroundDomNode.setHeight(i);
          }
        }
        (Me.CLASS_NAME = 'glyph-margin'), (Me.OUTER_CLASS_NAME = 'margin');
        var De = i(59410),
          Ne = i(96542);
        class Ee {
          constructor(e, t, i) {
            (this.top = e), (this.left = t), (this.width = i);
          }
          setWidth(e) {
            return new Ee(this.top, this.left, e);
          }
        }
        const Te = b.un || b.vU;
        class Ie extends N {
          constructor(e, t, i) {
            super(e),
              (this._primaryCursorPosition = new Q.L(1, 1)),
              (this._primaryCursorVisibleRange = null),
              (this._viewController = t),
              (this._viewHelper = i),
              (this._scrollLeft = 0),
              (this._scrollTop = 0);
            const r = this._context.configuration.options,
              s = r.get(117);
            this._setAccessibilityOptions(r),
              (this._contentLeft = s.contentLeft),
              (this._contentWidth = s.contentWidth),
              (this._contentHeight = s.height),
              (this._fontInfo = r.get(36)),
              (this._lineHeight = r.get(51)),
              (this._emptySelectionClipboard = r.get(26)),
              (this._copyWithSyntaxHighlighting = r.get(16)),
              (this._visibleTextArea = null),
              (this._selections = [new u.Y(1, 1, 1, 1)]),
              (this._modelSelections = [new u.Y(1, 1, 1, 1)]),
              (this._lastRenderPosition = null),
              (this.textArea = (0, g.X)(document.createElement('textarea'))),
              E.write(this.textArea, 6),
              this.textArea.setClassName(`inputarea ${Ne.S}`),
              this.textArea.setAttribute('wrap', 'off'),
              this.textArea.setAttribute('autocorrect', 'off'),
              this.textArea.setAttribute('autocapitalize', 'off'),
              this.textArea.setAttribute('autocomplete', 'off'),
              this.textArea.setAttribute('spellcheck', 'false'),
              this.textArea.setAttribute('aria-label', this._getAriaLabel(r)),
              this.textArea.setAttribute('tabindex', String(r.get(102))),
              this.textArea.setAttribute('role', 'textbox'),
              this.textArea.setAttribute(
                'aria-roledescription',
                n.N('editor', 'editor')
              ),
              this.textArea.setAttribute('aria-multiline', 'true'),
              this.textArea.setAttribute('aria-haspopup', 'false'),
              this.textArea.setAttribute('aria-autocomplete', 'both'),
              f.$L &&
                r.get(72) &&
                this.textArea.setAttribute('readonly', 'true'),
              (this.textAreaCover = (0, g.X)(document.createElement('div'))),
              this.textAreaCover.setPosition('absolute');
            const o = {
                getLineCount: () => this._context.model.getLineCount(),
                getLineMaxColumn: (e) =>
                  this._context.model.getLineMaxColumn(e),
                getValueInRange: (e, t) =>
                  this._context.model.getValueInRange(e, t),
              },
              a = {
                getDataToCopy: (e) => {
                  const t = this._context.model.getPlainTextToCopy(
                      this._modelSelections,
                      this._emptySelectionClipboard,
                      f.ED
                    ),
                    i = this._context.model.getEOL(),
                    n =
                      this._emptySelectionClipboard &&
                      1 === this._modelSelections.length &&
                      this._modelSelections[0].isEmpty(),
                    r = Array.isArray(t) ? t : null,
                    s = Array.isArray(t) ? t.join(i) : t;
                  let o,
                    a = null;
                  if (
                    e &&
                    (Ce.RA.forceCopyWithSyntaxHighlighting ||
                      (this._copyWithSyntaxHighlighting && s.length < 65536))
                  ) {
                    const e = this._context.model.getRichTextToCopy(
                      this._modelSelections,
                      this._emptySelectionClipboard
                    );
                    e && ((o = e.html), (a = e.mode));
                  }
                  return {
                    isFromEmptySelection: n,
                    multicursorText: r,
                    text: s,
                    html: o,
                    mode: a,
                  };
                },
                getScreenReaderContent: (e) => {
                  if (1 === this._accessibilitySupport) {
                    if (f.dz) {
                      const e = this._selections[0];
                      if (e.isEmpty()) {
                        const t = e.getStartPosition();
                        let i = this._getWordBeforePosition(t);
                        if (
                          (0 === i.length &&
                            (i = this._getCharacterBeforePosition(t)),
                          i.length > 0)
                        )
                          return new Se.u(i, i.length, i.length, t, t);
                      }
                    }
                    return Se.u.EMPTY;
                  }
                  return Se.e.fromEditorSelection(
                    e,
                    o,
                    this._selections[0],
                    this._accessibilityPageSize,
                    0 === this._accessibilitySupport
                  );
                },
                deduceModelPosition: (e, t, i) =>
                  this._context.model.deduceModelPositionRelativeToViewPosition(
                    e,
                    t,
                    i
                  ),
              };
            (this._textAreaInput = this._register(new Ce.Fz(a, this.textArea))),
              this._register(
                this._textAreaInput.onKeyDown((e) => {
                  this._viewController.emitKeyDown(e);
                })
              ),
              this._register(
                this._textAreaInput.onKeyUp((e) => {
                  this._viewController.emitKeyUp(e);
                })
              ),
              this._register(
                this._textAreaInput.onPaste((e) => {
                  let t = !1,
                    i = null,
                    n = null;
                  e.metadata &&
                    ((t =
                      this._emptySelectionClipboard &&
                      !!e.metadata.isFromEmptySelection),
                    (i =
                      void 0 !== e.metadata.multicursorText
                        ? e.metadata.multicursorText
                        : null),
                    (n = e.metadata.mode)),
                    this._viewController.paste(e.text, t, i, n);
                })
              ),
              this._register(
                this._textAreaInput.onCut(() => {
                  this._viewController.cut();
                })
              ),
              this._register(
                this._textAreaInput.onType((e) => {
                  e.replaceCharCnt
                    ? this._viewController.replacePreviousChar(
                        e.text,
                        e.replaceCharCnt
                      )
                    : this._viewController.type(e.text);
                })
              ),
              this._register(
                this._textAreaInput.onSelectionChangeRequest((e) => {
                  this._viewController.setSelection(e);
                })
              ),
              this._register(
                this._textAreaInput.onCompositionStart((e) => {
                  const t = this._selections[0].startLineNumber,
                    i =
                      this._selections[0].startColumn -
                      (e.moveOneCharacterLeft ? 1 : 0);
                  this._context.model.revealRange(
                    'keyboard',
                    !0,
                    new X.e(t, i, t, i),
                    0,
                    1
                  );
                  const n = this._viewHelper.visibleRangeForPositionRelativeToEditor(
                    t,
                    i
                  );
                  n &&
                    ((this._visibleTextArea = new Ee(
                      this._context.viewLayout.getVerticalOffsetForLineNumber(
                        t
                      ),
                      n.left,
                      Te ? 0 : 1
                    )),
                    this._render()),
                    this.textArea.setClassName(`inputarea ${Ne.S} ime-input`),
                    this._viewController.compositionStart();
                })
              ),
              this._register(
                this._textAreaInput.onCompositionUpdate((e) => {
                  b.un
                    ? (this._visibleTextArea = this._visibleTextArea.setWidth(
                        0
                      ))
                    : (this._visibleTextArea = this._visibleTextArea.setWidth(
                        (function (e, t) {
                          const i = document
                            .createElement('canvas')
                            .getContext('2d');
                          var n;
                          i.font =
                            ('normal',
                            `normal normal ${(n = t).fontWeight} ${
                              n.fontSize
                            }px / ${n.lineHeight}px ${n.fontFamily}`);
                          const r = i.measureText(e);
                          return b.vU ? r.width + 2 : r.width;
                        })(e.data, this._fontInfo)
                      )),
                    this._render();
                })
              ),
              this._register(
                this._textAreaInput.onCompositionEnd(() => {
                  (this._visibleTextArea = null),
                    this._render(),
                    this.textArea.setClassName(`inputarea ${Ne.S}`),
                    this._viewController.compositionEnd();
                })
              ),
              this._register(
                this._textAreaInput.onFocus(() => {
                  this._context.model.setHasFocus(!0);
                })
              ),
              this._register(
                this._textAreaInput.onBlur(() => {
                  this._context.model.setHasFocus(!1);
                })
              );
          }
          dispose() {
            super.dispose();
          }
          _getWordBeforePosition(e) {
            const t = this._context.model.getLineContent(e.lineNumber),
              i = (0, De.u)(this._context.configuration.options.get(105));
            let n = e.column,
              r = 0;
            for (; n > 1; ) {
              const s = t.charCodeAt(n - 2);
              if (0 !== i.get(s) || r > 50)
                return t.substring(n - 1, e.column - 1);
              r++, n--;
            }
            return t.substring(0, e.column - 1);
          }
          _getCharacterBeforePosition(e) {
            if (e.column > 1) {
              const t = this._context.model
                .getLineContent(e.lineNumber)
                .charAt(e.column - 2);
              if (!we.ZG(t.charCodeAt(0))) return t;
            }
            return '';
          }
          _getAriaLabel(e) {
            return 1 === e.get(2)
              ? n.N(
                  'accessibilityOffAriaLabel',
                  'The editor is not accessible at this time. Press {0} for options.',
                  f.IJ ? 'Shift+Alt+F1' : 'Alt+F1'
                )
              : e.get(4);
          }
          _setAccessibilityOptions(e) {
            this._accessibilitySupport = e.get(2);
            const t = e.get(3);
            2 === this._accessibilitySupport &&
            t === H.BH.accessibilityPageSize.defaultValue
              ? (this._accessibilityPageSize = 100)
              : (this._accessibilityPageSize = t);
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(117);
            return (
              this._setAccessibilityOptions(t),
              (this._contentLeft = i.contentLeft),
              (this._contentWidth = i.contentWidth),
              (this._contentHeight = i.height),
              (this._fontInfo = t.get(36)),
              (this._lineHeight = t.get(51)),
              (this._emptySelectionClipboard = t.get(26)),
              (this._copyWithSyntaxHighlighting = t.get(16)),
              this.textArea.setAttribute('aria-label', this._getAriaLabel(t)),
              this.textArea.setAttribute('tabindex', String(t.get(102))),
              f.$L &&
                e.hasChanged(72) &&
                (t.get(72)
                  ? this.textArea.setAttribute('readonly', 'true')
                  : this.textArea.removeAttribute('readonly')),
              e.hasChanged(2) &&
                this._textAreaInput.writeScreenReaderContent(
                  'strategy changed'
                ),
              !0
            );
          }
          onCursorStateChanged(e) {
            return (
              (this._selections = e.selections.slice(0)),
              (this._modelSelections = e.modelSelections.slice(0)),
              this._textAreaInput.writeScreenReaderContent('selection changed'),
              !0
            );
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return (
              (this._scrollLeft = e.scrollLeft),
              (this._scrollTop = e.scrollTop),
              !0
            );
          }
          onZonesChanged(e) {
            return !0;
          }
          isFocused() {
            return this._textAreaInput.isFocused();
          }
          focusTextArea() {
            this._textAreaInput.focusTextArea();
          }
          getLastRenderData() {
            return this._lastRenderPosition;
          }
          setAriaOptions(e) {
            e.activeDescendant
              ? (this.textArea.setAttribute('aria-haspopup', 'true'),
                this.textArea.setAttribute('aria-autocomplete', 'list'),
                this.textArea.setAttribute(
                  'aria-activedescendant',
                  e.activeDescendant
                ))
              : (this.textArea.setAttribute('aria-haspopup', 'false'),
                this.textArea.setAttribute('aria-autocomplete', 'both'),
                this.textArea.removeAttribute('aria-activedescendant')),
              e.role && this.textArea.setAttribute('role', e.role);
          }
          prepareRender(e) {
            (this._primaryCursorPosition = new Q.L(
              this._selections[0].positionLineNumber,
              this._selections[0].positionColumn
            )),
              (this._primaryCursorVisibleRange = e.visibleRangeForPosition(
                this._primaryCursorPosition
              ));
          }
          render(e) {
            this._textAreaInput.writeScreenReaderContent('render'),
              this._render();
          }
          _render() {
            if (this._visibleTextArea)
              return void this._renderInsideEditor(
                null,
                this._visibleTextArea.top - this._scrollTop,
                this._contentLeft +
                  this._visibleTextArea.left -
                  this._scrollLeft,
                this._visibleTextArea.width,
                this._lineHeight
              );
            if (!this._primaryCursorVisibleRange)
              return void this._renderAtTopLeft();
            const e =
              this._contentLeft +
              this._primaryCursorVisibleRange.left -
              this._scrollLeft;
            if (
              e < this._contentLeft ||
              e > this._contentLeft + this._contentWidth
            )
              return void this._renderAtTopLeft();
            const t =
              this._context.viewLayout.getVerticalOffsetForLineNumber(
                this._selections[0].positionLineNumber
              ) - this._scrollTop;
            t < 0 || t > this._contentHeight
              ? this._renderAtTopLeft()
              : f.dz
              ? this._renderInsideEditor(
                  this._primaryCursorPosition,
                  t,
                  e,
                  Te ? 0 : 1,
                  this._lineHeight
                )
              : this._renderInsideEditor(
                  this._primaryCursorPosition,
                  t,
                  e,
                  Te ? 0 : 1,
                  Te ? 0 : 1
                );
          }
          _renderInsideEditor(e, t, i, n, r) {
            this._lastRenderPosition = e;
            const s = this.textArea,
              o = this.textAreaCover;
            c.V.applyFontInfo(s, this._fontInfo),
              s.setTop(t),
              s.setLeft(i),
              s.setWidth(n),
              s.setHeight(r),
              o.setTop(0),
              o.setLeft(0),
              o.setWidth(0),
              o.setHeight(0);
          }
          _renderAtTopLeft() {
            this._lastRenderPosition = null;
            const e = this.textArea,
              t = this.textAreaCover;
            if (
              (c.V.applyFontInfo(e, this._fontInfo),
              e.setTop(0),
              e.setLeft(0),
              t.setTop(0),
              t.setLeft(0),
              Te)
            )
              return (
                e.setWidth(0),
                e.setHeight(0),
                t.setWidth(0),
                void t.setHeight(0)
              );
            e.setWidth(1), e.setHeight(1), t.setWidth(1), t.setHeight(1);
            const i = this._context.configuration.options;
            i.get(42)
              ? t.setClassName(
                  'monaco-editor-background textAreaCover ' +
                    Me.OUTER_CLASS_NAME
                )
              : 0 !== i.get(52).renderType
              ? t.setClassName(
                  'monaco-editor-background textAreaCover ' + Le.CLASS_NAME
                )
              : t.setClassName('monaco-editor-background textAreaCover');
          }
        }
        var Oe = i(18728);
        class Ae {
          constructor(e, t, i, n) {
            (this.configuration = e),
              (this.viewModel = t),
              (this.userInputEvents = i),
              (this.commandDelegate = n);
          }
          paste(e, t, i, n) {
            this.commandDelegate.paste(e, t, i, n);
          }
          type(e) {
            this.commandDelegate.type(e);
          }
          replacePreviousChar(e, t) {
            this.commandDelegate.replacePreviousChar(e, t);
          }
          compositionStart() {
            this.commandDelegate.startComposition();
          }
          compositionEnd() {
            this.commandDelegate.endComposition();
          }
          cut() {
            this.commandDelegate.cut();
          }
          setSelection(e) {
            Oe.CoreNavigationCommands.SetSelection.runCoreEditorCommand(
              this.viewModel,
              { source: 'keyboard', selection: e }
            );
          }
          _validateViewColumn(e) {
            const t = this.viewModel.getLineMinColumn(e.lineNumber);
            return e.column < t ? new Q.L(e.lineNumber, t) : e;
          }
          _hasMulticursorModifier(e) {
            switch (this.configuration.options.get(61)) {
              case 'altKey':
                return e.altKey;
              case 'ctrlKey':
                return e.ctrlKey;
              case 'metaKey':
                return e.metaKey;
              default:
                return !1;
            }
          }
          _hasNonMulticursorModifier(e) {
            switch (this.configuration.options.get(61)) {
              case 'altKey':
                return e.ctrlKey || e.metaKey;
              case 'ctrlKey':
                return e.altKey || e.metaKey;
              case 'metaKey':
                return e.ctrlKey || e.altKey;
              default:
                return !1;
            }
          }
          dispatchMouse(e) {
            const t = this.configuration.options,
              i = f.IJ && t.get(88),
              n = t.get(13);
            e.middleButton && !i
              ? this._columnSelect(e.position, e.mouseColumn, e.inSelectionMode)
              : e.startedOnLineNumbers
              ? this._hasMulticursorModifier(e)
                ? e.inSelectionMode
                  ? this._lastCursorLineSelect(e.position)
                  : this._createCursor(e.position, !0)
                : e.inSelectionMode
                ? this._lineSelectDrag(e.position)
                : this._lineSelect(e.position)
              : e.mouseDownCount >= 4
              ? this._selectAll()
              : 3 === e.mouseDownCount
              ? this._hasMulticursorModifier(e)
                ? e.inSelectionMode
                  ? this._lastCursorLineSelectDrag(e.position)
                  : this._lastCursorLineSelect(e.position)
                : e.inSelectionMode
                ? this._lineSelectDrag(e.position)
                : this._lineSelect(e.position)
              : 2 === e.mouseDownCount
              ? this._hasMulticursorModifier(e)
                ? this._lastCursorWordSelect(e.position)
                : e.inSelectionMode
                ? this._wordSelectDrag(e.position)
                : this._wordSelect(e.position)
              : this._hasMulticursorModifier(e)
              ? this._hasNonMulticursorModifier(e) ||
                (e.shiftKey
                  ? this._columnSelect(e.position, e.mouseColumn, !0)
                  : e.inSelectionMode
                  ? this._lastCursorMoveToSelect(e.position)
                  : this._createCursor(e.position, !1))
              : e.inSelectionMode
              ? e.altKey || n
                ? this._columnSelect(e.position, e.mouseColumn, !0)
                : this._moveToSelect(e.position)
              : this.moveTo(e.position);
          }
          _usualArgs(e) {
            return (
              (e = this._validateViewColumn(e)),
              {
                source: 'mouse',
                position: this._convertViewToModelPosition(e),
                viewPosition: e,
              }
            );
          }
          moveTo(e) {
            Oe.CoreNavigationCommands.MoveTo.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _moveToSelect(e) {
            Oe.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _columnSelect(e, t, i) {
            (e = this._validateViewColumn(e)),
              Oe.CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(
                this.viewModel,
                {
                  source: 'mouse',
                  position: this._convertViewToModelPosition(e),
                  viewPosition: e,
                  mouseColumn: t,
                  doColumnSelect: i,
                }
              );
          }
          _createCursor(e, t) {
            (e = this._validateViewColumn(e)),
              Oe.CoreNavigationCommands.CreateCursor.runCoreEditorCommand(
                this.viewModel,
                {
                  source: 'mouse',
                  position: this._convertViewToModelPosition(e),
                  viewPosition: e,
                  wholeLine: t,
                }
              );
          }
          _lastCursorMoveToSelect(e) {
            Oe.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _wordSelect(e) {
            Oe.CoreNavigationCommands.WordSelect.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _wordSelectDrag(e) {
            Oe.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _lastCursorWordSelect(e) {
            Oe.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _lineSelect(e) {
            Oe.CoreNavigationCommands.LineSelect.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _lineSelectDrag(e) {
            Oe.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _lastCursorLineSelect(e) {
            Oe.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _lastCursorLineSelectDrag(e) {
            Oe.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(
              this.viewModel,
              this._usualArgs(e)
            );
          }
          _selectAll() {
            Oe.CoreNavigationCommands.SelectAll.runCoreEditorCommand(
              this.viewModel,
              { source: 'mouse' }
            );
          }
          _convertViewToModelPosition(e) {
            return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(
              e
            );
          }
          emitKeyDown(e) {
            this.userInputEvents.emitKeyDown(e);
          }
          emitKeyUp(e) {
            this.userInputEvents.emitKeyUp(e);
          }
          emitContextMenu(e) {
            this.userInputEvents.emitContextMenu(e);
          }
          emitMouseMove(e) {
            this.userInputEvents.emitMouseMove(e);
          }
          emitMouseLeave(e) {
            this.userInputEvents.emitMouseLeave(e);
          }
          emitMouseUp(e) {
            this.userInputEvents.emitMouseUp(e);
          }
          emitMouseDown(e) {
            this.userInputEvents.emitMouseDown(e);
          }
          emitMouseDrag(e) {
            this.userInputEvents.emitMouseDrag(e);
          }
          emitMouseDrop(e) {
            this.userInputEvents.emitMouseDrop(e);
          }
          emitMouseWheel(e) {
            this.userInputEvents.emitMouseWheel(e);
          }
        }
        class Re {
          constructor(e) {
            (this.onKeyDown = null),
              (this.onKeyUp = null),
              (this.onContextMenu = null),
              (this.onMouseMove = null),
              (this.onMouseLeave = null),
              (this.onMouseDown = null),
              (this.onMouseUp = null),
              (this.onMouseDrag = null),
              (this.onMouseDrop = null),
              (this.onMouseWheel = null),
              (this._coordinatesConverter = e);
          }
          emitKeyDown(e) {
            this.onKeyDown && this.onKeyDown(e);
          }
          emitKeyUp(e) {
            this.onKeyUp && this.onKeyUp(e);
          }
          emitContextMenu(e) {
            this.onContextMenu &&
              this.onContextMenu(this._convertViewToModelMouseEvent(e));
          }
          emitMouseMove(e) {
            this.onMouseMove &&
              this.onMouseMove(this._convertViewToModelMouseEvent(e));
          }
          emitMouseLeave(e) {
            this.onMouseLeave &&
              this.onMouseLeave(this._convertViewToModelMouseEvent(e));
          }
          emitMouseDown(e) {
            this.onMouseDown &&
              this.onMouseDown(this._convertViewToModelMouseEvent(e));
          }
          emitMouseUp(e) {
            this.onMouseUp &&
              this.onMouseUp(this._convertViewToModelMouseEvent(e));
          }
          emitMouseDrag(e) {
            this.onMouseDrag &&
              this.onMouseDrag(this._convertViewToModelMouseEvent(e));
          }
          emitMouseDrop(e) {
            this.onMouseDrop &&
              this.onMouseDrop(this._convertViewToModelMouseEvent(e));
          }
          emitMouseWheel(e) {
            this.onMouseWheel && this.onMouseWheel(e);
          }
          _convertViewToModelMouseEvent(e) {
            return e.target
              ? {
                  event: e.event,
                  target: this._convertViewToModelMouseTarget(e.target),
                }
              : e;
          }
          _convertViewToModelMouseTarget(e) {
            return Re.convertViewToModelMouseTarget(
              e,
              this._coordinatesConverter
            );
          }
          static convertViewToModelMouseTarget(e, t) {
            return new Pe(
              e.element,
              e.type,
              e.mouseColumn,
              e.position
                ? t.convertViewPositionToModelPosition(e.position)
                : null,
              e.range ? t.convertViewRangeToModelRange(e.range) : null,
              e.detail
            );
          }
        }
        class Pe {
          constructor(e, t, i, n, r, s) {
            (this.element = e),
              (this.type = t),
              (this.mouseColumn = i),
              (this.position = n),
              (this.range = r),
              (this.detail = s);
          }
          toString() {
            return ie.toString(this);
          }
        }
        var Fe = i(50072);
        class Be {
          constructor(e) {
            (this._createLine = e), this._set(1, []);
          }
          flush() {
            this._set(1, []);
          }
          _set(e, t) {
            (this._lines = t), (this._rendLineNumberStart = e);
          }
          _get() {
            return {
              rendLineNumberStart: this._rendLineNumberStart,
              lines: this._lines,
            };
          }
          getStartLineNumber() {
            return this._rendLineNumberStart;
          }
          getEndLineNumber() {
            return this._rendLineNumberStart + this._lines.length - 1;
          }
          getCount() {
            return this._lines.length;
          }
          getLine(e) {
            const t = e - this._rendLineNumberStart;
            if (t < 0 || t >= this._lines.length)
              throw new Error('Illegal value for lineNumber');
            return this._lines[t];
          }
          onLinesDeleted(e, t) {
            if (0 === this.getCount()) return null;
            const i = this.getStartLineNumber(),
              n = this.getEndLineNumber();
            if (t < i) {
              const i = t - e + 1;
              return (this._rendLineNumberStart -= i), null;
            }
            if (e > n) return null;
            let r = 0,
              s = 0;
            for (let o = i; o <= n; o++) {
              const i = o - this._rendLineNumberStart;
              e <= o && o <= t && (0 === s ? ((r = i), (s = 1)) : s++);
            }
            if (e < i) {
              let n = 0;
              (n = t < i ? t - e + 1 : i - e), (this._rendLineNumberStart -= n);
            }
            return this._lines.splice(r, s);
          }
          onLinesChanged(e, t) {
            if (0 === this.getCount()) return !1;
            const i = this.getStartLineNumber(),
              n = this.getEndLineNumber();
            let r = !1;
            for (let s = e; s <= t; s++)
              s >= i &&
                s <= n &&
                (this._lines[s - this._rendLineNumberStart].onContentChanged(),
                (r = !0));
            return r;
          }
          onLinesInserted(e, t) {
            if (0 === this.getCount()) return null;
            const i = t - e + 1,
              n = this.getStartLineNumber(),
              r = this.getEndLineNumber();
            if (e <= n) return (this._rendLineNumberStart += i), null;
            if (e > r) return null;
            if (i + e > r)
              return this._lines.splice(
                e - this._rendLineNumberStart,
                r - e + 1
              );
            const s = [];
            for (let e = 0; e < i; e++) s[e] = this._createLine();
            const o = e - this._rendLineNumberStart,
              a = this._lines.slice(0, o),
              l = this._lines.slice(o, this._lines.length - i),
              c = this._lines.slice(this._lines.length - i, this._lines.length);
            return (this._lines = a.concat(s).concat(l)), c;
          }
          onTokensChanged(e) {
            if (0 === this.getCount()) return !1;
            const t = this.getStartLineNumber(),
              i = this.getEndLineNumber();
            let n = !1;
            for (let r = 0, s = e.length; r < s; r++) {
              const s = e[r];
              if (s.toLineNumber < t || s.fromLineNumber > i) continue;
              const o = Math.max(t, s.fromLineNumber),
                a = Math.min(i, s.toLineNumber);
              for (let e = o; e <= a; e++) {
                const t = e - this._rendLineNumberStart;
                this._lines[t].onTokensChanged(), (n = !0);
              }
            }
            return n;
          }
        }
        class We {
          constructor(e) {
            (this._host = e),
              (this.domNode = this._createDomNode()),
              (this._linesCollection = new Be(() =>
                this._host.createVisibleLine()
              ));
          }
          _createDomNode() {
            const e = (0, g.X)(document.createElement('div'));
            return (
              e.setClassName('view-layer'),
              e.setPosition('absolute'),
              e.domNode.setAttribute('role', 'presentation'),
              e.domNode.setAttribute('aria-hidden', 'true'),
              e
            );
          }
          onConfigurationChanged(e) {
            return !!e.hasChanged(117);
          }
          onFlushed(e) {
            return this._linesCollection.flush(), !0;
          }
          onLinesChanged(e) {
            return this._linesCollection.onLinesChanged(
              e.fromLineNumber,
              e.toLineNumber
            );
          }
          onLinesDeleted(e) {
            const t = this._linesCollection.onLinesDeleted(
              e.fromLineNumber,
              e.toLineNumber
            );
            if (t)
              for (let e = 0, i = t.length; e < i; e++) {
                const i = t[e].getDomNode();
                i && this.domNode.domNode.removeChild(i);
              }
            return !0;
          }
          onLinesInserted(e) {
            const t = this._linesCollection.onLinesInserted(
              e.fromLineNumber,
              e.toLineNumber
            );
            if (t)
              for (let e = 0, i = t.length; e < i; e++) {
                const i = t[e].getDomNode();
                i && this.domNode.domNode.removeChild(i);
              }
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onTokensChanged(e) {
            return this._linesCollection.onTokensChanged(e.ranges);
          }
          onZonesChanged(e) {
            return !0;
          }
          getStartLineNumber() {
            return this._linesCollection.getStartLineNumber();
          }
          getEndLineNumber() {
            return this._linesCollection.getEndLineNumber();
          }
          getVisibleLine(e) {
            return this._linesCollection.getLine(e);
          }
          renderLines(e) {
            const t = this._linesCollection._get(),
              i = new Ye(this.domNode.domNode, this._host, e),
              n = {
                rendLineNumberStart: t.rendLineNumberStart,
                lines: t.lines,
                linesLength: t.lines.length,
              },
              r = i.render(
                n,
                e.startLineNumber,
                e.endLineNumber,
                e.relativeVerticalOffset
              );
            this._linesCollection._set(r.rendLineNumberStart, r.lines);
          }
        }
        class Ye {
          constructor(e, t, i) {
            (this.domNode = e), (this.host = t), (this.viewportData = i);
          }
          render(e, t, i, n) {
            const r = {
              rendLineNumberStart: e.rendLineNumberStart,
              lines: e.lines.slice(0),
              linesLength: e.linesLength,
            };
            if (
              r.rendLineNumberStart + r.linesLength - 1 < t ||
              i < r.rendLineNumberStart
            ) {
              (r.rendLineNumberStart = t),
                (r.linesLength = i - t + 1),
                (r.lines = []);
              for (let e = t; e <= i; e++)
                r.lines[e - t] = this.host.createVisibleLine();
              return this._finishRendering(r, !0, n), r;
            }
            if (
              (this._renderUntouchedLines(
                r,
                Math.max(t - r.rendLineNumberStart, 0),
                Math.min(i - r.rendLineNumberStart, r.linesLength - 1),
                n,
                t
              ),
              r.rendLineNumberStart > t)
            ) {
              const e = t,
                s = Math.min(i, r.rendLineNumberStart - 1);
              e <= s &&
                (this._insertLinesBefore(r, e, s, n, t),
                (r.linesLength += s - e + 1));
            } else if (r.rendLineNumberStart < t) {
              const e = Math.min(r.linesLength, t - r.rendLineNumberStart);
              e > 0 && (this._removeLinesBefore(r, e), (r.linesLength -= e));
            }
            if (
              ((r.rendLineNumberStart = t),
              r.rendLineNumberStart + r.linesLength - 1 < i)
            ) {
              const e = r.rendLineNumberStart + r.linesLength,
                s = i;
              e <= s &&
                (this._insertLinesAfter(r, e, s, n, t),
                (r.linesLength += s - e + 1));
            } else if (r.rendLineNumberStart + r.linesLength - 1 > i) {
              const e = Math.max(0, i - r.rendLineNumberStart + 1),
                t = r.linesLength - 1 - e + 1;
              t > 0 && (this._removeLinesAfter(r, t), (r.linesLength -= t));
            }
            return this._finishRendering(r, !1, n), r;
          }
          _renderUntouchedLines(e, t, i, n, r) {
            const s = e.rendLineNumberStart,
              o = e.lines;
            for (let e = t; e <= i; e++) {
              const t = s + e;
              o[e].layoutLine(t, n[t - r]);
            }
          }
          _insertLinesBefore(e, t, i, n, r) {
            const s = [];
            let o = 0;
            for (let e = t; e <= i; e++) s[o++] = this.host.createVisibleLine();
            e.lines = s.concat(e.lines);
          }
          _removeLinesBefore(e, t) {
            for (let i = 0; i < t; i++) {
              const t = e.lines[i].getDomNode();
              t && this.domNode.removeChild(t);
            }
            e.lines.splice(0, t);
          }
          _insertLinesAfter(e, t, i, n, r) {
            const s = [];
            let o = 0;
            for (let e = t; e <= i; e++) s[o++] = this.host.createVisibleLine();
            e.lines = e.lines.concat(s);
          }
          _removeLinesAfter(e, t) {
            const i = e.linesLength - t;
            for (let n = 0; n < t; n++) {
              const t = e.lines[i + n].getDomNode();
              t && this.domNode.removeChild(t);
            }
            e.lines.splice(i, t);
          }
          _finishRenderingNewLines(e, t, i, n) {
            const r = this.domNode.lastChild;
            t || !r
              ? (this.domNode.innerHTML = i)
              : r.insertAdjacentHTML('afterend', i);
            let s = this.domNode.lastChild;
            for (let t = e.linesLength - 1; t >= 0; t--) {
              const i = e.lines[t];
              n[t] && (i.setDomNode(s), (s = s.previousSibling));
            }
          }
          _finishRenderingInvalidLines(e, t, i) {
            const n = document.createElement('div');
            n.innerHTML = t;
            for (let t = 0; t < e.linesLength; t++) {
              const r = e.lines[t];
              if (i[t]) {
                const e = n.firstChild,
                  t = r.getDomNode();
                t.parentNode.replaceChild(e, t), r.setDomNode(e);
              }
            }
          }
          _finishRendering(e, t, i) {
            const n = Ye._sb,
              r = e.linesLength,
              s = e.lines,
              o = e.rendLineNumberStart,
              a = [];
            {
              n.reset();
              let l = !1;
              for (let e = 0; e < r; e++) {
                const t = s[e];
                (a[e] = !1),
                  t.getDomNode() ||
                    (t.renderLine(e + o, i[e], this.viewportData, n) &&
                      ((a[e] = !0), (l = !0)));
              }
              l && this._finishRenderingNewLines(e, t, n.build(), a);
            }
            {
              n.reset();
              let t = !1;
              const l = [];
              for (let e = 0; e < r; e++) {
                const r = s[e];
                ((l[e] = !1), a[e]) ||
                  (r.renderLine(e + o, i[e], this.viewportData, n) &&
                    ((l[e] = !0), (t = !0)));
              }
              t && this._finishRenderingInvalidLines(e, n.build(), l);
            }
          }
        }
        Ye._sb = (0, Fe.l$)(1e5);
        class He extends N {
          constructor(e) {
            super(e),
              (this._visibleLines = new We(this)),
              (this.domNode = this._visibleLines.domNode),
              (this._dynamicOverlays = []),
              (this._isFocused = !1),
              this.domNode.setClassName('view-overlays');
          }
          shouldRender() {
            if (super.shouldRender()) return !0;
            for (let e = 0, t = this._dynamicOverlays.length; e < t; e++)
              if (this._dynamicOverlays[e].shouldRender()) return !0;
            return !1;
          }
          dispose() {
            super.dispose();
            for (let e = 0, t = this._dynamicOverlays.length; e < t; e++)
              this._dynamicOverlays[e].dispose();
            this._dynamicOverlays = [];
          }
          getDomNode() {
            return this.domNode;
          }
          createVisibleLine() {
            return new je(this._context.configuration, this._dynamicOverlays);
          }
          addDynamicOverlay(e) {
            this._dynamicOverlays.push(e);
          }
          onConfigurationChanged(e) {
            this._visibleLines.onConfigurationChanged(e);
            const t = this._visibleLines.getStartLineNumber(),
              i = this._visibleLines.getEndLineNumber();
            for (let n = t; n <= i; n++)
              this._visibleLines.getVisibleLine(n).onConfigurationChanged(e);
            return !0;
          }
          onFlushed(e) {
            return this._visibleLines.onFlushed(e);
          }
          onFocusChanged(e) {
            return (this._isFocused = e.isFocused), !0;
          }
          onLinesChanged(e) {
            return this._visibleLines.onLinesChanged(e);
          }
          onLinesDeleted(e) {
            return this._visibleLines.onLinesDeleted(e);
          }
          onLinesInserted(e) {
            return this._visibleLines.onLinesInserted(e);
          }
          onScrollChanged(e) {
            return this._visibleLines.onScrollChanged(e) || !0;
          }
          onTokensChanged(e) {
            return this._visibleLines.onTokensChanged(e);
          }
          onZonesChanged(e) {
            return this._visibleLines.onZonesChanged(e);
          }
          prepareRender(e) {
            const t = this._dynamicOverlays.filter((e) => e.shouldRender());
            for (let i = 0, n = t.length; i < n; i++) {
              const n = t[i];
              n.prepareRender(e), n.onDidRender();
            }
          }
          render(e) {
            this._viewOverlaysRender(e),
              this.domNode.toggleClassName('focused', this._isFocused);
          }
          _viewOverlaysRender(e) {
            this._visibleLines.renderLines(e.viewportData);
          }
        }
        class je {
          constructor(e, t) {
            (this._configuration = e),
              (this._lineHeight = this._configuration.options.get(51)),
              (this._dynamicOverlays = t),
              (this._domNode = null),
              (this._renderedContent = null);
          }
          getDomNode() {
            return this._domNode ? this._domNode.domNode : null;
          }
          setDomNode(e) {
            this._domNode = (0, g.X)(e);
          }
          onContentChanged() {}
          onTokensChanged() {}
          onConfigurationChanged(e) {
            this._lineHeight = this._configuration.options.get(51);
          }
          renderLine(e, t, i, n) {
            let r = '';
            for (let t = 0, n = this._dynamicOverlays.length; t < n; t++)
              r += this._dynamicOverlays[t].render(i.startLineNumber, e);
            return (
              this._renderedContent !== r &&
              ((this._renderedContent = r),
              n.appendASCIIString('<div style="position:absolute;top:'),
              n.appendASCIIString(String(t)),
              n.appendASCIIString('px;width:100%;height:'),
              n.appendASCIIString(String(this._lineHeight)),
              n.appendASCIIString('px;">'),
              n.appendASCIIString(r),
              n.appendASCIIString('</div>'),
              !0)
            );
          }
          layoutLine(e, t) {
            this._domNode &&
              (this._domNode.setTop(t),
              this._domNode.setHeight(this._lineHeight));
          }
        }
        class Ve extends He {
          constructor(e) {
            super(e);
            const t = this._context.configuration.options.get(117);
            (this._contentWidth = t.contentWidth), this.domNode.setHeight(0);
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options.get(117);
            return (
              (this._contentWidth = t.contentWidth),
              super.onConfigurationChanged(e) || !0
            );
          }
          onScrollChanged(e) {
            return super.onScrollChanged(e) || e.scrollWidthChanged;
          }
          _viewOverlaysRender(e) {
            super._viewOverlaysRender(e),
              this.domNode.setWidth(
                Math.max(e.scrollWidth, this._contentWidth)
              );
          }
        }
        class ze extends He {
          constructor(e) {
            super(e);
            const t = this._context.configuration.options,
              i = t.get(117);
            (this._contentLeft = i.contentLeft),
              this.domNode.setClassName('margin-view-overlays'),
              this.domNode.setWidth(1),
              c.V.applyFontInfo(this.domNode, t.get(36));
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            c.V.applyFontInfo(this.domNode, t.get(36));
            const i = t.get(117);
            return (
              (this._contentLeft = i.contentLeft),
              super.onConfigurationChanged(e) || !0
            );
          }
          onScrollChanged(e) {
            return super.onScrollChanged(e) || e.scrollHeightChanged;
          }
          _viewOverlaysRender(e) {
            super._viewOverlaysRender(e);
            const t = Math.min(e.scrollHeight, 1e6);
            this.domNode.setHeight(t), this.domNode.setWidth(this._contentLeft);
          }
        }
        class Ue {
          constructor(e, t) {
            (this.top = e), (this.left = t);
          }
        }
        class $e extends N {
          constructor(e, t) {
            super(e),
              (this._viewDomNode = t),
              (this._widgets = {}),
              (this.domNode = (0, g.X)(document.createElement('div'))),
              E.write(this.domNode, 1),
              this.domNode.setClassName('contentWidgets'),
              this.domNode.setPosition('absolute'),
              this.domNode.setTop(0),
              (this.overflowingContentWidgetsDomNode = (0, g.X)(
                document.createElement('div')
              )),
              E.write(this.overflowingContentWidgetsDomNode, 2),
              this.overflowingContentWidgetsDomNode.setClassName(
                'overflowingContentWidgets'
              );
          }
          dispose() {
            super.dispose(), (this._widgets = {});
          }
          onConfigurationChanged(e) {
            const t = Object.keys(this._widgets);
            for (const i of t) this._widgets[i].onConfigurationChanged(e);
            return !0;
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLineMappingChanged(e) {
            const t = Object.keys(this._widgets);
            for (const i of t) this._widgets[i].onLineMappingChanged(e);
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return !0;
          }
          onZonesChanged(e) {
            return !0;
          }
          addWidget(e) {
            const t = new Ke(this._context, this._viewDomNode, e);
            (this._widgets[t.id] = t),
              t.allowEditorOverflow
                ? this.overflowingContentWidgetsDomNode.appendChild(t.domNode)
                : this.domNode.appendChild(t.domNode),
              this.setShouldRender();
          }
          setWidgetPosition(e, t, i) {
            this._widgets[e.getId()].setPosition(t, i), this.setShouldRender();
          }
          removeWidget(e) {
            const t = e.getId();
            if (this._widgets.hasOwnProperty(t)) {
              const e = this._widgets[t];
              delete this._widgets[t];
              const i = e.domNode.domNode;
              i.parentNode.removeChild(i),
                i.removeAttribute('monaco-visible-content-widget'),
                this.setShouldRender();
            }
          }
          shouldSuppressMouseDownOnWidget(e) {
            return (
              !!this._widgets.hasOwnProperty(e) &&
              this._widgets[e].suppressMouseDown
            );
          }
          onBeforeRender(e) {
            const t = Object.keys(this._widgets);
            for (const i of t) this._widgets[i].onBeforeRender(e);
          }
          prepareRender(e) {
            const t = Object.keys(this._widgets);
            for (const i of t) this._widgets[i].prepareRender(e);
          }
          render(e) {
            const t = Object.keys(this._widgets);
            for (const i of t) this._widgets[i].render(e);
          }
        }
        class Ke {
          constructor(e, t, i) {
            (this._context = e),
              (this._viewDomNode = t),
              (this._actual = i),
              (this.domNode = (0, g.X)(this._actual.getDomNode())),
              (this.id = this._actual.getId()),
              (this.allowEditorOverflow =
                this._actual.allowEditorOverflow || !1),
              (this.suppressMouseDown = this._actual.suppressMouseDown || !1);
            const n = this._context.configuration.options,
              r = n.get(117);
            (this._fixedOverflowWidgets = n.get(30)),
              (this._contentWidth = r.contentWidth),
              (this._contentLeft = r.contentLeft),
              (this._lineHeight = n.get(51)),
              (this._range = null),
              (this._viewRange = null),
              (this._preference = []),
              (this._cachedDomNodeClientWidth = -1),
              (this._cachedDomNodeClientHeight = -1),
              (this._maxWidth = this._getMaxWidth()),
              (this._isVisible = !1),
              (this._renderData = null),
              this.domNode.setPosition(
                this._fixedOverflowWidgets && this.allowEditorOverflow
                  ? 'fixed'
                  : 'absolute'
              ),
              this.domNode.setVisibility('hidden'),
              this.domNode.setAttribute('widgetId', this.id),
              this.domNode.setMaxWidth(this._maxWidth);
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            if (((this._lineHeight = t.get(51)), e.hasChanged(117))) {
              const e = t.get(117);
              (this._contentLeft = e.contentLeft),
                (this._contentWidth = e.contentWidth),
                (this._maxWidth = this._getMaxWidth());
            }
          }
          onLineMappingChanged(e) {
            this._setPosition(this._range);
          }
          _setPosition(e) {
            if (((this._range = e), (this._viewRange = null), this._range)) {
              const e = this._context.model.validateModelRange(this._range);
              (this._context.model.coordinatesConverter.modelPositionIsVisible(
                e.getStartPosition()
              ) ||
                this._context.model.coordinatesConverter.modelPositionIsVisible(
                  e.getEndPosition()
                )) &&
                (this._viewRange = this._context.model.coordinatesConverter.convertModelRangeToViewRange(
                  e
                ));
            }
          }
          _getMaxWidth() {
            return this.allowEditorOverflow
              ? window.innerWidth ||
                  document.documentElement.clientWidth ||
                  document.body.clientWidth
              : this._contentWidth;
          }
          setPosition(e, t) {
            this._setPosition(e),
              (this._preference = t),
              (this._cachedDomNodeClientWidth = -1),
              (this._cachedDomNodeClientHeight = -1);
          }
          _layoutBoxInViewport(e, t, i, n, r) {
            const s = e.top,
              o = s,
              a = t.top + this._lineHeight,
              l = s - n,
              c = o >= n,
              d = a,
              h = r.viewportHeight - a >= n;
            let u = e.left,
              g = t.left;
            return (
              u + i > r.scrollLeft + r.viewportWidth &&
                (u = r.scrollLeft + r.viewportWidth - i),
              g + i > r.scrollLeft + r.viewportWidth &&
                (g = r.scrollLeft + r.viewportWidth - i),
              u < r.scrollLeft && (u = r.scrollLeft),
              g < r.scrollLeft && (g = r.scrollLeft),
              {
                fitsAbove: c,
                aboveTop: l,
                aboveLeft: u,
                fitsBelow: h,
                belowTop: d,
                belowLeft: g,
              }
            );
          }
          _layoutHorizontalSegmentInPage(e, t, i, n) {
            const s = Math.max(0, t.left - n),
              o = Math.min(t.left + t.width + n, e.width);
            let a = t.left + i - r.DI.scrollX;
            if (a + n > o) {
              const e = a - (o - n);
              (a -= e), (i -= e);
            }
            if (a < s) {
              const e = a - s;
              (a -= e), (i -= e);
            }
            return [i, a];
          }
          _layoutBoxInPage(e, t, i, n, s) {
            const o = e.top - n,
              a = t.top + this._lineHeight,
              l = r.i(this._viewDomNode.domNode),
              c = l.top + o - r.DI.scrollY,
              d = l.top + a - r.DI.scrollY,
              h = r.D6(document.body),
              [u, g] = this._layoutHorizontalSegmentInPage(
                h,
                l,
                e.left - s.scrollLeft + this._contentLeft,
                i
              ),
              [f, p] = this._layoutHorizontalSegmentInPage(
                h,
                l,
                t.left - s.scrollLeft + this._contentLeft,
                i
              ),
              m = c >= 22,
              _ = d + n <= h.height - 22;
            return this._fixedOverflowWidgets
              ? {
                  fitsAbove: m,
                  aboveTop: Math.max(c, 22),
                  aboveLeft: g,
                  fitsBelow: _,
                  belowTop: d,
                  belowLeft: p,
                }
              : {
                  fitsAbove: m,
                  aboveTop: o,
                  aboveLeft: u,
                  fitsBelow: _,
                  belowTop: a,
                  belowLeft: f,
                };
          }
          _prepareRenderWidgetAtExactPositionOverflowing(e) {
            return new Ue(e.top, e.left + this._contentLeft);
          }
          _getTopAndBottomLeft(e) {
            if (!this._viewRange) return [null, null];
            const t = e.linesVisibleRangesForRange(this._viewRange, !1);
            if (!t || 0 === t.length) return [null, null];
            let i = t[0],
              n = t[0];
            for (const e of t)
              e.lineNumber < i.lineNumber && (i = e),
                e.lineNumber > n.lineNumber && (n = e);
            let r = 1073741824;
            for (const e of i.ranges) e.left < r && (r = e.left);
            let s = 1073741824;
            for (const e of n.ranges) e.left < s && (s = e.left);
            const o =
                e.getVerticalOffsetForLineNumber(i.lineNumber) - e.scrollTop,
              a = new Ue(o, r),
              l = e.getVerticalOffsetForLineNumber(n.lineNumber) - e.scrollTop;
            return [a, new Ue(l, s)];
          }
          _prepareRenderWidget(e) {
            const [t, i] = this._getTopAndBottomLeft(e);
            if (!t || !i) return null;
            if (
              -1 === this._cachedDomNodeClientWidth ||
              -1 === this._cachedDomNodeClientHeight
            ) {
              const e = this.domNode.domNode;
              (this._cachedDomNodeClientWidth = e.clientWidth),
                (this._cachedDomNodeClientHeight = e.clientHeight);
            }
            let n;
            if (
              ((n = this.allowEditorOverflow
                ? this._layoutBoxInPage(
                    t,
                    i,
                    this._cachedDomNodeClientWidth,
                    this._cachedDomNodeClientHeight,
                    e
                  )
                : this._layoutBoxInViewport(
                    t,
                    i,
                    this._cachedDomNodeClientWidth,
                    this._cachedDomNodeClientHeight,
                    e
                  )),
              this._preference)
            )
              for (let e = 1; e <= 2; e++)
                for (const i of this._preference)
                  if (1 === i) {
                    if (!n) return null;
                    if (2 === e || n.fitsAbove)
                      return new Ue(n.aboveTop, n.aboveLeft);
                  } else {
                    if (2 !== i)
                      return this.allowEditorOverflow
                        ? this._prepareRenderWidgetAtExactPositionOverflowing(t)
                        : t;
                    if (!n) return null;
                    if (2 === e || n.fitsBelow)
                      return new Ue(n.belowTop, n.belowLeft);
                  }
            return null;
          }
          onBeforeRender(e) {
            this._viewRange &&
              this._preference &&
              (this._viewRange.endLineNumber < e.startLineNumber ||
                this._viewRange.startLineNumber > e.endLineNumber ||
                this.domNode.setMaxWidth(this._maxWidth));
          }
          prepareRender(e) {
            this._renderData = this._prepareRenderWidget(e);
          }
          render(e) {
            this._renderData
              ? (this.allowEditorOverflow
                  ? (this.domNode.setTop(this._renderData.top),
                    this.domNode.setLeft(this._renderData.left))
                  : (this.domNode.setTop(
                      this._renderData.top + e.scrollTop - e.bigNumbersDelta
                    ),
                    this.domNode.setLeft(this._renderData.left)),
                this._isVisible ||
                  (this.domNode.setVisibility('inherit'),
                  this.domNode.setAttribute(
                    'monaco-visible-content-widget',
                    'true'
                  ),
                  (this._isVisible = !0)))
              : this._isVisible &&
                (this.domNode.removeAttribute('monaco-visible-content-widget'),
                (this._isVisible = !1),
                this.domNode.setVisibility('hidden'));
          }
        }
        var qe = i(9488);
        let Ge = !0;
        class Ze extends ke {
          constructor(e) {
            super(), (this._context = e);
            const t = this._context.configuration.options,
              i = t.get(117);
            (this._lineHeight = t.get(51)),
              (this._renderLineHighlight = t.get(77)),
              (this._renderLineHightlightOnlyWhenFocus = t.get(78)),
              (this._contentLeft = i.contentLeft),
              (this._contentWidth = i.contentWidth),
              (this._selectionIsEmpty = !0),
              (this._focused = !1),
              (this._cursorLineNumbers = []),
              (this._selections = []),
              (this._renderData = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this), super.dispose();
          }
          _readFromSelections() {
            let e = !1;
            const t = Ge ? this._selections.slice(0, 1) : this._selections,
              i = t.map((e) => e.positionLineNumber);
            i.sort((e, t) => e - t),
              qe.fS(this._cursorLineNumbers, i) ||
                ((this._cursorLineNumbers = i), (e = !0));
            const n = t.every((e) => e.isEmpty());
            return (
              this._selectionIsEmpty !== n &&
                ((this._selectionIsEmpty = n), (e = !0)),
              e
            );
          }
          onThemeChanged(e) {
            return this._readFromSelections();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(117);
            return (
              (this._lineHeight = t.get(51)),
              (this._renderLineHighlight = t.get(77)),
              (this._renderLineHightlightOnlyWhenFocus = t.get(78)),
              (this._contentLeft = i.contentLeft),
              (this._contentWidth = i.contentWidth),
              !0
            );
          }
          onCursorStateChanged(e) {
            return (
              (this._selections = e.selections), this._readFromSelections()
            );
          }
          onFlushed(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollWidthChanged || e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          onFocusChanged(e) {
            return (
              !!this._renderLineHightlightOnlyWhenFocus &&
              ((this._focused = e.isFocused), !0)
            );
          }
          prepareRender(e) {
            if (!this._shouldRenderThis())
              return void (this._renderData = null);
            const t = this._renderOne(e),
              i = e.visibleRange.startLineNumber,
              n = e.visibleRange.endLineNumber,
              r = this._cursorLineNumbers.length;
            let s = 0;
            const o = [];
            for (let e = i; e <= n; e++) {
              const n = e - i;
              for (; s < r && this._cursorLineNumbers[s] < e; ) s++;
              s < r && this._cursorLineNumbers[s] === e
                ? (o[n] = t)
                : (o[n] = '');
            }
            this._renderData = o;
          }
          render(e, t) {
            if (!this._renderData) return '';
            const i = t - e;
            return i >= this._renderData.length ? '' : this._renderData[i];
          }
        }
        class Je extends Ze {
          _renderOne(e) {
            return `<div class="${
              'current-line' +
              (this._shouldRenderOther() ? ' current-line-both' : '')
            }" style="width:${Math.max(
              e.scrollWidth,
              this._contentWidth
            )}px; height:${this._lineHeight}px;"></div>`;
          }
          _shouldRenderThis() {
            return (
              ('line' === this._renderLineHighlight ||
                'all' === this._renderLineHighlight) &&
              this._selectionIsEmpty &&
              (!this._renderLineHightlightOnlyWhenFocus || this._focused)
            );
          }
          _shouldRenderOther() {
            return (
              ('gutter' === this._renderLineHighlight ||
                'all' === this._renderLineHighlight) &&
              (!this._renderLineHightlightOnlyWhenFocus || this._focused)
            );
          }
        }
        class Qe extends Ze {
          _renderOne(e) {
            return `<div class="${
              'current-line current-line-margin' +
              (this._shouldRenderOther() ? ' current-line-margin-both' : '')
            }" style="width:${this._contentLeft}px; height:${
              this._lineHeight
            }px;"></div>`;
          }
          _shouldRenderThis() {
            return (
              ('gutter' === this._renderLineHighlight ||
                'all' === this._renderLineHighlight) &&
              (!this._renderLineHightlightOnlyWhenFocus || this._focused)
            );
          }
          _shouldRenderOther() {
            return (
              ('line' === this._renderLineHighlight ||
                'all' === this._renderLineHighlight) &&
              this._selectionIsEmpty &&
              (!this._renderLineHightlightOnlyWhenFocus || this._focused)
            );
          }
        }
        (0, Y.Ic)((e, t) => {
          Ge = !1;
          const i = e.getColor(xe.Kh);
          if (
            (i &&
              (t.addRule(
                `.monaco-editor .view-overlays .current-line { background-color: ${i}; }`
              ),
              t.addRule(
                `.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${i}; border: none; }`
              )),
            !i || i.isTransparent() || e.defines(xe.Mm))
          ) {
            const i = e.getColor(xe.Mm);
            i &&
              ((Ge = !0),
              t.addRule(
                `.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }`
              ),
              t.addRule(
                `.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }`
              ),
              'hc' === e.type &&
                (t.addRule(
                  '.monaco-editor .view-overlays .current-line { border-width: 1px; }'
                ),
                t.addRule(
                  '.monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }'
                )));
          }
        });
        class Xe extends ke {
          constructor(e) {
            super(), (this._context = e);
            const t = this._context.configuration.options;
            (this._lineHeight = t.get(51)),
              (this._typicalHalfwidthCharacterWidth = t.get(
                36
              ).typicalHalfwidthCharacterWidth),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            return (
              (this._lineHeight = t.get(51)),
              (this._typicalHalfwidthCharacterWidth = t.get(
                36
              ).typicalHalfwidthCharacterWidth),
              !0
            );
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged || e.scrollWidthChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          prepareRender(e) {
            const t = e.getDecorationsInViewport();
            let i = [],
              n = 0;
            for (let e = 0, r = t.length; e < r; e++) {
              const r = t[e];
              r.options.className && (i[n++] = r);
            }
            i = i.sort((e, t) => {
              if (e.options.zIndex < t.options.zIndex) return -1;
              if (e.options.zIndex > t.options.zIndex) return 1;
              const i = e.options.className,
                n = t.options.className;
              return i < n
                ? -1
                : i > n
                ? 1
                : X.e.compareRangesUsingStarts(e.range, t.range);
            });
            const r = e.visibleRange.startLineNumber,
              s = e.visibleRange.endLineNumber,
              o = [];
            for (let e = r; e <= s; e++) o[e - r] = '';
            this._renderWholeLineDecorations(e, i, o),
              this._renderNormalDecorations(e, i, o),
              (this._renderResult = o);
          }
          _renderWholeLineDecorations(e, t, i) {
            const n = String(this._lineHeight),
              r = e.visibleRange.startLineNumber,
              s = e.visibleRange.endLineNumber;
            for (let e = 0, o = t.length; e < o; e++) {
              const o = t[e];
              if (!o.options.isWholeLine) continue;
              const a =
                  '<div class="cdr ' +
                  o.options.className +
                  '" style="left:0;width:100%;height:' +
                  n +
                  'px;"></div>',
                l = Math.max(o.range.startLineNumber, r),
                c = Math.min(o.range.endLineNumber, s);
              for (let e = l; e <= c; e++) i[e - r] += a;
            }
          }
          _renderNormalDecorations(e, t, i) {
            const n = String(this._lineHeight),
              r = e.visibleRange.startLineNumber;
            let s = null,
              o = !1,
              a = null;
            for (let l = 0, c = t.length; l < c; l++) {
              const c = t[l];
              if (c.options.isWholeLine) continue;
              const d = c.options.className,
                h = Boolean(c.options.showIfCollapsed);
              let u = c.range;
              h &&
                1 === u.endColumn &&
                u.endLineNumber !== u.startLineNumber &&
                (u = new X.e(
                  u.startLineNumber,
                  u.startColumn,
                  u.endLineNumber - 1,
                  this._context.model.getLineMaxColumn(u.endLineNumber - 1)
                )),
                s === d && o === h && X.e.areIntersectingOrTouching(a, u)
                  ? (a = X.e.plusRange(a, u))
                  : (null !== s &&
                      this._renderNormalDecoration(e, a, s, o, n, r, i),
                    (s = d),
                    (o = h),
                    (a = u));
            }
            null !== s && this._renderNormalDecoration(e, a, s, o, n, r, i);
          }
          _renderNormalDecoration(e, t, i, n, r, s, o) {
            const a = e.linesVisibleRangesForRange(t, 'findMatch' === i);
            if (a)
              for (let e = 0, t = a.length; e < t; e++) {
                const t = a[e];
                if (t.outsideRenderedLine) continue;
                const l = t.lineNumber - s;
                if (n && 1 === t.ranges.length) {
                  const e = t.ranges[0];
                  0 === e.width &&
                    (t.ranges[0] = new O(
                      e.left,
                      this._typicalHalfwidthCharacterWidth
                    ));
                }
                for (let e = 0, n = t.ranges.length; e < n; e++) {
                  const n = t.ranges[e],
                    s =
                      '<div class="cdr ' +
                      i +
                      '" style="left:' +
                      String(n.left) +
                      'px;width:' +
                      String(n.width) +
                      'px;height:' +
                      r +
                      'px;"></div>';
                  o[l] += s;
                }
              }
          }
          render(e, t) {
            if (!this._renderResult) return '';
            const i = t - e;
            return i < 0 || i >= this._renderResult.length
              ? ''
              : this._renderResult[i];
          }
        }
        var et = i(9802);
        class tt extends N {
          constructor(e, t, i, n) {
            super(e);
            const s = this._context.configuration.options,
              o = s.get(84),
              a = s.get(58),
              l = s.get(28),
              c = s.get(87),
              d = {
                listenOnDomNode: i.domNode,
                className: 'editor-scrollable ' + (0, Y.m6)(e.theme.type),
                useShadows: !1,
                lazyRender: !0,
                vertical: o.vertical,
                horizontal: o.horizontal,
                verticalHasArrows: o.verticalHasArrows,
                horizontalHasArrows: o.horizontalHasArrows,
                verticalScrollbarSize: o.verticalScrollbarSize,
                verticalSliderSize: o.verticalSliderSize,
                horizontalScrollbarSize: o.horizontalScrollbarSize,
                horizontalSliderSize: o.horizontalSliderSize,
                handleMouseWheel: o.handleMouseWheel,
                alwaysConsumeMouseWheel: o.alwaysConsumeMouseWheel,
                arrowSize: o.arrowSize,
                mouseWheelScrollSensitivity: a,
                fastScrollSensitivity: l,
                scrollPredominantAxis: c,
              };
            (this.scrollbar = this._register(
              new et.$Z(t.domNode, d, this._context.viewLayout.getScrollable())
            )),
              E.write(this.scrollbar.getDomNode(), 5),
              (this.scrollbarDomNode = (0, g.X)(this.scrollbar.getDomNode())),
              this.scrollbarDomNode.setPosition('absolute'),
              this._setLayout();
            const h = (e, t, i) => {
              const n = {};
              if (t) {
                const t = e.scrollTop;
                t &&
                  ((n.scrollTop =
                    this._context.viewLayout.getCurrentScrollTop() + t),
                  (e.scrollTop = 0));
              }
              if (i) {
                const t = e.scrollLeft;
                t &&
                  ((n.scrollLeft =
                    this._context.viewLayout.getCurrentScrollLeft() + t),
                  (e.scrollLeft = 0));
              }
              this._context.model.setScrollPosition(n, 1);
            };
            this._register(
              r.nm(i.domNode, 'scroll', (e) => h(i.domNode, !0, !0))
            ),
              this._register(
                r.nm(t.domNode, 'scroll', (e) => h(t.domNode, !0, !1))
              ),
              this._register(
                r.nm(n.domNode, 'scroll', (e) => h(n.domNode, !0, !1))
              ),
              this._register(
                r.nm(this.scrollbarDomNode.domNode, 'scroll', (e) =>
                  h(this.scrollbarDomNode.domNode, !0, !1)
                )
              );
          }
          dispose() {
            super.dispose();
          }
          _setLayout() {
            const e = this._context.configuration.options,
              t = e.get(117);
            this.scrollbarDomNode.setLeft(t.contentLeft),
              'right' === e.get(56).side
                ? this.scrollbarDomNode.setWidth(
                    t.contentWidth + t.minimap.minimapWidth
                  )
                : this.scrollbarDomNode.setWidth(t.contentWidth),
              this.scrollbarDomNode.setHeight(t.height);
          }
          getOverviewRulerLayoutInfo() {
            return this.scrollbar.getOverviewRulerLayoutInfo();
          }
          getDomNode() {
            return this.scrollbarDomNode;
          }
          delegateVerticalScrollbarMouseDown(e) {
            this.scrollbar.delegateVerticalScrollbarMouseDown(e);
          }
          onConfigurationChanged(e) {
            if (e.hasChanged(84) || e.hasChanged(58) || e.hasChanged(28)) {
              const e = this._context.configuration.options,
                t = e.get(84),
                i = e.get(58),
                n = e.get(28),
                r = e.get(87),
                s = {
                  handleMouseWheel: t.handleMouseWheel,
                  mouseWheelScrollSensitivity: i,
                  fastScrollSensitivity: n,
                  scrollPredominantAxis: r,
                };
              this.scrollbar.updateOptions(s);
            }
            return e.hasChanged(117) && this._setLayout(), !0;
          }
          onScrollChanged(e) {
            return !0;
          }
          onThemeChanged(e) {
            return (
              this.scrollbar.updateClassName(
                'editor-scrollable ' + (0, Y.m6)(this._context.theme.type)
              ),
              !0
            );
          }
          prepareRender(e) {}
          render(e) {
            this.scrollbar.renderNow();
          }
        }
        class it {
          constructor(e, t, i) {
            (this.startLineNumber = +e),
              (this.endLineNumber = +t),
              (this.className = String(i));
          }
        }
        class nt extends ke {
          _render(e, t, i) {
            const n = [];
            for (let i = e; i <= t; i++) n[i - e] = [];
            if (0 === i.length) return n;
            i.sort((e, t) =>
              e.className === t.className
                ? e.startLineNumber === t.startLineNumber
                  ? e.endLineNumber - t.endLineNumber
                  : e.startLineNumber - t.startLineNumber
                : e.className < t.className
                ? -1
                : 1
            );
            let r = null,
              s = 0;
            for (let o = 0, a = i.length; o < a; o++) {
              const a = i[o],
                l = a.className;
              let c = Math.max(a.startLineNumber, e) - e;
              const d = Math.min(a.endLineNumber, t) - e;
              r === l
                ? ((c = Math.max(s + 1, c)), (s = Math.max(s, d)))
                : ((r = l), (s = d));
              for (let e = c; e <= s; e++) n[e].push(r);
            }
            return n;
          }
        }
        class rt extends nt {
          constructor(e) {
            super(), (this._context = e);
            const t = this._context.configuration.options,
              i = t.get(117);
            (this._lineHeight = t.get(51)),
              (this._glyphMargin = t.get(42)),
              (this._glyphMarginLeft = i.glyphMarginLeft),
              (this._glyphMarginWidth = i.glyphMarginWidth),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(117);
            return (
              (this._lineHeight = t.get(51)),
              (this._glyphMargin = t.get(42)),
              (this._glyphMarginLeft = i.glyphMarginLeft),
              (this._glyphMarginWidth = i.glyphMarginWidth),
              !0
            );
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          _getDecorations(e) {
            const t = e.getDecorationsInViewport();
            let i = [],
              n = 0;
            for (let e = 0, r = t.length; e < r; e++) {
              const r = t[e],
                s = r.options.glyphMarginClassName;
              s &&
                (i[n++] = new it(
                  r.range.startLineNumber,
                  r.range.endLineNumber,
                  s
                ));
            }
            return i;
          }
          prepareRender(e) {
            if (!this._glyphMargin) return void (this._renderResult = null);
            const t = e.visibleRange.startLineNumber,
              i = e.visibleRange.endLineNumber,
              n = this._render(t, i, this._getDecorations(e)),
              r = this._lineHeight.toString(),
              s =
                '" style="left:' +
                this._glyphMarginLeft.toString() +
                'px;width:' +
                this._glyphMarginWidth.toString() +
                'px;height:' +
                r +
                'px;"></div>',
              o = [];
            for (let e = t; e <= i; e++) {
              const i = e - t,
                r = n[i];
              0 === r.length
                ? (o[i] = '')
                : (o[i] = '<div class="cgmr codicon ' + r.join(' ') + s);
            }
            this._renderResult = o;
          }
          render(e, t) {
            if (!this._renderResult) return '';
            const i = t - e;
            return i < 0 || i >= this._renderResult.length
              ? ''
              : this._renderResult[i];
          }
        }
        class st extends ke {
          constructor(e) {
            super(), (this._context = e), (this._primaryLineNumber = 0);
            const t = this._context.configuration.options,
              i = t.get(118),
              n = t.get(36);
            (this._lineHeight = t.get(51)),
              (this._spaceWidth = n.spaceWidth),
              (this._enabled = t.get(75)),
              (this._activeIndentEnabled = t.get(45)),
              (this._maxIndentLeft =
                -1 === i.wrappingColumn
                  ? -1
                  : i.wrappingColumn * n.typicalHalfwidthCharacterWidth),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(118),
              n = t.get(36);
            return (
              (this._lineHeight = t.get(51)),
              (this._spaceWidth = n.spaceWidth),
              (this._enabled = t.get(75)),
              (this._activeIndentEnabled = t.get(45)),
              (this._maxIndentLeft =
                -1 === i.wrappingColumn
                  ? -1
                  : i.wrappingColumn * n.typicalHalfwidthCharacterWidth),
              !0
            );
          }
          onCursorStateChanged(e) {
            const t = e.selections[0],
              i = t.isEmpty() ? t.positionLineNumber : 0;
            return (
              this._primaryLineNumber !== i &&
              ((this._primaryLineNumber = i), !0)
            );
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          onLanguageConfigurationChanged(e) {
            return !0;
          }
          prepareRender(e) {
            if (!this._enabled) return void (this._renderResult = null);
            const t = e.visibleRange.startLineNumber,
              i = e.visibleRange.endLineNumber,
              { indentSize: n } = this._context.model.getTextModelOptions(),
              r = n * this._spaceWidth,
              s = e.scrollWidth,
              o = this._lineHeight,
              a = this._context.model.getLinesIndentGuides(t, i);
            let l = 0,
              c = 0,
              d = 0;
            if (this._activeIndentEnabled && this._primaryLineNumber) {
              const e = this._context.model.getActiveIndentGuide(
                this._primaryLineNumber,
                t,
                i
              );
              (l = e.startLineNumber), (c = e.endLineNumber), (d = e.indent);
            }
            const h = [];
            for (let n = t; n <= i; n++) {
              const i = l <= n && n <= c,
                u = n - t,
                g = a[u];
              let f = '';
              if (g >= 1) {
                const t = e.visibleRangeForPosition(new Q.L(n, 1));
                let a = t ? t.left : 0;
                for (
                  let e = 1;
                  e <= g &&
                  ((f += `<div class="${
                    i && e === d ? 'cigra' : 'cigr'
                  }" style="left:${a}px;height:${o}px;width:${r}px"></div>`),
                  (a += r),
                  !(
                    a > s ||
                    (this._maxIndentLeft > 0 && a > this._maxIndentLeft)
                  ));
                  e++
                );
              }
              h[u] = f;
            }
            this._renderResult = h;
          }
          render(e, t) {
            if (!this._renderResult) return '';
            const i = t - e;
            return i < 0 || i >= this._renderResult.length
              ? ''
              : this._renderResult[i];
          }
        }
        (0, Y.Ic)((e, t) => {
          const i = e.getColor(xe.tR);
          i &&
            t.addRule(
              `.monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 ${i} inset; }`
            );
          const n = e.getColor(xe.Ym) || i;
          n &&
            t.addRule(
              `.monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 ${n} inset; }`
            );
        });
        class ot {
          constructor() {
            this._currentVisibleRange = new X.e(1, 1, 1, 1);
          }
          getCurrentVisibleRange() {
            return this._currentVisibleRange;
          }
          setCurrentVisibleRange(e) {
            this._currentVisibleRange = e;
          }
        }
        class at {
          constructor(e, t, i, n, r, s) {
            (this.lineNumber = e),
              (this.startColumn = t),
              (this.endColumn = i),
              (this.startScrollTop = n),
              (this.stopScrollTop = r),
              (this.scrollType = s),
              (this.type = 'range'),
              (this.minLineNumber = e),
              (this.maxLineNumber = e);
          }
        }
        class lt {
          constructor(e, t, i, n) {
            (this.selections = e),
              (this.startScrollTop = t),
              (this.stopScrollTop = i),
              (this.scrollType = n),
              (this.type = 'selections');
            let r = e[0].startLineNumber,
              s = e[0].endLineNumber;
            for (let t = 1, i = e.length; t < i; t++) {
              const i = e[t];
              (r = Math.min(r, i.startLineNumber)),
                (s = Math.max(s, i.endLineNumber));
            }
            (this.minLineNumber = r), (this.maxLineNumber = s);
          }
        }
        class ct extends N {
          constructor(e, t) {
            super(e),
              (this._linesContent = t),
              (this._textRangeRestingSpot = document.createElement('div')),
              (this._visibleLines = new We(this)),
              (this.domNode = this._visibleLines.domNode);
            const i = this._context.configuration,
              n = this._context.configuration.options,
              r = n.get(36),
              s = n.get(118);
            (this._lineHeight = n.get(51)),
              (this._typicalHalfwidthCharacterWidth =
                r.typicalHalfwidthCharacterWidth),
              (this._isViewportWrapping = s.isViewportWrapping),
              (this._revealHorizontalRightPadding = n.get(81)),
              (this._cursorSurroundingLines = n.get(20)),
              (this._cursorSurroundingLinesStyle = n.get(21)),
              (this._canUseLayerHinting = !n.get(23)),
              (this._viewLineOptions = new $(i, this._context.theme.type)),
              E.write(this.domNode, 7),
              this.domNode.setClassName(`view-lines ${Ne.S}`),
              c.V.applyFontInfo(this.domNode, r),
              (this._maxLineWidth = 0),
              (this._asyncUpdateLineWidths = new _.pY(() => {
                this._updateLineWidthsSlow();
              }, 200)),
              (this._asyncCheckMonospaceFontAssumptions = new _.pY(() => {
                this._checkMonospaceFontAssumptions();
              }, 2e3)),
              (this._lastRenderedData = new ot()),
              (this._horizontalRevealRequest = null);
          }
          dispose() {
            this._asyncUpdateLineWidths.dispose(),
              this._asyncCheckMonospaceFontAssumptions.dispose(),
              super.dispose();
          }
          getDomNode() {
            return this.domNode;
          }
          createVisibleLine() {
            return new K(this._viewLineOptions);
          }
          onConfigurationChanged(e) {
            this._visibleLines.onConfigurationChanged(e),
              e.hasChanged(118) && (this._maxLineWidth = 0);
            const t = this._context.configuration.options,
              i = t.get(36),
              n = t.get(118);
            return (
              (this._lineHeight = t.get(51)),
              (this._typicalHalfwidthCharacterWidth =
                i.typicalHalfwidthCharacterWidth),
              (this._isViewportWrapping = n.isViewportWrapping),
              (this._revealHorizontalRightPadding = t.get(81)),
              (this._cursorSurroundingLines = t.get(20)),
              (this._cursorSurroundingLinesStyle = t.get(21)),
              (this._canUseLayerHinting = !t.get(23)),
              c.V.applyFontInfo(this.domNode, i),
              this._onOptionsMaybeChanged(),
              e.hasChanged(117) && (this._maxLineWidth = 0),
              !0
            );
          }
          _onOptionsMaybeChanged() {
            const e = this._context.configuration,
              t = new $(e, this._context.theme.type);
            if (!this._viewLineOptions.equals(t)) {
              this._viewLineOptions = t;
              const e = this._visibleLines.getStartLineNumber(),
                i = this._visibleLines.getEndLineNumber();
              for (let t = e; t <= i; t++)
                this._visibleLines
                  .getVisibleLine(t)
                  .onOptionsChanged(this._viewLineOptions);
              return !0;
            }
            return !1;
          }
          onCursorStateChanged(e) {
            const t = this._visibleLines.getStartLineNumber(),
              i = this._visibleLines.getEndLineNumber();
            let n = !1;
            for (let e = t; e <= i; e++)
              n =
                this._visibleLines.getVisibleLine(e).onSelectionChanged() || n;
            return n;
          }
          onDecorationsChanged(e) {
            {
              const e = this._visibleLines.getStartLineNumber(),
                t = this._visibleLines.getEndLineNumber();
              for (let i = e; i <= t; i++)
                this._visibleLines.getVisibleLine(i).onDecorationsChanged();
            }
            return !0;
          }
          onFlushed(e) {
            const t = this._visibleLines.onFlushed(e);
            return (this._maxLineWidth = 0), t;
          }
          onLinesChanged(e) {
            return this._visibleLines.onLinesChanged(e);
          }
          onLinesDeleted(e) {
            return this._visibleLines.onLinesDeleted(e);
          }
          onLinesInserted(e) {
            return this._visibleLines.onLinesInserted(e);
          }
          onRevealRangeRequest(e) {
            const t = this._computeScrollTopToRevealRange(
              this._context.viewLayout.getFutureViewport(),
              e.source,
              e.range,
              e.selections,
              e.verticalType
            );
            if (-1 === t) return !1;
            let i = this._context.viewLayout.validateScrollPosition({
              scrollTop: t,
            });
            e.revealHorizontal
              ? e.range && e.range.startLineNumber !== e.range.endLineNumber
                ? (i = { scrollTop: i.scrollTop, scrollLeft: 0 })
                : e.range
                ? (this._horizontalRevealRequest = new at(
                    e.range.startLineNumber,
                    e.range.startColumn,
                    e.range.endColumn,
                    this._context.viewLayout.getCurrentScrollTop(),
                    i.scrollTop,
                    e.scrollType
                  ))
                : e.selections &&
                  e.selections.length > 0 &&
                  (this._horizontalRevealRequest = new lt(
                    e.selections,
                    this._context.viewLayout.getCurrentScrollTop(),
                    i.scrollTop,
                    e.scrollType
                  ))
              : (this._horizontalRevealRequest = null);
            const n =
              Math.abs(
                this._context.viewLayout.getCurrentScrollTop() - i.scrollTop
              ) <= this._lineHeight
                ? 1
                : e.scrollType;
            return this._context.model.setScrollPosition(i, n), !0;
          }
          onScrollChanged(e) {
            if (
              (this._horizontalRevealRequest &&
                e.scrollLeftChanged &&
                (this._horizontalRevealRequest = null),
              this._horizontalRevealRequest && e.scrollTopChanged)
            ) {
              const t = Math.min(
                  this._horizontalRevealRequest.startScrollTop,
                  this._horizontalRevealRequest.stopScrollTop
                ),
                i = Math.max(
                  this._horizontalRevealRequest.startScrollTop,
                  this._horizontalRevealRequest.stopScrollTop
                );
              (e.scrollTop < t || e.scrollTop > i) &&
                (this._horizontalRevealRequest = null);
            }
            return (
              this.domNode.setWidth(e.scrollWidth),
              this._visibleLines.onScrollChanged(e) || !0
            );
          }
          onTokensChanged(e) {
            return this._visibleLines.onTokensChanged(e);
          }
          onZonesChanged(e) {
            return (
              this._context.model.setMaxLineWidth(this._maxLineWidth),
              this._visibleLines.onZonesChanged(e)
            );
          }
          onThemeChanged(e) {
            return this._onOptionsMaybeChanged();
          }
          getPositionFromDOMInfo(e, t) {
            const i = this._getViewLineDomNode(e);
            if (null === i) return null;
            const n = this._getLineNumberFor(i);
            if (-1 === n) return null;
            if (n < 1 || n > this._context.model.getLineCount()) return null;
            if (1 === this._context.model.getLineMaxColumn(n))
              return new Q.L(n, 1);
            const r = this._visibleLines.getStartLineNumber(),
              s = this._visibleLines.getEndLineNumber();
            if (n < r || n > s) return null;
            let o = this._visibleLines
              .getVisibleLine(n)
              .getColumnOfNodeOffset(n, e, t);
            const a = this._context.model.getLineMinColumn(n);
            return o < a && (o = a), new Q.L(n, o);
          }
          _getViewLineDomNode(e) {
            for (; e && 1 === e.nodeType; ) {
              if (e.className === K.CLASS_NAME) return e;
              e = e.parentElement;
            }
            return null;
          }
          _getLineNumberFor(e) {
            const t = this._visibleLines.getStartLineNumber(),
              i = this._visibleLines.getEndLineNumber();
            for (let n = t; n <= i; n++)
              if (e === this._visibleLines.getVisibleLine(n).getDomNode())
                return n;
            return -1;
          }
          getLineWidth(e) {
            const t = this._visibleLines.getStartLineNumber(),
              i = this._visibleLines.getEndLineNumber();
            return e < t || e > i
              ? -1
              : this._visibleLines.getVisibleLine(e).getWidth();
          }
          linesVisibleRangesForRange(e, t) {
            if (this.shouldRender()) return null;
            const i = e.endLineNumber,
              n = X.e.intersectRanges(
                e,
                this._lastRenderedData.getCurrentVisibleRange()
              );
            if (!n) return null;
            let r = [],
              s = 0;
            const o = new U(this.domNode.domNode, this._textRangeRestingSpot);
            let a = 0;
            t &&
              (a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                new Q.L(n.startLineNumber, 1)
              ).lineNumber);
            const l = this._visibleLines.getStartLineNumber(),
              c = this._visibleLines.getEndLineNumber();
            for (let e = n.startLineNumber; e <= n.endLineNumber; e++) {
              if (e < l || e > c) continue;
              const d = e === n.startLineNumber ? n.startColumn : 1,
                h =
                  e === n.endLineNumber
                    ? n.endColumn
                    : this._context.model.getLineMaxColumn(e),
                u = this._visibleLines
                  .getVisibleLine(e)
                  .getVisibleRangesForRange(d, h, o);
              if (u) {
                if (t && e < i) {
                  const t = a;
                  (a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                    new Q.L(e + 1, 1)
                  ).lineNumber),
                    t !== a &&
                      (u.ranges[
                        u.ranges.length - 1
                      ].width += this._typicalHalfwidthCharacterWidth);
                }
                r[s++] = new I(u.outsideRenderedLine, e, u.ranges);
              }
            }
            return 0 === s ? null : r;
          }
          _visibleRangesForLineRange(e, t, i) {
            return this.shouldRender() ||
              e < this._visibleLines.getStartLineNumber() ||
              e > this._visibleLines.getEndLineNumber()
              ? null
              : this._visibleLines
                  .getVisibleLine(e)
                  .getVisibleRangesForRange(
                    t,
                    i,
                    new U(this.domNode.domNode, this._textRangeRestingSpot)
                  );
          }
          visibleRangeForPosition(e) {
            const t = this._visibleRangesForLineRange(
              e.lineNumber,
              e.column,
              e.column
            );
            return t ? new A(t.outsideRenderedLine, t.ranges[0].left) : null;
          }
          updateLineWidths() {
            this._updateLineWidths(!1);
          }
          _updateLineWidthsFast() {
            return this._updateLineWidths(!0);
          }
          _updateLineWidthsSlow() {
            this._updateLineWidths(!1);
          }
          _updateLineWidths(e) {
            const t = this._visibleLines.getStartLineNumber(),
              i = this._visibleLines.getEndLineNumber();
            let n = 1,
              r = !0;
            for (let s = t; s <= i; s++) {
              const t = this._visibleLines.getVisibleLine(s);
              !e || t.getWidthIsFast()
                ? (n = Math.max(n, t.getWidth()))
                : (r = !1);
            }
            return (
              r &&
                1 === t &&
                i === this._context.model.getLineCount() &&
                (this._maxLineWidth = 0),
              this._ensureMaxLineWidth(n),
              r
            );
          }
          _checkMonospaceFontAssumptions() {
            let e = -1,
              t = -1;
            const i = this._visibleLines.getStartLineNumber(),
              n = this._visibleLines.getEndLineNumber();
            for (let r = i; r <= n; r++) {
              const i = this._visibleLines.getVisibleLine(r);
              if (i.needsMonospaceFontCheck()) {
                const n = i.getWidth();
                n > t && ((t = n), (e = r));
              }
            }
            if (
              -1 !== e &&
              !this._visibleLines
                .getVisibleLine(e)
                .monospaceAssumptionsAreValid()
            )
              for (let e = i; e <= n; e++)
                this._visibleLines
                  .getVisibleLine(e)
                  .onMonospaceAssumptionsInvalidated();
          }
          prepareRender() {
            throw new Error('Not supported');
          }
          render() {
            throw new Error('Not supported');
          }
          renderText(e) {
            if (
              (this._visibleLines.renderLines(e),
              this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),
              this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),
              this.domNode.setHeight(
                Math.min(this._context.viewLayout.getScrollHeight(), 1e6)
              ),
              this._horizontalRevealRequest)
            ) {
              const t = this._horizontalRevealRequest;
              if (
                e.startLineNumber <= t.minLineNumber &&
                t.maxLineNumber <= e.endLineNumber
              ) {
                (this._horizontalRevealRequest = null), this.onDidRender();
                const e = this._computeScrollLeftToReveal(t);
                e &&
                  (this._isViewportWrapping ||
                    this._ensureMaxLineWidth(e.maxHorizontalOffset),
                  this._context.model.setScrollPosition(
                    { scrollLeft: e.scrollLeft },
                    t.scrollType
                  ));
              }
            }
            if (
              (this._updateLineWidthsFast() ||
                this._asyncUpdateLineWidths.schedule(),
              f.IJ && !this._asyncCheckMonospaceFontAssumptions.isScheduled())
            ) {
              const e = this._visibleLines.getStartLineNumber(),
                t = this._visibleLines.getEndLineNumber();
              for (let i = e; i <= t; i++)
                if (
                  this._visibleLines.getVisibleLine(i).needsMonospaceFontCheck()
                ) {
                  this._asyncCheckMonospaceFontAssumptions.schedule();
                  break;
                }
            }
            this._linesContent.setLayerHinting(this._canUseLayerHinting),
              this._linesContent.setContain('strict');
            const t =
              this._context.viewLayout.getCurrentScrollTop() -
              e.bigNumbersDelta;
            this._linesContent.setTop(-t),
              this._linesContent.setLeft(
                -this._context.viewLayout.getCurrentScrollLeft()
              );
          }
          _ensureMaxLineWidth(e) {
            const t = Math.ceil(e);
            this._maxLineWidth < t &&
              ((this._maxLineWidth = t),
              this._context.model.setMaxLineWidth(this._maxLineWidth));
          }
          _computeScrollTopToRevealRange(e, t, i, n, r) {
            const s = e.top,
              o = e.height,
              a = s + o;
            let l, c, d, h;
            if (n && n.length > 0) {
              let e = n[0].startLineNumber,
                t = n[0].endLineNumber;
              for (let i = 1, r = n.length; i < r; i++) {
                const r = n[i];
                (e = Math.min(e, r.startLineNumber)),
                  (t = Math.max(t, r.endLineNumber));
              }
              (l = !1),
                (c = this._context.viewLayout.getVerticalOffsetForLineNumber(
                  e
                )),
                (d =
                  this._context.viewLayout.getVerticalOffsetForLineNumber(t) +
                  this._lineHeight);
            } else {
              if (!i) return -1;
              (l = !0),
                (c = this._context.viewLayout.getVerticalOffsetForLineNumber(
                  i.startLineNumber
                )),
                (d =
                  this._context.viewLayout.getVerticalOffsetForLineNumber(
                    i.endLineNumber
                  ) + this._lineHeight);
            }
            if (
              'mouse' !== t ||
              'default' !== this._cursorSurroundingLinesStyle
            ) {
              const e = Math.min(
                o / this._lineHeight / 2,
                this._cursorSurroundingLines
              );
              (c -= e * this._lineHeight),
                (d += Math.max(0, e - 1) * this._lineHeight);
            }
            if (((0 !== r && 4 !== r) || (d += this._lineHeight), d - c > o)) {
              if (!l) return -1;
              h = c;
            } else if (5 === r || 6 === r)
              if (6 === r && s <= c && d <= a) h = s;
              else {
                const e = c - Math.max(5 * this._lineHeight, 0.2 * o),
                  t = d - o;
                h = Math.max(t, e);
              }
            else if (1 === r || 2 === r)
              if (2 === r && s <= c && d <= a) h = s;
              else {
                const e = (c + d) / 2;
                h = Math.max(0, e - o / 2);
              }
            else
              h = this._computeMinimumScrolling(s, a, c, d, 3 === r, 4 === r);
            return h;
          }
          _computeScrollLeftToReveal(e) {
            const t = this._context.viewLayout.getCurrentViewport(),
              i = t.left,
              n = i + t.width;
            let r = 1073741824,
              s = 0;
            if ('range' === e.type) {
              const t = this._visibleRangesForLineRange(
                e.lineNumber,
                e.startColumn,
                e.endColumn
              );
              if (!t) return null;
              for (const e of t.ranges)
                (r = Math.min(r, e.left)), (s = Math.max(s, e.left + e.width));
            } else
              for (const t of e.selections) {
                if (t.startLineNumber !== t.endLineNumber) return null;
                const e = this._visibleRangesForLineRange(
                  t.startLineNumber,
                  t.startColumn,
                  t.endColumn
                );
                if (!e) return null;
                for (const t of e.ranges)
                  (r = Math.min(r, t.left)),
                    (s = Math.max(s, t.left + t.width));
              }
            return (
              (r = Math.max(0, r - ct.HORIZONTAL_EXTRA_PX)),
              (s += this._revealHorizontalRightPadding),
              'selections' === e.type && s - r > t.width
                ? null
                : {
                    scrollLeft: this._computeMinimumScrolling(i, n, r, s),
                    maxHorizontalOffset: s,
                  }
            );
          }
          _computeMinimumScrolling(e, t, i, n, r, s) {
            (r = !!r), (s = !!s);
            const o = (t |= 0) - (e |= 0);
            return (n |= 0) - (i |= 0) < o
              ? r
                ? i
                : s
                ? Math.max(0, n - o)
                : i < e
                ? i
                : n > t
                ? Math.max(0, n - o)
                : e
              : i;
          }
        }
        ct.HORIZONTAL_EXTRA_PX = 30;
        class dt extends nt {
          constructor(e) {
            super(), (this._context = e);
            const t = this._context.configuration.options.get(117);
            (this._decorationsLeft = t.decorationsLeft),
              (this._decorationsWidth = t.decorationsWidth),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options.get(117);
            return (
              (this._decorationsLeft = t.decorationsLeft),
              (this._decorationsWidth = t.decorationsWidth),
              !0
            );
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          _getDecorations(e) {
            const t = e.getDecorationsInViewport();
            let i = [],
              n = 0;
            for (let e = 0, r = t.length; e < r; e++) {
              const r = t[e],
                s = r.options.linesDecorationsClassName;
              s &&
                (i[n++] = new it(
                  r.range.startLineNumber,
                  r.range.endLineNumber,
                  s
                ));
              const o = r.options.firstLineDecorationClassName;
              o &&
                (i[n++] = new it(
                  r.range.startLineNumber,
                  r.range.startLineNumber,
                  o
                ));
            }
            return i;
          }
          prepareRender(e) {
            const t = e.visibleRange.startLineNumber,
              i = e.visibleRange.endLineNumber,
              n = this._render(t, i, this._getDecorations(e)),
              r =
                '" style="left:' +
                this._decorationsLeft.toString() +
                'px;width:' +
                this._decorationsWidth.toString() +
                'px;"></div>',
              s = [];
            for (let e = t; e <= i; e++) {
              const i = e - t,
                o = n[i];
              let a = '';
              for (let e = 0, t = o.length; e < t; e++)
                a += '<div class="cldr ' + o[e] + r;
              s[i] = a;
            }
            this._renderResult = s;
          }
          render(e, t) {
            return this._renderResult ? this._renderResult[t - e] : '';
          }
        }
        class ht extends nt {
          constructor(e) {
            super(),
              (this._context = e),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            return !0;
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          _getDecorations(e) {
            const t = e.getDecorationsInViewport();
            let i = [],
              n = 0;
            for (let e = 0, r = t.length; e < r; e++) {
              const r = t[e],
                s = r.options.marginClassName;
              s &&
                (i[n++] = new it(
                  r.range.startLineNumber,
                  r.range.endLineNumber,
                  s
                ));
            }
            return i;
          }
          prepareRender(e) {
            const t = e.visibleRange.startLineNumber,
              i = e.visibleRange.endLineNumber,
              n = this._render(t, i, this._getDecorations(e)),
              r = [];
            for (let e = t; e <= i; e++) {
              const i = e - t,
                s = n[i];
              let o = '';
              for (let e = 0, t = s.length; e < t; e++)
                o += '<div class="cmdr ' + s[e] + '" style=""></div>';
              r[i] = o;
            }
            this._renderResult = r;
          }
          render(e, t) {
            return this._renderResult ? this._renderResult[t - e] : '';
          }
        }
        class ut {
          constructor(e, t, i, n) {
            (this.r = ut._clamp(e)),
              (this.g = ut._clamp(t)),
              (this.b = ut._clamp(i)),
              (this.a = ut._clamp(n));
          }
          equals(e) {
            return (
              this.r === e.r &&
              this.g === e.g &&
              this.b === e.b &&
              this.a === e.a
            );
          }
          static _clamp(e) {
            return e < 0 ? 0 : e > 255 ? 255 : 0 | e;
          }
        }
        ut.Empty = new ut(0, 0, 0, 0);
        var gt = i(43775);
        class ft {
          constructor() {
            (this._onDidChange = new o.Q5()),
              (this.onDidChange = this._onDidChange.event),
              this._updateColorMap(),
              gt.RW.onDidChange((e) => {
                e.changedColorMap && this._updateColorMap();
              });
          }
          static getInstance() {
            return (
              this._INSTANCE || (this._INSTANCE = new ft()), this._INSTANCE
            );
          }
          _updateColorMap() {
            const e = gt.RW.getColorMap();
            if (!e)
              return (
                (this._colors = [ut.Empty]), void (this._backgroundIsLight = !0)
              );
            this._colors = [ut.Empty];
            for (let t = 1; t < e.length; t++) {
              const i = e[t].rgba;
              this._colors[t] = new ut(i.r, i.g, i.b, Math.round(255 * i.a));
            }
            let t = e[2].getRelativeLuminance();
            (this._backgroundIsLight = t >= 0.5),
              this._onDidChange.fire(void 0);
          }
          getColor(e) {
            return (
              (e < 1 || e >= this._colors.length) && (e = 2), this._colors[e]
            );
          }
          backgroundIsLight() {
            return this._backgroundIsLight;
          }
        }
        ft._INSTANCE = null;
        var pt = i(13824),
          mt = i(73910);
        const _t = (() => {
          const e = [];
          for (let t = 32; t <= 126; t++) e.push(t);
          return e.push(65533), e;
        })();
        var bt = i(85427);
        class vt {
          constructor(e, t) {
            (this.scale = t),
              (this.charDataNormal = vt.soften(e, 0.8)),
              (this.charDataLight = vt.soften(e, 50 / 60));
          }
          static soften(e, t) {
            let i = new Uint8ClampedArray(e.length);
            for (let n = 0, r = e.length; n < r; n++)
              i[n] = (0, bt.K)(e[n] * t);
            return i;
          }
          renderChar(e, t, i, n, r, s, o, a, l) {
            const c = 1 * this.scale,
              d = 2 * this.scale,
              h = l ? 1 : d;
            if (t + c > e.width || i + h > e.height)
              return void console.warn('bad render request outside image data');
            const u = a ? this.charDataLight : this.charDataNormal,
              g = ((e, t) =>
                (e -= 32) < 0 || e > 96 ? (t <= 2 ? (e + 96) % 96 : 95) : e)(
                n,
                o
              ),
              f = 4 * e.width,
              p = s.r,
              m = s.g,
              _ = s.b,
              b = r.r - p,
              v = r.g - m,
              y = r.b - _,
              w = e.data;
            let C = g * c * d,
              S = i * f + 4 * t;
            for (let e = 0; e < h; e++) {
              let e = S;
              for (let t = 0; t < c; t++) {
                const t = u[C++] / 255;
                (w[e++] = p + b * t),
                  (w[e++] = m + v * t),
                  (w[e++] = _ + y * t),
                  e++;
              }
              S += f;
            }
          }
          blockRenderChar(e, t, i, n, r, s, o) {
            const a = 1 * this.scale,
              l = 2 * this.scale,
              c = o ? 1 : l;
            if (t + a > e.width || i + c > e.height)
              return void console.warn('bad render request outside image data');
            const d = 4 * e.width,
              h = r.r,
              u = r.g,
              g = r.b,
              f = h + 0.5 * (n.r - h),
              p = u + 0.5 * (n.g - u),
              m = g + 0.5 * (n.b - g),
              _ = e.data;
            let b = i * d + 4 * t;
            for (let e = 0; e < c; e++) {
              let e = b;
              for (let t = 0; t < a; t++)
                (_[e++] = f), (_[e++] = p), (_[e++] = m), e++;
              b += d;
            }
          }
        }
        var yt = i(88289);
        const wt = {
            0: 0,
            1: 1,
            2: 2,
            3: 3,
            4: 4,
            5: 5,
            6: 6,
            7: 7,
            8: 8,
            9: 9,
            A: 10,
            B: 11,
            C: 12,
            D: 13,
            E: 14,
            F: 15,
          },
          Ct = (e) => {
            const t = new Uint8ClampedArray(e.length / 2);
            for (let i = 0; i < e.length; i += 2)
              t[i >> 1] = (wt[e[i]] << 4) | (15 & wt[e[i + 1]]);
            return t;
          },
          St = {
            1: (0, yt.I)(() =>
              Ct(
                '0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792'
              )
            ),
            2: (0, yt.I)(() =>
              Ct(
                '000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126'
              )
            ),
          };
        class kt {
          static create(e, t) {
            if (
              this.lastCreated &&
              e === this.lastCreated.scale &&
              t === this.lastFontFamily
            )
              return this.lastCreated;
            let i;
            return (
              (i = St[e]
                ? new vt(St[e](), e)
                : kt.createFromSampleData(kt.createSampleData(t).data, e)),
              (this.lastFontFamily = t),
              (this.lastCreated = i),
              i
            );
          }
          static createSampleData(e) {
            const t = document.createElement('canvas'),
              i = t.getContext('2d');
            (t.style.height = '16px'),
              (t.height = 16),
              (t.width = 960),
              (t.style.width = '960px'),
              (i.fillStyle = '#ffffff'),
              (i.font = `bold 16px ${e}`),
              (i.textBaseline = 'middle');
            let n = 0;
            for (const e of _t)
              i.fillText(String.fromCharCode(e), n, 8), (n += 10);
            return i.getImageData(0, 0, 960, 16);
          }
          static createFromSampleData(e, t) {
            if (61440 !== e.length)
              throw new Error('Unexpected source in MinimapCharRenderer');
            let i = kt._downsample(e, t);
            return new vt(i, t);
          }
          static _downsampleChar(e, t, i, n, r) {
            const s = 1 * r,
              o = 2 * r;
            let a = n,
              l = 0;
            for (let n = 0; n < o; n++) {
              const r = (n / o) * 16,
                c = ((n + 1) / o) * 16;
              for (let n = 0; n < s; n++) {
                const o = (n / s) * 10,
                  d = ((n + 1) / s) * 10;
                let h = 0,
                  u = 0;
                for (let i = r; i < c; i++) {
                  const n = t + 3840 * Math.floor(i),
                    r = 1 - (i - Math.floor(i));
                  for (let t = o; t < d; t++) {
                    const i = 1 - (t - Math.floor(t)),
                      s = n + 4 * Math.floor(t),
                      o = i * r;
                    (u += o), (h += ((e[s] * e[s + 3]) / 255) * o);
                  }
                }
                const g = h / u;
                (l = Math.max(l, g)), (i[a++] = (0, bt.K)(g));
              }
            }
            return l;
          }
          static _downsample(e, t) {
            const i = 2 * t * 1 * t,
              n = 96 * i,
              r = new Uint8ClampedArray(n);
            let s = 0,
              o = 0,
              a = 0;
            for (let n = 0; n < 96; n++)
              (a = Math.max(a, this._downsampleChar(e, o, r, s, t))),
                (s += i),
                (o += 40);
            if (a > 0) {
              const e = 255 / a;
              for (let t = 0; t < n; t++) r[t] *= e;
            }
            return r;
          }
        }
        var xt = i(84973);
        class Lt {
          constructor(e, t, i) {
            const n = e.options,
              r = n.get(115),
              s = n.get(117),
              o = s.minimap,
              a = n.get(36),
              l = n.get(56);
            (this.renderMinimap = o.renderMinimap),
              (this.size = l.size),
              (this.minimapHeightIsEditorHeight =
                o.minimapHeightIsEditorHeight),
              (this.scrollBeyondLastLine = n.get(86)),
              (this.showSlider = l.showSlider),
              (this.pixelRatio = r),
              (this.typicalHalfwidthCharacterWidth =
                a.typicalHalfwidthCharacterWidth),
              (this.lineHeight = n.get(51)),
              (this.minimapLeft = o.minimapLeft),
              (this.minimapWidth = o.minimapWidth),
              (this.minimapHeight = s.height),
              (this.canvasInnerWidth = o.minimapCanvasInnerWidth),
              (this.canvasInnerHeight = o.minimapCanvasInnerHeight),
              (this.canvasOuterWidth = o.minimapCanvasOuterWidth),
              (this.canvasOuterHeight = o.minimapCanvasOuterHeight),
              (this.isSampling = o.minimapIsSampling),
              (this.editorHeight = s.height),
              (this.fontScale = o.minimapScale),
              (this.minimapLineHeight = o.minimapLineHeight),
              (this.minimapCharWidth = 1 * this.fontScale),
              (this.charRenderer = (0, yt.I)(() =>
                kt.create(this.fontScale, a.fontFamily)
              )),
              (this.backgroundColor = Lt._getMinimapBackground(t, i));
          }
          static _getMinimapBackground(e, t) {
            const i = e.getColor(mt.kV);
            return i
              ? new ut(i.rgba.r, i.rgba.g, i.rgba.b, i.rgba.a)
              : t.getColor(2);
          }
          equals(e) {
            return (
              this.renderMinimap === e.renderMinimap &&
              this.size === e.size &&
              this.minimapHeightIsEditorHeight ===
                e.minimapHeightIsEditorHeight &&
              this.scrollBeyondLastLine === e.scrollBeyondLastLine &&
              this.showSlider === e.showSlider &&
              this.pixelRatio === e.pixelRatio &&
              this.typicalHalfwidthCharacterWidth ===
                e.typicalHalfwidthCharacterWidth &&
              this.lineHeight === e.lineHeight &&
              this.minimapLeft === e.minimapLeft &&
              this.minimapWidth === e.minimapWidth &&
              this.minimapHeight === e.minimapHeight &&
              this.canvasInnerWidth === e.canvasInnerWidth &&
              this.canvasInnerHeight === e.canvasInnerHeight &&
              this.canvasOuterWidth === e.canvasOuterWidth &&
              this.canvasOuterHeight === e.canvasOuterHeight &&
              this.isSampling === e.isSampling &&
              this.editorHeight === e.editorHeight &&
              this.fontScale === e.fontScale &&
              this.minimapLineHeight === e.minimapLineHeight &&
              this.minimapCharWidth === e.minimapCharWidth &&
              this.backgroundColor &&
              this.backgroundColor.equals(e.backgroundColor)
            );
          }
        }
        class Mt {
          constructor(e, t, i, n, r, s, o, a) {
            (this.scrollTop = e),
              (this.scrollHeight = t),
              (this.sliderNeeded = i),
              (this._computedSliderRatio = n),
              (this.sliderTop = r),
              (this.sliderHeight = s),
              (this.startLineNumber = o),
              (this.endLineNumber = a);
          }
          getDesiredScrollTopFromDelta(e) {
            const t = this.sliderTop + e;
            return Math.round(t / this._computedSliderRatio);
          }
          getDesiredScrollTopFromTouchLocation(e) {
            return Math.round(
              (e - this.sliderHeight / 2) / this._computedSliderRatio
            );
          }
          static create(e, t, i, n, r, s, o, a, l, c) {
            const d = e.pixelRatio,
              h = e.minimapLineHeight,
              u = Math.floor(e.canvasInnerHeight / h),
              g = e.lineHeight;
            if (e.minimapHeightIsEditorHeight) {
              const t =
                  o * e.lineHeight +
                  (e.scrollBeyondLastLine ? n - e.lineHeight : 0),
                i = Math.max(1, Math.floor((n * n) / t)),
                r = Math.max(0, e.minimapHeight - i),
                c = r / (l - n),
                d = a * c,
                h = r > 0,
                u = Math.floor(e.canvasInnerHeight / e.minimapLineHeight);
              return new Mt(a, l, h, c, d, i, 1, Math.min(s, u));
            }
            let f, p;
            if (r && i !== s) {
              const e = i - t + 1;
              f = Math.floor((e * h) / d);
            } else {
              const e = n / g;
              f = Math.floor((e * h) / d);
            }
            (p = e.scrollBeyondLastLine
              ? ((s - 1) * h) / d
              : Math.max(0, (s * h) / d - f)),
              (p = Math.min(e.minimapHeight - f, p));
            const m = p / (l - n),
              _ = a * m;
            let b = 0;
            if ((e.scrollBeyondLastLine && (b = n / g - 1), u >= s + b))
              return new Mt(a, l, p > 0, m, _, f, 1, s);
            {
              let e = Math.max(1, Math.floor(t - (_ * d) / h));
              c &&
                c.scrollHeight === l &&
                (c.scrollTop > a && (e = Math.min(e, c.startLineNumber)),
                c.scrollTop < a && (e = Math.max(e, c.startLineNumber)));
              const i = Math.min(s, e + u - 1);
              return new Mt(a, l, !0, m, _, f, e, i);
            }
          }
        }
        class Dt {
          constructor(e) {
            this.dy = e;
          }
          onContentChanged() {
            this.dy = -1;
          }
          onTokensChanged() {
            this.dy = -1;
          }
        }
        Dt.INVALID = new Dt(-1);
        class Nt {
          constructor(e, t, i) {
            (this.renderedLayout = e),
              (this._imageData = t),
              (this._renderedLines = new Be(() => Dt.INVALID)),
              this._renderedLines._set(e.startLineNumber, i);
          }
          linesEquals(e) {
            if (!this.scrollEquals(e)) return !1;
            const t = this._renderedLines._get().lines;
            for (let e = 0, i = t.length; e < i; e++)
              if (-1 === t[e].dy) return !1;
            return !0;
          }
          scrollEquals(e) {
            return (
              this.renderedLayout.startLineNumber === e.startLineNumber &&
              this.renderedLayout.endLineNumber === e.endLineNumber
            );
          }
          _get() {
            const e = this._renderedLines._get();
            return {
              imageData: this._imageData,
              rendLineNumberStart: e.rendLineNumberStart,
              lines: e.lines,
            };
          }
          onLinesChanged(e, t) {
            return this._renderedLines.onLinesChanged(e, t);
          }
          onLinesDeleted(e, t) {
            this._renderedLines.onLinesDeleted(e, t);
          }
          onLinesInserted(e, t) {
            this._renderedLines.onLinesInserted(e, t);
          }
          onTokensChanged(e) {
            return this._renderedLines.onTokensChanged(e);
          }
        }
        class Et {
          constructor(e, t, i, n) {
            (this._backgroundFillData = Et._createBackgroundFillData(t, i, n)),
              (this._buffers = [
                e.createImageData(t, i),
                e.createImageData(t, i),
              ]),
              (this._lastUsedBuffer = 0);
          }
          getBuffer() {
            this._lastUsedBuffer = 1 - this._lastUsedBuffer;
            const e = this._buffers[this._lastUsedBuffer];
            return e.data.set(this._backgroundFillData), e;
          }
          static _createBackgroundFillData(e, t, i) {
            const n = i.r,
              r = i.g,
              s = i.b,
              o = new Uint8ClampedArray(e * t * 4);
            let a = 0;
            for (let i = 0; i < t; i++)
              for (let t = 0; t < e; t++)
                (o[a] = n),
                  (o[a + 1] = r),
                  (o[a + 2] = s),
                  (o[a + 3] = 255),
                  (a += 4);
            return o;
          }
        }
        class Tt {
          constructor(e, t) {
            (this.samplingRatio = e), (this.minimapLines = t);
          }
          static compute(e, t, i) {
            if (0 === e.renderMinimap || !e.isSampling) return [null, []];
            const n = e.pixelRatio,
              r = e.lineHeight,
              s = e.scrollBeyondLastLine,
              { minimapLineCount: o } = H.gk.computeContainedMinimapLineCount({
                viewLineCount: t,
                scrollBeyondLastLine: s,
                height: e.editorHeight,
                lineHeight: r,
                pixelRatio: n,
              }),
              a = t / o,
              l = a / 2;
            if (!i || 0 === i.minimapLines.length) {
              let e = [];
              if (((e[0] = 1), o > 1)) {
                for (let t = 0, i = o - 1; t < i; t++)
                  e[t] = Math.round(t * a + l);
                e[o - 1] = t;
              }
              return [new Tt(a, e), []];
            }
            const c = i.minimapLines,
              d = c.length;
            let h = [],
              u = 0,
              g = 0,
              f = 1,
              p = [],
              m = null;
            for (let e = 0; e < o; e++) {
              const i = Math.max(f, Math.round(e * a)),
                n = Math.max(i, Math.round((e + 1) * a));
              for (; u < d && c[u] < i; ) {
                if (p.length < 10) {
                  const e = u + 1 + g;
                  m && 'deleted' === m.type && m._oldIndex === u - 1
                    ? m.deleteToLineNumber++
                    : ((m = {
                        type: 'deleted',
                        _oldIndex: u,
                        deleteFromLineNumber: e,
                        deleteToLineNumber: e,
                      }),
                      p.push(m)),
                    g--;
                }
                u++;
              }
              let r;
              if (u < d && c[u] <= n) (r = c[u]), u++;
              else if (
                ((r = 0 === e ? 1 : e + 1 === o ? t : Math.round(e * a + l)),
                p.length < 10)
              ) {
                const t = u + 1 + g;
                m && 'inserted' === m.type && m._i === e - 1
                  ? m.insertToLineNumber++
                  : ((m = {
                      type: 'inserted',
                      _i: e,
                      insertFromLineNumber: t,
                      insertToLineNumber: t,
                    }),
                    p.push(m)),
                  g++;
              }
              (h[e] = r), (f = r);
            }
            if (p.length < 10)
              for (; u < d; ) {
                const e = u + 1 + g;
                m && 'deleted' === m.type && m._oldIndex === u - 1
                  ? m.deleteToLineNumber++
                  : ((m = {
                      type: 'deleted',
                      _oldIndex: u,
                      deleteFromLineNumber: e,
                      deleteToLineNumber: e,
                    }),
                    p.push(m)),
                  g--,
                  u++;
              }
            else p = [{ type: 'flush' }];
            return [new Tt(a, h), p];
          }
          modelLineToMinimapLine(e) {
            return Math.min(
              this.minimapLines.length,
              Math.max(1, Math.round(e / this.samplingRatio))
            );
          }
          modelLineRangeToMinimapLineRange(e, t) {
            let i = this.modelLineToMinimapLine(e) - 1;
            for (; i > 0 && this.minimapLines[i - 1] >= e; ) i--;
            let n = this.modelLineToMinimapLine(t) - 1;
            for (
              ;
              n + 1 < this.minimapLines.length && this.minimapLines[n + 1] <= t;

            )
              n++;
            if (i === n) {
              const n = this.minimapLines[i];
              if (n < e || n > t) return null;
            }
            return [i + 1, n + 1];
          }
          decorationLineRangeToMinimapLineRange(e, t) {
            let i = this.modelLineToMinimapLine(e),
              n = this.modelLineToMinimapLine(t);
            return (
              e !== t &&
                n === i &&
                (n === this.minimapLines.length ? i > 1 && i-- : n++),
              [i, n]
            );
          }
          onLinesDeleted(e) {
            const t = e.toLineNumber - e.fromLineNumber + 1;
            let i = this.minimapLines.length,
              n = 0;
            for (
              let r = this.minimapLines.length - 1;
              r >= 0 && !(this.minimapLines[r] < e.fromLineNumber);
              r--
            )
              this.minimapLines[r] <= e.toLineNumber
                ? ((this.minimapLines[r] = Math.max(1, e.fromLineNumber - 1)),
                  (i = Math.min(i, r)),
                  (n = Math.max(n, r)))
                : (this.minimapLines[r] -= t);
            return [i, n];
          }
          onLinesInserted(e) {
            const t = e.toLineNumber - e.fromLineNumber + 1;
            for (
              let i = this.minimapLines.length - 1;
              i >= 0 && !(this.minimapLines[i] < e.fromLineNumber);
              i--
            )
              this.minimapLines[i] += t;
          }
        }
        class It extends N {
          constructor(e) {
            super(e),
              (this.tokensColorTracker = ft.getInstance()),
              (this._selections = []),
              (this._minimapSelections = null),
              (this.options = new Lt(
                this._context.configuration,
                this._context.theme,
                this.tokensColorTracker
              ));
            const [t] = Tt.compute(
              this.options,
              this._context.model.getLineCount(),
              null
            );
            (this._samplingState = t),
              (this._shouldCheckSampling = !1),
              (this._actual = new Ot(e.theme, this));
          }
          dispose() {
            this._actual.dispose(), super.dispose();
          }
          getDomNode() {
            return this._actual.getDomNode();
          }
          _onOptionsMaybeChanged() {
            const e = new Lt(
              this._context.configuration,
              this._context.theme,
              this.tokensColorTracker
            );
            return (
              !this.options.equals(e) &&
              ((this.options = e),
              this._recreateLineSampling(),
              this._actual.onDidChangeOptions(),
              !0)
            );
          }
          onConfigurationChanged(e) {
            return this._onOptionsMaybeChanged();
          }
          onCursorStateChanged(e) {
            return (
              (this._selections = e.selections),
              (this._minimapSelections = null),
              this._actual.onSelectionChanged()
            );
          }
          onDecorationsChanged(e) {
            return !!e.affectsMinimap && this._actual.onDecorationsChanged();
          }
          onFlushed(e) {
            return (
              this._samplingState && (this._shouldCheckSampling = !0),
              this._actual.onFlushed()
            );
          }
          onLinesChanged(e) {
            if (this._samplingState) {
              const t = this._samplingState.modelLineRangeToMinimapLineRange(
                e.fromLineNumber,
                e.toLineNumber
              );
              return !!t && this._actual.onLinesChanged(t[0], t[1]);
            }
            return this._actual.onLinesChanged(
              e.fromLineNumber,
              e.toLineNumber
            );
          }
          onLinesDeleted(e) {
            if (this._samplingState) {
              const [t, i] = this._samplingState.onLinesDeleted(e);
              return (
                t <= i && this._actual.onLinesChanged(t + 1, i + 1),
                (this._shouldCheckSampling = !0),
                !0
              );
            }
            return this._actual.onLinesDeleted(
              e.fromLineNumber,
              e.toLineNumber
            );
          }
          onLinesInserted(e) {
            return this._samplingState
              ? (this._samplingState.onLinesInserted(e),
                (this._shouldCheckSampling = !0),
                !0)
              : this._actual.onLinesInserted(e.fromLineNumber, e.toLineNumber);
          }
          onScrollChanged(e) {
            return this._actual.onScrollChanged();
          }
          onThemeChanged(e) {
            return (
              this._context.model.invalidateMinimapColorCache(),
              this._actual.onThemeChanged(),
              this._onOptionsMaybeChanged(),
              !0
            );
          }
          onTokensChanged(e) {
            if (this._samplingState) {
              let t = [];
              for (const i of e.ranges) {
                const e = this._samplingState.modelLineRangeToMinimapLineRange(
                  i.fromLineNumber,
                  i.toLineNumber
                );
                e && t.push({ fromLineNumber: e[0], toLineNumber: e[1] });
              }
              return !!t.length && this._actual.onTokensChanged(t);
            }
            return this._actual.onTokensChanged(e.ranges);
          }
          onTokensColorsChanged(e) {
            return this._actual.onTokensColorsChanged();
          }
          onZonesChanged(e) {
            return this._actual.onZonesChanged();
          }
          prepareRender(e) {
            this._shouldCheckSampling &&
              ((this._shouldCheckSampling = !1), this._recreateLineSampling());
          }
          render(e) {
            let t = e.visibleRange.startLineNumber,
              i = e.visibleRange.endLineNumber;
            this._samplingState &&
              ((t = this._samplingState.modelLineToMinimapLine(t)),
              (i = this._samplingState.modelLineToMinimapLine(i)));
            const n = {
              viewportContainsWhitespaceGaps:
                e.viewportData.whitespaceViewportData.length > 0,
              scrollWidth: e.scrollWidth,
              scrollHeight: e.scrollHeight,
              viewportStartLineNumber: t,
              viewportEndLineNumber: i,
              scrollTop: e.scrollTop,
              scrollLeft: e.scrollLeft,
              viewportWidth: e.viewportWidth,
              viewportHeight: e.viewportHeight,
            };
            this._actual.render(n);
          }
          _recreateLineSampling() {
            this._minimapSelections = null;
            const e = Boolean(this._samplingState),
              [t, i] = Tt.compute(
                this.options,
                this._context.model.getLineCount(),
                this._samplingState
              );
            if (((this._samplingState = t), e && this._samplingState))
              for (const e of i)
                switch (e.type) {
                  case 'deleted':
                    this._actual.onLinesDeleted(
                      e.deleteFromLineNumber,
                      e.deleteToLineNumber
                    );
                    break;
                  case 'inserted':
                    this._actual.onLinesInserted(
                      e.insertFromLineNumber,
                      e.insertToLineNumber
                    );
                    break;
                  case 'flush':
                    this._actual.onFlushed();
                }
          }
          getLineCount() {
            return this._samplingState
              ? this._samplingState.minimapLines.length
              : this._context.model.getLineCount();
          }
          getRealLineCount() {
            return this._context.model.getLineCount();
          }
          getLineContent(e) {
            return this._samplingState
              ? this._context.model.getLineContent(
                  this._samplingState.minimapLines[e - 1]
                )
              : this._context.model.getLineContent(e);
          }
          getMinimapLinesRenderingData(e, t, i) {
            if (this._samplingState) {
              let n = [];
              for (let r = 0, s = t - e + 1; r < s; r++)
                i[r]
                  ? (n[r] = this._context.model.getViewLineData(
                      this._samplingState.minimapLines[e + r - 1]
                    ))
                  : (n[r] = null);
              return n;
            }
            return this._context.model.getMinimapLinesRenderingData(e, t, i)
              .data;
          }
          getSelections() {
            if (null === this._minimapSelections)
              if (this._samplingState) {
                this._minimapSelections = [];
                for (const e of this._selections) {
                  const [
                    t,
                    i,
                  ] = this._samplingState.decorationLineRangeToMinimapLineRange(
                    e.startLineNumber,
                    e.endLineNumber
                  );
                  this._minimapSelections.push(
                    new u.Y(t, e.startColumn, i, e.endColumn)
                  );
                }
              } else this._minimapSelections = this._selections;
            return this._minimapSelections;
          }
          getMinimapDecorationsInViewport(e, t) {
            let i;
            if (this._samplingState) {
              const n = this._samplingState.minimapLines[e - 1],
                r = this._samplingState.minimapLines[t - 1];
              i = new X.e(n, 1, r, this._context.model.getLineMaxColumn(r));
            } else
              i = new X.e(e, 1, t, this._context.model.getLineMaxColumn(t));
            const n = this._context.model.getDecorationsInViewport(i);
            if (this._samplingState) {
              let e = [];
              for (const t of n) {
                if (!t.options.minimap) continue;
                const i = t.range,
                  n = this._samplingState.modelLineToMinimapLine(
                    i.startLineNumber
                  ),
                  r = this._samplingState.modelLineToMinimapLine(
                    i.endLineNumber
                  );
                e.push(
                  new pt.$l(
                    new X.e(n, i.startColumn, r, i.endColumn),
                    t.options
                  )
                );
              }
              return e;
            }
            return n;
          }
          getOptions() {
            return this._context.model.getTextModelOptions();
          }
          revealLineNumber(e) {
            this._samplingState &&
              (e = this._samplingState.minimapLines[e - 1]),
              this._context.model.revealRange(
                'mouse',
                !1,
                new X.e(e, 1, e, 1),
                1,
                0
              );
          }
          setScrollTop(e) {
            this._context.model.setScrollPosition({ scrollTop: e }, 1);
          }
        }
        class Ot extends a.JT {
          constructor(e, t) {
            super(),
              (this._renderDecorations = !1),
              (this._gestureInProgress = !1),
              (this._theme = e),
              (this._model = t),
              (this._lastRenderData = null),
              (this._buffers = null),
              (this._selectionColor = this._theme.getColor(mt.ov)),
              (this._domNode = (0, g.X)(document.createElement('div'))),
              E.write(this._domNode, 8),
              this._domNode.setClassName(this._getMinimapDomNodeClassName()),
              this._domNode.setPosition('absolute'),
              this._domNode.setAttribute('role', 'presentation'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              (this._shadow = (0, g.X)(document.createElement('div'))),
              this._shadow.setClassName('minimap-shadow-hidden'),
              this._domNode.appendChild(this._shadow),
              (this._canvas = (0, g.X)(document.createElement('canvas'))),
              this._canvas.setPosition('absolute'),
              this._canvas.setLeft(0),
              this._domNode.appendChild(this._canvas),
              (this._decorationsCanvas = (0, g.X)(
                document.createElement('canvas')
              )),
              this._decorationsCanvas.setPosition('absolute'),
              this._decorationsCanvas.setClassName('minimap-decorations-layer'),
              this._decorationsCanvas.setLeft(0),
              this._domNode.appendChild(this._decorationsCanvas),
              (this._slider = (0, g.X)(document.createElement('div'))),
              this._slider.setPosition('absolute'),
              this._slider.setClassName('minimap-slider'),
              this._slider.setLayerHinting(!0),
              this._slider.setContain('strict'),
              this._domNode.appendChild(this._slider),
              (this._sliderHorizontal = (0, g.X)(
                document.createElement('div')
              )),
              this._sliderHorizontal.setPosition('absolute'),
              this._sliderHorizontal.setClassName('minimap-slider-horizontal'),
              this._slider.appendChild(this._sliderHorizontal),
              this._applyLayout(),
              (this._mouseDownListener = r.mu(
                this._domNode.domNode,
                'mousedown',
                (e) => {
                  if (
                    (e.preventDefault(),
                    0 === this._model.options.renderMinimap)
                  )
                    return;
                  if (!this._lastRenderData) return;
                  if ('proportional' !== this._model.options.size) {
                    if (e.leftButton && this._lastRenderData) {
                      const t = r.i(this._slider.domNode),
                        i = t.top + t.height / 2;
                      this._startSliderDragging(
                        e.buttons,
                        e.posx,
                        i,
                        e.posy,
                        this._lastRenderData.renderedLayout
                      );
                    }
                    return;
                  }
                  const t = this._model.options.minimapLineHeight,
                    i =
                      (this._model.options.canvasInnerHeight /
                        this._model.options.canvasOuterHeight) *
                      e.browserEvent.offsetY;
                  let n =
                    Math.floor(i / t) +
                    this._lastRenderData.renderedLayout.startLineNumber;
                  (n = Math.min(n, this._model.getLineCount())),
                    this._model.revealLineNumber(n);
                }
              )),
              (this._sliderMouseMoveMonitor = new v.Z()),
              (this._sliderMouseDownListener = r.mu(
                this._slider.domNode,
                'mousedown',
                (e) => {
                  e.preventDefault(),
                    e.stopPropagation(),
                    e.leftButton &&
                      this._lastRenderData &&
                      this._startSliderDragging(
                        e.buttons,
                        e.posx,
                        e.posy,
                        e.posy,
                        this._lastRenderData.renderedLayout
                      );
                }
              )),
              (this._gestureDisposable = p.o.addTarget(this._domNode.domNode)),
              (this._sliderTouchStartListener = r.nm(
                this._domNode.domNode,
                p.t.Start,
                (e) => {
                  e.preventDefault(),
                    e.stopPropagation(),
                    this._lastRenderData &&
                      (this._slider.toggleClassName('active', !0),
                      (this._gestureInProgress = !0),
                      this.scrollDueToTouchEvent(e));
                },
                { passive: !1 }
              )),
              (this._sliderTouchMoveListener = r.nm(
                this._domNode.domNode,
                p.t.Change,
                (e) => {
                  e.preventDefault(),
                    e.stopPropagation(),
                    this._lastRenderData &&
                      this._gestureInProgress &&
                      this.scrollDueToTouchEvent(e);
                },
                { passive: !1 }
              )),
              (this._sliderTouchEndListener = r.mu(
                this._domNode.domNode,
                p.t.End,
                (e) => {
                  e.preventDefault(),
                    e.stopPropagation(),
                    (this._gestureInProgress = !1),
                    this._slider.toggleClassName('active', !1);
                }
              ));
          }
          _startSliderDragging(e, t, i, n, r) {
            this._slider.toggleClassName('active', !0);
            const s = (e, n) => {
              const s = Math.abs(n - t);
              if (f.ED && s > 140)
                return void this._model.setScrollTop(r.scrollTop);
              const o = e - i;
              this._model.setScrollTop(r.getDesiredScrollTopFromDelta(o));
            };
            n !== i && s(n, t),
              this._sliderMouseMoveMonitor.startMonitoring(
                this._slider.domNode,
                e,
                v.e,
                (e) => s(e.posy, e.posx),
                () => {
                  this._slider.toggleClassName('active', !1);
                }
              );
          }
          scrollDueToTouchEvent(e) {
            const t = this._domNode.domNode.getBoundingClientRect().top,
              i = this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(
                e.pageY - t
              );
            this._model.setScrollTop(i);
          }
          dispose() {
            this._mouseDownListener.dispose(),
              this._sliderMouseMoveMonitor.dispose(),
              this._sliderMouseDownListener.dispose(),
              this._gestureDisposable.dispose(),
              this._sliderTouchStartListener.dispose(),
              this._sliderTouchMoveListener.dispose(),
              this._sliderTouchEndListener.dispose(),
              super.dispose();
          }
          _getMinimapDomNodeClassName() {
            return 'always' === this._model.options.showSlider
              ? 'minimap slider-always'
              : 'minimap slider-mouseover';
          }
          getDomNode() {
            return this._domNode;
          }
          _applyLayout() {
            this._domNode.setLeft(this._model.options.minimapLeft),
              this._domNode.setWidth(this._model.options.minimapWidth),
              this._domNode.setHeight(this._model.options.minimapHeight),
              this._shadow.setHeight(this._model.options.minimapHeight),
              this._canvas.setWidth(this._model.options.canvasOuterWidth),
              this._canvas.setHeight(this._model.options.canvasOuterHeight),
              (this._canvas.domNode.width = this._model.options.canvasInnerWidth),
              (this._canvas.domNode.height = this._model.options.canvasInnerHeight),
              this._decorationsCanvas.setWidth(
                this._model.options.canvasOuterWidth
              ),
              this._decorationsCanvas.setHeight(
                this._model.options.canvasOuterHeight
              ),
              (this._decorationsCanvas.domNode.width = this._model.options.canvasInnerWidth),
              (this._decorationsCanvas.domNode.height = this._model.options.canvasInnerHeight),
              this._slider.setWidth(this._model.options.minimapWidth);
          }
          _getBuffer() {
            return (
              this._buffers ||
                (this._model.options.canvasInnerWidth > 0 &&
                  this._model.options.canvasInnerHeight > 0 &&
                  (this._buffers = new Et(
                    this._canvas.domNode.getContext('2d'),
                    this._model.options.canvasInnerWidth,
                    this._model.options.canvasInnerHeight,
                    this._model.options.backgroundColor
                  ))),
              this._buffers ? this._buffers.getBuffer() : null
            );
          }
          onDidChangeOptions() {
            (this._lastRenderData = null),
              (this._buffers = null),
              this._applyLayout(),
              this._domNode.setClassName(this._getMinimapDomNodeClassName());
          }
          onSelectionChanged() {
            return (this._renderDecorations = !0), !0;
          }
          onDecorationsChanged() {
            return (this._renderDecorations = !0), !0;
          }
          onFlushed() {
            return (this._lastRenderData = null), !0;
          }
          onLinesChanged(e, t) {
            return (
              !!this._lastRenderData &&
              this._lastRenderData.onLinesChanged(e, t)
            );
          }
          onLinesDeleted(e, t) {
            return (
              this._lastRenderData && this._lastRenderData.onLinesDeleted(e, t),
              !0
            );
          }
          onLinesInserted(e, t) {
            return (
              this._lastRenderData &&
                this._lastRenderData.onLinesInserted(e, t),
              !0
            );
          }
          onScrollChanged() {
            return (this._renderDecorations = !0), !0;
          }
          onThemeChanged() {
            return (
              (this._selectionColor = this._theme.getColor(mt.ov)),
              (this._renderDecorations = !0),
              !0
            );
          }
          onTokensChanged(e) {
            return (
              !!this._lastRenderData && this._lastRenderData.onTokensChanged(e)
            );
          }
          onTokensColorsChanged() {
            return (this._lastRenderData = null), (this._buffers = null), !0;
          }
          onZonesChanged() {
            return (this._lastRenderData = null), !0;
          }
          render(e) {
            if (0 === this._model.options.renderMinimap)
              return (
                this._shadow.setClassName('minimap-shadow-hidden'),
                this._sliderHorizontal.setWidth(0),
                void this._sliderHorizontal.setHeight(0)
              );
            e.scrollLeft + e.viewportWidth >= e.scrollWidth
              ? this._shadow.setClassName('minimap-shadow-hidden')
              : this._shadow.setClassName('minimap-shadow-visible');
            const t = Mt.create(
              this._model.options,
              e.viewportStartLineNumber,
              e.viewportEndLineNumber,
              e.viewportHeight,
              e.viewportContainsWhitespaceGaps,
              this._model.getLineCount(),
              this._model.getRealLineCount(),
              e.scrollTop,
              e.scrollHeight,
              this._lastRenderData ? this._lastRenderData.renderedLayout : null
            );
            this._slider.setDisplay(t.sliderNeeded ? 'block' : 'none'),
              this._slider.setTop(t.sliderTop),
              this._slider.setHeight(t.sliderHeight);
            const i =
                e.scrollLeft /
                this._model.options.typicalHalfwidthCharacterWidth,
              n = Math.min(
                this._model.options.minimapWidth,
                Math.round(
                  (i * this._model.options.minimapCharWidth) /
                    this._model.options.pixelRatio
                )
              );
            this._sliderHorizontal.setLeft(n),
              this._sliderHorizontal.setWidth(
                this._model.options.minimapWidth - n
              ),
              this._sliderHorizontal.setTop(0),
              this._sliderHorizontal.setHeight(t.sliderHeight),
              this.renderDecorations(t),
              (this._lastRenderData = this.renderLines(t));
          }
          renderDecorations(e) {
            if (this._renderDecorations) {
              this._renderDecorations = !1;
              const t = this._model.getSelections(),
                i = this._model.getMinimapDecorationsInViewport(
                  e.startLineNumber,
                  e.endLineNumber
                ),
                {
                  canvasInnerWidth: n,
                  canvasInnerHeight: r,
                } = this._model.options,
                s = this._model.options.minimapLineHeight,
                o = this._model.options.minimapCharWidth,
                a = this._model.getOptions().tabSize,
                l = this._decorationsCanvas.domNode.getContext('2d');
              l.clearRect(0, 0, n, r);
              const c = new Map();
              for (let i = 0; i < t.length; i++) {
                const n = t[i];
                for (let t = n.startLineNumber; t <= n.endLineNumber; t++)
                  this.renderDecorationOnLine(
                    l,
                    c,
                    n,
                    this._selectionColor,
                    e,
                    t,
                    s,
                    s,
                    a,
                    o
                  );
              }
              for (let t = 0; t < i.length; t++) {
                const n = i[t];
                if (!n.options.minimap) continue;
                const r = n.options.minimap.getColor(this._theme);
                for (
                  let t = n.range.startLineNumber;
                  t <= n.range.endLineNumber;
                  t++
                )
                  switch (n.options.minimap.position) {
                    case xt.F5.Inline:
                      this.renderDecorationOnLine(
                        l,
                        c,
                        n.range,
                        r,
                        e,
                        t,
                        s,
                        s,
                        a,
                        o
                      );
                      continue;
                    case xt.F5.Gutter:
                      const i = (t - e.startLineNumber) * s,
                        d = 2;
                      this.renderDecoration(l, r, d, i, 2, s);
                      continue;
                  }
              }
            }
          }
          renderDecorationOnLine(e, t, i, n, r, s, o, a, l, c) {
            const d = (s - r.startLineNumber) * a;
            if (d + o < 0 || d > this._model.options.canvasInnerHeight) return;
            let h = t.get(s);
            const u = !h;
            if (!h) {
              const e = this._model.getLineContent(s);
              h = [H.y0];
              for (let t = 1; t < e.length + 1; t++) {
                const i = e.charCodeAt(t - 1),
                  n = 9 === i ? l * c : we.K7(i) ? 2 * c : c;
                h[t] = h[t - 1] + n;
              }
              t.set(s, h);
            }
            const {
                startColumn: g,
                endColumn: f,
                startLineNumber: p,
                endLineNumber: m,
              } = i,
              _ = p === s ? h[g - 1] : H.y0,
              b = m > s ? h.length - 1 : f - 1;
            if (b > 0) {
              const t = h[b] - _ || 2;
              this.renderDecoration(e, n, _, d, t, o);
            }
            u && this.renderLineHighlight(e, n, d, o);
          }
          renderLineHighlight(e, t, i, n) {
            (e.fillStyle = (t && t.transparent(0.5).toString()) || ''),
              e.fillRect(H.y0, i, e.canvas.width, n);
          }
          renderDecoration(e, t, i, n, r, s) {
            (e.fillStyle = (t && t.toString()) || ''), e.fillRect(i, n, r, s);
          }
          renderLines(e) {
            const t = e.startLineNumber,
              i = e.endLineNumber,
              n = this._model.options.minimapLineHeight;
            if (this._lastRenderData && this._lastRenderData.linesEquals(e)) {
              const t = this._lastRenderData._get();
              return new Nt(e, t.imageData, t.lines);
            }
            const r = this._getBuffer();
            if (!r) return null;
            let [s, o, a] = Ot._renderUntouchedLines(
              r,
              t,
              i,
              n,
              this._lastRenderData
            );
            const l = this._model.getMinimapLinesRenderingData(t, i, a),
              c = this._model.getOptions().tabSize,
              d = this._model.options.backgroundColor,
              h = this._model.tokensColorTracker,
              u = h.backgroundIsLight(),
              g = this._model.options.renderMinimap,
              f = this._model.options.charRenderer(),
              p = this._model.options.fontScale,
              m = this._model.options.minimapCharWidth,
              _ = (1 === g ? 2 : 3) * p,
              b = n > _ ? Math.floor((n - _) / 2) : 0;
            let v = 0;
            const y = [];
            for (let e = 0, s = i - t + 1; e < s; e++)
              a[e] && Ot._renderLine(r, d, u, g, m, h, f, v, b, c, l[e], p, n),
                (y[e] = new Dt(v)),
                (v += n);
            const w = -1 === s ? 0 : s,
              C = (-1 === o ? r.height : o) - w;
            return (
              this._canvas.domNode
                .getContext('2d')
                .putImageData(r, 0, 0, 0, w, r.width, C),
              new Nt(e, r, y)
            );
          }
          static _renderUntouchedLines(e, t, i, n, r) {
            const s = [];
            if (!r) {
              for (let e = 0, n = i - t + 1; e < n; e++) s[e] = !0;
              return [-1, -1, s];
            }
            const o = r._get(),
              a = o.imageData.data,
              l = o.rendLineNumberStart,
              c = o.lines,
              d = c.length,
              h = e.width,
              u = e.data,
              g = (i - t + 1) * n * h * 4;
            let f = -1,
              p = -1,
              m = -1,
              _ = -1,
              b = -1,
              v = -1,
              y = 0;
            for (let e = t; e <= i; e++) {
              const i = e - t,
                r = e - l,
                o = r >= 0 && r < d ? c[r].dy : -1;
              if (-1 === o) {
                (s[i] = !0), (y += n);
                continue;
              }
              const w = o * h * 4,
                C = (o + n) * h * 4,
                S = y * h * 4,
                k = (y + n) * h * 4;
              _ === w && v === S
                ? ((_ = C), (v = k))
                : (-1 !== m &&
                    (u.set(a.subarray(m, _), b),
                    -1 === f && 0 === m && m === b && (f = _),
                    -1 === p && _ === g && m === b && (p = m)),
                  (m = w),
                  (_ = C),
                  (b = S),
                  (v = k)),
                (s[i] = !1),
                (y += n);
            }
            return (
              -1 !== m &&
                (u.set(a.subarray(m, _), b),
                -1 === f && 0 === m && m === b && (f = _),
                -1 === p && _ === g && m === b && (p = m)),
              [-1 === f ? -1 : f / (4 * h), -1 === p ? -1 : p / (4 * h), s]
            );
          }
          static _renderLine(e, t, i, n, r, s, o, a, l, c, d, h, u) {
            const g = d.content,
              f = d.tokens,
              p = e.width - r,
              m = 1 === u;
            let _ = H.y0,
              b = 0,
              v = 0;
            for (let d = 0, u = f.getCount(); d < u; d++) {
              const u = f.getEndOffset(d),
                y = f.getForeground(d),
                w = s.getColor(y);
              for (; b < u; b++) {
                if (_ > p) return;
                const s = g.charCodeAt(b);
                if (9 === s) {
                  const e = c - ((b + v) % c);
                  (v += e - 1), (_ += e * r);
                } else if (32 === s) _ += r;
                else {
                  const c = we.K7(s) ? 2 : 1;
                  for (let d = 0; d < c; d++)
                    if (
                      (2 === n
                        ? o.blockRenderChar(e, _, a + l, w, t, i, m)
                        : o.renderChar(e, _, a + l, s, w, t, h, i, m),
                      (_ += r),
                      _ > p)
                    )
                      return;
                }
              }
            }
          }
        }
        (0, Y.Ic)((e, t) => {
          const i = e.getColor(mt.kV);
          i &&
            t.addRule(
              `.monaco-editor .minimap > canvas { opacity: ${i.rgba.a}; will-change: opacity; }`
            );
          const n = e.getColor(mt.CA);
          n &&
            t.addRule(
              `.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${n}; }`
            );
          const r = e.getColor(mt.Xy);
          r &&
            t.addRule(
              `.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${r}; }`
            );
          const s = e.getColor(mt.br);
          s &&
            t.addRule(
              `.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${s}; }`
            );
          const o = e.getColor(mt._w);
          o &&
            t.addRule(
              `.monaco-editor .minimap-shadow-visible { box-shadow: ${o} -6px 0 6px -6px inset; }`
            );
        });
        class At extends N {
          constructor(e) {
            super(e);
            const t = this._context.configuration.options.get(117);
            (this._widgets = {}),
              (this._verticalScrollbarWidth = t.verticalScrollbarWidth),
              (this._minimapWidth = t.minimap.minimapWidth),
              (this._horizontalScrollbarHeight = t.horizontalScrollbarHeight),
              (this._editorHeight = t.height),
              (this._editorWidth = t.width),
              (this._domNode = (0, g.X)(document.createElement('div'))),
              E.write(this._domNode, 4),
              this._domNode.setClassName('overlayWidgets');
          }
          dispose() {
            super.dispose(), (this._widgets = {});
          }
          getDomNode() {
            return this._domNode;
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options.get(117);
            return (
              (this._verticalScrollbarWidth = t.verticalScrollbarWidth),
              (this._minimapWidth = t.minimap.minimapWidth),
              (this._horizontalScrollbarHeight = t.horizontalScrollbarHeight),
              (this._editorHeight = t.height),
              (this._editorWidth = t.width),
              !0
            );
          }
          addWidget(e) {
            const t = (0, g.X)(e.getDomNode());
            (this._widgets[e.getId()] = {
              widget: e,
              preference: null,
              domNode: t,
            }),
              t.setPosition('absolute'),
              t.setAttribute('widgetId', e.getId()),
              this._domNode.appendChild(t),
              this.setShouldRender();
          }
          setWidgetPosition(e, t) {
            const i = this._widgets[e.getId()];
            return (
              i.preference !== t &&
              ((i.preference = t), this.setShouldRender(), !0)
            );
          }
          removeWidget(e) {
            const t = e.getId();
            if (this._widgets.hasOwnProperty(t)) {
              const e = this._widgets[t].domNode.domNode;
              delete this._widgets[t],
                e.parentNode.removeChild(e),
                this.setShouldRender();
            }
          }
          _renderWidget(e) {
            const t = e.domNode;
            if (null !== e.preference)
              if (0 === e.preference)
                t.setTop(0),
                  t.setRight(
                    2 * this._verticalScrollbarWidth + this._minimapWidth
                  );
              else if (1 === e.preference) {
                const e = t.domNode.clientHeight;
                t.setTop(
                  this._editorHeight - e - 2 * this._horizontalScrollbarHeight
                ),
                  t.setRight(
                    2 * this._verticalScrollbarWidth + this._minimapWidth
                  );
              } else
                2 === e.preference &&
                  (t.setTop(0), (t.domNode.style.right = '50%'));
            else t.unsetTop();
          }
          prepareRender(e) {}
          render(e) {
            this._domNode.setWidth(this._editorWidth);
            const t = Object.keys(this._widgets);
            for (let e = 0, i = t.length; e < i; e++) {
              const i = t[e];
              this._renderWidget(this._widgets[i]);
            }
          }
        }
        var Rt = i(41264);
        class Pt {
          constructor(e, t) {
            const i = e.options;
            (this.lineHeight = i.get(51)),
              (this.pixelRatio = i.get(115)),
              (this.overviewRulerLanes = i.get(65)),
              (this.renderBorder = i.get(64));
            const n = t.getColor(xe.zw);
            (this.borderColor = n ? n.toString() : null),
              (this.hideCursor = i.get(44));
            const r = t.getColor(xe.n0);
            (this.cursorColor = r ? r.transparent(0.7).toString() : null),
              (this.themeType = t.type);
            const s = i.get(56),
              o = s.enabled,
              a = s.side,
              l = o ? t.getColor(xe.e_) || gt.RW.getDefaultBackground() : null;
            this.backgroundColor =
              null === l || 'left' === a ? null : Rt.Il.Format.CSS.formatHex(l);
            const c = i.get(117).overviewRuler;
            (this.top = c.top),
              (this.right = c.right),
              (this.domWidth = c.width),
              (this.domHeight = c.height),
              0 === this.overviewRulerLanes
                ? ((this.canvasWidth = 0), (this.canvasHeight = 0))
                : ((this.canvasWidth = (this.domWidth * this.pixelRatio) | 0),
                  (this.canvasHeight = (this.domHeight * this.pixelRatio) | 0));
            const [d, h] = this._initLanes(
              1,
              this.canvasWidth,
              this.overviewRulerLanes
            );
            (this.x = d), (this.w = h);
          }
          _initLanes(e, t, i) {
            const n = t - e;
            if (i >= 3) {
              const t = Math.floor(n / 3),
                i = Math.floor(n / 3),
                r = n - t - i,
                s = e + t;
              return [
                [0, e, s, e, e + t + r, e, s, e],
                [0, t, r, t + r, i, t + r + i, r + i, t + r + i],
              ];
            }
            if (2 === i) {
              const t = Math.floor(n / 2),
                i = n - t;
              return [
                [0, e, e, e, e + t, e, e, e],
                [0, t, t, t, i, t + i, t + i, t + i],
              ];
            }
            return [
              [0, e, e, e, e, e, e, e],
              [0, n, n, n, n, n, n, n],
            ];
          }
          equals(e) {
            return (
              this.lineHeight === e.lineHeight &&
              this.pixelRatio === e.pixelRatio &&
              this.overviewRulerLanes === e.overviewRulerLanes &&
              this.renderBorder === e.renderBorder &&
              this.borderColor === e.borderColor &&
              this.hideCursor === e.hideCursor &&
              this.cursorColor === e.cursorColor &&
              this.themeType === e.themeType &&
              this.backgroundColor === e.backgroundColor &&
              this.top === e.top &&
              this.right === e.right &&
              this.domWidth === e.domWidth &&
              this.domHeight === e.domHeight &&
              this.canvasWidth === e.canvasWidth &&
              this.canvasHeight === e.canvasHeight
            );
          }
        }
        class Ft extends N {
          constructor(e) {
            super(e),
              (this._domNode = (0, g.X)(document.createElement('canvas'))),
              this._domNode.setClassName('decorationsOverviewRuler'),
              this._domNode.setPosition('absolute'),
              this._domNode.setLayerHinting(!0),
              this._domNode.setContain('strict'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              this._updateSettings(!1),
              (this._tokensColorTrackerListener = gt.RW.onDidChange((e) => {
                e.changedColorMap && this._updateSettings(!0);
              })),
              (this._cursorPositions = []);
          }
          dispose() {
            super.dispose(), this._tokensColorTrackerListener.dispose();
          }
          _updateSettings(e) {
            const t = new Pt(this._context.configuration, this._context.theme);
            return !(
              (this._settings && this._settings.equals(t)) ||
              ((this._settings = t),
              this._domNode.setTop(this._settings.top),
              this._domNode.setRight(this._settings.right),
              this._domNode.setWidth(this._settings.domWidth),
              this._domNode.setHeight(this._settings.domHeight),
              (this._domNode.domNode.width = this._settings.canvasWidth),
              (this._domNode.domNode.height = this._settings.canvasHeight),
              e && this._render(),
              0)
            );
          }
          onConfigurationChanged(e) {
            return this._updateSettings(!1);
          }
          onCursorStateChanged(e) {
            this._cursorPositions = [];
            for (let t = 0, i = e.selections.length; t < i; t++)
              this._cursorPositions[t] = e.selections[t].getPosition();
            return this._cursorPositions.sort(Q.L.compare), !0;
          }
          onDecorationsChanged(e) {
            return !!e.affectsOverviewRuler;
          }
          onFlushed(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollHeightChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          onThemeChanged(e) {
            return (
              this._context.model.invalidateOverviewRulerColorCache(),
              this._updateSettings(!1)
            );
          }
          getDomNode() {
            return this._domNode.domNode;
          }
          prepareRender(e) {}
          render(e) {
            this._render();
          }
          _render() {
            if (0 === this._settings.overviewRulerLanes)
              return void this._domNode.setBackgroundColor(
                this._settings.backgroundColor
                  ? this._settings.backgroundColor
                  : ''
              );
            const e = this._settings.canvasWidth,
              t = this._settings.canvasHeight,
              i = this._settings.lineHeight,
              n = this._context.viewLayout,
              r = t / this._context.viewLayout.getScrollHeight(),
              s = this._context.model.getAllOverviewRulerDecorations(
                this._context.theme
              ),
              o = (6 * this._settings.pixelRatio) | 0,
              a = (o / 2) | 0,
              l = this._domNode.domNode.getContext('2d');
            null === this._settings.backgroundColor
              ? l.clearRect(0, 0, e, t)
              : ((l.fillStyle = this._settings.backgroundColor),
                l.fillRect(0, 0, e, t));
            const c = this._settings.x,
              d = this._settings.w,
              h = Object.keys(s);
            h.sort();
            for (let e = 0, u = h.length; e < u; e++) {
              const u = h[e],
                g = s[u];
              l.fillStyle = u;
              let f = 0,
                p = 0,
                m = 0;
              for (let e = 0, s = g.length; e < s; e++) {
                const s = g[3 * e],
                  h = g[3 * e + 1],
                  u = g[3 * e + 2];
                let _ = (n.getVerticalOffsetForLineNumber(h) * r) | 0,
                  b = ((n.getVerticalOffsetForLineNumber(u) + i) * r) | 0;
                if (b - _ < o) {
                  let e = ((_ + b) / 2) | 0;
                  e < a ? (e = a) : e + a > t && (e = t - a),
                    (_ = e - a),
                    (b = e + a);
                }
                _ > m + 1 || s !== f
                  ? (0 !== e && l.fillRect(c[f], p, d[f], m - p),
                    (f = s),
                    (p = _),
                    (m = b))
                  : b > m && (m = b);
              }
              l.fillRect(c[f], p, d[f], m - p);
            }
            if (!this._settings.hideCursor && this._settings.cursorColor) {
              const e = (2 * this._settings.pixelRatio) | 0,
                i = (e / 2) | 0,
                s = this._settings.x[7],
                o = this._settings.w[7];
              l.fillStyle = this._settings.cursorColor;
              let a = -100,
                c = -100;
              for (let d = 0, h = this._cursorPositions.length; d < h; d++) {
                const h = this._cursorPositions[d];
                let u =
                  (n.getVerticalOffsetForLineNumber(h.lineNumber) * r) | 0;
                u < i ? (u = i) : u + i > t && (u = t - i);
                const g = u - i,
                  f = g + e;
                g > c + 1
                  ? (0 !== d && l.fillRect(s, a, o, c - a), (a = g), (c = f))
                  : f > c && (c = f);
              }
              l.fillRect(s, a, o, c - a);
            }
            this._settings.renderBorder &&
              this._settings.borderColor &&
              this._settings.overviewRulerLanes > 0 &&
              (l.beginPath(),
              (l.lineWidth = 1),
              (l.strokeStyle = this._settings.borderColor),
              l.moveTo(0, 0),
              l.lineTo(0, t),
              l.stroke(),
              l.moveTo(0, 0),
              l.lineTo(e, 0),
              l.stroke());
          }
        }
        var Bt = i(92003);
        class Wt extends D {
          constructor(e, t) {
            super(), (this._context = e);
            const i = this._context.configuration.options;
            (this._domNode = (0, g.X)(document.createElement('canvas'))),
              this._domNode.setClassName(t),
              this._domNode.setPosition('absolute'),
              this._domNode.setLayerHinting(!0),
              this._domNode.setContain('strict'),
              (this._zoneManager = new Bt.Tj((e) =>
                this._context.viewLayout.getVerticalOffsetForLineNumber(e)
              )),
              this._zoneManager.setDOMWidth(0),
              this._zoneManager.setDOMHeight(0),
              this._zoneManager.setOuterHeight(
                this._context.viewLayout.getScrollHeight()
              ),
              this._zoneManager.setLineHeight(i.get(51)),
              this._zoneManager.setPixelRatio(i.get(115)),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this), super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            return (
              e.hasChanged(51) &&
                (this._zoneManager.setLineHeight(t.get(51)), this._render()),
              e.hasChanged(115) &&
                (this._zoneManager.setPixelRatio(t.get(115)),
                this._domNode.setWidth(this._zoneManager.getDOMWidth()),
                this._domNode.setHeight(this._zoneManager.getDOMHeight()),
                (this._domNode.domNode.width = this._zoneManager.getCanvasWidth()),
                (this._domNode.domNode.height = this._zoneManager.getCanvasHeight()),
                this._render()),
              !0
            );
          }
          onFlushed(e) {
            return this._render(), !0;
          }
          onScrollChanged(e) {
            return (
              e.scrollHeightChanged &&
                (this._zoneManager.setOuterHeight(e.scrollHeight),
                this._render()),
              !0
            );
          }
          onZonesChanged(e) {
            return this._render(), !0;
          }
          getDomNode() {
            return this._domNode.domNode;
          }
          setLayout(e) {
            this._domNode.setTop(e.top), this._domNode.setRight(e.right);
            let t = !1;
            (t = this._zoneManager.setDOMWidth(e.width) || t),
              (t = this._zoneManager.setDOMHeight(e.height) || t),
              t &&
                (this._domNode.setWidth(this._zoneManager.getDOMWidth()),
                this._domNode.setHeight(this._zoneManager.getDOMHeight()),
                (this._domNode.domNode.width = this._zoneManager.getCanvasWidth()),
                (this._domNode.domNode.height = this._zoneManager.getCanvasHeight()),
                this._render());
          }
          setZones(e) {
            this._zoneManager.setZones(e), this._render();
          }
          _render() {
            if (0 === this._zoneManager.getOuterHeight()) return !1;
            const e = this._zoneManager.getCanvasWidth(),
              t = this._zoneManager.getCanvasHeight(),
              i = this._zoneManager.resolveColorZones(),
              n = this._zoneManager.getId2Color(),
              r = this._domNode.domNode.getContext('2d');
            return (
              r.clearRect(0, 0, e, t),
              i.length > 0 && this._renderOneLane(r, i, n, e),
              !0
            );
          }
          _renderOneLane(e, t, i, n) {
            let r = 0,
              s = 0,
              o = 0;
            for (const a of t) {
              const t = a.colorId,
                l = a.from,
                c = a.to;
              t !== r
                ? (e.fillRect(0, s, n, o - s),
                  (r = t),
                  (e.fillStyle = i[r]),
                  (s = l),
                  (o = c))
                : o >= l
                ? (o = Math.max(o, c))
                : (e.fillRect(0, s, n, o - s), (s = l), (o = c));
            }
            e.fillRect(0, s, n, o - s);
          }
        }
        class Yt extends N {
          constructor(e) {
            super(e),
              (this.domNode = (0, g.X)(document.createElement('div'))),
              this.domNode.setAttribute('role', 'presentation'),
              this.domNode.setAttribute('aria-hidden', 'true'),
              this.domNode.setClassName('view-rulers'),
              (this._renderedRulers = []);
            const t = this._context.configuration.options;
            (this._rulers = t.get(83)),
              (this._typicalHalfwidthCharacterWidth = t.get(
                36
              ).typicalHalfwidthCharacterWidth);
          }
          dispose() {
            super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            return (
              (this._rulers = t.get(83)),
              (this._typicalHalfwidthCharacterWidth = t.get(
                36
              ).typicalHalfwidthCharacterWidth),
              !0
            );
          }
          onScrollChanged(e) {
            return e.scrollHeightChanged;
          }
          prepareRender(e) {}
          _ensureRulersCount() {
            const e = this._renderedRulers.length,
              t = this._rulers.length;
            if (e === t) return;
            if (e < t) {
              const { tabSize: i } = this._context.model.getTextModelOptions(),
                n = i;
              let r = t - e;
              for (; r > 0; ) {
                const e = (0, g.X)(document.createElement('div'));
                e.setClassName('view-ruler'),
                  e.setWidth(n),
                  this.domNode.appendChild(e),
                  this._renderedRulers.push(e),
                  r--;
              }
              return;
            }
            let i = e - t;
            for (; i > 0; ) {
              const e = this._renderedRulers.pop();
              this.domNode.removeChild(e), i--;
            }
          }
          render(e) {
            this._ensureRulersCount();
            for (let t = 0, i = this._rulers.length; t < i; t++) {
              const i = this._renderedRulers[t],
                n = this._rulers[t];
              i.setBoxShadow(n.color ? `1px 0 0 0 ${n.color} inset` : ''),
                i.setHeight(Math.min(e.scrollHeight, 1e6)),
                i.setLeft(n.column * this._typicalHalfwidthCharacterWidth);
            }
          }
        }
        (0, Y.Ic)((e, t) => {
          const i = e.getColor(xe.zk);
          i &&
            t.addRule(
              `.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${i} inset; }`
            );
        });
        class Ht extends N {
          constructor(e) {
            super(e),
              (this._scrollTop = 0),
              (this._width = 0),
              this._updateWidth(),
              (this._shouldShow = !1);
            const t = this._context.configuration.options.get(84);
            (this._useShadows = t.useShadows),
              (this._domNode = (0, g.X)(document.createElement('div'))),
              this._domNode.setAttribute('role', 'presentation'),
              this._domNode.setAttribute('aria-hidden', 'true');
          }
          dispose() {
            super.dispose();
          }
          _updateShouldShow() {
            const e = this._useShadows && this._scrollTop > 0;
            return this._shouldShow !== e && ((this._shouldShow = e), !0);
          }
          getDomNode() {
            return this._domNode;
          }
          _updateWidth() {
            const e = this._context.configuration.options.get(117);
            0 === e.minimap.renderMinimap ||
            (e.minimap.minimapWidth > 0 && 0 === e.minimap.minimapLeft)
              ? (this._width = e.width)
              : (this._width =
                  e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth);
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options.get(84);
            return (
              (this._useShadows = t.useShadows),
              this._updateWidth(),
              this._updateShouldShow(),
              !0
            );
          }
          onScrollChanged(e) {
            return (this._scrollTop = e.scrollTop), this._updateShouldShow();
          }
          prepareRender(e) {}
          render(e) {
            this._domNode.setWidth(this._width),
              this._domNode.setClassName(
                this._shouldShow ? 'scroll-decoration' : ''
              );
          }
        }
        (0, Y.Ic)((e, t) => {
          const i = e.getColor(mt._w);
          i &&
            t.addRule(
              `.monaco-editor .scroll-decoration { box-shadow: ${i} 0 6px 6px -6px inset; }`
            );
        });
        class jt {
          constructor(e) {
            (this.left = e.left),
              (this.width = e.width),
              (this.startStyle = null),
              (this.endStyle = null);
          }
        }
        class Vt {
          constructor(e, t) {
            (this.lineNumber = e), (this.ranges = t);
          }
        }
        function zt(e) {
          return new jt(e);
        }
        function Ut(e) {
          return new Vt(e.lineNumber, e.ranges.map(zt));
        }
        const $t = b.un;
        class Kt extends ke {
          constructor(e) {
            super(),
              (this._previousFrameVisibleRangesWithStyle = []),
              (this._context = e);
            const t = this._context.configuration.options;
            (this._lineHeight = t.get(51)),
              (this._roundedSelection = t.get(82)),
              (this._typicalHalfwidthCharacterWidth = t.get(
                36
              ).typicalHalfwidthCharacterWidth),
              (this._selections = []),
              (this._renderResult = null),
              this._context.addEventHandler(this);
          }
          dispose() {
            this._context.removeEventHandler(this),
              (this._renderResult = null),
              super.dispose();
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            return (
              (this._lineHeight = t.get(51)),
              (this._roundedSelection = t.get(82)),
              (this._typicalHalfwidthCharacterWidth = t.get(
                36
              ).typicalHalfwidthCharacterWidth),
              !0
            );
          }
          onCursorStateChanged(e) {
            return (this._selections = e.selections.slice(0)), !0;
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          _visibleRangesHaveGaps(e) {
            for (let t = 0, i = e.length; t < i; t++)
              if (e[t].ranges.length > 1) return !0;
            return !1;
          }
          _enrichVisibleRangesWithStyle(e, t, i) {
            const n = this._typicalHalfwidthCharacterWidth / 4;
            let r = null,
              s = null;
            if (i && i.length > 0 && t.length > 0) {
              const n = t[0].lineNumber;
              if (n === e.startLineNumber)
                for (let e = 0; !r && e < i.length; e++)
                  i[e].lineNumber === n && (r = i[e].ranges[0]);
              const o = t[t.length - 1].lineNumber;
              if (o === e.endLineNumber)
                for (let e = i.length - 1; !s && e >= 0; e--)
                  i[e].lineNumber === o && (s = i[e].ranges[0]);
              r && !r.startStyle && (r = null),
                s && !s.startStyle && (s = null);
            }
            for (let e = 0, i = t.length; e < i; e++) {
              const o = t[e].ranges[0],
                a = o.left,
                l = o.left + o.width,
                c = { top: 0, bottom: 0 },
                d = { top: 0, bottom: 0 };
              if (e > 0) {
                const i = t[e - 1].ranges[0].left,
                  r = t[e - 1].ranges[0].left + t[e - 1].ranges[0].width;
                qt(a - i) < n ? (c.top = 2) : a > i && (c.top = 1),
                  qt(l - r) < n ? (d.top = 2) : i < l && l < r && (d.top = 1);
              } else
                r && ((c.top = r.startStyle.top), (d.top = r.endStyle.top));
              if (e + 1 < i) {
                const i = t[e + 1].ranges[0].left,
                  r = t[e + 1].ranges[0].left + t[e + 1].ranges[0].width;
                qt(a - i) < n
                  ? (c.bottom = 2)
                  : i < a && a < r && (c.bottom = 1),
                  qt(l - r) < n ? (d.bottom = 2) : l < r && (d.bottom = 1);
              } else
                s &&
                  ((c.bottom = s.startStyle.bottom),
                  (d.bottom = s.endStyle.bottom));
              (o.startStyle = c), (o.endStyle = d);
            }
          }
          _getVisibleRangesWithStyle(e, t, i) {
            const n = (t.linesVisibleRangesForRange(e, !0) || []).map(Ut),
              r = this._visibleRangesHaveGaps(n);
            return (
              $t ||
                r ||
                !this._roundedSelection ||
                this._enrichVisibleRangesWithStyle(t.visibleRange, n, i),
              n
            );
          }
          _createSelectionPiece(e, t, i, n, r) {
            return (
              '<div class="cslr ' +
              i +
              '" style="top:' +
              e.toString() +
              'px;left:' +
              n.toString() +
              'px;width:' +
              r.toString() +
              'px;height:' +
              t +
              'px;"></div>'
            );
          }
          _actualRenderOneSelection(e, t, i, n) {
            if (0 === n.length) return;
            const r = !!n[0].ranges[0].startStyle,
              s = this._lineHeight.toString(),
              o = (this._lineHeight - 1).toString(),
              a = n[0].lineNumber,
              l = n[n.length - 1].lineNumber;
            for (let c = 0, d = n.length; c < d; c++) {
              const d = n[c],
                h = d.lineNumber,
                u = h - t,
                g = !i || (h !== l && h !== a) ? s : o,
                f = i && h === a ? 1 : 0;
              let p = '',
                m = '';
              for (let e = 0, t = d.ranges.length; e < t; e++) {
                const t = d.ranges[e];
                if (r) {
                  const e = t.startStyle,
                    i = t.endStyle;
                  if (1 === e.top || 1 === e.bottom) {
                    p += this._createSelectionPiece(
                      f,
                      g,
                      Kt.SELECTION_CLASS_NAME,
                      t.left - Kt.ROUNDED_PIECE_WIDTH,
                      Kt.ROUNDED_PIECE_WIDTH
                    );
                    let i = Kt.EDITOR_BACKGROUND_CLASS_NAME;
                    1 === e.top && (i += ' ' + Kt.SELECTION_TOP_RIGHT),
                      1 === e.bottom && (i += ' ' + Kt.SELECTION_BOTTOM_RIGHT),
                      (p += this._createSelectionPiece(
                        f,
                        g,
                        i,
                        t.left - Kt.ROUNDED_PIECE_WIDTH,
                        Kt.ROUNDED_PIECE_WIDTH
                      ));
                  }
                  if (1 === i.top || 1 === i.bottom) {
                    p += this._createSelectionPiece(
                      f,
                      g,
                      Kt.SELECTION_CLASS_NAME,
                      t.left + t.width,
                      Kt.ROUNDED_PIECE_WIDTH
                    );
                    let e = Kt.EDITOR_BACKGROUND_CLASS_NAME;
                    1 === i.top && (e += ' ' + Kt.SELECTION_TOP_LEFT),
                      1 === i.bottom && (e += ' ' + Kt.SELECTION_BOTTOM_LEFT),
                      (p += this._createSelectionPiece(
                        f,
                        g,
                        e,
                        t.left + t.width,
                        Kt.ROUNDED_PIECE_WIDTH
                      ));
                  }
                }
                let i = Kt.SELECTION_CLASS_NAME;
                if (r) {
                  const e = t.startStyle,
                    n = t.endStyle;
                  0 === e.top && (i += ' ' + Kt.SELECTION_TOP_LEFT),
                    0 === e.bottom && (i += ' ' + Kt.SELECTION_BOTTOM_LEFT),
                    0 === n.top && (i += ' ' + Kt.SELECTION_TOP_RIGHT),
                    0 === n.bottom && (i += ' ' + Kt.SELECTION_BOTTOM_RIGHT);
                }
                m += this._createSelectionPiece(f, g, i, t.left, t.width);
              }
              (e[u][0] += p), (e[u][1] += m);
            }
          }
          prepareRender(e) {
            const t = [],
              i = e.visibleRange.startLineNumber,
              n = e.visibleRange.endLineNumber;
            for (let e = i; e <= n; e++) t[e - i] = ['', ''];
            const r = [];
            for (let n = 0, s = this._selections.length; n < s; n++) {
              const s = this._selections[n];
              if (s.isEmpty()) {
                r[n] = null;
                continue;
              }
              const o = this._getVisibleRangesWithStyle(
                s,
                e,
                this._previousFrameVisibleRangesWithStyle[n]
              );
              (r[n] = o),
                this._actualRenderOneSelection(
                  t,
                  i,
                  this._selections.length > 1,
                  o
                );
            }
            (this._previousFrameVisibleRangesWithStyle = r),
              (this._renderResult = t.map(([e, t]) => e + t));
          }
          render(e, t) {
            if (!this._renderResult) return '';
            const i = t - e;
            return i < 0 || i >= this._renderResult.length
              ? ''
              : this._renderResult[i];
          }
        }
        function qt(e) {
          return e < 0 ? -e : e;
        }
        (Kt.SELECTION_CLASS_NAME = 'selected-text'),
          (Kt.SELECTION_TOP_LEFT = 'top-left-radius'),
          (Kt.SELECTION_BOTTOM_LEFT = 'bottom-left-radius'),
          (Kt.SELECTION_TOP_RIGHT = 'top-right-radius'),
          (Kt.SELECTION_BOTTOM_RIGHT = 'bottom-right-radius'),
          (Kt.EDITOR_BACKGROUND_CLASS_NAME = 'monaco-editor-background'),
          (Kt.ROUNDED_PIECE_WIDTH = 10),
          (0, Y.Ic)((e, t) => {
            const i = e.getColor(mt.hE);
            i &&
              t.addRule(
                `.monaco-editor .focused .selected-text { background-color: ${i}; }`
              );
            const n = e.getColor(mt.ES);
            n &&
              t.addRule(
                `.monaco-editor .selected-text { background-color: ${n}; }`
              );
            const r = e.getColor(mt.yb);
            r &&
              !r.isTransparent() &&
              t.addRule(
                `.monaco-editor .view-line span.inline-selected-text { color: ${r}; }`
              );
          });
        class Gt {
          constructor(e, t, i, n, r, s) {
            (this.top = e),
              (this.left = t),
              (this.width = i),
              (this.height = n),
              (this.textContent = r),
              (this.textContentClassName = s);
          }
        }
        class Zt {
          constructor(e) {
            this._context = e;
            const t = this._context.configuration.options,
              i = t.get(36);
            (this._cursorStyle = t.get(19)),
              (this._lineHeight = t.get(51)),
              (this._typicalHalfwidthCharacterWidth =
                i.typicalHalfwidthCharacterWidth),
              (this._lineCursorWidth = Math.min(
                t.get(22),
                this._typicalHalfwidthCharacterWidth
              )),
              (this._isVisible = !0),
              (this._domNode = (0, g.X)(document.createElement('div'))),
              this._domNode.setClassName(`cursor ${Ne.S}`),
              this._domNode.setHeight(this._lineHeight),
              this._domNode.setTop(0),
              this._domNode.setLeft(0),
              c.V.applyFontInfo(this._domNode, i),
              this._domNode.setDisplay('none'),
              (this._position = new Q.L(1, 1)),
              (this._lastRenderedContent = ''),
              (this._renderData = null);
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return this._position;
          }
          show() {
            this._isVisible ||
              (this._domNode.setVisibility('inherit'), (this._isVisible = !0));
          }
          hide() {
            this._isVisible &&
              (this._domNode.setVisibility('hidden'), (this._isVisible = !1));
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(36);
            return (
              (this._cursorStyle = t.get(19)),
              (this._lineHeight = t.get(51)),
              (this._typicalHalfwidthCharacterWidth =
                i.typicalHalfwidthCharacterWidth),
              (this._lineCursorWidth = Math.min(
                t.get(22),
                this._typicalHalfwidthCharacterWidth
              )),
              c.V.applyFontInfo(this._domNode, i),
              !0
            );
          }
          onCursorPositionChanged(e) {
            return (this._position = e), !0;
          }
          _prepareRender(e) {
            let t = '';
            if (
              this._cursorStyle === H.d2.Line ||
              this._cursorStyle === H.d2.LineThin
            ) {
              const i = e.visibleRangeForPosition(this._position);
              if (!i || i.outsideRenderedLine) return null;
              let n;
              if (this._cursorStyle === H.d2.Line) {
                if (
                  ((n = r.Uh(
                    this._lineCursorWidth > 0 ? this._lineCursorWidth : 2
                  )),
                  n > 2)
                ) {
                  const e = this._context.model.getLineContent(
                      this._position.lineNumber
                    ),
                    i = we.vH(e, this._position.column - 1);
                  t = e.substr(this._position.column - 1, i);
                }
              } else n = r.Uh(1);
              let s = i.left;
              n >= 2 && s >= 1 && (s -= 1);
              const o =
                e.getVerticalOffsetForLineNumber(this._position.lineNumber) -
                e.bigNumbersDelta;
              return new Gt(o, s, n, this._lineHeight, t, '');
            }
            const i = this._context.model.getLineContent(
                this._position.lineNumber
              ),
              n = we.vH(i, this._position.column - 1),
              s = e.linesVisibleRangesForRange(
                new X.e(
                  this._position.lineNumber,
                  this._position.column,
                  this._position.lineNumber,
                  this._position.column + n
                ),
                !1
              );
            if (!s || 0 === s.length) return null;
            const o = s[0];
            if (o.outsideRenderedLine || 0 === o.ranges.length) return null;
            const a = o.ranges[0],
              l = a.width < 1 ? this._typicalHalfwidthCharacterWidth : a.width;
            let c = '';
            if (this._cursorStyle === H.d2.Block) {
              const e = this._context.model.getViewLineData(
                this._position.lineNumber
              );
              t = i.substr(this._position.column - 1, n);
              const r = e.tokens.findTokenIndexAtOffset(
                this._position.column - 1
              );
              c = e.tokens.getClassName(r);
            }
            let d =
                e.getVerticalOffsetForLineNumber(this._position.lineNumber) -
                e.bigNumbersDelta,
              h = this._lineHeight;
            return (
              (this._cursorStyle !== H.d2.Underline &&
                this._cursorStyle !== H.d2.UnderlineThin) ||
                ((d += this._lineHeight - 2), (h = 2)),
              new Gt(d, a.left, l, h, t, c)
            );
          }
          prepareRender(e) {
            this._renderData = this._prepareRender(e);
          }
          render(e) {
            return this._renderData
              ? (this._lastRenderedContent !== this._renderData.textContent &&
                  ((this._lastRenderedContent = this._renderData.textContent),
                  (this._domNode.domNode.textContent = this._lastRenderedContent)),
                this._domNode.setClassName(
                  `cursor ${Ne.S} ${this._renderData.textContentClassName}`
                ),
                this._domNode.setDisplay('block'),
                this._domNode.setTop(this._renderData.top),
                this._domNode.setLeft(this._renderData.left),
                this._domNode.setWidth(this._renderData.width),
                this._domNode.setLineHeight(this._renderData.height),
                this._domNode.setHeight(this._renderData.height),
                {
                  domNode: this._domNode.domNode,
                  position: this._position,
                  contentLeft: this._renderData.left,
                  height: this._renderData.height,
                  width: 2,
                })
              : (this._domNode.setDisplay('none'), null);
          }
        }
        class Jt extends N {
          constructor(e) {
            super(e);
            const t = this._context.configuration.options;
            (this._readOnly = t.get(72)),
              (this._cursorBlinking = t.get(17)),
              (this._cursorStyle = t.get(19)),
              (this._cursorSmoothCaretAnimation = t.get(18)),
              (this._selectionIsEmpty = !0),
              (this._isVisible = !1),
              (this._primaryCursor = new Zt(this._context)),
              (this._secondaryCursors = []),
              (this._renderData = []),
              (this._domNode = (0, g.X)(document.createElement('div'))),
              this._domNode.setAttribute('role', 'presentation'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              this._updateDomClassName(),
              this._domNode.appendChild(this._primaryCursor.getDomNode()),
              (this._startCursorBlinkAnimation = new _._F()),
              (this._cursorFlatBlinkInterval = new _.zh()),
              (this._blinkingEnabled = !1),
              (this._editorHasFocus = !1),
              this._updateBlinking();
          }
          dispose() {
            super.dispose(),
              this._startCursorBlinkAnimation.dispose(),
              this._cursorFlatBlinkInterval.dispose();
          }
          getDomNode() {
            return this._domNode;
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options;
            (this._readOnly = t.get(72)),
              (this._cursorBlinking = t.get(17)),
              (this._cursorStyle = t.get(19)),
              (this._cursorSmoothCaretAnimation = t.get(18)),
              this._updateBlinking(),
              this._updateDomClassName(),
              this._primaryCursor.onConfigurationChanged(e);
            for (let t = 0, i = this._secondaryCursors.length; t < i; t++)
              this._secondaryCursors[t].onConfigurationChanged(e);
            return !0;
          }
          _onCursorPositionChanged(e, t) {
            if (
              (this._primaryCursor.onCursorPositionChanged(e),
              this._updateBlinking(),
              this._secondaryCursors.length < t.length)
            ) {
              const e = t.length - this._secondaryCursors.length;
              for (let t = 0; t < e; t++) {
                const e = new Zt(this._context);
                this._domNode.domNode.insertBefore(
                  e.getDomNode().domNode,
                  this._primaryCursor.getDomNode().domNode.nextSibling
                ),
                  this._secondaryCursors.push(e);
              }
            } else if (this._secondaryCursors.length > t.length) {
              const e = this._secondaryCursors.length - t.length;
              for (let t = 0; t < e; t++)
                this._domNode.removeChild(
                  this._secondaryCursors[0].getDomNode()
                ),
                  this._secondaryCursors.splice(0, 1);
            }
            for (let e = 0; e < t.length; e++)
              this._secondaryCursors[e].onCursorPositionChanged(t[e]);
          }
          onCursorStateChanged(e) {
            const t = [];
            for (let i = 0, n = e.selections.length; i < n; i++)
              t[i] = e.selections[i].getPosition();
            this._onCursorPositionChanged(t[0], t.slice(1));
            const i = e.selections[0].isEmpty();
            return (
              this._selectionIsEmpty !== i &&
                ((this._selectionIsEmpty = i), this._updateDomClassName()),
              !0
            );
          }
          onDecorationsChanged(e) {
            return !0;
          }
          onFlushed(e) {
            return !0;
          }
          onFocusChanged(e) {
            return (
              (this._editorHasFocus = e.isFocused), this._updateBlinking(), !1
            );
          }
          onLinesChanged(e) {
            return !0;
          }
          onLinesDeleted(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return !0;
          }
          onTokensChanged(e) {
            const t = (t) => {
              for (let i = 0, n = e.ranges.length; i < n; i++)
                if (
                  e.ranges[i].fromLineNumber <= t.lineNumber &&
                  t.lineNumber <= e.ranges[i].toLineNumber
                )
                  return !0;
              return !1;
            };
            if (t(this._primaryCursor.getPosition())) return !0;
            for (const e of this._secondaryCursors)
              if (t(e.getPosition())) return !0;
            return !1;
          }
          onZonesChanged(e) {
            return !0;
          }
          _getCursorBlinking() {
            return this._editorHasFocus
              ? this._readOnly
                ? 5
                : this._cursorBlinking
              : 0;
          }
          _updateBlinking() {
            this._startCursorBlinkAnimation.cancel(),
              this._cursorFlatBlinkInterval.cancel();
            const e = this._getCursorBlinking(),
              t = 0 === e,
              i = 5 === e;
            t ? this._hide() : this._show(),
              (this._blinkingEnabled = !1),
              this._updateDomClassName(),
              t ||
                i ||
                (1 === e
                  ? this._cursorFlatBlinkInterval.cancelAndSet(() => {
                      this._isVisible ? this._hide() : this._show();
                    }, Jt.BLINK_INTERVAL)
                  : this._startCursorBlinkAnimation.setIfNotSet(() => {
                      (this._blinkingEnabled = !0), this._updateDomClassName();
                    }, Jt.BLINK_INTERVAL));
          }
          _updateDomClassName() {
            this._domNode.setClassName(this._getClassName());
          }
          _getClassName() {
            let e = 'cursors-layer';
            switch (
              (this._selectionIsEmpty || (e += ' has-selection'),
              this._cursorStyle)
            ) {
              case H.d2.Line:
                e += ' cursor-line-style';
                break;
              case H.d2.Block:
                e += ' cursor-block-style';
                break;
              case H.d2.Underline:
                e += ' cursor-underline-style';
                break;
              case H.d2.LineThin:
                e += ' cursor-line-thin-style';
                break;
              case H.d2.BlockOutline:
                e += ' cursor-block-outline-style';
                break;
              case H.d2.UnderlineThin:
                e += ' cursor-underline-thin-style';
                break;
              default:
                e += ' cursor-line-style';
            }
            if (this._blinkingEnabled)
              switch (this._getCursorBlinking()) {
                case 1:
                  e += ' cursor-blink';
                  break;
                case 2:
                  e += ' cursor-smooth';
                  break;
                case 3:
                  e += ' cursor-phase';
                  break;
                case 4:
                  e += ' cursor-expand';
                  break;
                case 5:
                  e += ' cursor-solid';
                  break;
                default:
                  e += ' cursor-solid';
              }
            else e += ' cursor-solid';
            return (
              this._cursorSmoothCaretAnimation &&
                (e += ' cursor-smooth-caret-animation'),
              e
            );
          }
          _show() {
            this._primaryCursor.show();
            for (let e = 0, t = this._secondaryCursors.length; e < t; e++)
              this._secondaryCursors[e].show();
            this._isVisible = !0;
          }
          _hide() {
            this._primaryCursor.hide();
            for (let e = 0, t = this._secondaryCursors.length; e < t; e++)
              this._secondaryCursors[e].hide();
            this._isVisible = !1;
          }
          prepareRender(e) {
            this._primaryCursor.prepareRender(e);
            for (let t = 0, i = this._secondaryCursors.length; t < i; t++)
              this._secondaryCursors[t].prepareRender(e);
          }
          render(e) {
            let t = [],
              i = 0;
            const n = this._primaryCursor.render(e);
            n && (t[i++] = n);
            for (let n = 0, r = this._secondaryCursors.length; n < r; n++) {
              const r = this._secondaryCursors[n].render(e);
              r && (t[i++] = r);
            }
            this._renderData = t;
          }
          getLastRenderData() {
            return this._renderData;
          }
        }
        (Jt.BLINK_INTERVAL = 500),
          (0, Y.Ic)((e, t) => {
            const i = e.getColor(xe.n0);
            if (i) {
              let n = e.getColor(xe.fY);
              n || (n = i.opposite()),
                t.addRule(
                  `.monaco-editor .cursors-layer .cursor { background-color: ${i}; border-color: ${i}; color: ${n}; }`
                ),
                'hc' === e.type &&
                  t.addRule(
                    `.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${n}; border-right: 1px solid ${n}; }`
                  );
            }
          });
        const Qt = () => {
          throw new Error('Invalid change accessor');
        };
        class Xt extends N {
          constructor(e) {
            super(e);
            const t = this._context.configuration.options,
              i = t.get(117);
            (this._lineHeight = t.get(51)),
              (this._contentWidth = i.contentWidth),
              (this._contentLeft = i.contentLeft),
              (this.domNode = (0, g.X)(document.createElement('div'))),
              this.domNode.setClassName('view-zones'),
              this.domNode.setPosition('absolute'),
              this.domNode.setAttribute('role', 'presentation'),
              this.domNode.setAttribute('aria-hidden', 'true'),
              (this.marginDomNode = (0, g.X)(document.createElement('div'))),
              this.marginDomNode.setClassName('margin-view-zones'),
              this.marginDomNode.setPosition('absolute'),
              this.marginDomNode.setAttribute('role', 'presentation'),
              this.marginDomNode.setAttribute('aria-hidden', 'true'),
              (this._zones = {});
          }
          dispose() {
            super.dispose(), (this._zones = {});
          }
          _recomputeWhitespacesProps() {
            const e = this._context.viewLayout.getWhitespaces(),
              t = new Map();
            for (const i of e) t.set(i.id, i);
            let i = !1;
            return (
              this._context.model.changeWhitespace((e) => {
                const n = Object.keys(this._zones);
                for (let r = 0, s = n.length; r < s; r++) {
                  const s = n[r],
                    o = this._zones[s],
                    a = this._computeWhitespaceProps(o.delegate),
                    l = t.get(s);
                  !l ||
                    (l.afterLineNumber === a.afterViewLineNumber &&
                      l.height === a.heightInPx) ||
                    (e.changeOneWhitespace(
                      s,
                      a.afterViewLineNumber,
                      a.heightInPx
                    ),
                    this._safeCallOnComputedHeight(o.delegate, a.heightInPx),
                    (i = !0));
                }
              }),
              i
            );
          }
          onConfigurationChanged(e) {
            const t = this._context.configuration.options,
              i = t.get(117);
            return (
              (this._lineHeight = t.get(51)),
              (this._contentWidth = i.contentWidth),
              (this._contentLeft = i.contentLeft),
              e.hasChanged(51) && this._recomputeWhitespacesProps(),
              !0
            );
          }
          onLineMappingChanged(e) {
            return this._recomputeWhitespacesProps();
          }
          onLinesDeleted(e) {
            return !0;
          }
          onScrollChanged(e) {
            return e.scrollTopChanged || e.scrollWidthChanged;
          }
          onZonesChanged(e) {
            return !0;
          }
          onLinesInserted(e) {
            return !0;
          }
          _getZoneOrdinal(e) {
            return void 0 !== e.afterColumn ? e.afterColumn : 1e4;
          }
          _computeWhitespaceProps(e) {
            if (0 === e.afterLineNumber)
              return {
                afterViewLineNumber: 0,
                heightInPx: this._heightInPixels(e),
                minWidthInPx: this._minWidthInPixels(e),
              };
            let t, i;
            if (void 0 !== e.afterColumn)
              t = this._context.model.validateModelPosition({
                lineNumber: e.afterLineNumber,
                column: e.afterColumn,
              });
            else {
              const i = this._context.model.validateModelPosition({
                lineNumber: e.afterLineNumber,
                column: 1,
              }).lineNumber;
              t = new Q.L(i, this._context.model.getModelLineMaxColumn(i));
            }
            i =
              t.column ===
              this._context.model.getModelLineMaxColumn(t.lineNumber)
                ? this._context.model.validateModelPosition({
                    lineNumber: t.lineNumber + 1,
                    column: 1,
                  })
                : this._context.model.validateModelPosition({
                    lineNumber: t.lineNumber,
                    column: t.column + 1,
                  });
            const n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(
                t
              ),
              r = this._context.model.coordinatesConverter.modelPositionIsVisible(
                i
              );
            return {
              afterViewLineNumber: n.lineNumber,
              heightInPx: r ? this._heightInPixels(e) : 0,
              minWidthInPx: this._minWidthInPixels(e),
            };
          }
          changeViewZones(e) {
            let t = !1;
            return (
              this._context.model.changeWhitespace((i) => {
                const n = {
                  addZone: (e) => ((t = !0), this._addZone(i, e)),
                  removeZone: (e) => {
                    e && (t = this._removeZone(i, e) || t);
                  },
                  layoutZone: (e) => {
                    e && (t = this._layoutZone(i, e) || t);
                  },
                };
                !(function (e, t) {
                  try {
                    e(t);
                  } catch (e) {
                    (0, s.dL)(e);
                  }
                })(e, n),
                  (n.addZone = Qt),
                  (n.removeZone = Qt),
                  (n.layoutZone = Qt);
              }),
              t
            );
          }
          _addZone(e, t) {
            const i = this._computeWhitespaceProps(t),
              n = {
                whitespaceId: e.insertWhitespace(
                  i.afterViewLineNumber,
                  this._getZoneOrdinal(t),
                  i.heightInPx,
                  i.minWidthInPx
                ),
                delegate: t,
                isVisible: !1,
                domNode: (0, g.X)(t.domNode),
                marginDomNode: t.marginDomNode
                  ? (0, g.X)(t.marginDomNode)
                  : null,
              };
            return (
              this._safeCallOnComputedHeight(n.delegate, i.heightInPx),
              n.domNode.setPosition('absolute'),
              (n.domNode.domNode.style.width = '100%'),
              n.domNode.setDisplay('none'),
              n.domNode.setAttribute('monaco-view-zone', n.whitespaceId),
              this.domNode.appendChild(n.domNode),
              n.marginDomNode &&
                (n.marginDomNode.setPosition('absolute'),
                (n.marginDomNode.domNode.style.width = '100%'),
                n.marginDomNode.setDisplay('none'),
                n.marginDomNode.setAttribute(
                  'monaco-view-zone',
                  n.whitespaceId
                ),
                this.marginDomNode.appendChild(n.marginDomNode)),
              (this._zones[n.whitespaceId] = n),
              this.setShouldRender(),
              n.whitespaceId
            );
          }
          _removeZone(e, t) {
            if (this._zones.hasOwnProperty(t)) {
              const i = this._zones[t];
              return (
                delete this._zones[t],
                e.removeWhitespace(i.whitespaceId),
                i.domNode.removeAttribute('monaco-visible-view-zone'),
                i.domNode.removeAttribute('monaco-view-zone'),
                i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),
                i.marginDomNode &&
                  (i.marginDomNode.removeAttribute('monaco-visible-view-zone'),
                  i.marginDomNode.removeAttribute('monaco-view-zone'),
                  i.marginDomNode.domNode.parentNode.removeChild(
                    i.marginDomNode.domNode
                  )),
                this.setShouldRender(),
                !0
              );
            }
            return !1;
          }
          _layoutZone(e, t) {
            if (this._zones.hasOwnProperty(t)) {
              const i = this._zones[t],
                n = this._computeWhitespaceProps(i.delegate);
              return (
                e.changeOneWhitespace(
                  i.whitespaceId,
                  n.afterViewLineNumber,
                  n.heightInPx
                ),
                this._safeCallOnComputedHeight(i.delegate, n.heightInPx),
                this.setShouldRender(),
                !0
              );
            }
            return !1;
          }
          shouldSuppressMouseDownOnViewZone(e) {
            if (this._zones.hasOwnProperty(e)) {
              const t = this._zones[e];
              return Boolean(t.delegate.suppressMouseDown);
            }
            return !1;
          }
          _heightInPixels(e) {
            return 'number' == typeof e.heightInPx
              ? e.heightInPx
              : 'number' == typeof e.heightInLines
              ? this._lineHeight * e.heightInLines
              : this._lineHeight;
          }
          _minWidthInPixels(e) {
            return 'number' == typeof e.minWidthInPx ? e.minWidthInPx : 0;
          }
          _safeCallOnComputedHeight(e, t) {
            if ('function' == typeof e.onComputedHeight)
              try {
                e.onComputedHeight(t);
              } catch (e) {
                (0, s.dL)(e);
              }
          }
          _safeCallOnDomNodeTop(e, t) {
            if ('function' == typeof e.onDomNodeTop)
              try {
                e.onDomNodeTop(t);
              } catch (e) {
                (0, s.dL)(e);
              }
          }
          prepareRender(e) {}
          render(e) {
            const t = e.viewportData.whitespaceViewportData,
              i = {};
            let n = !1;
            for (let e = 0, r = t.length; e < r; e++)
              (i[t[e].id] = t[e]), (n = !0);
            const r = Object.keys(this._zones);
            for (let t = 0, n = r.length; t < n; t++) {
              const n = r[t],
                s = this._zones[n];
              let o = 0,
                a = 0,
                l = 'none';
              i.hasOwnProperty(n)
                ? ((o = i[n].verticalOffset - e.bigNumbersDelta),
                  (a = i[n].height),
                  (l = 'block'),
                  s.isVisible ||
                    (s.domNode.setAttribute('monaco-visible-view-zone', 'true'),
                    (s.isVisible = !0)),
                  this._safeCallOnDomNodeTop(
                    s.delegate,
                    e.getScrolledTopFromAbsoluteTop(i[n].verticalOffset)
                  ))
                : (s.isVisible &&
                    (s.domNode.removeAttribute('monaco-visible-view-zone'),
                    (s.isVisible = !1)),
                  this._safeCallOnDomNodeTop(
                    s.delegate,
                    e.getScrolledTopFromAbsoluteTop(-1e6)
                  )),
                s.domNode.setTop(o),
                s.domNode.setHeight(a),
                s.domNode.setDisplay(l),
                s.marginDomNode &&
                  (s.marginDomNode.setTop(o),
                  s.marginDomNode.setHeight(a),
                  s.marginDomNode.setDisplay(l));
            }
            n &&
              (this.domNode.setWidth(
                Math.max(e.scrollWidth, this._contentWidth)
              ),
              this.marginDomNode.setWidth(this._contentLeft));
          }
        }
        class ei {
          constructor(e) {
            this._theme = e;
          }
          get type() {
            return this._theme.type;
          }
          update(e) {
            this._theme = e;
          }
          getColor(e) {
            return this._theme.getColor(e);
          }
        }
        class ti {
          constructor(e, t, i) {
            (this.configuration = e),
              (this.theme = new ei(t)),
              (this.model = i),
              (this.viewLayout = i.viewLayout);
          }
          addEventHandler(e) {
            this.model.addViewEventHandler(e);
          }
          removeEventHandler(e) {
            this.model.removeViewEventHandler(e);
          }
        }
        class ii {
          constructor(e, t, i, n) {
            (this.selections = e),
              (this.startLineNumber = 0 | t.startLineNumber),
              (this.endLineNumber = 0 | t.endLineNumber),
              (this.relativeVerticalOffset = t.relativeVerticalOffset),
              (this.bigNumbersDelta = 0 | t.bigNumbersDelta),
              (this.whitespaceViewportData = i),
              (this._model = n),
              (this.visibleRange = new X.e(
                t.startLineNumber,
                this._model.getLineMinColumn(t.startLineNumber),
                t.endLineNumber,
                this._model.getLineMaxColumn(t.endLineNumber)
              ));
          }
          getViewLineRenderingData(e) {
            return this._model.getViewLineRenderingData(this.visibleRange, e);
          }
          getDecorationsInViewport() {
            return this._model.getDecorationsInViewport(this.visibleRange);
          }
        }
        class ni extends D {
          constructor(e, t, i, n, r, s) {
            super(),
              (this._selections = [new u.Y(1, 1, 1, 1)]),
              (this._renderAnimationFrame = null);
            const o = new Ae(t, n, r, e);
            (this._context = new ti(t, i.getColorTheme(), n)),
              this._context.addEventHandler(this),
              this._register(
                i.onDidColorThemeChange((e) => {
                  this._context.theme.update(e),
                    this._context.model.onDidColorThemeChange(),
                    this.render(!0, !1);
                })
              ),
              (this._viewParts = []),
              (this._textAreaHandler = new Ie(
                this._context,
                o,
                this._createTextAreaHandlerHelper()
              )),
              this._viewParts.push(this._textAreaHandler),
              (this._linesContent = (0, g.X)(document.createElement('div'))),
              this._linesContent.setClassName(
                'lines-content monaco-editor-background'
              ),
              this._linesContent.setPosition('absolute'),
              (this.domNode = (0, g.X)(document.createElement('div'))),
              this.domNode.setClassName(this._getEditorClassName()),
              this.domNode.setAttribute('role', 'code'),
              (this._overflowGuardContainer = (0, g.X)(
                document.createElement('div')
              )),
              E.write(this._overflowGuardContainer, 3),
              this._overflowGuardContainer.setClassName('overflow-guard'),
              (this._scrollbar = new tt(
                this._context,
                this._linesContent,
                this.domNode,
                this._overflowGuardContainer
              )),
              this._viewParts.push(this._scrollbar),
              (this._viewLines = new ct(this._context, this._linesContent)),
              (this._viewZones = new Xt(this._context)),
              this._viewParts.push(this._viewZones);
            const a = new Ft(this._context);
            this._viewParts.push(a);
            const l = new Ht(this._context);
            this._viewParts.push(l);
            const c = new Ve(this._context);
            this._viewParts.push(c),
              c.addDynamicOverlay(new Je(this._context)),
              c.addDynamicOverlay(new Kt(this._context)),
              c.addDynamicOverlay(new st(this._context)),
              c.addDynamicOverlay(new Xe(this._context));
            const d = new ze(this._context);
            this._viewParts.push(d),
              d.addDynamicOverlay(new Qe(this._context)),
              d.addDynamicOverlay(new rt(this._context)),
              d.addDynamicOverlay(new ht(this._context)),
              d.addDynamicOverlay(new dt(this._context)),
              d.addDynamicOverlay(new Le(this._context));
            const h = new Me(this._context);
            h.getDomNode().appendChild(this._viewZones.marginDomNode),
              h.getDomNode().appendChild(d.getDomNode()),
              this._viewParts.push(h),
              (this._contentWidgets = new $e(this._context, this.domNode)),
              this._viewParts.push(this._contentWidgets),
              (this._viewCursors = new Jt(this._context)),
              this._viewParts.push(this._viewCursors),
              (this._overlayWidgets = new At(this._context)),
              this._viewParts.push(this._overlayWidgets);
            const f = new Yt(this._context);
            this._viewParts.push(f);
            const p = new It(this._context);
            if ((this._viewParts.push(p), a)) {
              const e = this._scrollbar.getOverviewRulerLayoutInfo();
              e.parent.insertBefore(a.getDomNode(), e.insertBefore);
            }
            this._linesContent.appendChild(c.getDomNode()),
              this._linesContent.appendChild(f.domNode),
              this._linesContent.appendChild(this._viewZones.domNode),
              this._linesContent.appendChild(this._viewLines.getDomNode()),
              this._linesContent.appendChild(this._contentWidgets.domNode),
              this._linesContent.appendChild(this._viewCursors.getDomNode()),
              this._overflowGuardContainer.appendChild(h.getDomNode()),
              this._overflowGuardContainer.appendChild(
                this._scrollbar.getDomNode()
              ),
              this._overflowGuardContainer.appendChild(l.getDomNode()),
              this._overflowGuardContainer.appendChild(
                this._textAreaHandler.textArea
              ),
              this._overflowGuardContainer.appendChild(
                this._textAreaHandler.textAreaCover
              ),
              this._overflowGuardContainer.appendChild(
                this._overlayWidgets.getDomNode()
              ),
              this._overflowGuardContainer.appendChild(p.getDomNode()),
              this.domNode.appendChild(this._overflowGuardContainer),
              s
                ? s.appendChild(
                    this._contentWidgets.overflowingContentWidgetsDomNode
                      .domNode
                  )
                : this.domNode.appendChild(
                    this._contentWidgets.overflowingContentWidgetsDomNode
                  ),
              this._applyLayout(),
              (this._pointerHandler = this._register(
                new ye(this._context, o, this._createPointerHandlerHelper())
              ));
          }
          _flushAccumulatedAndRenderNow() {
            this._renderNow();
          }
          _createPointerHandlerHelper() {
            return {
              viewDomNode: this.domNode.domNode,
              linesContentDomNode: this._linesContent.domNode,
              focusTextArea: () => {
                this.focus();
              },
              getLastRenderData: () => {
                const e = this._viewCursors.getLastRenderData() || [],
                  t = this._textAreaHandler.getLastRenderData();
                return new te(e, t);
              },
              shouldSuppressMouseDownOnViewZone: (e) =>
                this._viewZones.shouldSuppressMouseDownOnViewZone(e),
              shouldSuppressMouseDownOnWidget: (e) =>
                this._contentWidgets.shouldSuppressMouseDownOnWidget(e),
              getPositionFromDOMInfo: (e, t) => (
                this._flushAccumulatedAndRenderNow(),
                this._viewLines.getPositionFromDOMInfo(e, t)
              ),
              visibleRangeForPosition: (e, t) => (
                this._flushAccumulatedAndRenderNow(),
                this._viewLines.visibleRangeForPosition(new Q.L(e, t))
              ),
              getLineWidth: (e) => (
                this._flushAccumulatedAndRenderNow(),
                this._viewLines.getLineWidth(e)
              ),
            };
          }
          _createTextAreaHandlerHelper() {
            return {
              visibleRangeForPositionRelativeToEditor: (e, t) => (
                this._flushAccumulatedAndRenderNow(),
                this._viewLines.visibleRangeForPosition(new Q.L(e, t))
              ),
            };
          }
          _applyLayout() {
            const e = this._context.configuration.options.get(117);
            this.domNode.setWidth(e.width),
              this.domNode.setHeight(e.height),
              this._overflowGuardContainer.setWidth(e.width),
              this._overflowGuardContainer.setHeight(e.height),
              this._linesContent.setWidth(1e6),
              this._linesContent.setHeight(1e6);
          }
          _getEditorClassName() {
            const e = this._textAreaHandler.isFocused() ? ' focused' : '';
            return (
              this._context.configuration.options.get(114) +
              ' ' +
              (0, Y.m6)(this._context.theme.type) +
              e
            );
          }
          handleEvents(e) {
            super.handleEvents(e), this._scheduleRender();
          }
          onConfigurationChanged(e) {
            return (
              this.domNode.setClassName(this._getEditorClassName()),
              this._applyLayout(),
              !1
            );
          }
          onCursorStateChanged(e) {
            return (this._selections = e.selections), !1;
          }
          onFocusChanged(e) {
            return this.domNode.setClassName(this._getEditorClassName()), !1;
          }
          onThemeChanged(e) {
            return this.domNode.setClassName(this._getEditorClassName()), !1;
          }
          dispose() {
            null !== this._renderAnimationFrame &&
              (this._renderAnimationFrame.dispose(),
              (this._renderAnimationFrame = null)),
              this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),
              this._context.removeEventHandler(this),
              this._viewLines.dispose();
            for (let e = 0, t = this._viewParts.length; e < t; e++)
              this._viewParts[e].dispose();
            super.dispose();
          }
          _scheduleRender() {
            null === this._renderAnimationFrame &&
              (this._renderAnimationFrame = r.lI(
                this._onRenderScheduled.bind(this),
                100
              ));
          }
          _onRenderScheduled() {
            (this._renderAnimationFrame = null),
              this._flushAccumulatedAndRenderNow();
          }
          _renderNow() {
            !(function (e) {
              try {
                e();
              } catch (e) {
                (0, s.dL)(e);
              }
            })(() => this._actualRender());
          }
          _getViewPartsToRender() {
            let e = [],
              t = 0;
            for (let i = 0, n = this._viewParts.length; i < n; i++) {
              const n = this._viewParts[i];
              n.shouldRender() && (e[t++] = n);
            }
            return e;
          }
          _actualRender() {
            if (!r.Uw(this.domNode.domNode)) return;
            let e = this._getViewPartsToRender();
            if (!this._viewLines.shouldRender() && 0 === e.length) return;
            const t = this._context.viewLayout.getLinesViewportData();
            this._context.model.setViewport(
              t.startLineNumber,
              t.endLineNumber,
              t.centeredLineNumber
            );
            const i = new ii(
              this._selections,
              t,
              this._context.viewLayout.getWhitespaceViewportData(),
              this._context.model
            );
            this._contentWidgets.shouldRender() &&
              this._contentWidgets.onBeforeRender(i),
              this._viewLines.shouldRender() &&
                (this._viewLines.renderText(i),
                this._viewLines.onDidRender(),
                (e = this._getViewPartsToRender()));
            const n = new T(this._context.viewLayout, i, this._viewLines);
            for (let t = 0, i = e.length; t < i; t++) e[t].prepareRender(n);
            for (let t = 0, i = e.length; t < i; t++) {
              const i = e[t];
              i.render(n), i.onDidRender();
            }
          }
          delegateVerticalScrollbarMouseDown(e) {
            this._scrollbar.delegateVerticalScrollbarMouseDown(e);
          }
          restoreState(e) {
            this._context.model.setScrollPosition(
              { scrollTop: e.scrollTop },
              1
            ),
              this._context.model.tokenizeViewport(),
              this._renderNow(),
              this._viewLines.updateLineWidths(),
              this._context.model.setScrollPosition(
                { scrollLeft: e.scrollLeft },
                1
              );
          }
          getOffsetForColumn(e, t) {
            const i = this._context.model.validateModelPosition({
                lineNumber: e,
                column: t,
              }),
              n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(
                i
              );
            this._flushAccumulatedAndRenderNow();
            const r = this._viewLines.visibleRangeForPosition(
              new Q.L(n.lineNumber, n.column)
            );
            return r ? r.left : -1;
          }
          getTargetAtClientPoint(e, t) {
            const i = this._pointerHandler.getTargetAtClientPoint(e, t);
            return i
              ? Re.convertViewToModelMouseTarget(
                  i,
                  this._context.model.coordinatesConverter
                )
              : null;
          }
          createOverviewRuler(e) {
            return new Wt(this._context, e);
          }
          change(e) {
            this._viewZones.changeViewZones(e), this._scheduleRender();
          }
          render(e, t) {
            if (t) {
              this._viewLines.forceShouldRender();
              for (let e = 0, t = this._viewParts.length; e < t; e++)
                this._viewParts[e].forceShouldRender();
            }
            e ? this._flushAccumulatedAndRenderNow() : this._scheduleRender();
          }
          focus() {
            this._textAreaHandler.focusTextArea();
          }
          isFocused() {
            return this._textAreaHandler.isFocused();
          }
          setAriaOptions(e) {
            this._textAreaHandler.setAriaOptions(e);
          }
          addContentWidget(e) {
            this._contentWidgets.addWidget(e.widget),
              this.layoutContentWidget(e),
              this._scheduleRender();
          }
          layoutContentWidget(e) {
            let t = (e.position && e.position.range) || null;
            if (null === t) {
              const i = e.position ? e.position.position : null;
              null !== i &&
                (t = new X.e(i.lineNumber, i.column, i.lineNumber, i.column));
            }
            const i = e.position ? e.position.preference : null;
            this._contentWidgets.setWidgetPosition(e.widget, t, i),
              this._scheduleRender();
          }
          removeContentWidget(e) {
            this._contentWidgets.removeWidget(e.widget), this._scheduleRender();
          }
          addOverlayWidget(e) {
            this._overlayWidgets.addWidget(e.widget),
              this.layoutOverlayWidget(e),
              this._scheduleRender();
          }
          layoutOverlayWidget(e) {
            const t = e.position ? e.position.preference : null;
            this._overlayWidgets.setWidgetPosition(e.widget, t) &&
              this._scheduleRender();
          }
          removeOverlayWidget(e) {
            this._overlayWidgets.removeWidget(e.widget), this._scheduleRender();
          }
        }
        class ri {
          constructor(e) {
            (this._selTrackedRange = null),
              (this._trackSelection = !0),
              this._setState(
                e,
                new ee.rS(new X.e(1, 1, 1, 1), 0, new Q.L(1, 1), 0),
                new ee.rS(new X.e(1, 1, 1, 1), 0, new Q.L(1, 1), 0)
              );
          }
          dispose(e) {
            this._removeTrackedRange(e);
          }
          startTrackingSelection(e) {
            (this._trackSelection = !0), this._updateTrackedRange(e);
          }
          stopTrackingSelection(e) {
            (this._trackSelection = !1), this._removeTrackedRange(e);
          }
          _updateTrackedRange(e) {
            this._trackSelection &&
              (this._selTrackedRange = e.model._setTrackedRange(
                this._selTrackedRange,
                this.modelState.selection,
                0
              ));
          }
          _removeTrackedRange(e) {
            this._selTrackedRange = e.model._setTrackedRange(
              this._selTrackedRange,
              null,
              0
            );
          }
          asCursorState() {
            return new ee.Vi(this.modelState, this.viewState);
          }
          readSelectionFromMarkers(e) {
            const t = e.model._getTrackedRange(this._selTrackedRange);
            return 0 === this.modelState.selection.getDirection()
              ? new u.Y(
                  t.startLineNumber,
                  t.startColumn,
                  t.endLineNumber,
                  t.endColumn
                )
              : new u.Y(
                  t.endLineNumber,
                  t.endColumn,
                  t.startLineNumber,
                  t.startColumn
                );
          }
          ensureValidState(e) {
            this._setState(e, this.modelState, this.viewState);
          }
          setState(e, t, i) {
            this._setState(e, t, i);
          }
          _setState(e, t, i) {
            if (t) {
              const i = e.model.validateRange(t.selectionStart),
                n = t.selectionStart.equalsRange(i)
                  ? t.selectionStartLeftoverVisibleColumns
                  : 0,
                r = e.model.validatePosition(t.position),
                s = t.position.equals(r) ? t.leftoverVisibleColumns : 0;
              t = new ee.rS(i, n, r, s);
            } else {
              if (!i) return;
              const n = e.model.validateRange(
                  e.coordinatesConverter.convertViewRangeToModelRange(
                    i.selectionStart
                  )
                ),
                r = e.model.validatePosition(
                  e.coordinatesConverter.convertViewPositionToModelPosition(
                    i.position
                  )
                );
              t = new ee.rS(
                n,
                i.selectionStartLeftoverVisibleColumns,
                r,
                i.leftoverVisibleColumns
              );
            }
            if (i) {
              const n = e.coordinatesConverter.validateViewRange(
                  i.selectionStart,
                  t.selectionStart
                ),
                r = e.coordinatesConverter.validateViewPosition(
                  i.position,
                  t.position
                );
              i = new ee.rS(
                n,
                t.selectionStartLeftoverVisibleColumns,
                r,
                t.leftoverVisibleColumns
              );
            } else {
              const n = e.coordinatesConverter.convertModelPositionToViewPosition(
                  new Q.L(
                    t.selectionStart.startLineNumber,
                    t.selectionStart.startColumn
                  )
                ),
                r = e.coordinatesConverter.convertModelPositionToViewPosition(
                  new Q.L(
                    t.selectionStart.endLineNumber,
                    t.selectionStart.endColumn
                  )
                ),
                s = new X.e(n.lineNumber, n.column, r.lineNumber, r.column),
                o = e.coordinatesConverter.convertModelPositionToViewPosition(
                  t.position
                );
              i = new ee.rS(
                s,
                t.selectionStartLeftoverVisibleColumns,
                o,
                t.leftoverVisibleColumns
              );
            }
            (this.modelState = t),
              (this.viewState = i),
              this._updateTrackedRange(e);
          }
        }
        class si {
          constructor(e) {
            (this.context = e),
              (this.primaryCursor = new ri(e)),
              (this.secondaryCursors = []),
              (this.lastAddedCursorIndex = 0);
          }
          dispose() {
            this.primaryCursor.dispose(this.context),
              this.killSecondaryCursors();
          }
          startTrackingSelections() {
            this.primaryCursor.startTrackingSelection(this.context);
            for (let e = 0, t = this.secondaryCursors.length; e < t; e++)
              this.secondaryCursors[e].startTrackingSelection(this.context);
          }
          stopTrackingSelections() {
            this.primaryCursor.stopTrackingSelection(this.context);
            for (let e = 0, t = this.secondaryCursors.length; e < t; e++)
              this.secondaryCursors[e].stopTrackingSelection(this.context);
          }
          updateContext(e) {
            this.context = e;
          }
          ensureValidState() {
            this.primaryCursor.ensureValidState(this.context);
            for (let e = 0, t = this.secondaryCursors.length; e < t; e++)
              this.secondaryCursors[e].ensureValidState(this.context);
          }
          readSelectionFromMarkers() {
            let e = [];
            e[0] = this.primaryCursor.readSelectionFromMarkers(this.context);
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++)
              e[t + 1] = this.secondaryCursors[t].readSelectionFromMarkers(
                this.context
              );
            return e;
          }
          getAll() {
            let e = [];
            e[0] = this.primaryCursor.asCursorState();
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++)
              e[t + 1] = this.secondaryCursors[t].asCursorState();
            return e;
          }
          getViewPositions() {
            let e = [];
            e[0] = this.primaryCursor.viewState.position;
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++)
              e[t + 1] = this.secondaryCursors[t].viewState.position;
            return e;
          }
          getTopMostViewPosition() {
            let e = this.primaryCursor.viewState.position;
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) {
              const i = this.secondaryCursors[t].viewState.position;
              i.isBefore(e) && (e = i);
            }
            return e;
          }
          getBottomMostViewPosition() {
            let e = this.primaryCursor.viewState.position;
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) {
              const i = this.secondaryCursors[t].viewState.position;
              e.isBeforeOrEqual(i) && (e = i);
            }
            return e;
          }
          getSelections() {
            let e = [];
            e[0] = this.primaryCursor.modelState.selection;
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++)
              e[t + 1] = this.secondaryCursors[t].modelState.selection;
            return e;
          }
          getViewSelections() {
            let e = [];
            e[0] = this.primaryCursor.viewState.selection;
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++)
              e[t + 1] = this.secondaryCursors[t].viewState.selection;
            return e;
          }
          setSelections(e) {
            this.setStates(ee.Vi.fromModelSelections(e));
          }
          getPrimaryCursor() {
            return this.primaryCursor.asCursorState();
          }
          setStates(e) {
            null !== e &&
              (this.primaryCursor.setState(
                this.context,
                e[0].modelState,
                e[0].viewState
              ),
              this._setSecondaryStates(e.slice(1)));
          }
          _setSecondaryStates(e) {
            const t = this.secondaryCursors.length,
              i = e.length;
            if (t < i) {
              let e = i - t;
              for (let t = 0; t < e; t++) this._addSecondaryCursor();
            } else if (t > i) {
              let e = t - i;
              for (let t = 0; t < e; t++)
                this._removeSecondaryCursor(this.secondaryCursors.length - 1);
            }
            for (let t = 0; t < i; t++)
              this.secondaryCursors[t].setState(
                this.context,
                e[t].modelState,
                e[t].viewState
              );
          }
          killSecondaryCursors() {
            this._setSecondaryStates([]);
          }
          _addSecondaryCursor() {
            this.secondaryCursors.push(new ri(this.context)),
              (this.lastAddedCursorIndex = this.secondaryCursors.length);
          }
          getLastAddedCursorIndex() {
            return 0 === this.secondaryCursors.length ||
              0 === this.lastAddedCursorIndex
              ? 0
              : this.lastAddedCursorIndex;
          }
          _removeSecondaryCursor(e) {
            this.lastAddedCursorIndex >= e + 1 && this.lastAddedCursorIndex--,
              this.secondaryCursors[e].dispose(this.context),
              this.secondaryCursors.splice(e, 1);
          }
          _getAll() {
            let e = [];
            e[0] = this.primaryCursor;
            for (let t = 0, i = this.secondaryCursors.length; t < i; t++)
              e[t + 1] = this.secondaryCursors[t];
            return e;
          }
          normalize() {
            if (0 === this.secondaryCursors.length) return;
            let e = this._getAll(),
              t = [];
            for (let i = 0, n = e.length; i < n; i++)
              t.push({ index: i, selection: e[i].modelState.selection });
            t.sort((e, t) =>
              e.selection.startLineNumber === t.selection.startLineNumber
                ? e.selection.startColumn - t.selection.startColumn
                : e.selection.startLineNumber - t.selection.startLineNumber
            );
            for (let i = 0; i < t.length - 1; i++) {
              const n = t[i],
                r = t[i + 1],
                s = n.selection,
                o = r.selection;
              if (!this.context.cursorConfig.multiCursorMergeOverlapping)
                continue;
              let a;
              if (
                ((a =
                  o.isEmpty() || s.isEmpty()
                    ? o.getStartPosition().isBeforeOrEqual(s.getEndPosition())
                    : o.getStartPosition().isBefore(s.getEndPosition())),
                a)
              ) {
                const s = n.index < r.index ? i : i + 1,
                  o = n.index < r.index ? i + 1 : i,
                  a = t[o].index,
                  l = t[s].index,
                  c = t[o].selection,
                  d = t[s].selection;
                if (!c.equalsSelection(d)) {
                  const i = c.plusRange(d),
                    n =
                      c.selectionStartLineNumber === c.startLineNumber &&
                      c.selectionStartColumn === c.startColumn,
                    r =
                      d.selectionStartLineNumber === d.startLineNumber &&
                      d.selectionStartColumn === d.startColumn;
                  let o, h;
                  a === this.lastAddedCursorIndex
                    ? ((o = n), (this.lastAddedCursorIndex = l))
                    : (o = r),
                    (h = o
                      ? new u.Y(
                          i.startLineNumber,
                          i.startColumn,
                          i.endLineNumber,
                          i.endColumn
                        )
                      : new u.Y(
                          i.endLineNumber,
                          i.endColumn,
                          i.startLineNumber,
                          i.startColumn
                        )),
                    (t[s].selection = h);
                  const g = ee.Vi.fromModelSelection(h);
                  e[l].setState(this.context, g.modelState, g.viewState);
                }
                for (const e of t) e.index > a && e.index--;
                e.splice(a, 1),
                  t.splice(o, 1),
                  this._removeSecondaryCursor(a - 1),
                  i--;
              }
            }
          }
        }
        var oi = i(31380),
          ai = i(23582);
        class li {
          constructor(e) {
            (this.type = 0), (this._source = e);
          }
          hasChanged(e) {
            return this._source.hasChanged(e);
          }
        }
        class ci {
          constructor(e, t) {
            (this.type = 1), (this.selections = e), (this.modelSelections = t);
          }
        }
        class di {
          constructor(e) {
            (this.type = 2),
              e
                ? ((this.affectsMinimap = e.affectsMinimap),
                  (this.affectsOverviewRuler = e.affectsOverviewRuler))
                : ((this.affectsMinimap = !0),
                  (this.affectsOverviewRuler = !0));
          }
        }
        class hi {
          constructor() {
            this.type = 3;
          }
        }
        class ui {
          constructor(e) {
            (this.type = 4), (this.isFocused = e);
          }
        }
        class gi {
          constructor() {
            this.type = 5;
          }
        }
        class fi {
          constructor() {
            this.type = 6;
          }
        }
        class pi {
          constructor(e, t) {
            (this.type = 7), (this.fromLineNumber = e), (this.toLineNumber = t);
          }
        }
        class mi {
          constructor(e, t) {
            (this.type = 8), (this.fromLineNumber = e), (this.toLineNumber = t);
          }
        }
        class _i {
          constructor(e, t) {
            (this.type = 9), (this.fromLineNumber = e), (this.toLineNumber = t);
          }
        }
        class bi {
          constructor(e, t, i, n, r, s) {
            (this.type = 10),
              (this.source = e),
              (this.range = t),
              (this.selections = i),
              (this.verticalType = n),
              (this.revealHorizontal = r),
              (this.scrollType = s);
          }
        }
        class vi {
          constructor(e) {
            (this.type = 11),
              (this.scrollWidth = e.scrollWidth),
              (this.scrollLeft = e.scrollLeft),
              (this.scrollHeight = e.scrollHeight),
              (this.scrollTop = e.scrollTop),
              (this.scrollWidthChanged = e.scrollWidthChanged),
              (this.scrollLeftChanged = e.scrollLeftChanged),
              (this.scrollHeightChanged = e.scrollHeightChanged),
              (this.scrollTopChanged = e.scrollTopChanged);
          }
        }
        class yi {
          constructor() {
            this.type = 12;
          }
        }
        class wi {
          constructor(e) {
            (this.type = 13), (this.ranges = e);
          }
        }
        class Ci {
          constructor() {
            this.type = 14;
          }
        }
        class Si {
          constructor() {
            this.type = 15;
          }
        }
        class ki extends a.JT {
          constructor() {
            super(),
              (this._onEvent = this._register(new o.Q5())),
              (this.onEvent = this._onEvent.event),
              (this._eventHandlers = []),
              (this._viewEventQueue = null),
              (this._isConsumingViewEventQueue = !1),
              (this._collector = null),
              (this._collectorCnt = 0),
              (this._outgoingEvents = []);
          }
          emitOutgoingEvent(e) {
            this._addOutgoingEvent(e), this._emitOugoingEvents();
          }
          _addOutgoingEvent(e) {
            for (let t = 0, i = this._outgoingEvents.length; t < i; t++)
              if (this._outgoingEvents[t].kind === e.kind)
                return void (this._outgoingEvents[t] = this._outgoingEvents[
                  t
                ].merge(e));
            this._outgoingEvents.push(e);
          }
          _emitOugoingEvents() {
            for (; this._outgoingEvents.length > 0; ) {
              if (this._collector || this._isConsumingViewEventQueue) return;
              const e = this._outgoingEvents.shift();
              e.isNoOp() || this._onEvent.fire(e);
            }
          }
          addViewEventHandler(e) {
            for (let t = 0, i = this._eventHandlers.length; t < i; t++)
              this._eventHandlers[t] === e &&
                console.warn(
                  'Detected duplicate listener in ViewEventDispatcher',
                  e
                );
            this._eventHandlers.push(e);
          }
          removeViewEventHandler(e) {
            for (let t = 0; t < this._eventHandlers.length; t++)
              if (this._eventHandlers[t] === e) {
                this._eventHandlers.splice(t, 1);
                break;
              }
          }
          beginEmitViewEvents() {
            return (
              this._collectorCnt++,
              1 === this._collectorCnt && (this._collector = new xi()),
              this._collector
            );
          }
          endEmitViewEvents() {
            if ((this._collectorCnt--, 0 === this._collectorCnt)) {
              const e = this._collector.outgoingEvents,
                t = this._collector.viewEvents;
              this._collector = null;
              for (const t of e) this._addOutgoingEvent(t);
              t.length > 0 && this._emitMany(t);
            }
            this._emitOugoingEvents();
          }
          emitSingleViewEvent(e) {
            try {
              this.beginEmitViewEvents().emitViewEvent(e);
            } finally {
              this.endEmitViewEvents();
            }
          }
          _emitMany(e) {
            this._viewEventQueue
              ? (this._viewEventQueue = this._viewEventQueue.concat(e))
              : (this._viewEventQueue = e),
              this._isConsumingViewEventQueue || this._consumeViewEventQueue();
          }
          _consumeViewEventQueue() {
            try {
              (this._isConsumingViewEventQueue = !0), this._doConsumeQueue();
            } finally {
              this._isConsumingViewEventQueue = !1;
            }
          }
          _doConsumeQueue() {
            for (; this._viewEventQueue; ) {
              const e = this._viewEventQueue;
              this._viewEventQueue = null;
              const t = this._eventHandlers.slice(0);
              for (const i of t) i.handleEvents(e);
            }
          }
        }
        class xi {
          constructor() {
            (this.viewEvents = []), (this.outgoingEvents = []);
          }
          emitViewEvent(e) {
            this.viewEvents.push(e);
          }
          emitOutgoingEvent(e) {
            this.outgoingEvents.push(e);
          }
        }
        class Li {
          constructor(e, t, i, n) {
            (this.kind = 0),
              (this._oldContentWidth = e),
              (this._oldContentHeight = t),
              (this.contentWidth = i),
              (this.contentHeight = n),
              (this.contentWidthChanged =
                this._oldContentWidth !== this.contentWidth),
              (this.contentHeightChanged =
                this._oldContentHeight !== this.contentHeight);
          }
          isNoOp() {
            return !this.contentWidthChanged && !this.contentHeightChanged;
          }
          merge(e) {
            return 0 !== e.kind
              ? this
              : new Li(
                  this._oldContentWidth,
                  this._oldContentHeight,
                  e.contentWidth,
                  e.contentHeight
                );
          }
        }
        class Mi {
          constructor(e, t) {
            (this.kind = 1), (this.oldHasFocus = e), (this.hasFocus = t);
          }
          isNoOp() {
            return this.oldHasFocus === this.hasFocus;
          }
          merge(e) {
            return 1 !== e.kind ? this : new Mi(this.oldHasFocus, e.hasFocus);
          }
        }
        class Di {
          constructor(e, t, i, n, r, s, o, a) {
            (this.kind = 2),
              (this._oldScrollWidth = e),
              (this._oldScrollLeft = t),
              (this._oldScrollHeight = i),
              (this._oldScrollTop = n),
              (this.scrollWidth = r),
              (this.scrollLeft = s),
              (this.scrollHeight = o),
              (this.scrollTop = a),
              (this.scrollWidthChanged =
                this._oldScrollWidth !== this.scrollWidth),
              (this.scrollLeftChanged =
                this._oldScrollLeft !== this.scrollLeft),
              (this.scrollHeightChanged =
                this._oldScrollHeight !== this.scrollHeight),
              (this.scrollTopChanged = this._oldScrollTop !== this.scrollTop);
          }
          isNoOp() {
            return !(
              this.scrollWidthChanged ||
              this.scrollLeftChanged ||
              this.scrollHeightChanged ||
              this.scrollTopChanged
            );
          }
          merge(e) {
            return 2 !== e.kind
              ? this
              : new Di(
                  this._oldScrollWidth,
                  this._oldScrollLeft,
                  this._oldScrollHeight,
                  this._oldScrollTop,
                  e.scrollWidth,
                  e.scrollLeft,
                  e.scrollHeight,
                  e.scrollTop
                );
          }
        }
        class Ni {
          constructor() {
            this.kind = 3;
          }
          isNoOp() {
            return !1;
          }
          merge(e) {
            return this;
          }
        }
        class Ei {
          constructor(e, t, i, n, r, s, o) {
            (this.kind = 5),
              (this.oldSelections = e),
              (this.selections = t),
              (this.oldModelVersionId = i),
              (this.modelVersionId = n),
              (this.source = r),
              (this.reason = s),
              (this.reachedMaxCursorCount = o);
          }
          static _selectionsAreEqual(e, t) {
            if (!e && !t) return !0;
            if (!e || !t) return !1;
            const i = e.length;
            if (i !== t.length) return !1;
            for (let n = 0; n < i; n++)
              if (!e[n].equalsSelection(t[n])) return !1;
            return !0;
          }
          isNoOp() {
            return (
              Ei._selectionsAreEqual(this.oldSelections, this.selections) &&
              this.oldModelVersionId === this.modelVersionId
            );
          }
          merge(e) {
            return 5 !== e.kind
              ? this
              : new Ei(
                  this.oldSelections,
                  e.selections,
                  this.oldModelVersionId,
                  e.modelVersionId,
                  e.source,
                  e.reason,
                  this.reachedMaxCursorCount || e.reachedMaxCursorCount
                );
          }
        }
        class Ti {
          constructor() {
            this.kind = 4;
          }
          isNoOp() {
            return !1;
          }
          merge(e) {
            return this;
          }
        }
        class Ii {
          constructor(e, t) {
            (this.modelVersionId = e.getVersionId()),
              (this.cursorState = t.getCursorStates());
          }
          equals(e) {
            if (!e) return !1;
            if (this.modelVersionId !== e.modelVersionId) return !1;
            if (this.cursorState.length !== e.cursorState.length) return !1;
            for (let t = 0, i = this.cursorState.length; t < i; t++)
              if (!this.cursorState[t].equals(e.cursorState[t])) return !1;
            return !0;
          }
        }
        class Oi {
          constructor(e, t, i) {
            (this._model = e),
              (this._autoClosedCharactersDecorations = t),
              (this._autoClosedEnclosingDecorations = i);
          }
          static getAllAutoClosedCharacters(e) {
            let t = [];
            for (const i of e) t = t.concat(i.getAutoClosedCharactersRanges());
            return t;
          }
          dispose() {
            (this._autoClosedCharactersDecorations = this._model.deltaDecorations(
              this._autoClosedCharactersDecorations,
              []
            )),
              (this._autoClosedEnclosingDecorations = this._model.deltaDecorations(
                this._autoClosedEnclosingDecorations,
                []
              ));
          }
          getAutoClosedCharactersRanges() {
            let e = [];
            for (
              let t = 0;
              t < this._autoClosedCharactersDecorations.length;
              t++
            ) {
              const i = this._model.getDecorationRange(
                this._autoClosedCharactersDecorations[t]
              );
              i && e.push(i);
            }
            return e;
          }
          isValid(e) {
            let t = [];
            for (
              let e = 0;
              e < this._autoClosedEnclosingDecorations.length;
              e++
            ) {
              const i = this._model.getDecorationRange(
                this._autoClosedEnclosingDecorations[e]
              );
              if (i && (t.push(i), i.startLineNumber !== i.endLineNumber))
                return !1;
            }
            t.sort(X.e.compareRangesUsingStarts),
              e.sort(X.e.compareRangesUsingStarts);
            for (let i = 0; i < e.length; i++) {
              if (i >= t.length) return !1;
              if (!t[i].strictContainsRange(e[i])) return !1;
            }
            return !0;
          }
        }
        class Ai extends a.JT {
          constructor(e, t, i, n) {
            super(),
              (this._model = e),
              (this._knownModelVersionId = this._model.getVersionId()),
              (this._viewModel = t),
              (this._coordinatesConverter = i),
              (this.context = new ee.zp(
                this._model,
                this._coordinatesConverter,
                n
              )),
              (this._cursors = new si(this.context)),
              (this._hasFocus = !1),
              (this._isHandling = !1),
              (this._isDoingComposition = !1),
              (this._selectionsWhenCompositionStarted = null),
              (this._columnSelectData = null),
              (this._autoClosedActions = []),
              (this._prevEditOperationType = 0);
          }
          dispose() {
            this._cursors.dispose(),
              (this._autoClosedActions = (0, a.B9)(this._autoClosedActions)),
              super.dispose();
          }
          updateConfiguration(e) {
            (this.context = new ee.zp(
              this._model,
              this._coordinatesConverter,
              e
            )),
              this._cursors.updateContext(this.context);
          }
          onLineMappingChanged(e) {
            this._knownModelVersionId === this._model.getVersionId() &&
              this.setStates(e, 'viewModel', 0, this.getCursorStates());
          }
          setHasFocus(e) {
            this._hasFocus = e;
          }
          _validateAutoClosedActions() {
            if (this._autoClosedActions.length > 0) {
              let e = this._cursors.getSelections();
              for (let t = 0; t < this._autoClosedActions.length; t++) {
                const i = this._autoClosedActions[t];
                i.isValid(e) ||
                  (i.dispose(), this._autoClosedActions.splice(t, 1), t--);
              }
            }
          }
          getPrimaryCursorState() {
            return this._cursors.getPrimaryCursor();
          }
          getLastAddedCursorIndex() {
            return this._cursors.getLastAddedCursorIndex();
          }
          getCursorStates() {
            return this._cursors.getAll();
          }
          setStates(e, t, i, n) {
            let r = !1;
            null !== n &&
              n.length > Ai.MAX_CURSOR_COUNT &&
              ((n = n.slice(0, Ai.MAX_CURSOR_COUNT)), (r = !0));
            const s = new Ii(this._model, this);
            return (
              this._cursors.setStates(n),
              this._cursors.normalize(),
              (this._columnSelectData = null),
              this._validateAutoClosedActions(),
              this._emitStateChangedIfNecessary(e, t, i, s, r)
            );
          }
          setCursorColumnSelectData(e) {
            this._columnSelectData = e;
          }
          revealPrimary(e, t, i, n) {
            const r = this._cursors.getViewPositions();
            if (r.length > 1)
              this._emitCursorRevealRange(
                e,
                t,
                null,
                this._cursors.getViewSelections(),
                0,
                i,
                n
              );
            else {
              const s = r[0],
                o = new X.e(s.lineNumber, s.column, s.lineNumber, s.column);
              this._emitCursorRevealRange(e, t, o, null, 0, i, n);
            }
          }
          _revealPrimaryCursor(e, t, i, n, r) {
            const s = this._cursors.getViewPositions();
            if (s.length > 1)
              this._emitCursorRevealRange(
                e,
                t,
                null,
                this._cursors.getViewSelections(),
                i,
                n,
                r
              );
            else {
              const o = s[0],
                a = new X.e(o.lineNumber, o.column, o.lineNumber, o.column);
              this._emitCursorRevealRange(e, t, a, null, i, n, r);
            }
          }
          _emitCursorRevealRange(e, t, i, n, r, s, o) {
            e.emitViewEvent(new bi(t, i, n, r, s, o));
          }
          saveState() {
            let e = [];
            const t = this._cursors.getSelections();
            for (let i = 0, n = t.length; i < n; i++) {
              const n = t[i];
              e.push({
                inSelectionMode: !n.isEmpty(),
                selectionStart: {
                  lineNumber: n.selectionStartLineNumber,
                  column: n.selectionStartColumn,
                },
                position: {
                  lineNumber: n.positionLineNumber,
                  column: n.positionColumn,
                },
              });
            }
            return e;
          }
          restoreState(e, t) {
            let i = [];
            for (let e = 0, n = t.length; e < n; e++) {
              const n = t[e];
              let r = 1,
                s = 1;
              n.position &&
                n.position.lineNumber &&
                (r = n.position.lineNumber),
                n.position && n.position.column && (s = n.position.column);
              let o = r,
                a = s;
              n.selectionStart &&
                n.selectionStart.lineNumber &&
                (o = n.selectionStart.lineNumber),
                n.selectionStart &&
                  n.selectionStart.column &&
                  (a = n.selectionStart.column),
                i.push({
                  selectionStartLineNumber: o,
                  selectionStartColumn: a,
                  positionLineNumber: r,
                  positionColumn: s,
                });
            }
            this.setStates(e, 'restoreState', 0, ee.Vi.fromModelSelections(i)),
              this.revealPrimary(e, 'restoreState', !0, 1);
          }
          onModelContentChanged(e, t) {
            if (((this._knownModelVersionId = t.versionId), this._isHandling))
              return;
            const i = t.containsEvent(1);
            if (((this._prevEditOperationType = 0), i))
              this._cursors.dispose(),
                (this._cursors = new si(this.context)),
                this._validateAutoClosedActions(),
                this._emitStateChangedIfNecessary(e, 'model', 1, null, !1);
            else if (
              this._hasFocus &&
              t.resultingSelection &&
              t.resultingSelection.length > 0
            ) {
              const i = ee.Vi.fromModelSelections(t.resultingSelection);
              this.setStates(
                e,
                'modelChange',
                t.isUndoing ? 5 : t.isRedoing ? 6 : 2,
                i
              ) && this._revealPrimaryCursor(e, 'modelChange', 0, !0, 0);
            } else {
              const t = this._cursors.readSelectionFromMarkers();
              this.setStates(e, 'modelChange', 2, ee.Vi.fromModelSelections(t));
            }
          }
          getSelection() {
            return this._cursors.getPrimaryCursor().modelState.selection;
          }
          getTopMostViewPosition() {
            return this._cursors.getTopMostViewPosition();
          }
          getBottomMostViewPosition() {
            return this._cursors.getBottomMostViewPosition();
          }
          getCursorColumnSelectData() {
            if (this._columnSelectData) return this._columnSelectData;
            const e = this._cursors.getPrimaryCursor(),
              t = e.viewState.selectionStart.getStartPosition(),
              i = e.viewState.position;
            return {
              isReal: !1,
              fromViewLineNumber: t.lineNumber,
              fromViewVisualColumn: ee.io.visibleColumnFromColumn2(
                this.context.cursorConfig,
                this._viewModel,
                t
              ),
              toViewLineNumber: i.lineNumber,
              toViewVisualColumn: ee.io.visibleColumnFromColumn2(
                this.context.cursorConfig,
                this._viewModel,
                i
              ),
            };
          }
          getSelections() {
            return this._cursors.getSelections();
          }
          setSelections(e, t, i) {
            this.setStates(e, t, 0, ee.Vi.fromModelSelections(i));
          }
          getPrevEditOperationType() {
            return this._prevEditOperationType;
          }
          setPrevEditOperationType(e) {
            this._prevEditOperationType = e;
          }
          _pushAutoClosedAction(e, t) {
            let i = [],
              n = [];
            for (let r = 0, s = e.length; r < s; r++)
              i.push({
                range: e[r],
                options: {
                  inlineClassName: 'auto-closed-character',
                  stickiness: 1,
                },
              }),
                n.push({ range: t[r], options: { stickiness: 1 } });
            const r = this._model.deltaDecorations([], i),
              s = this._model.deltaDecorations([], n);
            this._autoClosedActions.push(new Oi(this._model, r, s));
          }
          _executeEditOperation(e) {
            if (!e) return;
            e.shouldPushStackElementBefore && this._model.pushStackElement();
            const t = class {
              static executeCommands(e, t, i) {
                const n = {
                    model: e,
                    selectionsBefore: t,
                    trackedRanges: [],
                    trackedRangesDirection: [],
                  },
                  r = this._innerExecuteCommands(n, i);
                for (let e = 0, t = n.trackedRanges.length; e < t; e++)
                  n.model._setTrackedRange(n.trackedRanges[e], null, 0);
                return r;
              }
              static _innerExecuteCommands(e, t) {
                if (this._arrayIsEmpty(t)) return null;
                const i = this._getEditOperations(e, t);
                if (0 === i.operations.length) return null;
                const n = i.operations,
                  r = this._getLoserCursorMap(n);
                if (r.hasOwnProperty('0'))
                  return console.warn('Ignoring commands'), null;
                let s = [];
                for (let e = 0, t = n.length; e < t; e++)
                  r.hasOwnProperty(n[e].identifier.major.toString()) ||
                    s.push(n[e]);
                i.hadTrackedEditOperation &&
                  s.length > 0 &&
                  (s[0]._isTracked = !0);
                let o = e.model.pushEditOperations(
                  e.selectionsBefore,
                  s,
                  (i) => {
                    let n = [];
                    for (let t = 0; t < e.selectionsBefore.length; t++)
                      n[t] = [];
                    for (const e of i)
                      e.identifier && n[e.identifier.major].push(e);
                    const r = (e, t) => e.identifier.minor - t.identifier.minor;
                    let s = [];
                    for (let i = 0; i < e.selectionsBefore.length; i++)
                      n[i].length > 0
                        ? (n[i].sort(r),
                          (s[i] = t[i].computeCursorState(e.model, {
                            getInverseEditOperations: () => n[i],
                            getTrackedSelection: (t) => {
                              const i = parseInt(t, 10),
                                n = e.model._getTrackedRange(
                                  e.trackedRanges[i]
                                );
                              return 0 === e.trackedRangesDirection[i]
                                ? new u.Y(
                                    n.startLineNumber,
                                    n.startColumn,
                                    n.endLineNumber,
                                    n.endColumn
                                  )
                                : new u.Y(
                                    n.endLineNumber,
                                    n.endColumn,
                                    n.startLineNumber,
                                    n.startColumn
                                  );
                            },
                          })))
                        : (s[i] = e.selectionsBefore[i]);
                    return s;
                  }
                );
                o || (o = e.selectionsBefore);
                let a = [];
                for (let e in r) r.hasOwnProperty(e) && a.push(parseInt(e, 10));
                a.sort((e, t) => t - e);
                for (const e of a) o.splice(e, 1);
                return o;
              }
              static _arrayIsEmpty(e) {
                for (let t = 0, i = e.length; t < i; t++) if (e[t]) return !1;
                return !0;
              }
              static _getEditOperations(e, t) {
                let i = [],
                  n = !1;
                for (let r = 0, s = t.length; r < s; r++) {
                  const s = t[r];
                  if (s) {
                    const t = this._getEditOperationsFromCommand(e, r, s);
                    (i = i.concat(t.operations)),
                      (n = n || t.hadTrackedEditOperation);
                  }
                }
                return { operations: i, hadTrackedEditOperation: n };
              }
              static _getEditOperationsFromCommand(e, t, i) {
                let n = [],
                  r = 0;
                const o = (e, s, o = !1) => {
                  (X.e.isEmpty(e) && '' === s) ||
                    n.push({
                      identifier: { major: t, minor: r++ },
                      range: e,
                      text: s,
                      forceMoveMarkers: o,
                      isAutoWhitespaceEdit: i.insertsAutoWhitespace,
                    });
                };
                let a = !1;
                const l = {
                  addEditOperation: o,
                  addTrackedEditOperation: (e, t, i) => {
                    (a = !0), o(e, t, i);
                  },
                  trackSelection: (t, i) => {
                    const n = u.Y.liftSelection(t);
                    let r;
                    if (n.isEmpty())
                      if ('boolean' == typeof i) r = i ? 2 : 3;
                      else {
                        const t = e.model.getLineMaxColumn(n.startLineNumber);
                        r = n.startColumn === t ? 2 : 3;
                      }
                    else r = 1;
                    const s = e.trackedRanges.length,
                      o = e.model._setTrackedRange(null, n, r);
                    return (
                      (e.trackedRanges[s] = o),
                      (e.trackedRangesDirection[s] = n.getDirection()),
                      s.toString()
                    );
                  },
                };
                try {
                  i.getEditOperations(e.model, l);
                } catch (e) {
                  return (
                    (0, s.dL)(e),
                    { operations: [], hadTrackedEditOperation: !1 }
                  );
                }
                return { operations: n, hadTrackedEditOperation: a };
              }
              static _getLoserCursorMap(e) {
                (e = e.slice(0)).sort(
                  (e, t) => -X.e.compareRangesUsingEnds(e.range, t.range)
                );
                let t = {};
                for (let i = 1; i < e.length; i++) {
                  const n = e[i - 1],
                    r = e[i];
                  if (
                    X.e
                      .getStartPosition(n.range)
                      .isBefore(X.e.getEndPosition(r.range))
                  ) {
                    let s;
                    (s =
                      n.identifier.major > r.identifier.major
                        ? n.identifier.major
                        : r.identifier.major),
                      (t[s.toString()] = !0);
                    for (let t = 0; t < e.length; t++)
                      e[t].identifier.major === s &&
                        (e.splice(t, 1), t < i && i--, t--);
                    i > 0 && i--;
                  }
                }
                return t;
              }
            }.executeCommands(
              this._model,
              this._cursors.getSelections(),
              e.commands
            );
            if (t) {
              this._interpretCommandResult(t);
              let i = [],
                n = [];
              for (let t = 0; t < e.commands.length; t++) {
                const r = e.commands[t];
                r instanceof ai.g &&
                  r.enclosingRange &&
                  r.closeCharacterRange &&
                  (i.push(r.closeCharacterRange), n.push(r.enclosingRange));
              }
              i.length > 0 && this._pushAutoClosedAction(i, n),
                (this._prevEditOperationType = e.type);
            }
            e.shouldPushStackElementAfter && this._model.pushStackElement();
          }
          _interpretCommandResult(e) {
            (e && 0 !== e.length) ||
              (e = this._cursors.readSelectionFromMarkers()),
              (this._columnSelectData = null),
              this._cursors.setSelections(e),
              this._cursors.normalize();
          }
          _emitStateChangedIfNecessary(e, t, i, n, r) {
            const s = new Ii(this._model, this);
            if (s.equals(n)) return !1;
            const o = this._cursors.getSelections(),
              a = this._cursors.getViewSelections();
            if (
              (e.emitViewEvent(new ci(a, o)),
              !n ||
                n.cursorState.length !== s.cursorState.length ||
                s.cursorState.some(
                  (e, t) => !e.modelState.equals(n.cursorState[t].modelState)
                ))
            ) {
              const a = n
                  ? n.cursorState.map((e) => e.modelState.selection)
                  : null,
                l = n ? n.modelVersionId : 0;
              e.emitOutgoingEvent(
                new Ei(a, o, l, s.modelVersionId, t || 'keyboard', i, r)
              );
            }
            return !0;
          }
          _findAutoClosingPairs(e) {
            if (!e.length) return null;
            let t = [];
            for (let i = 0, n = e.length; i < n; i++) {
              const n = e[i];
              if (!n.text || n.text.indexOf('\n') >= 0) return null;
              const r = n.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);
              if (!r) return null;
              const s = r[1],
                o = this.context.cursorConfig.autoClosingPairsClose2.get(s);
              if (!o || 1 !== o.length) return null;
              const a = o[0].open,
                l = n.text.length - r[2].length - 1,
                c = n.text.lastIndexOf(a, l - 1);
              if (-1 === c) return null;
              t.push([c, l]);
            }
            return t;
          }
          executeEdits(e, t, i, n) {
            let r = null;
            'snippet' === t && (r = this._findAutoClosingPairs(i)),
              r && (i[0]._isTracked = !0);
            let s = [],
              o = [];
            const a = this._model.pushEditOperations(
              this.getSelections(),
              i,
              (e) => {
                if (r)
                  for (let t = 0, i = r.length; t < i; t++) {
                    const [i, n] = r[t],
                      a = e[t],
                      l = a.range.startLineNumber,
                      c = a.range.startColumn - 1 + i,
                      d = a.range.startColumn - 1 + n;
                    s.push(new X.e(l, d + 1, l, d + 2)),
                      o.push(new X.e(l, c + 1, l, d + 2));
                  }
                const t = n(e);
                return t && (this._isHandling = !0), t;
              }
            );
            a && ((this._isHandling = !1), this.setSelections(e, t, a)),
              s.length > 0 && this._pushAutoClosedAction(s, o);
          }
          _executeEdit(e, t, i, n = 0) {
            if (this.context.cursorConfig.readOnly) return;
            const r = new Ii(this._model, this);
            this._cursors.stopTrackingSelections(), (this._isHandling = !0);
            try {
              this._cursors.ensureValidState(), e();
            } catch (e) {
              (0, s.dL)(e);
            }
            (this._isHandling = !1),
              this._cursors.startTrackingSelections(),
              this._validateAutoClosedActions(),
              this._emitStateChangedIfNecessary(t, i, n, r, !1) &&
                this._revealPrimaryCursor(t, i, 0, !0, 0);
          }
          setIsDoingComposition(e) {
            this._isDoingComposition = e;
          }
          startComposition(e) {
            this._selectionsWhenCompositionStarted = this.getSelections().slice(
              0
            );
          }
          endComposition(e, t) {
            this._executeEdit(
              () => {
                if ('keyboard' === t) {
                  const e = Oi.getAllAutoClosedCharacters(
                    this._autoClosedActions
                  );
                  this._executeEditOperation(
                    ai.u.compositionEndWithInterceptors(
                      this._prevEditOperationType,
                      this.context.cursorConfig,
                      this._model,
                      this._selectionsWhenCompositionStarted,
                      this.getSelections(),
                      e
                    )
                  ),
                    (this._selectionsWhenCompositionStarted = null);
                }
              },
              e,
              t
            );
          }
          type(e, t, i) {
            this._executeEdit(
              () => {
                if ('keyboard' === i) {
                  const e = t.length;
                  let i = 0;
                  for (; i < e; ) {
                    const e = we.vH(t, i),
                      n = t.substr(i, e),
                      r = Oi.getAllAutoClosedCharacters(
                        this._autoClosedActions
                      );
                    this._executeEditOperation(
                      ai.u.typeWithInterceptors(
                        this._isDoingComposition,
                        this._prevEditOperationType,
                        this.context.cursorConfig,
                        this._model,
                        this.getSelections(),
                        r,
                        n
                      )
                    ),
                      (i += e);
                  }
                } else
                  this._executeEditOperation(
                    ai.u.typeWithoutInterceptors(
                      this._prevEditOperationType,
                      this.context.cursorConfig,
                      this._model,
                      this.getSelections(),
                      t
                    )
                  );
              },
              e,
              i
            );
          }
          replacePreviousChar(e, t, i, n) {
            this._executeEdit(
              () => {
                this._executeEditOperation(
                  ai.u.replacePreviousChar(
                    this._prevEditOperationType,
                    this.context.cursorConfig,
                    this._model,
                    this.getSelections(),
                    t,
                    i
                  )
                );
              },
              e,
              n
            );
          }
          paste(e, t, i, n, r) {
            this._executeEdit(
              () => {
                this._executeEditOperation(
                  ai.u.paste(
                    this.context.cursorConfig,
                    this._model,
                    this.getSelections(),
                    t,
                    i,
                    n || []
                  )
                );
              },
              e,
              r,
              4
            );
          }
          cut(e, t) {
            this._executeEdit(
              () => {
                this._executeEditOperation(
                  oi.A.cut(
                    this.context.cursorConfig,
                    this._model,
                    this.getSelections()
                  )
                );
              },
              e,
              t
            );
          }
          executeCommand(e, t, i) {
            this._executeEdit(
              () => {
                this._cursors.killSecondaryCursors(),
                  this._executeEditOperation(
                    new ee.Tp(0, [t], {
                      shouldPushStackElementBefore: !1,
                      shouldPushStackElementAfter: !1,
                    })
                  );
              },
              e,
              i
            );
          }
          executeCommands(e, t, i) {
            this._executeEdit(
              () => {
                this._executeEditOperation(
                  new ee.Tp(0, t, {
                    shouldPushStackElementBefore: !1,
                    shouldPushStackElementAfter: !1,
                  })
                );
              },
              e,
              i
            );
          }
        }
        Ai.MAX_CURSOR_COUNT = 1e4;
        var Ri = i(30653),
          Pi = i(96518),
          Fi = i(29102),
          Bi = i(55713),
          Wi = i(76633);
        class Yi {
          constructor() {
            (this._hasPending = !1),
              (this._inserts = []),
              (this._changes = []),
              (this._removes = []);
          }
          insert(e) {
            (this._hasPending = !0), this._inserts.push(e);
          }
          change(e) {
            (this._hasPending = !0), this._changes.push(e);
          }
          remove(e) {
            (this._hasPending = !0), this._removes.push(e);
          }
          mustCommit() {
            return this._hasPending;
          }
          commit(e) {
            if (!this._hasPending) return;
            const t = this._inserts,
              i = this._changes,
              n = this._removes;
            (this._hasPending = !1),
              (this._inserts = []),
              (this._changes = []),
              (this._removes = []),
              e._commitPendingChanges(t, i, n);
          }
        }
        class Hi {
          constructor(e, t, i, n, r) {
            (this.id = e),
              (this.afterLineNumber = t),
              (this.ordinal = i),
              (this.height = n),
              (this.minWidth = r),
              (this.prefixSum = 0);
          }
        }
        class ji {
          constructor(e, t, i, n) {
            (this._instanceId = we.PJ(++ji.INSTANCE_COUNT)),
              (this._pendingChanges = new Yi()),
              (this._lastWhitespaceId = 0),
              (this._arr = []),
              (this._prefixSumValidIndex = -1),
              (this._minWidth = -1),
              (this._lineCount = e),
              (this._lineHeight = t),
              (this._paddingTop = i),
              (this._paddingBottom = n);
          }
          static findInsertionIndex(e, t, i) {
            let n = 0,
              r = e.length;
            for (; n < r; ) {
              const s = (n + r) >>> 1;
              t === e[s].afterLineNumber
                ? i < e[s].ordinal
                  ? (r = s)
                  : (n = s + 1)
                : t < e[s].afterLineNumber
                ? (r = s)
                : (n = s + 1);
            }
            return n;
          }
          setLineHeight(e) {
            this._checkPendingChanges(), (this._lineHeight = e);
          }
          setPadding(e, t) {
            (this._paddingTop = e), (this._paddingBottom = t);
          }
          onFlushed(e) {
            this._checkPendingChanges(), (this._lineCount = e);
          }
          changeWhitespace(e) {
            let t = !1;
            try {
              e({
                insertWhitespace: (e, i, n, r) => {
                  (t = !0), (e |= 0), (i |= 0), (n |= 0), (r |= 0);
                  const s = this._instanceId + ++this._lastWhitespaceId;
                  return this._pendingChanges.insert(new Hi(s, e, i, n, r)), s;
                },
                changeOneWhitespace: (e, i, n) => {
                  (t = !0),
                    (i |= 0),
                    (n |= 0),
                    this._pendingChanges.change({
                      id: e,
                      newAfterLineNumber: i,
                      newHeight: n,
                    });
                },
                removeWhitespace: (e) => {
                  (t = !0), this._pendingChanges.remove({ id: e });
                },
              });
            } finally {
              this._pendingChanges.commit(this);
            }
            return t;
          }
          _commitPendingChanges(e, t, i) {
            if (
              ((e.length > 0 || i.length > 0) && (this._minWidth = -1),
              e.length + t.length + i.length <= 1)
            ) {
              for (const t of e) this._insertWhitespace(t);
              for (const e of t)
                this._changeOneWhitespace(
                  e.id,
                  e.newAfterLineNumber,
                  e.newHeight
                );
              for (const e of i) {
                const t = this._findWhitespaceIndex(e.id);
                -1 !== t && this._removeWhitespace(t);
              }
              return;
            }
            const n = new Set();
            for (const e of i) n.add(e.id);
            const r = new Map();
            for (const e of t) r.set(e.id, e);
            const s = (e) => {
                let t = [];
                for (const i of e)
                  if (!n.has(i.id)) {
                    if (r.has(i.id)) {
                      const e = r.get(i.id);
                      (i.afterLineNumber = e.newAfterLineNumber),
                        (i.height = e.newHeight);
                    }
                    t.push(i);
                  }
                return t;
              },
              o = s(this._arr).concat(s(e));
            o.sort((e, t) =>
              e.afterLineNumber === t.afterLineNumber
                ? e.ordinal - t.ordinal
                : e.afterLineNumber - t.afterLineNumber
            ),
              (this._arr = o),
              (this._prefixSumValidIndex = -1);
          }
          _checkPendingChanges() {
            this._pendingChanges.mustCommit() &&
              this._pendingChanges.commit(this);
          }
          _insertWhitespace(e) {
            const t = ji.findInsertionIndex(
              this._arr,
              e.afterLineNumber,
              e.ordinal
            );
            this._arr.splice(t, 0, e),
              (this._prefixSumValidIndex = Math.min(
                this._prefixSumValidIndex,
                t - 1
              ));
          }
          _findWhitespaceIndex(e) {
            const t = this._arr;
            for (let i = 0, n = t.length; i < n; i++)
              if (t[i].id === e) return i;
            return -1;
          }
          _changeOneWhitespace(e, t, i) {
            const n = this._findWhitespaceIndex(e);
            if (
              -1 !== n &&
              (this._arr[n].height !== i &&
                ((this._arr[n].height = i),
                (this._prefixSumValidIndex = Math.min(
                  this._prefixSumValidIndex,
                  n - 1
                ))),
              this._arr[n].afterLineNumber !== t)
            ) {
              const e = this._arr[n];
              this._removeWhitespace(n),
                (e.afterLineNumber = t),
                this._insertWhitespace(e);
            }
          }
          _removeWhitespace(e) {
            this._arr.splice(e, 1),
              (this._prefixSumValidIndex = Math.min(
                this._prefixSumValidIndex,
                e - 1
              ));
          }
          onLinesDeleted(e, t) {
            this._checkPendingChanges(),
              (e |= 0),
              (t |= 0),
              (this._lineCount -= t - e + 1);
            for (let i = 0, n = this._arr.length; i < n; i++) {
              const n = this._arr[i].afterLineNumber;
              e <= n && n <= t
                ? (this._arr[i].afterLineNumber = e - 1)
                : n > t && (this._arr[i].afterLineNumber -= t - e + 1);
            }
          }
          onLinesInserted(e, t) {
            this._checkPendingChanges(),
              (e |= 0),
              (t |= 0),
              (this._lineCount += t - e + 1);
            for (let i = 0, n = this._arr.length; i < n; i++)
              e <= this._arr[i].afterLineNumber &&
                (this._arr[i].afterLineNumber += t - e + 1);
          }
          getWhitespacesTotalHeight() {
            return (
              this._checkPendingChanges(),
              0 === this._arr.length
                ? 0
                : this.getWhitespacesAccumulatedHeight(this._arr.length - 1)
            );
          }
          getWhitespacesAccumulatedHeight(e) {
            this._checkPendingChanges(), (e |= 0);
            let t = Math.max(0, this._prefixSumValidIndex + 1);
            0 === t && ((this._arr[0].prefixSum = this._arr[0].height), t++);
            for (let i = t; i <= e; i++)
              this._arr[i].prefixSum =
                this._arr[i - 1].prefixSum + this._arr[i].height;
            return (
              (this._prefixSumValidIndex = Math.max(
                this._prefixSumValidIndex,
                e
              )),
              this._arr[e].prefixSum
            );
          }
          getLinesTotalHeight() {
            return (
              this._checkPendingChanges(),
              this._lineHeight * this._lineCount +
                this.getWhitespacesTotalHeight() +
                this._paddingTop +
                this._paddingBottom
            );
          }
          getWhitespaceAccumulatedHeightBeforeLineNumber(e) {
            this._checkPendingChanges(), (e |= 0);
            const t = this._findLastWhitespaceBeforeLineNumber(e);
            return -1 === t ? 0 : this.getWhitespacesAccumulatedHeight(t);
          }
          _findLastWhitespaceBeforeLineNumber(e) {
            e |= 0;
            const t = this._arr;
            let i = 0,
              n = t.length - 1;
            for (; i <= n; ) {
              const r = (i + ((((n - i) | 0) / 2) | 0)) | 0;
              if (t[r].afterLineNumber < e) {
                if (r + 1 >= t.length || t[r + 1].afterLineNumber >= e)
                  return r;
                i = (r + 1) | 0;
              } else n = (r - 1) | 0;
            }
            return -1;
          }
          _findFirstWhitespaceAfterLineNumber(e) {
            e |= 0;
            const t = this._findLastWhitespaceBeforeLineNumber(e) + 1;
            return t < this._arr.length ? t : -1;
          }
          getFirstWhitespaceIndexAfterLineNumber(e) {
            return (
              this._checkPendingChanges(),
              (e |= 0),
              this._findFirstWhitespaceAfterLineNumber(e)
            );
          }
          getVerticalOffsetForLineNumber(e) {
            let t;
            return (
              this._checkPendingChanges(),
              (t = (e |= 0) > 1 ? this._lineHeight * (e - 1) : 0),
              t +
                this.getWhitespaceAccumulatedHeightBeforeLineNumber(e) +
                this._paddingTop
            );
          }
          getWhitespaceMinWidth() {
            if ((this._checkPendingChanges(), -1 === this._minWidth)) {
              let e = 0;
              for (let t = 0, i = this._arr.length; t < i; t++)
                e = Math.max(e, this._arr[t].minWidth);
              this._minWidth = e;
            }
            return this._minWidth;
          }
          isAfterLines(e) {
            return this._checkPendingChanges(), e > this.getLinesTotalHeight();
          }
          getLineNumberAtOrAfterVerticalOffset(e) {
            if ((this._checkPendingChanges(), (e |= 0) < 0)) return 1;
            const t = 0 | this._lineCount,
              i = this._lineHeight;
            let n = 1,
              r = t;
            for (; n < r; ) {
              const t = ((n + r) / 2) | 0,
                s = 0 | this.getVerticalOffsetForLineNumber(t);
              if (e >= s + i) n = t + 1;
              else {
                if (e >= s) return t;
                r = t;
              }
            }
            return n > t ? t : n;
          }
          getLinesViewportData(e, t) {
            this._checkPendingChanges(), (e |= 0), (t |= 0);
            const i = this._lineHeight,
              n = 0 | this.getLineNumberAtOrAfterVerticalOffset(e),
              r = 0 | this.getVerticalOffsetForLineNumber(n);
            let s = 0 | this._lineCount,
              o = 0 | this.getFirstWhitespaceIndexAfterLineNumber(n);
            const a = 0 | this.getWhitespacesCount();
            let l, c;
            -1 === o
              ? ((o = a), (c = s + 1), (l = 0))
              : ((c = 0 | this.getAfterLineNumberForWhitespaceIndex(o)),
                (l = 0 | this.getHeightForWhitespaceIndex(o)));
            let d = r,
              h = d;
            const u = 5e5;
            let g = 0;
            r >= u &&
              ((g = Math.floor(r / u) * u),
              (g = Math.floor(g / i) * i),
              (h -= g));
            const f = [],
              p = e + (t - e) / 2;
            let m = -1;
            for (let e = n; e <= s; e++) {
              if (-1 === m) {
                const t = d,
                  n = d + i;
                ((t <= p && p < n) || t > p) && (m = e);
              }
              for (d += i, f[e - n] = h, h += i; c === e; )
                (h += l),
                  (d += l),
                  o++,
                  o >= a
                    ? (c = s + 1)
                    : ((c = 0 | this.getAfterLineNumberForWhitespaceIndex(o)),
                      (l = 0 | this.getHeightForWhitespaceIndex(o)));
              if (d >= t) {
                s = e;
                break;
              }
            }
            -1 === m && (m = s);
            const _ = 0 | this.getVerticalOffsetForLineNumber(s);
            let b = n,
              v = s;
            return (
              b < v && r < e && b++,
              b < v && _ + i > t && v--,
              {
                bigNumbersDelta: g,
                startLineNumber: n,
                endLineNumber: s,
                relativeVerticalOffset: f,
                centeredLineNumber: m,
                completelyVisibleStartLineNumber: b,
                completelyVisibleEndLineNumber: v,
              }
            );
          }
          getVerticalOffsetForWhitespaceIndex(e) {
            this._checkPendingChanges(), (e |= 0);
            const t = this.getAfterLineNumberForWhitespaceIndex(e);
            let i, n;
            return (
              (i = t >= 1 ? this._lineHeight * t : 0),
              (n = e > 0 ? this.getWhitespacesAccumulatedHeight(e - 1) : 0),
              i + n + this._paddingTop
            );
          }
          getWhitespaceIndexAtOrAfterVerticallOffset(e) {
            this._checkPendingChanges(), (e |= 0);
            let t = 0,
              i = this.getWhitespacesCount() - 1;
            if (i < 0) return -1;
            if (
              e >=
              this.getVerticalOffsetForWhitespaceIndex(i) +
                this.getHeightForWhitespaceIndex(i)
            )
              return -1;
            for (; t < i; ) {
              const n = Math.floor((t + i) / 2),
                r = this.getVerticalOffsetForWhitespaceIndex(n);
              if (e >= r + this.getHeightForWhitespaceIndex(n)) t = n + 1;
              else {
                if (e >= r) return n;
                i = n;
              }
            }
            return t;
          }
          getWhitespaceAtVerticalOffset(e) {
            this._checkPendingChanges(), (e |= 0);
            const t = this.getWhitespaceIndexAtOrAfterVerticallOffset(e);
            if (t < 0) return null;
            if (t >= this.getWhitespacesCount()) return null;
            const i = this.getVerticalOffsetForWhitespaceIndex(t);
            if (i > e) return null;
            const n = this.getHeightForWhitespaceIndex(t);
            return {
              id: this.getIdForWhitespaceIndex(t),
              afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(t),
              verticalOffset: i,
              height: n,
            };
          }
          getWhitespaceViewportData(e, t) {
            this._checkPendingChanges(), (e |= 0), (t |= 0);
            const i = this.getWhitespaceIndexAtOrAfterVerticallOffset(e),
              n = this.getWhitespacesCount() - 1;
            if (i < 0) return [];
            let r = [];
            for (let e = i; e <= n; e++) {
              const i = this.getVerticalOffsetForWhitespaceIndex(e),
                n = this.getHeightForWhitespaceIndex(e);
              if (i >= t) break;
              r.push({
                id: this.getIdForWhitespaceIndex(e),
                afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(e),
                verticalOffset: i,
                height: n,
              });
            }
            return r;
          }
          getWhitespaces() {
            return this._checkPendingChanges(), this._arr.slice(0);
          }
          getWhitespacesCount() {
            return this._checkPendingChanges(), this._arr.length;
          }
          getIdForWhitespaceIndex(e) {
            return this._checkPendingChanges(), (e |= 0), this._arr[e].id;
          }
          getAfterLineNumberForWhitespaceIndex(e) {
            return (
              this._checkPendingChanges(),
              (e |= 0),
              this._arr[e].afterLineNumber
            );
          }
          getHeightForWhitespaceIndex(e) {
            return this._checkPendingChanges(), (e |= 0), this._arr[e].height;
          }
        }
        ji.INSTANCE_COUNT = 0;
        class Vi {
          constructor(e, t, i, n) {
            (e |= 0) < 0 && (e = 0),
              (t |= 0) < 0 && (t = 0),
              (i |= 0) < 0 && (i = 0),
              (n |= 0) < 0 && (n = 0),
              (this.width = e),
              (this.contentWidth = t),
              (this.scrollWidth = Math.max(e, t)),
              (this.height = i),
              (this.contentHeight = n),
              (this.scrollHeight = Math.max(i, n));
          }
          equals(e) {
            return (
              this.width === e.width &&
              this.contentWidth === e.contentWidth &&
              this.height === e.height &&
              this.contentHeight === e.contentHeight
            );
          }
        }
        class zi extends a.JT {
          constructor(e, t) {
            super(),
              (this._onDidContentSizeChange = this._register(new o.Q5())),
              (this.onDidContentSizeChange = this._onDidContentSizeChange.event),
              (this._dimensions = new Vi(0, 0, 0, 0)),
              (this._scrollable = this._register(new Wi.Rm(e, t))),
              (this.onDidScroll = this._scrollable.onScroll);
          }
          getScrollable() {
            return this._scrollable;
          }
          setSmoothScrollDuration(e) {
            this._scrollable.setSmoothScrollDuration(e);
          }
          validateScrollPosition(e) {
            return this._scrollable.validateScrollPosition(e);
          }
          getScrollDimensions() {
            return this._dimensions;
          }
          setScrollDimensions(e) {
            if (this._dimensions.equals(e)) return;
            const t = this._dimensions;
            (this._dimensions = e),
              this._scrollable.setScrollDimensions(
                {
                  width: e.width,
                  scrollWidth: e.scrollWidth,
                  height: e.height,
                  scrollHeight: e.scrollHeight,
                },
                !0
              );
            const i = t.contentWidth !== e.contentWidth,
              n = t.contentHeight !== e.contentHeight;
            (i || n) &&
              this._onDidContentSizeChange.fire(
                new Li(
                  t.contentWidth,
                  t.contentHeight,
                  e.contentWidth,
                  e.contentHeight
                )
              );
          }
          getFutureScrollPosition() {
            return this._scrollable.getFutureScrollPosition();
          }
          getCurrentScrollPosition() {
            return this._scrollable.getCurrentScrollPosition();
          }
          setScrollPositionNow(e) {
            this._scrollable.setScrollPositionNow(e);
          }
          setScrollPositionSmooth(e) {
            this._scrollable.setScrollPositionSmooth(e);
          }
        }
        class Ui extends a.JT {
          constructor(e, t, i) {
            super(), (this._configuration = e);
            const n = this._configuration.options,
              r = n.get(117),
              s = n.get(66);
            (this._linesLayout = new ji(t, n.get(51), s.top, s.bottom)),
              (this._scrollable = this._register(new zi(0, i))),
              this._configureSmoothScrollDuration(),
              this._scrollable.setScrollDimensions(
                new Vi(r.contentWidth, 0, r.height, 0)
              ),
              (this.onDidScroll = this._scrollable.onDidScroll),
              (this.onDidContentSizeChange = this._scrollable.onDidContentSizeChange),
              this._updateHeight();
          }
          dispose() {
            super.dispose();
          }
          getScrollable() {
            return this._scrollable.getScrollable();
          }
          onHeightMaybeChanged() {
            this._updateHeight();
          }
          _configureSmoothScrollDuration() {
            this._scrollable.setSmoothScrollDuration(
              this._configuration.options.get(94) ? 125 : 0
            );
          }
          onConfigurationChanged(e) {
            const t = this._configuration.options;
            if (
              (e.hasChanged(51) && this._linesLayout.setLineHeight(t.get(51)),
              e.hasChanged(66))
            ) {
              const e = t.get(66);
              this._linesLayout.setPadding(e.top, e.bottom);
            }
            if (e.hasChanged(117)) {
              const e = t.get(117),
                i = e.contentWidth,
                n = e.height,
                r = this._scrollable.getScrollDimensions(),
                s = r.contentWidth;
              this._scrollable.setScrollDimensions(
                new Vi(i, r.contentWidth, n, this._getContentHeight(i, n, s))
              );
            } else this._updateHeight();
            e.hasChanged(94) && this._configureSmoothScrollDuration();
          }
          onFlushed(e) {
            this._linesLayout.onFlushed(e);
          }
          onLinesDeleted(e, t) {
            this._linesLayout.onLinesDeleted(e, t);
          }
          onLinesInserted(e, t) {
            this._linesLayout.onLinesInserted(e, t);
          }
          _getHorizontalScrollbarHeight(e, t) {
            const i = this._configuration.options.get(84);
            return 2 === i.horizontal || e >= t ? 0 : i.horizontalScrollbarSize;
          }
          _getContentHeight(e, t, i) {
            const n = this._configuration.options;
            let r = this._linesLayout.getLinesTotalHeight();
            return (
              n.get(86)
                ? (r += t - n.get(51))
                : (r += this._getHorizontalScrollbarHeight(e, i)),
              r
            );
          }
          _updateHeight() {
            const e = this._scrollable.getScrollDimensions(),
              t = e.width,
              i = e.height,
              n = e.contentWidth;
            this._scrollable.setScrollDimensions(
              new Vi(t, e.contentWidth, i, this._getContentHeight(t, i, n))
            );
          }
          getCurrentViewport() {
            const e = this._scrollable.getScrollDimensions(),
              t = this._scrollable.getCurrentScrollPosition();
            return new pt.l_(t.scrollTop, t.scrollLeft, e.width, e.height);
          }
          getFutureViewport() {
            const e = this._scrollable.getScrollDimensions(),
              t = this._scrollable.getFutureScrollPosition();
            return new pt.l_(t.scrollTop, t.scrollLeft, e.width, e.height);
          }
          _computeContentWidth(e) {
            const t = this._configuration.options,
              i = t.get(118),
              n = t.get(36);
            if (i.isViewportWrapping) {
              const i = t.get(117),
                r = t.get(56);
              return e > i.contentWidth + n.typicalHalfwidthCharacterWidth &&
                r.enabled &&
                'right' === r.side
                ? e + i.verticalScrollbarWidth
                : e;
            }
            {
              const i = t.get(85) * n.typicalHalfwidthCharacterWidth,
                r = this._linesLayout.getWhitespaceMinWidth();
              return Math.max(e + i, r);
            }
          }
          setMaxLineWidth(e) {
            const t = this._scrollable.getScrollDimensions();
            this._scrollable.setScrollDimensions(
              new Vi(
                t.width,
                this._computeContentWidth(e),
                t.height,
                t.contentHeight
              )
            ),
              this._updateHeight();
          }
          saveState() {
            const e = this._scrollable.getFutureScrollPosition();
            let t = e.scrollTop,
              i = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);
            return {
              scrollTop: t,
              scrollTopWithoutViewZones:
                t -
                this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(
                  i
                ),
              scrollLeft: e.scrollLeft,
            };
          }
          changeWhitespace(e) {
            const t = this._linesLayout.changeWhitespace(e);
            return t && this.onHeightMaybeChanged(), t;
          }
          getVerticalOffsetForLineNumber(e) {
            return this._linesLayout.getVerticalOffsetForLineNumber(e);
          }
          isAfterLines(e) {
            return this._linesLayout.isAfterLines(e);
          }
          getLineNumberAtVerticalOffset(e) {
            return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e);
          }
          getWhitespaceAtVerticalOffset(e) {
            return this._linesLayout.getWhitespaceAtVerticalOffset(e);
          }
          getLinesViewportData() {
            const e = this.getCurrentViewport();
            return this._linesLayout.getLinesViewportData(
              e.top,
              e.top + e.height
            );
          }
          getLinesViewportDataAtScrollTop(e) {
            const t = this._scrollable.getScrollDimensions();
            return (
              e + t.height > t.scrollHeight && (e = t.scrollHeight - t.height),
              e < 0 && (e = 0),
              this._linesLayout.getLinesViewportData(e, e + t.height)
            );
          }
          getWhitespaceViewportData() {
            const e = this.getCurrentViewport();
            return this._linesLayout.getWhitespaceViewportData(
              e.top,
              e.top + e.height
            );
          }
          getWhitespaces() {
            return this._linesLayout.getWhitespaces();
          }
          getContentWidth() {
            return this._scrollable.getScrollDimensions().contentWidth;
          }
          getScrollWidth() {
            return this._scrollable.getScrollDimensions().scrollWidth;
          }
          getContentHeight() {
            return this._scrollable.getScrollDimensions().contentHeight;
          }
          getScrollHeight() {
            return this._scrollable.getScrollDimensions().scrollHeight;
          }
          getCurrentScrollLeft() {
            return this._scrollable.getCurrentScrollPosition().scrollLeft;
          }
          getCurrentScrollTop() {
            return this._scrollable.getCurrentScrollPosition().scrollTop;
          }
          validateScrollPosition(e) {
            return this._scrollable.validateScrollPosition(e);
          }
          setScrollPosition(e, t) {
            1 === t
              ? this._scrollable.setScrollPositionNow(e)
              : this._scrollable.setScrollPositionSmooth(e);
          }
          deltaScrollNow(e, t) {
            const i = this._scrollable.getCurrentScrollPosition();
            this._scrollable.setScrollPositionNow({
              scrollLeft: i.scrollLeft + e,
              scrollTop: i.scrollTop + t,
            });
          }
        }
        var $i = i(3411),
          Ki = i(3544);
        class qi {
          constructor(e, t) {
            (this.outputLineIndex = e), (this.outputOffset = t);
          }
        }
        class Gi {
          constructor(e, t, i) {
            (this.breakOffsets = e),
              (this.breakOffsetsVisibleColumn = t),
              (this.wrappedTextIndentLength = i);
          }
          static getInputOffsetOfOutputPosition(e, t, i) {
            return 0 === t ? i : e[t - 1] + i;
          }
          static getOutputPositionOfInputOffset(e, t) {
            let i = 0,
              n = e.length - 1,
              r = 0,
              s = 0;
            for (; i <= n; ) {
              r = (i + (n - i) / 2) | 0;
              const o = e[r];
              if (((s = r > 0 ? e[r - 1] : 0), t < s)) n = r - 1;
              else {
                if (!(t >= o)) break;
                i = r + 1;
              }
            }
            return new qi(r, t - s);
          }
        }
        class Zi {
          constructor(e) {
            this._lines = e;
          }
          convertViewPositionToModelPosition(e) {
            return this._lines.convertViewPositionToModelPosition(
              e.lineNumber,
              e.column
            );
          }
          convertViewRangeToModelRange(e) {
            return this._lines.convertViewRangeToModelRange(e);
          }
          validateViewPosition(e, t) {
            return this._lines.validateViewPosition(e.lineNumber, e.column, t);
          }
          validateViewRange(e, t) {
            return this._lines.validateViewRange(e, t);
          }
          convertModelPositionToViewPosition(e) {
            return this._lines.convertModelPositionToViewPosition(
              e.lineNumber,
              e.column
            );
          }
          convertModelRangeToViewRange(e) {
            return this._lines.convertModelRangeToViewRange(e);
          }
          modelPositionIsVisible(e) {
            return this._lines.modelPositionIsVisible(e.lineNumber, e.column);
          }
        }
        class Ji {
          constructor(e) {
            (this._counts = e),
              (this._isValid = !1),
              (this._validEndIndex = -1),
              (this._modelToView = []),
              (this._viewToModel = []);
          }
          _invalidate(e) {
            (this._isValid = !1),
              (this._validEndIndex = Math.min(this._validEndIndex, e - 1));
          }
          _ensureValid() {
            if (!this._isValid) {
              for (
                let e = this._validEndIndex + 1, t = this._counts.length;
                e < t;
                e++
              ) {
                const t = this._counts[e],
                  i = e > 0 ? this._modelToView[e - 1] : 0;
                this._modelToView[e] = i + t;
                for (let n = 0; n < t; n++) this._viewToModel[i + n] = e;
              }
              (this._modelToView.length = this._counts.length),
                (this._viewToModel.length = this._modelToView[
                  this._modelToView.length - 1
                ]),
                (this._isValid = !0),
                (this._validEndIndex = this._counts.length - 1);
            }
          }
          changeValue(e, t) {
            this._counts[e] !== t &&
              ((this._counts[e] = t), this._invalidate(e));
          }
          removeValues(e, t) {
            this._counts.splice(e, t), this._invalidate(e);
          }
          insertValues(e, t) {
            (this._counts = qe.Zv(this._counts, e, t)), this._invalidate(e);
          }
          getTotalValue() {
            return this._ensureValid(), this._viewToModel.length;
          }
          getAccumulatedValue(e) {
            return this._ensureValid(), this._modelToView[e];
          }
          getIndexOf(e) {
            this._ensureValid();
            const t = this._viewToModel[e],
              i = t > 0 ? this._modelToView[t - 1] : 0;
            return new Ki.T(t, e - i);
          }
        }
        class Qi {
          constructor(e, t, i, n, r, s, o, a) {
            (this.model = e),
              (this._validModelVersionId = -1),
              (this._domLineBreaksComputerFactory = t),
              (this._monospaceLineBreaksComputerFactory = i),
              (this.fontInfo = n),
              (this.tabSize = r),
              (this.wrappingStrategy = s),
              (this.wrappingColumn = o),
              (this.wrappingIndent = a),
              this._constructLines(!0, null);
          }
          dispose() {
            this.hiddenAreasIds = this.model.deltaDecorations(
              this.hiddenAreasIds,
              []
            );
          }
          createCoordinatesConverter() {
            return new Zi(this);
          }
          _constructLines(e, t) {
            (this.lines = []), e && (this.hiddenAreasIds = []);
            let i = this.model.getLinesContent();
            const n = i.length,
              r = this.createLineBreaksComputer();
            for (let e = 0; e < n; e++) r.addRequest(i[e], t ? t[e] : null);
            const s = r.finalize();
            let o = [],
              a = this.hiddenAreasIds
                .map((e) => this.model.getDecorationRange(e))
                .sort(X.e.compareRangesUsingStarts),
              l = 1,
              c = 0,
              d = -1,
              h = d + 1 < a.length ? c + 1 : n + 2;
            for (let e = 0; e < n; e++) {
              let t = e + 1;
              t === h &&
                (d++,
                (l = a[d].startLineNumber),
                (c = a[d].endLineNumber),
                (h = d + 1 < a.length ? c + 1 : n + 2));
              let i = t >= l && t <= c,
                r = on(s[e], !i);
              (o[e] = r.getViewLineCount()), (this.lines[e] = r);
            }
            (this._validModelVersionId = this.model.getVersionId()),
              (this.prefixSumComputer = new Ji(o));
          }
          getHiddenAreas() {
            return this.hiddenAreasIds.map((e) =>
              this.model.getDecorationRange(e)
            );
          }
          _reduceRanges(e) {
            if (0 === e.length) return [];
            let t = e
                .map((e) => this.model.validateRange(e))
                .sort(X.e.compareRangesUsingStarts),
              i = [],
              n = t[0].startLineNumber,
              r = t[0].endLineNumber;
            for (let e = 1, s = t.length; e < s; e++) {
              let s = t[e];
              s.startLineNumber > r + 1
                ? (i.push(new X.e(n, 1, r, 1)),
                  (n = s.startLineNumber),
                  (r = s.endLineNumber))
                : s.endLineNumber > r && (r = s.endLineNumber);
            }
            return i.push(new X.e(n, 1, r, 1)), i;
          }
          setHiddenAreas(e) {
            let t = this._reduceRanges(e),
              i = this.hiddenAreasIds
                .map((e) => this.model.getDecorationRange(e))
                .sort(X.e.compareRangesUsingStarts);
            if (t.length === i.length) {
              let e = !1;
              for (let n = 0; n < t.length; n++)
                if (!t[n].equalsRange(i[n])) {
                  e = !0;
                  break;
                }
              if (!e) return !1;
            }
            let n = [];
            for (const e of t) n.push({ range: e, options: $i.qx.EMPTY });
            this.hiddenAreasIds = this.model.deltaDecorations(
              this.hiddenAreasIds,
              n
            );
            let r = t,
              s = 1,
              o = 0,
              a = -1,
              l = a + 1 < r.length ? o + 1 : this.lines.length + 2,
              c = !1;
            for (let e = 0; e < this.lines.length; e++) {
              let t = e + 1;
              t === l &&
                (a++,
                (s = r[a].startLineNumber),
                (o = r[a].endLineNumber),
                (l = a + 1 < r.length ? o + 1 : this.lines.length + 2));
              let i = !1;
              if (
                (t >= s && t <= o
                  ? this.lines[e].isVisible() &&
                    ((this.lines[e] = this.lines[e].setVisible(!1)), (i = !0))
                  : ((c = !0),
                    this.lines[e].isVisible() ||
                      ((this.lines[e] = this.lines[e].setVisible(!0)),
                      (i = !0))),
                i)
              ) {
                let t = this.lines[e].getViewLineCount();
                this.prefixSumComputer.changeValue(e, t);
              }
            }
            return c || this.setHiddenAreas([]), !0;
          }
          modelPositionIsVisible(e, t) {
            return (
              !(e < 1 || e > this.lines.length) && this.lines[e - 1].isVisible()
            );
          }
          setTabSize(e) {
            return (
              this.tabSize !== e &&
              ((this.tabSize = e), this._constructLines(!1, null), !0)
            );
          }
          setWrappingSettings(e, t, i, n) {
            const r = this.fontInfo.equals(e),
              s = this.wrappingStrategy === t,
              o = this.wrappingColumn === i,
              a = this.wrappingIndent === n;
            if (r && s && o && a) return !1;
            const l = r && s && !o && a;
            (this.fontInfo = e),
              (this.wrappingStrategy = t),
              (this.wrappingColumn = i),
              (this.wrappingIndent = n);
            let c = null;
            if (l) {
              c = [];
              for (let e = 0, t = this.lines.length; e < t; e++)
                c[e] = this.lines[e].getLineBreakData();
            }
            return this._constructLines(!1, c), !0;
          }
          createLineBreaksComputer() {
            return ('advanced' === this.wrappingStrategy
              ? this._domLineBreaksComputerFactory
              : this._monospaceLineBreaksComputerFactory
            ).createLineBreaksComputer(
              this.fontInfo,
              this.tabSize,
              this.wrappingColumn,
              this.wrappingIndent
            );
          }
          onModelFlushed() {
            this._constructLines(!0, null);
          }
          onModelLinesDeleted(e, t, i) {
            if (e <= this._validModelVersionId) return null;
            let n =
                1 === t
                  ? 1
                  : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1,
              r = this.prefixSumComputer.getAccumulatedValue(i - 1);
            return (
              this.lines.splice(t - 1, i - t + 1),
              this.prefixSumComputer.removeValues(t - 1, i - t + 1),
              new mi(n, r)
            );
          }
          onModelLinesInserted(e, t, i, n) {
            if (e <= this._validModelVersionId) return null;
            let r = this.getHiddenAreas(),
              s = !1,
              o = new Q.L(t, 1);
            for (const e of r)
              if (e.containsPosition(o)) {
                s = !0;
                break;
              }
            let a =
                1 === t
                  ? 1
                  : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1,
              l = 0,
              c = [],
              d = [];
            for (let e = 0, t = n.length; e < t; e++) {
              let t = on(n[e], !s);
              c.push(t);
              let i = t.getViewLineCount();
              (l += i), (d[e] = i);
            }
            return (
              (this.lines = this.lines
                .slice(0, t - 1)
                .concat(c)
                .concat(this.lines.slice(t - 1))),
              this.prefixSumComputer.insertValues(t - 1, d),
              new _i(a, a + l - 1)
            );
          }
          onModelLineChanged(e, t, i) {
            if (e <= this._validModelVersionId) return [!1, null, null, null];
            let n = t - 1,
              r = this.lines[n].getViewLineCount(),
              s = on(i, this.lines[n].isVisible());
            this.lines[n] = s;
            let o = this.lines[n].getViewLineCount(),
              a = !1,
              l = 0,
              c = -1,
              d = 0,
              h = -1,
              u = 0,
              g = -1;
            return (
              r > o
                ? ((l =
                    1 === t
                      ? 1
                      : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1),
                  (c = l + o - 1),
                  (u = c + 1),
                  (g = u + (r - o) - 1),
                  (a = !0))
                : r < o
                ? ((l =
                    1 === t
                      ? 1
                      : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1),
                  (c = l + r - 1),
                  (d = c + 1),
                  (h = d + (o - r) - 1),
                  (a = !0))
                : ((l =
                    1 === t
                      ? 1
                      : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1),
                  (c = l + o - 1)),
              this.prefixSumComputer.changeValue(n, o),
              [
                a,
                l <= c ? new pi(l, c) : null,
                d <= h ? new _i(d, h) : null,
                u <= g ? new mi(u, g) : null,
              ]
            );
          }
          acceptVersionId(e) {
            (this._validModelVersionId = e),
              1 !== this.lines.length ||
                this.lines[0].isVisible() ||
                this.setHiddenAreas([]);
          }
          getViewLineCount() {
            return this.prefixSumComputer.getTotalValue();
          }
          _toValidViewLineNumber(e) {
            if (e < 1) return 1;
            const t = this.getViewLineCount();
            return e > t ? t : 0 | e;
          }
          getActiveIndentGuide(e, t, i) {
            (e = this._toValidViewLineNumber(e)),
              (t = this._toValidViewLineNumber(t)),
              (i = this._toValidViewLineNumber(i));
            const n = this.convertViewPositionToModelPosition(
                e,
                this.getViewLineMinColumn(e)
              ),
              r = this.convertViewPositionToModelPosition(
                t,
                this.getViewLineMinColumn(t)
              ),
              s = this.convertViewPositionToModelPosition(
                i,
                this.getViewLineMinColumn(i)
              ),
              o = this.model.getActiveIndentGuide(
                n.lineNumber,
                r.lineNumber,
                s.lineNumber
              ),
              a = this.convertModelPositionToViewPosition(o.startLineNumber, 1),
              l = this.convertModelPositionToViewPosition(
                o.endLineNumber,
                this.model.getLineMaxColumn(o.endLineNumber)
              );
            return {
              startLineNumber: a.lineNumber,
              endLineNumber: l.lineNumber,
              indent: o.indent,
            };
          }
          getViewLinesIndentGuides(e, t) {
            (e = this._toValidViewLineNumber(e)),
              (t = this._toValidViewLineNumber(t));
            const i = this.convertViewPositionToModelPosition(
                e,
                this.getViewLineMinColumn(e)
              ),
              n = this.convertViewPositionToModelPosition(
                t,
                this.getViewLineMaxColumn(t)
              );
            let r = [],
              s = [],
              o = [];
            const a = i.lineNumber - 1,
              l = n.lineNumber - 1;
            let c = null;
            for (let e = a; e <= l; e++) {
              const t = this.lines[e];
              if (t.isVisible()) {
                let n = t.getViewLineNumberOfModelPosition(
                    0,
                    e === a ? i.column : 1
                  ),
                  r = t.getViewLineNumberOfModelPosition(
                    0,
                    this.model.getLineMaxColumn(e + 1)
                  ),
                  l = r - n + 1,
                  d = 0;
                l > 1 &&
                  1 === t.getViewLineMinColumn(this.model, e + 1, r) &&
                  (d = 0 === n ? 1 : 2),
                  s.push(l),
                  o.push(d),
                  null === c && (c = new Q.L(e + 1, 0));
              } else
                null !== c &&
                  ((r = r.concat(
                    this.model.getLinesIndentGuides(c.lineNumber, e)
                  )),
                  (c = null));
            }
            null !== c &&
              ((r = r.concat(
                this.model.getLinesIndentGuides(c.lineNumber, n.lineNumber)
              )),
              (c = null));
            const d = t - e + 1;
            let h = new Array(d),
              u = 0;
            for (let e = 0, t = r.length; e < t; e++) {
              let t,
                i = r[e],
                n = Math.min(d - u, s[e]),
                a = o[e];
              t = 2 === a ? 0 : 1 === a ? 1 : n;
              for (let e = 0; e < n; e++) e === t && (i = 0), (h[u++] = i);
            }
            return h;
          }
          getViewLineContent(e) {
            e = this._toValidViewLineNumber(e);
            let t = this.prefixSumComputer.getIndexOf(e - 1),
              i = t.index,
              n = t.remainder;
            return this.lines[i].getViewLineContent(this.model, i + 1, n);
          }
          getViewLineLength(e) {
            e = this._toValidViewLineNumber(e);
            let t = this.prefixSumComputer.getIndexOf(e - 1),
              i = t.index,
              n = t.remainder;
            return this.lines[i].getViewLineLength(this.model, i + 1, n);
          }
          getViewLineMinColumn(e) {
            e = this._toValidViewLineNumber(e);
            let t = this.prefixSumComputer.getIndexOf(e - 1),
              i = t.index,
              n = t.remainder;
            return this.lines[i].getViewLineMinColumn(this.model, i + 1, n);
          }
          getViewLineMaxColumn(e) {
            e = this._toValidViewLineNumber(e);
            let t = this.prefixSumComputer.getIndexOf(e - 1),
              i = t.index,
              n = t.remainder;
            return this.lines[i].getViewLineMaxColumn(this.model, i + 1, n);
          }
          getViewLineData(e) {
            e = this._toValidViewLineNumber(e);
            let t = this.prefixSumComputer.getIndexOf(e - 1),
              i = t.index,
              n = t.remainder;
            return this.lines[i].getViewLineData(this.model, i + 1, n);
          }
          getViewLinesData(e, t, i) {
            (e = this._toValidViewLineNumber(e)),
              (t = this._toValidViewLineNumber(t));
            let n = this.prefixSumComputer.getIndexOf(e - 1),
              r = e,
              s = n.index,
              o = n.remainder,
              a = [];
            for (let n = s, l = this.model.getLineCount(); n < l; n++) {
              let l = this.lines[n];
              if (!l.isVisible()) continue;
              let c = n === s ? o : 0,
                d = l.getViewLineCount() - c,
                h = !1;
              r + d > t && ((h = !0), (d = t - r + 1));
              let u = c + d;
              if (
                (l.getViewLinesData(this.model, n + 1, c, u, r - e, i, a),
                (r += d),
                h)
              )
                break;
            }
            return a;
          }
          validateViewPosition(e, t, i) {
            e = this._toValidViewLineNumber(e);
            let n = this.prefixSumComputer.getIndexOf(e - 1),
              r = n.index,
              s = n.remainder,
              o = this.lines[r],
              a = o.getViewLineMinColumn(this.model, r + 1, s),
              l = o.getViewLineMaxColumn(this.model, r + 1, s);
            t < a && (t = a), t > l && (t = l);
            let c = o.getModelColumnOfViewPosition(s, t);
            return this.model.validatePosition(new Q.L(r + 1, c)).equals(i)
              ? new Q.L(e, t)
              : this.convertModelPositionToViewPosition(i.lineNumber, i.column);
          }
          validateViewRange(e, t) {
            const i = this.validateViewPosition(
                e.startLineNumber,
                e.startColumn,
                t.getStartPosition()
              ),
              n = this.validateViewPosition(
                e.endLineNumber,
                e.endColumn,
                t.getEndPosition()
              );
            return new X.e(i.lineNumber, i.column, n.lineNumber, n.column);
          }
          convertViewPositionToModelPosition(e, t) {
            e = this._toValidViewLineNumber(e);
            let i = this.prefixSumComputer.getIndexOf(e - 1),
              n = i.index,
              r = i.remainder,
              s = this.lines[n].getModelColumnOfViewPosition(r, t);
            return this.model.validatePosition(new Q.L(n + 1, s));
          }
          convertViewRangeToModelRange(e) {
            const t = this.convertViewPositionToModelPosition(
                e.startLineNumber,
                e.startColumn
              ),
              i = this.convertViewPositionToModelPosition(
                e.endLineNumber,
                e.endColumn
              );
            return new X.e(t.lineNumber, t.column, i.lineNumber, i.column);
          }
          convertModelPositionToViewPosition(e, t) {
            const i = this.model.validatePosition(new Q.L(e, t)),
              n = i.lineNumber,
              r = i.column;
            let s = n - 1,
              o = !1;
            for (; s > 0 && !this.lines[s].isVisible(); ) s--, (o = !0);
            if (0 === s && !this.lines[s].isVisible()) return new Q.L(1, 1);
            const a =
              1 +
              (0 === s ? 0 : this.prefixSumComputer.getAccumulatedValue(s - 1));
            let l;
            return (
              (l = o
                ? this.lines[s].getViewPositionOfModelPosition(
                    a,
                    this.model.getLineMaxColumn(s + 1)
                  )
                : this.lines[n - 1].getViewPositionOfModelPosition(a, r)),
              l
            );
          }
          convertModelRangeToViewRange(e) {
            let t = this.convertModelPositionToViewPosition(
                e.startLineNumber,
                e.startColumn
              ),
              i = this.convertModelPositionToViewPosition(
                e.endLineNumber,
                e.endColumn
              );
            return e.startLineNumber === e.endLineNumber &&
              t.lineNumber !== i.lineNumber &&
              i.column === this.getViewLineMinColumn(i.lineNumber)
              ? new X.e(
                  t.lineNumber,
                  t.column,
                  i.lineNumber - 1,
                  this.getViewLineMaxColumn(i.lineNumber - 1)
                )
              : new X.e(t.lineNumber, t.column, i.lineNumber, i.column);
          }
          _getViewLineNumberForModelPosition(e, t) {
            let i = e - 1;
            if (this.lines[i].isVisible()) {
              const e =
                1 +
                (0 === i
                  ? 0
                  : this.prefixSumComputer.getAccumulatedValue(i - 1));
              return this.lines[i].getViewLineNumberOfModelPosition(e, t);
            }
            for (; i > 0 && !this.lines[i].isVisible(); ) i--;
            if (0 === i && !this.lines[i].isVisible()) return 1;
            const n =
              1 +
              (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue(i - 1));
            return this.lines[i].getViewLineNumberOfModelPosition(
              n,
              this.model.getLineMaxColumn(i + 1)
            );
          }
          getAllOverviewRulerDecorations(e, t, i) {
            const n = this.model.getOverviewRulerDecorations(e, t),
              r = new cn();
            for (const e of n) {
              const t = e.options.overviewRuler,
                n = t ? t.position : 0;
              if (0 === n) continue;
              const s = t.getColor(i),
                o = this._getViewLineNumberForModelPosition(
                  e.range.startLineNumber,
                  e.range.startColumn
                ),
                a = this._getViewLineNumberForModelPosition(
                  e.range.endLineNumber,
                  e.range.endColumn
                );
              r.accept(s, o, a, n);
            }
            return r.result;
          }
          getDecorationsInRange(e, t, i) {
            const n = this.convertViewPositionToModelPosition(
                e.startLineNumber,
                e.startColumn
              ),
              r = this.convertViewPositionToModelPosition(
                e.endLineNumber,
                e.endColumn
              );
            if (
              r.lineNumber - n.lineNumber <=
              e.endLineNumber - e.startLineNumber
            )
              return this.model.getDecorationsInRange(
                new X.e(n.lineNumber, 1, r.lineNumber, r.column),
                t,
                i
              );
            let s = [];
            const o = n.lineNumber - 1,
              a = r.lineNumber - 1;
            let l = null;
            for (let e = o; e <= a; e++)
              if (this.lines[e].isVisible())
                null === l && (l = new Q.L(e + 1, e === o ? n.column : 1));
              else if (null !== l) {
                const n = this.model.getLineMaxColumn(e);
                (s = s.concat(
                  this.model.getDecorationsInRange(
                    new X.e(l.lineNumber, l.column, e, n),
                    t,
                    i
                  )
                )),
                  (l = null);
              }
            null !== l &&
              ((s = s.concat(
                this.model.getDecorationsInRange(
                  new X.e(l.lineNumber, l.column, r.lineNumber, r.column),
                  t,
                  i
                )
              )),
              (l = null)),
              s.sort((e, t) => {
                const i = X.e.compareRangesUsingStarts(e.range, t.range);
                return 0 === i ? (e.id < t.id ? -1 : e.id > t.id ? 1 : 0) : i;
              });
            let c = [],
              d = 0,
              h = null;
            for (const e of s) {
              const t = e.id;
              h !== t && ((h = t), (c[d++] = e));
            }
            return c;
          }
        }
        class Xi {
          constructor() {}
          isVisible() {
            return !0;
          }
          setVisible(e) {
            return e ? this : en.INSTANCE;
          }
          getLineBreakData() {
            return null;
          }
          getViewLineCount() {
            return 1;
          }
          getViewLineContent(e, t, i) {
            return e.getLineContent(t);
          }
          getViewLineLength(e, t, i) {
            return e.getLineLength(t);
          }
          getViewLineMinColumn(e, t, i) {
            return e.getLineMinColumn(t);
          }
          getViewLineMaxColumn(e, t, i) {
            return e.getLineMaxColumn(t);
          }
          getViewLineData(e, t, i) {
            let n = e.getLineTokens(t),
              r = n.getLineContent();
            return new pt.IP(r, !1, 1, r.length + 1, 0, n.inflate());
          }
          getViewLinesData(e, t, i, n, r, s, o) {
            s[r] ? (o[r] = this.getViewLineData(e, t, 0)) : (o[r] = null);
          }
          getModelColumnOfViewPosition(e, t) {
            return t;
          }
          getViewPositionOfModelPosition(e, t) {
            return new Q.L(e, t);
          }
          getViewLineNumberOfModelPosition(e, t) {
            return e;
          }
        }
        Xi.INSTANCE = new Xi();
        class en {
          constructor() {}
          isVisible() {
            return !1;
          }
          setVisible(e) {
            return e ? Xi.INSTANCE : this;
          }
          getLineBreakData() {
            return null;
          }
          getViewLineCount() {
            return 0;
          }
          getViewLineContent(e, t, i) {
            throw new Error('Not supported');
          }
          getViewLineLength(e, t, i) {
            throw new Error('Not supported');
          }
          getViewLineMinColumn(e, t, i) {
            throw new Error('Not supported');
          }
          getViewLineMaxColumn(e, t, i) {
            throw new Error('Not supported');
          }
          getViewLineData(e, t, i) {
            throw new Error('Not supported');
          }
          getViewLinesData(e, t, i, n, r, s, o) {
            throw new Error('Not supported');
          }
          getModelColumnOfViewPosition(e, t) {
            throw new Error('Not supported');
          }
          getViewPositionOfModelPosition(e, t) {
            throw new Error('Not supported');
          }
          getViewLineNumberOfModelPosition(e, t) {
            throw new Error('Not supported');
          }
        }
        en.INSTANCE = new en();
        class tn {
          constructor(e, t) {
            (this._lineBreakData = e), (this._isVisible = t);
          }
          isVisible() {
            return this._isVisible;
          }
          setVisible(e) {
            return (this._isVisible = e), this;
          }
          getLineBreakData() {
            return this._lineBreakData;
          }
          getViewLineCount() {
            return this._isVisible
              ? this._lineBreakData.breakOffsets.length
              : 0;
          }
          getInputStartOffsetOfOutputLineIndex(e) {
            return Gi.getInputOffsetOfOutputPosition(
              this._lineBreakData.breakOffsets,
              e,
              0
            );
          }
          getInputEndOffsetOfOutputLineIndex(e, t, i) {
            return i + 1 === this._lineBreakData.breakOffsets.length
              ? e.getLineMaxColumn(t) - 1
              : Gi.getInputOffsetOfOutputPosition(
                  this._lineBreakData.breakOffsets,
                  i + 1,
                  0
                );
          }
          getViewLineContent(e, t, i) {
            if (!this._isVisible) throw new Error('Not supported');
            let n = this.getInputStartOffsetOfOutputLineIndex(i),
              r = this.getInputEndOffsetOfOutputLineIndex(e, t, i),
              s = e.getValueInRange({
                startLineNumber: t,
                startColumn: n + 1,
                endLineNumber: t,
                endColumn: r + 1,
              });
            return (
              i > 0 &&
                (s = rn(this._lineBreakData.wrappedTextIndentLength) + s),
              s
            );
          }
          getViewLineLength(e, t, i) {
            if (!this._isVisible) throw new Error('Not supported');
            let n = this.getInputStartOffsetOfOutputLineIndex(i),
              r = this.getInputEndOffsetOfOutputLineIndex(e, t, i) - n;
            return (
              i > 0 && (r = this._lineBreakData.wrappedTextIndentLength + r), r
            );
          }
          getViewLineMinColumn(e, t, i) {
            if (!this._isVisible) throw new Error('Not supported');
            return i > 0 ? this._lineBreakData.wrappedTextIndentLength + 1 : 1;
          }
          getViewLineMaxColumn(e, t, i) {
            if (!this._isVisible) throw new Error('Not supported');
            return this.getViewLineContent(e, t, i).length + 1;
          }
          getViewLineData(e, t, i) {
            if (!this._isVisible) throw new Error('Not supported');
            let n = this.getInputStartOffsetOfOutputLineIndex(i),
              r = this.getInputEndOffsetOfOutputLineIndex(e, t, i),
              s = e.getValueInRange({
                startLineNumber: t,
                startColumn: n + 1,
                endLineNumber: t,
                endColumn: r + 1,
              });
            i > 0 && (s = rn(this._lineBreakData.wrappedTextIndentLength) + s);
            let o = i > 0 ? this._lineBreakData.wrappedTextIndentLength + 1 : 1,
              a = s.length + 1,
              l = i + 1 < this.getViewLineCount(),
              c = 0;
            i > 0 && (c = this._lineBreakData.wrappedTextIndentLength);
            let d = e.getLineTokens(t);
            const h =
              0 === i
                ? 0
                : this._lineBreakData.breakOffsetsVisibleColumn[i - 1];
            return new pt.IP(s, l, o, a, h, d.sliceAndInflate(n, r, c));
          }
          getViewLinesData(e, t, i, n, r, s, o) {
            if (!this._isVisible) throw new Error('Not supported');
            for (let a = i; a < n; a++) {
              let n = r + a - i;
              s[n] ? (o[n] = this.getViewLineData(e, t, a)) : (o[n] = null);
            }
          }
          getModelColumnOfViewPosition(e, t) {
            if (!this._isVisible) throw new Error('Not supported');
            let i = t - 1;
            return (
              e > 0 &&
                (i < this._lineBreakData.wrappedTextIndentLength
                  ? (i = 0)
                  : (i -= this._lineBreakData.wrappedTextIndentLength)),
              Gi.getInputOffsetOfOutputPosition(
                this._lineBreakData.breakOffsets,
                e,
                i
              ) + 1
            );
          }
          getViewPositionOfModelPosition(e, t) {
            if (!this._isVisible) throw new Error('Not supported');
            let i = Gi.getOutputPositionOfInputOffset(
                this._lineBreakData.breakOffsets,
                t - 1
              ),
              n = i.outputLineIndex,
              r = i.outputOffset + 1;
            return (
              n > 0 && (r += this._lineBreakData.wrappedTextIndentLength),
              new Q.L(e + n, r)
            );
          }
          getViewLineNumberOfModelPosition(e, t) {
            if (!this._isVisible) throw new Error('Not supported');
            return (
              e +
              Gi.getOutputPositionOfInputOffset(
                this._lineBreakData.breakOffsets,
                t - 1
              ).outputLineIndex
            );
          }
        }
        let nn = [''];
        function rn(e) {
          if (e >= nn.length) for (let t = 1; t <= e; t++) nn[t] = sn(t);
          return nn[e];
        }
        function sn(e) {
          return new Array(e + 1).join(' ');
        }
        function on(e, t) {
          return null === e ? (t ? Xi.INSTANCE : en.INSTANCE) : new tn(e, t);
        }
        class an {
          constructor(e) {
            this._lines = e;
          }
          _validPosition(e) {
            return this._lines.model.validatePosition(e);
          }
          _validRange(e) {
            return this._lines.model.validateRange(e);
          }
          convertViewPositionToModelPosition(e) {
            return this._validPosition(e);
          }
          convertViewRangeToModelRange(e) {
            return this._validRange(e);
          }
          validateViewPosition(e, t) {
            return this._validPosition(t);
          }
          validateViewRange(e, t) {
            return this._validRange(t);
          }
          convertModelPositionToViewPosition(e) {
            return this._validPosition(e);
          }
          convertModelRangeToViewRange(e) {
            return this._validRange(e);
          }
          modelPositionIsVisible(e) {
            const t = this._lines.model.getLineCount();
            return !(e.lineNumber < 1 || e.lineNumber > t);
          }
        }
        class ln {
          constructor(e) {
            this.model = e;
          }
          dispose() {}
          createCoordinatesConverter() {
            return new an(this);
          }
          getHiddenAreas() {
            return [];
          }
          setHiddenAreas(e) {
            return !1;
          }
          setTabSize(e) {
            return !1;
          }
          setWrappingSettings(e, t, i, n) {
            return !1;
          }
          createLineBreaksComputer() {
            let e = [];
            return {
              addRequest: (t, i) => {
                e.push(null);
              },
              finalize: () => e,
            };
          }
          onModelFlushed() {}
          onModelLinesDeleted(e, t, i) {
            return new mi(t, i);
          }
          onModelLinesInserted(e, t, i, n) {
            return new _i(t, i);
          }
          onModelLineChanged(e, t, i) {
            return [!1, new pi(t, t), null, null];
          }
          acceptVersionId(e) {}
          getViewLineCount() {
            return this.model.getLineCount();
          }
          getActiveIndentGuide(e, t, i) {
            return { startLineNumber: e, endLineNumber: e, indent: 0 };
          }
          getViewLinesIndentGuides(e, t) {
            const i = t - e + 1;
            let n = new Array(i);
            for (let e = 0; e < i; e++) n[e] = 0;
            return n;
          }
          getViewLineContent(e) {
            return this.model.getLineContent(e);
          }
          getViewLineLength(e) {
            return this.model.getLineLength(e);
          }
          getViewLineMinColumn(e) {
            return this.model.getLineMinColumn(e);
          }
          getViewLineMaxColumn(e) {
            return this.model.getLineMaxColumn(e);
          }
          getViewLineData(e) {
            let t = this.model.getLineTokens(e),
              i = t.getLineContent();
            return new pt.IP(i, !1, 1, i.length + 1, 0, t.inflate());
          }
          getViewLinesData(e, t, i) {
            const n = this.model.getLineCount();
            (e = Math.min(Math.max(1, e), n)),
              (t = Math.min(Math.max(1, t), n));
            let r = [];
            for (let n = e; n <= t; n++) {
              let t = n - e;
              i[t] || (r[t] = null), (r[t] = this.getViewLineData(n));
            }
            return r;
          }
          getAllOverviewRulerDecorations(e, t, i) {
            const n = this.model.getOverviewRulerDecorations(e, t),
              r = new cn();
            for (const e of n) {
              const t = e.options.overviewRuler,
                n = t ? t.position : 0;
              if (0 === n) continue;
              const s = t.getColor(i),
                o = e.range.startLineNumber,
                a = e.range.endLineNumber;
              r.accept(s, o, a, n);
            }
            return r.result;
          }
          getDecorationsInRange(e, t, i) {
            return this.model.getDecorationsInRange(e, t, i);
          }
        }
        class cn {
          constructor() {
            this.result = Object.create(null);
          }
          accept(e, t, i, n) {
            let r = this.result[e];
            if (r) {
              const e = r[r.length - 3],
                s = r[r.length - 1];
              if (e === n && s + 1 >= t)
                return void (i > s && (r[r.length - 1] = i));
              r.push(n, t, i);
            } else this.result[e] = [n, t, i];
          }
        }
        class dn {
          constructor(e, t, i, n, r) {
            (this.editorId = e),
              (this.model = t),
              (this.configuration = i),
              (this._linesCollection = n),
              (this._coordinatesConverter = r),
              (this._decorationsCache = Object.create(null)),
              (this._cachedModelDecorationsResolver = null),
              (this._cachedModelDecorationsResolverViewRange = null);
          }
          _clearCachedModelDecorationsResolver() {
            (this._cachedModelDecorationsResolver = null),
              (this._cachedModelDecorationsResolverViewRange = null);
          }
          dispose() {
            (this._decorationsCache = Object.create(null)),
              this._clearCachedModelDecorationsResolver();
          }
          reset() {
            (this._decorationsCache = Object.create(null)),
              this._clearCachedModelDecorationsResolver();
          }
          onModelDecorationsChanged() {
            (this._decorationsCache = Object.create(null)),
              this._clearCachedModelDecorationsResolver();
          }
          onLineMappingChanged() {
            (this._decorationsCache = Object.create(null)),
              this._clearCachedModelDecorationsResolver();
          }
          _getOrCreateViewModelDecoration(e) {
            const t = e.id;
            let i = this._decorationsCache[t];
            if (!i) {
              const n = e.range,
                r = e.options;
              let s;
              if (r.isWholeLine) {
                const e = this._coordinatesConverter.convertModelPositionToViewPosition(
                    new Q.L(n.startLineNumber, 1)
                  ),
                  t = this._coordinatesConverter.convertModelPositionToViewPosition(
                    new Q.L(
                      n.endLineNumber,
                      this.model.getLineMaxColumn(n.endLineNumber)
                    )
                  );
                s = new X.e(e.lineNumber, e.column, t.lineNumber, t.column);
              } else
                s = this._coordinatesConverter.convertModelRangeToViewRange(n);
              (i = new pt.$l(s, r)), (this._decorationsCache[t] = i);
            }
            return i;
          }
          getDecorationsViewportData(e) {
            let t = null !== this._cachedModelDecorationsResolver;
            return (
              (t =
                t &&
                e.equalsRange(this._cachedModelDecorationsResolverViewRange)),
              t ||
                ((this._cachedModelDecorationsResolver = this._getDecorationsViewportData(
                  e
                )),
                (this._cachedModelDecorationsResolverViewRange = e)),
              this._cachedModelDecorationsResolver
            );
          }
          _getDecorationsViewportData(e) {
            const t = this._linesCollection.getDecorationsInRange(
                e,
                this.editorId,
                (0, H.$J)(this.configuration.options)
              ),
              i = e.startLineNumber,
              n = e.endLineNumber;
            let r = [],
              s = 0,
              o = [];
            for (let e = i; e <= n; e++) o[e - i] = [];
            for (let e = 0, a = t.length; e < a; e++) {
              let a = t[e],
                l = a.options,
                c = this._getOrCreateViewModelDecoration(a),
                d = c.range;
              if (((r[s++] = c), l.inlineClassName)) {
                let e = new pt.$t(
                    d,
                    l.inlineClassName,
                    l.inlineClassNameAffectsLetterSpacing ? 3 : 0
                  ),
                  t = Math.max(i, d.startLineNumber),
                  r = Math.min(n, d.endLineNumber);
                for (let n = t; n <= r; n++) o[n - i].push(e);
              }
              if (
                l.beforeContentClassName &&
                i <= d.startLineNumber &&
                d.startLineNumber <= n
              ) {
                let e = new pt.$t(
                  new X.e(
                    d.startLineNumber,
                    d.startColumn,
                    d.startLineNumber,
                    d.startColumn
                  ),
                  l.beforeContentClassName,
                  1
                );
                o[d.startLineNumber - i].push(e);
              }
              if (
                l.afterContentClassName &&
                i <= d.endLineNumber &&
                d.endLineNumber <= n
              ) {
                let e = new pt.$t(
                  new X.e(
                    d.endLineNumber,
                    d.endColumn,
                    d.endLineNumber,
                    d.endColumn
                  ),
                  l.afterContentClassName,
                  2
                );
                o[d.endLineNumber - i].push(e);
              }
            }
            return { decorations: r, inlineDecorations: o };
          }
        }
        class hn extends a.JT {
          constructor(e, t, i, n, r, s) {
            if (
              (super(),
              (this._editorId = e),
              (this._configuration = t),
              (this.model = i),
              (this._eventDispatcher = new ki()),
              (this.onEvent = this._eventDispatcher.onEvent),
              (this.cursorConfig = new ee.LM(
                this.model.getLanguageIdentifier(),
                this.model.getOptions(),
                this._configuration
              )),
              (this._tokenizeViewportSoon = this._register(
                new _.pY(() => this.tokenizeViewport(), 50)
              )),
              (this._updateConfigurationViewLineCount = this._register(
                new _.pY(() => this._updateConfigurationViewLineCountNow(), 0)
              )),
              (this._hasFocus = !1),
              (this._viewportStartLine = -1),
              (this._viewportStartLineTrackedRange = null),
              (this._viewportStartLineDelta = 0),
              this.model.isTooLargeForTokenization())
            )
              this._lines = new ln(this.model);
            else {
              const e = this._configuration.options,
                t = e.get(36),
                i = e.get(112),
                s = e.get(118),
                o = e.get(111);
              this._lines = new Qi(
                this.model,
                n,
                r,
                t,
                this.model.getOptions().tabSize,
                i,
                s.wrappingColumn,
                o
              );
            }
            (this.coordinatesConverter = this._lines.createCoordinatesConverter()),
              (this._cursor = this._register(
                new Ai(i, this, this.coordinatesConverter, this.cursorConfig)
              )),
              (this.viewLayout = this._register(
                new Ui(this._configuration, this.getLineCount(), s)
              )),
              this._register(
                this.viewLayout.onDidScroll((e) => {
                  e.scrollTopChanged && this._tokenizeViewportSoon.schedule(),
                    this._eventDispatcher.emitSingleViewEvent(new vi(e)),
                    this._eventDispatcher.emitOutgoingEvent(
                      new Di(
                        e.oldScrollWidth,
                        e.oldScrollLeft,
                        e.oldScrollHeight,
                        e.oldScrollTop,
                        e.scrollWidth,
                        e.scrollLeft,
                        e.scrollHeight,
                        e.scrollTop
                      )
                    );
                })
              ),
              this._register(
                this.viewLayout.onDidContentSizeChange((e) => {
                  this._eventDispatcher.emitOutgoingEvent(e);
                })
              ),
              (this._decorations = new dn(
                this._editorId,
                this.model,
                this._configuration,
                this._lines,
                this.coordinatesConverter
              )),
              this._registerModelEvents(),
              this._register(
                this._configuration.onDidChangeFast((e) => {
                  try {
                    const t = this._eventDispatcher.beginEmitViewEvents();
                    this._onConfigurationChanged(t, e);
                  } finally {
                    this._eventDispatcher.endEmitViewEvents();
                  }
                })
              ),
              this._register(
                ft.getInstance().onDidChange(() => {
                  this._eventDispatcher.emitSingleViewEvent(new Ci());
                })
              ),
              this._updateConfigurationViewLineCountNow();
          }
          dispose() {
            super.dispose(),
              this._decorations.dispose(),
              this._lines.dispose(),
              this.invalidateMinimapColorCache(),
              (this._viewportStartLineTrackedRange = this.model._setTrackedRange(
                this._viewportStartLineTrackedRange,
                null,
                1
              )),
              this._eventDispatcher.dispose();
          }
          addViewEventHandler(e) {
            this._eventDispatcher.addViewEventHandler(e);
          }
          removeViewEventHandler(e) {
            this._eventDispatcher.removeViewEventHandler(e);
          }
          _updateConfigurationViewLineCountNow() {
            this._configuration.setViewLineCount(
              this._lines.getViewLineCount()
            );
          }
          tokenizeViewport() {
            const e = this.viewLayout.getLinesViewportData(),
              t = this.coordinatesConverter.convertViewPositionToModelPosition(
                new Q.L(e.startLineNumber, 1)
              ),
              i = this.coordinatesConverter.convertViewPositionToModelPosition(
                new Q.L(e.endLineNumber, 1)
              );
            this.model.tokenizeViewport(t.lineNumber, i.lineNumber);
          }
          setHasFocus(e) {
            (this._hasFocus = e),
              this._cursor.setHasFocus(e),
              this._eventDispatcher.emitSingleViewEvent(new ui(e)),
              this._eventDispatcher.emitOutgoingEvent(new Mi(!e, e));
          }
          onDidColorThemeChange() {
            this._eventDispatcher.emitSingleViewEvent(new yi());
          }
          _onConfigurationChanged(e, t) {
            let i = null;
            if (-1 !== this._viewportStartLine) {
              let e = new Q.L(
                this._viewportStartLine,
                this.getLineMinColumn(this._viewportStartLine)
              );
              i = this.coordinatesConverter.convertViewPositionToModelPosition(
                e
              );
            }
            let n = !1;
            const r = this._configuration.options,
              s = r.get(36),
              o = r.get(112),
              a = r.get(118),
              l = r.get(111);
            if (
              (this._lines.setWrappingSettings(s, o, a.wrappingColumn, l) &&
                (e.emitViewEvent(new hi()),
                e.emitViewEvent(new fi()),
                e.emitViewEvent(new di(null)),
                this._cursor.onLineMappingChanged(e),
                this._decorations.onLineMappingChanged(),
                this.viewLayout.onFlushed(this.getLineCount()),
                0 !== this.viewLayout.getCurrentScrollTop() && (n = !0),
                this._updateConfigurationViewLineCount.schedule()),
              t.hasChanged(72) &&
                (this._decorations.reset(), e.emitViewEvent(new di(null))),
              e.emitViewEvent(new li(t)),
              this.viewLayout.onConfigurationChanged(t),
              n && i)
            ) {
              const e = this.coordinatesConverter.convertModelPositionToViewPosition(
                  i
                ),
                t = this.viewLayout.getVerticalOffsetForLineNumber(
                  e.lineNumber
                );
              this.viewLayout.setScrollPosition(
                { scrollTop: t + this._viewportStartLineDelta },
                1
              );
            }
            ee.LM.shouldRecreate(t) &&
              ((this.cursorConfig = new ee.LM(
                this.model.getLanguageIdentifier(),
                this.model.getOptions(),
                this._configuration
              )),
              this._cursor.updateConfiguration(this.cursorConfig));
          }
          _registerModelEvents() {
            this._register(
              this.model.onDidChangeRawContentFast((e) => {
                try {
                  const t = this._eventDispatcher.beginEmitViewEvents();
                  let i = !1,
                    n = !1;
                  const r = e.changes,
                    s = e.versionId,
                    o = this._lines.createLineBreaksComputer();
                  for (const e of r)
                    switch (e.changeType) {
                      case 4:
                        for (const t of e.detail) o.addRequest(t, null);
                        break;
                      case 2:
                        o.addRequest(e.detail, null);
                    }
                  const a = o.finalize();
                  let l = 0;
                  for (const e of r)
                    switch (e.changeType) {
                      case 1:
                        this._lines.onModelFlushed(),
                          t.emitViewEvent(new hi()),
                          this._decorations.reset(),
                          this.viewLayout.onFlushed(this.getLineCount()),
                          (i = !0);
                        break;
                      case 3: {
                        const n = this._lines.onModelLinesDeleted(
                          s,
                          e.fromLineNumber,
                          e.toLineNumber
                        );
                        null !== n &&
                          (t.emitViewEvent(n),
                          this.viewLayout.onLinesDeleted(
                            n.fromLineNumber,
                            n.toLineNumber
                          )),
                          (i = !0);
                        break;
                      }
                      case 4: {
                        const n = a.slice(l, l + e.detail.length);
                        l += e.detail.length;
                        const r = this._lines.onModelLinesInserted(
                          s,
                          e.fromLineNumber,
                          e.toLineNumber,
                          n
                        );
                        null !== r &&
                          (t.emitViewEvent(r),
                          this.viewLayout.onLinesInserted(
                            r.fromLineNumber,
                            r.toLineNumber
                          )),
                          (i = !0);
                        break;
                      }
                      case 2: {
                        const i = a[l];
                        l++;
                        const [r, o, c, d] = this._lines.onModelLineChanged(
                          s,
                          e.lineNumber,
                          i
                        );
                        (n = r),
                          o && t.emitViewEvent(o),
                          c &&
                            (t.emitViewEvent(c),
                            this.viewLayout.onLinesInserted(
                              c.fromLineNumber,
                              c.toLineNumber
                            )),
                          d &&
                            (t.emitViewEvent(d),
                            this.viewLayout.onLinesDeleted(
                              d.fromLineNumber,
                              d.toLineNumber
                            ));
                        break;
                      }
                    }
                  this._lines.acceptVersionId(s),
                    this.viewLayout.onHeightMaybeChanged(),
                    !i &&
                      n &&
                      (t.emitViewEvent(new fi()),
                      t.emitViewEvent(new di(null)),
                      this._cursor.onLineMappingChanged(t),
                      this._decorations.onLineMappingChanged());
                } finally {
                  this._eventDispatcher.endEmitViewEvents();
                }
                if (
                  ((this._viewportStartLine = -1),
                  this._configuration.setMaxLineNumber(
                    this.model.getLineCount()
                  ),
                  this._updateConfigurationViewLineCountNow(),
                  !this._hasFocus &&
                    this.model.getAttachedEditorCount() >= 2 &&
                    this._viewportStartLineTrackedRange)
                ) {
                  const e = this.model._getTrackedRange(
                    this._viewportStartLineTrackedRange
                  );
                  if (e) {
                    const t = this.coordinatesConverter.convertModelPositionToViewPosition(
                        e.getStartPosition()
                      ),
                      i = this.viewLayout.getVerticalOffsetForLineNumber(
                        t.lineNumber
                      );
                    this.viewLayout.setScrollPosition(
                      { scrollTop: i + this._viewportStartLineDelta },
                      1
                    );
                  }
                }
                try {
                  const t = this._eventDispatcher.beginEmitViewEvents();
                  this._cursor.onModelContentChanged(t, e);
                } finally {
                  this._eventDispatcher.endEmitViewEvents();
                }
              })
            ),
              this._register(
                this.model.onDidChangeTokens((e) => {
                  let t = [];
                  for (let i = 0, n = e.ranges.length; i < n; i++) {
                    const n = e.ranges[i],
                      r = this.coordinatesConverter.convertModelPositionToViewPosition(
                        new Q.L(n.fromLineNumber, 1)
                      ).lineNumber,
                      s = this.coordinatesConverter.convertModelPositionToViewPosition(
                        new Q.L(
                          n.toLineNumber,
                          this.model.getLineMaxColumn(n.toLineNumber)
                        )
                      ).lineNumber;
                    t[i] = { fromLineNumber: r, toLineNumber: s };
                  }
                  this._eventDispatcher.emitSingleViewEvent(new wi(t)),
                    e.tokenizationSupportChanged &&
                      this._tokenizeViewportSoon.schedule();
                })
              ),
              this._register(
                this.model.onDidChangeLanguageConfiguration((e) => {
                  this._eventDispatcher.emitSingleViewEvent(new gi()),
                    (this.cursorConfig = new ee.LM(
                      this.model.getLanguageIdentifier(),
                      this.model.getOptions(),
                      this._configuration
                    )),
                    this._cursor.updateConfiguration(this.cursorConfig);
                })
              ),
              this._register(
                this.model.onDidChangeLanguage((e) => {
                  (this.cursorConfig = new ee.LM(
                    this.model.getLanguageIdentifier(),
                    this.model.getOptions(),
                    this._configuration
                  )),
                    this._cursor.updateConfiguration(this.cursorConfig);
                })
              ),
              this._register(
                this.model.onDidChangeOptions((e) => {
                  if (this._lines.setTabSize(this.model.getOptions().tabSize)) {
                    try {
                      const e = this._eventDispatcher.beginEmitViewEvents();
                      e.emitViewEvent(new hi()),
                        e.emitViewEvent(new fi()),
                        e.emitViewEvent(new di(null)),
                        this._cursor.onLineMappingChanged(e),
                        this._decorations.onLineMappingChanged(),
                        this.viewLayout.onFlushed(this.getLineCount());
                    } finally {
                      this._eventDispatcher.endEmitViewEvents();
                    }
                    this._updateConfigurationViewLineCount.schedule();
                  }
                  (this.cursorConfig = new ee.LM(
                    this.model.getLanguageIdentifier(),
                    this.model.getOptions(),
                    this._configuration
                  )),
                    this._cursor.updateConfiguration(this.cursorConfig);
                })
              ),
              this._register(
                this.model.onDidChangeDecorations((e) => {
                  this._decorations.onModelDecorationsChanged(),
                    this._eventDispatcher.emitSingleViewEvent(new di(e));
                })
              );
          }
          setHiddenAreas(e) {
            try {
              const t = this._eventDispatcher.beginEmitViewEvents();
              this._lines.setHiddenAreas(e) &&
                (t.emitViewEvent(new hi()),
                t.emitViewEvent(new fi()),
                t.emitViewEvent(new di(null)),
                this._cursor.onLineMappingChanged(t),
                this._decorations.onLineMappingChanged(),
                this.viewLayout.onFlushed(this.getLineCount()),
                this.viewLayout.onHeightMaybeChanged());
            } finally {
              this._eventDispatcher.endEmitViewEvents();
            }
            this._updateConfigurationViewLineCount.schedule();
          }
          getVisibleRangesPlusViewportAboveBelow() {
            const e = this._configuration.options.get(117),
              t = this._configuration.options.get(51),
              i = Math.max(20, Math.round(e.height / t)),
              n = this.viewLayout.getLinesViewportData(),
              r = Math.max(1, n.completelyVisibleStartLineNumber - i),
              s = Math.min(
                this.getLineCount(),
                n.completelyVisibleEndLineNumber + i
              );
            return this._toModelVisibleRanges(
              new X.e(r, this.getLineMinColumn(r), s, this.getLineMaxColumn(s))
            );
          }
          getVisibleRanges() {
            const e = this.getCompletelyVisibleViewRange();
            return this._toModelVisibleRanges(e);
          }
          _toModelVisibleRanges(e) {
            const t = this.coordinatesConverter.convertViewRangeToModelRange(e),
              i = this._lines.getHiddenAreas();
            if (0 === i.length) return [t];
            let n = [],
              r = 0,
              s = t.startLineNumber,
              o = t.startColumn,
              a = t.endLineNumber,
              l = t.endColumn;
            for (let e = 0, t = i.length; e < t; e++) {
              const t = i[e].startLineNumber,
                l = i[e].endLineNumber;
              l < s ||
                t > a ||
                (s < t &&
                  (n[r++] = new X.e(
                    s,
                    o,
                    t - 1,
                    this.model.getLineMaxColumn(t - 1)
                  )),
                (s = l + 1),
                (o = 1));
            }
            return (
              (s < a || (s === a && o < l)) && (n[r++] = new X.e(s, o, a, l)), n
            );
          }
          getCompletelyVisibleViewRange() {
            const e = this.viewLayout.getLinesViewportData(),
              t = e.completelyVisibleStartLineNumber,
              i = e.completelyVisibleEndLineNumber;
            return new X.e(
              t,
              this.getLineMinColumn(t),
              i,
              this.getLineMaxColumn(i)
            );
          }
          getCompletelyVisibleViewRangeAtScrollTop(e) {
            const t = this.viewLayout.getLinesViewportDataAtScrollTop(e),
              i = t.completelyVisibleStartLineNumber,
              n = t.completelyVisibleEndLineNumber;
            return new X.e(
              i,
              this.getLineMinColumn(i),
              n,
              this.getLineMaxColumn(n)
            );
          }
          saveState() {
            const e = this.viewLayout.saveState(),
              t = e.scrollTop,
              i = this.viewLayout.getLineNumberAtVerticalOffset(t),
              n = this.coordinatesConverter.convertViewPositionToModelPosition(
                new Q.L(i, this.getLineMinColumn(i))
              ),
              r = this.viewLayout.getVerticalOffsetForLineNumber(i) - t;
            return {
              scrollLeft: e.scrollLeft,
              firstPosition: n,
              firstPositionDeltaTop: r,
            };
          }
          reduceRestoreState(e) {
            if (void 0 === e.firstPosition)
              return this._reduceRestoreStateCompatibility(e);
            const t = this.model.validatePosition(e.firstPosition),
              i = this.coordinatesConverter.convertModelPositionToViewPosition(
                t
              ),
              n =
                this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber) -
                e.firstPositionDeltaTop;
            return { scrollLeft: e.scrollLeft, scrollTop: n };
          }
          _reduceRestoreStateCompatibility(e) {
            return {
              scrollLeft: e.scrollLeft,
              scrollTop: e.scrollTopWithoutViewZones,
            };
          }
          getTabSize() {
            return this.model.getOptions().tabSize;
          }
          getTextModelOptions() {
            return this.model.getOptions();
          }
          getLineCount() {
            return this._lines.getViewLineCount();
          }
          setViewport(e, t, i) {
            this._viewportStartLine = e;
            let n = this.coordinatesConverter.convertViewPositionToModelPosition(
              new Q.L(e, this.getLineMinColumn(e))
            );
            this._viewportStartLineTrackedRange = this.model._setTrackedRange(
              this._viewportStartLineTrackedRange,
              new X.e(n.lineNumber, n.column, n.lineNumber, n.column),
              1
            );
            const r = this.viewLayout.getVerticalOffsetForLineNumber(e),
              s = this.viewLayout.getCurrentScrollTop();
            this._viewportStartLineDelta = s - r;
          }
          getActiveIndentGuide(e, t, i) {
            return this._lines.getActiveIndentGuide(e, t, i);
          }
          getLinesIndentGuides(e, t) {
            return this._lines.getViewLinesIndentGuides(e, t);
          }
          getLineContent(e) {
            return this._lines.getViewLineContent(e);
          }
          getLineLength(e) {
            return this._lines.getViewLineLength(e);
          }
          getLineMinColumn(e) {
            return this._lines.getViewLineMinColumn(e);
          }
          getLineMaxColumn(e) {
            return this._lines.getViewLineMaxColumn(e);
          }
          getLineFirstNonWhitespaceColumn(e) {
            const t = we.LC(this.getLineContent(e));
            return -1 === t ? 0 : t + 1;
          }
          getLineLastNonWhitespaceColumn(e) {
            const t = we.ow(this.getLineContent(e));
            return -1 === t ? 0 : t + 2;
          }
          getDecorationsInViewport(e) {
            return this._decorations.getDecorationsViewportData(e).decorations;
          }
          getViewLineRenderingData(e, t) {
            let i = this.model.mightContainRTL(),
              n = this.model.mightContainNonBasicASCII(),
              r = this.getTabSize(),
              s = this._lines.getViewLineData(t),
              o = this._decorations.getDecorationsViewportData(e)
                .inlineDecorations[t - e.startLineNumber];
            return new pt.wA(
              s.minColumn,
              s.maxColumn,
              s.content,
              s.continuesWithWrappedLine,
              i,
              n,
              s.tokens,
              o,
              r,
              s.startVisibleColumn
            );
          }
          getViewLineData(e) {
            return this._lines.getViewLineData(e);
          }
          getMinimapLinesRenderingData(e, t, i) {
            let n = this._lines.getViewLinesData(e, t, i);
            return new pt.ud(this.getTabSize(), n);
          }
          getAllOverviewRulerDecorations(e) {
            return this._lines.getAllOverviewRulerDecorations(
              this._editorId,
              (0, H.$J)(this._configuration.options),
              e
            );
          }
          invalidateOverviewRulerColorCache() {
            const e = this.model.getOverviewRulerDecorations();
            for (const t of e) {
              const e = t.options.overviewRuler;
              e && e.invalidateCachedColor();
            }
          }
          invalidateMinimapColorCache() {
            const e = this.model.getAllDecorations();
            for (const t of e) {
              const e = t.options.minimap;
              e && e.invalidateCachedColor();
            }
          }
          getValueInRange(e, t) {
            const i = this.coordinatesConverter.convertViewRangeToModelRange(e);
            return this.model.getValueInRange(i, t);
          }
          getModelLineMaxColumn(e) {
            return this.model.getLineMaxColumn(e);
          }
          validateModelPosition(e) {
            return this.model.validatePosition(e);
          }
          validateModelRange(e) {
            return this.model.validateRange(e);
          }
          deduceModelPositionRelativeToViewPosition(e, t, i) {
            const n = this.coordinatesConverter.convertViewPositionToModelPosition(
              e
            );
            2 === this.model.getEOL().length && (t < 0 ? (t -= i) : (t += i));
            const r = this.model.getOffsetAt(n) + t;
            return this.model.getPositionAt(r);
          }
          getEOL() {
            return this.model.getEOL();
          }
          getPlainTextToCopy(e, t, i) {
            const n = i ? '\r\n' : this.model.getEOL();
            (e = e.slice(0)).sort(X.e.compareRangesUsingStarts);
            let r = !1,
              s = !1;
            for (const t of e) t.isEmpty() ? (r = !0) : (s = !0);
            if (!s) {
              if (!t) return '';
              const i = e.map((e) => e.startLineNumber);
              let r = '';
              for (let e = 0; e < i.length; e++)
                (e > 0 && i[e - 1] === i[e]) ||
                  (r += this.model.getLineContent(i[e]) + n);
              return r;
            }
            if (r && t) {
              let t = [],
                n = 0;
              for (const r of e) {
                const e = r.startLineNumber;
                r.isEmpty()
                  ? e !== n && t.push(this.model.getLineContent(e))
                  : t.push(this.model.getValueInRange(r, i ? 2 : 0)),
                  (n = e);
              }
              return 1 === t.length ? t[0] : t;
            }
            let o = [];
            for (const t of e)
              t.isEmpty() || o.push(this.model.getValueInRange(t, i ? 2 : 0));
            return 1 === o.length ? o[0] : o;
          }
          getRichTextToCopy(e, t) {
            const i = this.model.getLanguageIdentifier();
            if (1 === i.id) return null;
            if (1 !== e.length) return null;
            let n = e[0];
            if (n.isEmpty()) {
              if (!t) return null;
              const e = n.startLineNumber;
              n = new X.e(
                e,
                this.model.getLineMinColumn(e),
                e,
                this.model.getLineMaxColumn(e)
              );
            }
            const r = this._configuration.options.get(36),
              s = this._getColorMap(),
              o =
                r.fontFamily === H.hL.fontFamily
                  ? r.fontFamily
                  : `'${r.fontFamily}', ${H.hL.fontFamily}`;
            return {
              mode: i.language,
              html:
                `<div style="color: ${s[1]};background-color: ${s[2]};font-family: ${o};font-weight: ${r.fontWeight};font-size: ${r.fontSize}px;line-height: ${r.lineHeight}px;white-space: pre;">` +
                this._getHTMLToCopy(n, s) +
                '</div>',
            };
          }
          _getHTMLToCopy(e, t) {
            const i = e.startLineNumber,
              n = e.startColumn,
              r = e.endLineNumber,
              s = e.endColumn,
              o = this.getTabSize();
            let a = '';
            for (let e = i; e <= r; e++) {
              const l = this.model.getLineTokens(e),
                c = l.getLineContent(),
                d = e === i ? n - 1 : 0,
                h = e === r ? s - 1 : c.length;
              a +=
                '' === c ? '<br>' : (0, Bi.F)(c, l.inflate(), t, d, h, o, f.ED);
            }
            return a;
          }
          _getColorMap() {
            let e = gt.RW.getColorMap(),
              t = ['#000000'];
            if (e)
              for (let i = 1, n = e.length; i < n; i++)
                t[i] = Rt.Il.Format.CSS.formatHex(e[i]);
            return t;
          }
          pushStackElement() {
            this.model.pushStackElement();
          }
          getPrimaryCursorState() {
            return this._cursor.getPrimaryCursorState();
          }
          getLastAddedCursorIndex() {
            return this._cursor.getLastAddedCursorIndex();
          }
          getCursorStates() {
            return this._cursor.getCursorStates();
          }
          setCursorStates(e, t, i) {
            this._withViewEventsCollector((n) =>
              this._cursor.setStates(n, e, t, i)
            );
          }
          getCursorColumnSelectData() {
            return this._cursor.getCursorColumnSelectData();
          }
          setCursorColumnSelectData(e) {
            this._cursor.setCursorColumnSelectData(e);
          }
          getPrevEditOperationType() {
            return this._cursor.getPrevEditOperationType();
          }
          setPrevEditOperationType(e) {
            this._cursor.setPrevEditOperationType(e);
          }
          getSelection() {
            return this._cursor.getSelection();
          }
          getSelections() {
            return this._cursor.getSelections();
          }
          getPosition() {
            return this._cursor.getPrimaryCursorState().modelState.position;
          }
          setSelections(e, t) {
            this._withViewEventsCollector((i) =>
              this._cursor.setSelections(i, e, t)
            );
          }
          saveCursorState() {
            return this._cursor.saveState();
          }
          restoreCursorState(e) {
            this._withViewEventsCollector((t) =>
              this._cursor.restoreState(t, e)
            );
          }
          _executeCursorEdit(e) {
            this._cursor.context.cursorConfig.readOnly
              ? this._eventDispatcher.emitOutgoingEvent(new Ti())
              : this._withViewEventsCollector(e);
          }
          executeEdits(e, t, i) {
            this._executeCursorEdit((n) =>
              this._cursor.executeEdits(n, e, t, i)
            );
          }
          startComposition() {
            this._cursor.setIsDoingComposition(!0),
              this._executeCursorEdit((e) => this._cursor.startComposition(e));
          }
          endComposition(e) {
            this._cursor.setIsDoingComposition(!1),
              this._executeCursorEdit((t) => this._cursor.endComposition(t, e));
          }
          type(e, t) {
            this._executeCursorEdit((i) => this._cursor.type(i, e, t));
          }
          replacePreviousChar(e, t, i) {
            this._executeCursorEdit((n) =>
              this._cursor.replacePreviousChar(n, e, t, i)
            );
          }
          paste(e, t, i, n) {
            this._executeCursorEdit((r) => this._cursor.paste(r, e, t, i, n));
          }
          cut(e) {
            this._executeCursorEdit((t) => this._cursor.cut(t, e));
          }
          executeCommand(e, t) {
            this._executeCursorEdit((i) =>
              this._cursor.executeCommand(i, e, t)
            );
          }
          executeCommands(e, t) {
            this._executeCursorEdit((i) =>
              this._cursor.executeCommands(i, e, t)
            );
          }
          revealPrimaryCursor(e, t) {
            this._withViewEventsCollector((i) =>
              this._cursor.revealPrimary(i, e, t, 0)
            );
          }
          revealTopMostCursor(e) {
            const t = this._cursor.getTopMostViewPosition(),
              i = new X.e(t.lineNumber, t.column, t.lineNumber, t.column);
            this._withViewEventsCollector((t) =>
              t.emitViewEvent(new bi(e, i, null, 0, !0, 0))
            );
          }
          revealBottomMostCursor(e) {
            const t = this._cursor.getBottomMostViewPosition(),
              i = new X.e(t.lineNumber, t.column, t.lineNumber, t.column);
            this._withViewEventsCollector((t) =>
              t.emitViewEvent(new bi(e, i, null, 0, !0, 0))
            );
          }
          revealRange(e, t, i, n, r) {
            this._withViewEventsCollector((s) =>
              s.emitViewEvent(new bi(e, i, null, n, t, r))
            );
          }
          getVerticalOffsetForLineNumber(e) {
            return this.viewLayout.getVerticalOffsetForLineNumber(e);
          }
          getScrollTop() {
            return this.viewLayout.getCurrentScrollTop();
          }
          setScrollTop(e, t) {
            this.viewLayout.setScrollPosition({ scrollTop: e }, t);
          }
          setScrollPosition(e, t) {
            this.viewLayout.setScrollPosition(e, t);
          }
          deltaScrollNow(e, t) {
            this.viewLayout.deltaScrollNow(e, t);
          }
          changeWhitespace(e) {
            this.viewLayout.changeWhitespace(e) &&
              (this._eventDispatcher.emitSingleViewEvent(new Si()),
              this._eventDispatcher.emitOutgoingEvent(new Ni()));
          }
          setMaxLineWidth(e) {
            this.viewLayout.setMaxLineWidth(e);
          }
          _withViewEventsCollector(e) {
            try {
              e(this._eventDispatcher.beginEmitViewEvents());
            } finally {
              this._eventDispatcher.endEmitViewEvents();
            }
          }
        }
        var un = i(94565),
          gn = i(38819),
          fn = i(72065),
          pn = i(60972),
          mn = i(59422),
          _n = i(31106),
          bn = i(98401),
          vn = i(44906);
        class yn extends vn.N {
          constructor(e, t) {
            super(0);
            for (let t = 0; t < e.length; t++) this.set(e.charCodeAt(t), 1);
            for (let e = 0; e < t.length; e++) this.set(t.charCodeAt(e), 2);
          }
          get(e) {
            return e >= 0 && e < 256
              ? this._asciiMap[e]
              : (e >= 12352 && e <= 12543) ||
                (e >= 13312 && e <= 19903) ||
                (e >= 19968 && e <= 40959)
              ? 3
              : this._map.get(e) || this._defaultValue;
          }
        }
        let wn = [],
          Cn = [];
        class Sn {
          constructor(e, t) {
            this.classifier = new yn(e, t);
          }
          static create(e) {
            return new Sn(e.get(108), e.get(107));
          }
          createLineBreaksComputer(e, t, i, n) {
            (t |= 0), (i = +i);
            let r = [],
              s = [];
            return {
              addRequest: (e, t) => {
                r.push(e), s.push(t);
              },
              finalize: () => {
                const o =
                  e.typicalFullwidthCharacterWidth /
                  e.typicalHalfwidthCharacterWidth;
                let a = [];
                for (let e = 0, l = r.length; e < l; e++) {
                  const l = s[e];
                  a[e] = l
                    ? kn(this.classifier, l, r[e], t, i, o, n)
                    : xn(this.classifier, r[e], t, i, o, n);
                }
                return (wn.length = 0), (Cn.length = 0), a;
              },
            };
          }
        }
        function kn(e, t, i, n, r, s, o) {
          if (-1 === r) return null;
          const a = i.length;
          if (a <= 1) return null;
          const l = t.breakOffsets,
            c = t.breakOffsetsVisibleColumn,
            d = Nn(i, n, r, s, o),
            h = r - d;
          let u = wn,
            g = Cn,
            f = 0,
            p = 0,
            m = 0,
            _ = r;
          const b = l.length;
          let v = 0;
          if (v >= 0) {
            let e = Math.abs(c[v] - _);
            for (; v + 1 < b; ) {
              const t = Math.abs(c[v + 1] - _);
              if (t >= e) break;
              (e = t), v++;
            }
          }
          for (; v < b; ) {
            let t = v < 0 ? 0 : l[v],
              r = v < 0 ? 0 : c[v];
            p > t && ((t = p), (r = m));
            let o = 0,
              d = 0,
              y = 0,
              w = 0;
            if (r <= _) {
              let m = r,
                b = 0 === t ? 0 : i.charCodeAt(t - 1),
                v = 0 === t ? 0 : e.get(b),
                C = !0;
              for (let r = t; r < a; r++) {
                const t = r,
                  a = i.charCodeAt(r);
                let l, c;
                if (
                  (we.ZG(a)
                    ? (r++, (l = 0), (c = 2))
                    : ((l = e.get(a)), (c = Ln(a, m, n, s))),
                  t > p && Dn(0, v, a, l) && ((o = t), (d = m)),
                  (m += c),
                  m > _)
                ) {
                  t > p ? ((y = t), (w = m - c)) : ((y = r + 1), (w = m)),
                    m - d > h && (o = 0),
                    (C = !1);
                  break;
                }
                (b = a), (v = l);
              }
              if (C) {
                f > 0 &&
                  ((u[f] = l[l.length - 1]), (g[f] = c[l.length - 1]), f++);
                break;
              }
            }
            if (0 === o) {
              let a = r,
                l = i.charCodeAt(t),
                c = e.get(l),
                u = !1;
              for (let n = t - 1; n >= p; n--) {
                const t = n + 1,
                  r = i.charCodeAt(n);
                if (9 === r) {
                  u = !0;
                  break;
                }
                let g, f;
                if (
                  (we.YK(r)
                    ? (n--, (g = 0), (f = 2))
                    : ((g = e.get(r)), (f = we.K7(r) ? s : 1)),
                  a <= _)
                ) {
                  if ((0 === y && ((y = t), (w = a)), a <= _ - h)) break;
                  if (Dn(0, g, l, c)) {
                    (o = t), (d = a);
                    break;
                  }
                }
                (a -= f), (l = r), (c = g);
              }
              if (0 !== o) {
                const e = h - (w - d);
                if (e <= n) {
                  const t = i.charCodeAt(y);
                  let r;
                  (r = we.ZG(t) ? 2 : Ln(t, w, n, s)), e - r < 0 && (o = 0);
                }
              }
              if (u) {
                v--;
                continue;
              }
            }
            for (
              0 === o && ((o = y), (d = w)),
                p = o,
                u[f] = o,
                m = d,
                g[f] = d,
                f++,
                _ = d + h;
              v < 0 || (v < b && c[v] < d);

            )
              v++;
            let C = Math.abs(c[v] - _);
            for (; v + 1 < b; ) {
              const e = Math.abs(c[v + 1] - _);
              if (e >= C) break;
              (C = e), v++;
            }
          }
          return 0 === f
            ? null
            : ((u.length = f),
              (g.length = f),
              (wn = t.breakOffsets),
              (Cn = t.breakOffsetsVisibleColumn),
              (t.breakOffsets = u),
              (t.breakOffsetsVisibleColumn = g),
              (t.wrappedTextIndentLength = d),
              t);
        }
        function xn(e, t, i, n, r, s) {
          if (-1 === n) return null;
          const o = t.length;
          if (o <= 1) return null;
          const a = Nn(t, i, n, r, s),
            l = n - a;
          let c = [],
            d = [],
            h = 0,
            u = 0,
            g = 0,
            f = n,
            p = t.charCodeAt(0),
            m = e.get(p),
            _ = Ln(p, 0, i, r),
            b = 1;
          we.ZG(p) && ((_ += 1), (p = t.charCodeAt(1)), (m = e.get(p)), b++);
          for (let n = b; n < o; n++) {
            const s = n,
              o = t.charCodeAt(n);
            let a, b;
            we.ZG(o)
              ? (n++, (a = 0), (b = 2))
              : ((a = e.get(o)), (b = Ln(o, _, i, r))),
              Dn(0, m, o, a) && ((u = s), (g = _)),
              (_ += b),
              _ > f &&
                ((0 === u || _ - g > l) && ((u = s), (g = _ - b)),
                (c[h] = u),
                (d[h] = g),
                h++,
                (f = g + l),
                (u = 0)),
              (p = o),
              (m = a);
          }
          return 0 === h ? null : ((c[h] = o), (d[h] = _), new Gi(c, d, a));
        }
        function Ln(e, t, i, n) {
          return 9 === e ? i - (t % i) : we.K7(e) ? n : 1;
        }
        function Mn(e, t) {
          return t - (e % t);
        }
        function Dn(e, t, i, n) {
          return (
            32 !== i &&
            (2 === t || (3 === t && 2 !== n) || 1 === n || (3 === n && 1 !== t))
          );
        }
        function Nn(e, t, i, n, r) {
          let s = 0;
          if (0 !== r) {
            const o = we.LC(e);
            if (-1 !== o) {
              for (let i = 0; i < o; i++)
                s += 9 === e.charCodeAt(i) ? Mn(s, t) : 1;
              const a = 3 === r ? 2 : 2 === r ? 1 : 0;
              for (let e = 0; e < a; e++) s += Mn(s, t);
              s + n > i && (s = 0);
            }
          }
          return s;
        }
        class En {
          static create() {
            return new En();
          }
          constructor() {}
          createLineBreaksComputer(e, t, i, n) {
            (t |= 0), (i = +i);
            let r = [];
            return {
              addRequest: (e, t) => {
                r.push(e);
              },
              finalize: () =>
                (function (e, t, i, n, r) {
                  if (-1 === n) {
                    const t = [];
                    for (let i = 0, n = e.length; i < n; i++) t[i] = null;
                    return t;
                  }
                  const s = Math.round(n * t.typicalHalfwidthCharacterWidth);
                  (2 !== r && 3 !== r) || (r = 1);
                  const o = document.createElement('div');
                  c.V.applyFontInfoSlow(o, t);
                  const a = (0, Fe.l$)(1e4),
                    l = [],
                    d = [],
                    h = [],
                    u = [],
                    g = [];
                  for (let n = 0; n < e.length; n++) {
                    const o = e[n];
                    let c = 0,
                      f = 0,
                      p = s;
                    if (0 !== r)
                      if (((c = we.LC(o)), -1 === c)) c = 0;
                      else {
                        for (let e = 0; e < c; e++)
                          f += 9 === o.charCodeAt(e) ? i - (f % i) : 1;
                        const e = Math.ceil(t.spaceWidth * f);
                        e + t.typicalFullwidthCharacterWidth > s
                          ? ((c = 0), (f = 0))
                          : (p = s - e);
                      }
                    const m = o.substr(c),
                      _ = Tn(m, f, i, p, a);
                    (l[n] = c),
                      (d[n] = f),
                      (h[n] = m),
                      (u[n] = _[0]),
                      (g[n] = _[1]);
                  }
                  (o.innerHTML = a.build()),
                    (o.style.position = 'absolute'),
                    (o.style.top = '10000'),
                    (o.style.wordWrap = 'break-word'),
                    document.body.appendChild(o);
                  let f = document.createRange();
                  const p = Array.prototype.slice.call(o.children, 0);
                  let m = [];
                  for (let t = 0; t < e.length; t++) {
                    const e = In(f, p[t], h[t], u[t]);
                    if (null === e) {
                      m[t] = null;
                      continue;
                    }
                    const i = l[t],
                      n = d[t],
                      r = g[t],
                      s = [];
                    for (let t = 0, i = e.length; t < i; t++) s[t] = r[e[t]];
                    if (0 !== i)
                      for (let t = 0, n = e.length; t < n; t++) e[t] += i;
                    m[t] = new Gi(e, s, n);
                  }
                  return document.body.removeChild(o), m;
                })(r, e, t, i, n),
            };
          }
        }
        function Tn(e, t, i, n, r) {
          r.appendASCIIString('<div style="width:'),
            r.appendASCIIString(String(n)),
            r.appendASCIIString('px;">');
          const s = e.length;
          let o = t,
            a = 0,
            l = [],
            c = [],
            d = 0 < s ? e.charCodeAt(0) : 0;
          r.appendASCIIString('<span>');
          for (let t = 0; t < s; t++) {
            0 !== t && t % 16384 == 0 && r.appendASCIIString('</span><span>'),
              (l[t] = a),
              (c[t] = o);
            const n = d;
            d = t + 1 < s ? e.charCodeAt(t + 1) : 0;
            let h = 1,
              u = 1;
            switch (n) {
              case 9:
                (h = i - (o % i)), (u = h);
                for (let e = 1; e <= h; e++)
                  e < h ? r.write1(160) : r.appendASCII(32);
                break;
              case 32:
                32 === d ? r.write1(160) : r.appendASCII(32);
                break;
              case 60:
                r.appendASCIIString('&lt;');
                break;
              case 62:
                r.appendASCIIString('&gt;');
                break;
              case 38:
                r.appendASCIIString('&amp;');
                break;
              case 0:
                r.appendASCIIString('&#00;');
                break;
              case 65279:
              case 8232:
              case 8233:
              case 133:
                r.write1(65533);
                break;
              default:
                we.K7(n) && u++, r.write1(n);
            }
            (a += h), (o += u);
          }
          return (
            r.appendASCIIString('</span>'),
            (l[e.length] = a),
            (c[e.length] = o),
            r.appendASCIIString('</div>'),
            [l, c]
          );
        }
        function In(e, t, i, n) {
          if (i.length <= 1) return null;
          const r = Array.prototype.slice.call(t.children, 0),
            s = [];
          try {
            On(e, r, n, 0, null, i.length - 1, null, s);
          } catch (e) {
            return console.log(e), null;
          }
          return 0 === s.length ? null : (s.push(i.length), s);
        }
        function On(e, t, i, n, r, s, o, a) {
          if (n === s) return;
          if (
            ((r = r || An(e, t, i[n], i[n + 1])),
            (o = o || An(e, t, i[s], i[s + 1])),
            Math.abs(r[0].top - o[0].top) <= 0.1)
          )
            return;
          if (n + 1 === s) return void a.push(s);
          const l = (n + (s - n) / 2) | 0,
            c = An(e, t, i[l], i[l + 1]);
          On(e, t, i, n, r, l, c, a), On(e, t, i, l, c, s, o, a);
        }
        function An(e, t, i, n) {
          return (
            e.setStart(t[(i / 16384) | 0].firstChild, i % 16384),
            e.setEnd(t[(n / 16384) | 0].firstChild, n % 16384),
            e.getClientRects()
          );
        }
        var Rn = i(5795),
          Pn = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let Fn = 0;
        class Bn {
          constructor(e, t, i, n, r) {
            (this.model = e),
              (this.viewModel = t),
              (this.view = i),
              (this.hasRealView = n),
              (this.listenersToRemove = r);
          }
          dispose() {
            (0, a.B9)(this.listenersToRemove),
              this.model.onBeforeDetached(),
              this.hasRealView && this.view.dispose(),
              this.viewModel.dispose();
          }
        }
        let Wn = class e extends a.JT {
          constructor(e, t, i, n, r, a, l, c, h, u) {
            let g;
            super(),
              (this._onDidDispose = this._register(new o.Q5())),
              (this.onDidDispose = this._onDidDispose.event),
              (this._onDidChangeModelContent = this._register(new o.Q5())),
              (this.onDidChangeModelContent = this._onDidChangeModelContent.event),
              (this._onDidChangeModelLanguage = this._register(new o.Q5())),
              (this.onDidChangeModelLanguage = this._onDidChangeModelLanguage.event),
              (this._onDidChangeModelLanguageConfiguration = this._register(
                new o.Q5()
              )),
              (this.onDidChangeModelLanguageConfiguration = this._onDidChangeModelLanguageConfiguration.event),
              (this._onDidChangeModelOptions = this._register(new o.Q5())),
              (this.onDidChangeModelOptions = this._onDidChangeModelOptions.event),
              (this._onDidChangeModelDecorations = this._register(new o.Q5())),
              (this.onDidChangeModelDecorations = this._onDidChangeModelDecorations.event),
              (this._onDidChangeConfiguration = this._register(new o.Q5())),
              (this.onDidChangeConfiguration = this._onDidChangeConfiguration.event),
              (this._onDidChangeModel = this._register(new o.Q5())),
              (this.onDidChangeModel = this._onDidChangeModel.event),
              (this._onDidChangeCursorPosition = this._register(new o.Q5())),
              (this.onDidChangeCursorPosition = this._onDidChangeCursorPosition.event),
              (this._onDidChangeCursorSelection = this._register(new o.Q5())),
              (this.onDidChangeCursorSelection = this._onDidChangeCursorSelection.event),
              (this._onDidAttemptReadOnlyEdit = this._register(new o.Q5())),
              (this.onDidAttemptReadOnlyEdit = this._onDidAttemptReadOnlyEdit.event),
              (this._onDidLayoutChange = this._register(new o.Q5())),
              (this.onDidLayoutChange = this._onDidLayoutChange.event),
              (this._editorTextFocus = this._register(new Yn())),
              (this.onDidFocusEditorText = this._editorTextFocus.onDidChangeToTrue),
              (this.onDidBlurEditorText = this._editorTextFocus.onDidChangeToFalse),
              (this._editorWidgetFocus = this._register(new Yn())),
              (this.onDidFocusEditorWidget = this._editorWidgetFocus.onDidChangeToTrue),
              (this.onDidBlurEditorWidget = this._editorWidgetFocus.onDidChangeToFalse),
              (this._onWillType = this._register(new o.Q5())),
              (this.onWillType = this._onWillType.event),
              (this._onDidType = this._register(new o.Q5())),
              (this.onDidType = this._onDidType.event),
              (this._onDidCompositionStart = this._register(new o.Q5())),
              (this.onDidCompositionStart = this._onDidCompositionStart.event),
              (this._onDidCompositionEnd = this._register(new o.Q5())),
              (this.onDidCompositionEnd = this._onDidCompositionEnd.event),
              (this._onDidPaste = this._register(new o.Q5())),
              (this.onDidPaste = this._onDidPaste.event),
              (this._onMouseUp = this._register(new o.Q5())),
              (this.onMouseUp = this._onMouseUp.event),
              (this._onMouseDown = this._register(new o.Q5())),
              (this.onMouseDown = this._onMouseDown.event),
              (this._onMouseDrag = this._register(new o.Q5())),
              (this.onMouseDrag = this._onMouseDrag.event),
              (this._onMouseDrop = this._register(new o.Q5())),
              (this.onMouseDrop = this._onMouseDrop.event),
              (this._onContextMenu = this._register(new o.Q5())),
              (this.onContextMenu = this._onContextMenu.event),
              (this._onMouseMove = this._register(new o.Q5())),
              (this.onMouseMove = this._onMouseMove.event),
              (this._onMouseLeave = this._register(new o.Q5())),
              (this.onMouseLeave = this._onMouseLeave.event),
              (this._onMouseWheel = this._register(new o.Q5())),
              (this.onMouseWheel = this._onMouseWheel.event),
              (this._onKeyUp = this._register(new o.Q5())),
              (this.onKeyUp = this._onKeyUp.event),
              (this._onKeyDown = this._register(new o.Q5())),
              (this.onKeyDown = this._onKeyDown.event),
              (this._onDidContentSizeChange = this._register(new o.Q5())),
              (this.onDidContentSizeChange = this._onDidContentSizeChange.event),
              (this._onDidScrollChange = this._register(new o.Q5())),
              (this.onDidScrollChange = this._onDidScrollChange.event),
              (this._onDidChangeViewZones = this._register(new o.Q5())),
              (this.onDidChangeViewZones = this._onDidChangeViewZones.event),
              (t = t || {}),
              (this._domElement = e),
              (this._overflowWidgetsDomNode = t.overflowWidgetsDomNode),
              (this._id = ++Fn),
              (this._decorationTypeKeysToIds = {}),
              (this._decorationTypeSubtypes = {}),
              (this.isSimpleWidget = i.isSimpleWidget || !1),
              (this._telemetryData = i.telemetryData),
              (this._configuration = this._register(
                this._createConfiguration(t, u)
              )),
              this._register(
                this._configuration.onDidChange((e) => {
                  this._onDidChangeConfiguration.fire(e);
                  const t = this._configuration.options;
                  if (e.hasChanged(117)) {
                    const e = t.get(117);
                    this._onDidLayoutChange.fire(e);
                  }
                })
              ),
              (this._contextKeyService = this._register(
                l.createScoped(this._domElement)
              )),
              (this._notificationService = h),
              (this._codeEditorService = r),
              (this._commandService = a),
              (this._themeService = c),
              this._register(new Hn(this, this._contextKeyService)),
              this._register(new jn(this, this._contextKeyService)),
              (this._instantiationService = n.createChild(
                new pn.y([gn.i6, this._contextKeyService])
              )),
              (this._modelData = null),
              (this._contributions = {}),
              (this._actions = {}),
              (this._focusTracker = new Vn(e)),
              this._focusTracker.onChange(() => {
                this._editorWidgetFocus.setValue(this._focusTracker.hasFocus());
              }),
              (this._contentWidgets = {}),
              (this._overlayWidgets = {}),
              (g = Array.isArray(i.contributions)
                ? i.contributions
                : d.Uc.getEditorContributions());
            for (const e of g)
              try {
                const t = this._instantiationService.createInstance(
                  e.ctor,
                  this
                );
                this._contributions[e.id] = t;
              } catch (e) {
                (0, s.dL)(e);
              }
            d.Uc.getEditorActions().forEach((e) => {
              const t = new Ri.p(
                e.id,
                e.label,
                e.alias,
                (0, bn.f6)(e.precondition),
                () =>
                  this._instantiationService.invokeFunction((t) =>
                    Promise.resolve(e.runEditorCommand(t, this, null))
                  ),
                this._contextKeyService
              );
              this._actions[t.id] = t;
            }),
              this._codeEditorService.addCodeEditor(this);
          }
          _createConfiguration(e, t) {
            return new c.V(this.isSimpleWidget, e, this._domElement, t);
          }
          getId() {
            return this.getEditorType() + ':' + this._id;
          }
          getEditorType() {
            return Pi.g.ICodeEditor;
          }
          dispose() {
            this._codeEditorService.removeCodeEditor(this),
              this._focusTracker.dispose();
            const e = Object.keys(this._contributions);
            for (let t = 0, i = e.length; t < i; t++) {
              const i = e[t];
              this._contributions[i].dispose();
            }
            this._removeDecorationTypes(),
              this._postDetachModelCleanup(this._detachModel()),
              this._onDidDispose.fire(),
              super.dispose();
          }
          invokeWithinContext(e) {
            return this._instantiationService.invokeFunction(e);
          }
          updateOptions(e) {
            this._configuration.updateOptions(e);
          }
          getOptions() {
            return this._configuration.options;
          }
          getOption(e) {
            return this._configuration.options.get(e);
          }
          getRawOptions() {
            return this._configuration.getRawOptions();
          }
          getOverflowWidgetsDomNode() {
            return this._overflowWidgetsDomNode;
          }
          getConfiguredWordAtPosition(e) {
            return this._modelData
              ? Rn.w.getWordAtPosition(
                  this._modelData.model,
                  this._configuration.options.get(105),
                  e
                )
              : null;
          }
          getValue(e = null) {
            if (!this._modelData) return '';
            const t = !(!e || !e.preserveBOM);
            let i = 0;
            return (
              e && e.lineEnding && '\n' === e.lineEnding
                ? (i = 1)
                : e && e.lineEnding && '\r\n' === e.lineEnding && (i = 2),
              this._modelData.model.getValue(i, t)
            );
          }
          setValue(e) {
            this._modelData && this._modelData.model.setValue(e);
          }
          getModel() {
            return this._modelData ? this._modelData.model : null;
          }
          setModel(e = null) {
            const t = e;
            if (null === this._modelData && null === t) return;
            if (this._modelData && this._modelData.model === t) return;
            const i = this.hasTextFocus(),
              n = this._detachModel();
            this._attachModel(t), i && this.hasModel() && this.focus();
            const r = {
              oldModelUrl: n ? n.uri : null,
              newModelUrl: t ? t.uri : null,
            };
            this._removeDecorationTypes(),
              this._onDidChangeModel.fire(r),
              this._postDetachModelCleanup(n);
          }
          _removeDecorationTypes() {
            if (
              ((this._decorationTypeKeysToIds = {}),
              this._decorationTypeSubtypes)
            ) {
              for (let e in this._decorationTypeSubtypes) {
                const t = this._decorationTypeSubtypes[e];
                for (let i in t) this._removeDecorationType(e + '-' + i);
              }
              this._decorationTypeSubtypes = {};
            }
          }
          getVisibleRanges() {
            return this._modelData
              ? this._modelData.viewModel.getVisibleRanges()
              : [];
          }
          getVisibleRangesPlusViewportAboveBelow() {
            return this._modelData
              ? this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow()
              : [];
          }
          getWhitespaces() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getWhitespaces()
              : [];
          }
          static _getVerticalOffsetForPosition(e, t, i) {
            const n = e.model.validatePosition({ lineNumber: t, column: i }),
              r = e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(
                n
              );
            return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(
              r.lineNumber
            );
          }
          getTopForLineNumber(t) {
            return this._modelData
              ? e._getVerticalOffsetForPosition(this._modelData, t, 1)
              : -1;
          }
          getTopForPosition(t, i) {
            return this._modelData
              ? e._getVerticalOffsetForPosition(this._modelData, t, i)
              : -1;
          }
          setHiddenAreas(e) {
            this._modelData &&
              this._modelData.viewModel.setHiddenAreas(
                e.map((e) => X.e.lift(e))
              );
          }
          getVisibleColumnFromPosition(e) {
            if (!this._modelData) return e.column;
            const t = this._modelData.model.validatePosition(e),
              i = this._modelData.model.getOptions().tabSize;
            return (
              ee.io.visibleColumnFromColumn(
                this._modelData.model.getLineContent(t.lineNumber),
                t.column,
                i
              ) + 1
            );
          }
          getPosition() {
            return this._modelData
              ? this._modelData.viewModel.getPosition()
              : null;
          }
          setPosition(e) {
            if (this._modelData) {
              if (!Q.L.isIPosition(e)) throw new Error('Invalid arguments');
              this._modelData.viewModel.setSelections('api', [
                {
                  selectionStartLineNumber: e.lineNumber,
                  selectionStartColumn: e.column,
                  positionLineNumber: e.lineNumber,
                  positionColumn: e.column,
                },
              ]);
            }
          }
          _sendRevealRange(e, t, i, n) {
            if (!this._modelData) return;
            if (!X.e.isIRange(e)) throw new Error('Invalid arguments');
            const r = this._modelData.model.validateRange(e),
              s = this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(
                r
              );
            this._modelData.viewModel.revealRange('api', i, s, t, n);
          }
          revealLine(e, t = 0) {
            this._revealLine(e, 0, t);
          }
          revealLineInCenter(e, t = 0) {
            this._revealLine(e, 1, t);
          }
          revealLineInCenterIfOutsideViewport(e, t = 0) {
            this._revealLine(e, 2, t);
          }
          revealLineNearTop(e, t = 0) {
            this._revealLine(e, 5, t);
          }
          _revealLine(e, t, i) {
            if ('number' != typeof e) throw new Error('Invalid arguments');
            this._sendRevealRange(new X.e(e, 1, e, 1), t, !1, i);
          }
          revealPosition(e, t = 0) {
            this._revealPosition(e, 0, !0, t);
          }
          revealPositionInCenter(e, t = 0) {
            this._revealPosition(e, 1, !0, t);
          }
          revealPositionInCenterIfOutsideViewport(e, t = 0) {
            this._revealPosition(e, 2, !0, t);
          }
          revealPositionNearTop(e, t = 0) {
            this._revealPosition(e, 5, !0, t);
          }
          _revealPosition(e, t, i, n) {
            if (!Q.L.isIPosition(e)) throw new Error('Invalid arguments');
            this._sendRevealRange(
              new X.e(e.lineNumber, e.column, e.lineNumber, e.column),
              t,
              i,
              n
            );
          }
          getSelection() {
            return this._modelData
              ? this._modelData.viewModel.getSelection()
              : null;
          }
          getSelections() {
            return this._modelData
              ? this._modelData.viewModel.getSelections()
              : null;
          }
          setSelection(e) {
            const t = u.Y.isISelection(e),
              i = X.e.isIRange(e);
            if (!t && !i) throw new Error('Invalid arguments');
            if (t) this._setSelectionImpl(e);
            else if (i) {
              const t = {
                selectionStartLineNumber: e.startLineNumber,
                selectionStartColumn: e.startColumn,
                positionLineNumber: e.endLineNumber,
                positionColumn: e.endColumn,
              };
              this._setSelectionImpl(t);
            }
          }
          _setSelectionImpl(e) {
            if (!this._modelData) return;
            const t = new u.Y(
              e.selectionStartLineNumber,
              e.selectionStartColumn,
              e.positionLineNumber,
              e.positionColumn
            );
            this._modelData.viewModel.setSelections('api', [t]);
          }
          revealLines(e, t, i = 0) {
            this._revealLines(e, t, 0, i);
          }
          revealLinesInCenter(e, t, i = 0) {
            this._revealLines(e, t, 1, i);
          }
          revealLinesInCenterIfOutsideViewport(e, t, i = 0) {
            this._revealLines(e, t, 2, i);
          }
          revealLinesNearTop(e, t, i = 0) {
            this._revealLines(e, t, 5, i);
          }
          _revealLines(e, t, i, n) {
            if ('number' != typeof e || 'number' != typeof t)
              throw new Error('Invalid arguments');
            this._sendRevealRange(new X.e(e, 1, t, 1), i, !1, n);
          }
          revealRange(e, t = 0, i = !1, n = !0) {
            this._revealRange(e, i ? 1 : 0, n, t);
          }
          revealRangeInCenter(e, t = 0) {
            this._revealRange(e, 1, !0, t);
          }
          revealRangeInCenterIfOutsideViewport(e, t = 0) {
            this._revealRange(e, 2, !0, t);
          }
          revealRangeNearTop(e, t = 0) {
            this._revealRange(e, 5, !0, t);
          }
          revealRangeNearTopIfOutsideViewport(e, t = 0) {
            this._revealRange(e, 6, !0, t);
          }
          revealRangeAtTop(e, t = 0) {
            this._revealRange(e, 3, !0, t);
          }
          _revealRange(e, t, i, n) {
            if (!X.e.isIRange(e)) throw new Error('Invalid arguments');
            this._sendRevealRange(X.e.lift(e), t, i, n);
          }
          setSelections(e, t = 'api') {
            if (this._modelData) {
              if (!e || 0 === e.length) throw new Error('Invalid arguments');
              for (let t = 0, i = e.length; t < i; t++)
                if (!u.Y.isISelection(e[t]))
                  throw new Error('Invalid arguments');
              this._modelData.viewModel.setSelections(t, e);
            }
          }
          getContentWidth() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getContentWidth()
              : -1;
          }
          getScrollWidth() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getScrollWidth()
              : -1;
          }
          getScrollLeft() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getCurrentScrollLeft()
              : -1;
          }
          getContentHeight() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getContentHeight()
              : -1;
          }
          getScrollHeight() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getScrollHeight()
              : -1;
          }
          getScrollTop() {
            return this._modelData
              ? this._modelData.viewModel.viewLayout.getCurrentScrollTop()
              : -1;
          }
          setScrollLeft(e, t = 1) {
            if (this._modelData) {
              if ('number' != typeof e) throw new Error('Invalid arguments');
              this._modelData.viewModel.setScrollPosition({ scrollLeft: e }, t);
            }
          }
          setScrollTop(e, t = 1) {
            if (this._modelData) {
              if ('number' != typeof e) throw new Error('Invalid arguments');
              this._modelData.viewModel.setScrollPosition({ scrollTop: e }, t);
            }
          }
          setScrollPosition(e, t = 1) {
            this._modelData &&
              this._modelData.viewModel.setScrollPosition(e, t);
          }
          saveViewState() {
            if (!this._modelData) return null;
            const e = {},
              t = Object.keys(this._contributions);
            for (const i of t) {
              const t = this._contributions[i];
              'function' == typeof t.saveViewState &&
                (e[i] = t.saveViewState());
            }
            return {
              cursorState: this._modelData.viewModel.saveCursorState(),
              viewState: this._modelData.viewModel.saveState(),
              contributionsState: e,
            };
          }
          restoreViewState(e) {
            if (!this._modelData || !this._modelData.hasRealView) return;
            const t = e;
            if (t && t.cursorState && t.viewState) {
              const e = t.cursorState;
              Array.isArray(e)
                ? this._modelData.viewModel.restoreCursorState(e)
                : this._modelData.viewModel.restoreCursorState([e]);
              const i = t.contributionsState || {},
                n = Object.keys(this._contributions);
              for (let e = 0, t = n.length; e < t; e++) {
                const t = n[e],
                  r = this._contributions[t];
                'function' == typeof r.restoreViewState &&
                  r.restoreViewState(i[t]);
              }
              const r = this._modelData.viewModel.reduceRestoreState(
                t.viewState
              );
              this._modelData.view.restoreState(r);
            }
          }
          getContribution(e) {
            return this._contributions[e] || null;
          }
          getActions() {
            const e = [],
              t = Object.keys(this._actions);
            for (let i = 0, n = t.length; i < n; i++) {
              const n = t[i];
              e.push(this._actions[n]);
            }
            return e;
          }
          getSupportedActions() {
            let e = this.getActions();
            return (e = e.filter((e) => e.isSupported())), e;
          }
          getAction(e) {
            return this._actions[e] || null;
          }
          trigger(e, t, i) {
            switch (((i = i || {}), t)) {
              case 'compositionStart':
                return void this._startComposition();
              case 'compositionEnd':
                return void this._endComposition(e);
              case 'type': {
                const t = i;
                return void this._type(e, t.text || '');
              }
              case 'replacePreviousChar': {
                const t = i;
                return void this._replacePreviousChar(
                  e,
                  t.text || '',
                  t.replaceCharCnt || 0
                );
              }
              case 'paste': {
                const t = i;
                return void this._paste(
                  e,
                  t.text || '',
                  t.pasteOnNewLine || !1,
                  t.multicursorText || null,
                  t.mode || null
                );
              }
              case 'cut':
                return void this._cut(e);
            }
            const n = this.getAction(t);
            n
              ? Promise.resolve(n.run()).then(void 0, s.dL)
              : this._modelData && this._triggerEditorCommand(e, t, i);
          }
          _startComposition() {
            this._modelData &&
              (this._modelData.viewModel.startComposition(),
              this._onDidCompositionStart.fire());
          }
          _endComposition(e) {
            this._modelData &&
              (this._modelData.viewModel.endComposition(e),
              this._onDidCompositionEnd.fire());
          }
          _type(e, t) {
            this._modelData &&
              0 !== t.length &&
              ('keyboard' === e && this._onWillType.fire(t),
              this._modelData.viewModel.type(t, e),
              'keyboard' === e && this._onDidType.fire(t));
          }
          _replacePreviousChar(e, t, i) {
            this._modelData &&
              this._modelData.viewModel.replacePreviousChar(t, i, e);
          }
          _paste(e, t, i, n, r) {
            if (!this._modelData || 0 === t.length) return;
            const s = this._modelData.viewModel
              .getSelection()
              .getStartPosition();
            this._modelData.viewModel.paste(t, i, n, e);
            const o = this._modelData.viewModel
              .getSelection()
              .getStartPosition();
            'keyboard' === e &&
              this._onDidPaste.fire({
                range: new X.e(s.lineNumber, s.column, o.lineNumber, o.column),
                mode: r,
              });
          }
          _cut(e) {
            this._modelData && this._modelData.viewModel.cut(e);
          }
          _triggerEditorCommand(e, t, i) {
            const n = d.Uc.getEditorCommand(t);
            return (
              !!n &&
              (((i = i || {}).source = e),
              this._instantiationService.invokeFunction((e) => {
                Promise.resolve(n.runEditorCommand(e, this, i)).then(
                  void 0,
                  s.dL
                );
              }),
              !0)
            );
          }
          _getViewModel() {
            return this._modelData ? this._modelData.viewModel : null;
          }
          pushUndoStop() {
            return (
              !!this._modelData &&
              !this._configuration.options.get(72) &&
              (this._modelData.model.pushStackElement(), !0)
            );
          }
          executeEdits(e, t, i) {
            if (!this._modelData) return !1;
            if (this._configuration.options.get(72)) return !1;
            let n;
            return (
              (n = i ? (Array.isArray(i) ? () => i : i) : () => null),
              this._modelData.viewModel.executeEdits(e, t, n),
              !0
            );
          }
          executeCommand(e, t) {
            this._modelData && this._modelData.viewModel.executeCommand(t, e);
          }
          executeCommands(e, t) {
            this._modelData && this._modelData.viewModel.executeCommands(t, e);
          }
          changeDecorations(e) {
            return this._modelData
              ? this._modelData.model.changeDecorations(e, this._id)
              : null;
          }
          getLineDecorations(e) {
            return this._modelData
              ? this._modelData.model.getLineDecorations(
                  e,
                  this._id,
                  (0, H.$J)(this._configuration.options)
                )
              : null;
          }
          deltaDecorations(e, t) {
            return this._modelData
              ? 0 === e.length && 0 === t.length
                ? e
                : this._modelData.model.deltaDecorations(e, t, this._id)
              : [];
          }
          removeDecorations(e) {
            const t = this._decorationTypeKeysToIds[e];
            t && this.deltaDecorations(t, []),
              this._decorationTypeKeysToIds.hasOwnProperty(e) &&
                delete this._decorationTypeKeysToIds[e],
              this._decorationTypeSubtypes.hasOwnProperty(e) &&
                delete this._decorationTypeSubtypes[e];
          }
          getLayoutInfo() {
            return this._configuration.options.get(117);
          }
          createOverviewRuler(e) {
            return this._modelData && this._modelData.hasRealView
              ? this._modelData.view.createOverviewRuler(e)
              : null;
          }
          getContainerDomNode() {
            return this._domElement;
          }
          getDomNode() {
            return this._modelData && this._modelData.hasRealView
              ? this._modelData.view.domNode.domNode
              : null;
          }
          delegateVerticalScrollbarMouseDown(e) {
            this._modelData &&
              this._modelData.hasRealView &&
              this._modelData.view.delegateVerticalScrollbarMouseDown(e);
          }
          layout(e) {
            this._configuration.observeReferenceElement(e), this.render();
          }
          focus() {
            this._modelData &&
              this._modelData.hasRealView &&
              this._modelData.view.focus();
          }
          hasTextFocus() {
            return (
              !(!this._modelData || !this._modelData.hasRealView) &&
              this._modelData.view.isFocused()
            );
          }
          hasWidgetFocus() {
            return this._focusTracker && this._focusTracker.hasFocus();
          }
          addContentWidget(e) {
            const t = { widget: e, position: e.getPosition() };
            this._contentWidgets.hasOwnProperty(e.getId()) &&
              console.warn('Overwriting a content widget with the same id.'),
              (this._contentWidgets[e.getId()] = t),
              this._modelData &&
                this._modelData.hasRealView &&
                this._modelData.view.addContentWidget(t);
          }
          layoutContentWidget(e) {
            const t = e.getId();
            if (this._contentWidgets.hasOwnProperty(t)) {
              const i = this._contentWidgets[t];
              (i.position = e.getPosition()),
                this._modelData &&
                  this._modelData.hasRealView &&
                  this._modelData.view.layoutContentWidget(i);
            }
          }
          removeContentWidget(e) {
            const t = e.getId();
            if (this._contentWidgets.hasOwnProperty(t)) {
              const e = this._contentWidgets[t];
              delete this._contentWidgets[t],
                this._modelData &&
                  this._modelData.hasRealView &&
                  this._modelData.view.removeContentWidget(e);
            }
          }
          addOverlayWidget(e) {
            const t = { widget: e, position: e.getPosition() };
            this._overlayWidgets.hasOwnProperty(e.getId()) &&
              console.warn('Overwriting an overlay widget with the same id.'),
              (this._overlayWidgets[e.getId()] = t),
              this._modelData &&
                this._modelData.hasRealView &&
                this._modelData.view.addOverlayWidget(t);
          }
          layoutOverlayWidget(e) {
            const t = e.getId();
            if (this._overlayWidgets.hasOwnProperty(t)) {
              const i = this._overlayWidgets[t];
              (i.position = e.getPosition()),
                this._modelData &&
                  this._modelData.hasRealView &&
                  this._modelData.view.layoutOverlayWidget(i);
            }
          }
          removeOverlayWidget(e) {
            const t = e.getId();
            if (this._overlayWidgets.hasOwnProperty(t)) {
              const e = this._overlayWidgets[t];
              delete this._overlayWidgets[t],
                this._modelData &&
                  this._modelData.hasRealView &&
                  this._modelData.view.removeOverlayWidget(e);
            }
          }
          changeViewZones(e) {
            this._modelData &&
              this._modelData.hasRealView &&
              this._modelData.view.change(e);
          }
          getTargetAtClientPoint(e, t) {
            return this._modelData && this._modelData.hasRealView
              ? this._modelData.view.getTargetAtClientPoint(e, t)
              : null;
          }
          getScrolledVisiblePosition(t) {
            if (!this._modelData || !this._modelData.hasRealView) return null;
            const i = this._modelData.model.validatePosition(t),
              n = this._configuration.options,
              r = n.get(117);
            return {
              top:
                e._getVerticalOffsetForPosition(
                  this._modelData,
                  i.lineNumber,
                  i.column
                ) - this.getScrollTop(),
              left:
                this._modelData.view.getOffsetForColumn(
                  i.lineNumber,
                  i.column
                ) +
                r.glyphMarginWidth +
                r.lineNumbersWidth +
                r.decorationsWidth -
                this.getScrollLeft(),
              height: n.get(51),
            };
          }
          getOffsetForColumn(e, t) {
            return this._modelData && this._modelData.hasRealView
              ? this._modelData.view.getOffsetForColumn(e, t)
              : -1;
          }
          render(e = !1) {
            this._modelData &&
              this._modelData.hasRealView &&
              this._modelData.view.render(!0, e);
          }
          setAriaOptions(e) {
            this._modelData &&
              this._modelData.hasRealView &&
              this._modelData.view.setAriaOptions(e);
          }
          applyFontInfo(e) {
            c.V.applyFontInfoSlow(e, this._configuration.options.get(36));
          }
          _attachModel(e) {
            if (!e) return void (this._modelData = null);
            const t = [];
            this._domElement.setAttribute(
              'data-mode-id',
              e.getLanguageIdentifier().language
            ),
              this._configuration.setIsDominatedByLongLines(
                e.isDominatedByLongLines()
              ),
              this._configuration.setMaxLineNumber(e.getLineCount()),
              e.onBeforeAttached();
            const i = new hn(
              this._id,
              this._configuration,
              e,
              En.create(),
              Sn.create(this._configuration.options),
              (e) => r.jL(e)
            );
            t.push(
              e.onDidChangeDecorations((e) =>
                this._onDidChangeModelDecorations.fire(e)
              )
            ),
              t.push(
                e.onDidChangeLanguage((t) => {
                  this._domElement.setAttribute(
                    'data-mode-id',
                    e.getLanguageIdentifier().language
                  ),
                    this._onDidChangeModelLanguage.fire(t);
                })
              ),
              t.push(
                e.onDidChangeLanguageConfiguration((e) =>
                  this._onDidChangeModelLanguageConfiguration.fire(e)
                )
              ),
              t.push(
                e.onDidChangeContent((e) =>
                  this._onDidChangeModelContent.fire(e)
                )
              ),
              t.push(
                e.onDidChangeOptions((e) =>
                  this._onDidChangeModelOptions.fire(e)
                )
              ),
              t.push(e.onWillDispose(() => this.setModel(null))),
              t.push(
                i.onEvent((e) => {
                  switch (e.kind) {
                    case 0:
                      this._onDidContentSizeChange.fire(e);
                      break;
                    case 1:
                      this._editorTextFocus.setValue(e.hasFocus);
                      break;
                    case 2:
                      this._onDidScrollChange.fire(e);
                      break;
                    case 3:
                      this._onDidChangeViewZones.fire();
                      break;
                    case 4:
                      this._onDidAttemptReadOnlyEdit.fire();
                      break;
                    case 5: {
                      e.reachedMaxCursorCount &&
                        this._notificationService.warn(
                          n.N(
                            'cursors.maximum',
                            'The number of cursors has been limited to {0}.',
                            Ai.MAX_CURSOR_COUNT
                          )
                        );
                      const t = [];
                      for (let i = 0, n = e.selections.length; i < n; i++)
                        t[i] = e.selections[i].getPosition();
                      const i = {
                        position: t[0],
                        secondaryPositions: t.slice(1),
                        reason: e.reason,
                        source: e.source,
                      };
                      this._onDidChangeCursorPosition.fire(i);
                      const r = {
                        selection: e.selections[0],
                        secondarySelections: e.selections.slice(1),
                        modelVersionId: e.modelVersionId,
                        oldSelections: e.oldSelections,
                        oldModelVersionId: e.oldModelVersionId,
                        source: e.source,
                        reason: e.reason,
                      };
                      this._onDidChangeCursorSelection.fire(r);
                      break;
                    }
                  }
                })
              );
            const [s, o] = this._createView(i);
            if (o) {
              this._domElement.appendChild(s.domNode.domNode);
              let t = Object.keys(this._contentWidgets);
              for (let e = 0, i = t.length; e < i; e++) {
                const i = t[e];
                s.addContentWidget(this._contentWidgets[i]);
              }
              t = Object.keys(this._overlayWidgets);
              for (let e = 0, i = t.length; e < i; e++) {
                const i = t[e];
                s.addOverlayWidget(this._overlayWidgets[i]);
              }
              s.render(!1, !0),
                s.domNode.domNode.setAttribute('data-uri', e.uri.toString());
            }
            this._modelData = new Bn(e, i, s, o, t);
          }
          _createView(e) {
            let t;
            t = this.isSimpleWidget
              ? {
                  paste: (e, t, i, n) => {
                    this._paste('keyboard', e, t, i, n);
                  },
                  type: (e) => {
                    this._type('keyboard', e);
                  },
                  replacePreviousChar: (e, t) => {
                    this._replacePreviousChar('keyboard', e, t);
                  },
                  startComposition: () => {
                    this._startComposition();
                  },
                  endComposition: () => {
                    this._endComposition('keyboard');
                  },
                  cut: () => {
                    this._cut('keyboard');
                  },
                }
              : {
                  paste: (e, t, i, n) => {
                    const r = {
                      text: e,
                      pasteOnNewLine: t,
                      multicursorText: i,
                      mode: n,
                    };
                    this._commandService.executeCommand('paste', r);
                  },
                  type: (e) => {
                    const t = { text: e };
                    this._commandService.executeCommand('type', t);
                  },
                  replacePreviousChar: (e, t) => {
                    const i = { text: e, replaceCharCnt: t };
                    this._commandService.executeCommand(
                      'replacePreviousChar',
                      i
                    );
                  },
                  startComposition: () => {
                    this._commandService.executeCommand('compositionStart', {});
                  },
                  endComposition: () => {
                    this._commandService.executeCommand('compositionEnd', {});
                  },
                  cut: () => {
                    this._commandService.executeCommand('cut', {});
                  },
                };
            const i = new Re(e.coordinatesConverter);
            return (
              (i.onKeyDown = (e) => this._onKeyDown.fire(e)),
              (i.onKeyUp = (e) => this._onKeyUp.fire(e)),
              (i.onContextMenu = (e) => this._onContextMenu.fire(e)),
              (i.onMouseMove = (e) => this._onMouseMove.fire(e)),
              (i.onMouseLeave = (e) => this._onMouseLeave.fire(e)),
              (i.onMouseDown = (e) => this._onMouseDown.fire(e)),
              (i.onMouseUp = (e) => this._onMouseUp.fire(e)),
              (i.onMouseDrag = (e) => this._onMouseDrag.fire(e)),
              (i.onMouseDrop = (e) => this._onMouseDrop.fire(e)),
              (i.onMouseWheel = (e) => this._onMouseWheel.fire(e)),
              [
                new ni(
                  t,
                  this._configuration,
                  this._themeService,
                  e,
                  i,
                  this._overflowWidgetsDomNode
                ),
                !0,
              ]
            );
          }
          _postDetachModelCleanup(e) {
            e && e.removeAllDecorationsWithOwnerId(this._id);
          }
          _detachModel() {
            if (!this._modelData) return null;
            const e = this._modelData.model,
              t = this._modelData.hasRealView
                ? this._modelData.view.domNode.domNode
                : null;
            return (
              this._modelData.dispose(),
              (this._modelData = null),
              this._domElement.removeAttribute('data-mode-id'),
              t &&
                this._domElement.contains(t) &&
                this._domElement.removeChild(t),
              e
            );
          }
          _removeDecorationType(e) {
            this._codeEditorService.removeDecorationType(e);
          }
          hasModel() {
            return null !== this._modelData;
          }
        };
        Wn = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            Pn(3, fn.TG),
            Pn(4, h.$),
            Pn(5, un.H),
            Pn(6, gn.i6),
            Pn(7, Y.XE),
            Pn(8, mn.lT),
            Pn(9, _n.F),
          ],
          Wn
        );
        class Yn extends a.JT {
          constructor() {
            super(),
              (this._onDidChangeToTrue = this._register(new o.Q5())),
              (this.onDidChangeToTrue = this._onDidChangeToTrue.event),
              (this._onDidChangeToFalse = this._register(new o.Q5())),
              (this.onDidChangeToFalse = this._onDidChangeToFalse.event),
              (this._value = 0);
          }
          setValue(e) {
            const t = e ? 2 : 1;
            this._value !== t &&
              ((this._value = t),
              2 === this._value
                ? this._onDidChangeToTrue.fire()
                : 1 === this._value && this._onDidChangeToFalse.fire());
          }
        }
        class Hn extends a.JT {
          constructor(e, t) {
            super(),
              (this._editor = e),
              t.createKey('editorId', e.getId()),
              (this._editorSimpleInput = Fi.u.editorSimpleInput.bindTo(t)),
              (this._editorFocus = Fi.u.focus.bindTo(t)),
              (this._textInputFocus = Fi.u.textInputFocus.bindTo(t)),
              (this._editorTextFocus = Fi.u.editorTextFocus.bindTo(t)),
              (this._editorTabMovesFocus = Fi.u.tabMovesFocus.bindTo(t)),
              (this._editorReadonly = Fi.u.readOnly.bindTo(t)),
              (this._editorColumnSelection = Fi.u.columnSelection.bindTo(t)),
              (this._hasMultipleSelections = Fi.u.hasMultipleSelections.bindTo(
                t
              )),
              (this._hasNonEmptySelection = Fi.u.hasNonEmptySelection.bindTo(
                t
              )),
              (this._canUndo = Fi.u.canUndo.bindTo(t)),
              (this._canRedo = Fi.u.canRedo.bindTo(t)),
              this._register(
                this._editor.onDidChangeConfiguration(() =>
                  this._updateFromConfig()
                )
              ),
              this._register(
                this._editor.onDidChangeCursorSelection(() =>
                  this._updateFromSelection()
                )
              ),
              this._register(
                this._editor.onDidFocusEditorWidget(() =>
                  this._updateFromFocus()
                )
              ),
              this._register(
                this._editor.onDidBlurEditorWidget(() =>
                  this._updateFromFocus()
                )
              ),
              this._register(
                this._editor.onDidFocusEditorText(() => this._updateFromFocus())
              ),
              this._register(
                this._editor.onDidBlurEditorText(() => this._updateFromFocus())
              ),
              this._register(
                this._editor.onDidChangeModel(() => this._updateFromModel())
              ),
              this._register(
                this._editor.onDidChangeConfiguration(() =>
                  this._updateFromModel()
                )
              ),
              this._updateFromConfig(),
              this._updateFromSelection(),
              this._updateFromFocus(),
              this._updateFromModel(),
              this._editorSimpleInput.set(this._editor.isSimpleWidget);
          }
          _updateFromConfig() {
            const e = this._editor.getOptions();
            this._editorTabMovesFocus.set(e.get(116)),
              this._editorReadonly.set(e.get(72)),
              this._editorColumnSelection.set(e.get(13));
          }
          _updateFromSelection() {
            const e = this._editor.getSelections();
            e
              ? (this._hasMultipleSelections.set(e.length > 1),
                this._hasNonEmptySelection.set(e.some((e) => !e.isEmpty())))
              : (this._hasMultipleSelections.reset(),
                this._hasNonEmptySelection.reset());
          }
          _updateFromFocus() {
            this._editorFocus.set(
              this._editor.hasWidgetFocus() && !this._editor.isSimpleWidget
            ),
              this._editorTextFocus.set(
                this._editor.hasTextFocus() && !this._editor.isSimpleWidget
              ),
              this._textInputFocus.set(this._editor.hasTextFocus());
          }
          _updateFromModel() {
            const e = this._editor.getModel();
            this._canUndo.set(Boolean(e && e.canUndo())),
              this._canRedo.set(Boolean(e && e.canRedo()));
          }
        }
        class jn extends a.JT {
          constructor(e, t) {
            super(),
              (this._editor = e),
              (this._contextKeyService = t),
              (this._langId = Fi.u.languageId.bindTo(t)),
              (this._hasCompletionItemProvider = Fi.u.hasCompletionItemProvider.bindTo(
                t
              )),
              (this._hasCodeActionsProvider = Fi.u.hasCodeActionsProvider.bindTo(
                t
              )),
              (this._hasCodeLensProvider = Fi.u.hasCodeLensProvider.bindTo(t)),
              (this._hasDefinitionProvider = Fi.u.hasDefinitionProvider.bindTo(
                t
              )),
              (this._hasDeclarationProvider = Fi.u.hasDeclarationProvider.bindTo(
                t
              )),
              (this._hasImplementationProvider = Fi.u.hasImplementationProvider.bindTo(
                t
              )),
              (this._hasTypeDefinitionProvider = Fi.u.hasTypeDefinitionProvider.bindTo(
                t
              )),
              (this._hasHoverProvider = Fi.u.hasHoverProvider.bindTo(t)),
              (this._hasDocumentHighlightProvider = Fi.u.hasDocumentHighlightProvider.bindTo(
                t
              )),
              (this._hasDocumentSymbolProvider = Fi.u.hasDocumentSymbolProvider.bindTo(
                t
              )),
              (this._hasReferenceProvider = Fi.u.hasReferenceProvider.bindTo(
                t
              )),
              (this._hasRenameProvider = Fi.u.hasRenameProvider.bindTo(t)),
              (this._hasSignatureHelpProvider = Fi.u.hasSignatureHelpProvider.bindTo(
                t
              )),
              (this._hasDocumentFormattingProvider = Fi.u.hasDocumentFormattingProvider.bindTo(
                t
              )),
              (this._hasDocumentSelectionFormattingProvider = Fi.u.hasDocumentSelectionFormattingProvider.bindTo(
                t
              )),
              (this._hasMultipleDocumentFormattingProvider = Fi.u.hasMultipleDocumentFormattingProvider.bindTo(
                t
              )),
              (this._hasMultipleDocumentSelectionFormattingProvider = Fi.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(
                t
              )),
              (this._isInWalkThrough = Fi.u.isInWalkThroughSnippet.bindTo(t));
            const i = () => this._update();
            this._register(e.onDidChangeModel(i)),
              this._register(e.onDidChangeModelLanguage(i)),
              this._register(gt.KZ.onDidChange(i)),
              this._register(gt.H9.onDidChange(i)),
              this._register(gt.He.onDidChange(i)),
              this._register(gt.Ct.onDidChange(i)),
              this._register(gt.RN.onDidChange(i)),
              this._register(gt.vI.onDidChange(i)),
              this._register(gt.tA.onDidChange(i)),
              this._register(gt.xp.onDidChange(i)),
              this._register(gt.vH.onDidChange(i)),
              this._register(gt.vJ.onDidChange(i)),
              this._register(gt.FL.onDidChange(i)),
              this._register(gt.G0.onDidChange(i)),
              this._register(gt.Az.onDidChange(i)),
              this._register(gt.vN.onDidChange(i)),
              this._register(gt.nD.onDidChange(i)),
              i();
          }
          dispose() {
            super.dispose();
          }
          reset() {
            this._contextKeyService.bufferChangeEvents(() => {
              this._langId.reset(),
                this._hasCompletionItemProvider.reset(),
                this._hasCodeActionsProvider.reset(),
                this._hasCodeLensProvider.reset(),
                this._hasDefinitionProvider.reset(),
                this._hasDeclarationProvider.reset(),
                this._hasImplementationProvider.reset(),
                this._hasTypeDefinitionProvider.reset(),
                this._hasHoverProvider.reset(),
                this._hasDocumentHighlightProvider.reset(),
                this._hasDocumentSymbolProvider.reset(),
                this._hasReferenceProvider.reset(),
                this._hasRenameProvider.reset(),
                this._hasDocumentFormattingProvider.reset(),
                this._hasDocumentSelectionFormattingProvider.reset(),
                this._hasSignatureHelpProvider.reset(),
                this._isInWalkThrough.reset();
            });
          }
          _update() {
            const e = this._editor.getModel();
            e
              ? this._contextKeyService.bufferChangeEvents(() => {
                  this._langId.set(e.getLanguageIdentifier().language),
                    this._hasCompletionItemProvider.set(gt.KZ.has(e)),
                    this._hasCodeActionsProvider.set(gt.H9.has(e)),
                    this._hasCodeLensProvider.set(gt.He.has(e)),
                    this._hasDefinitionProvider.set(gt.Ct.has(e)),
                    this._hasDeclarationProvider.set(gt.RN.has(e)),
                    this._hasImplementationProvider.set(gt.vI.has(e)),
                    this._hasTypeDefinitionProvider.set(gt.tA.has(e)),
                    this._hasHoverProvider.set(gt.xp.has(e)),
                    this._hasDocumentHighlightProvider.set(gt.vH.has(e)),
                    this._hasDocumentSymbolProvider.set(gt.vJ.has(e)),
                    this._hasReferenceProvider.set(gt.FL.has(e)),
                    this._hasRenameProvider.set(gt.G0.has(e)),
                    this._hasSignatureHelpProvider.set(gt.nD.has(e)),
                    this._hasDocumentFormattingProvider.set(
                      gt.Az.has(e) || gt.vN.has(e)
                    ),
                    this._hasDocumentSelectionFormattingProvider.set(
                      gt.vN.has(e)
                    ),
                    this._hasMultipleDocumentFormattingProvider.set(
                      gt.Az.all(e).length + gt.vN.all(e).length > 1
                    ),
                    this._hasMultipleDocumentSelectionFormattingProvider.set(
                      gt.vN.all(e).length > 1
                    ),
                    this._isInWalkThrough.set(
                      e.uri.scheme === l.l.walkThroughSnippet
                    );
                })
              : this.reset();
          }
        }
        class Vn extends a.JT {
          constructor(e) {
            super(),
              (this._onChange = this._register(new o.Q5())),
              (this.onChange = this._onChange.event),
              (this._hasFocus = !1),
              (this._domFocusTracker = this._register(r.go(e))),
              this._register(
                this._domFocusTracker.onDidFocus(() => {
                  (this._hasFocus = !0), this._onChange.fire(void 0);
                })
              ),
              this._register(
                this._domFocusTracker.onDidBlur(() => {
                  (this._hasFocus = !1), this._onChange.fire(void 0);
                })
              );
          }
          hasFocus() {
            return this._hasFocus;
          }
        }
        const zn = encodeURIComponent(
            "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"
          ),
          Un = encodeURIComponent(
            "'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>"
          );
        function $n(e) {
          return zn + encodeURIComponent(e.toString()) + Un;
        }
        const Kn = encodeURIComponent(
            '<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'
          ),
          qn = encodeURIComponent(
            '"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>'
          );
        (0, Y.Ic)((e, t) => {
          const i = e.getColor(mt.b6);
          i &&
            t.addRule(
              `.monaco-editor .squiggly-error { border-bottom: 4px double ${i}; }`
            );
          const n = e.getColor(mt.lX);
          n &&
            t.addRule(
              `.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${$n(
                n
              )}") repeat-x bottom left; }`
            );
          const r = e.getColor(mt.pW);
          r &&
            t.addRule(
              `.monaco-editor .squiggly-warning { border-bottom: 4px double ${r}; }`
            );
          const s = e.getColor(mt.uo);
          s &&
            t.addRule(
              `.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${$n(
                s
              )}") repeat-x bottom left; }`
            );
          const o = e.getColor(mt.T8);
          o &&
            t.addRule(
              `.monaco-editor .squiggly-info { border-bottom: 4px double ${o}; }`
            );
          const a = e.getColor(mt.c6);
          a &&
            t.addRule(
              `.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${$n(
                a
              )}") repeat-x bottom left; }`
            );
          const l = e.getColor(mt.fE);
          l &&
            t.addRule(
              `.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${l}; }`
            );
          const c = e.getColor(mt.Du);
          c &&
            t.addRule(
              `.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${(function (
                e
              ) {
                return Kn + encodeURIComponent(e.toString()) + qn;
              })(c)}") no-repeat bottom left; }`
            );
          const d = e.getColor(xe.zu);
          d &&
            t.addRule(
              `.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${d.rgba.a}; }`
            );
          const h = e.getColor(xe.kp);
          h &&
            t.addRule(
              `.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${h}; }`
            );
          const u = e.getColor(mt.NO) || 'inherit';
          t.addRule(
            `.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${u}}`
          );
        });
      },
      68143: (e, t, i) => {
        'use strict';
        i.d(t, { pL: () => ae });
        var n = i(63580),
          r = i(65321),
          s = i(38626),
          o = i(73098),
          a = i(15393),
          l = i(4669),
          c = i(5976),
          d = i(36248),
          h = i(89052),
          u = i(39925),
          g = i(11640),
          f = i(95190),
          p = i(90317),
          m = i(9802),
          _ = i(74741),
          b = i(16830),
          v = i(64141),
          y = i(78411),
          w = i(50187),
          C = i(27869),
          S = i(77736),
          k = i(13824),
          x = i(38819),
          L = i(73910),
          M = i(97781),
          D = i(73046);
        class N {
          constructor(e, t, i, n) {
            (this.originalLineStart = e),
              (this.originalLineEnd = t),
              (this.modifiedLineStart = i),
              (this.modifiedLineEnd = n);
          }
          getType() {
            return 0 === this.originalLineStart
              ? 1
              : 0 === this.modifiedLineStart
              ? 2
              : 0;
          }
        }
        class E {
          constructor(e) {
            this.entries = e;
          }
        }
        const T = (0, D.q5)('diff-review-insert', D.lA.add),
          I = (0, D.q5)('diff-review-remove', D.lA.remove),
          O = (0, D.q5)('diff-review-close', D.lA.close);
        class A extends c.JT {
          constructor(e) {
            super(),
              (this._width = 0),
              (this._diffEditor = e),
              (this._isVisible = !1),
              (this.shadow = (0, s.X)(document.createElement('div'))),
              this.shadow.setClassName('diff-review-shadow'),
              (this.actionBarContainer = (0, s.X)(
                document.createElement('div')
              )),
              this.actionBarContainer.setClassName('diff-review-actions'),
              (this._actionBar = this._register(
                new p.o(this.actionBarContainer.domNode)
              )),
              this._actionBar.push(
                new _.aU(
                  'diffreview.close',
                  n.N('label.close', 'Close'),
                  'close-diff-review ' + O.classNames,
                  !0,
                  () => (this.hide(), Promise.resolve(null))
                ),
                { label: !1, icon: !0 }
              ),
              (this.domNode = (0, s.X)(document.createElement('div'))),
              this.domNode.setClassName('diff-review monaco-editor-background'),
              (this._content = (0, s.X)(document.createElement('div'))),
              this._content.setClassName('diff-review-content'),
              this._content.setAttribute('role', 'code'),
              (this.scrollbar = this._register(
                new m.s$(this._content.domNode, {})
              )),
              this.domNode.domNode.appendChild(this.scrollbar.getDomNode()),
              this._register(
                e.onDidUpdateDiff(() => {
                  this._isVisible &&
                    ((this._diffs = this._compute()), this._render());
                })
              ),
              this._register(
                e.getModifiedEditor().onDidChangeCursorPosition(() => {
                  this._isVisible && this._render();
                })
              ),
              this._register(
                r.mu(this.domNode.domNode, 'click', (e) => {
                  e.preventDefault();
                  let t = r.Fx(e.target, 'diff-review-row');
                  t && this._goToRow(t);
                })
              ),
              this._register(
                r.mu(this.domNode.domNode, 'keydown', (e) => {
                  (e.equals(18) || e.equals(2066) || e.equals(530)) &&
                    (e.preventDefault(), this._goToRow(this._getNextRow())),
                    (e.equals(16) || e.equals(2064) || e.equals(528)) &&
                      (e.preventDefault(), this._goToRow(this._getPrevRow())),
                    (e.equals(9) ||
                      e.equals(2057) ||
                      e.equals(521) ||
                      e.equals(1033)) &&
                      (e.preventDefault(), this.hide()),
                    (e.equals(10) || e.equals(3)) &&
                      (e.preventDefault(), this.accept());
                })
              ),
              (this._diffs = []),
              (this._currentDiff = null);
          }
          prev() {
            let e = 0;
            if (
              (this._isVisible || (this._diffs = this._compute()),
              this._isVisible)
            ) {
              let t = -1;
              for (let e = 0, i = this._diffs.length; e < i; e++)
                if (this._diffs[e] === this._currentDiff) {
                  t = e;
                  break;
                }
              e = this._diffs.length + t - 1;
            } else e = this._findDiffIndex(this._diffEditor.getPosition());
            if (0 === this._diffs.length) return;
            e %= this._diffs.length;
            const t = this._diffs[e].entries;
            this._diffEditor.setPosition(new w.L(t[0].modifiedLineStart, 1)),
              this._diffEditor.setSelection({
                startColumn: 1,
                startLineNumber: t[0].modifiedLineStart,
                endColumn: 1073741824,
                endLineNumber: t[t.length - 1].modifiedLineEnd,
              }),
              (this._isVisible = !0),
              this._diffEditor.doLayout(),
              this._render(),
              this._goToRow(this._getNextRow());
          }
          next() {
            let e = 0;
            if (
              (this._isVisible || (this._diffs = this._compute()),
              this._isVisible)
            ) {
              let t = -1;
              for (let e = 0, i = this._diffs.length; e < i; e++)
                if (this._diffs[e] === this._currentDiff) {
                  t = e;
                  break;
                }
              e = t + 1;
            } else e = this._findDiffIndex(this._diffEditor.getPosition());
            if (0 === this._diffs.length) return;
            e %= this._diffs.length;
            const t = this._diffs[e].entries;
            this._diffEditor.setPosition(new w.L(t[0].modifiedLineStart, 1)),
              this._diffEditor.setSelection({
                startColumn: 1,
                startLineNumber: t[0].modifiedLineStart,
                endColumn: 1073741824,
                endLineNumber: t[t.length - 1].modifiedLineEnd,
              }),
              (this._isVisible = !0),
              this._diffEditor.doLayout(),
              this._render(),
              this._goToRow(this._getNextRow());
          }
          accept() {
            let e = -1,
              t = this._getCurrentFocusedRow();
            if (t) {
              let i = parseInt(t.getAttribute('data-line'), 10);
              isNaN(i) || (e = i);
            }
            this.hide(),
              -1 !== e &&
                (this._diffEditor.setPosition(new w.L(e, 1)),
                this._diffEditor.revealPosition(new w.L(e, 1), 1));
          }
          hide() {
            (this._isVisible = !1),
              this._diffEditor.updateOptions({ readOnly: !1 }),
              this._diffEditor.focus(),
              this._diffEditor.doLayout(),
              this._render();
          }
          _getPrevRow() {
            let e = this._getCurrentFocusedRow();
            return e
              ? e.previousElementSibling
                ? e.previousElementSibling
                : e
              : this._getFirstRow();
          }
          _getNextRow() {
            let e = this._getCurrentFocusedRow();
            return e
              ? e.nextElementSibling
                ? e.nextElementSibling
                : e
              : this._getFirstRow();
          }
          _getFirstRow() {
            return this.domNode.domNode.querySelector('.diff-review-row');
          }
          _getCurrentFocusedRow() {
            let e = document.activeElement;
            return e && /diff-review-row/.test(e.className) ? e : null;
          }
          _goToRow(e) {
            let t = this._getCurrentFocusedRow();
            (e.tabIndex = 0),
              e.focus(),
              t && t !== e && (t.tabIndex = -1),
              this.scrollbar.scanDomNode();
          }
          isVisible() {
            return this._isVisible;
          }
          layout(e, t, i) {
            (this._width = t),
              this.shadow.setTop(e - 6),
              this.shadow.setWidth(t),
              this.shadow.setHeight(this._isVisible ? 6 : 0),
              this.domNode.setTop(e),
              this.domNode.setWidth(t),
              this.domNode.setHeight(i),
              this._content.setHeight(i),
              this._content.setWidth(t),
              this._isVisible
                ? (this.actionBarContainer.setAttribute('aria-hidden', 'false'),
                  this.actionBarContainer.setDisplay('block'))
                : (this.actionBarContainer.setAttribute('aria-hidden', 'true'),
                  this.actionBarContainer.setDisplay('none'));
          }
          _compute() {
            const e = this._diffEditor.getLineChanges();
            if (!e || 0 === e.length) return [];
            const t = this._diffEditor.getOriginalEditor().getModel(),
              i = this._diffEditor.getModifiedEditor().getModel();
            return t && i
              ? A._mergeAdjacent(e, t.getLineCount(), i.getLineCount())
              : [];
          }
          static _mergeAdjacent(e, t, i) {
            if (!e || 0 === e.length) return [];
            let n = [],
              r = 0;
            for (let s = 0, o = e.length; s < o; s++) {
              const a = e[s],
                l = a.originalStartLineNumber,
                c = a.originalEndLineNumber,
                d = a.modifiedStartLineNumber,
                h = a.modifiedEndLineNumber;
              let u = [],
                g = 0;
              {
                const t = 0 === c ? l : l - 1,
                  i = 0 === h ? d : d - 1;
                let n = 1,
                  r = 1;
                if (s > 0) {
                  const t = e[s - 1];
                  (n =
                    0 === t.originalEndLineNumber
                      ? t.originalStartLineNumber + 1
                      : t.originalEndLineNumber + 1),
                    (r =
                      0 === t.modifiedEndLineNumber
                        ? t.modifiedStartLineNumber + 1
                        : t.modifiedEndLineNumber + 1);
                }
                let o = t - 3 + 1,
                  a = i - 3 + 1;
                if (o < n) {
                  const e = n - o;
                  (o += e), (a += e);
                }
                if (a < r) {
                  const e = r - a;
                  (o += e), (a += e);
                }
                u[g++] = new N(o, t, a, i);
              }
              0 !== c && (u[g++] = new N(l, c, 0, 0)),
                0 !== h && (u[g++] = new N(0, 0, d, h));
              {
                const n = 0 === c ? l + 1 : c + 1,
                  r = 0 === h ? d + 1 : h + 1;
                let a = t,
                  f = i;
                if (s + 1 < o) {
                  const t = e[s + 1];
                  (a =
                    0 === t.originalEndLineNumber
                      ? t.originalStartLineNumber
                      : t.originalStartLineNumber - 1),
                    (f =
                      0 === t.modifiedEndLineNumber
                        ? t.modifiedStartLineNumber
                        : t.modifiedStartLineNumber - 1);
                }
                let p = n + 3 - 1,
                  m = r + 3 - 1;
                if (p > a) {
                  const e = a - p;
                  (p += e), (m += e);
                }
                if (m > f) {
                  const e = f - m;
                  (p += e), (m += e);
                }
                u[g++] = new N(n, p, r, m);
              }
              n[r++] = new E(u);
            }
            let s = n[0].entries,
              o = [],
              a = 0;
            for (let e = 1, t = n.length; e < t; e++) {
              const t = n[e].entries,
                i = s[s.length - 1],
                r = t[0];
              0 === i.getType() &&
              0 === r.getType() &&
              r.originalLineStart <= i.originalLineEnd
                ? ((s[s.length - 1] = new N(
                    i.originalLineStart,
                    r.originalLineEnd,
                    i.modifiedLineStart,
                    r.modifiedLineEnd
                  )),
                  (s = s.concat(t.slice(1))))
                : ((o[a++] = new E(s)), (s = t));
            }
            return (o[a++] = new E(s)), o;
          }
          _findDiffIndex(e) {
            const t = e.lineNumber;
            for (let e = 0, i = this._diffs.length; e < i; e++) {
              const i = this._diffs[e].entries;
              if (t <= i[i.length - 1].modifiedLineEnd) return e;
            }
            return 0;
          }
          _render() {
            const e = this._diffEditor.getOriginalEditor().getOptions(),
              t = this._diffEditor.getModifiedEditor().getOptions(),
              i = this._diffEditor.getOriginalEditor().getModel(),
              s = this._diffEditor.getModifiedEditor().getModel(),
              o = i.getOptions(),
              a = s.getOptions();
            if (!this._isVisible || !i || !s)
              return (
                r.PO(this._content.domNode),
                (this._currentDiff = null),
                void this.scrollbar.scanDomNode()
              );
            this._diffEditor.updateOptions({ readOnly: !0 });
            const l = this._findDiffIndex(this._diffEditor.getPosition());
            if (this._diffs[l] === this._currentDiff) return;
            this._currentDiff = this._diffs[l];
            const c = this._diffs[l].entries;
            let d = document.createElement('div');
            (d.className = 'diff-review-table'),
              d.setAttribute('role', 'list'),
              d.setAttribute(
                'aria-label',
                'Difference review. Use "Stage | Unstage | Revert Selected Ranges" commands'
              ),
              h.V.applyFontInfoSlow(d, t.get(36));
            let u = 0,
              g = 0,
              f = 0,
              p = 0;
            for (let e = 0, t = c.length; e < t; e++) {
              const t = c[e],
                i = t.originalLineStart,
                n = t.originalLineEnd,
                r = t.modifiedLineStart,
                s = t.modifiedLineEnd;
              0 !== i && (0 === u || i < u) && (u = i),
                0 !== n && (0 === g || n > g) && (g = n),
                0 !== r && (0 === f || r < f) && (f = r),
                0 !== s && (0 === p || s > p) && (p = s);
            }
            let m = document.createElement('div');
            m.className = 'diff-review-row';
            let _ = document.createElement('div');
            _.className = 'diff-review-cell diff-review-summary';
            const b = g - u + 1,
              v = p - f + 1;
            _.appendChild(
              document.createTextNode(
                `${l + 1}/${this._diffs.length}: @@ -${u},${b} +${f},${v} @@`
              )
            ),
              m.setAttribute('data-line', String(f));
            const y = (e) =>
                0 === e
                  ? n.N('no_lines_changed', 'no lines changed')
                  : 1 === e
                  ? n.N('one_line_changed', '1 line changed')
                  : n.N('more_lines_changed', '{0} lines changed', e),
              w = y(b),
              C = y(v);
            m.setAttribute(
              'aria-label',
              n.N(
                {
                  key: 'header',
                  comment: [
                    'This is the ARIA label for a git diff header.',
                    'A git diff header looks like this: @@ -154,12 +159,39 @@.',
                    'That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.',
                    'Variables 0 and 1 refer to the diff index out of total number of diffs.',
                    'Variables 2 and 4 will be numbers (a line number).',
                    'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.',
                  ],
                },
                'Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}',
                l + 1,
                this._diffs.length,
                u,
                w,
                f,
                C
              )
            ),
              m.appendChild(_),
              m.setAttribute('role', 'listitem'),
              d.appendChild(m);
            const S = t.get(51);
            let k = f;
            for (let n = 0, r = c.length; n < r; n++) {
              const r = c[n];
              A._renderSection(d, r, k, S, this._width, e, i, o, t, s, a),
                0 !== r.modifiedLineStart && (k = r.modifiedLineEnd);
            }
            r.PO(this._content.domNode),
              this._content.domNode.appendChild(d),
              this.scrollbar.scanDomNode();
          }
          static _renderSection(e, t, i, r, s, o, a, l, c, d, h) {
            const u = t.getType();
            let g = 'diff-review-row',
              f = '',
              p = null;
            switch (u) {
              case 1:
                (g = 'diff-review-row line-insert'),
                  (f = ' char-insert'),
                  (p = T);
                break;
              case 2:
                (g = 'diff-review-row line-delete'),
                  (f = ' char-delete'),
                  (p = I);
            }
            const m = t.originalLineStart,
              _ = t.originalLineEnd,
              b = t.modifiedLineStart,
              v = t.modifiedLineEnd,
              y = Math.max(v - b, _ - m),
              w = o.get(117),
              C = w.glyphMarginWidth + w.lineNumbersWidth,
              S = c.get(117),
              k = 10 + S.glyphMarginWidth + S.lineNumbersWidth;
            for (let t = 0; t <= y; t++) {
              const _ = 0 === m ? 0 : m + t,
                v = 0 === b ? 0 : b + t,
                y = document.createElement('div');
              (y.style.minWidth = s + 'px'),
                (y.className = g),
                y.setAttribute('role', 'listitem'),
                0 !== v && (i = v),
                y.setAttribute('data-line', String(i));
              let w = document.createElement('div');
              (w.className = 'diff-review-cell'),
                (w.style.height = `${r}px`),
                y.appendChild(w);
              const S = document.createElement('span');
              (S.style.width = C + 'px'),
                (S.style.minWidth = C + 'px'),
                (S.className = 'diff-review-line-number' + f),
                0 !== _
                  ? S.appendChild(document.createTextNode(String(_)))
                  : (S.innerText = ' '),
                w.appendChild(S);
              const x = document.createElement('span');
              (x.style.width = k + 'px'),
                (x.style.minWidth = k + 'px'),
                (x.style.paddingRight = '10px'),
                (x.className = 'diff-review-line-number' + f),
                0 !== v
                  ? x.appendChild(document.createTextNode(String(v)))
                  : (x.innerText = ' '),
                w.appendChild(x);
              const L = document.createElement('span');
              if (((L.className = 'diff-review-spacer'), p)) {
                const e = document.createElement('span');
                (e.className = p.classNames),
                  (e.innerText = '  '),
                  L.appendChild(e);
              } else L.innerText = '  ';
              let M;
              w.appendChild(L),
                0 !== v
                  ? (w.insertAdjacentHTML(
                      'beforeend',
                      this._renderLine(d, c, h.tabSize, v)
                    ),
                    (M = d.getLineContent(v)))
                  : (w.insertAdjacentHTML(
                      'beforeend',
                      this._renderLine(a, o, l.tabSize, _)
                    ),
                    (M = a.getLineContent(_))),
                0 === M.length && (M = n.N('blankLine', 'blank'));
              let D = '';
              switch (u) {
                case 0:
                  D =
                    _ === v
                      ? n.N(
                          {
                            key: 'unchangedLine',
                            comment: [
                              'The placholders are contents of the line and should not be translated.',
                            ],
                          },
                          '{0} unchanged line {1}',
                          M,
                          _
                        )
                      : n.N(
                          'equalLine',
                          '{0} original line {1} modified line {2}',
                          M,
                          _,
                          v
                        );
                  break;
                case 1:
                  D = n.N('insertLine', '+ {0} modified line {1}', M, v);
                  break;
                case 2:
                  D = n.N('deleteLine', '- {0} original line {1}', M, _);
              }
              y.setAttribute('aria-label', D), e.appendChild(y);
            }
          }
          static _renderLine(e, t, i, n) {
            const r = e.getLineContent(n),
              s = t.get(36),
              o = new Uint32Array(2);
            (o[0] = r.length), (o[1] = 16793600);
            const a = new y.A(o, r),
              l = k.wA.isBasicASCII(r, e.mightContainNonBasicASCII()),
              c = k.wA.containsRTL(r, l, e.mightContainRTL());
            return (0, S.tF)(
              new S.IJ(
                s.isMonospace && !t.get(24),
                s.canUseHalfwidthRightwardsArrow,
                r,
                !1,
                l,
                c,
                0,
                a,
                [],
                i,
                0,
                s.spaceWidth,
                s.middotWidth,
                s.wsmiddotWidth,
                t.get(95),
                t.get(80),
                t.get(74),
                t.get(37) !== v.n0.OFF,
                null
              )
            ).html;
          }
        }
        (0, M.Ic)((e, t) => {
          const i = e.getColor(C.hw);
          i &&
            t.addRule(
              `.monaco-diff-editor .diff-review-line-number { color: ${i}; }`
            );
          const n = e.getColor(L._w);
          n &&
            t.addRule(
              `.monaco-diff-editor .diff-review-shadow { box-shadow: ${n} 0 -6px 6px -6px inset; }`
            );
        });
        class R extends b.R6 {
          constructor() {
            super({
              id: 'editor.action.diffReview.next',
              label: n.N(
                'editor.action.diffReview.next',
                'Go to Next Difference'
              ),
              alias: 'Go to Next Difference',
              precondition: x.Ao.has('isInDiffEditor'),
              kbOpts: { kbExpr: null, primary: 65, weight: 100 },
            });
          }
          run(e, t) {
            const i = F(e);
            i && i.diffReviewNext();
          }
        }
        class P extends b.R6 {
          constructor() {
            super({
              id: 'editor.action.diffReview.prev',
              label: n.N(
                'editor.action.diffReview.prev',
                'Go to Previous Difference'
              ),
              alias: 'Go to Previous Difference',
              precondition: x.Ao.has('isInDiffEditor'),
              kbOpts: { kbExpr: null, primary: 1089, weight: 100 },
            });
          }
          run(e, t) {
            const i = F(e);
            i && i.diffReviewPrev();
          }
        }
        function F(e) {
          const t = e.get(g.$),
            i = t.listDiffEditors(),
            n = t.getActiveCodeEditor();
          if (!n) return null;
          for (let e = 0, t = i.length; e < t; e++) {
            const t = i[e];
            if (
              t.getModifiedEditor().getId() === n.getId() ||
              t.getOriginalEditor().getId() === n.getId()
            )
              return t;
          }
          return null;
        }
        (0, b.Qr)(R), (0, b.Qr)(P);
        var B = i(24314),
          W = i(50072),
          Y = i(96518),
          H = i(3411),
          j = i(90469),
          V = i(92003),
          z = i(92550),
          U = i(72065),
          $ = i(60972),
          K = i(59422),
          q = i(5606),
          G = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        class Z extends c.JT {
          constructor(e, t, i, s, o, a) {
            super(),
              (this._viewZoneId = e),
              (this._marginDomNode = t),
              (this.editor = i),
              (this.diff = s),
              (this._contextMenuService = o),
              (this._clipboardService = a),
              (this._visibility = !1),
              (this._marginDomNode.style.zIndex = '10'),
              (this._diffActions = document.createElement('div')),
              (this._diffActions.className =
                D.lA.lightBulb.classNames + ' lightbulb-glyph'),
              (this._diffActions.style.position = 'absolute');
            const l = i.getOption(51),
              c = i.getModel().getEOL();
            (this._diffActions.style.right = '0px'),
              (this._diffActions.style.visibility = 'hidden'),
              (this._diffActions.style.height = `${l}px`),
              (this._diffActions.style.lineHeight = `${l}px`),
              this._marginDomNode.appendChild(this._diffActions);
            const d = [];
            d.push(
              new _.aU(
                'diff.clipboard.copyDeletedContent',
                s.originalEndLineNumber > s.modifiedStartLineNumber
                  ? n.N(
                      'diff.clipboard.copyDeletedLinesContent.label',
                      'Copy deleted lines'
                    )
                  : n.N(
                      'diff.clipboard.copyDeletedLinesContent.single.label',
                      'Copy deleted line'
                    ),
                void 0,
                !0,
                () =>
                  G(this, void 0, void 0, function* () {
                    yield this._clipboardService.writeText(
                      s.originalContent.join(c) + c
                    );
                  })
              )
            );
            let h,
              u = 0;
            s.originalEndLineNumber > s.modifiedStartLineNumber &&
              ((h = new _.aU(
                'diff.clipboard.copyDeletedLineContent',
                n.N(
                  'diff.clipboard.copyDeletedLineContent.label',
                  'Copy deleted line ({0})',
                  s.originalStartLineNumber
                ),
                void 0,
                !0,
                () =>
                  G(this, void 0, void 0, function* () {
                    yield this._clipboardService.writeText(
                      s.originalContent[u]
                    );
                  })
              )),
              d.push(h)),
              i.getOption(72) ||
                d.push(
                  new _.aU(
                    'diff.inline.revertChange',
                    n.N('diff.inline.revertChange.label', 'Revert this change'),
                    void 0,
                    !0,
                    () =>
                      G(this, void 0, void 0, function* () {
                        if (0 === s.modifiedEndLineNumber) {
                          const e = i
                            .getModel()
                            .getLineMaxColumn(s.modifiedStartLineNumber);
                          i.executeEdits('diffEditor', [
                            {
                              range: new B.e(
                                s.modifiedStartLineNumber,
                                e,
                                s.modifiedStartLineNumber,
                                e
                              ),
                              text: c + s.originalContent.join(c),
                            },
                          ]);
                        } else {
                          const e = i
                            .getModel()
                            .getLineMaxColumn(s.modifiedEndLineNumber);
                          i.executeEdits('diffEditor', [
                            {
                              range: new B.e(
                                s.modifiedStartLineNumber,
                                1,
                                s.modifiedEndLineNumber,
                                e
                              ),
                              text: s.originalContent.join(c),
                            },
                          ]);
                        }
                      })
                  )
                );
            const g = (e, t) => {
              this._contextMenuService.showContextMenu({
                getAnchor: () => ({ x: e, y: t }),
                getActions: () => (
                  h &&
                    (h.label = n.N(
                      'diff.clipboard.copyDeletedLineContent.label',
                      'Copy deleted line ({0})',
                      s.originalStartLineNumber + u
                    )),
                  d
                ),
                autoSelectFirstItem: !0,
              });
            };
            this._register(
              r.mu(this._diffActions, 'mousedown', (e) => {
                const { top: t, height: i } = r.i(this._diffActions);
                let n = Math.floor(l / 3);
                e.preventDefault(), g(e.posx, t + i + n);
              })
            ),
              this._register(
                i.onMouseMove((e) => {
                  (8 === e.target.type || 5 === e.target.type) &&
                  e.target.detail.viewZoneId === this._viewZoneId
                    ? ((this.visibility = !0),
                      (u = this._updateLightBulbPosition(
                        this._marginDomNode,
                        e.event.browserEvent.y,
                        l
                      )))
                    : (this.visibility = !1);
                })
              ),
              this._register(
                i.onMouseDown((e) => {
                  !e.event.rightButton ||
                    (8 !== e.target.type && 5 !== e.target.type) ||
                    (e.target.detail.viewZoneId === this._viewZoneId &&
                      (e.event.preventDefault(),
                      (u = this._updateLightBulbPosition(
                        this._marginDomNode,
                        e.event.browserEvent.y,
                        l
                      )),
                      g(e.event.posx, e.event.posy + l)));
                })
              );
          }
          get visibility() {
            return this._visibility;
          }
          set visibility(e) {
            this._visibility !== e &&
              ((this._visibility = e),
              (this._diffActions.style.visibility = e ? 'visible' : 'hidden'));
          }
          _updateLightBulbPosition(e, t, i) {
            const { top: n } = r.i(e),
              s = t - n,
              o = Math.floor(s / i),
              a = o * i;
            return (this._diffActions.style.top = `${a}px`), o;
          }
        }
        var J = i(84972),
          Q = i(17301),
          X = i(90535),
          ee = i(54534),
          te = i(96542),
          ie = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class ne {
          constructor(e, t) {
            (this._contextMenuService = e),
              (this._clipboardService = t),
              (this._zones = []),
              (this.inlineDiffMargins = []),
              (this._zonesMap = {}),
              (this._decorations = []);
          }
          getForeignViewZones(e) {
            return e.filter((e) => !this._zonesMap[String(e.id)]);
          }
          clean(e) {
            this._zones.length > 0 &&
              e.changeViewZones((e) => {
                for (let t = 0, i = this._zones.length; t < i; t++)
                  e.removeZone(this._zones[t]);
              }),
              (this._zones = []),
              (this._zonesMap = {}),
              (this._decorations = e.deltaDecorations(this._decorations, []));
          }
          apply(e, t, i, n) {
            const r = n ? u.ZF.capture(e) : null;
            e.changeViewZones((t) => {
              for (let e = 0, i = this._zones.length; e < i; e++)
                t.removeZone(this._zones[e]);
              for (let e = 0, t = this.inlineDiffMargins.length; e < t; e++)
                this.inlineDiffMargins[e].dispose();
              (this._zones = []),
                (this._zonesMap = {}),
                (this.inlineDiffMargins = []);
              for (let n = 0, r = i.zones.length; n < r; n++) {
                const r = i.zones[n];
                r.suppressMouseDown = !0;
                let s = t.addZone(r);
                this._zones.push(s),
                  (this._zonesMap[String(s)] = !0),
                  i.zones[n].diff &&
                    r.marginDomNode &&
                    ((r.suppressMouseDown = !1),
                    this.inlineDiffMargins.push(
                      new Z(
                        s,
                        r.marginDomNode,
                        e,
                        i.zones[n].diff,
                        this._contextMenuService,
                        this._clipboardService
                      )
                    ));
              }
            }),
              r && r.restore(e),
              (this._decorations = e.deltaDecorations(
                this._decorations,
                i.decorations
              )),
              t && t.setZones(i.overviewZones);
          }
        }
        let re = 0;
        const se = (0, D.q5)('diff-insert', D.lA.add),
          oe = (0, D.q5)('diff-remove', D.lA.remove);
        let ae = class e extends c.JT {
          constructor(t, i, n, o, c, d, h, u, g, f, p) {
            super(),
              (this._editorProgressService = p),
              (this._onDidDispose = this._register(new l.Q5())),
              (this.onDidDispose = this._onDidDispose.event),
              (this._onDidUpdateDiff = this._register(new l.Q5())),
              (this.onDidUpdateDiff = this._onDidUpdateDiff.event),
              (this._onDidContentSizeChange = this._register(new l.Q5())),
              (this._lastOriginalWarning = null),
              (this._lastModifiedWarning = null),
              (this._editorWorkerService = o),
              (this._codeEditorService = h),
              (this._contextKeyService = this._register(c.createScoped(t))),
              this._contextKeyService.createKey('isInDiffEditor', !0),
              (this._themeService = u),
              (this._notificationService = g),
              (this.id = ++re),
              (this._state = 0),
              (this._updatingDiffProgress = null),
              (this._domElement = t),
              (i = i || {}),
              (this._renderSideBySide = !0),
              void 0 !== i.renderSideBySide &&
                (this._renderSideBySide = i.renderSideBySide),
              (this._maxComputationTime = 5e3),
              void 0 !== i.maxComputationTime &&
                (this._maxComputationTime = i.maxComputationTime),
              (this._ignoreTrimWhitespace = !0),
              void 0 !== i.ignoreTrimWhitespace &&
                (this._ignoreTrimWhitespace = i.ignoreTrimWhitespace),
              (this._renderIndicators = !0),
              void 0 !== i.renderIndicators &&
                (this._renderIndicators = i.renderIndicators),
              (this._originalIsEditable = !1),
              void 0 !== i.originalEditable &&
                (this._originalIsEditable = Boolean(i.originalEditable)),
              (this._originalCodeLens = !1),
              void 0 !== i.originalCodeLens &&
                (this._originalCodeLens = Boolean(i.originalCodeLens)),
              (this._modifiedCodeLens = !1),
              void 0 !== i.modifiedCodeLens &&
                (this._modifiedCodeLens = Boolean(i.modifiedCodeLens)),
              (this._updateDecorationsRunner = this._register(
                new a.pY(() => this._updateDecorations(), 0)
              )),
              (this._containerDomElement = document.createElement('div')),
              (this._containerDomElement.className = e._getClassName(
                this._themeService.getColorTheme(),
                this._renderSideBySide
              )),
              (this._containerDomElement.style.position = 'relative'),
              (this._containerDomElement.style.height = '100%'),
              this._domElement.appendChild(this._containerDomElement),
              (this._overviewViewportDomElement = (0, s.X)(
                document.createElement('div')
              )),
              this._overviewViewportDomElement.setClassName('diffViewport'),
              this._overviewViewportDomElement.setPosition('absolute'),
              (this._overviewDomElement = document.createElement('div')),
              (this._overviewDomElement.className = 'diffOverview'),
              (this._overviewDomElement.style.position = 'absolute'),
              this._overviewDomElement.appendChild(
                this._overviewViewportDomElement.domNode
              ),
              this._register(
                r.mu(this._overviewDomElement, 'mousedown', (e) => {
                  this.modifiedEditor.delegateVerticalScrollbarMouseDown(e);
                })
              ),
              this._containerDomElement.appendChild(this._overviewDomElement),
              (this._originalDomNode = document.createElement('div')),
              (this._originalDomNode.className = 'editor original'),
              (this._originalDomNode.style.position = 'absolute'),
              (this._originalDomNode.style.height = '100%'),
              this._containerDomElement.appendChild(this._originalDomNode),
              (this._modifiedDomNode = document.createElement('div')),
              (this._modifiedDomNode.className = 'editor modified'),
              (this._modifiedDomNode.style.position = 'absolute'),
              (this._modifiedDomNode.style.height = '100%'),
              this._containerDomElement.appendChild(this._modifiedDomNode),
              (this._beginUpdateDecorationsTimeout = -1),
              (this._currentlyChangingViewZones = !1),
              (this._diffComputationToken = 0),
              (this._originalEditorState = new ne(f, n)),
              (this._modifiedEditorState = new ne(f, n)),
              (this._isVisible = !0),
              (this._isHandlingScrollEvent = !1),
              (this._elementSizeObserver = this._register(
                new ee.I(this._containerDomElement, void 0, () =>
                  this._onDidContainerSizeChanged()
                )
              )),
              i.automaticLayout && this._elementSizeObserver.startObserving(),
              (this._diffComputationResult = null);
            const m = this._contextKeyService.createScoped(),
              _ = new $.y();
            _.set(x.i6, m);
            const v = d.createChild(_),
              y = this._contextKeyService.createScoped(),
              w = new $.y();
            w.set(x.i6, y);
            const C = d.createChild(w);
            (this.originalEditor = this._createLeftHandSideEditor(i, v, m)),
              (this.modifiedEditor = this._createRightHandSideEditor(i, C, y)),
              (this._originalOverviewRuler = null),
              (this._modifiedOverviewRuler = null),
              (this._reviewPane = new A(this)),
              this._containerDomElement.appendChild(
                this._reviewPane.domNode.domNode
              ),
              this._containerDomElement.appendChild(
                this._reviewPane.shadow.domNode
              ),
              this._containerDomElement.appendChild(
                this._reviewPane.actionBarContainer.domNode
              ),
              (this._enableSplitViewResizing = !0),
              void 0 !== i.enableSplitViewResizing &&
                (this._enableSplitViewResizing = i.enableSplitViewResizing),
              this._renderSideBySide
                ? this._setStrategy(
                    new ge(
                      this._createDataSource(),
                      this._enableSplitViewResizing
                    )
                  )
                : this._setStrategy(
                    new pe(
                      this._createDataSource(),
                      this._enableSplitViewResizing
                    )
                  ),
              this._register(
                u.onDidColorThemeChange((t) => {
                  this._strategy &&
                    this._strategy.applyColors(t) &&
                    this._updateDecorationsRunner.schedule(),
                    (this._containerDomElement.className = e._getClassName(
                      this._themeService.getColorTheme(),
                      this._renderSideBySide
                    ));
                })
              );
            const S = b.Uc.getDiffEditorContributions();
            for (const e of S)
              try {
                this._register(d.createInstance(e.ctor, this));
              } catch (e) {
                (0, Q.dL)(e);
              }
            this._codeEditorService.addDiffEditor(this);
          }
          _setState(e) {
            this._state !== e &&
              ((this._state = e),
              this._updatingDiffProgress &&
                (this._updatingDiffProgress.done(),
                (this._updatingDiffProgress = null)),
              1 === this._state &&
                (this._updatingDiffProgress = this._editorProgressService.show(
                  !0,
                  1e3
                )));
          }
          diffReviewNext() {
            this._reviewPane.next();
          }
          diffReviewPrev() {
            this._reviewPane.prev();
          }
          static _getClassName(e, t) {
            let i = 'monaco-diff-editor monaco-editor-background ';
            return t && (i += 'side-by-side '), (i += (0, M.m6)(e.type)), i;
          }
          _recreateOverviewRulers() {
            this._originalOverviewRuler &&
              (this._overviewDomElement.removeChild(
                this._originalOverviewRuler.getDomNode()
              ),
              this._originalOverviewRuler.dispose()),
              this.originalEditor.hasModel() &&
                ((this._originalOverviewRuler = this.originalEditor.createOverviewRuler(
                  'original diffOverviewRuler'
                )),
                this._overviewDomElement.appendChild(
                  this._originalOverviewRuler.getDomNode()
                )),
              this._modifiedOverviewRuler &&
                (this._overviewDomElement.removeChild(
                  this._modifiedOverviewRuler.getDomNode()
                ),
                this._modifiedOverviewRuler.dispose()),
              this.modifiedEditor.hasModel() &&
                ((this._modifiedOverviewRuler = this.modifiedEditor.createOverviewRuler(
                  'modified diffOverviewRuler'
                )),
                this._overviewDomElement.appendChild(
                  this._modifiedOverviewRuler.getDomNode()
                )),
              this._layoutOverviewRulers();
          }
          _createLeftHandSideEditor(t, i, n) {
            const r = this._createInnerEditor(
              i,
              this._originalDomNode,
              this._adjustOptionsForLeftHandSide(
                t,
                this._originalIsEditable,
                this._originalCodeLens
              )
            );
            this._register(
              r.onDidScrollChange((e) => {
                this._isHandlingScrollEvent ||
                  ((e.scrollTopChanged ||
                    e.scrollLeftChanged ||
                    e.scrollHeightChanged) &&
                    ((this._isHandlingScrollEvent = !0),
                    this.modifiedEditor.setScrollPosition({
                      scrollLeft: e.scrollLeft,
                      scrollTop: e.scrollTop,
                    }),
                    (this._isHandlingScrollEvent = !1),
                    this._layoutOverviewViewport()));
              })
            ),
              this._register(
                r.onDidChangeViewZones(() => {
                  this._onViewZonesChanged();
                })
              ),
              this._register(
                r.onDidChangeModelContent(() => {
                  this._isVisible && this._beginUpdateDecorationsSoon();
                })
              );
            const s = n.createKey('isInDiffLeftEditor', void 0);
            return (
              this._register(r.onDidFocusEditorWidget(() => s.set(!0))),
              this._register(r.onDidBlurEditorWidget(() => s.set(!1))),
              this._register(
                r.onDidContentSizeChange((t) => {
                  const i =
                      this.originalEditor.getContentWidth() +
                      this.modifiedEditor.getContentWidth() +
                      e.ONE_OVERVIEW_WIDTH,
                    n = Math.max(
                      this.modifiedEditor.getContentHeight(),
                      this.originalEditor.getContentHeight()
                    );
                  this._onDidContentSizeChange.fire({
                    contentHeight: n,
                    contentWidth: i,
                    contentHeightChanged: t.contentHeightChanged,
                    contentWidthChanged: t.contentWidthChanged,
                  });
                })
              ),
              r
            );
          }
          _createRightHandSideEditor(t, i, n) {
            const r = this._createInnerEditor(
              i,
              this._modifiedDomNode,
              this._adjustOptionsForRightHandSide(t, this._modifiedCodeLens)
            );
            this._register(
              r.onDidScrollChange((e) => {
                this._isHandlingScrollEvent ||
                  ((e.scrollTopChanged ||
                    e.scrollLeftChanged ||
                    e.scrollHeightChanged) &&
                    ((this._isHandlingScrollEvent = !0),
                    this.originalEditor.setScrollPosition({
                      scrollLeft: e.scrollLeft,
                      scrollTop: e.scrollTop,
                    }),
                    (this._isHandlingScrollEvent = !1),
                    this._layoutOverviewViewport()));
              })
            ),
              this._register(
                r.onDidChangeViewZones(() => {
                  this._onViewZonesChanged();
                })
              ),
              this._register(
                r.onDidChangeConfiguration((e) => {
                  e.hasChanged(36) &&
                    r.getModel() &&
                    this._onViewZonesChanged();
                })
              ),
              this._register(
                r.onDidChangeModelContent(() => {
                  this._isVisible && this._beginUpdateDecorationsSoon();
                })
              ),
              this._register(
                r.onDidChangeModelOptions((e) => {
                  e.tabSize && this._updateDecorationsRunner.schedule();
                })
              );
            const s = n.createKey('isInDiffRightEditor', void 0);
            return (
              this._register(r.onDidFocusEditorWidget(() => s.set(!0))),
              this._register(r.onDidBlurEditorWidget(() => s.set(!1))),
              this._register(
                r.onDidContentSizeChange((t) => {
                  const i =
                      this.originalEditor.getContentWidth() +
                      this.modifiedEditor.getContentWidth() +
                      e.ONE_OVERVIEW_WIDTH,
                    n = Math.max(
                      this.modifiedEditor.getContentHeight(),
                      this.originalEditor.getContentHeight()
                    );
                  this._onDidContentSizeChange.fire({
                    contentHeight: n,
                    contentWidth: i,
                    contentHeightChanged: t.contentHeightChanged,
                    contentWidthChanged: t.contentWidthChanged,
                  });
                })
              ),
              r
            );
          }
          _createInnerEditor(e, t, i) {
            return e.createInstance(f.Gm, t, i, {});
          }
          dispose() {
            this._codeEditorService.removeDiffEditor(this),
              -1 !== this._beginUpdateDecorationsTimeout &&
                (window.clearTimeout(this._beginUpdateDecorationsTimeout),
                (this._beginUpdateDecorationsTimeout = -1)),
              this._cleanViewZonesAndDecorations(),
              this._originalOverviewRuler &&
                (this._overviewDomElement.removeChild(
                  this._originalOverviewRuler.getDomNode()
                ),
                this._originalOverviewRuler.dispose()),
              this._modifiedOverviewRuler &&
                (this._overviewDomElement.removeChild(
                  this._modifiedOverviewRuler.getDomNode()
                ),
                this._modifiedOverviewRuler.dispose()),
              this._overviewDomElement.removeChild(
                this._overviewViewportDomElement.domNode
              ),
              this._containerDomElement.removeChild(this._overviewDomElement),
              this._containerDomElement.removeChild(this._originalDomNode),
              this.originalEditor.dispose(),
              this._containerDomElement.removeChild(this._modifiedDomNode),
              this.modifiedEditor.dispose(),
              this._strategy.dispose(),
              this._containerDomElement.removeChild(
                this._reviewPane.domNode.domNode
              ),
              this._containerDomElement.removeChild(
                this._reviewPane.shadow.domNode
              ),
              this._containerDomElement.removeChild(
                this._reviewPane.actionBarContainer.domNode
              ),
              this._reviewPane.dispose(),
              this._domElement.removeChild(this._containerDomElement),
              this._onDidDispose.fire(),
              super.dispose();
          }
          getId() {
            return this.getEditorType() + ':' + this.id;
          }
          getEditorType() {
            return Y.g.IDiffEditor;
          }
          getLineChanges() {
            return this._diffComputationResult
              ? this._diffComputationResult.changes
              : null;
          }
          getOriginalEditor() {
            return this.originalEditor;
          }
          getModifiedEditor() {
            return this.modifiedEditor;
          }
          updateOptions(t) {
            let i = !1;
            void 0 !== t.renderSideBySide &&
              this._renderSideBySide !== t.renderSideBySide &&
              ((this._renderSideBySide = t.renderSideBySide), (i = !0)),
              void 0 !== t.maxComputationTime &&
                ((this._maxComputationTime = t.maxComputationTime),
                this._isVisible && this._beginUpdateDecorationsSoon());
            let n = !1;
            void 0 !== t.ignoreTrimWhitespace &&
              this._ignoreTrimWhitespace !== t.ignoreTrimWhitespace &&
              ((this._ignoreTrimWhitespace = t.ignoreTrimWhitespace), (n = !0)),
              void 0 !== t.renderIndicators &&
                this._renderIndicators !== t.renderIndicators &&
                ((this._renderIndicators = t.renderIndicators), (n = !0)),
              n && this._beginUpdateDecorations(),
              void 0 !== t.originalEditable &&
                (this._originalIsEditable = Boolean(t.originalEditable)),
              void 0 !== t.originalCodeLens &&
                (this._originalCodeLens = Boolean(t.originalCodeLens)),
              void 0 !== t.modifiedCodeLens &&
                (this._modifiedCodeLens = Boolean(t.modifiedCodeLens)),
              this.modifiedEditor.updateOptions(
                this._adjustOptionsForRightHandSide(t, this._modifiedCodeLens)
              ),
              this.originalEditor.updateOptions(
                this._adjustOptionsForLeftHandSide(
                  t,
                  this._originalIsEditable,
                  this._originalCodeLens
                )
              ),
              void 0 !== t.enableSplitViewResizing &&
                (this._enableSplitViewResizing = t.enableSplitViewResizing),
              this._strategy.setEnableSplitViewResizing(
                this._enableSplitViewResizing
              ),
              i &&
                (this._renderSideBySide
                  ? this._setStrategy(
                      new ge(
                        this._createDataSource(),
                        this._enableSplitViewResizing
                      )
                    )
                  : this._setStrategy(
                      new pe(
                        this._createDataSource(),
                        this._enableSplitViewResizing
                      )
                    ),
                (this._containerDomElement.className = e._getClassName(
                  this._themeService.getColorTheme(),
                  this._renderSideBySide
                )));
          }
          getModel() {
            return {
              original: this.originalEditor.getModel(),
              modified: this.modifiedEditor.getModel(),
            };
          }
          setModel(e) {
            if (e && (!e.original || !e.modified))
              throw new Error(
                e.original
                  ? 'DiffEditorWidget.setModel: Modified model is null'
                  : 'DiffEditorWidget.setModel: Original model is null'
              );
            this._cleanViewZonesAndDecorations(),
              this.originalEditor.setModel(e ? e.original : null),
              this.modifiedEditor.setModel(e ? e.modified : null),
              this._updateDecorationsRunner.cancel(),
              e &&
                (this.originalEditor.setScrollTop(0),
                this.modifiedEditor.setScrollTop(0)),
              (this._diffComputationResult = null),
              this._diffComputationToken++,
              this._setState(0),
              e &&
                (this._recreateOverviewRulers(),
                this._beginUpdateDecorations()),
              this._layoutOverviewViewport();
          }
          getDomNode() {
            return this._domElement;
          }
          getVisibleColumnFromPosition(e) {
            return this.modifiedEditor.getVisibleColumnFromPosition(e);
          }
          getPosition() {
            return this.modifiedEditor.getPosition();
          }
          setPosition(e) {
            this.modifiedEditor.setPosition(e);
          }
          revealLine(e, t = 0) {
            this.modifiedEditor.revealLine(e, t);
          }
          revealLineInCenter(e, t = 0) {
            this.modifiedEditor.revealLineInCenter(e, t);
          }
          revealLineInCenterIfOutsideViewport(e, t = 0) {
            this.modifiedEditor.revealLineInCenterIfOutsideViewport(e, t);
          }
          revealLineNearTop(e, t = 0) {
            this.modifiedEditor.revealLineNearTop(e, t);
          }
          revealPosition(e, t = 0) {
            this.modifiedEditor.revealPosition(e, t);
          }
          revealPositionInCenter(e, t = 0) {
            this.modifiedEditor.revealPositionInCenter(e, t);
          }
          revealPositionInCenterIfOutsideViewport(e, t = 0) {
            this.modifiedEditor.revealPositionInCenterIfOutsideViewport(e, t);
          }
          revealPositionNearTop(e, t = 0) {
            this.modifiedEditor.revealPositionNearTop(e, t);
          }
          getSelection() {
            return this.modifiedEditor.getSelection();
          }
          getSelections() {
            return this.modifiedEditor.getSelections();
          }
          setSelection(e) {
            this.modifiedEditor.setSelection(e);
          }
          setSelections(e) {
            this.modifiedEditor.setSelections(e);
          }
          revealLines(e, t, i = 0) {
            this.modifiedEditor.revealLines(e, t, i);
          }
          revealLinesInCenter(e, t, i = 0) {
            this.modifiedEditor.revealLinesInCenter(e, t, i);
          }
          revealLinesInCenterIfOutsideViewport(e, t, i = 0) {
            this.modifiedEditor.revealLinesInCenterIfOutsideViewport(e, t, i);
          }
          revealLinesNearTop(e, t, i = 0) {
            this.modifiedEditor.revealLinesNearTop(e, t, i);
          }
          revealRange(e, t = 0, i = !1, n = !0) {
            this.modifiedEditor.revealRange(e, t, i, n);
          }
          revealRangeInCenter(e, t = 0) {
            this.modifiedEditor.revealRangeInCenter(e, t);
          }
          revealRangeInCenterIfOutsideViewport(e, t = 0) {
            this.modifiedEditor.revealRangeInCenterIfOutsideViewport(e, t);
          }
          revealRangeNearTop(e, t = 0) {
            this.modifiedEditor.revealRangeNearTop(e, t);
          }
          revealRangeNearTopIfOutsideViewport(e, t = 0) {
            this.modifiedEditor.revealRangeNearTopIfOutsideViewport(e, t);
          }
          revealRangeAtTop(e, t = 0) {
            this.modifiedEditor.revealRangeAtTop(e, t);
          }
          getSupportedActions() {
            return this.modifiedEditor.getSupportedActions();
          }
          saveViewState() {
            return {
              original: this.originalEditor.saveViewState(),
              modified: this.modifiedEditor.saveViewState(),
            };
          }
          restoreViewState(e) {
            if (e.original && e.modified) {
              let t = e;
              this.originalEditor.restoreViewState(t.original),
                this.modifiedEditor.restoreViewState(t.modified);
            }
          }
          layout(e) {
            this._elementSizeObserver.observe(e);
          }
          focus() {
            this.modifiedEditor.focus();
          }
          hasTextFocus() {
            return (
              this.originalEditor.hasTextFocus() ||
              this.modifiedEditor.hasTextFocus()
            );
          }
          trigger(e, t, i) {
            this.modifiedEditor.trigger(e, t, i);
          }
          changeDecorations(e) {
            return this.modifiedEditor.changeDecorations(e);
          }
          _onDidContainerSizeChanged() {
            this._doLayout();
          }
          _getReviewHeight() {
            return this._reviewPane.isVisible()
              ? this._elementSizeObserver.getHeight()
              : 0;
          }
          _layoutOverviewRulers() {
            if (!this._originalOverviewRuler || !this._modifiedOverviewRuler)
              return;
            const t = this._elementSizeObserver.getHeight(),
              i = this._getReviewHeight();
            let n = e.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * e.ONE_OVERVIEW_WIDTH;
            this.modifiedEditor.getLayoutInfo() &&
              (this._originalOverviewRuler.setLayout({
                top: 0,
                width: e.ONE_OVERVIEW_WIDTH,
                right: n + e.ONE_OVERVIEW_WIDTH,
                height: t - i,
              }),
              this._modifiedOverviewRuler.setLayout({
                top: 0,
                right: 0,
                width: e.ONE_OVERVIEW_WIDTH,
                height: t - i,
              }));
          }
          _onViewZonesChanged() {
            this._currentlyChangingViewZones ||
              this._updateDecorationsRunner.schedule();
          }
          _beginUpdateDecorationsSoon() {
            -1 !== this._beginUpdateDecorationsTimeout &&
              (window.clearTimeout(this._beginUpdateDecorationsTimeout),
              (this._beginUpdateDecorationsTimeout = -1)),
              (this._beginUpdateDecorationsTimeout = window.setTimeout(
                () => this._beginUpdateDecorations(),
                e.UPDATE_DIFF_DECORATIONS_DELAY
              ));
          }
          static _equals(e, t) {
            return (!e && !t) || (!(!e || !t) && e.toString() === t.toString());
          }
          _beginUpdateDecorations() {
            this._beginUpdateDecorationsTimeout = -1;
            const t = this.originalEditor.getModel(),
              i = this.modifiedEditor.getModel();
            if (!t || !i) return;
            this._diffComputationToken++;
            let r = this._diffComputationToken;
            this._setState(1),
              this._editorWorkerService.canComputeDiff(t.uri, i.uri)
                ? this._editorWorkerService
                    .computeDiff(
                      t.uri,
                      i.uri,
                      this._ignoreTrimWhitespace,
                      this._maxComputationTime
                    )
                    .then(
                      (e) => {
                        r === this._diffComputationToken &&
                          t === this.originalEditor.getModel() &&
                          i === this.modifiedEditor.getModel() &&
                          (this._setState(2),
                          (this._diffComputationResult = e),
                          this._updateDecorationsRunner.schedule(),
                          this._onDidUpdateDiff.fire());
                      },
                      (e) => {
                        r === this._diffComputationToken &&
                          t === this.originalEditor.getModel() &&
                          i === this.modifiedEditor.getModel() &&
                          (this._setState(2),
                          (this._diffComputationResult = null),
                          this._updateDecorationsRunner.schedule());
                      }
                    )
                : (e._equals(t.uri, this._lastOriginalWarning) &&
                    e._equals(i.uri, this._lastModifiedWarning)) ||
                  ((this._lastOriginalWarning = t.uri),
                  (this._lastModifiedWarning = i.uri),
                  this._notificationService.warn(
                    n.N(
                      'diff.tooLarge',
                      'Cannot compare files because one file is too large.'
                    )
                  ));
          }
          _cleanViewZonesAndDecorations() {
            this._originalEditorState.clean(this.originalEditor),
              this._modifiedEditorState.clean(this.modifiedEditor);
          }
          _updateDecorations() {
            if (
              !(
                this.originalEditor.getModel() &&
                this.modifiedEditor.getModel() &&
                this._originalOverviewRuler &&
                this._modifiedOverviewRuler
              )
            )
              return;
            const e = this._diffComputationResult
              ? this._diffComputationResult.changes
              : [];
            let t = this._originalEditorState.getForeignViewZones(
                this.originalEditor.getWhitespaces()
              ),
              i = this._modifiedEditorState.getForeignViewZones(
                this.modifiedEditor.getWhitespaces()
              ),
              n = this._strategy.getEditorsDiffDecorations(
                e,
                this._ignoreTrimWhitespace,
                this._renderIndicators,
                t,
                i,
                this.originalEditor,
                this.modifiedEditor
              );
            try {
              (this._currentlyChangingViewZones = !0),
                this._originalEditorState.apply(
                  this.originalEditor,
                  this._originalOverviewRuler,
                  n.original,
                  !1
                ),
                this._modifiedEditorState.apply(
                  this.modifiedEditor,
                  this._modifiedOverviewRuler,
                  n.modified,
                  !0
                );
            } finally {
              this._currentlyChangingViewZones = !1;
            }
          }
          _adjustOptionsForSubEditor(e) {
            let t = d.I8(e || {});
            return (
              (t.inDiffEditor = !0),
              (t.wordWrap = 'off'),
              (t.wordWrapMinified = !1),
              (t.automaticLayout = !1),
              (t.scrollbar = t.scrollbar || {}),
              (t.scrollbar.vertical = 'visible'),
              (t.folding = !1),
              (t.codeLens = !1),
              (t.fixedOverflowWidgets = !0),
              (t.overflowWidgetsDomNode = e.overflowWidgetsDomNode),
              t.minimap || (t.minimap = {}),
              (t.minimap.enabled = !1),
              t
            );
          }
          _adjustOptionsForLeftHandSide(e, t, i) {
            let n = this._adjustOptionsForSubEditor(e);
            return (
              i && (n.codeLens = !0),
              (n.readOnly = !t),
              (n.extraEditorClassName = 'original-in-monaco-diff-editor'),
              n
            );
          }
          _adjustOptionsForRightHandSide(t, i) {
            let n = this._adjustOptionsForSubEditor(t);
            return (
              i && (n.codeLens = !0),
              (n.revealHorizontalRightPadding =
                v.BH.revealHorizontalRightPadding.defaultValue +
                e.ENTIRE_DIFF_OVERVIEW_WIDTH),
              (n.scrollbar.verticalHasArrows = !1),
              (n.extraEditorClassName = 'modified-in-monaco-diff-editor'),
              n
            );
          }
          doLayout() {
            this._elementSizeObserver.observe(), this._doLayout();
          }
          _doLayout() {
            const t = this._elementSizeObserver.getWidth(),
              i = this._elementSizeObserver.getHeight(),
              n = this._getReviewHeight();
            let r = this._strategy.layout();
            (this._originalDomNode.style.width = r + 'px'),
              (this._originalDomNode.style.left = '0px'),
              (this._modifiedDomNode.style.width = t - r + 'px'),
              (this._modifiedDomNode.style.left = r + 'px'),
              (this._overviewDomElement.style.top = '0px'),
              (this._overviewDomElement.style.height = i - n + 'px'),
              (this._overviewDomElement.style.width =
                e.ENTIRE_DIFF_OVERVIEW_WIDTH + 'px'),
              (this._overviewDomElement.style.left =
                t - e.ENTIRE_DIFF_OVERVIEW_WIDTH + 'px'),
              this._overviewViewportDomElement.setWidth(
                e.ENTIRE_DIFF_OVERVIEW_WIDTH
              ),
              this._overviewViewportDomElement.setHeight(30),
              this.originalEditor.layout({ width: r, height: i - n }),
              this.modifiedEditor.layout({
                width: t - r - e.ENTIRE_DIFF_OVERVIEW_WIDTH,
                height: i - n,
              }),
              (this._originalOverviewRuler || this._modifiedOverviewRuler) &&
                this._layoutOverviewRulers(),
              this._reviewPane.layout(i - n, t, n),
              this._layoutOverviewViewport();
          }
          _layoutOverviewViewport() {
            let e = this._computeOverviewViewport();
            e
              ? (this._overviewViewportDomElement.setTop(e.top),
                this._overviewViewportDomElement.setHeight(e.height))
              : (this._overviewViewportDomElement.setTop(0),
                this._overviewViewportDomElement.setHeight(0));
          }
          _computeOverviewViewport() {
            let e = this.modifiedEditor.getLayoutInfo();
            if (!e) return null;
            let t = this.modifiedEditor.getScrollTop(),
              i = this.modifiedEditor.getScrollHeight(),
              n = Math.max(0, e.height),
              r = Math.max(0, n - 0),
              s = i > 0 ? r / i : 0;
            return {
              height: Math.max(0, Math.floor(e.height * s)),
              top: Math.floor(t * s),
            };
          }
          _createDataSource() {
            return {
              getWidth: () => this._elementSizeObserver.getWidth(),
              getHeight: () =>
                this._elementSizeObserver.getHeight() - this._getReviewHeight(),
              getContainerDomNode: () => this._containerDomElement,
              relayoutEditors: () => {
                this._doLayout();
              },
              getOriginalEditor: () => this.originalEditor,
              getModifiedEditor: () => this.modifiedEditor,
            };
          }
          _setStrategy(e) {
            this._strategy && this._strategy.dispose(),
              (this._strategy = e),
              e.applyColors(this._themeService.getColorTheme()),
              this._diffComputationResult && this._updateDecorations(),
              this._doLayout();
          }
          _getLineChangeAtOrBeforeLineNumber(e, t) {
            const i = this._diffComputationResult
              ? this._diffComputationResult.changes
              : [];
            if (0 === i.length || e < t(i[0])) return null;
            let n = 0,
              r = i.length - 1;
            for (; n < r; ) {
              let s = Math.floor((n + r) / 2),
                o = t(i[s]),
                a = s + 1 <= r ? t(i[s + 1]) : 1073741824;
              e < o ? (r = s - 1) : e >= a ? (n = s + 1) : ((n = s), (r = s));
            }
            return i[n];
          }
          _getEquivalentLineForOriginalLineNumber(e) {
            let t = this._getLineChangeAtOrBeforeLineNumber(
              e,
              (e) => e.originalStartLineNumber
            );
            if (!t) return e;
            let i =
                t.originalStartLineNumber +
                (t.originalEndLineNumber > 0 ? -1 : 0),
              n =
                t.modifiedStartLineNumber +
                (t.modifiedEndLineNumber > 0 ? -1 : 0),
              r =
                t.originalEndLineNumber > 0
                  ? t.originalEndLineNumber - t.originalStartLineNumber + 1
                  : 0,
              s =
                t.modifiedEndLineNumber > 0
                  ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1
                  : 0,
              o = e - i;
            return o <= r ? n + Math.min(o, s) : n + s - r + o;
          }
          _getEquivalentLineForModifiedLineNumber(e) {
            let t = this._getLineChangeAtOrBeforeLineNumber(
              e,
              (e) => e.modifiedStartLineNumber
            );
            if (!t) return e;
            let i =
                t.originalStartLineNumber +
                (t.originalEndLineNumber > 0 ? -1 : 0),
              n =
                t.modifiedStartLineNumber +
                (t.modifiedEndLineNumber > 0 ? -1 : 0),
              r =
                t.originalEndLineNumber > 0
                  ? t.originalEndLineNumber - t.originalStartLineNumber + 1
                  : 0,
              s =
                t.modifiedEndLineNumber > 0
                  ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1
                  : 0,
              o = e - n;
            return o <= s ? i + Math.min(o, r) : i + r - s + o;
          }
          getDiffLineInformationForOriginal(e) {
            return this._diffComputationResult
              ? {
                  equivalentLineNumber: this._getEquivalentLineForOriginalLineNumber(
                    e
                  ),
                }
              : null;
          }
          getDiffLineInformationForModified(e) {
            return this._diffComputationResult
              ? {
                  equivalentLineNumber: this._getEquivalentLineForModifiedLineNumber(
                    e
                  ),
                }
              : null;
          }
        };
        (ae.ONE_OVERVIEW_WIDTH = 15),
          (ae.ENTIRE_DIFF_OVERVIEW_WIDTH = 30),
          (ae.UPDATE_DIFF_DECORATIONS_DELAY = 200),
          (ae = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ie(2, J.p),
              ie(3, j.p),
              ie(4, x.i6),
              ie(5, U.TG),
              ie(6, g.$),
              ie(7, M.XE),
              ie(8, K.lT),
              ie(9, q.i),
              ie(10, X.e),
            ],
            ae
          ));
        class le extends c.JT {
          constructor(e) {
            super(),
              (this._dataSource = e),
              (this._insertColor = null),
              (this._removeColor = null);
          }
          applyColors(e) {
            let t = (e.getColor(L.yp) || L.Cz).transparent(2),
              i = (e.getColor(L.P4) || L.ke).transparent(2),
              n = !t.equals(this._insertColor) || !i.equals(this._removeColor);
            return (this._insertColor = t), (this._removeColor = i), n;
          }
          getEditorsDiffDecorations(e, t, i, n, r, s, o) {
            (r = r.sort((e, t) => e.afterLineNumber - t.afterLineNumber)),
              (n = n.sort((e, t) => e.afterLineNumber - t.afterLineNumber));
            let a = this._getViewZones(e, n, r, s, o, i),
              l = this._getOriginalEditorDecorations(e, t, i, s, o),
              c = this._getModifiedEditorDecorations(e, t, i, s, o);
            return {
              original: {
                decorations: l.decorations,
                overviewZones: l.overviewZones,
                zones: a.original,
              },
              modified: {
                decorations: c.decorations,
                overviewZones: c.overviewZones,
                zones: a.modified,
              },
            };
          }
        }
        class ce {
          constructor(e) {
            (this._source = e),
              (this._index = -1),
              (this.current = null),
              this.advance();
          }
          advance() {
            this._index++,
              this._index < this._source.length
                ? (this.current = this._source[this._index])
                : (this.current = null);
          }
        }
        class de {
          constructor(e, t, i, n, r) {
            (this.lineChanges = e),
              (this.originalForeignVZ = t),
              (this.originalLineHeight = i),
              (this.modifiedForeignVZ = n),
              (this.modifiedLineHeight = r);
          }
          getViewZones() {
            let e = [],
              t = [],
              i = 0,
              n = 0,
              r = 0,
              s = 0,
              o = 0,
              a = 0,
              l = (e, t) => e.afterLineNumber - t.afterLineNumber,
              c = (e, t) => {
                if (null === t.domNode && e.length > 0) {
                  let i = e[e.length - 1];
                  if (
                    i.afterLineNumber === t.afterLineNumber &&
                    null === i.domNode
                  )
                    return void (i.heightInLines += t.heightInLines);
                }
                e.push(t);
              },
              d = new ce(this.modifiedForeignVZ),
              h = new ce(this.originalForeignVZ);
            for (let u = 0, g = this.lineChanges.length; u <= g; u++) {
              let f = u < g ? this.lineChanges[u] : null;
              null !== f
                ? ((r =
                    f.originalStartLineNumber +
                    (f.originalEndLineNumber > 0 ? -1 : 0)),
                  (s =
                    f.modifiedStartLineNumber +
                    (f.modifiedEndLineNumber > 0 ? -1 : 0)),
                  (n =
                    f.originalEndLineNumber > 0
                      ? f.originalEndLineNumber - f.originalStartLineNumber + 1
                      : 0),
                  (i =
                    f.modifiedEndLineNumber > 0
                      ? f.modifiedEndLineNumber - f.modifiedStartLineNumber + 1
                      : 0),
                  (o = Math.max(
                    f.originalStartLineNumber,
                    f.originalEndLineNumber
                  )),
                  (a = Math.max(
                    f.modifiedStartLineNumber,
                    f.modifiedEndLineNumber
                  )))
                : ((r += 1e7 + n), (s += 1e7 + i), (o = r), (a = s));
              let p = [],
                m = [];
              for (; d.current && d.current.afterLineNumber <= a; ) {
                let e;
                e =
                  d.current.afterLineNumber <= s
                    ? r - s + d.current.afterLineNumber
                    : o;
                let t = null;
                f &&
                  f.modifiedStartLineNumber <= d.current.afterLineNumber &&
                  d.current.afterLineNumber <= f.modifiedEndLineNumber &&
                  (t = this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()),
                  p.push({
                    afterLineNumber: e,
                    heightInLines: d.current.height / this.modifiedLineHeight,
                    domNode: null,
                    marginDomNode: t,
                  }),
                  d.advance();
              }
              for (; h.current && h.current.afterLineNumber <= o; ) {
                let e;
                (e =
                  h.current.afterLineNumber <= r
                    ? s - r + h.current.afterLineNumber
                    : a),
                  m.push({
                    afterLineNumber: e,
                    heightInLines: h.current.height / this.originalLineHeight,
                    domNode: null,
                  }),
                  h.advance();
              }
              if (null !== f && _e(f)) {
                let e = this._produceOriginalFromDiff(f, n, i);
                e && p.push(e);
              }
              if (null !== f && be(f)) {
                let e = this._produceModifiedFromDiff(f, n, i);
                e && m.push(e);
              }
              let _ = 0,
                b = 0;
              for (
                p = p.sort(l), m = m.sort(l);
                _ < p.length && b < m.length;

              ) {
                let i = p[_],
                  n = m[b],
                  o = i.afterLineNumber - r,
                  a = n.afterLineNumber - s;
                o < a
                  ? (c(e, i), _++)
                  : a < o
                  ? (c(t, n), b++)
                  : i.shouldNotShrink
                  ? (c(e, i), _++)
                  : n.shouldNotShrink
                  ? (c(t, n), b++)
                  : i.heightInLines >= n.heightInLines
                  ? ((i.heightInLines -= n.heightInLines), b++)
                  : ((n.heightInLines -= i.heightInLines), _++);
              }
              for (; _ < p.length; ) c(e, p[_]), _++;
              for (; b < m.length; ) c(t, m[b]), b++;
            }
            return {
              original: de._ensureDomNodes(e),
              modified: de._ensureDomNodes(t),
            };
          }
          static _ensureDomNodes(e) {
            return e.map(
              (e) => (
                e.domNode ||
                  (e.domNode = (function () {
                    let e = document.createElement('div');
                    return (e.className = 'diagonal-fill'), e;
                  })()),
                e
              )
            );
          }
        }
        function he(e, t, i, n, r) {
          return { range: new B.e(e, t, i, n), options: r };
        }
        const ue = {
          charDelete: H.qx.register({ className: 'char-delete' }),
          charDeleteWholeLine: H.qx.register({
            className: 'char-delete',
            isWholeLine: !0,
          }),
          charInsert: H.qx.register({ className: 'char-insert' }),
          charInsertWholeLine: H.qx.register({
            className: 'char-insert',
            isWholeLine: !0,
          }),
          lineInsert: H.qx.register({
            className: 'line-insert',
            marginClassName: 'line-insert',
            isWholeLine: !0,
          }),
          lineInsertWithSign: H.qx.register({
            className: 'line-insert',
            linesDecorationsClassName: 'insert-sign ' + se.classNames,
            marginClassName: 'line-insert',
            isWholeLine: !0,
          }),
          lineDelete: H.qx.register({
            className: 'line-delete',
            marginClassName: 'line-delete',
            isWholeLine: !0,
          }),
          lineDeleteWithSign: H.qx.register({
            className: 'line-delete',
            linesDecorationsClassName: 'delete-sign ' + oe.classNames,
            marginClassName: 'line-delete',
            isWholeLine: !0,
          }),
          lineDeleteMargin: H.qx.register({ marginClassName: 'line-delete' }),
        };
        class ge extends le {
          constructor(e, t) {
            super(e),
              (this._disableSash = !1 === t),
              (this._sashRatio = null),
              (this._sashPosition = null),
              (this._startSashPosition = null),
              (this._sash = this._register(
                new o.g(this._dataSource.getContainerDomNode(), this, {
                  orientation: 0,
                })
              )),
              this._disableSash && (this._sash.state = 0),
              this._sash.onDidStart(() => this.onSashDragStart()),
              this._sash.onDidChange((e) => this.onSashDrag(e)),
              this._sash.onDidEnd(() => this.onSashDragEnd()),
              this._sash.onDidReset(() => this.onSashReset());
          }
          setEnableSplitViewResizing(e) {
            let t = !1 === e;
            this._disableSash !== t &&
              ((this._disableSash = t),
              (this._sash.state = this._disableSash ? 0 : 3));
          }
          layout(e = this._sashRatio) {
            let t = this._dataSource.getWidth() - ae.ENTIRE_DIFF_OVERVIEW_WIDTH,
              i = Math.floor((e || 0.5) * t),
              n = Math.floor(0.5 * t);
            return (
              (i = this._disableSash ? n : i || n),
              t > 2 * ge.MINIMUM_EDITOR_WIDTH
                ? (i < ge.MINIMUM_EDITOR_WIDTH && (i = ge.MINIMUM_EDITOR_WIDTH),
                  i > t - ge.MINIMUM_EDITOR_WIDTH &&
                    (i = t - ge.MINIMUM_EDITOR_WIDTH))
                : (i = n),
              this._sashPosition !== i &&
                ((this._sashPosition = i), this._sash.layout()),
              this._sashPosition
            );
          }
          onSashDragStart() {
            this._startSashPosition = this._sashPosition;
          }
          onSashDrag(e) {
            let t = this._dataSource.getWidth() - ae.ENTIRE_DIFF_OVERVIEW_WIDTH,
              i = this.layout(
                (this._startSashPosition + (e.currentX - e.startX)) / t
              );
            (this._sashRatio = i / t), this._dataSource.relayoutEditors();
          }
          onSashDragEnd() {
            this._sash.layout();
          }
          onSashReset() {
            (this._sashRatio = 0.5),
              this._dataSource.relayoutEditors(),
              this._sash.layout();
          }
          getVerticalSashTop(e) {
            return 0;
          }
          getVerticalSashLeft(e) {
            return this._sashPosition;
          }
          getVerticalSashHeight(e) {
            return this._dataSource.getHeight();
          }
          _getViewZones(e, t, i, n, r) {
            return new fe(
              e,
              t,
              n.getOption(51),
              i,
              r.getOption(51)
            ).getViewZones();
          }
          _getOriginalEditorDecorations(e, t, i, n, r) {
            const s = String(this._removeColor);
            let o = { decorations: [], overviewZones: [] },
              a = n.getModel();
            for (let n = 0, r = e.length; n < r; n++) {
              let r = e[n];
              if (
                be(r) &&
                (o.decorations.push({
                  range: new B.e(
                    r.originalStartLineNumber,
                    1,
                    r.originalEndLineNumber,
                    1073741824
                  ),
                  options: i ? ue.lineDeleteWithSign : ue.lineDelete,
                }),
                (_e(r) && r.charChanges) ||
                  o.decorations.push(
                    he(
                      r.originalStartLineNumber,
                      1,
                      r.originalEndLineNumber,
                      1073741824,
                      ue.charDeleteWholeLine
                    )
                  ),
                o.overviewZones.push(
                  new V.EY(
                    r.originalStartLineNumber,
                    r.originalEndLineNumber,
                    s
                  )
                ),
                r.charChanges)
              )
                for (let e = 0, i = r.charChanges.length; e < i; e++) {
                  let i = r.charChanges[e];
                  if (be(i))
                    if (t)
                      for (
                        let e = i.originalStartLineNumber;
                        e <= i.originalEndLineNumber;
                        e++
                      ) {
                        let t, n;
                        (t =
                          e === i.originalStartLineNumber
                            ? i.originalStartColumn
                            : a.getLineFirstNonWhitespaceColumn(e)),
                          (n =
                            e === i.originalEndLineNumber
                              ? i.originalEndColumn
                              : a.getLineLastNonWhitespaceColumn(e)),
                          o.decorations.push(he(e, t, e, n, ue.charDelete));
                      }
                    else
                      o.decorations.push(
                        he(
                          i.originalStartLineNumber,
                          i.originalStartColumn,
                          i.originalEndLineNumber,
                          i.originalEndColumn,
                          ue.charDelete
                        )
                      );
                }
            }
            return o;
          }
          _getModifiedEditorDecorations(e, t, i, n, r) {
            const s = String(this._insertColor);
            let o = { decorations: [], overviewZones: [] },
              a = r.getModel();
            for (let n = 0, r = e.length; n < r; n++) {
              let r = e[n];
              if (
                _e(r) &&
                (o.decorations.push({
                  range: new B.e(
                    r.modifiedStartLineNumber,
                    1,
                    r.modifiedEndLineNumber,
                    1073741824
                  ),
                  options: i ? ue.lineInsertWithSign : ue.lineInsert,
                }),
                (be(r) && r.charChanges) ||
                  o.decorations.push(
                    he(
                      r.modifiedStartLineNumber,
                      1,
                      r.modifiedEndLineNumber,
                      1073741824,
                      ue.charInsertWholeLine
                    )
                  ),
                o.overviewZones.push(
                  new V.EY(
                    r.modifiedStartLineNumber,
                    r.modifiedEndLineNumber,
                    s
                  )
                ),
                r.charChanges)
              )
                for (let e = 0, i = r.charChanges.length; e < i; e++) {
                  let i = r.charChanges[e];
                  if (_e(i))
                    if (t)
                      for (
                        let e = i.modifiedStartLineNumber;
                        e <= i.modifiedEndLineNumber;
                        e++
                      ) {
                        let t, n;
                        (t =
                          e === i.modifiedStartLineNumber
                            ? i.modifiedStartColumn
                            : a.getLineFirstNonWhitespaceColumn(e)),
                          (n =
                            e === i.modifiedEndLineNumber
                              ? i.modifiedEndColumn
                              : a.getLineLastNonWhitespaceColumn(e)),
                          o.decorations.push(he(e, t, e, n, ue.charInsert));
                      }
                    else
                      o.decorations.push(
                        he(
                          i.modifiedStartLineNumber,
                          i.modifiedStartColumn,
                          i.modifiedEndLineNumber,
                          i.modifiedEndColumn,
                          ue.charInsert
                        )
                      );
                }
            }
            return o;
          }
        }
        ge.MINIMUM_EDITOR_WIDTH = 100;
        class fe extends de {
          constructor(e, t, i, n, r) {
            super(e, t, i, n, r);
          }
          _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() {
            return null;
          }
          _produceOriginalFromDiff(e, t, i) {
            return i > t
              ? {
                  afterLineNumber: Math.max(
                    e.originalStartLineNumber,
                    e.originalEndLineNumber
                  ),
                  heightInLines: i - t,
                  domNode: null,
                }
              : null;
          }
          _produceModifiedFromDiff(e, t, i) {
            return t > i
              ? {
                  afterLineNumber: Math.max(
                    e.modifiedStartLineNumber,
                    e.modifiedEndLineNumber
                  ),
                  heightInLines: t - i,
                  domNode: null,
                }
              : null;
          }
        }
        class pe extends le {
          constructor(e, t) {
            super(e),
              (this.decorationsLeft = e
                .getOriginalEditor()
                .getLayoutInfo().decorationsLeft),
              this._register(
                e.getOriginalEditor().onDidLayoutChange((t) => {
                  this.decorationsLeft !== t.decorationsLeft &&
                    ((this.decorationsLeft = t.decorationsLeft),
                    e.relayoutEditors());
                })
              );
          }
          setEnableSplitViewResizing(e) {}
          _getViewZones(e, t, i, n, r, s) {
            return new me(e, t, i, n, r, s).getViewZones();
          }
          _getOriginalEditorDecorations(e, t, i, n, r) {
            const s = String(this._removeColor);
            let o = { decorations: [], overviewZones: [] };
            for (let t = 0, i = e.length; t < i; t++) {
              let i = e[t];
              be(i) &&
                (o.decorations.push({
                  range: new B.e(
                    i.originalStartLineNumber,
                    1,
                    i.originalEndLineNumber,
                    1073741824
                  ),
                  options: ue.lineDeleteMargin,
                }),
                o.overviewZones.push(
                  new V.EY(
                    i.originalStartLineNumber,
                    i.originalEndLineNumber,
                    s
                  )
                ));
            }
            return o;
          }
          _getModifiedEditorDecorations(e, t, i, n, r) {
            const s = String(this._insertColor);
            let o = { decorations: [], overviewZones: [] },
              a = r.getModel();
            for (let n = 0, r = e.length; n < r; n++) {
              let r = e[n];
              if (_e(r))
                if (
                  (o.decorations.push({
                    range: new B.e(
                      r.modifiedStartLineNumber,
                      1,
                      r.modifiedEndLineNumber,
                      1073741824
                    ),
                    options: i ? ue.lineInsertWithSign : ue.lineInsert,
                  }),
                  o.overviewZones.push(
                    new V.EY(
                      r.modifiedStartLineNumber,
                      r.modifiedEndLineNumber,
                      s
                    )
                  ),
                  r.charChanges)
                )
                  for (let e = 0, i = r.charChanges.length; e < i; e++) {
                    let i = r.charChanges[e];
                    if (_e(i))
                      if (t)
                        for (
                          let e = i.modifiedStartLineNumber;
                          e <= i.modifiedEndLineNumber;
                          e++
                        ) {
                          let t, n;
                          (t =
                            e === i.modifiedStartLineNumber
                              ? i.modifiedStartColumn
                              : a.getLineFirstNonWhitespaceColumn(e)),
                            (n =
                              e === i.modifiedEndLineNumber
                                ? i.modifiedEndColumn
                                : a.getLineLastNonWhitespaceColumn(e)),
                            o.decorations.push(he(e, t, e, n, ue.charInsert));
                        }
                      else
                        o.decorations.push(
                          he(
                            i.modifiedStartLineNumber,
                            i.modifiedStartColumn,
                            i.modifiedEndLineNumber,
                            i.modifiedEndColumn,
                            ue.charInsert
                          )
                        );
                  }
                else
                  o.decorations.push(
                    he(
                      r.modifiedStartLineNumber,
                      1,
                      r.modifiedEndLineNumber,
                      1073741824,
                      ue.charInsertWholeLine
                    )
                  );
            }
            return o;
          }
          layout() {
            return Math.max(5, this.decorationsLeft);
          }
        }
        class me extends de {
          constructor(e, t, i, n, r, s) {
            super(e, t, n.getOption(51), i, r.getOption(51)),
              (this.originalModel = n.getModel()),
              (this.modifiedEditorOptions = r.getOptions()),
              (this.modifiedEditorTabSize = r.getModel().getOptions().tabSize),
              (this.renderIndicators = s);
          }
          _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() {
            let e = document.createElement('div');
            return (e.className = 'inline-added-margin-view-zone'), e;
          }
          _produceOriginalFromDiff(e, t, i) {
            let n = document.createElement('div');
            return (
              (n.className = 'inline-added-margin-view-zone'),
              {
                afterLineNumber: Math.max(
                  e.originalStartLineNumber,
                  e.originalEndLineNumber
                ),
                heightInLines: i,
                domNode: document.createElement('div'),
                marginDomNode: n,
              }
            );
          }
          _produceModifiedFromDiff(e, t, i) {
            let n = [];
            if (e.charChanges)
              for (let t = 0, i = e.charChanges.length; t < i; t++) {
                let i = e.charChanges[t];
                be(i) &&
                  n.push(
                    new k.$t(
                      new B.e(
                        i.originalStartLineNumber,
                        i.originalStartColumn,
                        i.originalEndLineNumber,
                        i.originalEndColumn
                      ),
                      'char-delete',
                      0
                    )
                  );
              }
            let r = (0, W.l$)(1e4),
              s = [];
            const o = this.modifiedEditorOptions.get(117),
              a = this.modifiedEditorOptions.get(36),
              l = o.decorationsWidth;
            let c = this.modifiedEditorOptions.get(51);
            const d = a.typicalHalfwidthCharacterWidth;
            let u = 0;
            const g = [];
            for (
              let t = e.originalStartLineNumber;
              t <= e.originalEndLineNumber;
              t++
            )
              if (
                ((u = Math.max(
                  u,
                  this._renderOriginalLine(
                    t - e.originalStartLineNumber,
                    this.originalModel,
                    this.modifiedEditorOptions,
                    this.modifiedEditorTabSize,
                    t,
                    n,
                    r
                  )
                )),
                g.push(this.originalModel.getLineContent(t)),
                this.renderIndicators)
              ) {
                let i = t - e.originalStartLineNumber;
                s = s.concat([
                  `<div class="delete-sign ${
                    oe.classNames
                  }" style="position:absolute;top:${
                    i * c
                  }px;width:${l}px;height:${c}px;right:0;"></div>`,
                ]);
              }
            u += this.modifiedEditorOptions.get(85);
            let f = document.createElement('div');
            (f.className = `view-lines line-delete ${te.S}`),
              (f.innerHTML = r.build()),
              h.V.applyFontInfoSlow(f, a);
            let p = document.createElement('div');
            return (
              (p.className = 'inline-deleted-margin-view-zone'),
              (p.innerHTML = s.join('')),
              h.V.applyFontInfoSlow(p, a),
              {
                shouldNotShrink: !0,
                afterLineNumber:
                  0 === e.modifiedEndLineNumber
                    ? e.modifiedStartLineNumber
                    : e.modifiedStartLineNumber - 1,
                heightInLines: t,
                minWidthInPx: u * d,
                domNode: f,
                marginDomNode: p,
                diff: {
                  originalStartLineNumber: e.originalStartLineNumber,
                  originalEndLineNumber: e.originalEndLineNumber,
                  modifiedStartLineNumber: e.modifiedStartLineNumber,
                  modifiedEndLineNumber: e.modifiedEndLineNumber,
                  originalContent: g,
                },
              }
            );
          }
          _renderOriginalLine(e, t, i, n, r, s, o) {
            const a = t.getLineTokens(r),
              l = a.getLineContent(),
              c = i.get(36),
              d = z.Kp.filter(s, r, 1, l.length + 1);
            o.appendASCIIString('<div class="view-line'),
              0 === s.length && o.appendASCIIString(' char-delete'),
              o.appendASCIIString('" style="top:'),
              o.appendASCIIString(String(e * i.get(51))),
              o.appendASCIIString('px;width:1000000px;">');
            const h = k.wA.isBasicASCII(l, t.mightContainNonBasicASCII()),
              u = k.wA.containsRTL(l, h, t.mightContainRTL()),
              g = (0, S.d1)(
                new S.IJ(
                  c.isMonospace && !i.get(24),
                  c.canUseHalfwidthRightwardsArrow,
                  l,
                  !1,
                  h,
                  u,
                  0,
                  a,
                  d,
                  n,
                  0,
                  c.spaceWidth,
                  c.middotWidth,
                  c.wsmiddotWidth,
                  i.get(95),
                  i.get(80),
                  i.get(74),
                  i.get(37) !== v.n0.OFF,
                  null
                ),
                o
              );
            o.appendASCIIString('</div>');
            const f = g.characterMapping.getAbsoluteOffsets();
            return f.length > 0 ? f[f.length - 1] : 0;
          }
        }
        function _e(e) {
          return e.modifiedEndLineNumber > 0;
        }
        function be(e) {
          return e.originalEndLineNumber > 0;
        }
        (0, M.Ic)((e, t) => {
          const i = e.getColor(L.yp);
          i &&
            (t.addRule(
              `.monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ${i}; }`
            ),
            t.addRule(
              `.monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ${i}; }`
            ),
            t.addRule(
              `.monaco-editor .inline-added-margin-view-zone { background-color: ${i}; }`
            ));
          const n = e.getColor(L.P4);
          n &&
            (t.addRule(
              `.monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ${n}; }`
            ),
            t.addRule(
              `.monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ${n}; }`
            ),
            t.addRule(
              `.monaco-editor .inline-deleted-margin-view-zone { background-color: ${n}; }`
            ));
          const r = e.getColor(L.XL);
          r &&
            t.addRule(
              `.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${
                'hc' === e.type ? 'dashed' : 'solid'
              } ${r}; }`
            );
          const s = e.getColor(L.mH);
          s &&
            t.addRule(
              `.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${
                'hc' === e.type ? 'dashed' : 'solid'
              } ${s}; }`
            );
          const o = e.getColor(L._w);
          o &&
            t.addRule(
              `.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${o}; }`
            );
          const a = e.getColor(L.LL);
          a &&
            t.addRule(
              `.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${a}; }`
            );
          const l = e.getColor(L.et);
          l &&
            t.addRule(
              `\n\t\t\t.monaco-diff-editor .diffViewport {\n\t\t\t\tbackground: ${l};\n\t\t\t}\n\t\t`
            );
          const c = e.getColor(L.AB);
          c &&
            t.addRule(
              `\n\t\t\t.monaco-diff-editor .diffViewport:hover {\n\t\t\t\tbackground: ${c};\n\t\t\t}\n\t\t`
            );
          const d = e.getColor(L.yn);
          d &&
            t.addRule(
              `\n\t\t\t.monaco-diff-editor .diffViewport:active {\n\t\t\t\tbackground: ${d};\n\t\t\t}\n\t\t`
            );
          const h = e.getColor(L.L_);
          t.addRule(
            `\n\t.monaco-editor .diagonal-fill {\n\t\tbackground-image: linear-gradient(\n\t\t\t-45deg,\n\t\t\t${h} 12.5%,\n\t\t\t#0000 12.5%, #0000 50%,\n\t\t\t${h} 50%, ${h} 62.5%,\n\t\t\t#0000 62.5%, #0000 100%\n\t\t);\n\t\tbackground-size: 8px 8px;\n\t}\n\t`
          );
        });
      },
      75623: (e, t, i) => {
        'use strict';
        i.d(t, { F: () => c });
        var n = i(35146),
          r = i(4669),
          s = i(5976),
          o = i(36248),
          a = i(24314);
        const l = {
          followsCaret: !0,
          ignoreCharChanges: !0,
          alwaysRevealFirst: !0,
        };
        class c extends s.JT {
          constructor(e, t = {}) {
            super(),
              (this._onDidUpdate = this._register(new r.Q5())),
              (this._editor = e),
              (this._options = o.jB(t, l, !1)),
              (this.disposed = !1),
              (this.nextIdx = -1),
              (this.ranges = []),
              (this.ignoreSelectionChange = !1),
              (this.revealFirst = Boolean(this._options.alwaysRevealFirst)),
              this._register(this._editor.onDidDispose(() => this.dispose())),
              this._register(
                this._editor.onDidUpdateDiff(() => this._onDiffUpdated())
              ),
              this._options.followsCaret &&
                this._register(
                  this._editor
                    .getModifiedEditor()
                    .onDidChangeCursorPosition((e) => {
                      this.ignoreSelectionChange || (this.nextIdx = -1);
                    })
                ),
              this._options.alwaysRevealFirst &&
                this._register(
                  this._editor.getModifiedEditor().onDidChangeModel((e) => {
                    this.revealFirst = !0;
                  })
                ),
              this._init();
          }
          _init() {
            this._editor.getLineChanges();
          }
          _onDiffUpdated() {
            this._init(),
              this._compute(this._editor.getLineChanges()),
              this.revealFirst &&
                null !== this._editor.getLineChanges() &&
                ((this.revealFirst = !1), (this.nextIdx = -1), this.next(1));
          }
          _compute(e) {
            (this.ranges = []),
              e &&
                e.forEach((e) => {
                  !this._options.ignoreCharChanges && e.charChanges
                    ? e.charChanges.forEach((e) => {
                        this.ranges.push({
                          rhs: !0,
                          range: new a.e(
                            e.modifiedStartLineNumber,
                            e.modifiedStartColumn,
                            e.modifiedEndLineNumber,
                            e.modifiedEndColumn
                          ),
                        });
                      })
                    : this.ranges.push({
                        rhs: !0,
                        range: new a.e(
                          e.modifiedStartLineNumber,
                          1,
                          e.modifiedStartLineNumber,
                          1
                        ),
                      });
                }),
              this.ranges.sort((e, t) =>
                e.range
                  .getStartPosition()
                  .isBeforeOrEqual(t.range.getStartPosition())
                  ? -1
                  : t.range
                      .getStartPosition()
                      .isBeforeOrEqual(e.range.getStartPosition())
                  ? 1
                  : 0
              ),
              this._onDidUpdate.fire(this);
          }
          _initIdx(e) {
            let t = !1,
              i = this._editor.getPosition();
            if (i) {
              for (let n = 0, r = this.ranges.length; n < r && !t; n++) {
                let r = this.ranges[n].range;
                i.isBeforeOrEqual(r.getStartPosition()) &&
                  ((this.nextIdx = n + (e ? 0 : -1)), (t = !0));
              }
              t || (this.nextIdx = e ? 0 : this.ranges.length - 1),
                this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1);
            } else this.nextIdx = 0;
          }
          _move(e, t) {
            if (
              (n.ok(
                !this.disposed,
                'Illegal State - diff navigator has been disposed'
              ),
              !this.canNavigate())
            )
              return;
            -1 === this.nextIdx
              ? this._initIdx(e)
              : e
              ? ((this.nextIdx += 1),
                this.nextIdx >= this.ranges.length && (this.nextIdx = 0))
              : ((this.nextIdx -= 1),
                this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1));
            let i = this.ranges[this.nextIdx];
            this.ignoreSelectionChange = !0;
            try {
              let e = i.range.getStartPosition();
              this._editor.setPosition(e),
                this._editor.revealPositionInCenter(e, t);
            } finally {
              this.ignoreSelectionChange = !1;
            }
          }
          canNavigate() {
            return this.ranges && this.ranges.length > 0;
          }
          next(e = 0) {
            this._move(!0, e);
          }
          previous(e = 0) {
            this._move(!1, e);
          }
          dispose() {
            super.dispose(), (this.ranges = []), (this.disposed = !0);
          }
        }
      },
      84527: (e, t, i) => {
        'use strict';
        i.d(t, { H: () => g });
        var n = i(36248),
          r = i(11640),
          s = i(95190),
          o = i(94565),
          a = i(38819),
          l = i(72065),
          c = i(59422),
          d = i(97781),
          h = i(31106),
          u = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let g = class extends s.Gm {
          constructor(e, t, i, n, r, s, o, a, l, c) {
            super(
              e,
              Object.assign(Object.assign({}, i.getRawOptions()), {
                overflowWidgetsDomNode: i.getOverflowWidgetsDomNode(),
              }),
              {},
              n,
              r,
              s,
              o,
              a,
              l,
              c
            ),
              (this._parentEditor = i),
              (this._overwriteOptions = t),
              super.updateOptions(this._overwriteOptions),
              this._register(
                i.onDidChangeConfiguration((e) =>
                  this._onParentConfigurationChanged(e)
                )
              );
          }
          getParentEditor() {
            return this._parentEditor;
          }
          _onParentConfigurationChanged(e) {
            super.updateOptions(this._parentEditor.getRawOptions()),
              super.updateOptions(this._overwriteOptions);
          }
          updateOptions(e) {
            n.jB(this._overwriteOptions, e, !0),
              super.updateOptions(this._overwriteOptions);
          }
        };
        g = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            u(3, l.TG),
            u(4, r.$),
            u(5, o.H),
            u(6, a.i6),
            u(7, d.XE),
            u(8, c.lT),
            u(9, h.F),
          ],
          g
        );
      },
      61329: (e, t, i) => {
        'use strict';
        i.d(t, {
          T4: () => r,
          OY: () => s,
          Sj: () => o,
          Uo: () => a,
          hP: () => l,
        });
        var n = i(3860);
        class r {
          constructor(e, t, i = !1) {
            (this._range = e),
              (this._text = t),
              (this.insertsAutoWhitespace = i);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(this._range, this._text);
          }
          computeCursorState(e, t) {
            let i = t.getInverseEditOperations()[0].range;
            return new n.Y(
              i.endLineNumber,
              i.endColumn,
              i.endLineNumber,
              i.endColumn
            );
          }
        }
        class s {
          constructor(e, t) {
            (this._range = e), (this._text = t);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(this._range, this._text);
          }
          computeCursorState(e, t) {
            const i = t.getInverseEditOperations()[0].range;
            return new n.Y(
              i.startLineNumber,
              i.startColumn,
              i.endLineNumber,
              i.endColumn
            );
          }
        }
        class o {
          constructor(e, t, i = !1) {
            (this._range = e),
              (this._text = t),
              (this.insertsAutoWhitespace = i);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(this._range, this._text);
          }
          computeCursorState(e, t) {
            let i = t.getInverseEditOperations()[0].range;
            return new n.Y(
              i.startLineNumber,
              i.startColumn,
              i.startLineNumber,
              i.startColumn
            );
          }
        }
        class a {
          constructor(e, t, i, n, r = !1) {
            (this._range = e),
              (this._text = t),
              (this._columnDeltaOffset = n),
              (this._lineNumberDeltaOffset = i),
              (this.insertsAutoWhitespace = r);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(this._range, this._text);
          }
          computeCursorState(e, t) {
            let i = t.getInverseEditOperations()[0].range;
            return new n.Y(
              i.endLineNumber + this._lineNumberDeltaOffset,
              i.endColumn + this._columnDeltaOffset,
              i.endLineNumber + this._lineNumberDeltaOffset,
              i.endColumn + this._columnDeltaOffset
            );
          }
        }
        class l {
          constructor(e, t, i, n = !1) {
            (this._range = e),
              (this._text = t),
              (this._initialSelection = i),
              (this._forceMoveMarkers = n),
              (this._selectionId = null);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(
              this._range,
              this._text,
              this._forceMoveMarkers
            ),
              (this._selectionId = t.trackSelection(this._initialSelection));
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this._selectionId);
          }
        }
      },
      10291: (e, t, i) => {
        'use strict';
        i.d(t, { U: () => d });
        var n = i(97295),
          r = i(33181),
          s = i(24314),
          o = i(3860),
          a = i(83831);
        const l = Object.create(null);
        function c(e, t) {
          l[e] || (l[e] = ['', e]);
          const i = l[e];
          for (let n = i.length; n <= t; n++) i[n] = i[n - 1] + e;
          return i[t];
        }
        class d {
          constructor(e, t) {
            (this._opts = t),
              (this._selection = e),
              (this._selectionId = null),
              (this._useLastEditRangeForCursorEndPosition = !1),
              (this._selectionStartColumnStaysPut = !1);
          }
          static unshiftIndent(e, t, i, n, s) {
            const o = r.io.visibleColumnFromColumn(e, t, i);
            if (s) {
              const e = c(' ', n);
              return c(e, r.io.prevIndentTabStop(o, n) / n);
            }
            return c('\t', r.io.prevRenderTabStop(o, i) / i);
          }
          static shiftIndent(e, t, i, n, s) {
            const o = r.io.visibleColumnFromColumn(e, t, i);
            if (s) {
              const e = c(' ', n);
              return c(e, r.io.nextIndentTabStop(o, n) / n);
            }
            return c('\t', r.io.nextRenderTabStop(o, i) / i);
          }
          _addEditOperation(e, t, i) {
            this._useLastEditRangeForCursorEndPosition
              ? e.addTrackedEditOperation(t, i)
              : e.addEditOperation(t, i);
          }
          getEditOperations(e, t) {
            const i = this._selection.startLineNumber;
            let o = this._selection.endLineNumber;
            1 === this._selection.endColumn && i !== o && (o -= 1);
            const { tabSize: l, indentSize: h, insertSpaces: u } = this._opts,
              g = i === o;
            if (this._opts.useTabStops) {
              this._selection.isEmpty() &&
                /^\s*$/.test(e.getLineContent(i)) &&
                (this._useLastEditRangeForCursorEndPosition = !0);
              let c = 0,
                f = 0;
              for (let p = i; p <= o; p++, c = f) {
                f = 0;
                let o,
                  m = e.getLineContent(p),
                  _ = n.LC(m);
                if (
                  (!this._opts.isUnshift || (0 !== m.length && 0 !== _)) &&
                  (g || this._opts.isUnshift || 0 !== m.length)
                ) {
                  if (
                    (-1 === _ && (_ = m.length),
                    p > 1 &&
                      r.io.visibleColumnFromColumn(m, _ + 1, l) % h != 0 &&
                      e.isCheapToTokenize(p - 1))
                  ) {
                    let t = a.zu.getEnterAction(
                      this._opts.autoIndent,
                      e,
                      new s.e(
                        p - 1,
                        e.getLineMaxColumn(p - 1),
                        p - 1,
                        e.getLineMaxColumn(p - 1)
                      )
                    );
                    if (t) {
                      if (((f = c), t.appendText))
                        for (
                          let e = 0, i = t.appendText.length;
                          e < i && f < h && 32 === t.appendText.charCodeAt(e);
                          e++
                        )
                          f++;
                      t.removeText && (f = Math.max(0, f - t.removeText));
                      for (
                        let e = 0;
                        e < f && 0 !== _ && 32 === m.charCodeAt(_ - 1);
                        e++
                      )
                        _--;
                    }
                  }
                  (this._opts.isUnshift && 0 === _) ||
                    ((o = this._opts.isUnshift
                      ? d.unshiftIndent(m, _ + 1, l, h, u)
                      : d.shiftIndent(m, _ + 1, l, h, u)),
                    this._addEditOperation(t, new s.e(p, 1, p, _ + 1), o),
                    p !== i ||
                      this._selection.isEmpty() ||
                      (this._selectionStartColumnStaysPut =
                        this._selection.startColumn <= _ + 1));
                }
              }
            } else {
              !this._opts.isUnshift &&
                this._selection.isEmpty() &&
                0 === e.getLineLength(i) &&
                (this._useLastEditRangeForCursorEndPosition = !0);
              const r = u ? c(' ', h) : '\t';
              for (let a = i; a <= o; a++) {
                const o = e.getLineContent(a);
                let l = n.LC(o);
                if (
                  (!this._opts.isUnshift || (0 !== o.length && 0 !== l)) &&
                  (g || this._opts.isUnshift || 0 !== o.length) &&
                  (-1 === l && (l = o.length), !this._opts.isUnshift || 0 !== l)
                )
                  if (this._opts.isUnshift) {
                    l = Math.min(l, h);
                    for (let e = 0; e < l; e++)
                      if (9 === o.charCodeAt(e)) {
                        l = e + 1;
                        break;
                      }
                    this._addEditOperation(t, new s.e(a, 1, a, l + 1), '');
                  } else
                    this._addEditOperation(t, new s.e(a, 1, a, 1), r),
                      a !== i ||
                        this._selection.isEmpty() ||
                        (this._selectionStartColumnStaysPut =
                          1 === this._selection.startColumn);
              }
            }
            this._selectionId = t.trackSelection(this._selection);
          }
          computeCursorState(e, t) {
            if (this._useLastEditRangeForCursorEndPosition) {
              let e = t.getInverseEditOperations()[0];
              return new o.Y(
                e.range.endLineNumber,
                e.range.endColumn,
                e.range.endLineNumber,
                e.range.endColumn
              );
            }
            const i = t.getTrackedSelection(this._selectionId);
            if (this._selectionStartColumnStaysPut) {
              let e = this._selection.startColumn;
              return i.startColumn <= e
                ? i
                : 0 === i.getDirection()
                ? new o.Y(i.startLineNumber, e, i.endLineNumber, i.endColumn)
                : new o.Y(i.endLineNumber, i.endColumn, i.startLineNumber, e);
            }
            return i;
          }
        }
      },
      56345: (e, t, i) => {
        'use strict';
        i.d(t, { nG: () => f, fv: () => y, ei: () => M, Pe: () => D });
        var n = i(63580),
          r = i(4669),
          s = i(5976),
          o = i(36248),
          a = i(9488),
          l = i(64141),
          c = i(82334),
          d = i(27374),
          h = i(23193),
          u = i(89872),
          g = i(6626);
        const f = new (class {
            constructor() {
              (this._tabFocus = !1),
                (this._onDidChangeTabFocus = new r.Q5()),
                (this.onDidChangeTabFocus = this._onDidChangeTabFocus.event);
            }
            getTabFocusMode() {
              return this._tabFocus;
            }
            setTabFocusMode(e) {
              this._tabFocus !== e &&
                ((this._tabFocus = e),
                this._onDidChangeTabFocus.fire(this._tabFocus));
            }
          })(),
          p = Object.hasOwnProperty;
        class m {
          constructor() {
            this._values = [];
          }
          _read(e) {
            return this._values[e];
          }
          get(e) {
            return this._values[e];
          }
          _write(e, t) {
            this._values[e] = t;
          }
        }
        class _ {
          constructor() {
            this._values = [];
          }
          _read(e) {
            return this._values[e];
          }
          _write(e, t) {
            this._values[e] = t;
          }
        }
        class b {
          static readOptions(e) {
            const t = e,
              i = new _();
            for (const e of l.Bc) {
              const n = '_never_' === e.name ? void 0 : t[e.name];
              i._write(e.id, n);
            }
            return i;
          }
          static validateOptions(e) {
            const t = new l.hu();
            for (const i of l.Bc) t._write(i.id, i.validate(e._read(i.id)));
            return t;
          }
          static computeOptions(e, t) {
            const i = new m();
            for (const n of l.Bc)
              i._write(n.id, n.compute(t, i, e._read(n.id)));
            return i;
          }
          static _deepEquals(e, t) {
            if ('object' != typeof e || 'object' != typeof t) return e === t;
            if (Array.isArray(e) || Array.isArray(t))
              return !(!Array.isArray(e) || !Array.isArray(t)) && a.fS(e, t);
            for (let i in e) if (!b._deepEquals(e[i], t[i])) return !1;
            return !0;
          }
          static checkEquals(e, t) {
            const i = [];
            let n = !1;
            for (const r of l.Bc) {
              const s = !b._deepEquals(e._read(r.id), t._read(r.id));
              (i[r.id] = s), s && (n = !0);
            }
            return n ? new l.Bb(i) : null;
          }
        }
        function v(e) {
          const t = o.I8(e);
          return (
            (function (e) {
              const t = e.wordWrap;
              !0 === t ? (e.wordWrap = 'on') : !1 === t && (e.wordWrap = 'off');
              const i = e.lineNumbers;
              !0 === i
                ? (e.lineNumbers = 'on')
                : !1 === i && (e.lineNumbers = 'off'),
                !1 === e.autoClosingBrackets &&
                  ((e.autoClosingBrackets = 'never'),
                  (e.autoClosingQuotes = 'never'),
                  (e.autoSurround = 'never')),
                'visible' === e.cursorBlinking && (e.cursorBlinking = 'solid');
              const n = e.renderWhitespace;
              !0 === n
                ? (e.renderWhitespace = 'boundary')
                : !1 === n && (e.renderWhitespace = 'none');
              const r = e.renderLineHighlight;
              !0 === r
                ? (e.renderLineHighlight = 'line')
                : !1 === r && (e.renderLineHighlight = 'none');
              const s = e.acceptSuggestionOnEnter;
              !0 === s
                ? (e.acceptSuggestionOnEnter = 'on')
                : !1 === s && (e.acceptSuggestionOnEnter = 'off');
              const o = e.tabCompletion;
              !1 === o
                ? (e.tabCompletion = 'off')
                : !0 === o && (e.tabCompletion = 'onlySnippets');
              const a = e.suggest;
              if (a && 'object' == typeof a.filteredTypes && a.filteredTypes) {
                const e = {
                  method: 'showMethods',
                  function: 'showFunctions',
                  constructor: 'showConstructors',
                  field: 'showFields',
                  variable: 'showVariables',
                  class: 'showClasses',
                  struct: 'showStructs',
                  interface: 'showInterfaces',
                  module: 'showModules',
                  property: 'showProperties',
                  event: 'showEvents',
                  operator: 'showOperators',
                  unit: 'showUnits',
                  value: 'showValues',
                  constant: 'showConstants',
                  enum: 'showEnums',
                  enumMember: 'showEnumMembers',
                  keyword: 'showKeywords',
                  text: 'showWords',
                  color: 'showColors',
                  file: 'showFiles',
                  reference: 'showReferences',
                  folder: 'showFolders',
                  typeParameter: 'showTypeParameters',
                  snippet: 'showSnippets',
                };
                (0, g.E)(e, (e) => {
                  const t = a.filteredTypes[e.key];
                  !1 === t && (a[e.value] = t);
                });
              }
              const l = e.hover;
              !0 === l
                ? (e.hover = { enabled: !0 })
                : !1 === l && (e.hover = { enabled: !1 });
              const c = e.parameterHints;
              !0 === c
                ? (e.parameterHints = { enabled: !0 })
                : !1 === c && (e.parameterHints = { enabled: !1 });
              const d = e.autoIndent;
              !0 === d
                ? (e.autoIndent = 'full')
                : !1 === d && (e.autoIndent = 'advanced');
              const h = e.matchBrackets;
              !0 === h
                ? (e.matchBrackets = 'always')
                : !1 === h && (e.matchBrackets = 'never');
            })(t),
            t
          );
        }
        class y extends s.JT {
          constructor(e, t) {
            super(),
              (this._onDidChange = this._register(new r.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._onDidChangeFast = this._register(new r.Q5())),
              (this.onDidChangeFast = this._onDidChangeFast.event),
              (this.isSimpleWidget = e),
              (this._isDominatedByLongLines = !1),
              (this._computeOptionsMemory = new l.LJ()),
              (this._viewLineCount = 1),
              (this._lineNumbersDigitCount = 1),
              (this._rawOptions = v(t)),
              (this._readOptions = b.readOptions(this._rawOptions)),
              (this._validatedOptions = b.validateOptions(this._readOptions)),
              this._register(
                c.C.onDidChangeZoomLevel((e) => this._recomputeOptions())
              ),
              this._register(
                f.onDidChangeTabFocus((e) => this._recomputeOptions())
              );
          }
          observeReferenceElement(e) {}
          dispose() {
            super.dispose();
          }
          _recomputeOptions() {
            const e = this.options,
              t = this._computeInternalOptions();
            if (e) {
              const i = b.checkEquals(e, t);
              if (null === i) return;
              (this.options = t),
                this._onDidChangeFast.fire(i),
                this._onDidChange.fire(i);
            } else this.options = t;
          }
          getRawOptions() {
            return this._rawOptions;
          }
          _computeInternalOptions() {
            const e = this._getEnvConfiguration(),
              t = d.E.createFromValidatedSettings(
                this._validatedOptions,
                e.zoomLevel,
                this.isSimpleWidget
              ),
              i = {
                memory: this._computeOptionsMemory,
                outerWidth: e.outerWidth,
                outerHeight: e.outerHeight,
                fontInfo: this.readConfiguration(t),
                extraEditorClassName: e.extraEditorClassName,
                isDominatedByLongLines: this._isDominatedByLongLines,
                viewLineCount: this._viewLineCount,
                lineNumbersDigitCount: this._lineNumbersDigitCount,
                emptySelectionClipboard: e.emptySelectionClipboard,
                pixelRatio: e.pixelRatio,
                tabFocusMode: f.getTabFocusMode(),
                accessibilitySupport: e.accessibilitySupport,
              };
            return b.computeOptions(this._validatedOptions, i);
          }
          static _subsetEquals(e, t) {
            for (const i in t)
              if (p.call(t, i)) {
                const n = t[i],
                  r = e[i];
                if (r === n) continue;
                if (Array.isArray(r) && Array.isArray(n)) {
                  if (!a.fS(r, n)) return !1;
                  continue;
                }
                if (r && 'object' == typeof r && n && 'object' == typeof n) {
                  if (!this._subsetEquals(r, n)) return !1;
                  continue;
                }
                return !1;
              }
            return !0;
          }
          updateOptions(e) {
            if (void 0 === e) return;
            const t = v(e);
            y._subsetEquals(this._rawOptions, t) ||
              ((this._rawOptions = o.jB(this._rawOptions, t || {})),
              (this._readOptions = b.readOptions(this._rawOptions)),
              (this._validatedOptions = b.validateOptions(this._readOptions)),
              this._recomputeOptions());
          }
          setIsDominatedByLongLines(e) {
            (this._isDominatedByLongLines = e), this._recomputeOptions();
          }
          setMaxLineNumber(e) {
            const t = y._digitCount(e);
            this._lineNumbersDigitCount !== t &&
              ((this._lineNumbersDigitCount = t), this._recomputeOptions());
          }
          setViewLineCount(e) {
            this._viewLineCount !== e &&
              ((this._viewLineCount = e), this._recomputeOptions());
          }
          static _digitCount(e) {
            let t = 0;
            for (; e; ) (e = Math.floor(e / 10)), t++;
            return t || 1;
          }
        }
        const w = Object.freeze({
            id: 'editor',
            order: 5,
            type: 'object',
            title: n.N('editorConfigurationTitle', 'Editor'),
            scope: 5,
          }),
          C = u.B.as(h.IP.Configuration),
          S = Object.assign(Object.assign({}, w), {
            properties: {
              'editor.tabSize': {
                type: 'number',
                default: l.DB.tabSize,
                minimum: 1,
                markdownDescription: n.N(
                  'tabSize',
                  'The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.'
                ),
              },
              'editor.insertSpaces': {
                type: 'boolean',
                default: l.DB.insertSpaces,
                markdownDescription: n.N(
                  'insertSpaces',
                  'Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.'
                ),
              },
              'editor.detectIndentation': {
                type: 'boolean',
                default: l.DB.detectIndentation,
                markdownDescription: n.N(
                  'detectIndentation',
                  'Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.'
                ),
              },
              'editor.trimAutoWhitespace': {
                type: 'boolean',
                default: l.DB.trimAutoWhitespace,
                description: n.N(
                  'trimAutoWhitespace',
                  'Remove trailing auto inserted whitespace.'
                ),
              },
              'editor.largeFileOptimizations': {
                type: 'boolean',
                default: l.DB.largeFileOptimizations,
                description: n.N(
                  'largeFileOptimizations',
                  'Special handling for large files to disable certain memory intensive features.'
                ),
              },
              'editor.wordBasedSuggestions': {
                type: 'boolean',
                default: !0,
                description: n.N(
                  'wordBasedSuggestions',
                  'Controls whether completions should be computed based on words in the document.'
                ),
              },
              'editor.semanticHighlighting.enabled': {
                enum: [!0, !1, 'configuredByTheme'],
                enumDescriptions: [
                  n.N(
                    'semanticHighlighting.true',
                    'Semantic highlighting enabled for all color themes.'
                  ),
                  n.N(
                    'semanticHighlighting.false',
                    'Semantic highlighting disabled for all color themes.'
                  ),
                  n.N(
                    'semanticHighlighting.configuredByTheme',
                    "Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting."
                  ),
                ],
                default: 'configuredByTheme',
                description: n.N(
                  'semanticHighlighting.enabled',
                  'Controls whether the semanticHighlighting is shown for the languages that support it.'
                ),
              },
              'editor.stablePeek': {
                type: 'boolean',
                default: !1,
                markdownDescription: n.N(
                  'stablePeek',
                  'Keep peek editors open even when double clicking their content or when hitting `Escape`.'
                ),
              },
              'editor.maxTokenizationLineLength': {
                type: 'integer',
                default: 2e4,
                description: n.N(
                  'maxTokenizationLineLength',
                  'Lines above this length will not be tokenized for performance reasons'
                ),
              },
              'diffEditor.maxComputationTime': {
                type: 'number',
                default: 5e3,
                description: n.N(
                  'maxComputationTime',
                  'Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.'
                ),
              },
              'diffEditor.renderSideBySide': {
                type: 'boolean',
                default: !0,
                description: n.N(
                  'sideBySide',
                  'Controls whether the diff editor shows the diff side by side or inline.'
                ),
              },
              'diffEditor.ignoreTrimWhitespace': {
                type: 'boolean',
                default: !0,
                description: n.N(
                  'ignoreTrimWhitespace',
                  'When enabled, the diff editor ignores changes in leading or trailing whitespace.'
                ),
              },
              'diffEditor.renderIndicators': {
                type: 'boolean',
                default: !0,
                description: n.N(
                  'renderIndicators',
                  'Controls whether the diff editor shows +/- indicators for added/removed changes.'
                ),
              },
              'diffEditor.codeLens': {
                type: 'boolean',
                default: !1,
                description: n.N(
                  'codeLens',
                  'Controls whether the editor shows CodeLens.'
                ),
              },
            },
          });
        for (const e of l.Bc) {
          const t = e.schema;
          if (void 0 !== t)
            if (void 0 !== (k = t).type || void 0 !== k.anyOf)
              S.properties[`editor.${e.name}`] = t;
            else for (let e in t) p.call(t, e) && (S.properties[e] = t[e]);
        }
        var k;
        let x = null;
        function L() {
          return (
            null === x &&
              ((x = Object.create(null)),
              Object.keys(S.properties).forEach((e) => {
                x[e] = !0;
              })),
            x
          );
        }
        function M(e) {
          return L()[`editor.${e}`] || !1;
        }
        function D(e) {
          return L()[`diffEditor.${e}`] || !1;
        }
        C.registerConfiguration(S);
      },
      64141: (e, t, i) => {
        'use strict';
        i.d(t, {
          y0: () => o,
          Bb: () => a,
          hu: () => l,
          LJ: () => c,
          d2: () => v,
          n0: () => y,
          gk: () => C,
          $J: () => S,
          hL: () => x,
          DB: () => L,
          Bc: () => M,
          BH: () => N,
        });
        var n = i(63580),
          r = i(1432),
          s = i(97461);
        const o = 8;
        class a {
          constructor(e) {
            this._values = e;
          }
          hasChanged(e) {
            return this._values[e];
          }
        }
        class l {
          constructor() {
            this._values = [];
          }
          _read(e) {
            return this._values[e];
          }
          get(e) {
            return this._values[e];
          }
          _write(e, t) {
            this._values[e] = t;
          }
        }
        class c {
          constructor() {
            (this.stableMinimapLayoutInput = null),
              (this.stableFitMaxMinimapScale = 0),
              (this.stableFitRemainingWidth = 0);
          }
        }
        class d {
          constructor(e, t, i, n) {
            (this.id = e),
              (this.name = t),
              (this.defaultValue = i),
              (this.schema = n);
          }
          compute(e, t, i) {
            return i;
          }
        }
        class h {
          constructor(e, t = null) {
            (this.schema = void 0),
              (this.id = e),
              (this.name = '_never_'),
              (this.defaultValue = void 0),
              (this.deps = t);
          }
          validate(e) {
            return this.defaultValue;
          }
        }
        class u {
          constructor(e, t, i, n) {
            (this.id = e),
              (this.name = t),
              (this.defaultValue = i),
              (this.schema = n);
          }
          validate(e) {
            return void 0 === e ? this.defaultValue : e;
          }
          compute(e, t, i) {
            return i;
          }
        }
        class g extends u {
          static boolean(e, t) {
            return void 0 === e ? t : 'false' !== e && Boolean(e);
          }
          constructor(e, t, i, n) {
            void 0 !== n && ((n.type = 'boolean'), (n.default = i)),
              super(e, t, i, n);
          }
          validate(e) {
            return g.boolean(e, this.defaultValue);
          }
        }
        class f extends u {
          constructor(e, t, i, n, r, s) {
            void 0 !== s &&
              ((s.type = 'integer'),
              (s.default = i),
              (s.minimum = n),
              (s.maximum = r)),
              super(e, t, i, s),
              (this.minimum = n),
              (this.maximum = r);
          }
          static clampedInt(e, t, i, n) {
            if (void 0 === e) return t;
            let r = parseInt(e, 10);
            return isNaN(r)
              ? t
              : ((r = Math.max(i, r)), (r = Math.min(n, r)), 0 | r);
          }
          validate(e) {
            return f.clampedInt(
              e,
              this.defaultValue,
              this.minimum,
              this.maximum
            );
          }
        }
        class p extends u {
          constructor(e, t, i, n, r) {
            void 0 !== r && ((r.type = 'number'), (r.default = i)),
              super(e, t, i, r),
              (this.validationFn = n);
          }
          static clamp(e, t, i) {
            return e < t ? t : e > i ? i : e;
          }
          static float(e, t) {
            if ('number' == typeof e) return e;
            if (void 0 === e) return t;
            const i = parseFloat(e);
            return isNaN(i) ? t : i;
          }
          validate(e) {
            return this.validationFn(p.float(e, this.defaultValue));
          }
        }
        class m extends u {
          static string(e, t) {
            return 'string' != typeof e ? t : e;
          }
          constructor(e, t, i, n) {
            void 0 !== n && ((n.type = 'string'), (n.default = i)),
              super(e, t, i, n);
          }
          validate(e) {
            return m.string(e, this.defaultValue);
          }
        }
        class _ extends u {
          constructor(e, t, i, n, r) {
            void 0 !== r &&
              ((r.type = 'string'), (r.enum = n), (r.default = i)),
              super(e, t, i, r),
              (this._allowedValues = n);
          }
          static stringSet(e, t, i) {
            return 'string' != typeof e || -1 === i.indexOf(e) ? t : e;
          }
          validate(e) {
            return _.stringSet(e, this.defaultValue, this._allowedValues);
          }
        }
        class b extends d {
          constructor(e, t, i, n, r, s, o) {
            void 0 !== o &&
              ((o.type = 'string'), (o.enum = r), (o.default = n)),
              super(e, t, i, o),
              (this._allowedValues = r),
              (this._convert = s);
          }
          validate(e) {
            return 'string' != typeof e || -1 === this._allowedValues.indexOf(e)
              ? this.defaultValue
              : this._convert(e);
          }
        }
        var v;
        !(function (e) {
          (e[(e.Line = 1)] = 'Line'),
            (e[(e.Block = 2)] = 'Block'),
            (e[(e.Underline = 3)] = 'Underline'),
            (e[(e.LineThin = 4)] = 'LineThin'),
            (e[(e.BlockOutline = 5)] = 'BlockOutline'),
            (e[(e.UnderlineThin = 6)] = 'UnderlineThin');
        })(v || (v = {}));
        class y extends d {
          constructor() {
            super(37, 'fontLigatures', y.OFF, {
              anyOf: [
                {
                  type: 'boolean',
                  description: n.N(
                    'fontLigatures',
                    'Enables/Disables font ligatures.'
                  ),
                },
                {
                  type: 'string',
                  description: n.N(
                    'fontFeatureSettings',
                    'Explicit font-feature-settings.'
                  ),
                },
              ],
              description: n.N(
                'fontLigaturesGeneral',
                'Configures font ligatures or font features.'
              ),
              default: !1,
            });
          }
          validate(e) {
            return void 0 === e
              ? this.defaultValue
              : 'string' == typeof e
              ? 'false' === e
                ? y.OFF
                : 'true' === e
                ? y.ON
                : e
              : Boolean(e)
              ? y.ON
              : y.OFF;
          }
        }
        (y.OFF = '"liga" off, "calt" off'), (y.ON = '"liga" on, "calt" on');
        class w extends d {
          constructor() {
            super(39, 'fontWeight', x.fontWeight, {
              anyOf: [
                {
                  type: 'number',
                  minimum: w.MINIMUM_VALUE,
                  maximum: w.MAXIMUM_VALUE,
                  errorMessage: n.N(
                    'fontWeightErrorMessage',
                    'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.'
                  ),
                },
                {
                  type: 'string',
                  pattern: '^(normal|bold|1000|[1-9][0-9]{0,2})$',
                },
                { enum: w.SUGGESTION_VALUES },
              ],
              default: x.fontWeight,
              description: n.N(
                'fontWeight',
                'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.'
              ),
            });
          }
          validate(e) {
            return 'normal' === e || 'bold' === e
              ? e
              : String(
                  f.clampedInt(
                    e,
                    x.fontWeight,
                    w.MINIMUM_VALUE,
                    w.MAXIMUM_VALUE
                  )
                );
          }
        }
        (w.SUGGESTION_VALUES = [
          'normal',
          'bold',
          '100',
          '200',
          '300',
          '400',
          '500',
          '600',
          '700',
          '800',
          '900',
        ]),
          (w.MINIMUM_VALUE = 1),
          (w.MAXIMUM_VALUE = 1e3);
        class C extends h {
          constructor() {
            super(117, [42, 50, 31, 56, 84, 52, 53, 86, 106, 109, 110, 2]);
          }
          compute(e, t, i) {
            return C.computeLayout(t, {
              memory: e.memory,
              outerWidth: e.outerWidth,
              outerHeight: e.outerHeight,
              isDominatedByLongLines: e.isDominatedByLongLines,
              lineHeight: e.fontInfo.lineHeight,
              viewLineCount: e.viewLineCount,
              lineNumbersDigitCount: e.lineNumbersDigitCount,
              typicalHalfwidthCharacterWidth:
                e.fontInfo.typicalHalfwidthCharacterWidth,
              maxDigitWidth: e.fontInfo.maxDigitWidth,
              pixelRatio: e.pixelRatio,
            });
          }
          static computeContainedMinimapLineCount(e) {
            const t = e.height / e.lineHeight,
              i = e.scrollBeyondLastLine ? t - 1 : 0,
              n = (e.viewLineCount + i) / (e.pixelRatio * e.height);
            return {
              typicalViewportLineCount: t,
              extraLinesBeyondLastLine: i,
              desiredRatio: n,
              minimapLineCount: Math.floor(e.viewLineCount / n),
            };
          }
          static _computeMinimapLayout(e, t) {
            const i = e.outerWidth,
              n = e.outerHeight,
              r = e.pixelRatio;
            if (!e.minimap.enabled)
              return {
                renderMinimap: 0,
                minimapLeft: 0,
                minimapWidth: 0,
                minimapHeightIsEditorHeight: !1,
                minimapIsSampling: !1,
                minimapScale: 1,
                minimapLineHeight: 1,
                minimapCanvasInnerWidth: 0,
                minimapCanvasInnerHeight: Math.floor(r * n),
                minimapCanvasOuterWidth: 0,
                minimapCanvasOuterHeight: n,
              };
            const s = t.stableMinimapLayoutInput,
              a =
                s &&
                e.outerHeight === s.outerHeight &&
                e.lineHeight === s.lineHeight &&
                e.typicalHalfwidthCharacterWidth ===
                  s.typicalHalfwidthCharacterWidth &&
                e.pixelRatio === s.pixelRatio &&
                e.scrollBeyondLastLine === s.scrollBeyondLastLine &&
                e.minimap.enabled === s.minimap.enabled &&
                e.minimap.side === s.minimap.side &&
                e.minimap.size === s.minimap.size &&
                e.minimap.showSlider === s.minimap.showSlider &&
                e.minimap.renderCharacters === s.minimap.renderCharacters &&
                e.minimap.maxColumn === s.minimap.maxColumn &&
                e.minimap.scale === s.minimap.scale &&
                e.verticalScrollbarWidth === s.verticalScrollbarWidth &&
                e.isViewportWrapping === s.isViewportWrapping,
              l = e.lineHeight,
              c = e.typicalHalfwidthCharacterWidth,
              d = e.scrollBeyondLastLine,
              h = e.minimap.renderCharacters;
            let u = r >= 2 ? Math.round(2 * e.minimap.scale) : e.minimap.scale;
            const g = e.minimap.maxColumn,
              f = e.minimap.size,
              p = e.minimap.side,
              m = e.verticalScrollbarWidth,
              _ = e.viewLineCount,
              b = e.remainingWidth,
              v = e.isViewportWrapping,
              y = h ? 2 : 3;
            let w = Math.floor(r * n);
            const S = w / r;
            let k = !1,
              x = !1,
              L = y * u,
              M = u / r,
              D = 1;
            if ('fill' === f || 'fit' === f) {
              const {
                typicalViewportLineCount: i,
                extraLinesBeyondLastLine: s,
                desiredRatio: o,
                minimapLineCount: c,
              } = C.computeContainedMinimapLineCount({
                viewLineCount: _,
                scrollBeyondLastLine: d,
                height: n,
                lineHeight: l,
                pixelRatio: r,
              });
              if (_ / c > 1) (k = !0), (x = !0), (u = 1), (L = 1), (M = u / r);
              else {
                let n = !1,
                  c = u + 1;
                if ('fit' === f) {
                  const i = Math.ceil((_ + s) * L);
                  v && a && b <= t.stableFitRemainingWidth
                    ? ((n = !0), (c = t.stableFitMaxMinimapScale))
                    : ((n = i > w),
                      v && n
                        ? ((t.stableMinimapLayoutInput = e),
                          (t.stableFitRemainingWidth = b))
                        : ((t.stableMinimapLayoutInput = null),
                          (t.stableFitRemainingWidth = 0)));
                }
                if ('fill' === f || n) {
                  k = !0;
                  const e = u;
                  (L = Math.min(l * r, Math.max(1, Math.floor(1 / o)))),
                    (u = Math.min(c, Math.max(1, Math.floor(L / y)))),
                    u > e && (D = Math.min(2, u / e)),
                    (M = u / r / D),
                    (w = Math.ceil(Math.max(i, _ + s) * L)),
                    v && n && (t.stableFitMaxMinimapScale = u);
                }
              }
            }
            const N = Math.floor(g * M),
              E = Math.min(
                N,
                Math.max(0, Math.floor(((b - m - 2) * M) / (c + M))) + o
              );
            let T = Math.floor(r * E);
            const I = T / r;
            return (
              (T = Math.floor(T * D)),
              {
                renderMinimap: h ? 1 : 2,
                minimapLeft: 'left' === p ? 0 : i - E - m,
                minimapWidth: E,
                minimapHeightIsEditorHeight: k,
                minimapIsSampling: x,
                minimapScale: u,
                minimapLineHeight: L,
                minimapCanvasInnerWidth: T,
                minimapCanvasInnerHeight: w,
                minimapCanvasOuterWidth: I,
                minimapCanvasOuterHeight: S,
              }
            );
          }
          static computeLayout(e, t) {
            const i = 0 | t.outerWidth,
              n = 0 | t.outerHeight,
              r = 0 | t.lineHeight,
              s = 0 | t.lineNumbersDigitCount,
              o = t.typicalHalfwidthCharacterWidth,
              a = t.maxDigitWidth,
              l = t.pixelRatio,
              d = t.viewLineCount,
              h = e.get(106),
              u = e.get(109),
              g = e.get(110),
              p = e.get(2),
              m = t.isDominatedByLongLines,
              _ = e.get(42),
              b = 0 !== e.get(52).renderType,
              v = e.get(53),
              y = e.get(86),
              w = e.get(56),
              S = e.get(84),
              k = S.verticalScrollbarSize,
              x = S.verticalHasArrows,
              L = S.arrowSize,
              M = S.horizontalScrollbarSize,
              D = e.get(50),
              N = e.get(31);
            let E;
            if ('string' == typeof D && /^\d+(\.\d+)?ch$/.test(D)) {
              const e = parseFloat(D.substr(0, D.length - 2));
              E = f.clampedInt(e * o, 0, 0, 1e3);
            } else E = f.clampedInt(D, 0, 0, 1e3);
            N && (E += 16);
            let T = 0;
            if (b) {
              const e = Math.max(s, v);
              T = Math.round(e * a);
            }
            let I = 0;
            _ && (I = r);
            let O = 0,
              A = O + I,
              R = A + T,
              P = R + E;
            const F = i - I - T - E;
            let B = !1,
              W = !1,
              Y = -1;
            2 !== p &&
              (g && m
                ? ((B = !0), (W = !0))
                : 'on' === h || 'bounded' === h
                ? (W = !0)
                : 'wordWrapColumn' === h && (Y = u));
            const H = C._computeMinimapLayout(
              {
                outerWidth: i,
                outerHeight: n,
                lineHeight: r,
                typicalHalfwidthCharacterWidth: o,
                pixelRatio: l,
                scrollBeyondLastLine: y,
                minimap: w,
                verticalScrollbarWidth: k,
                viewLineCount: d,
                remainingWidth: F,
                isViewportWrapping: W,
              },
              t.memory || new c()
            );
            0 !== H.renderMinimap &&
              0 === H.minimapLeft &&
              ((O += H.minimapWidth),
              (A += H.minimapWidth),
              (R += H.minimapWidth),
              (P += H.minimapWidth));
            const j = F - H.minimapWidth,
              V = Math.max(1, Math.floor((j - k - 2) / o)),
              z = x ? L : 0;
            return (
              W &&
                ((Y = Math.max(1, V)), 'bounded' === h && (Y = Math.min(Y, u))),
              {
                width: i,
                height: n,
                glyphMarginLeft: O,
                glyphMarginWidth: I,
                lineNumbersLeft: A,
                lineNumbersWidth: T,
                decorationsLeft: R,
                decorationsWidth: E,
                contentLeft: P,
                contentWidth: j,
                minimap: H,
                viewportColumn: V,
                isWordWrapMinified: B,
                isViewportWrapping: W,
                wrappingColumn: Y,
                verticalScrollbarWidth: k,
                horizontalScrollbarHeight: M,
                overviewRuler: {
                  top: z,
                  width: k,
                  height: n - 2 * z,
                  right: 0,
                },
              }
            );
          }
        }
        function S(e) {
          const t = e.get(79);
          return 'editable' === t ? e.get(72) : 'on' !== t;
        }
        function k(e, t) {
          if ('string' != typeof e) return t;
          switch (e) {
            case 'hidden':
              return 2;
            case 'visible':
              return 3;
            default:
              return 1;
          }
        }
        const x = {
            fontFamily: r.dz
              ? "Menlo, Monaco, 'Courier New', monospace"
              : r.IJ
              ? "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'"
              : "Consolas, 'Courier New', monospace",
            fontWeight: 'normal',
            fontSize: r.dz ? 12 : 14,
            lineHeight: 0,
            letterSpacing: 0,
          },
          L = {
            tabSize: 4,
            indentSize: 4,
            insertSpaces: !0,
            detectIndentation: !0,
            trimAutoWhitespace: !0,
            largeFileOptimizations: !0,
          },
          M = [];
        function D(e) {
          return (M[e.id] = e), e;
        }
        const N = {
          acceptSuggestionOnCommitCharacter: D(
            new g(0, 'acceptSuggestionOnCommitCharacter', !0, {
              markdownDescription: n.N(
                'acceptSuggestionOnCommitCharacter',
                'Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.'
              ),
            })
          ),
          acceptSuggestionOnEnter: D(
            new _(1, 'acceptSuggestionOnEnter', 'on', ['on', 'smart', 'off'], {
              markdownEnumDescriptions: [
                '',
                n.N(
                  'acceptSuggestionOnEnterSmart',
                  'Only accept a suggestion with `Enter` when it makes a textual change.'
                ),
                '',
              ],
              markdownDescription: n.N(
                'acceptSuggestionOnEnter',
                'Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.'
              ),
            })
          ),
          accessibilitySupport: D(
            new (class extends d {
              constructor() {
                super(2, 'accessibilitySupport', 0, {
                  type: 'string',
                  enum: ['auto', 'on', 'off'],
                  enumDescriptions: [
                    n.N(
                      'accessibilitySupport.auto',
                      'The editor will use platform APIs to detect when a Screen Reader is attached.'
                    ),
                    n.N(
                      'accessibilitySupport.on',
                      'The editor will be permanently optimized for usage with a Screen Reader.'
                    ),
                    n.N(
                      'accessibilitySupport.off',
                      'The editor will never be optimized for usage with a Screen Reader.'
                    ),
                  ],
                  default: 'auto',
                  description: n.N(
                    'accessibilitySupport',
                    'Controls whether the editor should run in a mode where it is optimized for screen readers.'
                  ),
                });
              }
              validate(e) {
                switch (e) {
                  case 'auto':
                    return 0;
                  case 'off':
                    return 1;
                  case 'on':
                    return 2;
                }
                return this.defaultValue;
              }
              compute(e, t, i) {
                return 0 === i ? e.accessibilitySupport : i;
              }
            })()
          ),
          accessibilityPageSize: D(
            new f(3, 'accessibilityPageSize', 10, 1, 1073741824, {
              description: n.N(
                'accessibilityPageSize',
                'Controls the number of lines in the editor that can be read out by a screen reader. Warning: this has a performance implication for numbers larger than the default.'
              ),
            })
          ),
          ariaLabel: D(
            new m(
              4,
              'ariaLabel',
              n.N('editorViewAccessibleLabel', 'Editor content')
            )
          ),
          autoClosingBrackets: D(
            new _(
              5,
              'autoClosingBrackets',
              'languageDefined',
              ['always', 'languageDefined', 'beforeWhitespace', 'never'],
              {
                enumDescriptions: [
                  '',
                  n.N(
                    'editor.autoClosingBrackets.languageDefined',
                    'Use language configurations to determine when to autoclose brackets.'
                  ),
                  n.N(
                    'editor.autoClosingBrackets.beforeWhitespace',
                    'Autoclose brackets only when the cursor is to the left of whitespace.'
                  ),
                  '',
                ],
                description: n.N(
                  'autoClosingBrackets',
                  'Controls whether the editor should automatically close brackets after the user adds an opening bracket.'
                ),
              }
            )
          ),
          autoClosingOvertype: D(
            new _(
              6,
              'autoClosingOvertype',
              'auto',
              ['always', 'auto', 'never'],
              {
                enumDescriptions: [
                  '',
                  n.N(
                    'editor.autoClosingOvertype.auto',
                    'Type over closing quotes or brackets only if they were automatically inserted.'
                  ),
                  '',
                ],
                description: n.N(
                  'autoClosingOvertype',
                  'Controls whether the editor should type over closing quotes or brackets.'
                ),
              }
            )
          ),
          autoClosingQuotes: D(
            new _(
              7,
              'autoClosingQuotes',
              'languageDefined',
              ['always', 'languageDefined', 'beforeWhitespace', 'never'],
              {
                enumDescriptions: [
                  '',
                  n.N(
                    'editor.autoClosingQuotes.languageDefined',
                    'Use language configurations to determine when to autoclose quotes.'
                  ),
                  n.N(
                    'editor.autoClosingQuotes.beforeWhitespace',
                    'Autoclose quotes only when the cursor is to the left of whitespace.'
                  ),
                  '',
                ],
                description: n.N(
                  'autoClosingQuotes',
                  'Controls whether the editor should automatically close quotes after the user adds an opening quote.'
                ),
              }
            )
          ),
          autoIndent: D(
            new b(
              8,
              'autoIndent',
              4,
              'full',
              ['none', 'keep', 'brackets', 'advanced', 'full'],
              function (e) {
                switch (e) {
                  case 'none':
                    return 0;
                  case 'keep':
                    return 1;
                  case 'brackets':
                    return 2;
                  case 'advanced':
                    return 3;
                  case 'full':
                    return 4;
                }
              },
              {
                enumDescriptions: [
                  n.N(
                    'editor.autoIndent.none',
                    'The editor will not insert indentation automatically.'
                  ),
                  n.N(
                    'editor.autoIndent.keep',
                    "The editor will keep the current line's indentation."
                  ),
                  n.N(
                    'editor.autoIndent.brackets',
                    "The editor will keep the current line's indentation and honor language defined brackets."
                  ),
                  n.N(
                    'editor.autoIndent.advanced',
                    "The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."
                  ),
                  n.N(
                    'editor.autoIndent.full',
                    "The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages."
                  ),
                ],
                description: n.N(
                  'autoIndent',
                  'Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.'
                ),
              }
            )
          ),
          automaticLayout: D(new g(9, 'automaticLayout', !1)),
          autoSurround: D(
            new _(
              10,
              'autoSurround',
              'languageDefined',
              ['languageDefined', 'quotes', 'brackets', 'never'],
              {
                enumDescriptions: [
                  n.N(
                    'editor.autoSurround.languageDefined',
                    'Use language configurations to determine when to automatically surround selections.'
                  ),
                  n.N(
                    'editor.autoSurround.quotes',
                    'Surround with quotes but not brackets.'
                  ),
                  n.N(
                    'editor.autoSurround.brackets',
                    'Surround with brackets but not quotes.'
                  ),
                  '',
                ],
                description: n.N(
                  'autoSurround',
                  'Controls whether the editor should automatically surround selections.'
                ),
              }
            )
          ),
          codeLens: D(
            new g(11, 'codeLens', !0, {
              description: n.N(
                'codeLens',
                'Controls whether the editor shows CodeLens.'
              ),
            })
          ),
          colorDecorators: D(
            new g(12, 'colorDecorators', !0, {
              description: n.N(
                'colorDecorators',
                'Controls whether the editor should render the inline color decorators and color picker.'
              ),
            })
          ),
          columnSelection: D(
            new g(13, 'columnSelection', !1, {
              description: n.N(
                'columnSelection',
                'Enable that the selection with the mouse and keys is doing column selection.'
              ),
            })
          ),
          comments: D(
            new (class extends d {
              constructor() {
                const e = { insertSpace: !0, ignoreEmptyLines: !0 };
                super(14, 'comments', e, {
                  'editor.comments.insertSpace': {
                    type: 'boolean',
                    default: e.insertSpace,
                    description: n.N(
                      'comments.insertSpace',
                      'Controls whether a space character is inserted when commenting.'
                    ),
                  },
                  'editor.comments.ignoreEmptyLines': {
                    type: 'boolean',
                    default: e.ignoreEmptyLines,
                    description: n.N(
                      'comments.ignoreEmptyLines',
                      'Controls if empty lines should be ignored with toggle, add or remove actions for line comments.'
                    ),
                  },
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  insertSpace: g.boolean(
                    t.insertSpace,
                    this.defaultValue.insertSpace
                  ),
                  ignoreEmptyLines: g.boolean(
                    t.ignoreEmptyLines,
                    this.defaultValue.ignoreEmptyLines
                  ),
                };
              }
            })()
          ),
          contextmenu: D(new g(15, 'contextmenu', !0)),
          copyWithSyntaxHighlighting: D(
            new g(16, 'copyWithSyntaxHighlighting', !0, {
              description: n.N(
                'copyWithSyntaxHighlighting',
                'Controls whether syntax highlighting should be copied into the clipboard.'
              ),
            })
          ),
          cursorBlinking: D(
            new b(
              17,
              'cursorBlinking',
              1,
              'blink',
              ['blink', 'smooth', 'phase', 'expand', 'solid'],
              function (e) {
                switch (e) {
                  case 'blink':
                    return 1;
                  case 'smooth':
                    return 2;
                  case 'phase':
                    return 3;
                  case 'expand':
                    return 4;
                  case 'solid':
                    return 5;
                }
              },
              {
                description: n.N(
                  'cursorBlinking',
                  'Control the cursor animation style.'
                ),
              }
            )
          ),
          cursorSmoothCaretAnimation: D(
            new g(18, 'cursorSmoothCaretAnimation', !1, {
              description: n.N(
                'cursorSmoothCaretAnimation',
                'Controls whether the smooth caret animation should be enabled.'
              ),
            })
          ),
          cursorStyle: D(
            new b(
              19,
              'cursorStyle',
              v.Line,
              'line',
              [
                'line',
                'block',
                'underline',
                'line-thin',
                'block-outline',
                'underline-thin',
              ],
              function (e) {
                switch (e) {
                  case 'line':
                    return v.Line;
                  case 'block':
                    return v.Block;
                  case 'underline':
                    return v.Underline;
                  case 'line-thin':
                    return v.LineThin;
                  case 'block-outline':
                    return v.BlockOutline;
                  case 'underline-thin':
                    return v.UnderlineThin;
                }
              },
              { description: n.N('cursorStyle', 'Controls the cursor style.') }
            )
          ),
          cursorSurroundingLines: D(
            new f(20, 'cursorSurroundingLines', 0, 0, 1073741824, {
              description: n.N(
                'cursorSurroundingLines',
                "Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or `scrollOffset` in some other editors."
              ),
            })
          ),
          cursorSurroundingLinesStyle: D(
            new _(
              21,
              'cursorSurroundingLinesStyle',
              'default',
              ['default', 'all'],
              {
                enumDescriptions: [
                  n.N(
                    'cursorSurroundingLinesStyle.default',
                    '`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.'
                  ),
                  n.N(
                    'cursorSurroundingLinesStyle.all',
                    '`cursorSurroundingLines` is enforced always.'
                  ),
                ],
                description: n.N(
                  'cursorSurroundingLinesStyle',
                  'Controls when `cursorSurroundingLines` should be enforced.'
                ),
              }
            )
          ),
          cursorWidth: D(
            new f(22, 'cursorWidth', 0, 0, 1073741824, {
              markdownDescription: n.N(
                'cursorWidth',
                'Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.'
              ),
            })
          ),
          disableLayerHinting: D(new g(23, 'disableLayerHinting', !1)),
          disableMonospaceOptimizations: D(
            new g(24, 'disableMonospaceOptimizations', !1)
          ),
          dragAndDrop: D(
            new g(25, 'dragAndDrop', !0, {
              description: n.N(
                'dragAndDrop',
                'Controls whether the editor should allow moving selections via drag and drop.'
              ),
            })
          ),
          emptySelectionClipboard: D(
            new (class extends g {
              constructor() {
                super(26, 'emptySelectionClipboard', !0, {
                  description: n.N(
                    'emptySelectionClipboard',
                    'Controls whether copying without a selection copies the current line.'
                  ),
                });
              }
              compute(e, t, i) {
                return i && e.emptySelectionClipboard;
              }
            })()
          ),
          extraEditorClassName: D(new m(27, 'extraEditorClassName', '')),
          fastScrollSensitivity: D(
            new p(28, 'fastScrollSensitivity', 5, (e) => (e <= 0 ? 5 : e), {
              markdownDescription: n.N(
                'fastScrollSensitivity',
                'Scrolling speed multiplier when pressing `Alt`.'
              ),
            })
          ),
          find: D(
            new (class extends d {
              constructor() {
                const e = {
                  cursorMoveOnType: !0,
                  seedSearchStringFromSelection: !0,
                  autoFindInSelection: 'never',
                  globalFindClipboard: !1,
                  addExtraSpaceOnTop: !0,
                  loop: !0,
                };
                super(29, 'find', e, {
                  'editor.find.cursorMoveOnType': {
                    type: 'boolean',
                    default: e.cursorMoveOnType,
                    description: n.N(
                      'find.cursorMoveOnType',
                      'Controls whether the cursor should jump to find matches while typing.'
                    ),
                  },
                  'editor.find.seedSearchStringFromSelection': {
                    type: 'boolean',
                    default: e.seedSearchStringFromSelection,
                    description: n.N(
                      'find.seedSearchStringFromSelection',
                      'Controls whether the search string in the Find Widget is seeded from the editor selection.'
                    ),
                  },
                  'editor.find.autoFindInSelection': {
                    type: 'string',
                    enum: ['never', 'always', 'multiline'],
                    default: e.autoFindInSelection,
                    enumDescriptions: [
                      n.N(
                        'editor.find.autoFindInSelection.never',
                        'Never turn on Find in selection automatically (default)'
                      ),
                      n.N(
                        'editor.find.autoFindInSelection.always',
                        'Always turn on Find in selection automatically'
                      ),
                      n.N(
                        'editor.find.autoFindInSelection.multiline',
                        'Turn on Find in selection automatically when multiple lines of content are selected.'
                      ),
                    ],
                    description: n.N(
                      'find.autoFindInSelection',
                      'Controls the condition for turning on find in selection automatically.'
                    ),
                  },
                  'editor.find.globalFindClipboard': {
                    type: 'boolean',
                    default: e.globalFindClipboard,
                    description: n.N(
                      'find.globalFindClipboard',
                      'Controls whether the Find Widget should read or modify the shared find clipboard on macOS.'
                    ),
                    included: r.dz,
                  },
                  'editor.find.addExtraSpaceOnTop': {
                    type: 'boolean',
                    default: e.addExtraSpaceOnTop,
                    description: n.N(
                      'find.addExtraSpaceOnTop',
                      'Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.'
                    ),
                  },
                  'editor.find.loop': {
                    type: 'boolean',
                    default: e.loop,
                    description: n.N(
                      'find.loop',
                      'Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.'
                    ),
                  },
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  cursorMoveOnType: g.boolean(
                    t.cursorMoveOnType,
                    this.defaultValue.cursorMoveOnType
                  ),
                  seedSearchStringFromSelection: g.boolean(
                    t.seedSearchStringFromSelection,
                    this.defaultValue.seedSearchStringFromSelection
                  ),
                  autoFindInSelection:
                    'boolean' == typeof e.autoFindInSelection
                      ? e.autoFindInSelection
                        ? 'always'
                        : 'never'
                      : _.stringSet(
                          t.autoFindInSelection,
                          this.defaultValue.autoFindInSelection,
                          ['never', 'always', 'multiline']
                        ),
                  globalFindClipboard: g.boolean(
                    t.globalFindClipboard,
                    this.defaultValue.globalFindClipboard
                  ),
                  addExtraSpaceOnTop: g.boolean(
                    t.addExtraSpaceOnTop,
                    this.defaultValue.addExtraSpaceOnTop
                  ),
                  loop: g.boolean(t.loop, this.defaultValue.loop),
                };
              }
            })()
          ),
          fixedOverflowWidgets: D(new g(30, 'fixedOverflowWidgets', !1)),
          folding: D(
            new g(31, 'folding', !0, {
              description: n.N(
                'folding',
                'Controls whether the editor has code folding enabled.'
              ),
            })
          ),
          foldingStrategy: D(
            new _(32, 'foldingStrategy', 'auto', ['auto', 'indentation'], {
              enumDescriptions: [
                n.N(
                  'foldingStrategy.auto',
                  'Use a language-specific folding strategy if available, else the indentation-based one.'
                ),
                n.N(
                  'foldingStrategy.indentation',
                  'Use the indentation-based folding strategy.'
                ),
              ],
              description: n.N(
                'foldingStrategy',
                'Controls the strategy for computing folding ranges.'
              ),
            })
          ),
          foldingHighlight: D(
            new g(33, 'foldingHighlight', !0, {
              description: n.N(
                'foldingHighlight',
                'Controls whether the editor should highlight folded ranges.'
              ),
            })
          ),
          unfoldOnClickAfterEndOfLine: D(
            new g(34, 'unfoldOnClickAfterEndOfLine', !1, {
              description: n.N(
                'unfoldOnClickAfterEndOfLine',
                'Controls whether clicking on the empty content after a folded line will unfold the line.'
              ),
            })
          ),
          fontFamily: D(
            new m(35, 'fontFamily', x.fontFamily, {
              description: n.N('fontFamily', 'Controls the font family.'),
            })
          ),
          fontInfo: D(
            new (class extends h {
              constructor() {
                super(36);
              }
              compute(e, t, i) {
                return e.fontInfo;
              }
            })()
          ),
          fontLigatures2: D(new y()),
          fontSize: D(
            new (class extends u {
              constructor() {
                super(38, 'fontSize', x.fontSize, {
                  type: 'number',
                  minimum: 6,
                  maximum: 100,
                  default: x.fontSize,
                  description: n.N(
                    'fontSize',
                    'Controls the font size in pixels.'
                  ),
                });
              }
              validate(e) {
                let t = p.float(e, this.defaultValue);
                return 0 === t ? x.fontSize : p.clamp(t, 6, 100);
              }
              compute(e, t, i) {
                return e.fontInfo.fontSize;
              }
            })()
          ),
          fontWeight: D(new w()),
          formatOnPaste: D(
            new g(40, 'formatOnPaste', !1, {
              description: n.N(
                'formatOnPaste',
                'Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.'
              ),
            })
          ),
          formatOnType: D(
            new g(41, 'formatOnType', !1, {
              description: n.N(
                'formatOnType',
                'Controls whether the editor should automatically format the line after typing.'
              ),
            })
          ),
          glyphMargin: D(
            new g(42, 'glyphMargin', !0, {
              description: n.N(
                'glyphMargin',
                'Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.'
              ),
            })
          ),
          gotoLocation: D(
            new (class extends d {
              constructor() {
                const e = {
                    multiple: 'peek',
                    multipleDefinitions: 'peek',
                    multipleTypeDefinitions: 'peek',
                    multipleDeclarations: 'peek',
                    multipleImplementations: 'peek',
                    multipleReferences: 'peek',
                    alternativeDefinitionCommand:
                      'editor.action.goToReferences',
                    alternativeTypeDefinitionCommand:
                      'editor.action.goToReferences',
                    alternativeDeclarationCommand:
                      'editor.action.goToReferences',
                    alternativeImplementationCommand: '',
                    alternativeReferenceCommand: '',
                  },
                  t = {
                    type: 'string',
                    enum: ['peek', 'gotoAndPeek', 'goto'],
                    default: e.multiple,
                    enumDescriptions: [
                      n.N(
                        'editor.gotoLocation.multiple.peek',
                        'Show peek view of the results (default)'
                      ),
                      n.N(
                        'editor.gotoLocation.multiple.gotoAndPeek',
                        'Go to the primary result and show a peek view'
                      ),
                      n.N(
                        'editor.gotoLocation.multiple.goto',
                        'Go to the primary result and enable peek-less navigation to others'
                      ),
                    ],
                  };
                super(43, 'gotoLocation', e, {
                  'editor.gotoLocation.multiple': {
                    deprecationMessage: n.N(
                      'editor.gotoLocation.multiple.deprecated',
                      "This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead."
                    ),
                  },
                  'editor.gotoLocation.multipleDefinitions': Object.assign(
                    {
                      description: n.N(
                        'editor.editor.gotoLocation.multipleDefinitions',
                        "Controls the behavior the 'Go to Definition'-command when multiple target locations exist."
                      ),
                    },
                    t
                  ),
                  'editor.gotoLocation.multipleTypeDefinitions': Object.assign(
                    {
                      description: n.N(
                        'editor.editor.gotoLocation.multipleTypeDefinitions',
                        "Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."
                      ),
                    },
                    t
                  ),
                  'editor.gotoLocation.multipleDeclarations': Object.assign(
                    {
                      description: n.N(
                        'editor.editor.gotoLocation.multipleDeclarations',
                        "Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."
                      ),
                    },
                    t
                  ),
                  'editor.gotoLocation.multipleImplementations': Object.assign(
                    {
                      description: n.N(
                        'editor.editor.gotoLocation.multipleImplemenattions',
                        "Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."
                      ),
                    },
                    t
                  ),
                  'editor.gotoLocation.multipleReferences': Object.assign(
                    {
                      description: n.N(
                        'editor.editor.gotoLocation.multipleReferences',
                        "Controls the behavior the 'Go to References'-command when multiple target locations exist."
                      ),
                    },
                    t
                  ),
                  'editor.gotoLocation.alternativeDefinitionCommand': {
                    type: 'string',
                    default: e.alternativeDefinitionCommand,
                    description: n.N(
                      'alternativeDefinitionCommand',
                      "Alternative command id that is being executed when the result of 'Go to Definition' is the current location."
                    ),
                  },
                  'editor.gotoLocation.alternativeTypeDefinitionCommand': {
                    type: 'string',
                    default: e.alternativeTypeDefinitionCommand,
                    description: n.N(
                      'alternativeTypeDefinitionCommand',
                      "Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location."
                    ),
                  },
                  'editor.gotoLocation.alternativeDeclarationCommand': {
                    type: 'string',
                    default: e.alternativeDeclarationCommand,
                    description: n.N(
                      'alternativeDeclarationCommand',
                      "Alternative command id that is being executed when the result of 'Go to Declaration' is the current location."
                    ),
                  },
                  'editor.gotoLocation.alternativeImplementationCommand': {
                    type: 'string',
                    default: e.alternativeImplementationCommand,
                    description: n.N(
                      'alternativeImplementationCommand',
                      "Alternative command id that is being executed when the result of 'Go to Implementation' is the current location."
                    ),
                  },
                  'editor.gotoLocation.alternativeReferenceCommand': {
                    type: 'string',
                    default: e.alternativeReferenceCommand,
                    description: n.N(
                      'alternativeReferenceCommand',
                      "Alternative command id that is being executed when the result of 'Go to Reference' is the current location."
                    ),
                  },
                });
              }
              validate(e) {
                var t, i, n, r, s;
                if (!e || 'object' != typeof e) return this.defaultValue;
                const o = e;
                return {
                  multiple: _.stringSet(
                    o.multiple,
                    this.defaultValue.multiple,
                    ['peek', 'gotoAndPeek', 'goto']
                  ),
                  multipleDefinitions:
                    null !== (t = o.multipleDefinitions) && void 0 !== t
                      ? t
                      : _.stringSet(o.multipleDefinitions, 'peek', [
                          'peek',
                          'gotoAndPeek',
                          'goto',
                        ]),
                  multipleTypeDefinitions:
                    null !== (i = o.multipleTypeDefinitions) && void 0 !== i
                      ? i
                      : _.stringSet(o.multipleTypeDefinitions, 'peek', [
                          'peek',
                          'gotoAndPeek',
                          'goto',
                        ]),
                  multipleDeclarations:
                    null !== (n = o.multipleDeclarations) && void 0 !== n
                      ? n
                      : _.stringSet(o.multipleDeclarations, 'peek', [
                          'peek',
                          'gotoAndPeek',
                          'goto',
                        ]),
                  multipleImplementations:
                    null !== (r = o.multipleImplementations) && void 0 !== r
                      ? r
                      : _.stringSet(o.multipleImplementations, 'peek', [
                          'peek',
                          'gotoAndPeek',
                          'goto',
                        ]),
                  multipleReferences:
                    null !== (s = o.multipleReferences) && void 0 !== s
                      ? s
                      : _.stringSet(o.multipleReferences, 'peek', [
                          'peek',
                          'gotoAndPeek',
                          'goto',
                        ]),
                  alternativeDefinitionCommand: m.string(
                    o.alternativeDefinitionCommand,
                    this.defaultValue.alternativeDefinitionCommand
                  ),
                  alternativeTypeDefinitionCommand: m.string(
                    o.alternativeTypeDefinitionCommand,
                    this.defaultValue.alternativeTypeDefinitionCommand
                  ),
                  alternativeDeclarationCommand: m.string(
                    o.alternativeDeclarationCommand,
                    this.defaultValue.alternativeDeclarationCommand
                  ),
                  alternativeImplementationCommand: m.string(
                    o.alternativeImplementationCommand,
                    this.defaultValue.alternativeImplementationCommand
                  ),
                  alternativeReferenceCommand: m.string(
                    o.alternativeReferenceCommand,
                    this.defaultValue.alternativeReferenceCommand
                  ),
                };
              }
            })()
          ),
          hideCursorInOverviewRuler: D(
            new g(44, 'hideCursorInOverviewRuler', !1, {
              description: n.N(
                'hideCursorInOverviewRuler',
                'Controls whether the cursor should be hidden in the overview ruler.'
              ),
            })
          ),
          highlightActiveIndentGuide: D(
            new g(45, 'highlightActiveIndentGuide', !0, {
              description: n.N(
                'highlightActiveIndentGuide',
                'Controls whether the editor should highlight the active indent guide.'
              ),
            })
          ),
          hover: D(
            new (class extends d {
              constructor() {
                const e = { enabled: !0, delay: 300, sticky: !0 };
                super(46, 'hover', e, {
                  'editor.hover.enabled': {
                    type: 'boolean',
                    default: e.enabled,
                    description: n.N(
                      'hover.enabled',
                      'Controls whether the hover is shown.'
                    ),
                  },
                  'editor.hover.delay': {
                    type: 'number',
                    default: e.delay,
                    description: n.N(
                      'hover.delay',
                      'Controls the delay in milliseconds after which the hover is shown.'
                    ),
                  },
                  'editor.hover.sticky': {
                    type: 'boolean',
                    default: e.sticky,
                    description: n.N(
                      'hover.sticky',
                      'Controls whether the hover should remain visible when mouse is moved over it.'
                    ),
                  },
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  enabled: g.boolean(t.enabled, this.defaultValue.enabled),
                  delay: f.clampedInt(t.delay, this.defaultValue.delay, 0, 1e4),
                  sticky: g.boolean(t.sticky, this.defaultValue.sticky),
                };
              }
            })()
          ),
          inDiffEditor: D(new g(47, 'inDiffEditor', !1)),
          letterSpacing: D(
            new p(
              48,
              'letterSpacing',
              x.letterSpacing,
              (e) => p.clamp(e, -5, 20),
              {
                description: n.N(
                  'letterSpacing',
                  'Controls the letter spacing in pixels.'
                ),
              }
            )
          ),
          lightbulb: D(
            new (class extends d {
              constructor() {
                const e = { enabled: !0 };
                super(49, 'lightbulb', e, {
                  'editor.lightbulb.enabled': {
                    type: 'boolean',
                    default: e.enabled,
                    description: n.N(
                      'codeActions',
                      'Enables the code action lightbulb in the editor.'
                    ),
                  },
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  enabled: g.boolean(t.enabled, this.defaultValue.enabled),
                };
              }
            })()
          ),
          lineDecorationsWidth: D(new u(50, 'lineDecorationsWidth', 10)),
          lineHeight: D(
            new (class extends f {
              constructor() {
                super(51, 'lineHeight', x.lineHeight, 0, 150, {
                  description: n.N(
                    'lineHeight',
                    'Controls the line height. Use 0 to compute the line height from the font size.'
                  ),
                });
              }
              compute(e, t, i) {
                return e.fontInfo.lineHeight;
              }
            })()
          ),
          lineNumbers: D(
            new (class extends d {
              constructor() {
                super(
                  52,
                  'lineNumbers',
                  { renderType: 1, renderFn: null },
                  {
                    type: 'string',
                    enum: ['off', 'on', 'relative', 'interval'],
                    enumDescriptions: [
                      n.N('lineNumbers.off', 'Line numbers are not rendered.'),
                      n.N(
                        'lineNumbers.on',
                        'Line numbers are rendered as absolute number.'
                      ),
                      n.N(
                        'lineNumbers.relative',
                        'Line numbers are rendered as distance in lines to cursor position.'
                      ),
                      n.N(
                        'lineNumbers.interval',
                        'Line numbers are rendered every 10 lines.'
                      ),
                    ],
                    default: 'on',
                    description: n.N(
                      'lineNumbers',
                      'Controls the display of line numbers.'
                    ),
                  }
                );
              }
              validate(e) {
                let t = this.defaultValue.renderType,
                  i = this.defaultValue.renderFn;
                return (
                  void 0 !== e &&
                    ('function' == typeof e
                      ? ((t = 4), (i = e))
                      : (t =
                          'interval' === e
                            ? 3
                            : 'relative' === e
                            ? 2
                            : 'on' === e
                            ? 1
                            : 0)),
                  { renderType: t, renderFn: i }
                );
              }
            })()
          ),
          lineNumbersMinChars: D(new f(53, 'lineNumbersMinChars', 5, 1, 300)),
          links: D(
            new g(54, 'links', !0, {
              description: n.N(
                'links',
                'Controls whether the editor should detect links and make them clickable.'
              ),
            })
          ),
          matchBrackets: D(
            new _(55, 'matchBrackets', 'always', ['always', 'near', 'never'], {
              description: n.N('matchBrackets', 'Highlight matching brackets.'),
            })
          ),
          minimap: D(
            new (class extends d {
              constructor() {
                const e = {
                  enabled: !0,
                  size: 'proportional',
                  side: 'right',
                  showSlider: 'mouseover',
                  renderCharacters: !0,
                  maxColumn: 120,
                  scale: 1,
                };
                super(56, 'minimap', e, {
                  'editor.minimap.enabled': {
                    type: 'boolean',
                    default: e.enabled,
                    description: n.N(
                      'minimap.enabled',
                      'Controls whether the minimap is shown.'
                    ),
                  },
                  'editor.minimap.size': {
                    type: 'string',
                    enum: ['proportional', 'fill', 'fit'],
                    enumDescriptions: [
                      n.N(
                        'minimap.size.proportional',
                        'The minimap has the same size as the editor contents (and might scroll).'
                      ),
                      n.N(
                        'minimap.size.fill',
                        'The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).'
                      ),
                      n.N(
                        'minimap.size.fit',
                        'The minimap will shrink as necessary to never be larger than the editor (no scrolling).'
                      ),
                    ],
                    default: e.size,
                    description: n.N(
                      'minimap.size',
                      'Controls the size of the minimap.'
                    ),
                  },
                  'editor.minimap.side': {
                    type: 'string',
                    enum: ['left', 'right'],
                    default: e.side,
                    description: n.N(
                      'minimap.side',
                      'Controls the side where to render the minimap.'
                    ),
                  },
                  'editor.minimap.showSlider': {
                    type: 'string',
                    enum: ['always', 'mouseover'],
                    default: e.showSlider,
                    description: n.N(
                      'minimap.showSlider',
                      'Controls when the minimap slider is shown.'
                    ),
                  },
                  'editor.minimap.scale': {
                    type: 'number',
                    default: e.scale,
                    minimum: 1,
                    maximum: 3,
                    enum: [1, 2, 3],
                    description: n.N(
                      'minimap.scale',
                      'Scale of content drawn in the minimap: 1, 2 or 3.'
                    ),
                  },
                  'editor.minimap.renderCharacters': {
                    type: 'boolean',
                    default: e.renderCharacters,
                    description: n.N(
                      'minimap.renderCharacters',
                      'Render the actual characters on a line as opposed to color blocks.'
                    ),
                  },
                  'editor.minimap.maxColumn': {
                    type: 'number',
                    default: e.maxColumn,
                    description: n.N(
                      'minimap.maxColumn',
                      'Limit the width of the minimap to render at most a certain number of columns.'
                    ),
                  },
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  enabled: g.boolean(t.enabled, this.defaultValue.enabled),
                  size: _.stringSet(t.size, this.defaultValue.size, [
                    'proportional',
                    'fill',
                    'fit',
                  ]),
                  side: _.stringSet(t.side, this.defaultValue.side, [
                    'right',
                    'left',
                  ]),
                  showSlider: _.stringSet(
                    t.showSlider,
                    this.defaultValue.showSlider,
                    ['always', 'mouseover']
                  ),
                  renderCharacters: g.boolean(
                    t.renderCharacters,
                    this.defaultValue.renderCharacters
                  ),
                  scale: f.clampedInt(t.scale, 1, 1, 3),
                  maxColumn: f.clampedInt(
                    t.maxColumn,
                    this.defaultValue.maxColumn,
                    1,
                    1e4
                  ),
                };
              }
            })()
          ),
          mouseStyle: D(
            new _(57, 'mouseStyle', 'text', ['text', 'default', 'copy'])
          ),
          mouseWheelScrollSensitivity: D(
            new p(
              58,
              'mouseWheelScrollSensitivity',
              1,
              (e) => (0 === e ? 1 : e),
              {
                markdownDescription: n.N(
                  'mouseWheelScrollSensitivity',
                  'A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.'
                ),
              }
            )
          ),
          mouseWheelZoom: D(
            new g(59, 'mouseWheelZoom', !1, {
              markdownDescription: n.N(
                'mouseWheelZoom',
                'Zoom the font of the editor when using mouse wheel and holding `Ctrl`.'
              ),
            })
          ),
          multiCursorMergeOverlapping: D(
            new g(60, 'multiCursorMergeOverlapping', !0, {
              description: n.N(
                'multiCursorMergeOverlapping',
                'Merge multiple cursors when they are overlapping.'
              ),
            })
          ),
          multiCursorModifier: D(
            new b(
              61,
              'multiCursorModifier',
              'altKey',
              'alt',
              ['ctrlCmd', 'alt'],
              function (e) {
                return 'ctrlCmd' === e
                  ? r.dz
                    ? 'metaKey'
                    : 'ctrlKey'
                  : 'altKey';
              },
              {
                markdownEnumDescriptions: [
                  n.N(
                    'multiCursorModifier.ctrlCmd',
                    'Maps to `Control` on Windows and Linux and to `Command` on macOS.'
                  ),
                  n.N(
                    'multiCursorModifier.alt',
                    'Maps to `Alt` on Windows and Linux and to `Option` on macOS.'
                  ),
                ],
                markdownDescription: n.N(
                  {
                    key: 'multiCursorModifier',
                    comment: [
                      '- `ctrlCmd` refers to a value the setting can take and should not be localized.',
                      '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.',
                    ],
                  },
                  'The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).'
                ),
              }
            )
          ),
          multiCursorPaste: D(
            new _(62, 'multiCursorPaste', 'spread', ['spread', 'full'], {
              markdownEnumDescriptions: [
                n.N(
                  'multiCursorPaste.spread',
                  'Each cursor pastes a single line of the text.'
                ),
                n.N(
                  'multiCursorPaste.full',
                  'Each cursor pastes the full text.'
                ),
              ],
              markdownDescription: n.N(
                'multiCursorPaste',
                'Controls pasting when the line count of the pasted text matches the cursor count.'
              ),
            })
          ),
          occurrencesHighlight: D(
            new g(63, 'occurrencesHighlight', !0, {
              description: n.N(
                'occurrencesHighlight',
                'Controls whether the editor should highlight semantic symbol occurrences.'
              ),
            })
          ),
          overviewRulerBorder: D(
            new g(64, 'overviewRulerBorder', !0, {
              description: n.N(
                'overviewRulerBorder',
                'Controls whether a border should be drawn around the overview ruler.'
              ),
            })
          ),
          overviewRulerLanes: D(new f(65, 'overviewRulerLanes', 3, 0, 3)),
          padding: D(
            new (class extends d {
              constructor() {
                super(
                  66,
                  'padding',
                  { top: 0, bottom: 0 },
                  {
                    'editor.padding.top': {
                      type: 'number',
                      default: 0,
                      minimum: 0,
                      maximum: 1e3,
                      description: n.N(
                        'padding.top',
                        'Controls the amount of space between the top edge of the editor and the first line.'
                      ),
                    },
                    'editor.padding.bottom': {
                      type: 'number',
                      default: 0,
                      minimum: 0,
                      maximum: 1e3,
                      description: n.N(
                        'padding.bottom',
                        'Controls the amount of space between the bottom edge of the editor and the last line.'
                      ),
                    },
                  }
                );
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  top: f.clampedInt(t.top, 0, 0, 1e3),
                  bottom: f.clampedInt(t.bottom, 0, 0, 1e3),
                };
              }
            })()
          ),
          parameterHints: D(
            new (class extends d {
              constructor() {
                const e = { enabled: !0, cycle: !1 };
                super(67, 'parameterHints', e, {
                  'editor.parameterHints.enabled': {
                    type: 'boolean',
                    default: e.enabled,
                    description: n.N(
                      'parameterHints.enabled',
                      'Enables a pop-up that shows parameter documentation and type information as you type.'
                    ),
                  },
                  'editor.parameterHints.cycle': {
                    type: 'boolean',
                    default: e.cycle,
                    description: n.N(
                      'parameterHints.cycle',
                      'Controls whether the parameter hints menu cycles or closes when reaching the end of the list.'
                    ),
                  },
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e;
                return {
                  enabled: g.boolean(t.enabled, this.defaultValue.enabled),
                  cycle: g.boolean(t.cycle, this.defaultValue.cycle),
                };
              }
            })()
          ),
          peekWidgetDefaultFocus: D(
            new _(68, 'peekWidgetDefaultFocus', 'tree', ['tree', 'editor'], {
              enumDescriptions: [
                n.N(
                  'peekWidgetDefaultFocus.tree',
                  'Focus the tree when opening peek'
                ),
                n.N(
                  'peekWidgetDefaultFocus.editor',
                  'Focus the editor when opening peek'
                ),
              ],
              description: n.N(
                'peekWidgetDefaultFocus',
                'Controls whether to focus the inline editor or the tree in the peek widget.'
              ),
            })
          ),
          definitionLinkOpensInPeek: D(
            new g(69, 'definitionLinkOpensInPeek', !1, {
              description: n.N(
                'definitionLinkOpensInPeek',
                'Controls whether the Go to Definition mouse gesture always opens the peek widget.'
              ),
            })
          ),
          quickSuggestions: D(
            new (class extends d {
              constructor() {
                const e = { other: !0, comments: !1, strings: !1 };
                super(70, 'quickSuggestions', e, {
                  anyOf: [
                    { type: 'boolean' },
                    {
                      type: 'object',
                      properties: {
                        strings: {
                          type: 'boolean',
                          default: e.strings,
                          description: n.N(
                            'quickSuggestions.strings',
                            'Enable quick suggestions inside strings.'
                          ),
                        },
                        comments: {
                          type: 'boolean',
                          default: e.comments,
                          description: n.N(
                            'quickSuggestions.comments',
                            'Enable quick suggestions inside comments.'
                          ),
                        },
                        other: {
                          type: 'boolean',
                          default: e.other,
                          description: n.N(
                            'quickSuggestions.other',
                            'Enable quick suggestions outside of strings and comments.'
                          ),
                        },
                      },
                    },
                  ],
                  default: e,
                  description: n.N(
                    'quickSuggestions',
                    'Controls whether suggestions should automatically show up while typing.'
                  ),
                }),
                  (this.defaultValue = e);
              }
              validate(e) {
                if ('boolean' == typeof e) return e;
                if (e && 'object' == typeof e) {
                  const t = e,
                    i = {
                      other: g.boolean(t.other, this.defaultValue.other),
                      comments: g.boolean(
                        t.comments,
                        this.defaultValue.comments
                      ),
                      strings: g.boolean(t.strings, this.defaultValue.strings),
                    };
                  return (
                    !!(i.other && i.comments && i.strings) ||
                    (!!(i.other || i.comments || i.strings) && i)
                  );
                }
                return this.defaultValue;
              }
            })()
          ),
          quickSuggestionsDelay: D(
            new f(71, 'quickSuggestionsDelay', 10, 0, 1073741824, {
              description: n.N(
                'quickSuggestionsDelay',
                'Controls the delay in milliseconds after which quick suggestions will show up.'
              ),
            })
          ),
          readOnly: D(new g(72, 'readOnly', !1)),
          renameOnType: D(
            new g(73, 'renameOnType', !1, {
              description: n.N(
                'renameOnType',
                'Controls whether the editor auto renames on type.'
              ),
            })
          ),
          renderControlCharacters: D(
            new g(74, 'renderControlCharacters', !1, {
              description: n.N(
                'renderControlCharacters',
                'Controls whether the editor should render control characters.'
              ),
            })
          ),
          renderIndentGuides: D(
            new g(75, 'renderIndentGuides', !0, {
              description: n.N(
                'renderIndentGuides',
                'Controls whether the editor should render indent guides.'
              ),
            })
          ),
          renderFinalNewline: D(
            new g(76, 'renderFinalNewline', !0, {
              description: n.N(
                'renderFinalNewline',
                'Render last line number when the file ends with a newline.'
              ),
            })
          ),
          renderLineHighlight: D(
            new _(
              77,
              'renderLineHighlight',
              'line',
              ['none', 'gutter', 'line', 'all'],
              {
                enumDescriptions: [
                  '',
                  '',
                  '',
                  n.N(
                    'renderLineHighlight.all',
                    'Highlights both the gutter and the current line.'
                  ),
                ],
                description: n.N(
                  'renderLineHighlight',
                  'Controls how the editor should render the current line highlight.'
                ),
              }
            )
          ),
          renderLineHighlightOnlyWhenFocus: D(
            new g(78, 'renderLineHighlightOnlyWhenFocus', !1, {
              description: n.N(
                'renderLineHighlightOnlyWhenFocus',
                'Controls if the editor should render the current line highlight only when the editor is focused'
              ),
            })
          ),
          renderValidationDecorations: D(
            new _(79, 'renderValidationDecorations', 'editable', [
              'editable',
              'on',
              'off',
            ])
          ),
          renderWhitespace: D(
            new _(
              80,
              'renderWhitespace',
              'selection',
              ['none', 'boundary', 'selection', 'trailing', 'all'],
              {
                enumDescriptions: [
                  '',
                  n.N(
                    'renderWhitespace.boundary',
                    'Render whitespace characters except for single spaces between words.'
                  ),
                  n.N(
                    'renderWhitespace.selection',
                    'Render whitespace characters only on selected text.'
                  ),
                  n.N(
                    'renderWhitespace.trailing',
                    'Render only trailing whitespace characters'
                  ),
                  '',
                ],
                description: n.N(
                  'renderWhitespace',
                  'Controls how the editor should render whitespace characters.'
                ),
              }
            )
          ),
          revealHorizontalRightPadding: D(
            new f(81, 'revealHorizontalRightPadding', 30, 0, 1e3)
          ),
          roundedSelection: D(
            new g(82, 'roundedSelection', !0, {
              description: n.N(
                'roundedSelection',
                'Controls whether selections should have rounded corners.'
              ),
            })
          ),
          rulers: D(
            new (class extends d {
              constructor() {
                const e = [],
                  t = {
                    type: 'number',
                    description: n.N(
                      'rulers.size',
                      'Number of monospace characters at which this editor ruler will render.'
                    ),
                  };
                super(83, 'rulers', e, {
                  type: 'array',
                  items: {
                    anyOf: [
                      t,
                      {
                        type: ['object'],
                        properties: {
                          column: t,
                          color: {
                            type: 'string',
                            description: n.N(
                              'rulers.color',
                              'Color of this editor ruler.'
                            ),
                            format: 'color-hex',
                          },
                        },
                      },
                    ],
                  },
                  default: e,
                  description: n.N(
                    'rulers',
                    'Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.'
                  ),
                });
              }
              validate(e) {
                if (Array.isArray(e)) {
                  let t = [];
                  for (let i of e)
                    if ('number' == typeof i)
                      t.push({
                        column: f.clampedInt(i, 0, 0, 1e4),
                        color: null,
                      });
                    else if (i && 'object' == typeof i) {
                      const e = i;
                      t.push({
                        column: f.clampedInt(e.column, 0, 0, 1e4),
                        color: e.color,
                      });
                    }
                  return t.sort((e, t) => e.column - t.column), t;
                }
                return this.defaultValue;
              }
            })()
          ),
          scrollbar: D(
            new (class extends d {
              constructor() {
                super(84, 'scrollbar', {
                  vertical: 1,
                  horizontal: 1,
                  arrowSize: 11,
                  useShadows: !0,
                  verticalHasArrows: !1,
                  horizontalHasArrows: !1,
                  horizontalScrollbarSize: 12,
                  horizontalSliderSize: 12,
                  verticalScrollbarSize: 14,
                  verticalSliderSize: 14,
                  handleMouseWheel: !0,
                  alwaysConsumeMouseWheel: !0,
                });
              }
              validate(e) {
                if (!e || 'object' != typeof e) return this.defaultValue;
                const t = e,
                  i = f.clampedInt(
                    t.horizontalScrollbarSize,
                    this.defaultValue.horizontalScrollbarSize,
                    0,
                    1e3
                  ),
                  n = f.clampedInt(
                    t.verticalScrollbarSize,
                    this.defaultValue.verticalScrollbarSize,
                    0,
                    1e3
                  );
                return {
                  arrowSize: f.clampedInt(
                    t.arrowSize,
                    this.defaultValue.arrowSize,
                    0,
                    1e3
                  ),
                  vertical: k(t.vertical, this.defaultValue.vertical),
                  horizontal: k(t.horizontal, this.defaultValue.horizontal),
                  useShadows: g.boolean(
                    t.useShadows,
                    this.defaultValue.useShadows
                  ),
                  verticalHasArrows: g.boolean(
                    t.verticalHasArrows,
                    this.defaultValue.verticalHasArrows
                  ),
                  horizontalHasArrows: g.boolean(
                    t.horizontalHasArrows,
                    this.defaultValue.horizontalHasArrows
                  ),
                  handleMouseWheel: g.boolean(
                    t.handleMouseWheel,
                    this.defaultValue.handleMouseWheel
                  ),
                  alwaysConsumeMouseWheel: g.boolean(
                    t.alwaysConsumeMouseWheel,
                    this.defaultValue.alwaysConsumeMouseWheel
                  ),
                  horizontalScrollbarSize: i,
                  horizontalSliderSize: f.clampedInt(
                    t.horizontalSliderSize,
                    i,
                    0,
                    1e3
                  ),
                  verticalScrollbarSize: n,
                  verticalSliderSize: f.clampedInt(
                    t.verticalSliderSize,
                    n,
                    0,
                    1e3
                  ),
                };
              }
            })()
          ),
          scrollBeyondLastColumn: D(
            new f(85, 'scrollBeyondLastColumn', 5, 0, 1073741824, {
              description: n.N(
                'scrollBeyondLastColumn',
                'Controls the number of extra characters beyond which the editor will scroll horizontally.'
              ),
            })
          ),
          scrollBeyondLastLine: D(
            new g(86, 'scrollBeyondLastLine', !0, {
              description: n.N(
                'scrollBeyondLastLine',
                'Controls whether the editor will scroll beyond the last line.'
              ),
            })
          ),
          scrollPredominantAxis: D(
            new g(87, 'scrollPredominantAxis', !0, {
              description: n.N(
                'scrollPredominantAxis',
                'Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.'
              ),
            })
          ),
          selectionClipboard: D(
            new g(88, 'selectionClipboard', !0, {
              description: n.N(
                'selectionClipboard',
                'Controls whether the Linux primary clipboard should be supported.'
              ),
              included: r.IJ,
            })
          ),
          selectionHighlight: D(
            new g(89, 'selectionHighlight', !0, {
              description: n.N(
                'selectionHighlight',
                'Controls whether the editor should highlight matches similar to the selection.'
              ),
            })
          ),
          selectOnLineNumbers: D(new g(90, 'selectOnLineNumbers', !0)),
          showFoldingControls: D(
            new _(
              91,
              'showFoldingControls',
              'mouseover',
              ['always', 'mouseover'],
              {
                enumDescriptions: [
                  n.N(
                    'showFoldingControls.always',
                    'Always show the folding controls.'
                  ),
                  n.N(
                    'showFoldingControls.mouseover',
                    'Only show the folding controls when the mouse is over the gutter.'
                  ),
                ],
                description: n.N(
                  'showFoldingControls',
                  'Controls when the folding controls on the gutter are shown.'
                ),
              }
            )
          ),
          showUnused: D(
            new g(92, 'showUnused', !0, {
              description: n.N(
                'showUnused',
                'Controls fading out of unused code.'
              ),
            })
          ),
          showDeprecated: D(
            new g(113, 'showDeprecated', !0, {
              description: n.N(
                'showDeprecated',
                'Controls strikethrough deprecated variables.'
              ),
            })
          ),
          snippetSuggestions: D(
            new _(
              93,
              'snippetSuggestions',
              'inline',
              ['top', 'bottom', 'inline', 'none'],
              {
                enumDescriptions: [
                  n.N(
                    'snippetSuggestions.top',
                    'Show snippet suggestions on top of other suggestions.'
                  ),
                  n.N(
                    'snippetSuggestions.bottom',
                    'Show snippet suggestions below other suggestions.'
                  ),
                  n.N(
                    'snippetSuggestions.inline',
                    'Show snippets suggestions with other suggestions.'
                  ),
                  n.N(
                    'snippetSuggestions.none',
                    'Do not show snippet suggestions.'
                  ),
                ],
                description: n.N(
                  'snippetSuggestions',
                  'Controls whether snippets are shown with other suggestions and how they are sorted.'
                ),
              }
            )
          ),
          smoothScrolling: D(
            new g(94, 'smoothScrolling', !1, {
              description: n.N(
                'smoothScrolling',
                'Controls whether the editor will scroll using an animation.'
              ),
            })
          ),
          stopRenderingLineAfter: D(
            new f(95, 'stopRenderingLineAfter', 1e4, -1, 1073741824)
          ),
          suggest: D(
            new (class extends d {
              constructor() {
                const e = {
                  insertMode: 'insert',
                  filterGraceful: !0,
                  snippetsPreventQuickSuggestions: !0,
                  localityBonus: !1,
                  shareSuggestSelections: !1,
                  showIcons: !0,
                  maxVisibleSuggestions: 12,
                  showMethods: !0,
                  showFunctions: !0,
                  showConstructors: !0,
                  showFields: !0,
                  showVariables: !0,
                  showClasses: !0,
                  showStructs: !0,
                  showInterfaces: !0,
                  showModules: !0,
                  showProperties: !0,
                  showEvents: !0,
                  showOperators: !0,
                  showUnits: !0,
                  showValues: !0,
                  showConstants: !0,
                  showEnums: !0,
                  showEnumMembers: !0,
                  showKeywords: !0,
                  showWords: !0,
                  showColors: !0,
                  showFiles: !0,
                  showReferences: !0,
                  showFolders: !0,
                  showTypeParameters: !0,
                  showSnippets: !0,
                  showUsers: !0,
                  showIssues: !0,
                  statusBar: { visible: !1 },
                };
                super(96, 'suggest', e, {
                  'editor.suggest.insertMode': {
                    type: 'string',
                    enum: ['insert', 'replace'],
                    enumDescriptions: [
                      n.N(
                        'suggest.insertMode.insert',
                        'Insert suggestion without overwriting text right of the cursor.'
                      ),
                      n.N(
                        'suggest.insertMode.replace',
                        'Insert suggestion and overwrite text right of the cursor.'
                      ),
                    ],
                    default: e.insertMode,
                    description: n.N(
                      'suggest.insertMode',
                      'Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.'
                    ),
                  },
                  'editor.suggest.filterGraceful': {
                    type: 'boolean',
                    default: e.filterGraceful,
                    description: n.N(
                      'suggest.filterGraceful',
                      'Controls whether filtering and sorting suggestions accounts for small typos.'
                    ),
                  },
                  'editor.suggest.localityBonus': {
                    type: 'boolean',
                    default: e.localityBonus,
                    description: n.N(
                      'suggest.localityBonus',
                      'Controls whether sorting favours words that appear close to the cursor.'
                    ),
                  },
                  'editor.suggest.shareSuggestSelections': {
                    type: 'boolean',
                    default: e.shareSuggestSelections,
                    markdownDescription: n.N(
                      'suggest.shareSuggestSelections',
                      'Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).'
                    ),
                  },
                  'editor.suggest.snippetsPreventQuickSuggestions': {
                    type: 'boolean',
                    default: e.snippetsPreventQuickSuggestions,
                    description: n.N(
                      'suggest.snippetsPreventQuickSuggestions',
                      'Controls whether an active snippet prevents quick suggestions.'
                    ),
                  },
                  'editor.suggest.showIcons': {
                    type: 'boolean',
                    default: e.showIcons,
                    description: n.N(
                      'suggest.showIcons',
                      'Controls whether to show or hide icons in suggestions.'
                    ),
                  },
                  'editor.suggest.maxVisibleSuggestions': {
                    type: 'number',
                    default: e.maxVisibleSuggestions,
                    minimum: 1,
                    maximum: 15,
                    description: n.N(
                      'suggest.maxVisibleSuggestions',
                      'Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).'
                    ),
                  },
                  'editor.suggest.filteredTypes': {
                    type: 'object',
                    deprecationMessage: n.N(
                      'deprecated',
                      "This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead."
                    ),
                  },
                  'editor.suggest.showMethods': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showMethods',
                      'When enabled IntelliSense shows `method`-suggestions.'
                    ),
                  },
                  'editor.suggest.showFunctions': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showFunctions',
                      'When enabled IntelliSense shows `function`-suggestions.'
                    ),
                  },
                  'editor.suggest.showConstructors': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showConstructors',
                      'When enabled IntelliSense shows `constructor`-suggestions.'
                    ),
                  },
                  'editor.suggest.showFields': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showFields',
                      'When enabled IntelliSense shows `field`-suggestions.'
                    ),
                  },
                  'editor.suggest.showVariables': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showVariables',
                      'When enabled IntelliSense shows `variable`-suggestions.'
                    ),
                  },
                  'editor.suggest.showClasses': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showClasss',
                      'When enabled IntelliSense shows `class`-suggestions.'
                    ),
                  },
                  'editor.suggest.showStructs': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showStructs',
                      'When enabled IntelliSense shows `struct`-suggestions.'
                    ),
                  },
                  'editor.suggest.showInterfaces': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showInterfaces',
                      'When enabled IntelliSense shows `interface`-suggestions.'
                    ),
                  },
                  'editor.suggest.showModules': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showModules',
                      'When enabled IntelliSense shows `module`-suggestions.'
                    ),
                  },
                  'editor.suggest.showProperties': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showPropertys',
                      'When enabled IntelliSense shows `property`-suggestions.'
                    ),
                  },
                  'editor.suggest.showEvents': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showEvents',
                      'When enabled IntelliSense shows `event`-suggestions.'
                    ),
                  },
                  'editor.suggest.showOperators': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showOperators',
                      'When enabled IntelliSense shows `operator`-suggestions.'
                    ),
                  },
                  'editor.suggest.showUnits': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showUnits',
                      'When enabled IntelliSense shows `unit`-suggestions.'
                    ),
                  },
                  'editor.suggest.showValues': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showValues',
                      'When enabled IntelliSense shows `value`-suggestions.'
                    ),
                  },
                  'editor.suggest.showConstants': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showConstants',
                      'When enabled IntelliSense shows `constant`-suggestions.'
                    ),
                  },
                  'editor.suggest.showEnums': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showEnums',
                      'When enabled IntelliSense shows `enum`-suggestions.'
                    ),
                  },
                  'editor.suggest.showEnumMembers': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showEnumMembers',
                      'When enabled IntelliSense shows `enumMember`-suggestions.'
                    ),
                  },
                  'editor.suggest.showKeywords': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showKeywords',
                      'When enabled IntelliSense shows `keyword`-suggestions.'
                    ),
                  },
                  'editor.suggest.showWords': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showTexts',
                      'When enabled IntelliSense shows `text`-suggestions.'
                    ),
                  },
                  'editor.suggest.showColors': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showColors',
                      'When enabled IntelliSense shows `color`-suggestions.'
                    ),
                  },
                  'editor.suggest.showFiles': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showFiles',
                      'When enabled IntelliSense shows `file`-suggestions.'
                    ),
                  },
                  'editor.suggest.showReferences': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showReferences',
                      'When enabled IntelliSense shows `reference`-suggestions.'
                    ),
                  },
                  'editor.suggest.showCustomcolors': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showCustomcolors',
                      'When enabled IntelliSense shows `customcolor`-suggestions.'
                    ),
                  },
                  'editor.suggest.showFolders': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showFolders',
                      'When enabled IntelliSense shows `folder`-suggestions.'
                    ),
                  },
                  'editor.suggest.showTypeParameters': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showTypeParameters',
                      'When enabled IntelliSense shows `typeParameter`-suggestions.'
                    ),
                  },
                  'editor.suggest.showSnippets': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showSnippets',
                      'When enabled IntelliSense shows `snippet`-suggestions.'
                    ),
                  },
                  'editor.suggest.showUsers': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showUsers',
                      'When enabled IntelliSense shows `user`-suggestions.'
                    ),
                  },
                  'editor.suggest.showIssues': {
                    type: 'boolean',
                    default: !0,
                    markdownDescription: n.N(
                      'editor.suggest.showIssues',
                      'When enabled IntelliSense shows `issues`-suggestions.'
                    ),
                  },
                  'editor.suggest.statusBar.visible': {
                    type: 'boolean',
                    default: !1,
                    markdownDescription: n.N(
                      'editor.suggest.statusBar.visible',
                      'Controls the visibility of the status bar at the bottom of the suggest widget.'
                    ),
                  },
                });
              }
              validate(e) {
                var t;
                if (!e || 'object' != typeof e) return this.defaultValue;
                const i = e;
                return {
                  insertMode: _.stringSet(
                    i.insertMode,
                    this.defaultValue.insertMode,
                    ['insert', 'replace']
                  ),
                  filterGraceful: g.boolean(
                    i.filterGraceful,
                    this.defaultValue.filterGraceful
                  ),
                  snippetsPreventQuickSuggestions: g.boolean(
                    i.snippetsPreventQuickSuggestions,
                    this.defaultValue.filterGraceful
                  ),
                  localityBonus: g.boolean(
                    i.localityBonus,
                    this.defaultValue.localityBonus
                  ),
                  shareSuggestSelections: g.boolean(
                    i.shareSuggestSelections,
                    this.defaultValue.shareSuggestSelections
                  ),
                  showIcons: g.boolean(
                    i.showIcons,
                    this.defaultValue.showIcons
                  ),
                  maxVisibleSuggestions: f.clampedInt(
                    i.maxVisibleSuggestions,
                    this.defaultValue.maxVisibleSuggestions,
                    1,
                    15
                  ),
                  showMethods: g.boolean(
                    i.showMethods,
                    this.defaultValue.showMethods
                  ),
                  showFunctions: g.boolean(
                    i.showFunctions,
                    this.defaultValue.showFunctions
                  ),
                  showConstructors: g.boolean(
                    i.showConstructors,
                    this.defaultValue.showConstructors
                  ),
                  showFields: g.boolean(
                    i.showFields,
                    this.defaultValue.showFields
                  ),
                  showVariables: g.boolean(
                    i.showVariables,
                    this.defaultValue.showVariables
                  ),
                  showClasses: g.boolean(
                    i.showClasses,
                    this.defaultValue.showClasses
                  ),
                  showStructs: g.boolean(
                    i.showStructs,
                    this.defaultValue.showStructs
                  ),
                  showInterfaces: g.boolean(
                    i.showInterfaces,
                    this.defaultValue.showInterfaces
                  ),
                  showModules: g.boolean(
                    i.showModules,
                    this.defaultValue.showModules
                  ),
                  showProperties: g.boolean(
                    i.showProperties,
                    this.defaultValue.showProperties
                  ),
                  showEvents: g.boolean(
                    i.showEvents,
                    this.defaultValue.showEvents
                  ),
                  showOperators: g.boolean(
                    i.showOperators,
                    this.defaultValue.showOperators
                  ),
                  showUnits: g.boolean(
                    i.showUnits,
                    this.defaultValue.showUnits
                  ),
                  showValues: g.boolean(
                    i.showValues,
                    this.defaultValue.showValues
                  ),
                  showConstants: g.boolean(
                    i.showConstants,
                    this.defaultValue.showConstants
                  ),
                  showEnums: g.boolean(
                    i.showEnums,
                    this.defaultValue.showEnums
                  ),
                  showEnumMembers: g.boolean(
                    i.showEnumMembers,
                    this.defaultValue.showEnumMembers
                  ),
                  showKeywords: g.boolean(
                    i.showKeywords,
                    this.defaultValue.showKeywords
                  ),
                  showWords: g.boolean(
                    i.showWords,
                    this.defaultValue.showWords
                  ),
                  showColors: g.boolean(
                    i.showColors,
                    this.defaultValue.showColors
                  ),
                  showFiles: g.boolean(
                    i.showFiles,
                    this.defaultValue.showFiles
                  ),
                  showReferences: g.boolean(
                    i.showReferences,
                    this.defaultValue.showReferences
                  ),
                  showFolders: g.boolean(
                    i.showFolders,
                    this.defaultValue.showFolders
                  ),
                  showTypeParameters: g.boolean(
                    i.showTypeParameters,
                    this.defaultValue.showTypeParameters
                  ),
                  showSnippets: g.boolean(
                    i.showSnippets,
                    this.defaultValue.showSnippets
                  ),
                  showUsers: g.boolean(
                    i.showUsers,
                    this.defaultValue.showUsers
                  ),
                  showIssues: g.boolean(
                    i.showIssues,
                    this.defaultValue.showIssues
                  ),
                  statusBar: {
                    visible: g.boolean(
                      null === (t = i.statusBar) || void 0 === t
                        ? void 0
                        : t.visible,
                      !!this.defaultValue.statusBar.visible
                    ),
                  },
                };
              }
            })()
          ),
          suggestFontSize: D(
            new f(97, 'suggestFontSize', 0, 0, 1e3, {
              markdownDescription: n.N(
                'suggestFontSize',
                'Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.'
              ),
            })
          ),
          suggestLineHeight: D(
            new f(98, 'suggestLineHeight', 0, 0, 1e3, {
              markdownDescription: n.N(
                'suggestLineHeight',
                'Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.'
              ),
            })
          ),
          suggestOnTriggerCharacters: D(
            new g(99, 'suggestOnTriggerCharacters', !0, {
              description: n.N(
                'suggestOnTriggerCharacters',
                'Controls whether suggestions should automatically show up when typing trigger characters.'
              ),
            })
          ),
          suggestSelection: D(
            new _(
              100,
              'suggestSelection',
              'recentlyUsed',
              ['first', 'recentlyUsed', 'recentlyUsedByPrefix'],
              {
                markdownEnumDescriptions: [
                  n.N(
                    'suggestSelection.first',
                    'Always select the first suggestion.'
                  ),
                  n.N(
                    'suggestSelection.recentlyUsed',
                    'Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.'
                  ),
                  n.N(
                    'suggestSelection.recentlyUsedByPrefix',
                    'Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.'
                  ),
                ],
                description: n.N(
                  'suggestSelection',
                  'Controls how suggestions are pre-selected when showing the suggest list.'
                ),
              }
            )
          ),
          tabCompletion: D(
            new _(101, 'tabCompletion', 'off', ['on', 'off', 'onlySnippets'], {
              enumDescriptions: [
                n.N(
                  'tabCompletion.on',
                  'Tab complete will insert the best matching suggestion when pressing tab.'
                ),
                n.N('tabCompletion.off', 'Disable tab completions.'),
                n.N(
                  'tabCompletion.onlySnippets',
                  "Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled."
                ),
              ],
              description: n.N('tabCompletion', 'Enables tab completions.'),
            })
          ),
          tabIndex: D(new f(102, 'tabIndex', 0, -1, 1073741824)),
          unusualLineTerminators: D(
            new _(
              103,
              'unusualLineTerminators',
              'prompt',
              ['off', 'prompt', 'auto'],
              {
                enumDescriptions: [
                  n.N(
                    'unusualLineTerminators.off',
                    'Unusual line terminators are ignored.'
                  ),
                  n.N(
                    'unusualLineTerminators.prompt',
                    'Unusual line terminators prompt to be removed.'
                  ),
                  n.N(
                    'unusualLineTerminators.auto',
                    'Unusual line terminators are automatically removed.'
                  ),
                ],
                description: n.N(
                  'unusualLineTerminators',
                  'Remove unusual line terminators that might cause problems.'
                ),
              }
            )
          ),
          useTabStops: D(
            new g(104, 'useTabStops', !0, {
              description: n.N(
                'useTabStops',
                'Inserting and deleting whitespace follows tab stops.'
              ),
            })
          ),
          wordSeparators: D(
            new m(105, 'wordSeparators', s.vu, {
              description: n.N(
                'wordSeparators',
                'Characters that will be used as word separators when doing word related navigations or operations.'
              ),
            })
          ),
          wordWrap: D(
            new _(
              106,
              'wordWrap',
              'off',
              ['off', 'on', 'wordWrapColumn', 'bounded'],
              {
                markdownEnumDescriptions: [
                  n.N('wordWrap.off', 'Lines will never wrap.'),
                  n.N('wordWrap.on', 'Lines will wrap at the viewport width.'),
                  n.N(
                    {
                      key: 'wordWrap.wordWrapColumn',
                      comment: [
                        '- `editor.wordWrapColumn` refers to a different setting and should not be localized.',
                      ],
                    },
                    'Lines will wrap at `#editor.wordWrapColumn#`.'
                  ),
                  n.N(
                    {
                      key: 'wordWrap.bounded',
                      comment: [
                        '- viewport means the edge of the visible window size.',
                        '- `editor.wordWrapColumn` refers to a different setting and should not be localized.',
                      ],
                    },
                    'Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.'
                  ),
                ],
                description: n.N(
                  {
                    key: 'wordWrap',
                    comment: [
                      "- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.",
                      '- `editor.wordWrapColumn` refers to a different setting and should not be localized.',
                    ],
                  },
                  'Controls how lines should wrap.'
                ),
              }
            )
          ),
          wordWrapBreakAfterCharacters: D(
            new m(
              107,
              'wordWrapBreakAfterCharacters',
              ' \t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣'
            )
          ),
          wordWrapBreakBeforeCharacters: D(
            new m(
              108,
              'wordWrapBreakBeforeCharacters',
              '([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋'
            )
          ),
          wordWrapColumn: D(
            new f(109, 'wordWrapColumn', 80, 1, 1073741824, {
              markdownDescription: n.N(
                {
                  key: 'wordWrapColumn',
                  comment: [
                    '- `editor.wordWrap` refers to a different setting and should not be localized.',
                    "- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized.",
                  ],
                },
                'Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.'
              ),
            })
          ),
          wordWrapMinified: D(new g(110, 'wordWrapMinified', !0)),
          wrappingIndent: D(
            new b(
              111,
              'wrappingIndent',
              1,
              'same',
              ['none', 'same', 'indent', 'deepIndent'],
              function (e) {
                switch (e) {
                  case 'none':
                    return 0;
                  case 'same':
                    return 1;
                  case 'indent':
                    return 2;
                  case 'deepIndent':
                    return 3;
                }
              },
              {
                enumDescriptions: [
                  n.N(
                    'wrappingIndent.none',
                    'No indentation. Wrapped lines begin at column 1.'
                  ),
                  n.N(
                    'wrappingIndent.same',
                    'Wrapped lines get the same indentation as the parent.'
                  ),
                  n.N(
                    'wrappingIndent.indent',
                    'Wrapped lines get +1 indentation toward the parent.'
                  ),
                  n.N(
                    'wrappingIndent.deepIndent',
                    'Wrapped lines get +2 indentation toward the parent.'
                  ),
                ],
                description: n.N(
                  'wrappingIndent',
                  'Controls the indentation of wrapped lines.'
                ),
              }
            )
          ),
          wrappingStrategy: D(
            new _(112, 'wrappingStrategy', 'simple', ['simple', 'advanced'], {
              enumDescriptions: [
                n.N(
                  'wrappingStrategy.simple',
                  'Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.'
                ),
                n.N(
                  'wrappingStrategy.advanced',
                  'Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.'
                ),
              ],
              description: n.N(
                'wrappingStrategy',
                'Controls the algorithm that computes wrapping points.'
              ),
            })
          ),
          editorClassName: D(
            new (class extends h {
              constructor() {
                super(114, [57, 27]);
              }
              compute(e, t, i) {
                const n = ['monaco-editor'];
                return (
                  t.get(27) && n.push(t.get(27)),
                  e.extraEditorClassName && n.push(e.extraEditorClassName),
                  'default' === t.get(57)
                    ? n.push('mouse-default')
                    : 'copy' === t.get(57) && n.push('mouse-copy'),
                  t.get(92) && n.push('showUnused'),
                  t.get(113) && n.push('showDeprecated'),
                  n.join(' ')
                );
              }
            })()
          ),
          pixelRatio: D(
            new (class extends h {
              constructor() {
                super(115);
              }
              compute(e, t, i) {
                return e.pixelRatio;
              }
            })()
          ),
          tabFocusMode: D(
            new (class extends h {
              constructor() {
                super(116, [72]);
              }
              compute(e, t, i) {
                return !!t.get(72) || e.tabFocusMode;
              }
            })()
          ),
          layoutInfo: D(new C()),
          wrappingInfo: D(
            new (class extends h {
              constructor() {
                super(118, [117]);
              }
              compute(e, t, i) {
                const n = t.get(117);
                return {
                  isDominatedByLongLines: e.isDominatedByLongLines,
                  isWordWrapMinified: n.isWordWrapMinified,
                  isViewportWrapping: n.isViewportWrapping,
                  wrappingColumn: n.wrappingColumn,
                };
              }
            })()
          ),
        };
      },
      82334: (e, t, i) => {
        'use strict';
        i.d(t, { C: () => r });
        var n = i(4669);
        const r = new (class {
          constructor() {
            (this._zoomLevel = 0),
              (this._onDidChangeZoomLevel = new n.Q5()),
              (this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event);
          }
          getZoomLevel() {
            return this._zoomLevel;
          }
          setZoomLevel(e) {
            (e = Math.min(Math.max(-5, e), 20)),
              this._zoomLevel !== e &&
                ((this._zoomLevel = e),
                this._onDidChangeZoomLevel.fire(this._zoomLevel));
          }
        })();
      },
      27374: (e, t, i) => {
        'use strict';
        i.d(t, { E: () => o, p: () => a });
        var n = i(1432),
          r = i(82334);
        const s = n.dz ? 1.5 : 1.35;
        class o {
          constructor(e) {
            (this.zoomLevel = e.zoomLevel),
              (this.fontFamily = String(e.fontFamily)),
              (this.fontWeight = String(e.fontWeight)),
              (this.fontSize = e.fontSize),
              (this.fontFeatureSettings = e.fontFeatureSettings),
              (this.lineHeight = 0 | e.lineHeight),
              (this.letterSpacing = e.letterSpacing);
          }
          static createFromValidatedSettings(e, t, i) {
            const n = e.get(35),
              r = e.get(39),
              s = e.get(38),
              a = e.get(37),
              l = e.get(51),
              c = e.get(48);
            return o._create(n, r, s, a, l, c, t, i);
          }
          static _create(e, t, i, n, a, l, c, d) {
            0 === a ? (a = Math.round(s * i)) : a < 8 && (a = 8);
            const h = 1 + (d ? 0 : 0.1 * r.C.getZoomLevel());
            return new o({
              zoomLevel: c,
              fontFamily: e,
              fontWeight: t,
              fontSize: (i *= h),
              fontFeatureSettings: n,
              lineHeight: (a *= h),
              letterSpacing: l,
            });
          }
          getId() {
            return (
              this.zoomLevel +
              '-' +
              this.fontFamily +
              '-' +
              this.fontWeight +
              '-' +
              this.fontSize +
              '-' +
              this.fontFeatureSettings +
              '-' +
              this.lineHeight +
              '-' +
              this.letterSpacing
            );
          }
          getMassagedFontFamily() {
            return /[,"']/.test(this.fontFamily)
              ? this.fontFamily
              : /[+ ]/.test(this.fontFamily)
              ? `"${this.fontFamily}"`
              : this.fontFamily;
          }
        }
        class a extends o {
          constructor(e, t) {
            super(e),
              (this.isTrusted = t),
              (this.isMonospace = e.isMonospace),
              (this.typicalHalfwidthCharacterWidth =
                e.typicalHalfwidthCharacterWidth),
              (this.typicalFullwidthCharacterWidth =
                e.typicalFullwidthCharacterWidth),
              (this.canUseHalfwidthRightwardsArrow =
                e.canUseHalfwidthRightwardsArrow),
              (this.spaceWidth = e.spaceWidth),
              (this.middotWidth = e.middotWidth),
              (this.wsmiddotWidth = e.wsmiddotWidth),
              (this.maxDigitWidth = e.maxDigitWidth);
          }
          equals(e) {
            return (
              this.fontFamily === e.fontFamily &&
              this.fontWeight === e.fontWeight &&
              this.fontSize === e.fontSize &&
              this.fontFeatureSettings === e.fontFeatureSettings &&
              this.lineHeight === e.lineHeight &&
              this.letterSpacing === e.letterSpacing &&
              this.typicalHalfwidthCharacterWidth ===
                e.typicalHalfwidthCharacterWidth &&
              this.typicalFullwidthCharacterWidth ===
                e.typicalFullwidthCharacterWidth &&
              this.canUseHalfwidthRightwardsArrow ===
                e.canUseHalfwidthRightwardsArrow &&
              this.spaceWidth === e.spaceWidth &&
              this.middotWidth === e.middotWidth &&
              this.wsmiddotWidth === e.wsmiddotWidth &&
              this.maxDigitWidth === e.maxDigitWidth
            );
          }
        }
      },
      33181: (e, t, i) => {
        'use strict';
        i.d(t, {
          LM: () => f,
          rS: () => p,
          zp: () => m,
          Vi: () => v,
          Tp: () => y,
          io: () => w,
          LN: () => C,
        });
        var n = i(17301),
          r = i(97295),
          s = i(50187),
          o = i(24314),
          a = i(3860),
          l = i(3411),
          c = i(83831);
        const d = () => !0,
          h = () => !1,
          u = (e) => ' ' === e || '\t' === e;
        function g(e, t, i) {
          e.has(t) ? e.get(t).push(i) : e.set(t, [i]);
        }
        class f {
          constructor(e, t, i) {
            this._languageIdentifier = e;
            const n = i.options,
              r = n.get(117);
            (this.readOnly = n.get(72)),
              (this.tabSize = t.tabSize),
              (this.indentSize = t.indentSize),
              (this.insertSpaces = t.insertSpaces),
              (this.lineHeight = n.get(51)),
              (this.pageSize = Math.max(
                1,
                Math.floor(r.height / this.lineHeight) - 2
              )),
              (this.useTabStops = n.get(104)),
              (this.wordSeparators = n.get(105)),
              (this.emptySelectionClipboard = n.get(26)),
              (this.copyWithSyntaxHighlighting = n.get(16)),
              (this.multiCursorMergeOverlapping = n.get(60)),
              (this.multiCursorPaste = n.get(62)),
              (this.autoClosingBrackets = n.get(5)),
              (this.autoClosingQuotes = n.get(7)),
              (this.autoClosingOvertype = n.get(6)),
              (this.autoSurround = n.get(10)),
              (this.autoIndent = n.get(8)),
              (this.autoClosingPairsOpen2 = new Map()),
              (this.autoClosingPairsClose2 = new Map()),
              (this.surroundingPairs = {}),
              (this._electricChars = null),
              (this.shouldAutoCloseBefore = {
                quote: f._getShouldAutoClose(e, this.autoClosingQuotes),
                bracket: f._getShouldAutoClose(e, this.autoClosingBrackets),
              });
            let s = f._getAutoClosingPairs(e);
            if (s)
              for (const e of s)
                g(
                  this.autoClosingPairsOpen2,
                  e.open.charAt(e.open.length - 1),
                  e
                ),
                  1 === e.close.length &&
                    g(this.autoClosingPairsClose2, e.close, e);
            let o = f._getSurroundingPairs(e);
            if (o) for (const e of o) this.surroundingPairs[e.open] = e.close;
          }
          static shouldRecreate(e) {
            return (
              e.hasChanged(117) ||
              e.hasChanged(105) ||
              e.hasChanged(26) ||
              e.hasChanged(60) ||
              e.hasChanged(62) ||
              e.hasChanged(5) ||
              e.hasChanged(7) ||
              e.hasChanged(6) ||
              e.hasChanged(10) ||
              e.hasChanged(104) ||
              e.hasChanged(51) ||
              e.hasChanged(72)
            );
          }
          get electricChars() {
            if (!this._electricChars) {
              this._electricChars = {};
              let e = f._getElectricCharacters(this._languageIdentifier);
              if (e) for (const t of e) this._electricChars[t] = !0;
            }
            return this._electricChars;
          }
          normalizeIndentation(e) {
            return l.yO.normalizeIndentation(
              e,
              this.indentSize,
              this.insertSpaces
            );
          }
          static _getElectricCharacters(e) {
            try {
              return c.zu.getElectricCharacters(e.id);
            } catch (e) {
              return (0, n.dL)(e), null;
            }
          }
          static _getAutoClosingPairs(e) {
            try {
              return c.zu.getAutoClosingPairs(e.id);
            } catch (e) {
              return (0, n.dL)(e), null;
            }
          }
          static _getShouldAutoClose(e, t) {
            switch (t) {
              case 'beforeWhitespace':
                return u;
              case 'languageDefined':
                return f._getLanguageDefinedShouldAutoClose(e);
              case 'always':
                return d;
              case 'never':
                return h;
            }
          }
          static _getLanguageDefinedShouldAutoClose(e) {
            try {
              const t = c.zu.getAutoCloseBeforeSet(e.id);
              return (e) => -1 !== t.indexOf(e);
            } catch (e) {
              return (0, n.dL)(e), h;
            }
          }
          static _getSurroundingPairs(e) {
            try {
              return c.zu.getSurroundingPairs(e.id);
            } catch (e) {
              return (0, n.dL)(e), null;
            }
          }
        }
        class p {
          constructor(e, t, i, n) {
            (this.selectionStart = e),
              (this.selectionStartLeftoverVisibleColumns = t),
              (this.position = i),
              (this.leftoverVisibleColumns = n),
              (this.selection = p._computeSelection(
                this.selectionStart,
                this.position
              ));
          }
          equals(e) {
            return (
              this.selectionStartLeftoverVisibleColumns ===
                e.selectionStartLeftoverVisibleColumns &&
              this.leftoverVisibleColumns === e.leftoverVisibleColumns &&
              this.position.equals(e.position) &&
              this.selectionStart.equalsRange(e.selectionStart)
            );
          }
          hasSelection() {
            return !this.selection.isEmpty() || !this.selectionStart.isEmpty();
          }
          move(e, t, i, n) {
            return e
              ? new p(
                  this.selectionStart,
                  this.selectionStartLeftoverVisibleColumns,
                  new s.L(t, i),
                  n
                )
              : new p(new o.e(t, i, t, i), n, new s.L(t, i), n);
          }
          static _computeSelection(e, t) {
            let i, n, r, s;
            return (
              e.isEmpty()
                ? ((i = e.startLineNumber),
                  (n = e.startColumn),
                  (r = t.lineNumber),
                  (s = t.column))
                : t.isBeforeOrEqual(e.getStartPosition())
                ? ((i = e.endLineNumber),
                  (n = e.endColumn),
                  (r = t.lineNumber),
                  (s = t.column))
                : ((i = e.startLineNumber),
                  (n = e.startColumn),
                  (r = t.lineNumber),
                  (s = t.column)),
              new a.Y(i, n, r, s)
            );
          }
        }
        class m {
          constructor(e, t, i) {
            (this.model = e),
              (this.coordinatesConverter = t),
              (this.cursorConfig = i);
          }
        }
        class _ {
          constructor(e) {
            (this.modelState = e), (this.viewState = null);
          }
        }
        class b {
          constructor(e) {
            (this.modelState = null), (this.viewState = e);
          }
        }
        class v {
          constructor(e, t) {
            (this.modelState = e), (this.viewState = t);
          }
          static fromModelState(e) {
            return new _(e);
          }
          static fromViewState(e) {
            return new b(e);
          }
          static fromModelSelection(e) {
            const t = e.selectionStartLineNumber,
              i = e.selectionStartColumn,
              n = e.positionLineNumber,
              r = e.positionColumn,
              a = new p(new o.e(t, i, t, i), 0, new s.L(n, r), 0);
            return v.fromModelState(a);
          }
          static fromModelSelections(e) {
            let t = [];
            for (let i = 0, n = e.length; i < n; i++)
              t[i] = this.fromModelSelection(e[i]);
            return t;
          }
          equals(e) {
            return (
              this.viewState.equals(e.viewState) &&
              this.modelState.equals(e.modelState)
            );
          }
        }
        class y {
          constructor(e, t, i) {
            (this.type = e),
              (this.commands = t),
              (this.shouldPushStackElementBefore =
                i.shouldPushStackElementBefore),
              (this.shouldPushStackElementAfter =
                i.shouldPushStackElementAfter);
          }
        }
        class w {
          static visibleColumnFromColumn(e, t, i) {
            const n = e.length,
              s = t - 1 < n ? t - 1 : n;
            let o = 0,
              a = 0;
            for (; a < s; ) {
              const t = r.ZH(e, s, a);
              if (((a += t >= 65536 ? 2 : 1), 9 === t))
                o = w.nextRenderTabStop(o, i);
              else {
                let i = r.S6(t);
                for (; a < s; ) {
                  const t = r.ZH(e, s, a),
                    n = r.S6(t);
                  if (r.fi(i, n)) break;
                  (a += t >= 65536 ? 2 : 1), (i = n);
                }
                r.K7(t) || r.C8(t) ? (o += 2) : (o += 1);
              }
            }
            return o;
          }
          static visibleColumnFromColumn2(e, t, i) {
            return this.visibleColumnFromColumn(
              t.getLineContent(i.lineNumber),
              i.column,
              e.tabSize
            );
          }
          static columnFromVisibleColumn(e, t, i) {
            if (t <= 0) return 1;
            const n = e.length;
            let s = 0,
              o = 1,
              a = 0;
            for (; a < n; ) {
              const l = r.ZH(e, n, a);
              let c;
              if (((a += l >= 65536 ? 2 : 1), 9 === l))
                c = w.nextRenderTabStop(s, i);
              else {
                let t = r.S6(l);
                for (; a < n; ) {
                  const i = r.ZH(e, n, a),
                    s = r.S6(i);
                  if (r.fi(t, s)) break;
                  (a += i >= 65536 ? 2 : 1), (t = s);
                }
                c = r.K7(l) || r.C8(l) ? s + 2 : s + 1;
              }
              const d = a + 1;
              if (c >= t) return c - t < t - s ? d : o;
              (s = c), (o = d);
            }
            return n + 1;
          }
          static columnFromVisibleColumn2(e, t, i, n) {
            let r = this.columnFromVisibleColumn(
                t.getLineContent(i),
                n,
                e.tabSize
              ),
              s = t.getLineMinColumn(i);
            if (r < s) return s;
            let o = t.getLineMaxColumn(i);
            return r > o ? o : r;
          }
          static nextRenderTabStop(e, t) {
            return e + t - (e % t);
          }
          static nextIndentTabStop(e, t) {
            return e + t - (e % t);
          }
          static prevRenderTabStop(e, t) {
            return e - 1 - ((e - 1) % t);
          }
          static prevIndentTabStop(e, t) {
            return e - 1 - ((e - 1) % t);
          }
        }
        function C(e) {
          return "'" === e || '"' === e || '`' === e;
        }
      },
      31380: (e, t, i) => {
        'use strict';
        i.d(t, { A: () => l });
        var n = i(97295),
          r = i(61329),
          s = i(33181),
          o = i(88784),
          a = i(24314);
        class l {
          static deleteRight(e, t, i, n) {
            let s = [],
              l = 3 !== e;
            for (let e = 0, c = n.length; e < c; e++) {
              const c = n[e];
              let d = c;
              if (d.isEmpty()) {
                let e = c.getPosition(),
                  n = o.o.right(t, i, e.lineNumber, e.column);
                d = new a.e(n.lineNumber, n.column, e.lineNumber, e.column);
              }
              d.isEmpty()
                ? (s[e] = null)
                : (d.startLineNumber !== d.endLineNumber && (l = !0),
                  (s[e] = new r.T4(d, '')));
            }
            return [l, s];
          }
          static _isAutoClosingPairDelete(e, t, i) {
            if (
              'never' === e.autoClosingBrackets &&
              'never' === e.autoClosingQuotes
            )
              return !1;
            for (let n = 0, r = i.length; n < r; n++) {
              const r = i[n],
                o = r.getPosition();
              if (!r.isEmpty()) return !1;
              const a = t.getLineContent(o.lineNumber),
                l = a[o.column - 2],
                c = e.autoClosingPairsOpen2.get(l);
              if (!c) return !1;
              if ((0, s.LN)(l)) {
                if ('never' === e.autoClosingQuotes) return !1;
              } else if ('never' === e.autoClosingBrackets) return !1;
              const d = a[o.column - 1];
              let h = !1;
              for (const e of c) e.open === l && e.close === d && (h = !0);
              if (!h) return !1;
            }
            return !0;
          }
          static _runAutoClosingPairDelete(e, t, i) {
            let n = [];
            for (let e = 0, t = i.length; e < t; e++) {
              const t = i[e].getPosition(),
                s = new a.e(
                  t.lineNumber,
                  t.column - 1,
                  t.lineNumber,
                  t.column + 1
                );
              n[e] = new r.T4(s, '');
            }
            return [!0, n];
          }
          static deleteLeft(e, t, i, l) {
            if (this._isAutoClosingPairDelete(t, i, l))
              return this._runAutoClosingPairDelete(t, i, l);
            let c = [],
              d = 2 !== e;
            for (let e = 0, h = l.length; e < h; e++) {
              const h = l[e];
              let u = h;
              if (u.isEmpty()) {
                let e = h.getPosition();
                if (t.useTabStops && e.column > 1) {
                  let r = i.getLineContent(e.lineNumber),
                    o = n.LC(r),
                    l = -1 === o ? r.length + 1 : o + 1;
                  if (e.column <= l) {
                    let n = s.io.visibleColumnFromColumn2(t, i, e),
                      r = s.io.prevIndentTabStop(n, t.indentSize),
                      o = s.io.columnFromVisibleColumn2(t, i, e.lineNumber, r);
                    u = new a.e(e.lineNumber, o, e.lineNumber, e.column);
                  } else
                    u = new a.e(
                      e.lineNumber,
                      e.column - 1,
                      e.lineNumber,
                      e.column
                    );
                } else {
                  let n = o.o.left(t, i, e.lineNumber, e.column);
                  u = new a.e(n.lineNumber, n.column, e.lineNumber, e.column);
                }
              }
              u.isEmpty()
                ? (c[e] = null)
                : (u.startLineNumber !== u.endLineNumber && (d = !0),
                  (c[e] = new r.T4(u, '')));
            }
            return [d, c];
          }
          static cut(e, t, i) {
            let n = [];
            for (let s = 0, o = i.length; s < o; s++) {
              const o = i[s];
              if (o.isEmpty())
                if (e.emptySelectionClipboard) {
                  let e,
                    i,
                    l,
                    c,
                    d = o.getPosition();
                  d.lineNumber < t.getLineCount()
                    ? ((e = d.lineNumber),
                      (i = 1),
                      (l = d.lineNumber + 1),
                      (c = 1))
                    : d.lineNumber > 1
                    ? ((e = d.lineNumber - 1),
                      (i = t.getLineMaxColumn(d.lineNumber - 1)),
                      (l = d.lineNumber),
                      (c = t.getLineMaxColumn(d.lineNumber)))
                    : ((e = d.lineNumber),
                      (i = 1),
                      (l = d.lineNumber),
                      (c = t.getLineMaxColumn(d.lineNumber)));
                  let h = new a.e(e, i, l, c);
                  h.isEmpty() ? (n[s] = null) : (n[s] = new r.T4(h, ''));
                } else n[s] = null;
              else n[s] = new r.T4(o, '');
            }
            return new s.Tp(0, n, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0,
            });
          }
        }
      },
      83814: (e, t, i) => {
        'use strict';
        i.d(t, { P: () => d, N: () => n });
        var n,
          r = i(98401),
          s = i(33181),
          o = i(88784),
          a = i(5795),
          l = i(50187),
          c = i(24314);
        class d {
          static addCursorDown(e, t, i) {
            let n = [],
              r = 0;
            for (let a = 0, l = t.length; a < l; a++) {
              const l = t[a];
              (n[r++] = new s.Vi(l.modelState, l.viewState)),
                (n[r++] = i
                  ? s.Vi.fromModelState(
                      o.o.translateDown(e.cursorConfig, e.model, l.modelState)
                    )
                  : s.Vi.fromViewState(
                      o.o.translateDown(e.cursorConfig, e, l.viewState)
                    ));
            }
            return n;
          }
          static addCursorUp(e, t, i) {
            let n = [],
              r = 0;
            for (let a = 0, l = t.length; a < l; a++) {
              const l = t[a];
              (n[r++] = new s.Vi(l.modelState, l.viewState)),
                (n[r++] = i
                  ? s.Vi.fromModelState(
                      o.o.translateUp(e.cursorConfig, e.model, l.modelState)
                    )
                  : s.Vi.fromViewState(
                      o.o.translateUp(e.cursorConfig, e, l.viewState)
                    ));
            }
            return n;
          }
          static moveToBeginningOfLine(e, t, i) {
            let n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r];
              n[r] = this._moveToLineStart(e, s, i);
            }
            return n;
          }
          static _moveToLineStart(e, t, i) {
            const n = t.viewState.position.column,
              r = n === t.modelState.position.column,
              s = t.viewState.position.lineNumber,
              o = e.getLineFirstNonWhitespaceColumn(s);
            return r || n === o
              ? this._moveToLineStartByModel(e, t, i)
              : this._moveToLineStartByView(e, t, i);
          }
          static _moveToLineStartByView(e, t, i) {
            return s.Vi.fromViewState(
              o.o.moveToBeginningOfLine(e.cursorConfig, e, t.viewState, i)
            );
          }
          static _moveToLineStartByModel(e, t, i) {
            return s.Vi.fromModelState(
              o.o.moveToBeginningOfLine(
                e.cursorConfig,
                e.model,
                t.modelState,
                i
              )
            );
          }
          static moveToEndOfLine(e, t, i, n) {
            let r = [];
            for (let s = 0, o = t.length; s < o; s++) {
              const o = t[s];
              r[s] = this._moveToLineEnd(e, o, i, n);
            }
            return r;
          }
          static _moveToLineEnd(e, t, i, n) {
            const r = t.viewState.position,
              s = e.getLineMaxColumn(r.lineNumber),
              o = r.column === s,
              a = t.modelState.position,
              l = e.model.getLineMaxColumn(a.lineNumber),
              c = s - r.column == l - a.column;
            return o || c
              ? this._moveToLineEndByModel(e, t, i, n)
              : this._moveToLineEndByView(e, t, i, n);
          }
          static _moveToLineEndByView(e, t, i, n) {
            return s.Vi.fromViewState(
              o.o.moveToEndOfLine(e.cursorConfig, e, t.viewState, i, n)
            );
          }
          static _moveToLineEndByModel(e, t, i, n) {
            return s.Vi.fromModelState(
              o.o.moveToEndOfLine(e.cursorConfig, e.model, t.modelState, i, n)
            );
          }
          static expandLineSelection(e, t) {
            let i = [];
            for (let n = 0, r = t.length; n < r; n++) {
              const r = t[n],
                o = r.modelState.selection.startLineNumber,
                a = e.model.getLineCount();
              let d,
                h = r.modelState.selection.endLineNumber;
              h === a ? (d = e.model.getLineMaxColumn(a)) : (h++, (d = 1)),
                (i[n] = s.Vi.fromModelState(
                  new s.rS(new c.e(o, 1, o, 1), 0, new l.L(h, d), 0)
                ));
            }
            return i;
          }
          static moveToBeginningOfBuffer(e, t, i) {
            let n = [];
            for (let r = 0, a = t.length; r < a; r++) {
              const a = t[r];
              n[r] = s.Vi.fromModelState(
                o.o.moveToBeginningOfBuffer(
                  e.cursorConfig,
                  e.model,
                  a.modelState,
                  i
                )
              );
            }
            return n;
          }
          static moveToEndOfBuffer(e, t, i) {
            let n = [];
            for (let r = 0, a = t.length; r < a; r++) {
              const a = t[r];
              n[r] = s.Vi.fromModelState(
                o.o.moveToEndOfBuffer(e.cursorConfig, e.model, a.modelState, i)
              );
            }
            return n;
          }
          static selectAll(e, t) {
            const i = e.model.getLineCount(),
              n = e.model.getLineMaxColumn(i);
            return s.Vi.fromModelState(
              new s.rS(new c.e(1, 1, 1, 1), 0, new l.L(i, n), 0)
            );
          }
          static line(e, t, i, n, r) {
            const o = e.model.validatePosition(n),
              a = r
                ? e.coordinatesConverter.validateViewPosition(
                    new l.L(r.lineNumber, r.column),
                    o
                  )
                : e.coordinatesConverter.convertModelPositionToViewPosition(o);
            if (!i || !t.modelState.hasSelection()) {
              const t = e.model.getLineCount();
              let i = o.lineNumber + 1,
                n = 1;
              return (
                i > t && ((i = t), (n = e.model.getLineMaxColumn(i))),
                s.Vi.fromModelState(
                  new s.rS(new c.e(o.lineNumber, 1, i, n), 0, new l.L(i, n), 0)
                )
              );
            }
            const d = t.modelState.selectionStart.getStartPosition().lineNumber;
            if (o.lineNumber < d)
              return s.Vi.fromViewState(
                t.viewState.move(
                  t.modelState.hasSelection(),
                  a.lineNumber,
                  1,
                  0
                )
              );
            if (o.lineNumber > d) {
              const i = e.getLineCount();
              let n = a.lineNumber + 1,
                r = 1;
              return (
                n > i && ((n = i), (r = e.getLineMaxColumn(n))),
                s.Vi.fromViewState(
                  t.viewState.move(t.modelState.hasSelection(), n, r, 0)
                )
              );
            }
            {
              const e = t.modelState.selectionStart.getEndPosition();
              return s.Vi.fromModelState(
                t.modelState.move(
                  t.modelState.hasSelection(),
                  e.lineNumber,
                  e.column,
                  0
                )
              );
            }
          }
          static word(e, t, i, n) {
            const r = e.model.validatePosition(n);
            return s.Vi.fromModelState(
              a.w.word(e.cursorConfig, e.model, t.modelState, i, r)
            );
          }
          static cancelSelection(e, t) {
            if (!t.modelState.hasSelection())
              return new s.Vi(t.modelState, t.viewState);
            const i = t.viewState.position.lineNumber,
              n = t.viewState.position.column;
            return s.Vi.fromViewState(
              new s.rS(new c.e(i, n, i, n), 0, new l.L(i, n), 0)
            );
          }
          static moveTo(e, t, i, n, r) {
            const o = e.model.validatePosition(n),
              a = r
                ? e.coordinatesConverter.validateViewPosition(
                    new l.L(r.lineNumber, r.column),
                    o
                  )
                : e.coordinatesConverter.convertModelPositionToViewPosition(o);
            return s.Vi.fromViewState(
              t.viewState.move(i, a.lineNumber, a.column, 0)
            );
          }
          static simpleMove(e, t, i, n, r, s) {
            switch (i) {
              case 0:
                return 4 === s
                  ? this._moveHalfLineLeft(e, t, n)
                  : this._moveLeft(e, t, n, r);
              case 1:
                return 4 === s
                  ? this._moveHalfLineRight(e, t, n)
                  : this._moveRight(e, t, n, r);
              case 2:
                return 2 === s
                  ? this._moveUpByViewLines(e, t, n, r)
                  : this._moveUpByModelLines(e, t, n, r);
              case 3:
                return 2 === s
                  ? this._moveDownByViewLines(e, t, n, r)
                  : this._moveDownByModelLines(e, t, n, r);
              case 4:
                return this._moveToViewMinColumn(e, t, n);
              case 5:
                return this._moveToViewFirstNonWhitespaceColumn(e, t, n);
              case 6:
                return this._moveToViewCenterColumn(e, t, n);
              case 7:
                return this._moveToViewMaxColumn(e, t, n);
              case 8:
                return this._moveToViewLastNonWhitespaceColumn(e, t, n);
              default:
                return null;
            }
          }
          static viewportMove(e, t, i, n, r) {
            const s = e.getCompletelyVisibleViewRange(),
              o = e.coordinatesConverter.convertViewRangeToModelRange(s);
            switch (i) {
              case 9: {
                const i = this._firstLineNumberInRange(e.model, o, r),
                  s = e.model.getLineFirstNonWhitespaceColumn(i);
                return [this._moveToModelPosition(e, t[0], n, i, s)];
              }
              case 11: {
                const i = this._lastLineNumberInRange(e.model, o, r),
                  s = e.model.getLineFirstNonWhitespaceColumn(i);
                return [this._moveToModelPosition(e, t[0], n, i, s)];
              }
              case 10: {
                const i = Math.round((o.startLineNumber + o.endLineNumber) / 2),
                  r = e.model.getLineFirstNonWhitespaceColumn(i);
                return [this._moveToModelPosition(e, t[0], n, i, r)];
              }
              case 12: {
                let i = [];
                for (let r = 0, o = t.length; r < o; r++) {
                  const o = t[r];
                  i[r] = this.findPositionInViewportIfOutside(e, o, s, n);
                }
                return i;
              }
              default:
                return null;
            }
          }
          static findPositionInViewportIfOutside(e, t, i, n) {
            let r = t.viewState.position.lineNumber;
            if (i.startLineNumber <= r && r <= i.endLineNumber - 1)
              return new s.Vi(t.modelState, t.viewState);
            {
              r > i.endLineNumber - 1 && (r = i.endLineNumber - 1),
                r < i.startLineNumber && (r = i.startLineNumber);
              const s = e.getLineFirstNonWhitespaceColumn(r);
              return this._moveToViewPosition(e, t, n, r, s);
            }
          }
          static _firstLineNumberInRange(e, t, i) {
            let n = t.startLineNumber;
            return (
              t.startColumn !== e.getLineMinColumn(n) && n++,
              Math.min(t.endLineNumber, n + i - 1)
            );
          }
          static _lastLineNumberInRange(e, t, i) {
            let n = t.startLineNumber;
            return (
              t.startColumn !== e.getLineMinColumn(n) && n++,
              Math.max(n, t.endLineNumber - i + 1)
            );
          }
          static _moveLeft(e, t, i, n) {
            const r = t.length > 1;
            let a = [];
            for (let l = 0, c = t.length; l < c; l++) {
              const c = t[l],
                d = r || !c.viewState.hasSelection();
              let h = o.o.moveLeft(e.cursorConfig, e, c.viewState, i, n);
              d &&
                1 === n &&
                h.position.lineNumber !== c.viewState.position.lineNumber &&
                e.coordinatesConverter.convertViewPositionToModelPosition(
                  h.position
                ).lineNumber === c.modelState.position.lineNumber &&
                (h = o.o.moveLeft(e.cursorConfig, e, h, i, 1)),
                (a[l] = s.Vi.fromViewState(h));
            }
            return a;
          }
          static _moveHalfLineLeft(e, t, i) {
            let n = [];
            for (let r = 0, a = t.length; r < a; r++) {
              const a = t[r],
                l = a.viewState.position.lineNumber,
                c = Math.round(e.getLineContent(l).length / 2);
              n[r] = s.Vi.fromViewState(
                o.o.moveLeft(e.cursorConfig, e, a.viewState, i, c)
              );
            }
            return n;
          }
          static _moveRight(e, t, i, n) {
            const r = t.length > 1;
            let a = [];
            for (let l = 0, c = t.length; l < c; l++) {
              const c = t[l],
                d = r || !c.viewState.hasSelection();
              let h = o.o.moveRight(e.cursorConfig, e, c.viewState, i, n);
              d &&
                1 === n &&
                h.position.lineNumber !== c.viewState.position.lineNumber &&
                e.coordinatesConverter.convertViewPositionToModelPosition(
                  h.position
                ).lineNumber === c.modelState.position.lineNumber &&
                (h = o.o.moveRight(e.cursorConfig, e, h, i, 1)),
                (a[l] = s.Vi.fromViewState(h));
            }
            return a;
          }
          static _moveHalfLineRight(e, t, i) {
            let n = [];
            for (let r = 0, a = t.length; r < a; r++) {
              const a = t[r],
                l = a.viewState.position.lineNumber,
                c = Math.round(e.getLineContent(l).length / 2);
              n[r] = s.Vi.fromViewState(
                o.o.moveRight(e.cursorConfig, e, a.viewState, i, c)
              );
            }
            return n;
          }
          static _moveDownByViewLines(e, t, i, n) {
            let r = [];
            for (let a = 0, l = t.length; a < l; a++) {
              const l = t[a];
              r[a] = s.Vi.fromViewState(
                o.o.moveDown(e.cursorConfig, e, l.viewState, i, n)
              );
            }
            return r;
          }
          static _moveDownByModelLines(e, t, i, n) {
            let r = [];
            for (let a = 0, l = t.length; a < l; a++) {
              const l = t[a];
              r[a] = s.Vi.fromModelState(
                o.o.moveDown(e.cursorConfig, e.model, l.modelState, i, n)
              );
            }
            return r;
          }
          static _moveUpByViewLines(e, t, i, n) {
            let r = [];
            for (let a = 0, l = t.length; a < l; a++) {
              const l = t[a];
              r[a] = s.Vi.fromViewState(
                o.o.moveUp(e.cursorConfig, e, l.viewState, i, n)
              );
            }
            return r;
          }
          static _moveUpByModelLines(e, t, i, n) {
            let r = [];
            for (let a = 0, l = t.length; a < l; a++) {
              const l = t[a];
              r[a] = s.Vi.fromModelState(
                o.o.moveUp(e.cursorConfig, e.model, l.modelState, i, n)
              );
            }
            return r;
          }
          static _moveToViewPosition(e, t, i, n, r) {
            return s.Vi.fromViewState(t.viewState.move(i, n, r, 0));
          }
          static _moveToModelPosition(e, t, i, n, r) {
            return s.Vi.fromModelState(t.modelState.move(i, n, r, 0));
          }
          static _moveToViewMinColumn(e, t, i) {
            let n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r],
                o = s.viewState.position.lineNumber,
                a = e.getLineMinColumn(o);
              n[r] = this._moveToViewPosition(e, s, i, o, a);
            }
            return n;
          }
          static _moveToViewFirstNonWhitespaceColumn(e, t, i) {
            let n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r],
                o = s.viewState.position.lineNumber,
                a = e.getLineFirstNonWhitespaceColumn(o);
              n[r] = this._moveToViewPosition(e, s, i, o, a);
            }
            return n;
          }
          static _moveToViewCenterColumn(e, t, i) {
            let n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r],
                o = s.viewState.position.lineNumber,
                a = Math.round(
                  (e.getLineMaxColumn(o) + e.getLineMinColumn(o)) / 2
                );
              n[r] = this._moveToViewPosition(e, s, i, o, a);
            }
            return n;
          }
          static _moveToViewMaxColumn(e, t, i) {
            let n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r],
                o = s.viewState.position.lineNumber,
                a = e.getLineMaxColumn(o);
              n[r] = this._moveToViewPosition(e, s, i, o, a);
            }
            return n;
          }
          static _moveToViewLastNonWhitespaceColumn(e, t, i) {
            let n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r],
                o = s.viewState.position.lineNumber,
                a = e.getLineLastNonWhitespaceColumn(o);
              n[r] = this._moveToViewPosition(e, s, i, o, a);
            }
            return n;
          }
        }
        !(function (e) {
          (e.description = {
            description: 'Move cursor to a logical position in the view',
            args: [
              {
                name: 'Cursor move argument object',
                description:
                  "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down'\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t",
                constraint: function (e) {
                  if (!r.Kn(e)) return !1;
                  let t = e;
                  return !(
                    !r.HD(t.to) ||
                    (!r.o8(t.select) && !r.jn(t.select)) ||
                    (!r.o8(t.by) && !r.HD(t.by)) ||
                    (!r.o8(t.value) && !r.hj(t.value))
                  );
                },
                schema: {
                  type: 'object',
                  required: ['to'],
                  properties: {
                    to: {
                      type: 'string',
                      enum: [
                        'left',
                        'right',
                        'up',
                        'down',
                        'wrappedLineStart',
                        'wrappedLineEnd',
                        'wrappedLineColumnCenter',
                        'wrappedLineFirstNonWhitespaceCharacter',
                        'wrappedLineLastNonWhitespaceCharacter',
                        'viewPortTop',
                        'viewPortCenter',
                        'viewPortBottom',
                        'viewPortIfOutside',
                      ],
                    },
                    by: {
                      type: 'string',
                      enum: ['line', 'wrappedLine', 'character', 'halfLine'],
                    },
                    value: { type: 'number', default: 1 },
                    select: { type: 'boolean', default: !1 },
                  },
                },
              },
            ],
          }),
            (e.RawDirection = {
              Left: 'left',
              Right: 'right',
              Up: 'up',
              Down: 'down',
              WrappedLineStart: 'wrappedLineStart',
              WrappedLineFirstNonWhitespaceCharacter:
                'wrappedLineFirstNonWhitespaceCharacter',
              WrappedLineColumnCenter: 'wrappedLineColumnCenter',
              WrappedLineEnd: 'wrappedLineEnd',
              WrappedLineLastNonWhitespaceCharacter:
                'wrappedLineLastNonWhitespaceCharacter',
              ViewPortTop: 'viewPortTop',
              ViewPortCenter: 'viewPortCenter',
              ViewPortBottom: 'viewPortBottom',
              ViewPortIfOutside: 'viewPortIfOutside',
            }),
            (e.RawUnit = {
              Line: 'line',
              WrappedLine: 'wrappedLine',
              Character: 'character',
              HalfLine: 'halfLine',
            }),
            (e.parse = function (t) {
              if (!t.to) return null;
              let i;
              switch (t.to) {
                case e.RawDirection.Left:
                  i = 0;
                  break;
                case e.RawDirection.Right:
                  i = 1;
                  break;
                case e.RawDirection.Up:
                  i = 2;
                  break;
                case e.RawDirection.Down:
                  i = 3;
                  break;
                case e.RawDirection.WrappedLineStart:
                  i = 4;
                  break;
                case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:
                  i = 5;
                  break;
                case e.RawDirection.WrappedLineColumnCenter:
                  i = 6;
                  break;
                case e.RawDirection.WrappedLineEnd:
                  i = 7;
                  break;
                case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:
                  i = 8;
                  break;
                case e.RawDirection.ViewPortTop:
                  i = 9;
                  break;
                case e.RawDirection.ViewPortBottom:
                  i = 11;
                  break;
                case e.RawDirection.ViewPortCenter:
                  i = 10;
                  break;
                case e.RawDirection.ViewPortIfOutside:
                  i = 12;
                  break;
                default:
                  return null;
              }
              let n = 0;
              switch (t.by) {
                case e.RawUnit.Line:
                  n = 1;
                  break;
                case e.RawUnit.WrappedLine:
                  n = 2;
                  break;
                case e.RawUnit.Character:
                  n = 3;
                  break;
                case e.RawUnit.HalfLine:
                  n = 4;
              }
              return {
                direction: i,
                unit: n,
                select: !!t.select,
                value: t.value || 1,
              };
            });
        })(n || (n = {}));
      },
      88784: (e, t, i) => {
        'use strict';
        i.d(t, { o: () => l });
        var n = i(33181),
          r = i(50187),
          s = i(24314),
          o = i(97295);
        class a {
          constructor(e, t, i) {
            (this.lineNumber = e),
              (this.column = t),
              (this.leftoverVisibleColumns = i);
          }
        }
        class l {
          static leftPosition(e, t, i) {
            return (
              i > e.getLineMinColumn(t)
                ? (i -= o.HO(e.getLineContent(t), i - 1))
                : t > 1 && ((t -= 1), (i = e.getLineMaxColumn(t))),
              new r.L(t, i)
            );
          }
          static left(e, t, i, n) {
            const r = l.leftPosition(t, i, n);
            return new a(r.lineNumber, r.column, 0);
          }
          static moveLeft(e, t, i, n, r) {
            let s, o;
            if (i.hasSelection() && !n)
              (s = i.selection.startLineNumber), (o = i.selection.startColumn);
            else {
              let n = l.left(
                e,
                t,
                i.position.lineNumber,
                i.position.column - (r - 1)
              );
              (s = n.lineNumber), (o = n.column);
            }
            return i.move(n, s, o, 0);
          }
          static rightPosition(e, t, i) {
            return (
              i < e.getLineMaxColumn(t)
                ? (i += o.vH(e.getLineContent(t), i - 1))
                : t < e.getLineCount() &&
                  ((t += 1), (i = e.getLineMinColumn(t))),
              new r.L(t, i)
            );
          }
          static right(e, t, i, n) {
            const r = l.rightPosition(t, i, n);
            return new a(r.lineNumber, r.column, 0);
          }
          static moveRight(e, t, i, n, r) {
            let s, o;
            if (i.hasSelection() && !n)
              (s = i.selection.endLineNumber), (o = i.selection.endColumn);
            else {
              let n = l.right(
                e,
                t,
                i.position.lineNumber,
                i.position.column + (r - 1)
              );
              (s = n.lineNumber), (o = n.column);
            }
            return i.move(n, s, o, 0);
          }
          static down(e, t, i, r, s, o, l) {
            const c =
                n.io.visibleColumnFromColumn(
                  t.getLineContent(i),
                  r,
                  e.tabSize
                ) + s,
              d = t.getLineCount(),
              h = i === d && r === t.getLineMaxColumn(i);
            return (
              (i += o) > d
                ? ((i = d),
                  (r = l
                    ? t.getLineMaxColumn(i)
                    : Math.min(t.getLineMaxColumn(i), r)))
                : (r = n.io.columnFromVisibleColumn2(e, t, i, c)),
              (s = h
                ? 0
                : c -
                  n.io.visibleColumnFromColumn(
                    t.getLineContent(i),
                    r,
                    e.tabSize
                  )),
              new a(i, r, s)
            );
          }
          static moveDown(e, t, i, n, r) {
            let s, o;
            i.hasSelection() && !n
              ? ((s = i.selection.endLineNumber), (o = i.selection.endColumn))
              : ((s = i.position.lineNumber), (o = i.position.column));
            let a = l.down(e, t, s, o, i.leftoverVisibleColumns, r, !0);
            return i.move(n, a.lineNumber, a.column, a.leftoverVisibleColumns);
          }
          static translateDown(e, t, i) {
            let o = i.selection,
              a = l.down(
                e,
                t,
                o.selectionStartLineNumber,
                o.selectionStartColumn,
                i.selectionStartLeftoverVisibleColumns,
                1,
                !1
              ),
              c = l.down(
                e,
                t,
                o.positionLineNumber,
                o.positionColumn,
                i.leftoverVisibleColumns,
                1,
                !1
              );
            return new n.rS(
              new s.e(a.lineNumber, a.column, a.lineNumber, a.column),
              a.leftoverVisibleColumns,
              new r.L(c.lineNumber, c.column),
              c.leftoverVisibleColumns
            );
          }
          static up(e, t, i, r, s, o, l) {
            const c =
                n.io.visibleColumnFromColumn(
                  t.getLineContent(i),
                  r,
                  e.tabSize
                ) + s,
              d = 1 === i && 1 === r;
            return (
              (i -= o) < 1
                ? ((i = 1),
                  (r = l
                    ? t.getLineMinColumn(i)
                    : Math.min(t.getLineMaxColumn(i), r)))
                : (r = n.io.columnFromVisibleColumn2(e, t, i, c)),
              (s = d
                ? 0
                : c -
                  n.io.visibleColumnFromColumn(
                    t.getLineContent(i),
                    r,
                    e.tabSize
                  )),
              new a(i, r, s)
            );
          }
          static moveUp(e, t, i, n, r) {
            let s, o;
            i.hasSelection() && !n
              ? ((s = i.selection.startLineNumber),
                (o = i.selection.startColumn))
              : ((s = i.position.lineNumber), (o = i.position.column));
            let a = l.up(e, t, s, o, i.leftoverVisibleColumns, r, !0);
            return i.move(n, a.lineNumber, a.column, a.leftoverVisibleColumns);
          }
          static translateUp(e, t, i) {
            let o = i.selection,
              a = l.up(
                e,
                t,
                o.selectionStartLineNumber,
                o.selectionStartColumn,
                i.selectionStartLeftoverVisibleColumns,
                1,
                !1
              ),
              c = l.up(
                e,
                t,
                o.positionLineNumber,
                o.positionColumn,
                i.leftoverVisibleColumns,
                1,
                !1
              );
            return new n.rS(
              new s.e(a.lineNumber, a.column, a.lineNumber, a.column),
              a.leftoverVisibleColumns,
              new r.L(c.lineNumber, c.column),
              c.leftoverVisibleColumns
            );
          }
          static moveToBeginningOfLine(e, t, i, n) {
            let r,
              s = i.position.lineNumber,
              o = t.getLineMinColumn(s),
              a = t.getLineFirstNonWhitespaceColumn(s) || o;
            return (r = i.position.column === a ? o : a), i.move(n, s, r, 0);
          }
          static moveToEndOfLine(e, t, i, n, r) {
            let s = i.position.lineNumber,
              o = t.getLineMaxColumn(s);
            return i.move(n, s, o, r ? 1073741824 - o : 0);
          }
          static moveToBeginningOfBuffer(e, t, i, n) {
            return i.move(n, 1, 1, 0);
          }
          static moveToEndOfBuffer(e, t, i, n) {
            let r = t.getLineCount(),
              s = t.getLineMaxColumn(r);
            return i.move(n, r, s, 0);
          }
        }
      },
      23582: (e, t, i) => {
        'use strict';
        i.d(t, { u: () => f, g: () => p });
        var n = i(17301),
          r = i(97295),
          s = i(61329),
          o = i(10291),
          a = i(24314),
          l = i(3860);
        class c {
          constructor(e, t, i) {
            (this._range = e),
              (this._charBeforeSelection = t),
              (this._charAfterSelection = i);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(
              new a.e(
                this._range.startLineNumber,
                this._range.startColumn,
                this._range.startLineNumber,
                this._range.startColumn
              ),
              this._charBeforeSelection
            ),
              t.addTrackedEditOperation(
                new a.e(
                  this._range.endLineNumber,
                  this._range.endColumn,
                  this._range.endLineNumber,
                  this._range.endColumn
                ),
                this._charAfterSelection
              );
          }
          computeCursorState(e, t) {
            let i = t.getInverseEditOperations(),
              n = i[0].range,
              r = i[1].range;
            return new l.Y(
              n.endLineNumber,
              n.endColumn,
              r.endLineNumber,
              r.endColumn - this._charAfterSelection.length
            );
          }
        }
        var d = i(33181),
          h = i(59410),
          u = i(97354),
          g = i(83831);
        class f {
          static indent(e, t, i) {
            if (null === t || null === i) return [];
            let n = [];
            for (let t = 0, r = i.length; t < r; t++)
              n[t] = new o.U(i[t], {
                isUnshift: !1,
                tabSize: e.tabSize,
                indentSize: e.indentSize,
                insertSpaces: e.insertSpaces,
                useTabStops: e.useTabStops,
                autoIndent: e.autoIndent,
              });
            return n;
          }
          static outdent(e, t, i) {
            let n = [];
            for (let t = 0, r = i.length; t < r; t++)
              n[t] = new o.U(i[t], {
                isUnshift: !0,
                tabSize: e.tabSize,
                indentSize: e.indentSize,
                insertSpaces: e.insertSpaces,
                useTabStops: e.useTabStops,
                autoIndent: e.autoIndent,
              });
            return n;
          }
          static shiftIndent(e, t, i) {
            return (
              (i = i || 1),
              o.U.shiftIndent(
                t,
                t.length + i,
                e.tabSize,
                e.indentSize,
                e.insertSpaces
              )
            );
          }
          static unshiftIndent(e, t, i) {
            return (
              (i = i || 1),
              o.U.unshiftIndent(
                t,
                t.length + i,
                e.tabSize,
                e.indentSize,
                e.insertSpaces
              )
            );
          }
          static _distributedPaste(e, t, i, n) {
            let r = [];
            for (let e = 0, t = i.length; e < t; e++)
              r[e] = new s.T4(i[e], n[e]);
            return new d.Tp(0, r, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0,
            });
          }
          static _simplePaste(e, t, i, n, r) {
            let o = [];
            for (let e = 0, t = i.length; e < t; e++) {
              const t = i[e];
              let l = t.getPosition();
              if (
                (r && !t.isEmpty() && (r = !1),
                r && n.indexOf('\n') !== n.length - 1 && (r = !1),
                r)
              ) {
                let i = new a.e(l.lineNumber, 1, l.lineNumber, 1);
                o[e] = new s.hP(i, n, t, !0);
              } else o[e] = new s.T4(t, n);
            }
            return new d.Tp(0, o, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0,
            });
          }
          static _distributePasteToCursors(e, t, i, n, r) {
            if (n) return null;
            if (1 === t.length) return null;
            if (r && r.length === t.length) return r;
            if ('spread' === e.multiCursorPaste) {
              10 === i.charCodeAt(i.length - 1) &&
                (i = i.substr(0, i.length - 1)),
                13 === i.charCodeAt(i.length - 1) &&
                  (i = i.substr(0, i.length - 1));
              let e = i.split(/\r\n|\r|\n/);
              if (e.length === t.length) return e;
            }
            return null;
          }
          static paste(e, t, i, n, r, s) {
            const o = this._distributePasteToCursors(e, i, n, r, s);
            return o
              ? ((i = i.sort(a.e.compareRangesUsingStarts)),
                this._distributedPaste(e, t, i, o))
              : this._simplePaste(e, t, i, n, r);
          }
          static _goodIndentForLine(e, t, i) {
            let n = null,
              s = '';
            const o = g.zu.getInheritIndentForLine(e.autoIndent, t, i, !1);
            if (o) (n = o.action), (s = o.indentation);
            else if (i > 1) {
              let n;
              for (n = i - 1; n >= 1; n--) {
                const e = t.getLineContent(n);
                if (r.ow(e) >= 0) break;
              }
              if (n < 1) return null;
              const o = t.getLineMaxColumn(n),
                l = g.zu.getEnterAction(e.autoIndent, t, new a.e(n, o, n, o));
              l && (s = l.indentation + l.appendText);
            }
            return (
              n &&
                (n === u.w.Indent && (s = f.shiftIndent(e, s)),
                n === u.w.Outdent && (s = f.unshiftIndent(e, s)),
                (s = e.normalizeIndentation(s))),
              s || null
            );
          }
          static _replaceJumpToNextIndent(e, t, i, n) {
            let r = '',
              o = i.getStartPosition();
            if (e.insertSpaces) {
              let i = d.io.visibleColumnFromColumn2(e, t, o),
                n = e.indentSize,
                s = n - (i % n);
              for (let e = 0; e < s; e++) r += ' ';
            } else r = '\t';
            return new s.T4(i, r, n);
          }
          static tab(e, t, i) {
            let n = [];
            for (let l = 0, c = i.length; l < c; l++) {
              const c = i[l];
              if (c.isEmpty()) {
                let i = t.getLineContent(c.startLineNumber);
                if (/^\s*$/.test(i) && t.isCheapToTokenize(c.startLineNumber)) {
                  let o = this._goodIndentForLine(e, t, c.startLineNumber);
                  o = o || '\t';
                  let d = e.normalizeIndentation(o);
                  if (!r.Ny(i, d)) {
                    n[l] = new s.T4(
                      new a.e(
                        c.startLineNumber,
                        1,
                        c.startLineNumber,
                        i.length + 1
                      ),
                      d,
                      !0
                    );
                    continue;
                  }
                }
                n[l] = this._replaceJumpToNextIndent(e, t, c, !0);
              } else {
                if (c.startLineNumber === c.endLineNumber) {
                  let i = t.getLineMaxColumn(c.startLineNumber);
                  if (1 !== c.startColumn || c.endColumn !== i) {
                    n[l] = this._replaceJumpToNextIndent(e, t, c, !1);
                    continue;
                  }
                }
                n[l] = new o.U(c, {
                  isUnshift: !1,
                  tabSize: e.tabSize,
                  indentSize: e.indentSize,
                  insertSpaces: e.insertSpaces,
                  useTabStops: e.useTabStops,
                  autoIndent: e.autoIndent,
                });
              }
            }
            return n;
          }
          static replacePreviousChar(e, t, i, n, r, o) {
            let l = [];
            for (let e = 0, t = n.length; e < t; e++) {
              const t = n[e];
              if (!t.isEmpty()) {
                l[e] = null;
                continue;
              }
              const c = t.getPosition(),
                d = Math.max(1, c.column - o),
                h = new a.e(c.lineNumber, d, c.lineNumber, c.column);
              i.getValueInRange(h) !== r
                ? (l[e] = new s.T4(h, r))
                : (l[e] = null);
            }
            return new d.Tp(1, l, {
              shouldPushStackElementBefore: 1 !== e,
              shouldPushStackElementAfter: !1,
            });
          }
          static _typeCommand(e, t, i) {
            return i ? new s.Sj(e, t, !0) : new s.T4(e, t, !0);
          }
          static _enter(e, t, i, n) {
            if (0 === e.autoIndent) return f._typeCommand(n, '\n', i);
            if (
              !t.isCheapToTokenize(n.getStartPosition().lineNumber) ||
              1 === e.autoIndent
            ) {
              let s = t.getLineContent(n.startLineNumber),
                o = r.V8(s).substring(0, n.startColumn - 1);
              return f._typeCommand(n, '\n' + e.normalizeIndentation(o), i);
            }
            const o = g.zu.getEnterAction(e.autoIndent, t, n);
            if (o) {
              if (o.indentAction === u.w.None)
                return f._typeCommand(
                  n,
                  '\n' + e.normalizeIndentation(o.indentation + o.appendText),
                  i
                );
              if (o.indentAction === u.w.Indent)
                return f._typeCommand(
                  n,
                  '\n' + e.normalizeIndentation(o.indentation + o.appendText),
                  i
                );
              if (o.indentAction === u.w.IndentOutdent) {
                const t = e.normalizeIndentation(o.indentation),
                  r = e.normalizeIndentation(o.indentation + o.appendText),
                  a = '\n' + r + '\n' + t;
                return i
                  ? new s.Sj(n, a, !0)
                  : new s.Uo(n, a, -1, r.length - t.length, !0);
              }
              if (o.indentAction === u.w.Outdent) {
                const t = f.unshiftIndent(e, o.indentation);
                return f._typeCommand(
                  n,
                  '\n' + e.normalizeIndentation(t + o.appendText),
                  i
                );
              }
            }
            const l = t.getLineContent(n.startLineNumber),
              c = r.V8(l).substring(0, n.startColumn - 1);
            if (e.autoIndent >= 4) {
              const o = g.zu.getIndentForEnter(e.autoIndent, t, n, {
                unshiftIndent: (t) => f.unshiftIndent(e, t),
                shiftIndent: (t) => f.shiftIndent(e, t),
                normalizeIndentation: (t) => e.normalizeIndentation(t),
              });
              if (o) {
                let h = d.io.visibleColumnFromColumn2(e, t, n.getEndPosition());
                const u = n.endColumn;
                let g = '\n';
                c !== e.normalizeIndentation(o.beforeEnter) &&
                  ((g =
                    e.normalizeIndentation(o.beforeEnter) +
                    l.substring(c.length, n.startColumn - 1) +
                    '\n'),
                  (n = new a.e(
                    n.startLineNumber,
                    1,
                    n.endLineNumber,
                    n.endColumn
                  )));
                const f = t.getLineContent(n.endLineNumber),
                  p = r.LC(f);
                if (
                  ((n =
                    p >= 0
                      ? n.setEndPosition(
                          n.endLineNumber,
                          Math.max(n.endColumn, p + 1)
                        )
                      : n.setEndPosition(
                          n.endLineNumber,
                          t.getLineMaxColumn(n.endLineNumber)
                        )),
                  i)
                )
                  return new s.Sj(
                    n,
                    g + e.normalizeIndentation(o.afterEnter),
                    !0
                  );
                {
                  let t = 0;
                  return (
                    u <= p + 1 &&
                      (e.insertSpaces || (h = Math.ceil(h / e.indentSize)),
                      (t = Math.min(
                        h + 1 - e.normalizeIndentation(o.afterEnter).length - 1,
                        0
                      ))),
                    new s.Uo(
                      n,
                      g + e.normalizeIndentation(o.afterEnter),
                      0,
                      t,
                      !0
                    )
                  );
                }
              }
            }
            return f._typeCommand(n, '\n' + e.normalizeIndentation(c), i);
          }
          static _isAutoIndentType(e, t, i) {
            if (e.autoIndent < 4) return !1;
            for (let e = 0, n = i.length; e < n; e++)
              if (!t.isCheapToTokenize(i[e].getEndPosition().lineNumber))
                return !1;
            return !0;
          }
          static _runAutoIndentType(e, t, i, n) {
            const r = g.zu.getIndentationAtPosition(
                t,
                i.startLineNumber,
                i.startColumn
              ),
              s = g.zu.getIndentActionForType(e.autoIndent, t, i, n, {
                shiftIndent: (t) => f.shiftIndent(e, t),
                unshiftIndent: (t) => f.unshiftIndent(e, t),
              });
            if (null === s) return null;
            if (s !== e.normalizeIndentation(r)) {
              const r = t.getLineFirstNonWhitespaceColumn(i.startLineNumber);
              return 0 === r
                ? f._typeCommand(
                    new a.e(i.startLineNumber, 0, i.endLineNumber, i.endColumn),
                    e.normalizeIndentation(s) + n,
                    !1
                  )
                : f._typeCommand(
                    new a.e(i.startLineNumber, 0, i.endLineNumber, i.endColumn),
                    e.normalizeIndentation(s) +
                      t
                        .getLineContent(i.startLineNumber)
                        .substring(r - 1, i.startColumn - 1) +
                      n,
                    !1
                  );
            }
            return null;
          }
          static _isAutoClosingOvertype(e, t, i, n, r) {
            if ('never' === e.autoClosingOvertype) return !1;
            if (!e.autoClosingPairsClose2.has(r)) return !1;
            for (let s = 0, o = i.length; s < o; s++) {
              const o = i[s];
              if (!o.isEmpty()) return !1;
              const a = o.getPosition(),
                l = t.getLineContent(a.lineNumber);
              if (l.charAt(a.column - 1) !== r) return !1;
              const c = (0, d.LN)(r);
              if (92 === (a.column > 2 ? l.charCodeAt(a.column - 2) : 0) && c)
                return !1;
              if ('auto' === e.autoClosingOvertype) {
                let e = !1;
                for (let t = 0, i = n.length; t < i; t++) {
                  const i = n[t];
                  if (
                    a.lineNumber === i.startLineNumber &&
                    a.column === i.startColumn
                  ) {
                    e = !0;
                    break;
                  }
                }
                if (!e) return !1;
              }
            }
            return !0;
          }
          static _runAutoClosingOvertype(e, t, i, n, r) {
            let o = [];
            for (let e = 0, t = n.length; e < t; e++) {
              const t = n[e].getPosition(),
                i = new a.e(t.lineNumber, t.column, t.lineNumber, t.column + 1);
              o[e] = new s.T4(i, r);
            }
            return new d.Tp(1, o, {
              shouldPushStackElementBefore: 1 !== e,
              shouldPushStackElementAfter: !1,
            });
          }
          static _autoClosingPairIsSymmetric(e) {
            const { open: t, close: i } = e;
            return t.indexOf(i) >= 0 || i.indexOf(t) >= 0;
          }
          static _isBeforeClosingBrace(e, t, i) {
            const n = e.autoClosingPairsClose2.get(i);
            if (!n) return !1;
            const r = f._autoClosingPairIsSymmetric(t);
            for (const e of n) {
              const t = f._autoClosingPairIsSymmetric(e);
              if (r || !t) return !0;
            }
            return !1;
          }
          static _findAutoClosingPairOpen(e, t, i, n) {
            const r = e.autoClosingPairsOpen2.get(n);
            if (!r) return null;
            let s = null;
            for (const e of r)
              if (null === s || e.open.length > s.open.length) {
                let r = !0;
                for (const s of i)
                  if (
                    t.getValueInRange(
                      new a.e(
                        s.lineNumber,
                        s.column - e.open.length + 1,
                        s.lineNumber,
                        s.column
                      )
                    ) +
                      n !==
                    e.open
                  ) {
                    r = !1;
                    break;
                  }
                r && (s = e);
              }
            return s;
          }
          static _isAutoClosingOpenCharType(e, t, i, r, s) {
            const o = (0, d.LN)(r),
              a = o ? e.autoClosingQuotes : e.autoClosingBrackets;
            if ('never' === a) return null;
            const l = this._findAutoClosingPairOpen(
              e,
              t,
              i.map((e) => e.getPosition()),
              r
            );
            if (!l) return null;
            const c = o
              ? e.shouldAutoCloseBefore.quote
              : e.shouldAutoCloseBefore.bracket;
            for (let r = 0, d = i.length; r < d; r++) {
              const d = i[r];
              if (!d.isEmpty()) return null;
              const u = d.getPosition(),
                p = t.getLineContent(u.lineNumber);
              if (p.length > u.column - 1) {
                const t = p.charAt(u.column - 1);
                if (!f._isBeforeClosingBrace(e, l, t) && !c(t)) return null;
              }
              if (!t.isCheapToTokenize(u.lineNumber)) return null;
              if (1 === l.open.length && o && 'always' !== a) {
                const t = (0, h.u)(e.wordSeparators);
                if (
                  s &&
                  u.column > 1 &&
                  0 === t.get(p.charCodeAt(u.column - 2))
                )
                  return null;
                if (
                  !s &&
                  u.column > 2 &&
                  0 === t.get(p.charCodeAt(u.column - 3))
                )
                  return null;
              }
              t.forceTokenization(u.lineNumber);
              const m = t.getLineTokens(u.lineNumber);
              let _ = !1;
              try {
                _ = g.zu.shouldAutoClosePair(l, m, s ? u.column : u.column - 1);
              } catch (e) {
                (0, n.dL)(e);
              }
              if (!_) return null;
            }
            return l;
          }
          static _runAutoClosingOpenCharType(e, t, i, n, r, s, o) {
            let a = [];
            for (let e = 0, t = n.length; e < t; e++) {
              const t = n[e];
              a[e] = new p(t, r, s, o.close);
            }
            return new d.Tp(1, a, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !1,
            });
          }
          static _shouldSurroundChar(e, t) {
            return (0, d.LN)(t)
              ? 'quotes' === e.autoSurround ||
                  'languageDefined' === e.autoSurround
              : 'brackets' === e.autoSurround ||
                  'languageDefined' === e.autoSurround;
          }
          static _isSurroundSelectionType(e, t, i, n) {
            if (
              !f._shouldSurroundChar(e, n) ||
              !e.surroundingPairs.hasOwnProperty(n)
            )
              return !1;
            const r = (0, d.LN)(n);
            for (let e = 0, n = i.length; e < n; e++) {
              const n = i[e];
              if (n.isEmpty()) return !1;
              let s = !0;
              for (let e = n.startLineNumber; e <= n.endLineNumber; e++) {
                const i = t.getLineContent(e),
                  r = e === n.startLineNumber ? n.startColumn - 1 : 0,
                  o = e === n.endLineNumber ? n.endColumn - 1 : i.length,
                  a = i.substring(r, o);
                if (/[^ \t]/.test(a)) {
                  s = !1;
                  break;
                }
              }
              if (s) return !1;
              if (
                r &&
                n.startLineNumber === n.endLineNumber &&
                n.startColumn + 1 === n.endColumn
              ) {
                const e = t.getValueInRange(n);
                if ((0, d.LN)(e)) return !1;
              }
            }
            return !0;
          }
          static _runSurroundSelectionType(e, t, i, n, r) {
            let s = [];
            for (let e = 0, i = n.length; e < i; e++) {
              const i = n[e],
                o = t.surroundingPairs[r];
              s[e] = new c(i, r, o);
            }
            return new d.Tp(0, s, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0,
            });
          }
          static _isTypeInterceptorElectricChar(e, t, i) {
            return !(
              1 !== i.length ||
              !t.isCheapToTokenize(i[0].getEndPosition().lineNumber)
            );
          }
          static _typeInterceptorElectricChar(e, t, i, o, l) {
            if (!t.electricChars.hasOwnProperty(l) || !o.isEmpty()) return null;
            let c = o.getPosition();
            i.forceTokenization(c.lineNumber);
            let h,
              u = i.getLineTokens(c.lineNumber);
            try {
              h = g.zu.onElectricCharacter(l, u, c.column);
            } catch (e) {
              return (0, n.dL)(e), null;
            }
            if (!h) return null;
            if (h.matchOpenBracket) {
              let e =
                  (u.getLineContent() + l).lastIndexOf(h.matchOpenBracket) + 1,
                n = i.findMatchingBracketUp(h.matchOpenBracket, {
                  lineNumber: c.lineNumber,
                  column: e,
                });
              if (n) {
                if (n.startLineNumber === c.lineNumber) return null;
                let e = i.getLineContent(n.startLineNumber),
                  o = r.V8(e),
                  h = t.normalizeIndentation(o),
                  u = i.getLineContent(c.lineNumber),
                  g =
                    i.getLineFirstNonWhitespaceColumn(c.lineNumber) || c.column,
                  f = h + u.substring(g - 1, c.column - 1) + l,
                  p = new a.e(c.lineNumber, 1, c.lineNumber, c.column);
                const m = new s.T4(p, f);
                return new d.Tp(1, [m], {
                  shouldPushStackElementBefore: !1,
                  shouldPushStackElementAfter: !0,
                });
              }
            }
            return null;
          }
          static compositionEndWithInterceptors(e, t, i, n, r, o) {
            if (!n || l.Y.selectionsArrEqual(n, r)) return null;
            let c = null;
            for (const e of r) {
              if (!e.isEmpty()) return null;
              const t = e.getPosition(),
                n = i.getValueInRange(
                  new a.e(t.lineNumber, t.column - 1, t.lineNumber, t.column)
                );
              if (null === c) c = n;
              else if (c !== n) return null;
            }
            if (!c) return null;
            if (this._isAutoClosingOvertype(t, i, r, o, c)) {
              const e = r.map(
                (e) =>
                  new s.T4(
                    new a.e(
                      e.positionLineNumber,
                      e.positionColumn,
                      e.positionLineNumber,
                      e.positionColumn + 1
                    ),
                    '',
                    !1
                  )
              );
              return new d.Tp(1, e, {
                shouldPushStackElementBefore: !0,
                shouldPushStackElementAfter: !1,
              });
            }
            const h = this._isAutoClosingOpenCharType(t, i, r, c, !1);
            return h
              ? this._runAutoClosingOpenCharType(e, t, i, r, c, !1, h)
              : null;
          }
          static typeWithInterceptors(e, t, i, n, r, o, a) {
            if (!e && '\n' === a) {
              let e = [];
              for (let t = 0, s = r.length; t < s; t++)
                e[t] = f._enter(i, n, !1, r[t]);
              return new d.Tp(1, e, {
                shouldPushStackElementBefore: !0,
                shouldPushStackElementAfter: !1,
              });
            }
            if (!e && this._isAutoIndentType(i, n, r)) {
              let e = [],
                t = !1;
              for (let s = 0, o = r.length; s < o; s++)
                if (((e[s] = this._runAutoIndentType(i, n, r[s], a)), !e[s])) {
                  t = !0;
                  break;
                }
              if (!t)
                return new d.Tp(1, e, {
                  shouldPushStackElementBefore: !0,
                  shouldPushStackElementAfter: !1,
                });
            }
            if (!e && this._isAutoClosingOvertype(i, n, r, o, a))
              return this._runAutoClosingOvertype(t, i, n, r, a);
            if (!e) {
              const e = this._isAutoClosingOpenCharType(i, n, r, a, !0);
              if (e)
                return this._runAutoClosingOpenCharType(t, i, n, r, a, !0, e);
            }
            if (this._isSurroundSelectionType(i, n, r, a))
              return this._runSurroundSelectionType(t, i, n, r, a);
            if (!e && this._isTypeInterceptorElectricChar(i, n, r)) {
              const e = this._typeInterceptorElectricChar(t, i, n, r[0], a);
              if (e) return e;
            }
            let l = [];
            for (let e = 0, t = r.length; e < t; e++) l[e] = new s.T4(r[e], a);
            let c = 1 !== t;
            return (
              ' ' === a && (c = !0),
              new d.Tp(1, l, {
                shouldPushStackElementBefore: c,
                shouldPushStackElementAfter: !1,
              })
            );
          }
          static typeWithoutInterceptors(e, t, i, n, r) {
            let o = [];
            for (let e = 0, t = n.length; e < t; e++) o[e] = new s.T4(n[e], r);
            return new d.Tp(1, o, {
              shouldPushStackElementBefore: 1 !== e,
              shouldPushStackElementAfter: !1,
            });
          }
          static lineInsertBefore(e, t, i) {
            if (null === t || null === i) return [];
            let n = [];
            for (let r = 0, o = i.length; r < o; r++) {
              let o = i[r].positionLineNumber;
              if (1 === o) n[r] = new s.Sj(new a.e(1, 1, 1, 1), '\n');
              else {
                o--;
                let i = t.getLineMaxColumn(o);
                n[r] = this._enter(e, t, !1, new a.e(o, i, o, i));
              }
            }
            return n;
          }
          static lineInsertAfter(e, t, i) {
            if (null === t || null === i) return [];
            let n = [];
            for (let r = 0, s = i.length; r < s; r++) {
              const s = i[r].positionLineNumber;
              let o = t.getLineMaxColumn(s);
              n[r] = this._enter(e, t, !1, new a.e(s, o, s, o));
            }
            return n;
          }
          static lineBreakInsert(e, t, i) {
            let n = [];
            for (let r = 0, s = i.length; r < s; r++)
              n[r] = this._enter(e, t, !0, i[r]);
            return n;
          }
        }
        class p extends s.Uo {
          constructor(e, t, i, n) {
            super(e, (i ? t : '') + n, 0, -n.length),
              (this._openCharacter = t),
              (this._closeCharacter = n),
              (this.closeCharacterRange = null),
              (this.enclosingRange = null);
          }
          computeCursorState(e, t) {
            let i = t.getInverseEditOperations()[0].range;
            return (
              (this.closeCharacterRange = new a.e(
                i.startLineNumber,
                i.endColumn - this._closeCharacter.length,
                i.endLineNumber,
                i.endColumn
              )),
              (this.enclosingRange = new a.e(
                i.startLineNumber,
                i.endColumn -
                  this._openCharacter.length -
                  this._closeCharacter.length,
                i.endLineNumber,
                i.endColumn
              )),
              super.computeCursorState(e, t)
            );
          }
        }
      },
      5795: (e, t, i) => {
        'use strict';
        i.d(t, { w: () => l, L: () => c });
        var n = i(97295),
          r = i(33181),
          s = i(59410),
          o = i(50187),
          a = i(24314);
        class l {
          static _createWord(e, t, i, n, r) {
            return { start: n, end: r, wordType: t, nextCharClass: i };
          }
          static _findPreviousWordOnLine(e, t, i) {
            let n = t.getLineContent(i.lineNumber);
            return this._doFindPreviousWordOnLine(n, e, i);
          }
          static _doFindPreviousWordOnLine(e, t, i) {
            let n = 0;
            for (let r = i.column - 2; r >= 0; r--) {
              let i = e.charCodeAt(r),
                s = t.get(i);
              if (0 === s) {
                if (2 === n)
                  return this._createWord(
                    e,
                    n,
                    s,
                    r + 1,
                    this._findEndOfWord(e, t, n, r + 1)
                  );
                n = 1;
              } else if (2 === s) {
                if (1 === n)
                  return this._createWord(
                    e,
                    n,
                    s,
                    r + 1,
                    this._findEndOfWord(e, t, n, r + 1)
                  );
                n = 2;
              } else if (1 === s && 0 !== n)
                return this._createWord(
                  e,
                  n,
                  s,
                  r + 1,
                  this._findEndOfWord(e, t, n, r + 1)
                );
            }
            return 0 !== n
              ? this._createWord(e, n, 1, 0, this._findEndOfWord(e, t, n, 0))
              : null;
          }
          static _findEndOfWord(e, t, i, n) {
            let r = e.length;
            for (let s = n; s < r; s++) {
              let n = e.charCodeAt(s),
                r = t.get(n);
              if (1 === r) return s;
              if (1 === i && 2 === r) return s;
              if (2 === i && 0 === r) return s;
            }
            return r;
          }
          static _findNextWordOnLine(e, t, i) {
            let n = t.getLineContent(i.lineNumber);
            return this._doFindNextWordOnLine(n, e, i);
          }
          static _doFindNextWordOnLine(e, t, i) {
            let n = 0,
              r = e.length;
            for (let s = i.column - 1; s < r; s++) {
              let i = e.charCodeAt(s),
                r = t.get(i);
              if (0 === r) {
                if (2 === n)
                  return this._createWord(
                    e,
                    n,
                    r,
                    this._findStartOfWord(e, t, n, s - 1),
                    s
                  );
                n = 1;
              } else if (2 === r) {
                if (1 === n)
                  return this._createWord(
                    e,
                    n,
                    r,
                    this._findStartOfWord(e, t, n, s - 1),
                    s
                  );
                n = 2;
              } else if (1 === r && 0 !== n)
                return this._createWord(
                  e,
                  n,
                  r,
                  this._findStartOfWord(e, t, n, s - 1),
                  s
                );
            }
            return 0 !== n
              ? this._createWord(
                  e,
                  n,
                  1,
                  this._findStartOfWord(e, t, n, r - 1),
                  r
                )
              : null;
          }
          static _findStartOfWord(e, t, i, n) {
            for (let r = n; r >= 0; r--) {
              let n = e.charCodeAt(r),
                s = t.get(n);
              if (1 === s) return r + 1;
              if (1 === i && 2 === s) return r + 1;
              if (2 === i && 0 === s) return r + 1;
            }
            return 0;
          }
          static moveWordLeft(e, t, i, n) {
            let r = i.lineNumber,
              s = i.column;
            1 === s && r > 1 && ((r -= 1), (s = t.getLineMaxColumn(r)));
            let a = l._findPreviousWordOnLine(e, t, new o.L(r, s));
            if (0 === n) return new o.L(r, a ? a.start + 1 : 1);
            if (1 === n)
              return (
                a &&
                  2 === a.wordType &&
                  a.end - a.start == 1 &&
                  0 === a.nextCharClass &&
                  (a = l._findPreviousWordOnLine(
                    e,
                    t,
                    new o.L(r, a.start + 1)
                  )),
                new o.L(r, a ? a.start + 1 : 1)
              );
            if (3 === n) {
              for (; a && 2 === a.wordType; )
                a = l._findPreviousWordOnLine(e, t, new o.L(r, a.start + 1));
              return new o.L(r, a ? a.start + 1 : 1);
            }
            return (
              a &&
                s <= a.end + 1 &&
                (a = l._findPreviousWordOnLine(e, t, new o.L(r, a.start + 1))),
              new o.L(r, a ? a.end + 1 : 1)
            );
          }
          static _moveWordPartLeft(e, t) {
            const i = t.lineNumber,
              r = e.getLineMaxColumn(i);
            if (1 === t.column)
              return i > 1 ? new o.L(i - 1, e.getLineMaxColumn(i - 1)) : t;
            const s = e.getLineContent(i);
            for (let e = t.column - 1; e > 1; e--) {
              const t = s.charCodeAt(e - 2),
                a = s.charCodeAt(e - 1);
              if (95 === t && 95 !== a) return new o.L(i, e);
              if (n.mK(t) && n.df(a)) return new o.L(i, e);
              if (n.df(t) && n.df(a) && e + 1 < r) {
                const t = s.charCodeAt(e);
                if (n.mK(t)) return new o.L(i, e);
              }
            }
            return new o.L(i, 1);
          }
          static moveWordRight(e, t, i, n) {
            let r = i.lineNumber,
              s = i.column,
              a = !1;
            s === t.getLineMaxColumn(r) &&
              r < t.getLineCount() &&
              ((a = !0), (r += 1), (s = 1));
            let c = l._findNextWordOnLine(e, t, new o.L(r, s));
            if (2 === n)
              c &&
                2 === c.wordType &&
                c.end - c.start == 1 &&
                0 === c.nextCharClass &&
                (c = l._findNextWordOnLine(e, t, new o.L(r, c.end + 1))),
                (s = c ? c.end + 1 : t.getLineMaxColumn(r));
            else if (3 === n) {
              for (a && (s = 0); c && (2 === c.wordType || c.start + 1 <= s); )
                c = l._findNextWordOnLine(e, t, new o.L(r, c.end + 1));
              s = c ? c.start + 1 : t.getLineMaxColumn(r);
            } else
              c &&
                !a &&
                s >= c.start + 1 &&
                (c = l._findNextWordOnLine(e, t, new o.L(r, c.end + 1))),
                (s = c ? c.start + 1 : t.getLineMaxColumn(r));
            return new o.L(r, s);
          }
          static _moveWordPartRight(e, t) {
            const i = t.lineNumber,
              r = e.getLineMaxColumn(i);
            if (t.column === r)
              return i < e.getLineCount() ? new o.L(i + 1, 1) : t;
            const s = e.getLineContent(i);
            for (let e = t.column + 1; e < r; e++) {
              const t = s.charCodeAt(e - 2),
                a = s.charCodeAt(e - 1);
              if (95 !== t && 95 === a) return new o.L(i, e);
              if (n.mK(t) && n.df(a)) return new o.L(i, e);
              if (n.df(t) && n.df(a) && e + 1 < r) {
                const t = s.charCodeAt(e);
                if (n.mK(t)) return new o.L(i, e);
              }
            }
            return new o.L(i, r);
          }
          static _deleteWordLeftWhitespace(e, t) {
            const i = e.getLineContent(t.lineNumber),
              r = t.column - 2,
              s = n.ow(i, r);
            return s + 1 < r
              ? new a.e(t.lineNumber, s + 2, t.lineNumber, t.column)
              : null;
          }
          static deleteWordLeft(e, t, i, n, r) {
            if (!i.isEmpty()) return i;
            const s = new o.L(i.positionLineNumber, i.positionColumn);
            let c = s.lineNumber,
              d = s.column;
            if (1 === c && 1 === d) return null;
            if (n) {
              let e = this._deleteWordLeftWhitespace(t, s);
              if (e) return e;
            }
            let h = l._findPreviousWordOnLine(e, t, s);
            return (
              0 === r
                ? h
                  ? (d = h.start + 1)
                  : d > 1
                  ? (d = 1)
                  : (c--, (d = t.getLineMaxColumn(c)))
                : (h &&
                    d <= h.end + 1 &&
                    (h = l._findPreviousWordOnLine(
                      e,
                      t,
                      new o.L(c, h.start + 1)
                    )),
                  h
                    ? (d = h.end + 1)
                    : d > 1
                    ? (d = 1)
                    : (c--, (d = t.getLineMaxColumn(c)))),
              new a.e(c, d, s.lineNumber, s.column)
            );
          }
          static _deleteWordPartLeft(e, t) {
            if (!t.isEmpty()) return t;
            const i = t.getPosition(),
              n = l._moveWordPartLeft(e, i);
            return new a.e(i.lineNumber, i.column, n.lineNumber, n.column);
          }
          static _findFirstNonWhitespaceChar(e, t) {
            let i = e.length;
            for (let n = t; n < i; n++) {
              let t = e.charAt(n);
              if (' ' !== t && '\t' !== t) return n;
            }
            return i;
          }
          static _deleteWordRightWhitespace(e, t) {
            const i = e.getLineContent(t.lineNumber),
              n = t.column - 1,
              r = this._findFirstNonWhitespaceChar(i, n);
            return n + 1 < r
              ? new a.e(t.lineNumber, t.column, t.lineNumber, r + 1)
              : null;
          }
          static deleteWordRight(e, t, i, n, r) {
            if (!i.isEmpty()) return i;
            const s = new o.L(i.positionLineNumber, i.positionColumn);
            let c = s.lineNumber,
              d = s.column;
            const h = t.getLineCount(),
              u = t.getLineMaxColumn(c);
            if (c === h && d === u) return null;
            if (n) {
              let e = this._deleteWordRightWhitespace(t, s);
              if (e) return e;
            }
            let g = l._findNextWordOnLine(e, t, s);
            return (
              2 === r
                ? g
                  ? (d = g.end + 1)
                  : d < u || c === h
                  ? (d = u)
                  : (c++,
                    (g = l._findNextWordOnLine(e, t, new o.L(c, 1))),
                    (d = g ? g.start + 1 : t.getLineMaxColumn(c)))
                : (g &&
                    d >= g.start + 1 &&
                    (g = l._findNextWordOnLine(e, t, new o.L(c, g.end + 1))),
                  g
                    ? (d = g.start + 1)
                    : d < u || c === h
                    ? (d = u)
                    : (c++,
                      (g = l._findNextWordOnLine(e, t, new o.L(c, 1))),
                      (d = g ? g.start + 1 : t.getLineMaxColumn(c)))),
              new a.e(c, d, s.lineNumber, s.column)
            );
          }
          static _deleteWordPartRight(e, t) {
            if (!t.isEmpty()) return t;
            const i = t.getPosition(),
              n = l._moveWordPartRight(e, i);
            return new a.e(i.lineNumber, i.column, n.lineNumber, n.column);
          }
          static _createWordAtPosition(e, t, i) {
            const n = new a.e(t, i.start + 1, t, i.end + 1);
            return {
              word: e.getValueInRange(n),
              startColumn: n.startColumn,
              endColumn: n.endColumn,
            };
          }
          static getWordAtPosition(e, t, i) {
            const n = (0, s.u)(t),
              r = l._findPreviousWordOnLine(n, e, i);
            if (
              r &&
              1 === r.wordType &&
              r.start <= i.column - 1 &&
              i.column - 1 <= r.end
            )
              return l._createWordAtPosition(e, i.lineNumber, r);
            const o = l._findNextWordOnLine(n, e, i);
            return o &&
              1 === o.wordType &&
              o.start <= i.column - 1 &&
              i.column - 1 <= o.end
              ? l._createWordAtPosition(e, i.lineNumber, o)
              : null;
          }
          static word(e, t, i, n, c) {
            const d = (0, s.u)(e.wordSeparators);
            let h,
              u,
              g = l._findPreviousWordOnLine(d, t, c),
              f = l._findNextWordOnLine(d, t, c);
            if (!n) {
              let e, i;
              return (
                g &&
                1 === g.wordType &&
                g.start <= c.column - 1 &&
                c.column - 1 <= g.end
                  ? ((e = g.start + 1), (i = g.end + 1))
                  : f &&
                    1 === f.wordType &&
                    f.start <= c.column - 1 &&
                    c.column - 1 <= f.end
                  ? ((e = f.start + 1), (i = f.end + 1))
                  : ((e = g ? g.end + 1 : 1),
                    (i = f ? f.start + 1 : t.getLineMaxColumn(c.lineNumber))),
                new r.rS(
                  new a.e(c.lineNumber, e, c.lineNumber, i),
                  0,
                  new o.L(c.lineNumber, i),
                  0
                )
              );
            }
            g &&
            1 === g.wordType &&
            g.start < c.column - 1 &&
            c.column - 1 < g.end
              ? ((h = g.start + 1), (u = g.end + 1))
              : f &&
                1 === f.wordType &&
                f.start < c.column - 1 &&
                c.column - 1 < f.end
              ? ((h = f.start + 1), (u = f.end + 1))
              : ((h = c.column), (u = c.column));
            let p,
              m = c.lineNumber;
            if (i.selectionStart.containsPosition(c))
              p = i.selectionStart.endColumn;
            else if (c.isBeforeOrEqual(i.selectionStart.getStartPosition())) {
              p = h;
              let e = new o.L(m, p);
              i.selectionStart.containsPosition(e) &&
                (p = i.selectionStart.endColumn);
            } else {
              p = u;
              let e = new o.L(m, p);
              i.selectionStart.containsPosition(e) &&
                (p = i.selectionStart.startColumn);
            }
            return i.move(!0, m, p, 0);
          }
        }
        class c extends l {
          static deleteWordPartLeft(e, t, i, n) {
            const r = d([
              l.deleteWordLeft(e, t, i, n, 0),
              l.deleteWordLeft(e, t, i, n, 2),
              l._deleteWordPartLeft(t, i),
            ]);
            return r.sort(a.e.compareRangesUsingEnds), r[2];
          }
          static deleteWordPartRight(e, t, i, n) {
            const r = d([
              l.deleteWordRight(e, t, i, n, 0),
              l.deleteWordRight(e, t, i, n, 2),
              l._deleteWordPartRight(t, i),
            ]);
            return r.sort(a.e.compareRangesUsingStarts), r[0];
          }
          static moveWordPartLeft(e, t, i) {
            const n = d([
              l.moveWordLeft(e, t, i, 0),
              l.moveWordLeft(e, t, i, 2),
              l._moveWordPartLeft(t, i),
            ]);
            return n.sort(o.L.compare), n[2];
          }
          static moveWordPartRight(e, t, i) {
            const n = d([
              l.moveWordRight(e, t, i, 0),
              l.moveWordRight(e, t, i, 2),
              l._moveWordPartRight(t, i),
            ]);
            return n.sort(o.L.compare), n[0];
          }
        }
        function d(e) {
          return e.filter((e) => Boolean(e));
        }
      },
      59410: (e, t, i) => {
        'use strict';
        i.d(t, { u: () => s });
        var n = i(44906);
        class r extends n.N {
          constructor(e) {
            super(0);
            for (let t = 0, i = e.length; t < i; t++)
              this.set(e.charCodeAt(t), 2);
            this.set(32, 1), this.set(9, 1);
          }
        }
        const s = (function (e) {
          let t = {};
          return (e) => (
            t.hasOwnProperty(e) || (t[e] = ((e) => new r(e))(e)), t[e]
          );
        })();
      },
      44906: (e, t, i) => {
        'use strict';
        i.d(t, { N: () => r, q: () => s });
        var n = i(85427);
        class r {
          constructor(e) {
            let t = (0, n.K)(e);
            (this._defaultValue = t),
              (this._asciiMap = r._createAsciiMap(t)),
              (this._map = new Map());
          }
          static _createAsciiMap(e) {
            let t = new Uint8Array(256);
            for (let i = 0; i < 256; i++) t[i] = e;
            return t;
          }
          set(e, t) {
            let i = (0, n.K)(t);
            e >= 0 && e < 256 ? (this._asciiMap[e] = i) : this._map.set(e, i);
          }
          get(e) {
            return e >= 0 && e < 256
              ? this._asciiMap[e]
              : this._map.get(e) || this._defaultValue;
          }
        }
        class s {
          constructor() {
            this._actual = new r(0);
          }
          add(e) {
            this._actual.set(e, 1);
          }
          has(e) {
            return 1 === this._actual.get(e);
          }
        }
      },
      69386: (e, t, i) => {
        'use strict';
        i.d(t, { h: () => r });
        var n = i(24314);
        class r {
          static insert(e, t) {
            return {
              range: new n.e(e.lineNumber, e.column, e.lineNumber, e.column),
              text: t,
              forceMoveMarkers: !0,
            };
          }
          static delete(e) {
            return { range: e, text: null };
          }
          static replace(e, t) {
            return { range: e, text: t };
          }
          static replaceMove(e, t) {
            return { range: e, text: t, forceMoveMarkers: !0 };
          }
        }
      },
      78411: (e, t, i) => {
        'use strict';
        i.d(t, { A: () => r });
        var n = i(43775);
        class r {
          constructor(e, t) {
            (this._tokens = e),
              (this._tokensCount = this._tokens.length >>> 1),
              (this._text = t);
          }
          equals(e) {
            return e instanceof r && this.slicedEquals(e, 0, this._tokensCount);
          }
          slicedEquals(e, t, i) {
            if (this._text !== e._text) return !1;
            if (this._tokensCount !== e._tokensCount) return !1;
            const n = t << 1,
              r = n + (i << 1);
            for (let t = n; t < r; t++)
              if (this._tokens[t] !== e._tokens[t]) return !1;
            return !0;
          }
          getLineContent() {
            return this._text;
          }
          getCount() {
            return this._tokensCount;
          }
          getStartOffset(e) {
            return e > 0 ? this._tokens[(e - 1) << 1] : 0;
          }
          getMetadata(e) {
            return this._tokens[1 + (e << 1)];
          }
          getLanguageId(e) {
            const t = this._tokens[1 + (e << 1)];
            return n.NX.getLanguageId(t);
          }
          getStandardTokenType(e) {
            const t = this._tokens[1 + (e << 1)];
            return n.NX.getTokenType(t);
          }
          getForeground(e) {
            const t = this._tokens[1 + (e << 1)];
            return n.NX.getForeground(t);
          }
          getClassName(e) {
            const t = this._tokens[1 + (e << 1)];
            return n.NX.getClassNameFromMetadata(t);
          }
          getInlineStyle(e, t) {
            const i = this._tokens[1 + (e << 1)];
            return n.NX.getInlineStyleFromMetadata(i, t);
          }
          getEndOffset(e) {
            return this._tokens[e << 1];
          }
          findTokenIndexAtOffset(e) {
            return r.findIndexInTokensArray(this._tokens, e);
          }
          inflate() {
            return this;
          }
          sliceAndInflate(e, t, i) {
            return new s(this, e, t, i);
          }
          static convertToEndOffset(e, t) {
            const i = (e.length >>> 1) - 1;
            for (let t = 0; t < i; t++) e[t << 1] = e[(t + 1) << 1];
            e[i << 1] = t;
          }
          static findIndexInTokensArray(e, t) {
            if (e.length <= 2) return 0;
            let i = 0,
              n = (e.length >>> 1) - 1;
            for (; i < n; ) {
              const r = i + Math.floor((n - i) / 2),
                s = e[r << 1];
              if (s === t) return r + 1;
              s < t ? (i = r + 1) : s > t && (n = r);
            }
            return i;
          }
        }
        class s {
          constructor(e, t, i, n) {
            (this._source = e),
              (this._startOffset = t),
              (this._endOffset = i),
              (this._deltaOffset = n),
              (this._firstTokenIndex = e.findTokenIndexAtOffset(t)),
              (this._tokensCount = 0);
            for (
              let t = this._firstTokenIndex, n = e.getCount();
              t < n && !(e.getStartOffset(t) >= i);
              t++
            )
              this._tokensCount++;
          }
          equals(e) {
            return (
              e instanceof s &&
              this._startOffset === e._startOffset &&
              this._endOffset === e._endOffset &&
              this._deltaOffset === e._deltaOffset &&
              this._source.slicedEquals(
                e._source,
                this._firstTokenIndex,
                this._tokensCount
              )
            );
          }
          getCount() {
            return this._tokensCount;
          }
          getForeground(e) {
            return this._source.getForeground(this._firstTokenIndex + e);
          }
          getEndOffset(e) {
            const t = this._source.getEndOffset(this._firstTokenIndex + e);
            return (
              Math.min(this._endOffset, t) -
              this._startOffset +
              this._deltaOffset
            );
          }
          getClassName(e) {
            return this._source.getClassName(this._firstTokenIndex + e);
          }
          getInlineStyle(e, t) {
            return this._source.getInlineStyle(this._firstTokenIndex + e, t);
          }
          findTokenIndexAtOffset(e) {
            return (
              this._source.findTokenIndexAtOffset(
                e + this._startOffset - this._deltaOffset
              ) - this._firstTokenIndex
            );
          }
        }
      },
      50187: (e, t, i) => {
        'use strict';
        i.d(t, { L: () => n });
        class n {
          constructor(e, t) {
            (this.lineNumber = e), (this.column = t);
          }
          with(e = this.lineNumber, t = this.column) {
            return e === this.lineNumber && t === this.column
              ? this
              : new n(e, t);
          }
          delta(e = 0, t = 0) {
            return this.with(this.lineNumber + e, this.column + t);
          }
          equals(e) {
            return n.equals(this, e);
          }
          static equals(e, t) {
            return (
              (!e && !t) ||
              (!!e &&
                !!t &&
                e.lineNumber === t.lineNumber &&
                e.column === t.column)
            );
          }
          isBefore(e) {
            return n.isBefore(this, e);
          }
          static isBefore(e, t) {
            return (
              e.lineNumber < t.lineNumber ||
              (!(t.lineNumber < e.lineNumber) && e.column < t.column)
            );
          }
          isBeforeOrEqual(e) {
            return n.isBeforeOrEqual(this, e);
          }
          static isBeforeOrEqual(e, t) {
            return (
              e.lineNumber < t.lineNumber ||
              (!(t.lineNumber < e.lineNumber) && e.column <= t.column)
            );
          }
          static compare(e, t) {
            let i = 0 | e.lineNumber,
              n = 0 | t.lineNumber;
            return i === n ? (0 | e.column) - (0 | t.column) : i - n;
          }
          clone() {
            return new n(this.lineNumber, this.column);
          }
          toString() {
            return '(' + this.lineNumber + ',' + this.column + ')';
          }
          static lift(e) {
            return new n(e.lineNumber, e.column);
          }
          static isIPosition(e) {
            return (
              e &&
              'number' == typeof e.lineNumber &&
              'number' == typeof e.column
            );
          }
        }
      },
      24314: (e, t, i) => {
        'use strict';
        i.d(t, { e: () => r });
        var n = i(50187);
        class r {
          constructor(e, t, i, n) {
            e > i || (e === i && t > n)
              ? ((this.startLineNumber = i),
                (this.startColumn = n),
                (this.endLineNumber = e),
                (this.endColumn = t))
              : ((this.startLineNumber = e),
                (this.startColumn = t),
                (this.endLineNumber = i),
                (this.endColumn = n));
          }
          isEmpty() {
            return r.isEmpty(this);
          }
          static isEmpty(e) {
            return (
              e.startLineNumber === e.endLineNumber &&
              e.startColumn === e.endColumn
            );
          }
          containsPosition(e) {
            return r.containsPosition(this, e);
          }
          static containsPosition(e, t) {
            return !(
              t.lineNumber < e.startLineNumber ||
              t.lineNumber > e.endLineNumber ||
              (t.lineNumber === e.startLineNumber &&
                t.column < e.startColumn) ||
              (t.lineNumber === e.endLineNumber && t.column > e.endColumn)
            );
          }
          containsRange(e) {
            return r.containsRange(this, e);
          }
          static containsRange(e, t) {
            return !(
              t.startLineNumber < e.startLineNumber ||
              t.endLineNumber < e.startLineNumber ||
              t.startLineNumber > e.endLineNumber ||
              t.endLineNumber > e.endLineNumber ||
              (t.startLineNumber === e.startLineNumber &&
                t.startColumn < e.startColumn) ||
              (t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)
            );
          }
          strictContainsRange(e) {
            return r.strictContainsRange(this, e);
          }
          static strictContainsRange(e, t) {
            return !(
              t.startLineNumber < e.startLineNumber ||
              t.endLineNumber < e.startLineNumber ||
              t.startLineNumber > e.endLineNumber ||
              t.endLineNumber > e.endLineNumber ||
              (t.startLineNumber === e.startLineNumber &&
                t.startColumn <= e.startColumn) ||
              (t.endLineNumber === e.endLineNumber &&
                t.endColumn >= e.endColumn)
            );
          }
          plusRange(e) {
            return r.plusRange(this, e);
          }
          static plusRange(e, t) {
            let i, n, s, o;
            return (
              t.startLineNumber < e.startLineNumber
                ? ((i = t.startLineNumber), (n = t.startColumn))
                : t.startLineNumber === e.startLineNumber
                ? ((i = t.startLineNumber),
                  (n = Math.min(t.startColumn, e.startColumn)))
                : ((i = e.startLineNumber), (n = e.startColumn)),
              t.endLineNumber > e.endLineNumber
                ? ((s = t.endLineNumber), (o = t.endColumn))
                : t.endLineNumber === e.endLineNumber
                ? ((s = t.endLineNumber),
                  (o = Math.max(t.endColumn, e.endColumn)))
                : ((s = e.endLineNumber), (o = e.endColumn)),
              new r(i, n, s, o)
            );
          }
          intersectRanges(e) {
            return r.intersectRanges(this, e);
          }
          static intersectRanges(e, t) {
            let i = e.startLineNumber,
              n = e.startColumn,
              s = e.endLineNumber,
              o = e.endColumn,
              a = t.startLineNumber,
              l = t.startColumn,
              c = t.endLineNumber,
              d = t.endColumn;
            return (
              i < a ? ((i = a), (n = l)) : i === a && (n = Math.max(n, l)),
              s > c ? ((s = c), (o = d)) : s === c && (o = Math.min(o, d)),
              i > s || (i === s && n > o) ? null : new r(i, n, s, o)
            );
          }
          equalsRange(e) {
            return r.equalsRange(this, e);
          }
          static equalsRange(e, t) {
            return (
              !!e &&
              !!t &&
              e.startLineNumber === t.startLineNumber &&
              e.startColumn === t.startColumn &&
              e.endLineNumber === t.endLineNumber &&
              e.endColumn === t.endColumn
            );
          }
          getEndPosition() {
            return r.getEndPosition(this);
          }
          static getEndPosition(e) {
            return new n.L(e.endLineNumber, e.endColumn);
          }
          getStartPosition() {
            return r.getStartPosition(this);
          }
          static getStartPosition(e) {
            return new n.L(e.startLineNumber, e.startColumn);
          }
          toString() {
            return (
              '[' +
              this.startLineNumber +
              ',' +
              this.startColumn +
              ' -> ' +
              this.endLineNumber +
              ',' +
              this.endColumn +
              ']'
            );
          }
          setEndPosition(e, t) {
            return new r(this.startLineNumber, this.startColumn, e, t);
          }
          setStartPosition(e, t) {
            return new r(e, t, this.endLineNumber, this.endColumn);
          }
          collapseToStart() {
            return r.collapseToStart(this);
          }
          static collapseToStart(e) {
            return new r(
              e.startLineNumber,
              e.startColumn,
              e.startLineNumber,
              e.startColumn
            );
          }
          static fromPositions(e, t = e) {
            return new r(e.lineNumber, e.column, t.lineNumber, t.column);
          }
          static lift(e) {
            return e
              ? new r(
                  e.startLineNumber,
                  e.startColumn,
                  e.endLineNumber,
                  e.endColumn
                )
              : null;
          }
          static isIRange(e) {
            return (
              e &&
              'number' == typeof e.startLineNumber &&
              'number' == typeof e.startColumn &&
              'number' == typeof e.endLineNumber &&
              'number' == typeof e.endColumn
            );
          }
          static areIntersectingOrTouching(e, t) {
            return !(
              e.endLineNumber < t.startLineNumber ||
              (e.endLineNumber === t.startLineNumber &&
                e.endColumn < t.startColumn) ||
              t.endLineNumber < e.startLineNumber ||
              (t.endLineNumber === e.startLineNumber &&
                t.endColumn < e.startColumn)
            );
          }
          static areIntersecting(e, t) {
            return !(
              e.endLineNumber < t.startLineNumber ||
              (e.endLineNumber === t.startLineNumber &&
                e.endColumn <= t.startColumn) ||
              t.endLineNumber < e.startLineNumber ||
              (t.endLineNumber === e.startLineNumber &&
                t.endColumn <= e.startColumn)
            );
          }
          static compareRangesUsingStarts(e, t) {
            if (e && t) {
              const i = 0 | e.startLineNumber,
                n = 0 | t.startLineNumber;
              if (i === n) {
                const i = 0 | e.startColumn,
                  n = 0 | t.startColumn;
                if (i === n) {
                  const i = 0 | e.endLineNumber,
                    n = 0 | t.endLineNumber;
                  return i === n
                    ? (0 | e.endColumn) - (0 | t.endColumn)
                    : i - n;
                }
                return i - n;
              }
              return i - n;
            }
            return (e ? 1 : 0) - (t ? 1 : 0);
          }
          static compareRangesUsingEnds(e, t) {
            return e.endLineNumber === t.endLineNumber
              ? e.endColumn === t.endColumn
                ? e.startLineNumber === t.startLineNumber
                  ? e.startColumn - t.startColumn
                  : e.startLineNumber - t.startLineNumber
                : e.endColumn - t.endColumn
              : e.endLineNumber - t.endLineNumber;
          }
          static spansMultipleLines(e) {
            return e.endLineNumber > e.startLineNumber;
          }
        }
      },
      3860: (e, t, i) => {
        'use strict';
        i.d(t, { Y: () => s });
        var n = i(50187),
          r = i(24314);
        class s extends r.e {
          constructor(e, t, i, n) {
            super(e, t, i, n),
              (this.selectionStartLineNumber = e),
              (this.selectionStartColumn = t),
              (this.positionLineNumber = i),
              (this.positionColumn = n);
          }
          toString() {
            return (
              '[' +
              this.selectionStartLineNumber +
              ',' +
              this.selectionStartColumn +
              ' -> ' +
              this.positionLineNumber +
              ',' +
              this.positionColumn +
              ']'
            );
          }
          equalsSelection(e) {
            return s.selectionsEqual(this, e);
          }
          static selectionsEqual(e, t) {
            return (
              e.selectionStartLineNumber === t.selectionStartLineNumber &&
              e.selectionStartColumn === t.selectionStartColumn &&
              e.positionLineNumber === t.positionLineNumber &&
              e.positionColumn === t.positionColumn
            );
          }
          getDirection() {
            return this.selectionStartLineNumber === this.startLineNumber &&
              this.selectionStartColumn === this.startColumn
              ? 0
              : 1;
          }
          setEndPosition(e, t) {
            return 0 === this.getDirection()
              ? new s(this.startLineNumber, this.startColumn, e, t)
              : new s(e, t, this.startLineNumber, this.startColumn);
          }
          getPosition() {
            return new n.L(this.positionLineNumber, this.positionColumn);
          }
          setStartPosition(e, t) {
            return 0 === this.getDirection()
              ? new s(e, t, this.endLineNumber, this.endColumn)
              : new s(this.endLineNumber, this.endColumn, e, t);
          }
          static fromPositions(e, t = e) {
            return new s(e.lineNumber, e.column, t.lineNumber, t.column);
          }
          static liftSelection(e) {
            return new s(
              e.selectionStartLineNumber,
              e.selectionStartColumn,
              e.positionLineNumber,
              e.positionColumn
            );
          }
          static selectionsArrEqual(e, t) {
            if ((e && !t) || (!e && t)) return !1;
            if (!e && !t) return !0;
            if (e.length !== t.length) return !1;
            for (let i = 0, n = e.length; i < n; i++)
              if (!this.selectionsEqual(e[i], t[i])) return !1;
            return !0;
          }
          static isISelection(e) {
            return (
              e &&
              'number' == typeof e.selectionStartLineNumber &&
              'number' == typeof e.selectionStartColumn &&
              'number' == typeof e.positionLineNumber &&
              'number' == typeof e.positionColumn
            );
          }
          static createWithDirection(e, t, i, n, r) {
            return 0 === r ? new s(e, t, i, n) : new s(i, n, e, t);
          }
        }
      },
      50072: (e, t, i) => {
        'use strict';
        i.d(t, { oe: () => a, lZ: () => l, l$: () => c, kH: () => d });
        var n = i(97295),
          r = i(1432),
          s = i(53060);
        let o;
        function a() {
          return o || (o = new TextDecoder(r.r() ? 'UTF-16LE' : 'UTF-16BE')), o;
        }
        const l = 'undefined' != typeof TextDecoder;
        let c, d;
        l
          ? ((c = (e) => new h(e)),
            (d = function (e, t, i) {
              const n = new Uint16Array(e.buffer, t, i);
              return a().decode(n);
            }))
          : ((c = (e) => new u()),
            (d = function (e, t, i) {
              let n = [],
                r = 0;
              for (let o = 0; o < i; o++) {
                const i = s.mP(e, t);
                (t += 2), (n[r++] = String.fromCharCode(i));
              }
              return n.join('');
            }));
        class h {
          constructor(e) {
            (this._capacity = 0 | e),
              (this._buffer = new Uint16Array(this._capacity)),
              (this._completedStrings = null),
              (this._bufferLength = 0);
          }
          reset() {
            (this._completedStrings = null), (this._bufferLength = 0);
          }
          build() {
            return null !== this._completedStrings
              ? (this._flushBuffer(), this._completedStrings.join(''))
              : this._buildBuffer();
          }
          _buildBuffer() {
            if (0 === this._bufferLength) return '';
            const e = new Uint16Array(
              this._buffer.buffer,
              0,
              this._bufferLength
            );
            return a().decode(e);
          }
          _flushBuffer() {
            const e = this._buildBuffer();
            (this._bufferLength = 0),
              null === this._completedStrings
                ? (this._completedStrings = [e])
                : (this._completedStrings[this._completedStrings.length] = e);
          }
          write1(e) {
            const t = this._capacity - this._bufferLength;
            t <= 1 && (0 === t || n.ZG(e)) && this._flushBuffer(),
              (this._buffer[this._bufferLength++] = e);
          }
          appendASCII(e) {
            this._bufferLength === this._capacity && this._flushBuffer(),
              (this._buffer[this._bufferLength++] = e);
          }
          appendASCIIString(e) {
            const t = e.length;
            if (this._bufferLength + t >= this._capacity)
              return (
                this._flushBuffer(),
                void (this._completedStrings[this._completedStrings.length] = e)
              );
            for (let i = 0; i < t; i++)
              this._buffer[this._bufferLength++] = e.charCodeAt(i);
          }
        }
        class u {
          constructor() {
            (this._pieces = []), (this._piecesLen = 0);
          }
          reset() {
            (this._pieces = []), (this._piecesLen = 0);
          }
          build() {
            return this._pieces.join('');
          }
          write1(e) {
            this._pieces[this._piecesLen++] = String.fromCharCode(e);
          }
          appendASCII(e) {
            this._pieces[this._piecesLen++] = String.fromCharCode(e);
          }
          appendASCIIString(e) {
            this._pieces[this._piecesLen++] = e;
          }
        }
      },
      85600: (e, t, i) => {
        'use strict';
        i.d(t, { WU: () => n, hG: () => r, Hi: () => s });
        class n {
          constructor(e, t, i) {
            (this.offset = 0 | e), (this.type = t), (this.language = i);
          }
          toString() {
            return '(' + this.offset + ', ' + this.type + ')';
          }
        }
        class r {
          constructor(e, t) {
            (this.tokens = e), (this.endState = t);
          }
        }
        class s {
          constructor(e, t) {
            (this.tokens = e), (this.endState = t);
          }
        }
      },
      30653: (e, t, i) => {
        'use strict';
        i.d(t, { p: () => n });
        class n {
          constructor(e, t, i, n, r, s) {
            (this.id = e),
              (this.label = t),
              (this.alias = i),
              (this._precondition = n),
              (this._run = r),
              (this._contextKeyService = s);
          }
          isSupported() {
            return this._contextKeyService.contextMatchesRules(
              this._precondition
            );
          }
          run() {
            return this.isSupported() ? this._run() : Promise.resolve(void 0);
          }
        }
      },
      96518: (e, t, i) => {
        'use strict';
        function n(e) {
          return e && 'string' == typeof e.id;
        }
        i.d(t, { I: () => n, g: () => r });
        const r = {
          ICodeEditor: 'vs.editor.ICodeEditor',
          IDiffEditor: 'vs.editor.IDiffEditor',
        };
      },
      29102: (e, t, i) => {
        'use strict';
        i.d(t, { u: () => n });
        var n,
          r = i(38819);
        !(function (e) {
          (e.editorSimpleInput = new r.uy('editorSimpleInput', !1)),
            (e.editorTextFocus = new r.uy('editorTextFocus', !1)),
            (e.focus = new r.uy('editorFocus', !1)),
            (e.textInputFocus = new r.uy('textInputFocus', !1)),
            (e.readOnly = new r.uy('editorReadonly', !1)),
            (e.columnSelection = new r.uy('editorColumnSelection', !1)),
            (e.writable = e.readOnly.toNegated()),
            (e.hasNonEmptySelection = new r.uy('editorHasSelection', !1)),
            (e.hasOnlyEmptySelection = e.hasNonEmptySelection.toNegated()),
            (e.hasMultipleSelections = new r.uy(
              'editorHasMultipleSelections',
              !1
            )),
            (e.hasSingleSelection = e.hasMultipleSelections.toNegated()),
            (e.tabMovesFocus = new r.uy('editorTabMovesFocus', !1)),
            (e.tabDoesNotMoveFocus = e.tabMovesFocus.toNegated()),
            (e.isInWalkThroughSnippet = new r.uy('isInEmbeddedEditor', !1)),
            (e.canUndo = new r.uy('canUndo', !1)),
            (e.canRedo = new r.uy('canRedo', !1)),
            (e.hoverVisible = new r.uy('editorHoverVisible', !1)),
            (e.inCompositeEditor = new r.uy('inCompositeEditor', void 0)),
            (e.notInCompositeEditor = e.inCompositeEditor.toNegated()),
            (e.languageId = new r.uy('editorLangId', '')),
            (e.hasCompletionItemProvider = new r.uy(
              'editorHasCompletionItemProvider',
              !1
            )),
            (e.hasCodeActionsProvider = new r.uy(
              'editorHasCodeActionsProvider',
              !1
            )),
            (e.hasCodeLensProvider = new r.uy('editorHasCodeLensProvider', !1)),
            (e.hasDefinitionProvider = new r.uy(
              'editorHasDefinitionProvider',
              !1
            )),
            (e.hasDeclarationProvider = new r.uy(
              'editorHasDeclarationProvider',
              !1
            )),
            (e.hasImplementationProvider = new r.uy(
              'editorHasImplementationProvider',
              !1
            )),
            (e.hasTypeDefinitionProvider = new r.uy(
              'editorHasTypeDefinitionProvider',
              !1
            )),
            (e.hasHoverProvider = new r.uy('editorHasHoverProvider', !1)),
            (e.hasDocumentHighlightProvider = new r.uy(
              'editorHasDocumentHighlightProvider',
              !1
            )),
            (e.hasDocumentSymbolProvider = new r.uy(
              'editorHasDocumentSymbolProvider',
              !1
            )),
            (e.hasReferenceProvider = new r.uy(
              'editorHasReferenceProvider',
              !1
            )),
            (e.hasRenameProvider = new r.uy('editorHasRenameProvider', !1)),
            (e.hasSignatureHelpProvider = new r.uy(
              'editorHasSignatureHelpProvider',
              !1
            )),
            (e.hasDocumentFormattingProvider = new r.uy(
              'editorHasDocumentFormattingProvider',
              !1
            )),
            (e.hasDocumentSelectionFormattingProvider = new r.uy(
              'editorHasDocumentSelectionFormattingProvider',
              !1
            )),
            (e.hasMultipleDocumentFormattingProvider = new r.uy(
              'editorHasMultipleDocumentFormattingProvider',
              !1
            )),
            (e.hasMultipleDocumentSelectionFormattingProvider = new r.uy(
              'editorHasMultipleDocumentSelectionFormattingProvider',
              !1
            ));
        })(n || (n = {}));
      },
      84973: (e, t, i) => {
        'use strict';
        var n, r;
        i.d(t, {
          sh: () => n,
          F5: () => r,
          dJ: () => s,
          tk: () => o,
          Qi: () => a,
          je: () => l,
        }),
          (function (e) {
            (e[(e.Left = 1)] = 'Left'),
              (e[(e.Center = 2)] = 'Center'),
              (e[(e.Right = 4)] = 'Right'),
              (e[(e.Full = 7)] = 'Full');
          })(n || (n = {})),
          (function (e) {
            (e[(e.Inline = 1)] = 'Inline'), (e[(e.Gutter = 2)] = 'Gutter');
          })(r || (r = {}));
        class s {
          constructor(e) {
            (this.tabSize = Math.max(1, 0 | e.tabSize)),
              (this.indentSize = 0 | e.tabSize),
              (this.insertSpaces = Boolean(e.insertSpaces)),
              (this.defaultEOL = 0 | e.defaultEOL),
              (this.trimAutoWhitespace = Boolean(e.trimAutoWhitespace));
          }
          equals(e) {
            return (
              this.tabSize === e.tabSize &&
              this.indentSize === e.indentSize &&
              this.insertSpaces === e.insertSpaces &&
              this.defaultEOL === e.defaultEOL &&
              this.trimAutoWhitespace === e.trimAutoWhitespace
            );
          }
          createChangeEvent(e) {
            return {
              tabSize: this.tabSize !== e.tabSize,
              indentSize: this.indentSize !== e.indentSize,
              insertSpaces: this.insertSpaces !== e.insertSpaces,
              trimAutoWhitespace:
                this.trimAutoWhitespace !== e.trimAutoWhitespace,
            };
          }
        }
        class o {
          constructor(e, t) {
            (this.range = e), (this.matches = t);
          }
        }
        class a {
          constructor(e, t, i, n, r, s) {
            (this.identifier = e),
              (this.range = t),
              (this.text = i),
              (this.forceMoveMarkers = n),
              (this.isAutoWhitespaceEdit = r),
              (this._isTracked = s);
          }
        }
        class l {
          constructor(e, t, i) {
            (this.reverseEdits = e),
              (this.changes = t),
              (this.trimAutoWhitespaceLineNumbers = i);
          }
        }
      },
      95215: (e, t, i) => {
        'use strict';
        i.d(t, { e9: () => g, NL: () => f });
        var n = i(63580),
          r = i(17301),
          s = i(3860),
          o = i(70666),
          a = i(60962),
          l = i(53060);
        function c(e) {
          return e.toString();
        }
        class d {
          constructor(e, t, i, n, r, s, o) {
            (this.beforeVersionId = e),
              (this.afterVersionId = t),
              (this.beforeEOL = i),
              (this.afterEOL = n),
              (this.beforeCursorState = r),
              (this.afterCursorState = s),
              (this.changes = o);
          }
          static create(e, t) {
            const i = e.getAlternativeVersionId(),
              n = u(e);
            return new d(i, i, n, n, t, t, []);
          }
          append(e, t, i, n, r) {
            t.length > 0 && (this.changes = (0, a.b)(this.changes, t)),
              (this.afterEOL = i),
              (this.afterVersionId = n),
              (this.afterCursorState = r);
          }
          static _writeSelectionsSize(e) {
            return 4 + 16 * (e ? e.length : 0);
          }
          static _writeSelections(e, t, i) {
            if ((l.T4(e, t ? t.length : 0, i), (i += 4), t))
              for (const n of t)
                l.T4(e, n.selectionStartLineNumber, i),
                  (i += 4),
                  l.T4(e, n.selectionStartColumn, i),
                  (i += 4),
                  l.T4(e, n.positionLineNumber, i),
                  (i += 4),
                  l.T4(e, n.positionColumn, i),
                  (i += 4);
            return i;
          }
          static _readSelections(e, t, i) {
            const n = l.Ag(e, t);
            t += 4;
            for (let r = 0; r < n; r++) {
              const n = l.Ag(e, t);
              t += 4;
              const r = l.Ag(e, t);
              t += 4;
              const o = l.Ag(e, t);
              t += 4;
              const a = l.Ag(e, t);
              (t += 4), i.push(new s.Y(n, r, o, a));
            }
            return t;
          }
          serialize() {
            let e =
              10 +
              d._writeSelectionsSize(this.beforeCursorState) +
              d._writeSelectionsSize(this.afterCursorState) +
              4;
            for (const t of this.changes) e += t.writeSize();
            const t = new Uint8Array(e);
            let i = 0;
            l.T4(t, this.beforeVersionId, i),
              (i += 4),
              l.T4(t, this.afterVersionId, i),
              (i += 4),
              l.Cg(t, this.beforeEOL, i),
              (i += 1),
              l.Cg(t, this.afterEOL, i),
              (i += 1),
              (i = d._writeSelections(t, this.beforeCursorState, i)),
              (i = d._writeSelections(t, this.afterCursorState, i)),
              l.T4(t, this.changes.length, i),
              (i += 4);
            for (const e of this.changes) i = e.write(t, i);
            return t.buffer;
          }
          static deserialize(e) {
            const t = new Uint8Array(e);
            let i = 0;
            const n = l.Ag(t, i);
            i += 4;
            const r = l.Ag(t, i);
            i += 4;
            const s = l.Q$(t, i);
            i += 1;
            const o = l.Q$(t, i);
            i += 1;
            const c = [];
            i = d._readSelections(t, i, c);
            const h = [];
            i = d._readSelections(t, i, h);
            const u = l.Ag(t, i);
            i += 4;
            const g = [];
            for (let e = 0; e < u; e++) i = a.q.read(t, i, g);
            return new d(n, r, s, o, c, h, g);
          }
        }
        class h {
          constructor(e, t) {
            (this.model = e), (this._data = d.create(e, t));
          }
          get type() {
            return 0;
          }
          get resource() {
            return o.o.isUri(this.model) ? this.model : this.model.uri;
          }
          get label() {
            return n.N('edit', 'Typing');
          }
          toString() {
            return (this._data instanceof d
              ? this._data
              : d.deserialize(this._data)
            ).changes
              .map((e) => e.toString())
              .join(', ');
          }
          matchesResource(e) {
            return (
              (o.o.isUri(this.model)
                ? this.model
                : this.model.uri
              ).toString() === e.toString()
            );
          }
          setModel(e) {
            this.model = e;
          }
          canAppend(e) {
            return this.model === e && this._data instanceof d;
          }
          append(e, t, i, n, r) {
            this._data instanceof d && this._data.append(e, t, i, n, r);
          }
          close() {
            this._data instanceof d && (this._data = this._data.serialize());
          }
          undo() {
            if (o.o.isUri(this.model))
              throw new Error('Invalid SingleModelEditStackElement');
            this._data instanceof d && (this._data = this._data.serialize());
            const e = d.deserialize(this._data);
            this.model._applyUndo(
              e.changes,
              e.beforeEOL,
              e.beforeVersionId,
              e.beforeCursorState
            );
          }
          redo() {
            if (o.o.isUri(this.model))
              throw new Error('Invalid SingleModelEditStackElement');
            this._data instanceof d && (this._data = this._data.serialize());
            const e = d.deserialize(this._data);
            this.model._applyRedo(
              e.changes,
              e.afterEOL,
              e.afterVersionId,
              e.afterCursorState
            );
          }
        }
        function u(e) {
          return '\n' === e.getEOL() ? 0 : 1;
        }
        function g(e) {
          return (
            !!e &&
            (e instanceof h ||
              e instanceof
                class {
                  constructor(e, t) {
                    (this.type = 1),
                      (this.label = e),
                      (this._isOpen = !0),
                      (this._editStackElementsArr = t.slice(0)),
                      (this._editStackElementsMap = new Map());
                    for (const e of this._editStackElementsArr) {
                      const t = c(e.resource);
                      this._editStackElementsMap.set(t, e);
                    }
                    this._delegate = null;
                  }
                  get resources() {
                    return this._editStackElementsArr.map((e) => e.resource);
                  }
                  prepareUndoRedo() {
                    if (this._delegate)
                      return this._delegate.prepareUndoRedo(this);
                  }
                  matchesResource(e) {
                    const t = c(e);
                    return this._editStackElementsMap.has(t);
                  }
                  setModel(e) {
                    const t = c(o.o.isUri(e) ? e : e.uri);
                    this._editStackElementsMap.has(t) &&
                      this._editStackElementsMap.get(t).setModel(e);
                  }
                  canAppend(e) {
                    if (!this._isOpen) return !1;
                    const t = c(e.uri);
                    return (
                      !!this._editStackElementsMap.has(t) &&
                      this._editStackElementsMap.get(t).canAppend(e)
                    );
                  }
                  append(e, t, i, n, r) {
                    const s = c(e.uri);
                    this._editStackElementsMap.get(s).append(e, t, i, n, r);
                  }
                  close() {
                    this._isOpen = !1;
                  }
                  undo() {
                    this._isOpen = !1;
                    for (const e of this._editStackElementsArr) e.undo();
                  }
                  redo() {
                    for (const e of this._editStackElementsArr) e.redo();
                  }
                  split() {
                    return this._editStackElementsArr;
                  }
                })
          );
        }
        class f {
          constructor(e, t) {
            (this._model = e), (this._undoRedoService = t);
          }
          pushStackElement() {
            const e = this._undoRedoService.getLastElement(this._model.uri);
            g(e) && e.close();
          }
          clear() {
            this._undoRedoService.removeElements(this._model.uri);
          }
          _getOrCreateEditStackElement(e) {
            const t = this._undoRedoService.getLastElement(this._model.uri);
            if (g(t) && t.canAppend(this._model)) return t;
            const i = new h(this._model, e);
            return this._undoRedoService.pushElement(i), i;
          }
          pushEOL(e) {
            const t = this._getOrCreateEditStackElement(null);
            this._model.setEOL(e),
              t.append(
                this._model,
                [],
                u(this._model),
                this._model.getAlternativeVersionId(),
                null
              );
          }
          pushEditOperation(e, t, i) {
            const n = this._getOrCreateEditStackElement(e),
              r = this._model.applyEdits(t, !0),
              s = f._computeCursorState(i, r),
              o = r.map((e, t) => ({ index: t, textChange: e.textChange }));
            return (
              o.sort((e, t) =>
                e.textChange.oldPosition === t.textChange.oldPosition
                  ? e.index - t.index
                  : e.textChange.oldPosition - t.textChange.oldPosition
              ),
              n.append(
                this._model,
                o.map((e) => e.textChange),
                u(this._model),
                this._model.getAlternativeVersionId(),
                s
              ),
              s
            );
          }
          static _computeCursorState(e, t) {
            try {
              return e ? e(t) : null;
            } catch (e) {
              return (0, r.dL)(e), null;
            }
          }
        }
      },
      60962: (e, t, i) => {
        'use strict';
        i.d(t, { q: () => s, b: () => o });
        var n = i(53060),
          r = i(50072);
        class s {
          constructor(e, t, i, n) {
            (this.oldPosition = e),
              (this.oldText = t),
              (this.newPosition = i),
              (this.newText = n);
          }
          get oldLength() {
            return this.oldText.length;
          }
          get oldEnd() {
            return this.oldPosition + this.oldText.length;
          }
          get newLength() {
            return this.newText.length;
          }
          get newEnd() {
            return this.newPosition + this.newText.length;
          }
          toString() {
            return 0 === this.oldText.length
              ? `(insert@${this.oldPosition} "${this.newText}")`
              : 0 === this.newText.length
              ? `(delete@${this.oldPosition} "${this.oldText}")`
              : `(replace@${this.oldPosition} "${this.oldText}" with "${this.newText}")`;
          }
          static _writeStringSize(e) {
            return 4 + 2 * e.length;
          }
          static _writeString(e, t, i) {
            const r = t.length;
            n.T4(e, r, i), (i += 4);
            for (let s = 0; s < r; s++) n.oq(e, t.charCodeAt(s), i), (i += 2);
            return i;
          }
          static _readString(e, t) {
            const i = n.Ag(e, t);
            return (t += 4), (0, r.kH)(e, t, i);
          }
          writeSize() {
            return (
              8 +
              s._writeStringSize(this.oldText) +
              s._writeStringSize(this.newText)
            );
          }
          write(e, t) {
            return (
              n.T4(e, this.oldPosition, t),
              (t += 4),
              n.T4(e, this.newPosition, t),
              (t += 4),
              (t = s._writeString(e, this.oldText, t)),
              s._writeString(e, this.newText, t)
            );
          }
          static read(e, t, i) {
            const r = n.Ag(e, t);
            t += 4;
            const o = n.Ag(e, t);
            t += 4;
            const a = s._readString(e, t);
            t += s._writeStringSize(a);
            const l = s._readString(e, t);
            return (t += s._writeStringSize(l)), i.push(new s(r, a, o, l)), t;
          }
        }
        function o(e, t) {
          return null === e || 0 === e.length ? t : new a(e, t).compress();
        }
        class a {
          constructor(e, t) {
            (this._prevEdits = e),
              (this._currEdits = t),
              (this._result = []),
              (this._resultLen = 0),
              (this._prevLen = this._prevEdits.length),
              (this._prevDeltaOffset = 0),
              (this._currLen = this._currEdits.length),
              (this._currDeltaOffset = 0);
          }
          compress() {
            let e = 0,
              t = 0,
              i = this._getPrev(e),
              n = this._getCurr(t);
            for (; e < this._prevLen || t < this._currLen; ) {
              if (null === i) {
                this._acceptCurr(n), (n = this._getCurr(++t));
                continue;
              }
              if (null === n) {
                this._acceptPrev(i), (i = this._getPrev(++e));
                continue;
              }
              if (n.oldEnd <= i.newPosition) {
                this._acceptCurr(n), (n = this._getCurr(++t));
                continue;
              }
              if (i.newEnd <= n.oldPosition) {
                this._acceptPrev(i), (i = this._getPrev(++e));
                continue;
              }
              if (n.oldPosition < i.newPosition) {
                const [e, t] = a._splitCurr(n, i.newPosition - n.oldPosition);
                this._acceptCurr(e), (n = t);
                continue;
              }
              if (i.newPosition < n.oldPosition) {
                const [e, t] = a._splitPrev(i, n.oldPosition - i.newPosition);
                this._acceptPrev(e), (i = t);
                continue;
              }
              let r, o;
              if (n.oldEnd === i.newEnd)
                (r = i),
                  (o = n),
                  (i = this._getPrev(++e)),
                  (n = this._getCurr(++t));
              else if (n.oldEnd < i.newEnd) {
                const [e, s] = a._splitPrev(i, n.oldLength);
                (r = e), (o = n), (i = s), (n = this._getCurr(++t));
              } else {
                const [t, s] = a._splitCurr(n, i.newLength);
                (r = i), (o = t), (i = this._getPrev(++e)), (n = s);
              }
              (this._result[this._resultLen++] = new s(
                r.oldPosition,
                r.oldText,
                o.newPosition,
                o.newText
              )),
                (this._prevDeltaOffset += r.newLength - r.oldLength),
                (this._currDeltaOffset += o.newLength - o.oldLength);
            }
            const r = a._merge(this._result);
            return a._removeNoOps(r);
          }
          _acceptCurr(e) {
            (this._result[this._resultLen++] = a._rebaseCurr(
              this._prevDeltaOffset,
              e
            )),
              (this._currDeltaOffset += e.newLength - e.oldLength);
          }
          _getCurr(e) {
            return e < this._currLen ? this._currEdits[e] : null;
          }
          _acceptPrev(e) {
            (this._result[this._resultLen++] = a._rebasePrev(
              this._currDeltaOffset,
              e
            )),
              (this._prevDeltaOffset += e.newLength - e.oldLength);
          }
          _getPrev(e) {
            return e < this._prevLen ? this._prevEdits[e] : null;
          }
          static _rebaseCurr(e, t) {
            return new s(
              t.oldPosition - e,
              t.oldText,
              t.newPosition,
              t.newText
            );
          }
          static _rebasePrev(e, t) {
            return new s(
              t.oldPosition,
              t.oldText,
              t.newPosition + e,
              t.newText
            );
          }
          static _splitPrev(e, t) {
            const i = e.newText.substr(0, t),
              n = e.newText.substr(t);
            return [
              new s(e.oldPosition, e.oldText, e.newPosition, i),
              new s(e.oldEnd, '', e.newPosition + t, n),
            ];
          }
          static _splitCurr(e, t) {
            const i = e.oldText.substr(0, t),
              n = e.oldText.substr(t);
            return [
              new s(e.oldPosition, i, e.newPosition, e.newText),
              new s(e.oldPosition + t, n, e.newEnd, ''),
            ];
          }
          static _merge(e) {
            if (0 === e.length) return e;
            let t = [],
              i = 0,
              n = e[0];
            for (let r = 1; r < e.length; r++) {
              const o = e[r];
              n.oldEnd === o.oldPosition
                ? (n = new s(
                    n.oldPosition,
                    n.oldText + o.oldText,
                    n.newPosition,
                    n.newText + o.newText
                  ))
                : ((t[i++] = n), (n = o));
            }
            return (t[i++] = n), t;
          }
          static _removeNoOps(e) {
            if (0 === e.length) return e;
            let t = [],
              i = 0;
            for (let n = 0; n < e.length; n++) {
              const r = e[n];
              r.oldText !== r.newText && (t[i++] = r);
            }
            return t;
          }
        }
      },
      3411: (e, t, i) => {
        'use strict';
        i.d(t, { qx: () => Ke, yO: () => He });
        var n = i(17301),
          r = i(4669),
          s = i(5976),
          o = i(97295),
          a = i(70666),
          l = i(64141),
          c = i(50187),
          d = i(24314),
          h = i(3860),
          u = i(84973),
          g = i(95215);
        class f {
          constructor() {
            (this.spacesDiff = 0), (this.looksLikeAlignment = !1);
          }
        }
        function p(e, t, i, n, r) {
          let s;
          for (
            r.spacesDiff = 0, r.looksLikeAlignment = !1, s = 0;
            s < t && s < n && e.charCodeAt(s) === i.charCodeAt(s);
            s++
          );
          let o = 0,
            a = 0;
          for (let i = s; i < t; i++) 32 === e.charCodeAt(i) ? o++ : a++;
          let l = 0,
            c = 0;
          for (let e = s; e < n; e++) 32 === i.charCodeAt(e) ? l++ : c++;
          if (o > 0 && a > 0) return;
          if (l > 0 && c > 0) return;
          let d = Math.abs(a - c),
            h = Math.abs(o - l);
          if (0 === d)
            return (
              (r.spacesDiff = h),
              void (
                h > 0 &&
                0 <= l - 1 &&
                l - 1 < e.length &&
                l < i.length &&
                32 !== i.charCodeAt(l) &&
                32 === e.charCodeAt(l - 1) &&
                44 === e.charCodeAt(e.length - 1) &&
                (r.looksLikeAlignment = !0)
              )
            );
          h % d != 0 || (r.spacesDiff = h / d);
        }
        function m(e, t, i) {
          const n = Math.min(e.getLineCount(), 1e4);
          let r = 0,
            s = 0,
            o = '',
            a = 0;
          const l = [2, 4, 6, 8, 3, 5, 7];
          let c = [0, 0, 0, 0, 0, 0, 0, 0, 0],
            d = new f();
          for (let l = 1; l <= n; l++) {
            let n = e.getLineLength(l),
              h = e.getLineContent(l);
            const u = n <= 65536;
            let g = !1,
              f = 0,
              m = 0,
              _ = 0;
            for (let t = 0, i = n; t < i; t++) {
              let i = u ? h.charCodeAt(t) : e.getLineCharCode(l, t);
              if (9 === i) _++;
              else {
                if (32 !== i) {
                  (g = !0), (f = t);
                  break;
                }
                m++;
              }
            }
            if (!g) continue;
            if (
              (_ > 0 ? r++ : m > 1 && s++,
              p(o, a, h, f, d),
              d.looksLikeAlignment && (!i || t !== d.spacesDiff))
            )
              continue;
            let b = d.spacesDiff;
            b <= 8 && c[b]++, (o = h), (a = f);
          }
          let h = i;
          r !== s && (h = r < s);
          let u = t;
          if (h) {
            let e = h ? 0 : 0.1 * n;
            l.forEach((t) => {
              let i = c[t];
              i > e && ((e = i), (u = t));
            }),
              4 === u && c[4] > 0 && c[2] > 0 && c[2] >= c[4] / 2 && (u = 2);
          }
          return { insertSpaces: h, tabSize: u };
        }
        function _(e) {
          return (1 & e.metadata) >>> 0;
        }
        function b(e, t) {
          e.metadata = (254 & e.metadata) | (t << 0);
        }
        function v(e) {
          return (2 & e.metadata) >>> 1 == 1;
        }
        function y(e, t) {
          e.metadata = (253 & e.metadata) | ((t ? 1 : 0) << 1);
        }
        function w(e) {
          return (4 & e.metadata) >>> 2 == 1;
        }
        function C(e, t) {
          e.metadata = (251 & e.metadata) | ((t ? 1 : 0) << 2);
        }
        function S(e) {
          return (8 & e.metadata) >>> 3 == 1;
        }
        function k(e, t) {
          e.metadata = (247 & e.metadata) | ((t ? 1 : 0) << 3);
        }
        function x(e, t) {
          e.metadata = (207 & e.metadata) | (t << 4);
        }
        function L(e, t) {
          e.metadata = (191 & e.metadata) | ((t ? 1 : 0) << 6);
        }
        class M {
          constructor(e, t, i) {
            (this.metadata = 0),
              (this.parent = this),
              (this.left = this),
              (this.right = this),
              b(this, 1),
              (this.start = t),
              (this.end = i),
              (this.delta = 0),
              (this.maxEnd = i),
              (this.id = e),
              (this.ownerId = 0),
              (this.options = null),
              C(this, !1),
              x(this, 1),
              k(this, !1),
              L(this, !1),
              (this.cachedVersionId = 0),
              (this.cachedAbsoluteStart = t),
              (this.cachedAbsoluteEnd = i),
              (this.range = null),
              y(this, !1);
          }
          reset(e, t, i, n) {
            (this.start = t),
              (this.end = i),
              (this.maxEnd = i),
              (this.cachedVersionId = e),
              (this.cachedAbsoluteStart = t),
              (this.cachedAbsoluteEnd = i),
              (this.range = n);
          }
          setOptions(e) {
            this.options = e;
            let t = this.options.className;
            C(
              this,
              'squiggly-error' === t ||
                'squiggly-warning' === t ||
                'squiggly-info' === t
            ),
              x(this, this.options.stickiness),
              k(
                this,
                !(
                  !this.options.overviewRuler ||
                  !this.options.overviewRuler.color
                )
              ),
              L(this, this.options.collapseOnReplaceEdit);
          }
          setCachedOffsets(e, t, i) {
            this.cachedVersionId !== i && (this.range = null),
              (this.cachedVersionId = i),
              (this.cachedAbsoluteStart = e),
              (this.cachedAbsoluteEnd = t);
          }
          detach() {
            (this.parent = null), (this.left = null), (this.right = null);
          }
        }
        const D = new M(null, 0, 0);
        (D.parent = D), (D.left = D), (D.right = D), b(D, 0);
        class N {
          constructor() {
            (this.root = D), (this.requestNormalizeDelta = !1);
          }
          intervalSearch(e, t, i, n, r) {
            return this.root === D
              ? []
              : (function (e, t, i, n, r, s) {
                  let o = e.root,
                    a = 0,
                    l = 0,
                    c = 0,
                    d = 0,
                    h = [],
                    u = 0;
                  for (; o !== D; )
                    if (v(o))
                      y(o.left, !1),
                        y(o.right, !1),
                        o === o.parent.right && (a -= o.parent.delta),
                        (o = o.parent);
                    else {
                      if (!v(o.left)) {
                        if (((l = a + o.maxEnd), l < t)) {
                          y(o, !0);
                          continue;
                        }
                        if (o.left !== D) {
                          o = o.left;
                          continue;
                        }
                      }
                      if (((c = a + o.start), c > i)) y(o, !0);
                      else {
                        if (((d = a + o.end), d >= t)) {
                          o.setCachedOffsets(c, d, s);
                          let e = !0;
                          n && o.ownerId && o.ownerId !== n && (e = !1),
                            r && w(o) && (e = !1),
                            e && (h[u++] = o);
                        }
                        y(o, !0),
                          o.right === D ||
                            v(o.right) ||
                            ((a += o.delta), (o = o.right));
                      }
                    }
                  return y(e.root, !1), h;
                })(this, e, t, i, n, r);
          }
          search(e, t, i) {
            return this.root === D
              ? []
              : (function (e, t, i, n) {
                  let r = e.root,
                    s = 0,
                    o = 0,
                    a = 0,
                    l = [],
                    c = 0;
                  for (; r !== D; ) {
                    if (v(r)) {
                      y(r.left, !1),
                        y(r.right, !1),
                        r === r.parent.right && (s -= r.parent.delta),
                        (r = r.parent);
                      continue;
                    }
                    if (r.left !== D && !v(r.left)) {
                      r = r.left;
                      continue;
                    }
                    (o = s + r.start),
                      (a = s + r.end),
                      r.setCachedOffsets(o, a, n);
                    let e = !0;
                    t && r.ownerId && r.ownerId !== t && (e = !1),
                      i && w(r) && (e = !1),
                      e && (l[c++] = r),
                      y(r, !0),
                      r.right === D ||
                        v(r.right) ||
                        ((s += r.delta), (r = r.right));
                  }
                  return y(e.root, !1), l;
                })(this, e, t, i);
          }
          collectNodesFromOwner(e) {
            return (function (e, t) {
              let i = e.root,
                n = [],
                r = 0;
              for (; i !== D; )
                v(i)
                  ? (y(i.left, !1), y(i.right, !1), (i = i.parent))
                  : i.left === D || v(i.left)
                  ? (i.ownerId === t && (n[r++] = i),
                    y(i, !0),
                    i.right === D || v(i.right) || (i = i.right))
                  : (i = i.left);
              return y(e.root, !1), n;
            })(this, e);
          }
          collectNodesPostOrder() {
            return (function (e) {
              let t = e.root,
                i = [],
                n = 0;
              for (; t !== D; )
                v(t)
                  ? (y(t.left, !1), y(t.right, !1), (t = t.parent))
                  : t.left === D || v(t.left)
                  ? t.right === D || v(t.right)
                    ? ((i[n++] = t), y(t, !0))
                    : (t = t.right)
                  : (t = t.left);
              return y(e.root, !1), i;
            })(this);
          }
          insert(e) {
            I(this, e), this._normalizeDeltaIfNecessary();
          }
          delete(e) {
            O(this, e), this._normalizeDeltaIfNecessary();
          }
          resolveNode(e, t) {
            const i = e;
            let n = 0;
            for (; e !== this.root; )
              e === e.parent.right && (n += e.parent.delta), (e = e.parent);
            const r = i.start + n,
              s = i.end + n;
            i.setCachedOffsets(r, s, t);
          }
          acceptReplace(e, t, i, n) {
            const r = (function (e, t, i) {
              let n = e.root,
                r = 0,
                s = 0,
                o = 0,
                a = 0,
                l = [],
                c = 0;
              for (; n !== D; )
                if (v(n))
                  y(n.left, !1),
                    y(n.right, !1),
                    n === n.parent.right && (r -= n.parent.delta),
                    (n = n.parent);
                else {
                  if (!v(n.left)) {
                    if (((s = r + n.maxEnd), s < t)) {
                      y(n, !0);
                      continue;
                    }
                    if (n.left !== D) {
                      n = n.left;
                      continue;
                    }
                  }
                  (o = r + n.start),
                    o > i
                      ? y(n, !0)
                      : ((a = r + n.end),
                        a >= t && (n.setCachedOffsets(o, a, 0), (l[c++] = n)),
                        y(n, !0),
                        n.right === D ||
                          v(n.right) ||
                          ((r += n.delta), (n = n.right)));
                }
              return y(e.root, !1), l;
            })(this, e, e + t);
            for (let e = 0, t = r.length; e < t; e++) O(this, r[e]);
            this._normalizeDeltaIfNecessary(),
              (function (e, t, i, n) {
                let r = e.root,
                  s = 0,
                  o = 0,
                  a = 0;
                const l = n - (i - t);
                for (; r !== D; )
                  if (v(r))
                    y(r.left, !1),
                      y(r.right, !1),
                      r === r.parent.right && (s -= r.parent.delta),
                      B(r),
                      (r = r.parent);
                  else {
                    if (!v(r.left)) {
                      if (((o = s + r.maxEnd), o < t)) {
                        y(r, !0);
                        continue;
                      }
                      if (r.left !== D) {
                        r = r.left;
                        continue;
                      }
                    }
                    (a = s + r.start),
                      a > i
                        ? ((r.start += l),
                          (r.end += l),
                          (r.delta += l),
                          (r.delta < -1073741824 || r.delta > 1073741824) &&
                            (e.requestNormalizeDelta = !0),
                          y(r, !0))
                        : (y(r, !0),
                          r.right === D ||
                            v(r.right) ||
                            ((s += r.delta), (r = r.right)));
                  }
                y(e.root, !1);
              })(this, e, e + t, i),
              this._normalizeDeltaIfNecessary();
            for (let s = 0, o = r.length; s < o; s++) {
              const o = r[s];
              (o.start = o.cachedAbsoluteStart),
                (o.end = o.cachedAbsoluteEnd),
                T(o, e, e + t, i, n),
                (o.maxEnd = o.end),
                I(this, o);
            }
            this._normalizeDeltaIfNecessary();
          }
          _normalizeDeltaIfNecessary() {
            this.requestNormalizeDelta &&
              ((this.requestNormalizeDelta = !1),
              (function (e) {
                let t = e.root,
                  i = 0;
                for (; t !== D; )
                  t.left === D || v(t.left)
                    ? t.right === D || v(t.right)
                      ? ((t.start = i + t.start),
                        (t.end = i + t.end),
                        (t.delta = 0),
                        B(t),
                        y(t, !0),
                        y(t.left, !1),
                        y(t.right, !1),
                        t === t.parent.right && (i -= t.parent.delta),
                        (t = t.parent))
                      : ((i += t.delta), (t = t.right))
                    : (t = t.left);
                y(e.root, !1);
              })(this));
          }
        }
        function E(e, t, i, n) {
          return e < i || (!(e > i) && 1 !== n && (2 === n || t));
        }
        function T(e, t, i, n, r) {
          const s = (function (e) {
              return (48 & e.metadata) >>> 4;
            })(e),
            o = 0 === s || 2 === s,
            a = 1 === s || 2 === s,
            l = i - t,
            c = n,
            d = Math.min(l, c),
            h = e.start;
          let u = !1;
          const g = e.end;
          let f = !1;
          t <= h &&
            g <= i &&
            (function (e) {
              return (64 & e.metadata) >>> 6 == 1;
            })(e) &&
            ((e.start = t), (u = !0), (e.end = t), (f = !0));
          {
            const e = r ? 1 : l > 0 ? 2 : 0;
            !u && E(h, o, t, e) && (u = !0), !f && E(g, a, t, e) && (f = !0);
          }
          if (d > 0 && !r) {
            const e = l > c ? 2 : 0;
            !u && E(h, o, t + d, e) && (u = !0),
              !f && E(g, a, t + d, e) && (f = !0);
          }
          {
            const n = r ? 1 : 0;
            !u && E(h, o, i, n) && ((e.start = t + c), (u = !0)),
              !f && E(g, a, i, n) && ((e.end = t + c), (f = !0));
          }
          const p = c - l;
          u || (e.start = Math.max(0, h + p)),
            f || (e.end = Math.max(0, g + p)),
            e.start > e.end && (e.end = e.start);
        }
        function I(e, t) {
          if (e.root === D)
            return (
              (t.parent = D),
              (t.left = D),
              (t.right = D),
              b(t, 0),
              (e.root = t),
              e.root
            );
          !(function (e, t) {
            let i = 0,
              n = e.root;
            const r = t.start,
              s = t.end;
            for (;;)
              if (
                ((o = r),
                (a = s),
                (l = n.start + i),
                (c = n.end + i),
                (o === l ? a - c : o - l) < 0)
              ) {
                if (n.left === D) {
                  (t.start -= i), (t.end -= i), (t.maxEnd -= i), (n.left = t);
                  break;
                }
                n = n.left;
              } else {
                if (n.right === D) {
                  (t.start -= i + n.delta),
                    (t.end -= i + n.delta),
                    (t.maxEnd -= i + n.delta),
                    (n.right = t);
                  break;
                }
                (i += n.delta), (n = n.right);
              }
            var o, a, l, c;
            (t.parent = n), (t.left = D), (t.right = D), b(t, 1);
          })(e, t),
            W(t.parent);
          let i = t;
          for (; i !== e.root && 1 === _(i.parent); )
            if (i.parent === i.parent.parent.left) {
              const t = i.parent.parent.right;
              1 === _(t)
                ? (b(i.parent, 0),
                  b(t, 0),
                  b(i.parent.parent, 1),
                  (i = i.parent.parent))
                : (i === i.parent.right && ((i = i.parent), R(e, i)),
                  b(i.parent, 0),
                  b(i.parent.parent, 1),
                  P(e, i.parent.parent));
            } else {
              const t = i.parent.parent.left;
              1 === _(t)
                ? (b(i.parent, 0),
                  b(t, 0),
                  b(i.parent.parent, 1),
                  (i = i.parent.parent))
                : (i === i.parent.left && ((i = i.parent), P(e, i)),
                  b(i.parent, 0),
                  b(i.parent.parent, 1),
                  R(e, i.parent.parent));
            }
          return b(e.root, 0), t;
        }
        function O(e, t) {
          let i, n;
          if (
            (t.left === D
              ? ((i = t.right),
                (n = t),
                (i.delta += t.delta),
                (i.delta < -1073741824 || i.delta > 1073741824) &&
                  (e.requestNormalizeDelta = !0),
                (i.start += t.delta),
                (i.end += t.delta))
              : t.right === D
              ? ((i = t.left), (n = t))
              : ((n = (function (e) {
                  for (; e.left !== D; ) e = e.left;
                  return e;
                })(t.right)),
                (i = n.right),
                (i.start += n.delta),
                (i.end += n.delta),
                (i.delta += n.delta),
                (i.delta < -1073741824 || i.delta > 1073741824) &&
                  (e.requestNormalizeDelta = !0),
                (n.start += t.delta),
                (n.end += t.delta),
                (n.delta = t.delta),
                (n.delta < -1073741824 || n.delta > 1073741824) &&
                  (e.requestNormalizeDelta = !0)),
            n === e.root)
          )
            return (
              (e.root = i),
              b(i, 0),
              t.detach(),
              A(),
              B(i),
              void (e.root.parent = D)
            );
          let r,
            s = 1 === _(n);
          if (
            (n === n.parent.left ? (n.parent.left = i) : (n.parent.right = i),
            n === t
              ? (i.parent = n.parent)
              : (n.parent === t ? (i.parent = n) : (i.parent = n.parent),
                (n.left = t.left),
                (n.right = t.right),
                (n.parent = t.parent),
                b(n, _(t)),
                t === e.root
                  ? (e.root = n)
                  : t === t.parent.left
                  ? (t.parent.left = n)
                  : (t.parent.right = n),
                n.left !== D && (n.left.parent = n),
                n.right !== D && (n.right.parent = n)),
            t.detach(),
            s)
          )
            return W(i.parent), n !== t && (W(n), W(n.parent)), void A();
          for (
            W(i), W(i.parent), n !== t && (W(n), W(n.parent));
            i !== e.root && 0 === _(i);

          )
            i === i.parent.left
              ? ((r = i.parent.right),
                1 === _(r) &&
                  (b(r, 0),
                  b(i.parent, 1),
                  R(e, i.parent),
                  (r = i.parent.right)),
                0 === _(r.left) && 0 === _(r.right)
                  ? (b(r, 1), (i = i.parent))
                  : (0 === _(r.right) &&
                      (b(r.left, 0), b(r, 1), P(e, r), (r = i.parent.right)),
                    b(r, _(i.parent)),
                    b(i.parent, 0),
                    b(r.right, 0),
                    R(e, i.parent),
                    (i = e.root)))
              : ((r = i.parent.left),
                1 === _(r) &&
                  (b(r, 0),
                  b(i.parent, 1),
                  P(e, i.parent),
                  (r = i.parent.left)),
                0 === _(r.left) && 0 === _(r.right)
                  ? (b(r, 1), (i = i.parent))
                  : (0 === _(r.left) &&
                      (b(r.right, 0), b(r, 1), R(e, r), (r = i.parent.left)),
                    b(r, _(i.parent)),
                    b(i.parent, 0),
                    b(r.left, 0),
                    P(e, i.parent),
                    (i = e.root)));
          b(i, 0), A();
        }
        function A() {
          (D.parent = D), (D.delta = 0), (D.start = 0), (D.end = 0);
        }
        function R(e, t) {
          const i = t.right;
          (i.delta += t.delta),
            (i.delta < -1073741824 || i.delta > 1073741824) &&
              (e.requestNormalizeDelta = !0),
            (i.start += t.delta),
            (i.end += t.delta),
            (t.right = i.left),
            i.left !== D && (i.left.parent = t),
            (i.parent = t.parent),
            t.parent === D
              ? (e.root = i)
              : t === t.parent.left
              ? (t.parent.left = i)
              : (t.parent.right = i),
            (i.left = t),
            (t.parent = i),
            B(t),
            B(i);
        }
        function P(e, t) {
          const i = t.left;
          (t.delta -= i.delta),
            (t.delta < -1073741824 || t.delta > 1073741824) &&
              (e.requestNormalizeDelta = !0),
            (t.start -= i.delta),
            (t.end -= i.delta),
            (t.left = i.right),
            i.right !== D && (i.right.parent = t),
            (i.parent = t.parent),
            t.parent === D
              ? (e.root = i)
              : t === t.parent.right
              ? (t.parent.right = i)
              : (t.parent.left = i),
            (i.right = t),
            (t.parent = i),
            B(t),
            B(i);
        }
        function F(e) {
          let t = e.end;
          if (e.left !== D) {
            const i = e.left.maxEnd;
            i > t && (t = i);
          }
          if (e.right !== D) {
            const i = e.right.maxEnd + e.delta;
            i > t && (t = i);
          }
          return t;
        }
        function B(e) {
          e.maxEnd = F(e);
        }
        function W(e) {
          for (; e !== D; ) {
            const t = F(e);
            if (e.maxEnd === t) return;
            (e.maxEnd = t), (e = e.parent);
          }
        }
        class Y {
          constructor(e, t) {
            (this.piece = e),
              (this.color = t),
              (this.size_left = 0),
              (this.lf_left = 0),
              (this.parent = this),
              (this.left = this),
              (this.right = this);
          }
          next() {
            if (this.right !== H) return j(this.right);
            let e = this;
            for (; e.parent !== H && e.parent.left !== e; ) e = e.parent;
            return e.parent === H ? H : e.parent;
          }
          prev() {
            if (this.left !== H) return V(this.left);
            let e = this;
            for (; e.parent !== H && e.parent.right !== e; ) e = e.parent;
            return e.parent === H ? H : e.parent;
          }
          detach() {
            (this.parent = null), (this.left = null), (this.right = null);
          }
        }
        const H = new Y(null, 0);
        function j(e) {
          for (; e.left !== H; ) e = e.left;
          return e;
        }
        function V(e) {
          for (; e.right !== H; ) e = e.right;
          return e;
        }
        function z(e) {
          return e === H ? 0 : e.size_left + e.piece.length + z(e.right);
        }
        function U(e) {
          return e === H ? 0 : e.lf_left + e.piece.lineFeedCnt + U(e.right);
        }
        function $() {
          H.parent = H;
        }
        function K(e, t) {
          let i = t.right;
          (i.size_left += t.size_left + (t.piece ? t.piece.length : 0)),
            (i.lf_left += t.lf_left + (t.piece ? t.piece.lineFeedCnt : 0)),
            (t.right = i.left),
            i.left !== H && (i.left.parent = t),
            (i.parent = t.parent),
            t.parent === H
              ? (e.root = i)
              : t.parent.left === t
              ? (t.parent.left = i)
              : (t.parent.right = i),
            (i.left = t),
            (t.parent = i);
        }
        function q(e, t) {
          let i = t.left;
          (t.left = i.right),
            i.right !== H && (i.right.parent = t),
            (i.parent = t.parent),
            (t.size_left -= i.size_left + (i.piece ? i.piece.length : 0)),
            (t.lf_left -= i.lf_left + (i.piece ? i.piece.lineFeedCnt : 0)),
            t.parent === H
              ? (e.root = i)
              : t === t.parent.right
              ? (t.parent.right = i)
              : (t.parent.left = i),
            (i.right = t),
            (t.parent = i);
        }
        function G(e, t) {
          let i, n;
          if (
            (t.left === H
              ? ((n = t), (i = n.right))
              : t.right === H
              ? ((n = t), (i = n.left))
              : ((n = j(t.right)), (i = n.right)),
            n === e.root)
          )
            return (
              (e.root = i),
              (i.color = 0),
              t.detach(),
              $(),
              void (e.root.parent = H)
            );
          let r,
            s = 1 === n.color;
          if (
            (n === n.parent.left ? (n.parent.left = i) : (n.parent.right = i),
            n === t
              ? ((i.parent = n.parent), Q(e, i))
              : (n.parent === t ? (i.parent = n) : (i.parent = n.parent),
                Q(e, i),
                (n.left = t.left),
                (n.right = t.right),
                (n.parent = t.parent),
                (n.color = t.color),
                t === e.root
                  ? (e.root = n)
                  : t === t.parent.left
                  ? (t.parent.left = n)
                  : (t.parent.right = n),
                n.left !== H && (n.left.parent = n),
                n.right !== H && (n.right.parent = n),
                (n.size_left = t.size_left),
                (n.lf_left = t.lf_left),
                Q(e, n)),
            t.detach(),
            i.parent.left === i)
          ) {
            let t = z(i),
              n = U(i);
            if (t !== i.parent.size_left || n !== i.parent.lf_left) {
              let r = t - i.parent.size_left,
                s = n - i.parent.lf_left;
              (i.parent.size_left = t),
                (i.parent.lf_left = n),
                J(e, i.parent, r, s);
            }
          }
          if ((Q(e, i.parent), s)) $();
          else {
            for (; i !== e.root && 0 === i.color; )
              i === i.parent.left
                ? ((r = i.parent.right),
                  1 === r.color &&
                    ((r.color = 0),
                    (i.parent.color = 1),
                    K(e, i.parent),
                    (r = i.parent.right)),
                  0 === r.left.color && 0 === r.right.color
                    ? ((r.color = 1), (i = i.parent))
                    : (0 === r.right.color &&
                        ((r.left.color = 0),
                        (r.color = 1),
                        q(e, r),
                        (r = i.parent.right)),
                      (r.color = i.parent.color),
                      (i.parent.color = 0),
                      (r.right.color = 0),
                      K(e, i.parent),
                      (i = e.root)))
                : ((r = i.parent.left),
                  1 === r.color &&
                    ((r.color = 0),
                    (i.parent.color = 1),
                    q(e, i.parent),
                    (r = i.parent.left)),
                  0 === r.left.color && 0 === r.right.color
                    ? ((r.color = 1), (i = i.parent))
                    : (0 === r.left.color &&
                        ((r.right.color = 0),
                        (r.color = 1),
                        K(e, r),
                        (r = i.parent.left)),
                      (r.color = i.parent.color),
                      (i.parent.color = 0),
                      (r.left.color = 0),
                      q(e, i.parent),
                      (i = e.root)));
            (i.color = 0), $();
          }
        }
        function Z(e, t) {
          for (Q(e, t); t !== e.root && 1 === t.parent.color; )
            if (t.parent === t.parent.parent.left) {
              const i = t.parent.parent.right;
              1 === i.color
                ? ((t.parent.color = 0),
                  (i.color = 0),
                  (t.parent.parent.color = 1),
                  (t = t.parent.parent))
                : (t === t.parent.right && K(e, (t = t.parent)),
                  (t.parent.color = 0),
                  (t.parent.parent.color = 1),
                  q(e, t.parent.parent));
            } else {
              const i = t.parent.parent.left;
              1 === i.color
                ? ((t.parent.color = 0),
                  (i.color = 0),
                  (t.parent.parent.color = 1),
                  (t = t.parent.parent))
                : (t === t.parent.left && q(e, (t = t.parent)),
                  (t.parent.color = 0),
                  (t.parent.parent.color = 1),
                  K(e, t.parent.parent));
            }
          e.root.color = 0;
        }
        function J(e, t, i, n) {
          for (; t !== e.root && t !== H; )
            t.parent.left === t &&
              ((t.parent.size_left += i), (t.parent.lf_left += n)),
              (t = t.parent);
        }
        function Q(e, t) {
          let i = 0,
            n = 0;
          if (t !== e.root) {
            if (0 === i) {
              for (; t !== e.root && t === t.parent.right; ) t = t.parent;
              if (t === e.root) return;
              (i = z((t = t.parent).left) - t.size_left),
                (n = U(t.left) - t.lf_left),
                (t.size_left += i),
                (t.lf_left += n);
            }
            for (; t !== e.root && (0 !== i || 0 !== n); )
              t.parent.left === t &&
                ((t.parent.size_left += i), (t.parent.lf_left += n)),
                (t = t.parent);
          }
        }
        (H.parent = H), (H.left = H), (H.right = H), (H.color = 0);
        var X = i(77277);
        const ee = 65535;
        function te(e) {
          let t;
          return (
            (t =
              e[e.length - 1] < 65536
                ? new Uint16Array(e.length)
                : new Uint32Array(e.length)),
            t.set(e, 0),
            t
          );
        }
        class ie {
          constructor(e, t, i, n, r) {
            (this.lineStarts = e),
              (this.cr = t),
              (this.lf = i),
              (this.crlf = n),
              (this.isBasicASCII = r);
          }
        }
        function ne(e, t = !0) {
          let i = [0],
            n = 1;
          for (let t = 0, r = e.length; t < r; t++) {
            const s = e.charCodeAt(t);
            13 === s
              ? t + 1 < r && 10 === e.charCodeAt(t + 1)
                ? ((i[n++] = t + 2), t++)
                : (i[n++] = t + 1)
              : 10 === s && (i[n++] = t + 1);
          }
          return t ? te(i) : i;
        }
        class re {
          constructor(e, t, i, n, r) {
            (this.bufferIndex = e),
              (this.start = t),
              (this.end = i),
              (this.lineFeedCnt = n),
              (this.length = r);
          }
        }
        class se {
          constructor(e, t) {
            (this.buffer = e), (this.lineStarts = t);
          }
        }
        class oe {
          constructor(e, t) {
            (this._pieces = []),
              (this._tree = e),
              (this._BOM = t),
              (this._index = 0),
              e.root !== H &&
                e.iterate(
                  e.root,
                  (e) => (e !== H && this._pieces.push(e.piece), !0)
                );
          }
          read() {
            return 0 === this._pieces.length
              ? 0 === this._index
                ? (this._index++, this._BOM)
                : null
              : this._index > this._pieces.length - 1
              ? null
              : 0 === this._index
              ? this._BOM +
                this._tree.getPieceContent(this._pieces[this._index++])
              : this._tree.getPieceContent(this._pieces[this._index++]);
          }
        }
        class ae {
          constructor(e) {
            (this._limit = e), (this._cache = []);
          }
          get(e) {
            for (let t = this._cache.length - 1; t >= 0; t--) {
              let i = this._cache[t];
              if (
                i.nodeStartOffset <= e &&
                i.nodeStartOffset + i.node.piece.length >= e
              )
                return i;
            }
            return null;
          }
          get2(e) {
            for (let t = this._cache.length - 1; t >= 0; t--) {
              let i = this._cache[t];
              if (
                i.nodeStartLineNumber &&
                i.nodeStartLineNumber < e &&
                i.nodeStartLineNumber + i.node.piece.lineFeedCnt >= e
              )
                return i;
            }
            return null;
          }
          set(e) {
            this._cache.length >= this._limit && this._cache.shift(),
              this._cache.push(e);
          }
          validate(e) {
            let t = !1,
              i = this._cache;
            for (let n = 0; n < i.length; n++) {
              let r = i[n];
              (null === r.node.parent || r.nodeStartOffset >= e) &&
                ((i[n] = null), (t = !0));
            }
            if (t) {
              let e = [];
              for (const t of i) null !== t && e.push(t);
              this._cache = e;
            }
          }
        }
        class le {
          constructor(e, t, i) {
            this.create(e, t, i);
          }
          create(e, t, i) {
            (this._buffers = [new se('', [0])]),
              (this._lastChangeBufferPos = { line: 0, column: 0 }),
              (this.root = H),
              (this._lineCnt = 1),
              (this._length = 0),
              (this._EOL = t),
              (this._EOLLength = t.length),
              (this._EOLNormalized = i);
            let n = null;
            for (let t = 0, i = e.length; t < i; t++)
              if (e[t].buffer.length > 0) {
                e[t].lineStarts || (e[t].lineStarts = ne(e[t].buffer));
                let i = new re(
                  t + 1,
                  { line: 0, column: 0 },
                  {
                    line: e[t].lineStarts.length - 1,
                    column:
                      e[t].buffer.length -
                      e[t].lineStarts[e[t].lineStarts.length - 1],
                  },
                  e[t].lineStarts.length - 1,
                  e[t].buffer.length
                );
                this._buffers.push(e[t]), (n = this.rbInsertRight(n, i));
              }
            (this._searchCache = new ae(1)),
              (this._lastVisitedLine = { lineNumber: 0, value: '' }),
              this.computeBufferMetadata();
          }
          normalizeEOL(e) {
            let t = 65535 - Math.floor(21845),
              i = 2 * t,
              n = '',
              r = 0,
              s = [];
            if (
              (this.iterate(this.root, (o) => {
                let a = this.getNodeContent(o),
                  l = a.length;
                if (r <= t || r + l < i) return (n += a), (r += l), !0;
                let c = n.replace(/\r\n|\r|\n/g, e);
                return s.push(new se(c, ne(c))), (n = a), (r = l), !0;
              }),
              r > 0)
            ) {
              let t = n.replace(/\r\n|\r|\n/g, e);
              s.push(new se(t, ne(t)));
            }
            this.create(s, e, !0);
          }
          getEOL() {
            return this._EOL;
          }
          setEOL(e) {
            (this._EOL = e),
              (this._EOLLength = this._EOL.length),
              this.normalizeEOL(e);
          }
          createSnapshot(e) {
            return new oe(this, e);
          }
          getOffsetAt(e, t) {
            let i = 0,
              n = this.root;
            for (; n !== H; )
              if (n.left !== H && n.lf_left + 1 >= e) n = n.left;
              else {
                if (n.lf_left + n.piece.lineFeedCnt + 1 >= e)
                  return (
                    (i += n.size_left),
                    i + (this.getAccumulatedValue(n, e - n.lf_left - 2) + t - 1)
                  );
                (e -= n.lf_left + n.piece.lineFeedCnt),
                  (i += n.size_left + n.piece.length),
                  (n = n.right);
              }
            return i;
          }
          getPositionAt(e) {
            (e = Math.floor(e)), (e = Math.max(0, e));
            let t = this.root,
              i = 0,
              n = e;
            for (; t !== H; )
              if (0 !== t.size_left && t.size_left >= e) t = t.left;
              else {
                if (t.size_left + t.piece.length >= e) {
                  let r = this.getIndexOf(t, e - t.size_left);
                  if (((i += t.lf_left + r.index), 0 === r.index)) {
                    let e = n - this.getOffsetAt(i + 1, 1);
                    return new c.L(i + 1, e + 1);
                  }
                  return new c.L(i + 1, r.remainder + 1);
                }
                if (
                  ((e -= t.size_left + t.piece.length),
                  (i += t.lf_left + t.piece.lineFeedCnt),
                  t.right === H)
                ) {
                  let t = n - e - this.getOffsetAt(i + 1, 1);
                  return new c.L(i + 1, t + 1);
                }
                t = t.right;
              }
            return new c.L(1, 1);
          }
          getValueInRange(e, t) {
            if (
              e.startLineNumber === e.endLineNumber &&
              e.startColumn === e.endColumn
            )
              return '';
            let i = this.nodeAt2(e.startLineNumber, e.startColumn),
              n = this.nodeAt2(e.endLineNumber, e.endColumn),
              r = this.getValueInRange2(i, n);
            return t
              ? t === this._EOL &&
                this._EOLNormalized &&
                t === this.getEOL() &&
                this._EOLNormalized
                ? r
                : r.replace(/\r\n|\r|\n/g, t)
              : r;
          }
          getValueInRange2(e, t) {
            if (e.node === t.node) {
              let i = e.node,
                n = this._buffers[i.piece.bufferIndex].buffer,
                r = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);
              return n.substring(r + e.remainder, r + t.remainder);
            }
            let i = e.node,
              n = this._buffers[i.piece.bufferIndex].buffer,
              r = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start),
              s = n.substring(r + e.remainder, r + i.piece.length);
            for (i = i.next(); i !== H; ) {
              let e = this._buffers[i.piece.bufferIndex].buffer,
                n = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);
              if (i === t.node) {
                s += e.substring(n, n + t.remainder);
                break;
              }
              (s += e.substr(n, i.piece.length)), (i = i.next());
            }
            return s;
          }
          getLinesContent() {
            let e = [],
              t = 0,
              i = '',
              n = !1;
            return (
              this.iterate(this.root, (r) => {
                if (r === H) return !0;
                const s = r.piece;
                let o = s.length;
                if (0 === o) return !0;
                const a = this._buffers[s.bufferIndex].buffer,
                  l = this._buffers[s.bufferIndex].lineStarts,
                  c = s.start.line,
                  d = s.end.line;
                let h = l[c] + s.start.column;
                if (
                  n &&
                  (10 === a.charCodeAt(h) && (h++, o--),
                  (e[t++] = i),
                  (i = ''),
                  (n = !1),
                  0 === o)
                )
                  return !0;
                if (c === d)
                  return (
                    this._EOLNormalized || 13 !== a.charCodeAt(h + o - 1)
                      ? (i += a.substr(h, o))
                      : ((n = !0), (i += a.substr(h, o - 1))),
                    !0
                  );
                (i += this._EOLNormalized
                  ? a.substring(h, Math.max(h, l[c + 1] - this._EOLLength))
                  : a.substring(h, l[c + 1]).replace(/(\r\n|\r|\n)$/, '')),
                  (e[t++] = i);
                for (let n = c + 1; n < d; n++)
                  (i = this._EOLNormalized
                    ? a.substring(l[n], l[n + 1] - this._EOLLength)
                    : a.substring(l[n], l[n + 1]).replace(/(\r\n|\r|\n)$/, '')),
                    (e[t++] = i);
                return (
                  this._EOLNormalized ||
                  13 !== a.charCodeAt(l[d] + s.end.column - 1)
                    ? (i = a.substr(l[d], s.end.column))
                    : ((n = !0),
                      0 === s.end.column
                        ? t--
                        : (i = a.substr(l[d], s.end.column - 1))),
                  !0
                );
              }),
              n && ((e[t++] = i), (i = '')),
              (e[t++] = i),
              e
            );
          }
          getLength() {
            return this._length;
          }
          getLineCount() {
            return this._lineCnt;
          }
          getLineContent(e) {
            return (
              this._lastVisitedLine.lineNumber === e ||
                ((this._lastVisitedLine.lineNumber = e),
                e === this._lineCnt
                  ? (this._lastVisitedLine.value = this.getLineRawContent(e))
                  : this._EOLNormalized
                  ? (this._lastVisitedLine.value = this.getLineRawContent(
                      e,
                      this._EOLLength
                    ))
                  : (this._lastVisitedLine.value = this.getLineRawContent(
                      e
                    ).replace(/(\r\n|\r|\n)$/, ''))),
              this._lastVisitedLine.value
            );
          }
          _getCharCode(e) {
            if (e.remainder === e.node.piece.length) {
              let t = e.node.next();
              if (!t) return 0;
              let i = this._buffers[t.piece.bufferIndex],
                n = this.offsetInBuffer(t.piece.bufferIndex, t.piece.start);
              return i.buffer.charCodeAt(n);
            }
            {
              let t = this._buffers[e.node.piece.bufferIndex],
                i =
                  this.offsetInBuffer(
                    e.node.piece.bufferIndex,
                    e.node.piece.start
                  ) + e.remainder;
              return t.buffer.charCodeAt(i);
            }
          }
          getLineCharCode(e, t) {
            let i = this.nodeAt2(e, t + 1);
            return this._getCharCode(i);
          }
          getLineLength(e) {
            if (e === this.getLineCount()) {
              let t = this.getOffsetAt(e, 1);
              return this.getLength() - t;
            }
            return (
              this.getOffsetAt(e + 1, 1) -
              this.getOffsetAt(e, 1) -
              this._EOLLength
            );
          }
          findMatchesInNode(e, t, i, n, r, s, o, a, l, c, h) {
            let u,
              g,
              f,
              p = this._buffers[e.piece.bufferIndex],
              m = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start),
              _ = this.offsetInBuffer(e.piece.bufferIndex, r),
              b = this.offsetInBuffer(e.piece.bufferIndex, s),
              v = { line: 0, column: 0 };
            t._wordSeparators
              ? ((g = p.buffer.substring(_, b)), (f = (e) => e + _), t.reset(0))
              : ((g = p.buffer), (f = (e) => e), t.reset(_));
            do {
              if (((u = t.next(g)), u)) {
                if (f(u.index) >= b) return c;
                this.positionInBuffer(e, f(u.index) - m, v);
                let t = this.getLineFeedCnt(e.piece.bufferIndex, r, v),
                  s =
                    v.line === r.line ? v.column - r.column + n : v.column + 1,
                  o = s + u[0].length;
                if (
                  ((h[c++] = (0, X.iE)(new d.e(i + t, s, i + t, o), u, a)),
                  f(u.index) + u[0].length >= b)
                )
                  return c;
                if (c >= l) return c;
              }
            } while (u);
            return c;
          }
          findMatchesLineByLine(e, t, i, n) {
            const r = [];
            let s = 0;
            const o = new X.sz(t.wordSeparators, t.regex);
            let a = this.nodeAt2(e.startLineNumber, e.startColumn);
            if (null === a) return [];
            let l = this.nodeAt2(e.endLineNumber, e.endColumn);
            if (null === l) return [];
            let c = this.positionInBuffer(a.node, a.remainder),
              d = this.positionInBuffer(l.node, l.remainder);
            if (a.node === l.node)
              return (
                this.findMatchesInNode(
                  a.node,
                  o,
                  e.startLineNumber,
                  e.startColumn,
                  c,
                  d,
                  t,
                  i,
                  n,
                  s,
                  r
                ),
                r
              );
            let h = e.startLineNumber,
              u = a.node;
            for (; u !== l.node; ) {
              let l = this.getLineFeedCnt(u.piece.bufferIndex, c, u.piece.end);
              if (l >= 1) {
                let a = this._buffers[u.piece.bufferIndex].lineStarts,
                  d = this.offsetInBuffer(u.piece.bufferIndex, u.piece.start),
                  g = a[c.line + l],
                  f = h === e.startLineNumber ? e.startColumn : 1;
                if (
                  ((s = this.findMatchesInNode(
                    u,
                    o,
                    h,
                    f,
                    c,
                    this.positionInBuffer(u, g - d),
                    t,
                    i,
                    n,
                    s,
                    r
                  )),
                  s >= n)
                )
                  return r;
                h += l;
              }
              let d = h === e.startLineNumber ? e.startColumn - 1 : 0;
              if (h === e.endLineNumber) {
                const a = this.getLineContent(h).substring(d, e.endColumn - 1);
                return (
                  (s = this._findMatchesInLine(
                    t,
                    o,
                    a,
                    e.endLineNumber,
                    d,
                    s,
                    r,
                    i,
                    n
                  )),
                  r
                );
              }
              if (
                ((s = this._findMatchesInLine(
                  t,
                  o,
                  this.getLineContent(h).substr(d),
                  h,
                  d,
                  s,
                  r,
                  i,
                  n
                )),
                s >= n)
              )
                return r;
              h++,
                (a = this.nodeAt2(h, 1)),
                (u = a.node),
                (c = this.positionInBuffer(a.node, a.remainder));
            }
            if (h === e.endLineNumber) {
              let a = h === e.startLineNumber ? e.startColumn - 1 : 0;
              const l = this.getLineContent(h).substring(a, e.endColumn - 1);
              return (
                (s = this._findMatchesInLine(
                  t,
                  o,
                  l,
                  e.endLineNumber,
                  a,
                  s,
                  r,
                  i,
                  n
                )),
                r
              );
            }
            let g = h === e.startLineNumber ? e.startColumn : 1;
            return (
              (s = this.findMatchesInNode(
                l.node,
                o,
                h,
                g,
                c,
                d,
                t,
                i,
                n,
                s,
                r
              )),
              r
            );
          }
          _findMatchesInLine(e, t, i, n, r, s, o, a, l) {
            const c = e.wordSeparators;
            if (!a && e.simpleSearch) {
              const t = e.simpleSearch,
                a = t.length,
                h = i.length;
              let g = -a;
              for (; -1 !== (g = i.indexOf(t, g + a)); )
                if (
                  (!c || (0, X.cM)(c, i, h, g, a)) &&
                  ((o[s++] = new u.tk(
                    new d.e(n, g + 1 + r, n, g + 1 + a + r),
                    null
                  )),
                  s >= l)
                )
                  return s;
              return s;
            }
            let h;
            t.reset(0);
            do {
              if (
                ((h = t.next(i)),
                h &&
                  ((o[s++] = (0, X.iE)(
                    new d.e(
                      n,
                      h.index + 1 + r,
                      n,
                      h.index + 1 + h[0].length + r
                    ),
                    h,
                    a
                  )),
                  s >= l))
              )
                return s;
            } while (h);
            return s;
          }
          insert(e, t, i = !1) {
            if (
              ((this._EOLNormalized = this._EOLNormalized && i),
              (this._lastVisitedLine.lineNumber = 0),
              (this._lastVisitedLine.value = ''),
              this.root !== H)
            ) {
              let { node: i, remainder: n, nodeStartOffset: r } = this.nodeAt(
                  e
                ),
                s = i.piece,
                o = s.bufferIndex,
                a = this.positionInBuffer(i, n);
              if (
                0 === i.piece.bufferIndex &&
                s.end.line === this._lastChangeBufferPos.line &&
                s.end.column === this._lastChangeBufferPos.column &&
                r + s.length === e &&
                t.length < ee
              )
                return (
                  this.appendToNode(i, t), void this.computeBufferMetadata()
                );
              if (r === e)
                this.insertContentToNodeLeft(t, i),
                  this._searchCache.validate(e);
              else if (r + i.piece.length > e) {
                let e = [],
                  r = new re(
                    s.bufferIndex,
                    a,
                    s.end,
                    this.getLineFeedCnt(s.bufferIndex, a, s.end),
                    this.offsetInBuffer(o, s.end) - this.offsetInBuffer(o, a)
                  );
                if (
                  this.shouldCheckCRLF() &&
                  this.endWithCR(t) &&
                  10 === this.nodeCharCodeAt(i, n)
                ) {
                  let e = { line: r.start.line + 1, column: 0 };
                  (r = new re(
                    r.bufferIndex,
                    e,
                    r.end,
                    this.getLineFeedCnt(r.bufferIndex, e, r.end),
                    r.length - 1
                  )),
                    (t += '\n');
                }
                if (this.shouldCheckCRLF() && this.startWithLF(t))
                  if (13 === this.nodeCharCodeAt(i, n - 1)) {
                    let r = this.positionInBuffer(i, n - 1);
                    this.deleteNodeTail(i, r),
                      (t = '\r' + t),
                      0 === i.piece.length && e.push(i);
                  } else this.deleteNodeTail(i, a);
                else this.deleteNodeTail(i, a);
                let l = this.createNewPieces(t);
                r.length > 0 && this.rbInsertRight(i, r);
                let c = i;
                for (let e = 0; e < l.length; e++)
                  c = this.rbInsertRight(c, l[e]);
                this.deleteNodes(e);
              } else this.insertContentToNodeRight(t, i);
            } else {
              let e = this.createNewPieces(t),
                i = this.rbInsertLeft(null, e[0]);
              for (let t = 1; t < e.length; t++)
                i = this.rbInsertRight(i, e[t]);
            }
            this.computeBufferMetadata();
          }
          delete(e, t) {
            if (
              ((this._lastVisitedLine.lineNumber = 0),
              (this._lastVisitedLine.value = ''),
              t <= 0 || this.root === H)
            )
              return;
            let i = this.nodeAt(e),
              n = this.nodeAt(e + t),
              r = i.node,
              s = n.node;
            if (r === s) {
              let s = this.positionInBuffer(r, i.remainder),
                o = this.positionInBuffer(r, n.remainder);
              if (i.nodeStartOffset === e) {
                if (t === r.piece.length) {
                  let e = r.next();
                  return (
                    G(this, r),
                    this.validateCRLFWithPrevNode(e),
                    void this.computeBufferMetadata()
                  );
                }
                return (
                  this.deleteNodeHead(r, o),
                  this._searchCache.validate(e),
                  this.validateCRLFWithPrevNode(r),
                  void this.computeBufferMetadata()
                );
              }
              return i.nodeStartOffset + r.piece.length === e + t
                ? (this.deleteNodeTail(r, s),
                  this.validateCRLFWithNextNode(r),
                  void this.computeBufferMetadata())
                : (this.shrinkNode(r, s, o), void this.computeBufferMetadata());
            }
            let o = [],
              a = this.positionInBuffer(r, i.remainder);
            this.deleteNodeTail(r, a),
              this._searchCache.validate(e),
              0 === r.piece.length && o.push(r);
            let l = this.positionInBuffer(s, n.remainder);
            this.deleteNodeHead(s, l), 0 === s.piece.length && o.push(s);
            for (let e = r.next(); e !== H && e !== s; e = e.next()) o.push(e);
            let c = 0 === r.piece.length ? r.prev() : r;
            this.deleteNodes(o),
              this.validateCRLFWithNextNode(c),
              this.computeBufferMetadata();
          }
          insertContentToNodeLeft(e, t) {
            let i = [];
            if (
              this.shouldCheckCRLF() &&
              this.endWithCR(e) &&
              this.startWithLF(t)
            ) {
              let n = t.piece,
                r = { line: n.start.line + 1, column: 0 },
                s = new re(
                  n.bufferIndex,
                  r,
                  n.end,
                  this.getLineFeedCnt(n.bufferIndex, r, n.end),
                  n.length - 1
                );
              (t.piece = s),
                (e += '\n'),
                J(this, t, -1, -1),
                0 === t.piece.length && i.push(t);
            }
            let n = this.createNewPieces(e),
              r = this.rbInsertLeft(t, n[n.length - 1]);
            for (let e = n.length - 2; e >= 0; e--)
              r = this.rbInsertLeft(r, n[e]);
            this.validateCRLFWithPrevNode(r), this.deleteNodes(i);
          }
          insertContentToNodeRight(e, t) {
            this.adjustCarriageReturnFromNext(e, t) && (e += '\n');
            let i = this.createNewPieces(e),
              n = this.rbInsertRight(t, i[0]),
              r = n;
            for (let e = 1; e < i.length; e++) r = this.rbInsertRight(r, i[e]);
            this.validateCRLFWithPrevNode(n);
          }
          positionInBuffer(e, t, i) {
            let n = e.piece,
              r = e.piece.bufferIndex,
              s = this._buffers[r].lineStarts,
              o = s[n.start.line] + n.start.column + t,
              a = n.start.line,
              l = n.end.line,
              c = 0,
              d = 0,
              h = 0;
            for (
              ;
              a <= l && ((c = (a + (l - a) / 2) | 0), (h = s[c]), c !== l);

            )
              if (((d = s[c + 1]), o < h)) l = c - 1;
              else {
                if (!(o >= d)) break;
                a = c + 1;
              }
            return i
              ? ((i.line = c), (i.column = o - h), null)
              : { line: c, column: o - h };
          }
          getLineFeedCnt(e, t, i) {
            if (0 === i.column) return i.line - t.line;
            let n = this._buffers[e].lineStarts;
            if (i.line === n.length - 1) return i.line - t.line;
            let r = n[i.line + 1],
              s = n[i.line] + i.column;
            if (r > s + 1) return i.line - t.line;
            let o = s - 1;
            return 13 === this._buffers[e].buffer.charCodeAt(o)
              ? i.line - t.line + 1
              : i.line - t.line;
          }
          offsetInBuffer(e, t) {
            return this._buffers[e].lineStarts[t.line] + t.column;
          }
          deleteNodes(e) {
            for (let t = 0; t < e.length; t++) G(this, e[t]);
          }
          createNewPieces(e) {
            if (e.length > ee) {
              let t = [];
              for (; e.length > ee; ) {
                const i = e.charCodeAt(65534);
                let n;
                13 === i || (i >= 55296 && i <= 56319)
                  ? ((n = e.substring(0, 65534)), (e = e.substring(65534)))
                  : ((n = e.substring(0, ee)), (e = e.substring(ee)));
                let r = ne(n);
                t.push(
                  new re(
                    this._buffers.length,
                    { line: 0, column: 0 },
                    { line: r.length - 1, column: n.length - r[r.length - 1] },
                    r.length - 1,
                    n.length
                  )
                ),
                  this._buffers.push(new se(n, r));
              }
              let i = ne(e);
              return (
                t.push(
                  new re(
                    this._buffers.length,
                    { line: 0, column: 0 },
                    { line: i.length - 1, column: e.length - i[i.length - 1] },
                    i.length - 1,
                    e.length
                  )
                ),
                this._buffers.push(new se(e, i)),
                t
              );
            }
            let t = this._buffers[0].buffer.length;
            const i = ne(e, !1);
            let n = this._lastChangeBufferPos;
            if (
              this._buffers[0].lineStarts[
                this._buffers[0].lineStarts.length - 1
              ] === t &&
              0 !== t &&
              this.startWithLF(e) &&
              this.endWithCR(this._buffers[0].buffer)
            ) {
              (this._lastChangeBufferPos = {
                line: this._lastChangeBufferPos.line,
                column: this._lastChangeBufferPos.column + 1,
              }),
                (n = this._lastChangeBufferPos);
              for (let e = 0; e < i.length; e++) i[e] += t + 1;
              (this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(
                i.slice(1)
              )),
                (this._buffers[0].buffer += '_' + e),
                (t += 1);
            } else {
              if (0 !== t) for (let e = 0; e < i.length; e++) i[e] += t;
              (this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(
                i.slice(1)
              )),
                (this._buffers[0].buffer += e);
            }
            const r = this._buffers[0].buffer.length;
            let s = this._buffers[0].lineStarts.length - 1,
              o = { line: s, column: r - this._buffers[0].lineStarts[s] },
              a = new re(0, n, o, this.getLineFeedCnt(0, n, o), r - t);
            return (this._lastChangeBufferPos = o), [a];
          }
          getLineRawContent(e, t = 0) {
            let i = this.root,
              n = '',
              r = this._searchCache.get2(e);
            if (r) {
              i = r.node;
              let s = this.getAccumulatedValue(
                  i,
                  e - r.nodeStartLineNumber - 1
                ),
                o = this._buffers[i.piece.bufferIndex].buffer,
                a = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);
              if (r.nodeStartLineNumber + i.piece.lineFeedCnt !== e) {
                let n = this.getAccumulatedValue(i, e - r.nodeStartLineNumber);
                return o.substring(a + s, a + n - t);
              }
              n = o.substring(a + s, a + i.piece.length);
            } else {
              let r = 0;
              const s = e;
              for (; i !== H; )
                if (i.left !== H && i.lf_left >= e - 1) i = i.left;
                else {
                  if (i.lf_left + i.piece.lineFeedCnt > e - 1) {
                    let n = this.getAccumulatedValue(i, e - i.lf_left - 2),
                      o = this.getAccumulatedValue(i, e - i.lf_left - 1),
                      a = this._buffers[i.piece.bufferIndex].buffer,
                      l = this.offsetInBuffer(
                        i.piece.bufferIndex,
                        i.piece.start
                      );
                    return (
                      (r += i.size_left),
                      this._searchCache.set({
                        node: i,
                        nodeStartOffset: r,
                        nodeStartLineNumber: s - (e - 1 - i.lf_left),
                      }),
                      a.substring(l + n, l + o - t)
                    );
                  }
                  if (i.lf_left + i.piece.lineFeedCnt === e - 1) {
                    let t = this.getAccumulatedValue(i, e - i.lf_left - 2),
                      r = this._buffers[i.piece.bufferIndex].buffer,
                      s = this.offsetInBuffer(
                        i.piece.bufferIndex,
                        i.piece.start
                      );
                    n = r.substring(s + t, s + i.piece.length);
                    break;
                  }
                  (e -= i.lf_left + i.piece.lineFeedCnt),
                    (r += i.size_left + i.piece.length),
                    (i = i.right);
                }
            }
            for (i = i.next(); i !== H; ) {
              let e = this._buffers[i.piece.bufferIndex].buffer;
              if (i.piece.lineFeedCnt > 0) {
                let r = this.getAccumulatedValue(i, 0),
                  s = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);
                return (n += e.substring(s, s + r - t)), n;
              }
              {
                let t = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);
                n += e.substr(t, i.piece.length);
              }
              i = i.next();
            }
            return n;
          }
          computeBufferMetadata() {
            let e = this.root,
              t = 1,
              i = 0;
            for (; e !== H; )
              (t += e.lf_left + e.piece.lineFeedCnt),
                (i += e.size_left + e.piece.length),
                (e = e.right);
            (this._lineCnt = t),
              (this._length = i),
              this._searchCache.validate(this._length);
          }
          getIndexOf(e, t) {
            let i = e.piece,
              n = this.positionInBuffer(e, t),
              r = n.line - i.start.line;
            if (
              this.offsetInBuffer(i.bufferIndex, i.end) -
                this.offsetInBuffer(i.bufferIndex, i.start) ===
              t
            ) {
              let t = this.getLineFeedCnt(e.piece.bufferIndex, i.start, n);
              if (t !== r) return { index: t, remainder: 0 };
            }
            return { index: r, remainder: n.column };
          }
          getAccumulatedValue(e, t) {
            if (t < 0) return 0;
            let i = e.piece,
              n = this._buffers[i.bufferIndex].lineStarts,
              r = i.start.line + t + 1;
            return r > i.end.line
              ? n[i.end.line] + i.end.column - n[i.start.line] - i.start.column
              : n[r] - n[i.start.line] - i.start.column;
          }
          deleteNodeTail(e, t) {
            const i = e.piece,
              n = i.lineFeedCnt,
              r = this.offsetInBuffer(i.bufferIndex, i.end),
              s = t,
              o = this.offsetInBuffer(i.bufferIndex, s),
              a = this.getLineFeedCnt(i.bufferIndex, i.start, s),
              l = a - n,
              c = o - r,
              d = i.length + c;
            (e.piece = new re(i.bufferIndex, i.start, s, a, d)),
              J(this, e, c, l);
          }
          deleteNodeHead(e, t) {
            const i = e.piece,
              n = i.lineFeedCnt,
              r = this.offsetInBuffer(i.bufferIndex, i.start),
              s = t,
              o = this.getLineFeedCnt(i.bufferIndex, s, i.end),
              a = o - n,
              l = r - this.offsetInBuffer(i.bufferIndex, s),
              c = i.length + l;
            (e.piece = new re(i.bufferIndex, s, i.end, o, c)), J(this, e, l, a);
          }
          shrinkNode(e, t, i) {
            const n = e.piece,
              r = n.start,
              s = n.end,
              o = n.length,
              a = n.lineFeedCnt,
              l = t,
              c = this.getLineFeedCnt(n.bufferIndex, n.start, l),
              d =
                this.offsetInBuffer(n.bufferIndex, t) -
                this.offsetInBuffer(n.bufferIndex, r);
            (e.piece = new re(n.bufferIndex, n.start, l, c, d)),
              J(this, e, d - o, c - a);
            let h = new re(
                n.bufferIndex,
                i,
                s,
                this.getLineFeedCnt(n.bufferIndex, i, s),
                this.offsetInBuffer(n.bufferIndex, s) -
                  this.offsetInBuffer(n.bufferIndex, i)
              ),
              u = this.rbInsertRight(e, h);
            this.validateCRLFWithPrevNode(u);
          }
          appendToNode(e, t) {
            this.adjustCarriageReturnFromNext(t, e) && (t += '\n');
            const i =
                this.shouldCheckCRLF() &&
                this.startWithLF(t) &&
                this.endWithCR(e),
              n = this._buffers[0].buffer.length;
            this._buffers[0].buffer += t;
            const r = ne(t, !1);
            for (let e = 0; e < r.length; e++) r[e] += n;
            if (i) {
              let e = this._buffers[0].lineStarts[
                this._buffers[0].lineStarts.length - 2
              ];
              this._buffers[0].lineStarts.pop(),
                (this._lastChangeBufferPos = {
                  line: this._lastChangeBufferPos.line - 1,
                  column: n - e,
                });
            }
            this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(
              r.slice(1)
            );
            const s = this._buffers[0].lineStarts.length - 1,
              o = {
                line: s,
                column:
                  this._buffers[0].buffer.length -
                  this._buffers[0].lineStarts[s],
              },
              a = e.piece.length + t.length,
              l = e.piece.lineFeedCnt,
              c = this.getLineFeedCnt(0, e.piece.start, o),
              d = c - l;
            (e.piece = new re(e.piece.bufferIndex, e.piece.start, o, c, a)),
              (this._lastChangeBufferPos = o),
              J(this, e, t.length, d);
          }
          nodeAt(e) {
            let t = this.root,
              i = this._searchCache.get(e);
            if (i)
              return {
                node: i.node,
                nodeStartOffset: i.nodeStartOffset,
                remainder: e - i.nodeStartOffset,
              };
            let n = 0;
            for (; t !== H; )
              if (t.size_left > e) t = t.left;
              else {
                if (t.size_left + t.piece.length >= e) {
                  n += t.size_left;
                  let i = {
                    node: t,
                    remainder: e - t.size_left,
                    nodeStartOffset: n,
                  };
                  return this._searchCache.set(i), i;
                }
                (e -= t.size_left + t.piece.length),
                  (n += t.size_left + t.piece.length),
                  (t = t.right);
              }
            return null;
          }
          nodeAt2(e, t) {
            let i = this.root,
              n = 0;
            for (; i !== H; )
              if (i.left !== H && i.lf_left >= e - 1) i = i.left;
              else {
                if (i.lf_left + i.piece.lineFeedCnt > e - 1) {
                  let r = this.getAccumulatedValue(i, e - i.lf_left - 2),
                    s = this.getAccumulatedValue(i, e - i.lf_left - 1);
                  return (
                    (n += i.size_left),
                    {
                      node: i,
                      remainder: Math.min(r + t - 1, s),
                      nodeStartOffset: n,
                    }
                  );
                }
                if (i.lf_left + i.piece.lineFeedCnt === e - 1) {
                  let r = this.getAccumulatedValue(i, e - i.lf_left - 2);
                  if (r + t - 1 <= i.piece.length)
                    return {
                      node: i,
                      remainder: r + t - 1,
                      nodeStartOffset: n,
                    };
                  t -= i.piece.length - r;
                  break;
                }
                (e -= i.lf_left + i.piece.lineFeedCnt),
                  (n += i.size_left + i.piece.length),
                  (i = i.right);
              }
            for (i = i.next(); i !== H; ) {
              if (i.piece.lineFeedCnt > 0) {
                let e = this.getAccumulatedValue(i, 0),
                  n = this.offsetOfNode(i);
                return {
                  node: i,
                  remainder: Math.min(t - 1, e),
                  nodeStartOffset: n,
                };
              }
              if (i.piece.length >= t - 1)
                return {
                  node: i,
                  remainder: t - 1,
                  nodeStartOffset: this.offsetOfNode(i),
                };
              (t -= i.piece.length), (i = i.next());
            }
            return null;
          }
          nodeCharCodeAt(e, t) {
            if (e.piece.lineFeedCnt < 1) return -1;
            let i = this._buffers[e.piece.bufferIndex],
              n = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start) + t;
            return i.buffer.charCodeAt(n);
          }
          offsetOfNode(e) {
            if (!e) return 0;
            let t = e.size_left;
            for (; e !== this.root; )
              e.parent.right === e &&
                (t += e.parent.size_left + e.parent.piece.length),
                (e = e.parent);
            return t;
          }
          shouldCheckCRLF() {
            return !(this._EOLNormalized && '\n' === this._EOL);
          }
          startWithLF(e) {
            if ('string' == typeof e) return 10 === e.charCodeAt(0);
            if (e === H || 0 === e.piece.lineFeedCnt) return !1;
            let t = e.piece,
              i = this._buffers[t.bufferIndex].lineStarts,
              n = t.start.line,
              r = i[n] + t.start.column;
            return (
              n !== i.length - 1 &&
              !(i[n + 1] > r + 1) &&
              10 === this._buffers[t.bufferIndex].buffer.charCodeAt(r)
            );
          }
          endWithCR(e) {
            return 'string' == typeof e
              ? 13 === e.charCodeAt(e.length - 1)
              : e !== H &&
                  0 !== e.piece.lineFeedCnt &&
                  13 === this.nodeCharCodeAt(e, e.piece.length - 1);
          }
          validateCRLFWithPrevNode(e) {
            if (this.shouldCheckCRLF() && this.startWithLF(e)) {
              let t = e.prev();
              this.endWithCR(t) && this.fixCRLF(t, e);
            }
          }
          validateCRLFWithNextNode(e) {
            if (this.shouldCheckCRLF() && this.endWithCR(e)) {
              let t = e.next();
              this.startWithLF(t) && this.fixCRLF(e, t);
            }
          }
          fixCRLF(e, t) {
            let i,
              n = [],
              r = this._buffers[e.piece.bufferIndex].lineStarts;
            i =
              0 === e.piece.end.column
                ? {
                    line: e.piece.end.line - 1,
                    column: r[e.piece.end.line] - r[e.piece.end.line - 1] - 1,
                  }
                : { line: e.piece.end.line, column: e.piece.end.column - 1 };
            const s = e.piece.length - 1,
              o = e.piece.lineFeedCnt - 1;
            (e.piece = new re(e.piece.bufferIndex, e.piece.start, i, o, s)),
              J(this, e, -1, -1),
              0 === e.piece.length && n.push(e);
            let a = { line: t.piece.start.line + 1, column: 0 };
            const l = t.piece.length - 1,
              c = this.getLineFeedCnt(t.piece.bufferIndex, a, t.piece.end);
            (t.piece = new re(t.piece.bufferIndex, a, t.piece.end, c, l)),
              J(this, t, -1, -1),
              0 === t.piece.length && n.push(t);
            let d = this.createNewPieces('\r\n');
            this.rbInsertRight(e, d[0]);
            for (let e = 0; e < n.length; e++) G(this, n[e]);
          }
          adjustCarriageReturnFromNext(e, t) {
            if (this.shouldCheckCRLF() && this.endWithCR(e)) {
              let i = t.next();
              if (this.startWithLF(i)) {
                if (((e += '\n'), 1 === i.piece.length)) G(this, i);
                else {
                  const e = i.piece,
                    t = { line: e.start.line + 1, column: 0 },
                    n = e.length - 1,
                    r = this.getLineFeedCnt(e.bufferIndex, t, e.end);
                  (i.piece = new re(e.bufferIndex, t, e.end, r, n)),
                    J(this, i, -1, -1);
                }
                return !0;
              }
            }
            return !1;
          }
          iterate(e, t) {
            if (e === H) return t(H);
            let i = this.iterate(e.left, t);
            return i ? t(e) && this.iterate(e.right, t) : i;
          }
          getNodeContent(e) {
            if (e === H) return '';
            let t,
              i = this._buffers[e.piece.bufferIndex],
              n = e.piece,
              r = this.offsetInBuffer(n.bufferIndex, n.start),
              s = this.offsetInBuffer(n.bufferIndex, n.end);
            return (t = i.buffer.substring(r, s)), t;
          }
          getPieceContent(e) {
            let t = this._buffers[e.bufferIndex],
              i = this.offsetInBuffer(e.bufferIndex, e.start),
              n = this.offsetInBuffer(e.bufferIndex, e.end);
            return t.buffer.substring(i, n);
          }
          rbInsertRight(e, t) {
            let i = new Y(t, 1);
            if (
              ((i.left = H),
              (i.right = H),
              (i.parent = H),
              (i.size_left = 0),
              (i.lf_left = 0),
              this.root === H)
            )
              (this.root = i), (i.color = 0);
            else if (e.right === H) (e.right = i), (i.parent = e);
            else {
              let t = j(e.right);
              (t.left = i), (i.parent = t);
            }
            return Z(this, i), i;
          }
          rbInsertLeft(e, t) {
            let i = new Y(t, 1);
            if (
              ((i.left = H),
              (i.right = H),
              (i.parent = H),
              (i.size_left = 0),
              (i.lf_left = 0),
              this.root === H)
            )
              (this.root = i), (i.color = 0);
            else if (e.left === H) (e.left = i), (i.parent = e);
            else {
              let t = V(e.left);
              (t.right = i), (i.parent = t);
            }
            return Z(this, i), i;
          }
        }
        var ce = i(58409),
          de = i(60962);
        class he {
          constructor(e, t, i, n, s, o, a) {
            (this._onDidChangeContent = new r.Q5()),
              (this._BOM = t),
              (this._mightContainNonBasicASCII = !o),
              (this._mightContainRTL = n),
              (this._mightContainUnusualLineTerminators = s),
              (this._pieceTree = new le(e, i, a));
          }
          dispose() {
            this._onDidChangeContent.dispose();
          }
          mightContainRTL() {
            return this._mightContainRTL;
          }
          mightContainUnusualLineTerminators() {
            return this._mightContainUnusualLineTerminators;
          }
          resetMightContainUnusualLineTerminators() {
            this._mightContainUnusualLineTerminators = !1;
          }
          mightContainNonBasicASCII() {
            return this._mightContainNonBasicASCII;
          }
          getBOM() {
            return this._BOM;
          }
          getEOL() {
            return this._pieceTree.getEOL();
          }
          createSnapshot(e) {
            return this._pieceTree.createSnapshot(e ? this._BOM : '');
          }
          getOffsetAt(e, t) {
            return this._pieceTree.getOffsetAt(e, t);
          }
          getPositionAt(e) {
            return this._pieceTree.getPositionAt(e);
          }
          getRangeAt(e, t) {
            let i = e + t;
            const n = this.getPositionAt(e),
              r = this.getPositionAt(i);
            return new d.e(n.lineNumber, n.column, r.lineNumber, r.column);
          }
          getValueInRange(e, t = 0) {
            if (e.isEmpty()) return '';
            const i = this._getEndOfLine(t);
            return this._pieceTree.getValueInRange(e, i);
          }
          getValueLengthInRange(e, t = 0) {
            if (e.isEmpty()) return 0;
            if (e.startLineNumber === e.endLineNumber)
              return e.endColumn - e.startColumn;
            let i = this.getOffsetAt(e.startLineNumber, e.startColumn);
            return this.getOffsetAt(e.endLineNumber, e.endColumn) - i;
          }
          getCharacterCountInRange(e, t = 0) {
            if (this._mightContainNonBasicASCII) {
              let i = 0;
              const n = e.startLineNumber,
                r = e.endLineNumber;
              for (let t = n; t <= r; t++) {
                const s = this.getLineContent(t),
                  a = t === n ? e.startColumn - 1 : 0,
                  l = t === r ? e.endColumn - 1 : s.length;
                for (let e = a; e < l; e++)
                  o.ZG(s.charCodeAt(e)) ? ((i += 1), (e += 1)) : (i += 1);
              }
              return (i += this._getEndOfLine(t).length * (r - n)), i;
            }
            return this.getValueLengthInRange(e, t);
          }
          getLength() {
            return this._pieceTree.getLength();
          }
          getLineCount() {
            return this._pieceTree.getLineCount();
          }
          getLinesContent() {
            return this._pieceTree.getLinesContent();
          }
          getLineContent(e) {
            return this._pieceTree.getLineContent(e);
          }
          getLineCharCode(e, t) {
            return this._pieceTree.getLineCharCode(e, t);
          }
          getLineLength(e) {
            return this._pieceTree.getLineLength(e);
          }
          getLineFirstNonWhitespaceColumn(e) {
            const t = o.LC(this.getLineContent(e));
            return -1 === t ? 0 : t + 1;
          }
          getLineLastNonWhitespaceColumn(e) {
            const t = o.ow(this.getLineContent(e));
            return -1 === t ? 0 : t + 2;
          }
          _getEndOfLine(e) {
            switch (e) {
              case 1:
                return '\n';
              case 2:
                return '\r\n';
              case 0:
                return this.getEOL();
              default:
                throw new Error('Unknown EOL preference');
            }
          }
          setEOL(e) {
            this._pieceTree.setEOL(e);
          }
          applyEdits(e, t, i) {
            let n = this._mightContainRTL,
              r = this._mightContainUnusualLineTerminators,
              s = this._mightContainNonBasicASCII,
              a = !0,
              l = [];
            for (let t = 0; t < e.length; t++) {
              let i = e[t];
              a && i._isTracked && (a = !1);
              let c = i.range;
              if (i.text) {
                let e = !0;
                s || ((e = !o.$i(i.text)), (s = e)),
                  !n && e && (n = o.Ut(i.text)),
                  !r && e && (r = o.ab(i.text));
              }
              let d = '',
                h = 0,
                u = 0,
                g = 0;
              if (i.text) {
                let e;
                [h, u, g, e] = (0, ce.QZ)(i.text);
                const t = this.getEOL(),
                  n = '\r\n' === t ? 2 : 1;
                d =
                  0 === e || e === n
                    ? i.text
                    : i.text.replace(/\r\n|\r|\n/g, t);
              }
              l[t] = {
                sortIndex: t,
                identifier: i.identifier || null,
                range: c,
                rangeOffset: this.getOffsetAt(c.startLineNumber, c.startColumn),
                rangeLength: this.getValueLengthInRange(c),
                text: d,
                eolCount: h,
                firstLineLength: u,
                lastLineLength: g,
                forceMoveMarkers: Boolean(i.forceMoveMarkers),
                isAutoWhitespaceEdit: i.isAutoWhitespaceEdit || !1,
              };
            }
            l.sort(he._sortOpsAscending);
            let c = !1;
            for (let e = 0, t = l.length - 1; e < t; e++) {
              let t = l[e].range.getEndPosition(),
                i = l[e + 1].range.getStartPosition();
              if (i.isBeforeOrEqual(t)) {
                if (i.isBefore(t))
                  throw new Error('Overlapping ranges are not allowed!');
                c = !0;
              }
            }
            a && (l = this._reduceOperations(l));
            let d = i || t ? he._getInverseEditRanges(l) : [],
              h = [];
            if (t)
              for (let e = 0; e < l.length; e++) {
                let t = l[e],
                  i = d[e];
                if (t.isAutoWhitespaceEdit && t.range.isEmpty())
                  for (let e = i.startLineNumber; e <= i.endLineNumber; e++) {
                    let n = '';
                    (e === i.startLineNumber &&
                      ((n = this.getLineContent(t.range.startLineNumber)),
                      -1 !== o.LC(n))) ||
                      h.push({ lineNumber: e, oldContent: n });
                  }
              }
            let g = null;
            if (i) {
              let e = 0;
              g = [];
              for (let t = 0; t < l.length; t++) {
                const i = l[t],
                  n = d[t],
                  r = this.getValueInRange(i.range),
                  s = i.rangeOffset + e;
                (e += i.text.length - r.length),
                  (g[t] = {
                    sortIndex: i.sortIndex,
                    identifier: i.identifier,
                    range: n,
                    text: r,
                    textChange: new de.q(i.rangeOffset, r, s, i.text),
                  });
              }
              c || g.sort((e, t) => e.sortIndex - t.sortIndex);
            }
            (this._mightContainRTL = n),
              (this._mightContainUnusualLineTerminators = r),
              (this._mightContainNonBasicASCII = s);
            const f = this._doApplyEdits(l);
            let p = null;
            if (t && h.length > 0) {
              h.sort((e, t) => t.lineNumber - e.lineNumber), (p = []);
              for (let e = 0, t = h.length; e < t; e++) {
                let t = h[e].lineNumber;
                if (e > 0 && h[e - 1].lineNumber === t) continue;
                let i = h[e].oldContent,
                  n = this.getLineContent(t);
                0 !== n.length && n !== i && -1 === o.LC(n) && p.push(t);
              }
            }
            return this._onDidChangeContent.fire(), new u.je(g, f, p);
          }
          _reduceOperations(e) {
            return e.length < 1e3 ? e : [this._toSingleEditOperation(e)];
          }
          _toSingleEditOperation(e) {
            let t = !1;
            const i = e[0].range,
              n = e[e.length - 1].range,
              r = new d.e(
                i.startLineNumber,
                i.startColumn,
                n.endLineNumber,
                n.endColumn
              );
            let s = i.startLineNumber,
              o = i.startColumn;
            const a = [];
            for (let i = 0, n = e.length; i < n; i++) {
              const n = e[i],
                r = n.range;
              (t = t || n.forceMoveMarkers),
                a.push(
                  this.getValueInRange(
                    new d.e(s, o, r.startLineNumber, r.startColumn)
                  )
                ),
                n.text.length > 0 && a.push(n.text),
                (s = r.endLineNumber),
                (o = r.endColumn);
            }
            const l = a.join(''),
              [c, h, u] = (0, ce.QZ)(l);
            return {
              sortIndex: 0,
              identifier: e[0].identifier,
              range: r,
              rangeOffset: this.getOffsetAt(r.startLineNumber, r.startColumn),
              rangeLength: this.getValueLengthInRange(r, 0),
              text: l,
              eolCount: c,
              firstLineLength: h,
              lastLineLength: u,
              forceMoveMarkers: t,
              isAutoWhitespaceEdit: !1,
            };
          }
          _doApplyEdits(e) {
            e.sort(he._sortOpsDescending);
            let t = [];
            for (let i = 0; i < e.length; i++) {
              let n = e[i];
              const r = n.range.startLineNumber,
                s = n.range.startColumn,
                o = n.range.endLineNumber,
                a = n.range.endColumn;
              if (r === o && s === a && 0 === n.text.length) continue;
              n.text
                ? (this._pieceTree.delete(n.rangeOffset, n.rangeLength),
                  this._pieceTree.insert(n.rangeOffset, n.text, !0))
                : this._pieceTree.delete(n.rangeOffset, n.rangeLength);
              const l = new d.e(r, s, o, a);
              t.push({
                range: l,
                rangeLength: n.rangeLength,
                text: n.text,
                rangeOffset: n.rangeOffset,
                forceMoveMarkers: n.forceMoveMarkers,
              });
            }
            return t;
          }
          findMatchesLineByLine(e, t, i, n) {
            return this._pieceTree.findMatchesLineByLine(e, t, i, n);
          }
          static _getInverseEditRanges(e) {
            let t = [],
              i = 0,
              n = 0,
              r = null;
            for (let s = 0, o = e.length; s < o; s++) {
              let o,
                a,
                l,
                c = e[s];
              if (
                (r
                  ? r.range.endLineNumber === c.range.startLineNumber
                    ? ((o = i),
                      (a = n + (c.range.startColumn - r.range.endColumn)))
                    : ((o =
                        i + (c.range.startLineNumber - r.range.endLineNumber)),
                      (a = c.range.startColumn))
                  : ((o = c.range.startLineNumber), (a = c.range.startColumn)),
                c.text.length > 0)
              ) {
                const e = c.eolCount + 1;
                l =
                  1 === e
                    ? new d.e(o, a, o, a + c.firstLineLength)
                    : new d.e(o, a, o + e - 1, c.lastLineLength + 1);
              } else l = new d.e(o, a, o, a);
              (i = l.endLineNumber), (n = l.endColumn), t.push(l), (r = c);
            }
            return t;
          }
          static _sortOpsAscending(e, t) {
            let i = d.e.compareRangesUsingEnds(e.range, t.range);
            return 0 === i ? e.sortIndex - t.sortIndex : i;
          }
          static _sortOpsDescending(e, t) {
            let i = d.e.compareRangesUsingEnds(e.range, t.range);
            return 0 === i ? t.sortIndex - e.sortIndex : -i;
          }
        }
        class ue {
          constructor(e, t, i, n, r, s, o, a, l) {
            (this._chunks = e),
              (this._bom = t),
              (this._cr = i),
              (this._lf = n),
              (this._crlf = r),
              (this._containsRTL = s),
              (this._containsUnusualLineTerminators = o),
              (this._isBasicASCII = a),
              (this._normalizeEOL = l);
          }
          _getEOL(e) {
            const t = this._cr + this._lf + this._crlf,
              i = this._cr + this._crlf;
            return 0 === t
              ? 1 === e
                ? '\n'
                : '\r\n'
              : i > t / 2
              ? '\r\n'
              : '\n';
          }
          create(e) {
            const t = this._getEOL(e);
            let i = this._chunks;
            if (
              this._normalizeEOL &&
              (('\r\n' === t && (this._cr > 0 || this._lf > 0)) ||
                ('\n' === t && (this._cr > 0 || this._crlf > 0)))
            )
              for (let e = 0, n = i.length; e < n; e++) {
                let n = i[e].buffer.replace(/\r\n|\r|\n/g, t),
                  r = ne(n);
                i[e] = new se(n, r);
              }
            return new he(
              i,
              this._bom,
              t,
              this._containsRTL,
              this._containsUnusualLineTerminators,
              this._isBasicASCII,
              this._normalizeEOL
            );
          }
        }
        class ge {
          constructor() {
            (this.chunks = []),
              (this.BOM = ''),
              (this._hasPreviousChar = !1),
              (this._previousChar = 0),
              (this._tmpLineStarts = []),
              (this.cr = 0),
              (this.lf = 0),
              (this.crlf = 0),
              (this.containsRTL = !1),
              (this.containsUnusualLineTerminators = !1),
              (this.isBasicASCII = !0);
          }
          acceptChunk(e) {
            if (0 === e.length) return;
            0 === this.chunks.length &&
              o.uS(e) &&
              ((this.BOM = o.c1), (e = e.substr(1)));
            const t = e.charCodeAt(e.length - 1);
            13 === t || (t >= 55296 && t <= 56319)
              ? (this._acceptChunk1(e.substr(0, e.length - 1), !1),
                (this._hasPreviousChar = !0),
                (this._previousChar = t))
              : (this._acceptChunk1(e, !1),
                (this._hasPreviousChar = !1),
                (this._previousChar = t));
          }
          _acceptChunk1(e, t) {
            (t || 0 !== e.length) &&
              (this._hasPreviousChar
                ? this._acceptChunk2(
                    String.fromCharCode(this._previousChar) + e
                  )
                : this._acceptChunk2(e));
          }
          _acceptChunk2(e) {
            const t = (function (e, t) {
              (e.length = 0), (e[0] = 0);
              let i = 1,
                n = 0,
                r = 0,
                s = 0,
                o = !0;
              for (let a = 0, l = t.length; a < l; a++) {
                const c = t.charCodeAt(a);
                13 === c
                  ? a + 1 < l && 10 === t.charCodeAt(a + 1)
                    ? (s++, (e[i++] = a + 2), a++)
                    : (n++, (e[i++] = a + 1))
                  : 10 === c
                  ? (r++, (e[i++] = a + 1))
                  : o && 9 !== c && (c < 32 || c > 126) && (o = !1);
              }
              const a = new ie(te(e), n, r, s, o);
              return (e.length = 0), a;
            })(this._tmpLineStarts, e);
            this.chunks.push(new se(e, t.lineStarts)),
              (this.cr += t.cr),
              (this.lf += t.lf),
              (this.crlf += t.crlf),
              this.isBasicASCII && (this.isBasicASCII = t.isBasicASCII),
              this.isBasicASCII ||
                this.containsRTL ||
                (this.containsRTL = o.Ut(e)),
              this.isBasicASCII ||
                this.containsUnusualLineTerminators ||
                (this.containsUnusualLineTerminators = o.ab(e));
          }
          finish(e = !0) {
            return (
              this._finish(),
              new ue(
                this.chunks,
                this.BOM,
                this.cr,
                this.lf,
                this.crlf,
                this.containsRTL,
                this.containsUnusualLineTerminators,
                this.isBasicASCII,
                e
              )
            );
          }
          _finish() {
            if (
              (0 === this.chunks.length && this._acceptChunk1('', !0),
              this._hasPreviousChar)
            ) {
              this._hasPreviousChar = !1;
              let e = this.chunks[this.chunks.length - 1];
              e.buffer += String.fromCharCode(this._previousChar);
              let t = ne(e.buffer);
              (e.lineStarts = t), 13 === this._previousChar && this.cr++;
            }
          }
        }
        class fe {
          constructor() {
            this.changeType = 1;
          }
        }
        class pe {
          constructor(e, t) {
            (this.changeType = 2), (this.lineNumber = e), (this.detail = t);
          }
        }
        class me {
          constructor(e, t) {
            (this.changeType = 3),
              (this.fromLineNumber = e),
              (this.toLineNumber = t);
          }
        }
        class _e {
          constructor(e, t, i) {
            (this.changeType = 4),
              (this.fromLineNumber = e),
              (this.toLineNumber = t),
              (this.detail = i);
          }
        }
        class be {
          constructor() {
            this.changeType = 5;
          }
        }
        class ve {
          constructor(e, t, i, n) {
            (this.changes = e),
              (this.versionId = t),
              (this.isUndoing = i),
              (this.isRedoing = n),
              (this.resultingSelection = null);
          }
          containsEvent(e) {
            for (let t = 0, i = this.changes.length; t < i; t++)
              if (this.changes[t].changeType === e) return !0;
            return !1;
          }
          static merge(e, t) {
            const i = [].concat(e.changes).concat(t.changes),
              n = t.versionId,
              r = e.isUndoing || t.isUndoing,
              s = e.isRedoing || t.isRedoing;
            return new ve(i, n, r, s);
          }
        }
        class ye {
          constructor(e, t) {
            (this.rawContentChangedEvent = e), (this.contentChangedEvent = t);
          }
          merge(e) {
            const t = ve.merge(
                this.rawContentChangedEvent,
                e.rawContentChangedEvent
              ),
              i = ye._mergeChangeEvents(
                this.contentChangedEvent,
                e.contentChangedEvent
              );
            return new ye(t, i);
          }
          static _mergeChangeEvents(e, t) {
            return {
              changes: [].concat(e.changes).concat(t.changes),
              eol: t.eol,
              versionId: t.versionId,
              isUndoing: e.isUndoing || t.isUndoing,
              isRedoing: e.isRedoing || t.isRedoing,
              isFlush: e.isFlush || t.isFlush,
            };
          }
        }
        var we = i(9488),
          Ce = i(78411),
          Se = i(43775),
          ke = i(28111),
          xe = i(84013),
          Le = i(1432);
        class Me {
          constructor() {
            (this._beginState = []),
              (this._valid = []),
              (this._len = 0),
              (this._invalidLineStartIndex = 0);
          }
          _reset(e) {
            (this._beginState = []),
              (this._valid = []),
              (this._len = 0),
              (this._invalidLineStartIndex = 0),
              e && this._setBeginState(0, e);
          }
          flush(e) {
            this._reset(e);
          }
          get invalidLineStartIndex() {
            return this._invalidLineStartIndex;
          }
          _invalidateLine(e) {
            e < this._len && (this._valid[e] = !1),
              e < this._invalidLineStartIndex &&
                (this._invalidLineStartIndex = e);
          }
          _isValid(e) {
            return e < this._len && this._valid[e];
          }
          getBeginState(e) {
            return e < this._len ? this._beginState[e] : null;
          }
          _ensureLine(e) {
            for (; e >= this._len; )
              (this._beginState[this._len] = null),
                (this._valid[this._len] = !1),
                this._len++;
          }
          _deleteLines(e, t) {
            0 !== t &&
              (e + t > this._len && (t = this._len - e),
              this._beginState.splice(e, t),
              this._valid.splice(e, t),
              (this._len -= t));
          }
          _insertLines(e, t) {
            if (0 === t) return;
            let i = [],
              n = [];
            for (let e = 0; e < t; e++) (i[e] = null), (n[e] = !1);
            (this._beginState = we.Zv(this._beginState, e, i)),
              (this._valid = we.Zv(this._valid, e, n)),
              (this._len += t);
          }
          _setValid(e, t) {
            this._ensureLine(e), (this._valid[e] = t);
          }
          _setBeginState(e, t) {
            this._ensureLine(e), (this._beginState[e] = t);
          }
          setEndState(e, t, i) {
            if (
              (this._setValid(t, !0),
              (this._invalidLineStartIndex = t + 1),
              t === e - 1)
            )
              return;
            const n = this.getBeginState(t + 1);
            if (null === n || !i.equals(n))
              return (
                this._setBeginState(t + 1, i), void this._invalidateLine(t + 1)
              );
            let r = t + 1;
            for (; r < e && this._isValid(r); ) r++;
            this._invalidLineStartIndex = r;
          }
          setFakeTokens(e) {
            this._setValid(e, !1);
          }
          applyEdits(e, t) {
            const i = e.endLineNumber - e.startLineNumber,
              n = t;
            for (let t = Math.min(i, n); t >= 0; t--)
              this._invalidateLine(e.startLineNumber + t - 1);
            this._acceptDeleteRange(e),
              this._acceptInsertText(
                new c.L(e.startLineNumber, e.startColumn),
                t
              );
          }
          _acceptDeleteRange(e) {
            e.startLineNumber - 1 >= this._len ||
              this._deleteLines(
                e.startLineNumber,
                e.endLineNumber - e.startLineNumber
              );
          }
          _acceptInsertText(e, t) {
            e.lineNumber - 1 >= this._len || this._insertLines(e.lineNumber, t);
          }
        }
        class De extends s.JT {
          constructor(e) {
            super(),
              (this._isDisposed = !1),
              (this._textModel = e),
              (this._tokenizationStateStore = new Me()),
              (this._tokenizationSupport = null),
              this._register(
                Se.RW.onDidChange((e) => {
                  const t = this._textModel.getLanguageIdentifier();
                  -1 !== e.changedLanguages.indexOf(t.language) &&
                    (this._resetTokenizationState(),
                    this._textModel.clearTokens());
                })
              ),
              this._register(
                this._textModel.onDidChangeRawContentFast((e) => {
                  e.containsEvent(1) && this._resetTokenizationState();
                })
              ),
              this._register(
                this._textModel.onDidChangeContentFast((e) => {
                  for (let t = 0, i = e.changes.length; t < i; t++) {
                    const i = e.changes[t],
                      [n] = (0, ce.QZ)(i.text);
                    this._tokenizationStateStore.applyEdits(i.range, n);
                  }
                  this._beginBackgroundTokenization();
                })
              ),
              this._register(
                this._textModel.onDidChangeAttached(() => {
                  this._beginBackgroundTokenization();
                })
              ),
              this._register(
                this._textModel.onDidChangeLanguage(() => {
                  this._resetTokenizationState(), this._textModel.clearTokens();
                })
              ),
              this._resetTokenizationState();
          }
          dispose() {
            (this._isDisposed = !0), super.dispose();
          }
          _resetTokenizationState() {
            const [e, t] = (function (e) {
              const t = e.getLanguageIdentifier();
              let i = e.isTooLargeForTokenization()
                  ? null
                  : Se.RW.get(t.language),
                r = null;
              if (i)
                try {
                  r = i.getInitialState();
                } catch (e) {
                  (0, n.dL)(e), (i = null);
                }
              return [i, r];
            })(this._textModel);
            (this._tokenizationSupport = e),
              this._tokenizationStateStore.flush(t),
              this._beginBackgroundTokenization();
          }
          _beginBackgroundTokenization() {
            this._textModel.isAttachedToEditor() &&
              this._hasLinesToTokenize() &&
              Le.xS(() => {
                this._isDisposed || this._revalidateTokensNow();
              });
          }
          _revalidateTokensNow(e = this._textModel.getLineCount()) {
            const t = new ce.DA(),
              i = xe.G.create(!1);
            for (
              ;
              this._hasLinesToTokenize() &&
              !(i.elapsed() > 1) &&
              !(this._tokenizeOneInvalidLine(t) >= e);

            );
            this._beginBackgroundTokenization(),
              this._textModel.setTokens(t.tokens);
          }
          tokenizeViewport(e, t) {
            const i = new ce.DA();
            this._tokenizeViewport(i, e, t),
              this._textModel.setTokens(i.tokens);
          }
          reset() {
            this._resetTokenizationState(), this._textModel.clearTokens();
          }
          forceTokenization(e) {
            const t = new ce.DA();
            this._updateTokensUntilLine(t, e),
              this._textModel.setTokens(t.tokens);
          }
          isCheapToTokenize(e) {
            if (!this._tokenizationSupport) return !0;
            const t = this._tokenizationStateStore.invalidLineStartIndex + 1;
            return (
              !(e > t) && (e < t || this._textModel.getLineLength(e) < 2048)
            );
          }
          _hasLinesToTokenize() {
            return (
              !!this._tokenizationSupport &&
              this._tokenizationStateStore.invalidLineStartIndex <
                this._textModel.getLineCount()
            );
          }
          _tokenizeOneInvalidLine(e) {
            if (!this._hasLinesToTokenize())
              return this._textModel.getLineCount() + 1;
            const t = this._tokenizationStateStore.invalidLineStartIndex + 1;
            return this._updateTokensUntilLine(e, t), t;
          }
          _updateTokensUntilLine(e, t) {
            if (!this._tokenizationSupport) return;
            const i = this._textModel.getLanguageIdentifier(),
              n = this._textModel.getLineCount(),
              r = t - 1;
            for (
              let t = this._tokenizationStateStore.invalidLineStartIndex;
              t <= r;
              t++
            ) {
              const r = this._textModel.getLineContent(t + 1),
                s = this._tokenizationStateStore.getBeginState(t),
                o = Ne(i, this._tokenizationSupport, r, s);
              e.add(t + 1, o.tokens),
                this._tokenizationStateStore.setEndState(n, t, o.endState),
                (t = this._tokenizationStateStore.invalidLineStartIndex - 1);
            }
          }
          _tokenizeViewport(e, t, i) {
            if (!this._tokenizationSupport) return;
            if (i <= this._tokenizationStateStore.invalidLineStartIndex) return;
            if (t <= this._tokenizationStateStore.invalidLineStartIndex)
              return void this._updateTokensUntilLine(e, i);
            let n = this._textModel.getLineFirstNonWhitespaceColumn(t),
              r = [],
              s = null;
            for (let e = t - 1; n > 0 && e >= 1; e--) {
              let t = this._textModel.getLineFirstNonWhitespaceColumn(e);
              if (0 !== t && t < n) {
                if (
                  ((s = this._tokenizationStateStore.getBeginState(e - 1)), s)
                )
                  break;
                r.push(this._textModel.getLineContent(e)), (n = t);
              }
            }
            s || (s = this._tokenizationSupport.getInitialState());
            const o = this._textModel.getLanguageIdentifier();
            let a = s;
            for (let e = r.length - 1; e >= 0; e--)
              a = Ne(o, this._tokenizationSupport, r[e], a).endState;
            for (let n = t; n <= i; n++) {
              let t = this._textModel.getLineContent(n),
                i = Ne(o, this._tokenizationSupport, t, a);
              e.add(n, i.tokens),
                this._tokenizationStateStore.setFakeTokens(n - 1),
                (a = i.endState);
            }
          }
        }
        function Ne(e, t, i, r) {
          let s = null;
          if (t)
            try {
              s = t.tokenize2(i, r.clone(), 0);
            } catch (e) {
              (0, n.dL)(e);
            }
          return (
            s || (s = (0, ke.mh)(e.id, i, r, 0)),
            Ce.A.convertToEndOffset(s.tokens, i.length),
            s
          );
        }
        var Ee = i(97461),
          Te = i(83831),
          Ie = i(40764),
          Oe = i(34227),
          Ae = i(41264);
        function Re(e, t) {
          return ('string' == typeof e
            ? (function (e) {
                const t = new ge();
                return t.acceptChunk(e), t.finish();
              })(e)
            : e
          ).create(t);
        }
        let Pe = 0;
        class Fe {
          constructor(e) {
            (this._source = e), (this._eos = !1);
          }
          read() {
            if (this._eos) return null;
            let e = [],
              t = 0,
              i = 0;
            for (;;) {
              let n = this._source.read();
              if (null === n)
                return (this._eos = !0), 0 === t ? null : e.join('');
              if ((n.length > 0 && ((e[t++] = n), (i += n.length)), i >= 65536))
                return e.join('');
            }
          }
        }
        const Be = () => {
          throw new Error('Invalid change accessor');
        };
        class We {
          constructor() {
            this._searchCanceledBrand = void 0;
          }
        }
        function Ye(e) {
          return e instanceof We ? null : e;
        }
        We.INSTANCE = new We();
        class He extends s.JT {
          constructor(e, t, i, n = null, s) {
            super(),
              (this._onWillDispose = this._register(new r.Q5())),
              (this.onWillDispose = this._onWillDispose.event),
              (this._onDidChangeDecorations = this._register(new Ze())),
              (this.onDidChangeDecorations = this._onDidChangeDecorations.event),
              (this._onDidChangeLanguage = this._register(new r.Q5())),
              (this.onDidChangeLanguage = this._onDidChangeLanguage.event),
              (this._onDidChangeLanguageConfiguration = this._register(
                new r.Q5()
              )),
              (this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event),
              (this._onDidChangeTokens = this._register(new r.Q5())),
              (this.onDidChangeTokens = this._onDidChangeTokens.event),
              (this._onDidChangeOptions = this._register(new r.Q5())),
              (this.onDidChangeOptions = this._onDidChangeOptions.event),
              (this._onDidChangeAttached = this._register(new r.Q5())),
              (this.onDidChangeAttached = this._onDidChangeAttached.event),
              (this._eventEmitter = this._register(new Je())),
              Pe++,
              (this.id = '$model' + Pe),
              (this.isForSimpleWidget = t.isForSimpleWidget),
              (this._associatedResource =
                null == n ? a.o.parse('inmemory://model/' + Pe) : n),
              (this._undoRedoService = s),
              (this._attachedEditorCount = 0),
              (this._buffer = Re(e, t.defaultEOL)),
              (this._options = He.resolveOptions(this._buffer, t));
            const l = this._buffer.getLineCount(),
              c = this._buffer.getValueLengthInRange(
                new d.e(1, 1, l, this._buffer.getLineLength(l) + 1),
                0
              );
            t.largeFileOptimizations
              ? (this._isTooLargeForTokenization =
                  c > He.LARGE_FILE_SIZE_THRESHOLD ||
                  l > He.LARGE_FILE_LINE_COUNT_THRESHOLD)
              : (this._isTooLargeForTokenization = !1),
              (this._isTooLargeForSyncing = c > He.MODEL_SYNC_LIMIT),
              (this._versionId = 1),
              (this._alternativeVersionId = 1),
              (this._initialUndoRedoSnapshot = null),
              (this._isDisposed = !1),
              (this._isDisposing = !1),
              (this._languageIdentifier = i || ke.pA),
              (this._languageRegistryListener = Te.zu.onDidChange((e) => {
                e.languageIdentifier.id === this._languageIdentifier.id &&
                  this._onDidChangeLanguageConfiguration.fire({});
              })),
              (this._instanceId = o.PJ(Pe)),
              (this._lastDecorationId = 0),
              (this._decorations = Object.create(null)),
              (this._decorationsTree = new je()),
              (this._commandManager = new g.NL(this, s)),
              (this._isUndoing = !1),
              (this._isRedoing = !1),
              (this._trimAutoWhitespaceLines = null),
              (this._tokens = new ce.Rl()),
              (this._tokens2 = new ce.cx()),
              (this._tokenization = new De(this));
          }
          static resolveOptions(e, t) {
            if (t.detectIndentation) {
              const i = m(e, t.tabSize, t.insertSpaces);
              return new u.dJ({
                tabSize: i.tabSize,
                indentSize: i.tabSize,
                insertSpaces: i.insertSpaces,
                trimAutoWhitespace: t.trimAutoWhitespace,
                defaultEOL: t.defaultEOL,
              });
            }
            return new u.dJ({
              tabSize: t.tabSize,
              indentSize: t.indentSize,
              insertSpaces: t.insertSpaces,
              trimAutoWhitespace: t.trimAutoWhitespace,
              defaultEOL: t.defaultEOL,
            });
          }
          onDidChangeRawContentFast(e) {
            return this._eventEmitter.fastEvent((t) =>
              e(t.rawContentChangedEvent)
            );
          }
          onDidChangeContentFast(e) {
            return this._eventEmitter.fastEvent((t) =>
              e(t.contentChangedEvent)
            );
          }
          onDidChangeContent(e) {
            return this._eventEmitter.slowEvent((t) =>
              e(t.contentChangedEvent)
            );
          }
          dispose() {
            (this._isDisposing = !0),
              this._onWillDispose.fire(),
              this._languageRegistryListener.dispose(),
              this._tokenization.dispose(),
              (this._isDisposed = !0),
              super.dispose(),
              (this._isDisposing = !1);
          }
          _assertNotDisposed() {
            if (this._isDisposed) throw new Error('Model is disposed!');
          }
          _emitContentChangedEvent(e, t) {
            this._isDisposing || this._eventEmitter.fire(new ye(e, t));
          }
          setValue(e) {
            if ((this._assertNotDisposed(), null === e)) return;
            const t = Re(e, this._options.defaultEOL);
            this.setValueFromTextBuffer(t);
          }
          _createContentChanged2(e, t, i, n, r, s, o) {
            return {
              changes: [{ range: e, rangeOffset: t, rangeLength: i, text: n }],
              eol: this._buffer.getEOL(),
              versionId: this.getVersionId(),
              isUndoing: r,
              isRedoing: s,
              isFlush: o,
            };
          }
          setValueFromTextBuffer(e) {
            if ((this._assertNotDisposed(), null === e)) return;
            const t = this.getFullModelRange(),
              i = this.getValueLengthInRange(t),
              n = this.getLineCount(),
              r = this.getLineMaxColumn(n);
            (this._buffer = e),
              this._increaseVersionId(),
              this._tokens.flush(),
              this._tokens2.flush(),
              (this._decorations = Object.create(null)),
              (this._decorationsTree = new je()),
              this._commandManager.clear(),
              (this._trimAutoWhitespaceLines = null),
              this._emitContentChangedEvent(
                new ve([new fe()], this._versionId, !1, !1),
                this._createContentChanged2(
                  new d.e(1, 1, n, r),
                  0,
                  i,
                  this.getValue(),
                  !1,
                  !1,
                  !0
                )
              );
          }
          setEOL(e) {
            this._assertNotDisposed();
            const t = 1 === e ? '\r\n' : '\n';
            if (this._buffer.getEOL() === t) return;
            const i = this.getFullModelRange(),
              n = this.getValueLengthInRange(i),
              r = this.getLineCount(),
              s = this.getLineMaxColumn(r);
            this._onBeforeEOLChange(),
              this._buffer.setEOL(t),
              this._increaseVersionId(),
              this._onAfterEOLChange(),
              this._emitContentChangedEvent(
                new ve([new be()], this._versionId, !1, !1),
                this._createContentChanged2(
                  new d.e(1, 1, r, s),
                  0,
                  n,
                  this.getValue(),
                  !1,
                  !1,
                  !1
                )
              );
          }
          _onBeforeEOLChange() {
            const e = this.getVersionId(),
              t = this._decorationsTree.search(0, !1, !1, e);
            this._ensureNodesHaveRanges(t);
          }
          _onAfterEOLChange() {
            const e = this.getVersionId(),
              t = this._decorationsTree.collectNodesPostOrder();
            for (let i = 0, n = t.length; i < n; i++) {
              const n = t[i],
                r = n.cachedAbsoluteStart - n.start,
                s = this._buffer.getOffsetAt(
                  n.range.startLineNumber,
                  n.range.startColumn
                ),
                o = this._buffer.getOffsetAt(
                  n.range.endLineNumber,
                  n.range.endColumn
                );
              (n.cachedAbsoluteStart = s),
                (n.cachedAbsoluteEnd = o),
                (n.cachedVersionId = e),
                (n.start = s - r),
                (n.end = o - r),
                B(n);
            }
          }
          onBeforeAttached() {
            this._attachedEditorCount++,
              1 === this._attachedEditorCount &&
                this._onDidChangeAttached.fire(void 0);
          }
          onBeforeDetached() {
            this._attachedEditorCount--,
              0 === this._attachedEditorCount &&
                this._onDidChangeAttached.fire(void 0);
          }
          isAttachedToEditor() {
            return this._attachedEditorCount > 0;
          }
          getAttachedEditorCount() {
            return this._attachedEditorCount;
          }
          isTooLargeForSyncing() {
            return this._isTooLargeForSyncing;
          }
          isTooLargeForTokenization() {
            return this._isTooLargeForTokenization;
          }
          isDisposed() {
            return this._isDisposed;
          }
          isDominatedByLongLines() {
            if ((this._assertNotDisposed(), this.isTooLargeForTokenization()))
              return !1;
            let e = 0,
              t = 0;
            const i = this._buffer.getLineCount();
            for (let n = 1; n <= i; n++) {
              const i = this._buffer.getLineLength(n);
              i >= 1e4 ? (t += i) : (e += i);
            }
            return t > e;
          }
          get uri() {
            return this._associatedResource;
          }
          getOptions() {
            return this._assertNotDisposed(), this._options;
          }
          getFormattingOptions() {
            return {
              tabSize: this._options.indentSize,
              insertSpaces: this._options.insertSpaces,
            };
          }
          updateOptions(e) {
            this._assertNotDisposed();
            let t = void 0 !== e.tabSize ? e.tabSize : this._options.tabSize,
              i =
                void 0 !== e.indentSize
                  ? e.indentSize
                  : this._options.indentSize,
              n =
                void 0 !== e.insertSpaces
                  ? e.insertSpaces
                  : this._options.insertSpaces,
              r =
                void 0 !== e.trimAutoWhitespace
                  ? e.trimAutoWhitespace
                  : this._options.trimAutoWhitespace,
              s = new u.dJ({
                tabSize: t,
                indentSize: i,
                insertSpaces: n,
                defaultEOL: this._options.defaultEOL,
                trimAutoWhitespace: r,
              });
            if (this._options.equals(s)) return;
            let o = this._options.createChangeEvent(s);
            (this._options = s), this._onDidChangeOptions.fire(o);
          }
          detectIndentation(e, t) {
            this._assertNotDisposed();
            let i = m(this._buffer, t, e);
            this.updateOptions({
              insertSpaces: i.insertSpaces,
              tabSize: i.tabSize,
              indentSize: i.tabSize,
            });
          }
          static _normalizeIndentationFromWhitespace(e, t, i) {
            let n = 0;
            for (let i = 0; i < e.length; i++)
              '\t' === e.charAt(i) ? (n += t) : n++;
            let r = '';
            if (!i) {
              let e = Math.floor(n / t);
              n %= t;
              for (let t = 0; t < e; t++) r += '\t';
            }
            for (let e = 0; e < n; e++) r += ' ';
            return r;
          }
          static normalizeIndentation(e, t, i) {
            let n = o.LC(e);
            return (
              -1 === n && (n = e.length),
              He._normalizeIndentationFromWhitespace(e.substring(0, n), t, i) +
                e.substring(n)
            );
          }
          normalizeIndentation(e) {
            return (
              this._assertNotDisposed(),
              He.normalizeIndentation(
                e,
                this._options.indentSize,
                this._options.insertSpaces
              )
            );
          }
          getVersionId() {
            return this._assertNotDisposed(), this._versionId;
          }
          mightContainRTL() {
            return this._buffer.mightContainRTL();
          }
          mightContainUnusualLineTerminators() {
            return this._buffer.mightContainUnusualLineTerminators();
          }
          removeUnusualLineTerminators(e = null) {
            const t = this.findMatches(
              o.Qe.source,
              !1,
              !0,
              !1,
              null,
              !1,
              1073741824
            );
            this._buffer.resetMightContainUnusualLineTerminators(),
              this.pushEditOperations(
                e,
                t.map((e) => ({ range: e.range, text: null })),
                () => null
              );
          }
          mightContainNonBasicASCII() {
            return this._buffer.mightContainNonBasicASCII();
          }
          getAlternativeVersionId() {
            return this._assertNotDisposed(), this._alternativeVersionId;
          }
          getOffsetAt(e) {
            this._assertNotDisposed();
            let t = this._validatePosition(e.lineNumber, e.column, 0);
            return this._buffer.getOffsetAt(t.lineNumber, t.column);
          }
          getPositionAt(e) {
            this._assertNotDisposed();
            let t = Math.min(this._buffer.getLength(), Math.max(0, e));
            return this._buffer.getPositionAt(t);
          }
          _increaseVersionId() {
            (this._versionId = this._versionId + 1),
              (this._alternativeVersionId = this._versionId);
          }
          _overwriteVersionId(e) {
            this._versionId = e;
          }
          _overwriteAlternativeVersionId(e) {
            this._alternativeVersionId = e;
          }
          _overwriteInitialUndoRedoSnapshot(e) {
            this._initialUndoRedoSnapshot = e;
          }
          getValue(e, t = !1) {
            this._assertNotDisposed();
            const i = this.getFullModelRange(),
              n = this.getValueInRange(i, e);
            return t ? this._buffer.getBOM() + n : n;
          }
          createSnapshot(e = !1) {
            return new Fe(this._buffer.createSnapshot(e));
          }
          getValueLength(e, t = !1) {
            this._assertNotDisposed();
            const i = this.getFullModelRange(),
              n = this.getValueLengthInRange(i, e);
            return t ? this._buffer.getBOM().length + n : n;
          }
          getValueInRange(e, t = 0) {
            return (
              this._assertNotDisposed(),
              this._buffer.getValueInRange(this.validateRange(e), t)
            );
          }
          getValueLengthInRange(e, t = 0) {
            return (
              this._assertNotDisposed(),
              this._buffer.getValueLengthInRange(this.validateRange(e), t)
            );
          }
          getCharacterCountInRange(e, t = 0) {
            return (
              this._assertNotDisposed(),
              this._buffer.getCharacterCountInRange(this.validateRange(e), t)
            );
          }
          getLineCount() {
            return this._assertNotDisposed(), this._buffer.getLineCount();
          }
          getLineContent(e) {
            if ((this._assertNotDisposed(), e < 1 || e > this.getLineCount()))
              throw new Error('Illegal value for lineNumber');
            return this._buffer.getLineContent(e);
          }
          getLineLength(e) {
            if ((this._assertNotDisposed(), e < 1 || e > this.getLineCount()))
              throw new Error('Illegal value for lineNumber');
            return this._buffer.getLineLength(e);
          }
          getLinesContent() {
            return this._assertNotDisposed(), this._buffer.getLinesContent();
          }
          getEOL() {
            return this._assertNotDisposed(), this._buffer.getEOL();
          }
          getLineMinColumn(e) {
            return this._assertNotDisposed(), 1;
          }
          getLineMaxColumn(e) {
            if ((this._assertNotDisposed(), e < 1 || e > this.getLineCount()))
              throw new Error('Illegal value for lineNumber');
            return this._buffer.getLineLength(e) + 1;
          }
          getLineFirstNonWhitespaceColumn(e) {
            if ((this._assertNotDisposed(), e < 1 || e > this.getLineCount()))
              throw new Error('Illegal value for lineNumber');
            return this._buffer.getLineFirstNonWhitespaceColumn(e);
          }
          getLineLastNonWhitespaceColumn(e) {
            if ((this._assertNotDisposed(), e < 1 || e > this.getLineCount()))
              throw new Error('Illegal value for lineNumber');
            return this._buffer.getLineLastNonWhitespaceColumn(e);
          }
          _validateRangeRelaxedNoAllocations(e) {
            const t = this._buffer.getLineCount(),
              i = e.startLineNumber,
              n = e.startColumn;
            let r, s;
            if (i < 1) (r = 1), (s = 1);
            else if (i > t) (r = t), (s = this.getLineMaxColumn(r));
            else if (((r = 0 | i), n <= 1)) s = 1;
            else {
              const e = this.getLineMaxColumn(r);
              s = n >= e ? e : 0 | n;
            }
            const o = e.endLineNumber,
              a = e.endColumn;
            let l, c;
            if (o < 1) (l = 1), (c = 1);
            else if (o > t) (l = t), (c = this.getLineMaxColumn(l));
            else if (((l = 0 | o), a <= 1)) c = 1;
            else {
              const e = this.getLineMaxColumn(l);
              c = a >= e ? e : 0 | a;
            }
            return i === r &&
              n === s &&
              o === l &&
              a === c &&
              e instanceof d.e &&
              !(e instanceof h.Y)
              ? e
              : new d.e(r, s, l, c);
          }
          _isValidPosition(e, t, i) {
            if ('number' != typeof e || 'number' != typeof t) return !1;
            if (isNaN(e) || isNaN(t)) return !1;
            if (e < 1 || t < 1) return !1;
            if ((0 | e) !== e || (0 | t) !== t) return !1;
            if (e > this._buffer.getLineCount()) return !1;
            if (1 === t) return !0;
            if (t > this.getLineMaxColumn(e)) return !1;
            if (1 === i) {
              const i = this._buffer.getLineCharCode(e, t - 2);
              if (o.ZG(i)) return !1;
            }
            return !0;
          }
          _validatePosition(e, t, i) {
            const n = Math.floor('number' != typeof e || isNaN(e) ? 1 : e),
              r = Math.floor('number' != typeof t || isNaN(t) ? 1 : t),
              s = this._buffer.getLineCount();
            if (n < 1) return new c.L(1, 1);
            if (n > s) return new c.L(s, this.getLineMaxColumn(s));
            if (r <= 1) return new c.L(n, 1);
            const a = this.getLineMaxColumn(n);
            if (r >= a) return new c.L(n, a);
            if (1 === i) {
              const e = this._buffer.getLineCharCode(n, r - 2);
              if (o.ZG(e)) return new c.L(n, r - 1);
            }
            return new c.L(n, r);
          }
          validatePosition(e) {
            return (
              this._assertNotDisposed(),
              e instanceof c.L &&
              this._isValidPosition(e.lineNumber, e.column, 1)
                ? e
                : this._validatePosition(e.lineNumber, e.column, 1)
            );
          }
          _isValidRange(e, t) {
            const i = e.startLineNumber,
              n = e.startColumn,
              r = e.endLineNumber,
              s = e.endColumn;
            if (!this._isValidPosition(i, n, 0)) return !1;
            if (!this._isValidPosition(r, s, 0)) return !1;
            if (1 === t) {
              const e = n > 1 ? this._buffer.getLineCharCode(i, n - 2) : 0,
                t =
                  s > 1 && s <= this._buffer.getLineLength(r)
                    ? this._buffer.getLineCharCode(r, s - 2)
                    : 0,
                a = o.ZG(e),
                l = o.ZG(t);
              return !a && !l;
            }
            return !0;
          }
          validateRange(e) {
            if (
              (this._assertNotDisposed(),
              e instanceof d.e &&
                !(e instanceof h.Y) &&
                this._isValidRange(e, 1))
            )
              return e;
            const t = this._validatePosition(
                e.startLineNumber,
                e.startColumn,
                0
              ),
              i = this._validatePosition(e.endLineNumber, e.endColumn, 0),
              n = t.lineNumber,
              r = t.column,
              s = i.lineNumber,
              a = i.column;
            {
              const e = r > 1 ? this._buffer.getLineCharCode(n, r - 2) : 0,
                t =
                  a > 1 && a <= this._buffer.getLineLength(s)
                    ? this._buffer.getLineCharCode(s, a - 2)
                    : 0,
                i = o.ZG(e),
                l = o.ZG(t);
              return i || l
                ? n === s && r === a
                  ? new d.e(n, r - 1, s, a - 1)
                  : i && l
                  ? new d.e(n, r - 1, s, a + 1)
                  : i
                  ? new d.e(n, r - 1, s, a)
                  : new d.e(n, r, s, a + 1)
                : new d.e(n, r, s, a);
            }
          }
          modifyPosition(e, t) {
            this._assertNotDisposed();
            let i = this.getOffsetAt(e) + t;
            return this.getPositionAt(
              Math.min(this._buffer.getLength(), Math.max(0, i))
            );
          }
          getFullModelRange() {
            this._assertNotDisposed();
            const e = this.getLineCount();
            return new d.e(1, 1, e, this.getLineMaxColumn(e));
          }
          findMatchesLineByLine(e, t, i, n) {
            return this._buffer.findMatchesLineByLine(e, t, i, n);
          }
          findMatches(e, t, i, n, r, s, o = 999) {
            this._assertNotDisposed();
            let a = null;
            null !== t &&
              (Array.isArray(t) || (t = [t]),
              t.every((e) => d.e.isIRange(e)) &&
                (a = t.map((e) => this.validateRange(e)))),
              null === a && (a = [this.getFullModelRange()]),
              (a = a.sort(
                (e, t) =>
                  e.startLineNumber - t.startLineNumber ||
                  e.startColumn - t.startColumn
              ));
            const l = [];
            let c;
            if (
              (l.push(
                a.reduce((e, t) =>
                  d.e.areIntersecting(e, t) ? e.plusRange(t) : (l.push(e), t)
                )
              ),
              !i && e.indexOf('\n') < 0)
            ) {
              const t = new X.bc(e, i, n, r).parseSearchRequest();
              if (!t) return [];
              c = (e) => this.findMatchesLineByLine(e, t, s, o);
            } else
              c = (t) => X.pM.findMatches(this, new X.bc(e, i, n, r), t, s, o);
            return l.map(c).reduce((e, t) => e.concat(t), []);
          }
          findNextMatch(e, t, i, n, r, s) {
            this._assertNotDisposed();
            const o = this.validatePosition(t);
            if (!i && e.indexOf('\n') < 0) {
              const t = new X.bc(e, i, n, r).parseSearchRequest();
              if (!t) return null;
              const a = this.getLineCount();
              let l = new d.e(
                  o.lineNumber,
                  o.column,
                  a,
                  this.getLineMaxColumn(a)
                ),
                c = this.findMatchesLineByLine(l, t, s, 1);
              return (
                X.pM.findNextMatch(this, new X.bc(e, i, n, r), o, s),
                c.length > 0
                  ? c[0]
                  : ((l = new d.e(
                      1,
                      1,
                      o.lineNumber,
                      this.getLineMaxColumn(o.lineNumber)
                    )),
                    (c = this.findMatchesLineByLine(l, t, s, 1)),
                    c.length > 0 ? c[0] : null)
              );
            }
            return X.pM.findNextMatch(this, new X.bc(e, i, n, r), o, s);
          }
          findPreviousMatch(e, t, i, n, r, s) {
            this._assertNotDisposed();
            const o = this.validatePosition(t);
            return X.pM.findPreviousMatch(this, new X.bc(e, i, n, r), o, s);
          }
          pushStackElement() {
            this._commandManager.pushStackElement();
          }
          pushEOL(e) {
            if (('\n' === this.getEOL() ? 0 : 1) !== e)
              try {
                this._onDidChangeDecorations.beginDeferredEmit(),
                  this._eventEmitter.beginDeferredEmit(),
                  null === this._initialUndoRedoSnapshot &&
                    (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(
                      this.uri
                    )),
                  this._commandManager.pushEOL(e);
              } finally {
                this._eventEmitter.endDeferredEmit(),
                  this._onDidChangeDecorations.endDeferredEmit();
              }
          }
          _validateEditOperation(e) {
            return e instanceof u.Qi
              ? e
              : new u.Qi(
                  e.identifier || null,
                  this.validateRange(e.range),
                  e.text,
                  e.forceMoveMarkers || !1,
                  e.isAutoWhitespaceEdit || !1,
                  e._isTracked || !1
                );
          }
          _validateEditOperations(e) {
            const t = [];
            for (let i = 0, n = e.length; i < n; i++)
              t[i] = this._validateEditOperation(e[i]);
            return t;
          }
          pushEditOperations(e, t, i) {
            try {
              return (
                this._onDidChangeDecorations.beginDeferredEmit(),
                this._eventEmitter.beginDeferredEmit(),
                this._pushEditOperations(e, this._validateEditOperations(t), i)
              );
            } finally {
              this._eventEmitter.endDeferredEmit(),
                this._onDidChangeDecorations.endDeferredEmit();
            }
          }
          _pushEditOperations(e, t, i) {
            if (
              this._options.trimAutoWhitespace &&
              this._trimAutoWhitespaceLines
            ) {
              let i = t.map((e) => ({
                  range: this.validateRange(e.range),
                  text: e.text,
                })),
                n = !0;
              if (e)
                for (let t = 0, r = e.length; t < r; t++) {
                  let r = e[t],
                    s = !1;
                  for (let e = 0, t = i.length; e < t; e++) {
                    let t = i[e].range,
                      n = t.startLineNumber > r.endLineNumber,
                      o = r.startLineNumber > t.endLineNumber;
                    if (!n && !o) {
                      s = !0;
                      break;
                    }
                  }
                  if (!s) {
                    n = !1;
                    break;
                  }
                }
              if (n)
                for (
                  let e = 0, n = this._trimAutoWhitespaceLines.length;
                  e < n;
                  e++
                ) {
                  let n = this._trimAutoWhitespaceLines[e],
                    r = this.getLineMaxColumn(n),
                    s = !0;
                  for (let e = 0, t = i.length; e < t; e++) {
                    let t = i[e].range,
                      o = i[e].text;
                    if (
                      !(
                        n < t.startLineNumber ||
                        n > t.endLineNumber ||
                        (n === t.startLineNumber &&
                          t.startColumn === r &&
                          t.isEmpty() &&
                          o &&
                          o.length > 0 &&
                          '\n' === o.charAt(0)) ||
                        (n === t.startLineNumber &&
                          1 === t.startColumn &&
                          t.isEmpty() &&
                          o &&
                          o.length > 0 &&
                          '\n' === o.charAt(o.length - 1))
                      )
                    ) {
                      s = !1;
                      break;
                    }
                  }
                  if (s) {
                    const e = new d.e(n, 1, n, r);
                    t.push(new u.Qi(null, e, null, !1, !1, !1));
                  }
                }
              this._trimAutoWhitespaceLines = null;
            }
            return (
              null === this._initialUndoRedoSnapshot &&
                (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(
                  this.uri
                )),
              this._commandManager.pushEditOperation(e, t, i)
            );
          }
          _applyUndo(e, t, i, n) {
            const r = e.map((e) => {
              const t = this.getPositionAt(e.newPosition),
                i = this.getPositionAt(e.newEnd);
              return {
                range: new d.e(t.lineNumber, t.column, i.lineNumber, i.column),
                text: e.oldText,
              };
            });
            this._applyUndoRedoEdits(r, t, !0, !1, i, n);
          }
          _applyRedo(e, t, i, n) {
            const r = e.map((e) => {
              const t = this.getPositionAt(e.oldPosition),
                i = this.getPositionAt(e.oldEnd);
              return {
                range: new d.e(t.lineNumber, t.column, i.lineNumber, i.column),
                text: e.newText,
              };
            });
            this._applyUndoRedoEdits(r, t, !1, !0, i, n);
          }
          _applyUndoRedoEdits(e, t, i, n, r, s) {
            try {
              this._onDidChangeDecorations.beginDeferredEmit(),
                this._eventEmitter.beginDeferredEmit(),
                (this._isUndoing = i),
                (this._isRedoing = n),
                this.applyEdits(e, !1),
                this.setEOL(t),
                this._overwriteAlternativeVersionId(r);
            } finally {
              (this._isUndoing = !1),
                (this._isRedoing = !1),
                this._eventEmitter.endDeferredEmit(s),
                this._onDidChangeDecorations.endDeferredEmit();
            }
          }
          applyEdits(e, t = !1) {
            try {
              this._onDidChangeDecorations.beginDeferredEmit(),
                this._eventEmitter.beginDeferredEmit();
              const i = this._validateEditOperations(e);
              return this._doApplyEdits(i, t);
            } finally {
              this._eventEmitter.endDeferredEmit(),
                this._onDidChangeDecorations.endDeferredEmit();
            }
          }
          _doApplyEdits(e, t) {
            const i = this._buffer.getLineCount(),
              n = this._buffer.applyEdits(
                e,
                this._options.trimAutoWhitespace,
                t
              ),
              r = this._buffer.getLineCount(),
              s = n.changes;
            if (
              ((this._trimAutoWhitespaceLines =
                n.trimAutoWhitespaceLineNumbers),
              0 !== s.length)
            ) {
              let e = [],
                t = i;
              for (let i = 0, n = s.length; i < n; i++) {
                const n = s[i],
                  [o, a, l] = (0, ce.QZ)(n.text);
                this._tokens.acceptEdit(n.range, o, a),
                  this._tokens2.acceptEdit(
                    n.range,
                    o,
                    a,
                    l,
                    n.text.length > 0 ? n.text.charCodeAt(0) : 0
                  ),
                  this._onDidChangeDecorations.fire(),
                  this._decorationsTree.acceptReplace(
                    n.rangeOffset,
                    n.rangeLength,
                    n.text.length,
                    n.forceMoveMarkers
                  );
                const c = n.range.startLineNumber,
                  d = n.range.endLineNumber,
                  h = d - c,
                  u = o,
                  g = Math.min(h, u),
                  f = u - h;
                for (let i = g; i >= 0; i--) {
                  const n = c + i,
                    s = r - t - f + n;
                  e.push(new pe(n, this.getLineContent(s)));
                }
                if (g < h) {
                  const t = c + g;
                  e.push(new me(t + 1, d));
                }
                if (g < u) {
                  const i = c + g,
                    n = u - g,
                    s = r - t - n + i + 1;
                  let o = [];
                  for (let e = 0; e < n; e++) {
                    let t = s + e;
                    o[t - s] = this.getLineContent(t);
                  }
                  e.push(new _e(i + 1, c + u, o));
                }
                t += f;
              }
              this._increaseVersionId(),
                this._emitContentChangedEvent(
                  new ve(
                    e,
                    this.getVersionId(),
                    this._isUndoing,
                    this._isRedoing
                  ),
                  {
                    changes: s,
                    eol: this._buffer.getEOL(),
                    versionId: this.getVersionId(),
                    isUndoing: this._isUndoing,
                    isRedoing: this._isRedoing,
                    isFlush: !1,
                  }
                );
            }
            return null === n.reverseEdits ? void 0 : n.reverseEdits;
          }
          undo() {
            this._undoRedoService.undo(this.uri);
          }
          canUndo() {
            return this._undoRedoService.canUndo(this.uri);
          }
          redo() {
            this._undoRedoService.redo(this.uri);
          }
          canRedo() {
            return this._undoRedoService.canRedo(this.uri);
          }
          changeDecorations(e, t = 0) {
            this._assertNotDisposed();
            try {
              return (
                this._onDidChangeDecorations.beginDeferredEmit(),
                this._changeDecorations(t, e)
              );
            } finally {
              this._onDidChangeDecorations.endDeferredEmit();
            }
          }
          _changeDecorations(e, t) {
            let i = {
                addDecoration: (t, i) =>
                  this._deltaDecorationsImpl(
                    e,
                    [],
                    [{ range: t, options: i }]
                  )[0],
                changeDecoration: (e, t) => {
                  this._changeDecorationImpl(e, t);
                },
                changeDecorationOptions: (e, t) => {
                  this._changeDecorationOptionsImpl(e, Ge(t));
                },
                removeDecoration: (t) => {
                  this._deltaDecorationsImpl(e, [t], []);
                },
                deltaDecorations: (t, i) =>
                  0 === t.length && 0 === i.length
                    ? []
                    : this._deltaDecorationsImpl(e, t, i),
              },
              r = null;
            try {
              r = t(i);
            } catch (e) {
              (0, n.dL)(e);
            }
            return (
              (i.addDecoration = Be),
              (i.changeDecoration = Be),
              (i.changeDecorationOptions = Be),
              (i.removeDecoration = Be),
              (i.deltaDecorations = Be),
              r
            );
          }
          deltaDecorations(e, t, i = 0) {
            if (
              (this._assertNotDisposed(),
              e || (e = []),
              0 === e.length && 0 === t.length)
            )
              return [];
            try {
              return (
                this._onDidChangeDecorations.beginDeferredEmit(),
                this._deltaDecorationsImpl(i, e, t)
              );
            } finally {
              this._onDidChangeDecorations.endDeferredEmit();
            }
          }
          _getTrackedRange(e) {
            return this.getDecorationRange(e);
          }
          _setTrackedRange(e, t, i) {
            const n = e ? this._decorations[e] : null;
            if (!n)
              return t
                ? this._deltaDecorationsImpl(
                    0,
                    [],
                    [{ range: t, options: qe[i] }]
                  )[0]
                : null;
            if (!t)
              return (
                this._decorationsTree.delete(n),
                delete this._decorations[n.id],
                null
              );
            const r = this._validateRangeRelaxedNoAllocations(t),
              s = this._buffer.getOffsetAt(r.startLineNumber, r.startColumn),
              o = this._buffer.getOffsetAt(r.endLineNumber, r.endColumn);
            return (
              this._decorationsTree.delete(n),
              n.reset(this.getVersionId(), s, o, r),
              n.setOptions(qe[i]),
              this._decorationsTree.insert(n),
              n.id
            );
          }
          removeAllDecorationsWithOwnerId(e) {
            if (this._isDisposed) return;
            const t = this._decorationsTree.collectNodesFromOwner(e);
            for (let e = 0, i = t.length; e < i; e++) {
              const i = t[e];
              this._decorationsTree.delete(i), delete this._decorations[i.id];
            }
          }
          getDecorationOptions(e) {
            const t = this._decorations[e];
            return t ? t.options : null;
          }
          getDecorationRange(e) {
            const t = this._decorations[e];
            if (!t) return null;
            const i = this.getVersionId();
            return (
              t.cachedVersionId !== i &&
                this._decorationsTree.resolveNode(t, i),
              null === t.range &&
                (t.range = this._getRangeAt(
                  t.cachedAbsoluteStart,
                  t.cachedAbsoluteEnd
                )),
              t.range
            );
          }
          getLineDecorations(e, t = 0, i = !1) {
            return e < 1 || e > this.getLineCount()
              ? []
              : this.getLinesDecorations(e, e, t, i);
          }
          getLinesDecorations(e, t, i = 0, n = !1) {
            let r = this.getLineCount(),
              s = Math.min(r, Math.max(1, e)),
              o = Math.min(r, Math.max(1, t)),
              a = this.getLineMaxColumn(o);
            return this._getDecorationsInRange(new d.e(s, 1, o, a), i, n);
          }
          getDecorationsInRange(e, t = 0, i = !1) {
            let n = this.validateRange(e);
            return this._getDecorationsInRange(n, t, i);
          }
          getOverviewRulerDecorations(e = 0, t = !1) {
            const i = this.getVersionId(),
              n = this._decorationsTree.search(e, t, !0, i);
            return this._ensureNodesHaveRanges(n);
          }
          getAllDecorations(e = 0, t = !1) {
            const i = this.getVersionId(),
              n = this._decorationsTree.search(e, t, !1, i);
            return this._ensureNodesHaveRanges(n);
          }
          _getDecorationsInRange(e, t, i) {
            const n = this._buffer.getOffsetAt(
                e.startLineNumber,
                e.startColumn
              ),
              r = this._buffer.getOffsetAt(e.endLineNumber, e.endColumn),
              s = this.getVersionId(),
              o = this._decorationsTree.intervalSearch(n, r, t, i, s);
            return this._ensureNodesHaveRanges(o);
          }
          _ensureNodesHaveRanges(e) {
            for (let t = 0, i = e.length; t < i; t++) {
              const i = e[t];
              null === i.range &&
                (i.range = this._getRangeAt(
                  i.cachedAbsoluteStart,
                  i.cachedAbsoluteEnd
                ));
            }
            return e;
          }
          _getRangeAt(e, t) {
            return this._buffer.getRangeAt(e, t - e);
          }
          _changeDecorationImpl(e, t) {
            const i = this._decorations[e];
            if (!i) return;
            const n = this._validateRangeRelaxedNoAllocations(t),
              r = this._buffer.getOffsetAt(n.startLineNumber, n.startColumn),
              s = this._buffer.getOffsetAt(n.endLineNumber, n.endColumn);
            this._decorationsTree.delete(i),
              i.reset(this.getVersionId(), r, s, n),
              this._decorationsTree.insert(i),
              this._onDidChangeDecorations.checkAffectedAndFire(i.options);
          }
          _changeDecorationOptionsImpl(e, t) {
            const i = this._decorations[e];
            if (!i) return;
            const n = !(
                !i.options.overviewRuler || !i.options.overviewRuler.color
              ),
              r = !(!t.overviewRuler || !t.overviewRuler.color);
            this._onDidChangeDecorations.checkAffectedAndFire(i.options),
              this._onDidChangeDecorations.checkAffectedAndFire(t),
              n !== r
                ? (this._decorationsTree.delete(i),
                  i.setOptions(t),
                  this._decorationsTree.insert(i))
                : i.setOptions(t);
          }
          _deltaDecorationsImpl(e, t, i) {
            const n = this.getVersionId(),
              r = t.length;
            let s = 0;
            const o = i.length;
            let a = 0,
              l = new Array(o);
            for (; s < r || a < o; ) {
              let c = null;
              if (s < r) {
                do {
                  c = this._decorations[t[s++]];
                } while (!c && s < r);
                c &&
                  (this._decorationsTree.delete(c),
                  this._onDidChangeDecorations.checkAffectedAndFire(c.options));
              }
              if (a < o) {
                if (!c) {
                  const e = ++this._lastDecorationId,
                    t = `${this._instanceId};${e}`;
                  (c = new M(t, 0, 0)), (this._decorations[t] = c);
                }
                const t = i[a],
                  r = this._validateRangeRelaxedNoAllocations(t.range),
                  s = Ge(t.options),
                  o = this._buffer.getOffsetAt(
                    r.startLineNumber,
                    r.startColumn
                  ),
                  d = this._buffer.getOffsetAt(r.endLineNumber, r.endColumn);
                (c.ownerId = e),
                  c.reset(n, o, d, r),
                  c.setOptions(s),
                  this._onDidChangeDecorations.checkAffectedAndFire(s),
                  this._decorationsTree.insert(c),
                  (l[a] = c.id),
                  a++;
              } else c && delete this._decorations[c.id];
            }
            return l;
          }
          setTokens(e) {
            if (0 === e.length) return;
            let t = [];
            for (let i = 0, n = e.length; i < n; i++) {
              const n = e[i];
              let r = 0,
                s = 0,
                o = !1;
              for (let e = 0, t = n.tokens.length; e < t; e++) {
                const t = n.startLineNumber + e;
                o
                  ? (this._tokens.setTokens(
                      this._languageIdentifier.id,
                      t - 1,
                      this._buffer.getLineLength(t),
                      n.tokens[e],
                      !1
                    ),
                    (s = t))
                  : this._tokens.setTokens(
                      this._languageIdentifier.id,
                      t - 1,
                      this._buffer.getLineLength(t),
                      n.tokens[e],
                      !0
                    ) && ((o = !0), (r = t), (s = t));
              }
              o && t.push({ fromLineNumber: r, toLineNumber: s });
            }
            t.length > 0 &&
              this._emitModelTokensChangedEvent({
                tokenizationSupportChanged: !1,
                semanticTokensApplied: !1,
                ranges: t,
              });
          }
          setSemanticTokens(e, t) {
            this._tokens2.set(e, t),
              this._emitModelTokensChangedEvent({
                tokenizationSupportChanged: !1,
                semanticTokensApplied: null !== e,
                ranges: [
                  { fromLineNumber: 1, toLineNumber: this.getLineCount() },
                ],
              });
          }
          hasSemanticTokens() {
            return this._tokens2.isComplete();
          }
          setPartialSemanticTokens(e, t) {
            if (this.hasSemanticTokens()) return;
            const i = this._tokens2.setPartial(e, t);
            this._emitModelTokensChangedEvent({
              tokenizationSupportChanged: !1,
              semanticTokensApplied: !0,
              ranges: [
                {
                  fromLineNumber: i.startLineNumber,
                  toLineNumber: i.endLineNumber,
                },
              ],
            });
          }
          tokenizeViewport(e, t) {
            (e = Math.max(1, e)),
              (t = Math.min(this._buffer.getLineCount(), t)),
              this._tokenization.tokenizeViewport(e, t);
          }
          clearTokens() {
            this._tokens.flush(),
              this._emitModelTokensChangedEvent({
                tokenizationSupportChanged: !0,
                semanticTokensApplied: !1,
                ranges: [
                  {
                    fromLineNumber: 1,
                    toLineNumber: this._buffer.getLineCount(),
                  },
                ],
              });
          }
          _emitModelTokensChangedEvent(e) {
            this._isDisposing || this._onDidChangeTokens.fire(e);
          }
          resetTokenization() {
            this._tokenization.reset();
          }
          forceTokenization(e) {
            if (e < 1 || e > this.getLineCount())
              throw new Error('Illegal value for lineNumber');
            this._tokenization.forceTokenization(e);
          }
          isCheapToTokenize(e) {
            return this._tokenization.isCheapToTokenize(e);
          }
          tokenizeIfCheap(e) {
            this.isCheapToTokenize(e) && this.forceTokenization(e);
          }
          getLineTokens(e) {
            if (e < 1 || e > this.getLineCount())
              throw new Error('Illegal value for lineNumber');
            return this._getLineTokens(e);
          }
          _getLineTokens(e) {
            const t = this.getLineContent(e),
              i = this._tokens.getTokens(this._languageIdentifier.id, e - 1, t);
            return this._tokens2.addSemanticTokens(e, i);
          }
          getLanguageIdentifier() {
            return this._languageIdentifier;
          }
          getModeId() {
            return this._languageIdentifier.language;
          }
          setMode(e) {
            if (this._languageIdentifier.id === e.id) return;
            let t = {
              oldLanguage: this._languageIdentifier.language,
              newLanguage: e.language,
            };
            (this._languageIdentifier = e),
              this._onDidChangeLanguage.fire(t),
              this._onDidChangeLanguageConfiguration.fire({});
          }
          getLanguageIdAtPosition(e, t) {
            const i = this.validatePosition(new c.L(e, t)),
              n = this.getLineTokens(i.lineNumber);
            return n.getLanguageId(n.findTokenIndexAtOffset(i.column - 1));
          }
          getWordAtPosition(e) {
            this._assertNotDisposed();
            const t = this.validatePosition(e),
              i = this.getLineContent(t.lineNumber),
              n = this._getLineTokens(t.lineNumber),
              r = n.findTokenIndexAtOffset(t.column - 1),
              [s, o] = He._findLanguageBoundaries(n, r),
              a = (0, Ee.t2)(
                t.column,
                Te.zu.getWordDefinition(n.getLanguageId(r)),
                i.substring(s, o),
                s
              );
            if (a && a.startColumn <= e.column && e.column <= a.endColumn)
              return a;
            if (r > 0 && s === t.column - 1) {
              const [s, o] = He._findLanguageBoundaries(n, r - 1),
                a = (0, Ee.t2)(
                  t.column,
                  Te.zu.getWordDefinition(n.getLanguageId(r - 1)),
                  i.substring(s, o),
                  s
                );
              if (a && a.startColumn <= e.column && e.column <= a.endColumn)
                return a;
            }
            return null;
          }
          static _findLanguageBoundaries(e, t) {
            const i = e.getLanguageId(t);
            let n = 0;
            for (let r = t; r >= 0 && e.getLanguageId(r) === i; r--)
              n = e.getStartOffset(r);
            let r = e.getLineContent().length;
            for (
              let n = t, s = e.getCount();
              n < s && e.getLanguageId(n) === i;
              n++
            )
              r = e.getEndOffset(n);
            return [n, r];
          }
          getWordUntilPosition(e) {
            const t = this.getWordAtPosition(e);
            return t
              ? {
                  word: t.word.substr(0, e.column - t.startColumn),
                  startColumn: t.startColumn,
                  endColumn: e.column,
                }
              : { word: '', startColumn: e.column, endColumn: e.column };
          }
          findMatchingBracketUp(e, t) {
            let i = e.toLowerCase(),
              n = this.validatePosition(t),
              r = this._getLineTokens(n.lineNumber),
              s = r.getLanguageId(r.findTokenIndexAtOffset(n.column - 1)),
              o = Te.zu.getBracketsSupport(s);
            if (!o) return null;
            let a = o.textIsBracket[i];
            return a ? Ye(this._findMatchingBracketUp(a, n, null)) : null;
          }
          matchBracket(e) {
            return this._matchBracket(this.validatePosition(e));
          }
          _matchBracket(e) {
            const t = e.lineNumber,
              i = this._getLineTokens(t),
              n = i.getCount(),
              r = this._buffer.getLineContent(t),
              s = i.findTokenIndexAtOffset(e.column - 1);
            if (s < 0) return null;
            const o = Te.zu.getBracketsSupport(i.getLanguageId(s));
            if (o && !(0, Ie.Bu)(i.getStandardTokenType(s))) {
              let n = Math.max(0, e.column - 1 - o.maxBracketLength);
              for (let e = s - 1; e >= 0; e--) {
                const t = i.getEndOffset(e);
                if (t <= n) break;
                (0, Ie.Bu)(i.getStandardTokenType(e)) && (n = t);
              }
              const a = Math.min(r.length, e.column - 1 + o.maxBracketLength);
              let l = null;
              for (;;) {
                const i = Oe.Vr.findNextBracketInRange(
                  o.forwardRegex,
                  t,
                  r,
                  n,
                  a
                );
                if (!i) break;
                if (i.startColumn <= e.column && e.column <= i.endColumn) {
                  const e = r
                      .substring(i.startColumn - 1, i.endColumn - 1)
                      .toLowerCase(),
                    t = this._matchFoundBracket(
                      i,
                      o.textIsBracket[e],
                      o.textIsOpenBracket[e],
                      null
                    );
                  if (t) {
                    if (t instanceof We) return null;
                    l = t;
                  }
                }
                n = i.endColumn - 1;
              }
              if (l) return l;
            }
            if (s > 0 && i.getStartOffset(s) === e.column - 1) {
              const o = s - 1,
                a = Te.zu.getBracketsSupport(i.getLanguageId(o));
              if (a && !(0, Ie.Bu)(i.getStandardTokenType(o))) {
                const s = Math.max(0, e.column - 1 - a.maxBracketLength);
                let l = Math.min(r.length, e.column - 1 + a.maxBracketLength);
                for (let e = o + 1; e < n; e++) {
                  const t = i.getStartOffset(e);
                  if (t >= l) break;
                  (0, Ie.Bu)(i.getStandardTokenType(e)) && (l = t);
                }
                const c = Oe.Vr.findPrevBracketInRange(
                  a.reversedRegex,
                  t,
                  r,
                  s,
                  l
                );
                if (c && c.startColumn <= e.column && e.column <= c.endColumn) {
                  const e = r
                      .substring(c.startColumn - 1, c.endColumn - 1)
                      .toLowerCase(),
                    t = this._matchFoundBracket(
                      c,
                      a.textIsBracket[e],
                      a.textIsOpenBracket[e],
                      null
                    );
                  if (t) return t instanceof We ? null : t;
                }
              }
            }
            return null;
          }
          _matchFoundBracket(e, t, i, n) {
            if (!t) return null;
            const r = i
              ? this._findMatchingBracketDown(t, e.getEndPosition(), n)
              : this._findMatchingBracketUp(t, e.getStartPosition(), n);
            return r ? (r instanceof We ? r : [e, r]) : null;
          }
          _findMatchingBracketUp(e, t, i) {
            const n = e.languageIdentifier.id,
              r = e.reversedRegex;
            let s = -1,
              o = 0;
            const a = (t, n, a, l) => {
              for (;;) {
                if (i && ++o % 100 == 0 && !i()) return We.INSTANCE;
                const c = Oe.Vr.findPrevBracketInRange(r, t, n, a, l);
                if (!c) break;
                const d = n
                  .substring(c.startColumn - 1, c.endColumn - 1)
                  .toLowerCase();
                if ((e.isOpen(d) ? s++ : e.isClose(d) && s--, 0 === s))
                  return c;
                l = c.startColumn - 1;
              }
              return null;
            };
            for (let e = t.lineNumber; e >= 1; e--) {
              const i = this._getLineTokens(e),
                r = i.getCount(),
                s = this._buffer.getLineContent(e);
              let o = r - 1,
                l = s.length,
                c = s.length;
              e === t.lineNumber &&
                ((o = i.findTokenIndexAtOffset(t.column - 1)),
                (l = t.column - 1),
                (c = t.column - 1));
              let d = !0;
              for (; o >= 0; o--) {
                const t =
                  i.getLanguageId(o) === n &&
                  !(0, Ie.Bu)(i.getStandardTokenType(o));
                if (t)
                  d
                    ? (l = i.getStartOffset(o))
                    : ((l = i.getStartOffset(o)), (c = i.getEndOffset(o)));
                else if (d && l !== c) {
                  const t = a(e, s, l, c);
                  if (t) return t;
                }
                d = t;
              }
              if (d && l !== c) {
                const t = a(e, s, l, c);
                if (t) return t;
              }
            }
            return null;
          }
          _findMatchingBracketDown(e, t, i) {
            const n = e.languageIdentifier.id,
              r = e.forwardRegex;
            let s = 1,
              o = 0;
            const a = (t, n, a, l) => {
                for (;;) {
                  if (i && ++o % 100 == 0 && !i()) return We.INSTANCE;
                  const c = Oe.Vr.findNextBracketInRange(r, t, n, a, l);
                  if (!c) break;
                  const d = n
                    .substring(c.startColumn - 1, c.endColumn - 1)
                    .toLowerCase();
                  if ((e.isOpen(d) ? s++ : e.isClose(d) && s--, 0 === s))
                    return c;
                  a = c.endColumn - 1;
                }
                return null;
              },
              l = this.getLineCount();
            for (let e = t.lineNumber; e <= l; e++) {
              const i = this._getLineTokens(e),
                r = i.getCount(),
                s = this._buffer.getLineContent(e);
              let o = 0,
                l = 0,
                c = 0;
              e === t.lineNumber &&
                ((o = i.findTokenIndexAtOffset(t.column - 1)),
                (l = t.column - 1),
                (c = t.column - 1));
              let d = !0;
              for (; o < r; o++) {
                const t =
                  i.getLanguageId(o) === n &&
                  !(0, Ie.Bu)(i.getStandardTokenType(o));
                if (t) d || (l = i.getStartOffset(o)), (c = i.getEndOffset(o));
                else if (d && l !== c) {
                  const t = a(e, s, l, c);
                  if (t) return t;
                }
                d = t;
              }
              if (d && l !== c) {
                const t = a(e, s, l, c);
                if (t) return t;
              }
            }
            return null;
          }
          findPrevBracket(e) {
            const t = this.validatePosition(e);
            let i = -1,
              n = null;
            for (let e = t.lineNumber; e >= 1; e--) {
              const r = this._getLineTokens(e),
                s = r.getCount(),
                o = this._buffer.getLineContent(e);
              let a = s - 1,
                l = o.length,
                c = o.length;
              if (e === t.lineNumber) {
                (a = r.findTokenIndexAtOffset(t.column - 1)),
                  (l = t.column - 1),
                  (c = t.column - 1);
                const e = r.getLanguageId(a);
                i !== e && ((i = e), (n = Te.zu.getBracketsSupport(i)));
              }
              let d = !0;
              for (; a >= 0; a--) {
                const t = r.getLanguageId(a);
                if (i !== t) {
                  if (n && d && l !== c) {
                    const t = Oe.Vr.findPrevBracketInRange(
                      n.reversedRegex,
                      e,
                      o,
                      l,
                      c
                    );
                    if (t) return this._toFoundBracket(n, t);
                    d = !1;
                  }
                  (i = t), (n = Te.zu.getBracketsSupport(i));
                }
                const s = !!n && !(0, Ie.Bu)(r.getStandardTokenType(a));
                if (s)
                  d
                    ? (l = r.getStartOffset(a))
                    : ((l = r.getStartOffset(a)), (c = r.getEndOffset(a)));
                else if (n && d && l !== c) {
                  const t = Oe.Vr.findPrevBracketInRange(
                    n.reversedRegex,
                    e,
                    o,
                    l,
                    c
                  );
                  if (t) return this._toFoundBracket(n, t);
                }
                d = s;
              }
              if (n && d && l !== c) {
                const t = Oe.Vr.findPrevBracketInRange(
                  n.reversedRegex,
                  e,
                  o,
                  l,
                  c
                );
                if (t) return this._toFoundBracket(n, t);
              }
            }
            return null;
          }
          findNextBracket(e) {
            const t = this.validatePosition(e),
              i = this.getLineCount();
            let n = -1,
              r = null;
            for (let e = t.lineNumber; e <= i; e++) {
              const i = this._getLineTokens(e),
                s = i.getCount(),
                o = this._buffer.getLineContent(e);
              let a = 0,
                l = 0,
                c = 0;
              if (e === t.lineNumber) {
                (a = i.findTokenIndexAtOffset(t.column - 1)),
                  (l = t.column - 1),
                  (c = t.column - 1);
                const e = i.getLanguageId(a);
                n !== e && ((n = e), (r = Te.zu.getBracketsSupport(n)));
              }
              let d = !0;
              for (; a < s; a++) {
                const t = i.getLanguageId(a);
                if (n !== t) {
                  if (r && d && l !== c) {
                    const t = Oe.Vr.findNextBracketInRange(
                      r.forwardRegex,
                      e,
                      o,
                      l,
                      c
                    );
                    if (t) return this._toFoundBracket(r, t);
                    d = !1;
                  }
                  (n = t), (r = Te.zu.getBracketsSupport(n));
                }
                const s = !!r && !(0, Ie.Bu)(i.getStandardTokenType(a));
                if (s) d || (l = i.getStartOffset(a)), (c = i.getEndOffset(a));
                else if (r && d && l !== c) {
                  const t = Oe.Vr.findNextBracketInRange(
                    r.forwardRegex,
                    e,
                    o,
                    l,
                    c
                  );
                  if (t) return this._toFoundBracket(r, t);
                }
                d = s;
              }
              if (r && d && l !== c) {
                const t = Oe.Vr.findNextBracketInRange(
                  r.forwardRegex,
                  e,
                  o,
                  l,
                  c
                );
                if (t) return this._toFoundBracket(r, t);
              }
            }
            return null;
          }
          findEnclosingBrackets(e, t) {
            let i;
            if (void 0 === t) i = null;
            else {
              const e = Date.now();
              i = () => Date.now() - e <= t;
            }
            const n = this.validatePosition(e),
              r = this.getLineCount(),
              s = new Map();
            let o = [];
            const a = (e, t) => {
              if (!s.has(e)) {
                let i = [];
                for (let e = 0, n = t ? t.brackets.length : 0; e < n; e++)
                  i[e] = 0;
                s.set(e, i);
              }
              o = s.get(e);
            };
            let l = 0;
            const c = (e, t, n, r, s) => {
              for (;;) {
                if (i && ++l % 100 == 0 && !i()) return We.INSTANCE;
                const a = Oe.Vr.findNextBracketInRange(
                  e.forwardRegex,
                  t,
                  n,
                  r,
                  s
                );
                if (!a) break;
                const c = n
                    .substring(a.startColumn - 1, a.endColumn - 1)
                    .toLowerCase(),
                  d = e.textIsBracket[c];
                if (
                  d &&
                  (d.isOpen(c) ? o[d.index]++ : d.isClose(c) && o[d.index]--,
                  -1 === o[d.index])
                )
                  return this._matchFoundBracket(a, d, !1, i);
                r = a.endColumn - 1;
              }
              return null;
            };
            let d = -1,
              h = null;
            for (let e = n.lineNumber; e <= r; e++) {
              const t = this._getLineTokens(e),
                i = t.getCount(),
                r = this._buffer.getLineContent(e);
              let s = 0,
                o = 0,
                l = 0;
              if (e === n.lineNumber) {
                (s = t.findTokenIndexAtOffset(n.column - 1)),
                  (o = n.column - 1),
                  (l = n.column - 1);
                const e = t.getLanguageId(s);
                d !== e &&
                  ((d = e), (h = Te.zu.getBracketsSupport(d)), a(d, h));
              }
              let u = !0;
              for (; s < i; s++) {
                const i = t.getLanguageId(s);
                if (d !== i) {
                  if (h && u && o !== l) {
                    const t = c(h, e, r, o, l);
                    if (t) return Ye(t);
                    u = !1;
                  }
                  (d = i), (h = Te.zu.getBracketsSupport(d)), a(d, h);
                }
                const n = !!h && !(0, Ie.Bu)(t.getStandardTokenType(s));
                if (n) u || (o = t.getStartOffset(s)), (l = t.getEndOffset(s));
                else if (h && u && o !== l) {
                  const t = c(h, e, r, o, l);
                  if (t) return Ye(t);
                }
                u = n;
              }
              if (h && u && o !== l) {
                const t = c(h, e, r, o, l);
                if (t) return Ye(t);
              }
            }
            return null;
          }
          _toFoundBracket(e, t) {
            if (!t) return null;
            let i = this.getValueInRange(t);
            i = i.toLowerCase();
            let n = e.textIsBracket[i];
            return n
              ? {
                  range: t,
                  open: n.open,
                  close: n.close,
                  isOpen: e.textIsOpenBracket[i],
                }
              : null;
          }
          static computeIndentLevel(e, t) {
            let i = 0,
              n = 0,
              r = e.length;
            for (; n < r; ) {
              let r = e.charCodeAt(n);
              if (32 === r) i++;
              else {
                if (9 !== r) break;
                i = i - (i % t) + t;
              }
              n++;
            }
            return n === r ? -1 : i;
          }
          _computeIndentLevel(e) {
            return He.computeIndentLevel(
              this._buffer.getLineContent(e + 1),
              this._options.tabSize
            );
          }
          getActiveIndentGuide(e, t, i) {
            this._assertNotDisposed();
            const n = this.getLineCount();
            if (e < 1 || e > n) throw new Error('Illegal value for lineNumber');
            const r = Te.zu.getFoldingRules(this._languageIdentifier.id),
              s = Boolean(r && r.offSide);
            let o = -2,
              a = -1,
              l = -2,
              c = -1;
            const d = (e) => {
              if (-1 !== o && (-2 === o || o > e - 1)) {
                (o = -1), (a = -1);
                for (let t = e - 2; t >= 0; t--) {
                  let e = this._computeIndentLevel(t);
                  if (e >= 0) {
                    (o = t), (a = e);
                    break;
                  }
                }
              }
              if (-2 === l) {
                (l = -1), (c = -1);
                for (let t = e; t < n; t++) {
                  let e = this._computeIndentLevel(t);
                  if (e >= 0) {
                    (l = t), (c = e);
                    break;
                  }
                }
              }
            };
            let h = -2,
              u = -1,
              g = -2,
              f = -1;
            const p = (e) => {
              if (-2 === h) {
                (h = -1), (u = -1);
                for (let t = e - 2; t >= 0; t--) {
                  let e = this._computeIndentLevel(t);
                  if (e >= 0) {
                    (h = t), (u = e);
                    break;
                  }
                }
              }
              if (-1 !== g && (-2 === g || g < e - 1)) {
                (g = -1), (f = -1);
                for (let t = e; t < n; t++) {
                  let e = this._computeIndentLevel(t);
                  if (e >= 0) {
                    (g = t), (f = e);
                    break;
                  }
                }
              }
            };
            let m = 0,
              _ = !0,
              b = 0,
              v = !0,
              y = 0,
              w = 0;
            for (let r = 0; _ || v; r++) {
              const o = e - r,
                g = e + r;
              r > 1 && (o < 1 || o < t) && (_ = !1),
                r > 1 && (g > n || g > i) && (v = !1),
                r > 5e4 && ((_ = !1), (v = !1));
              let C = -1;
              if (_) {
                const e = this._computeIndentLevel(o - 1);
                e >= 0
                  ? ((l = o - 1),
                    (c = e),
                    (C = Math.ceil(e / this._options.indentSize)))
                  : (d(o),
                    (C = this._getIndentLevelForWhitespaceLine(s, a, c)));
              }
              let S = -1;
              if (v) {
                const e = this._computeIndentLevel(g - 1);
                e >= 0
                  ? ((h = g - 1),
                    (u = e),
                    (S = Math.ceil(e / this._options.indentSize)))
                  : (p(g),
                    (S = this._getIndentLevelForWhitespaceLine(s, u, f)));
              }
              if (0 !== r) {
                if (1 === r) {
                  if (g <= n && S >= 0 && w + 1 === S) {
                    (_ = !1), (m = g), (b = g), (y = S);
                    continue;
                  }
                  if (o >= 1 && C >= 0 && C - 1 === w) {
                    (v = !1), (m = o), (b = o), (y = C);
                    continue;
                  }
                  if (((m = e), (b = e), (y = w), 0 === y))
                    return { startLineNumber: m, endLineNumber: b, indent: y };
                }
                _ && (C >= y ? (m = o) : (_ = !1)),
                  v && (S >= y ? (b = g) : (v = !1));
              } else w = C;
            }
            return { startLineNumber: m, endLineNumber: b, indent: y };
          }
          getLinesIndentGuides(e, t) {
            this._assertNotDisposed();
            const i = this.getLineCount();
            if (e < 1 || e > i)
              throw new Error('Illegal value for startLineNumber');
            if (t < 1 || t > i)
              throw new Error('Illegal value for endLineNumber');
            const n = Te.zu.getFoldingRules(this._languageIdentifier.id),
              r = Boolean(n && n.offSide);
            let s = new Array(t - e + 1),
              o = -2,
              a = -1,
              l = -2,
              c = -1;
            for (let n = e; n <= t; n++) {
              let t = n - e;
              const d = this._computeIndentLevel(n - 1);
              if (d >= 0)
                (o = n - 1),
                  (a = d),
                  (s[t] = Math.ceil(d / this._options.indentSize));
              else {
                if (-2 === o) {
                  (o = -1), (a = -1);
                  for (let e = n - 2; e >= 0; e--) {
                    let t = this._computeIndentLevel(e);
                    if (t >= 0) {
                      (o = e), (a = t);
                      break;
                    }
                  }
                }
                if (-1 !== l && (-2 === l || l < n - 1)) {
                  (l = -1), (c = -1);
                  for (let e = n; e < i; e++) {
                    let t = this._computeIndentLevel(e);
                    if (t >= 0) {
                      (l = e), (c = t);
                      break;
                    }
                  }
                }
                s[t] = this._getIndentLevelForWhitespaceLine(r, a, c);
              }
            }
            return s;
          }
          _getIndentLevelForWhitespaceLine(e, t, i) {
            return -1 === t || -1 === i
              ? 0
              : t < i
              ? 1 + Math.floor(t / this._options.indentSize)
              : t === i || e
              ? Math.ceil(i / this._options.indentSize)
              : 1 + Math.floor(i / this._options.indentSize);
          }
        }
        (He.MODEL_SYNC_LIMIT = 52428800),
          (He.LARGE_FILE_SIZE_THRESHOLD = 20971520),
          (He.LARGE_FILE_LINE_COUNT_THRESHOLD = 3e5),
          (He.DEFAULT_CREATION_OPTIONS = {
            isForSimpleWidget: !1,
            tabSize: l.DB.tabSize,
            indentSize: l.DB.indentSize,
            insertSpaces: l.DB.insertSpaces,
            detectIndentation: !1,
            defaultEOL: 1,
            trimAutoWhitespace: l.DB.trimAutoWhitespace,
            largeFileOptimizations: l.DB.largeFileOptimizations,
          });
        class je {
          constructor() {
            (this._decorationsTree0 = new N()),
              (this._decorationsTree1 = new N());
          }
          intervalSearch(e, t, i, n, r) {
            const s = this._decorationsTree0.intervalSearch(e, t, i, n, r),
              o = this._decorationsTree1.intervalSearch(e, t, i, n, r);
            return s.concat(o);
          }
          search(e, t, i, n) {
            if (i) return this._decorationsTree1.search(e, t, n);
            {
              const i = this._decorationsTree0.search(e, t, n),
                r = this._decorationsTree1.search(e, t, n);
              return i.concat(r);
            }
          }
          collectNodesFromOwner(e) {
            const t = this._decorationsTree0.collectNodesFromOwner(e),
              i = this._decorationsTree1.collectNodesFromOwner(e);
            return t.concat(i);
          }
          collectNodesPostOrder() {
            const e = this._decorationsTree0.collectNodesPostOrder(),
              t = this._decorationsTree1.collectNodesPostOrder();
            return e.concat(t);
          }
          insert(e) {
            S(e)
              ? this._decorationsTree1.insert(e)
              : this._decorationsTree0.insert(e);
          }
          delete(e) {
            S(e)
              ? this._decorationsTree1.delete(e)
              : this._decorationsTree0.delete(e);
          }
          resolveNode(e, t) {
            S(e)
              ? this._decorationsTree1.resolveNode(e, t)
              : this._decorationsTree0.resolveNode(e, t);
          }
          acceptReplace(e, t, i, n) {
            this._decorationsTree0.acceptReplace(e, t, i, n),
              this._decorationsTree1.acceptReplace(e, t, i, n);
          }
        }
        function Ve(e) {
          return e.replace(/[^a-z0-9\-_]/gi, ' ');
        }
        class ze {
          constructor(e) {
            (this.color = e.color || ''), (this.darkColor = e.darkColor || '');
          }
        }
        class Ue extends ze {
          constructor(e) {
            super(e),
              (this._resolvedColor = null),
              (this.position =
                'number' == typeof e.position ? e.position : u.sh.Center);
          }
          getColor(e) {
            return (
              this._resolvedColor ||
                ('light' !== e.type && this.darkColor
                  ? (this._resolvedColor = this._resolveColor(
                      this.darkColor,
                      e
                    ))
                  : (this._resolvedColor = this._resolveColor(this.color, e))),
              this._resolvedColor
            );
          }
          invalidateCachedColor() {
            this._resolvedColor = null;
          }
          _resolveColor(e, t) {
            if ('string' == typeof e) return e;
            let i = e ? t.getColor(e.id) : null;
            return i ? i.toString() : '';
          }
        }
        class $e extends ze {
          constructor(e) {
            super(e), (this.position = e.position);
          }
          getColor(e) {
            return (
              this._resolvedColor ||
                ('light' !== e.type && this.darkColor
                  ? (this._resolvedColor = this._resolveColor(
                      this.darkColor,
                      e
                    ))
                  : (this._resolvedColor = this._resolveColor(this.color, e))),
              this._resolvedColor
            );
          }
          invalidateCachedColor() {
            this._resolvedColor = void 0;
          }
          _resolveColor(e, t) {
            return 'string' == typeof e ? Ae.Il.fromHex(e) : t.getColor(e.id);
          }
        }
        class Ke {
          constructor(e) {
            (this.stickiness = e.stickiness || 0),
              (this.zIndex = e.zIndex || 0),
              (this.className = e.className ? Ve(e.className) : null),
              (this.hoverMessage = e.hoverMessage || null),
              (this.glyphMarginHoverMessage =
                e.glyphMarginHoverMessage || null),
              (this.isWholeLine = e.isWholeLine || !1),
              (this.showIfCollapsed = e.showIfCollapsed || !1),
              (this.collapseOnReplaceEdit = e.collapseOnReplaceEdit || !1),
              (this.overviewRuler = e.overviewRuler
                ? new Ue(e.overviewRuler)
                : null),
              (this.minimap = e.minimap ? new $e(e.minimap) : null),
              (this.glyphMarginClassName = e.glyphMarginClassName
                ? Ve(e.glyphMarginClassName)
                : null),
              (this.linesDecorationsClassName = e.linesDecorationsClassName
                ? Ve(e.linesDecorationsClassName)
                : null),
              (this.firstLineDecorationClassName = e.firstLineDecorationClassName
                ? Ve(e.firstLineDecorationClassName)
                : null),
              (this.marginClassName = e.marginClassName
                ? Ve(e.marginClassName)
                : null),
              (this.inlineClassName = e.inlineClassName
                ? Ve(e.inlineClassName)
                : null),
              (this.inlineClassNameAffectsLetterSpacing =
                e.inlineClassNameAffectsLetterSpacing || !1),
              (this.beforeContentClassName = e.beforeContentClassName
                ? Ve(e.beforeContentClassName)
                : null),
              (this.afterContentClassName = e.afterContentClassName
                ? Ve(e.afterContentClassName)
                : null);
          }
          static register(e) {
            return new Ke(e);
          }
          static createDynamic(e) {
            return new Ke(e);
          }
        }
        Ke.EMPTY = Ke.register({});
        const qe = [
          Ke.register({ stickiness: 0 }),
          Ke.register({ stickiness: 1 }),
          Ke.register({ stickiness: 2 }),
          Ke.register({ stickiness: 3 }),
        ];
        function Ge(e) {
          return e instanceof Ke ? e : Ke.createDynamic(e);
        }
        class Ze extends s.JT {
          constructor() {
            super(),
              (this._actual = this._register(new r.Q5())),
              (this.event = this._actual.event),
              (this._deferredCnt = 0),
              (this._shouldFire = !1),
              (this._affectsMinimap = !1),
              (this._affectsOverviewRuler = !1);
          }
          beginDeferredEmit() {
            this._deferredCnt++;
          }
          endDeferredEmit() {
            if (
              (this._deferredCnt--, 0 === this._deferredCnt && this._shouldFire)
            ) {
              const e = {
                affectsMinimap: this._affectsMinimap,
                affectsOverviewRuler: this._affectsOverviewRuler,
              };
              (this._shouldFire = !1),
                (this._affectsMinimap = !1),
                (this._affectsOverviewRuler = !1),
                this._actual.fire(e);
            }
          }
          checkAffectedAndFire(e) {
            this._affectsMinimap ||
              (this._affectsMinimap = !(!e.minimap || !e.minimap.position)),
              this._affectsOverviewRuler ||
                (this._affectsOverviewRuler = !(
                  !e.overviewRuler || !e.overviewRuler.color
                )),
              (this._shouldFire = !0);
          }
          fire() {
            (this._affectsMinimap = !0),
              (this._affectsOverviewRuler = !0),
              (this._shouldFire = !0);
          }
        }
        class Je extends s.JT {
          constructor() {
            super(),
              (this._fastEmitter = this._register(new r.Q5())),
              (this.fastEvent = this._fastEmitter.event),
              (this._slowEmitter = this._register(new r.Q5())),
              (this.slowEvent = this._slowEmitter.event),
              (this._deferredCnt = 0),
              (this._deferredEvent = null);
          }
          beginDeferredEmit() {
            this._deferredCnt++;
          }
          endDeferredEmit(e = null) {
            if (
              (this._deferredCnt--,
              0 === this._deferredCnt && null !== this._deferredEvent)
            ) {
              this._deferredEvent.rawContentChangedEvent.resultingSelection = e;
              const t = this._deferredEvent;
              (this._deferredEvent = null),
                this._fastEmitter.fire(t),
                this._slowEmitter.fire(t);
            }
          }
          fire(e) {
            this._deferredCnt > 0
              ? this._deferredEvent
                ? (this._deferredEvent = this._deferredEvent.merge(e))
                : (this._deferredEvent = e)
              : (this._fastEmitter.fire(e), this._slowEmitter.fire(e));
          }
        }
      },
      77277: (e, t, i) => {
        'use strict';
        i.d(t, {
          bc: () => l,
          iE: () => d,
          pM: () => u,
          cM: () => g,
          sz: () => f,
        });
        var n = i(97295),
          r = i(59410),
          s = i(50187),
          o = i(24314),
          a = i(84973);
        class l {
          constructor(e, t, i, n) {
            (this.searchString = e),
              (this.isRegex = t),
              (this.matchCase = i),
              (this.wordSeparators = n);
          }
          parseSearchRequest() {
            if ('' === this.searchString) return null;
            let e;
            e = this.isRegex
              ? (function (e) {
                  if (!e || 0 === e.length) return !1;
                  for (let t = 0, i = e.length; t < i; t++)
                    if (92 === e.charCodeAt(t)) {
                      if ((t++, t >= i)) break;
                      const n = e.charCodeAt(t);
                      if (110 === n || 114 === n || 87 === n || 119 === n)
                        return !0;
                    }
                  return !1;
                })(this.searchString)
              : this.searchString.indexOf('\n') >= 0;
            let t = null;
            try {
              t = n.GF(this.searchString, this.isRegex, {
                matchCase: this.matchCase,
                wholeWord: !1,
                multiline: e,
                global: !0,
                unicode: !0,
              });
            } catch (e) {
              return null;
            }
            if (!t) return null;
            let i = !this.isRegex && !e;
            return (
              i &&
                this.searchString.toLowerCase() !==
                  this.searchString.toUpperCase() &&
                (i = this.matchCase),
              new c(
                t,
                this.wordSeparators ? (0, r.u)(this.wordSeparators) : null,
                i ? this.searchString : null
              )
            );
          }
        }
        class c {
          constructor(e, t, i) {
            (this.regex = e),
              (this.wordSeparators = t),
              (this.simpleSearch = i);
          }
        }
        function d(e, t, i) {
          if (!i) return new a.tk(e, null);
          let n = [];
          for (let e = 0, i = t.length; e < i; e++) n[e] = t[e];
          return new a.tk(e, n);
        }
        class h {
          constructor(e) {
            let t = [],
              i = 0;
            for (let n = 0, r = e.length; n < r; n++)
              10 === e.charCodeAt(n) && (t[i++] = n);
            this._lineFeedsOffsets = t;
          }
          findLineFeedCountBeforeOffset(e) {
            const t = this._lineFeedsOffsets;
            let i = 0,
              n = t.length - 1;
            if (-1 === n) return 0;
            if (e <= t[0]) return 0;
            for (; i < n; ) {
              const r = i + (((n - i) / 2) >> 0);
              t[r] >= e
                ? (n = r - 1)
                : t[r + 1] >= e
                ? ((i = r), (n = r))
                : (i = r + 1);
            }
            return i + 1;
          }
        }
        class u {
          static findMatches(e, t, i, n, r) {
            const s = t.parseSearchRequest();
            return s
              ? s.regex.multiline
                ? this._doFindMatchesMultiline(
                    e,
                    i,
                    new f(s.wordSeparators, s.regex),
                    n,
                    r
                  )
                : this._doFindMatchesLineByLine(e, i, s, n, r)
              : [];
          }
          static _getMultilineMatchRange(e, t, i, n, r, s) {
            let a,
              l,
              c = 0;
            if (
              (n
                ? ((c = n.findLineFeedCountBeforeOffset(r)), (a = t + r + c))
                : (a = t + r),
              n)
            ) {
              let e = n.findLineFeedCountBeforeOffset(r + s.length) - c;
              l = a + s.length + e;
            } else l = a + s.length;
            const d = e.getPositionAt(a),
              h = e.getPositionAt(l);
            return new o.e(d.lineNumber, d.column, h.lineNumber, h.column);
          }
          static _doFindMatchesMultiline(e, t, i, n, r) {
            const s = e.getOffsetAt(t.getStartPosition()),
              o = e.getValueInRange(t, 1),
              a = '\r\n' === e.getEOL() ? new h(o) : null,
              l = [];
            let c,
              u = 0;
            for (i.reset(0); (c = i.next(o)); )
              if (
                ((l[u++] = d(
                  this._getMultilineMatchRange(e, s, o, a, c.index, c[0]),
                  c,
                  n
                )),
                u >= r)
              )
                return l;
            return l;
          }
          static _doFindMatchesLineByLine(e, t, i, n, r) {
            const s = [];
            let o = 0;
            if (t.startLineNumber === t.endLineNumber) {
              const a = e
                .getLineContent(t.startLineNumber)
                .substring(t.startColumn - 1, t.endColumn - 1);
              return (
                (o = this._findMatchesInLine(
                  i,
                  a,
                  t.startLineNumber,
                  t.startColumn - 1,
                  o,
                  s,
                  n,
                  r
                )),
                s
              );
            }
            const a = e
              .getLineContent(t.startLineNumber)
              .substring(t.startColumn - 1);
            o = this._findMatchesInLine(
              i,
              a,
              t.startLineNumber,
              t.startColumn - 1,
              o,
              s,
              n,
              r
            );
            for (
              let a = t.startLineNumber + 1;
              a < t.endLineNumber && o < r;
              a++
            )
              o = this._findMatchesInLine(
                i,
                e.getLineContent(a),
                a,
                0,
                o,
                s,
                n,
                r
              );
            if (o < r) {
              const a = e
                .getLineContent(t.endLineNumber)
                .substring(0, t.endColumn - 1);
              o = this._findMatchesInLine(i, a, t.endLineNumber, 0, o, s, n, r);
            }
            return s;
          }
          static _findMatchesInLine(e, t, i, n, r, s, l, c) {
            const h = e.wordSeparators;
            if (!l && e.simpleSearch) {
              const l = e.simpleSearch,
                d = l.length,
                u = t.length;
              let f = -d;
              for (; -1 !== (f = t.indexOf(l, f + d)); )
                if (
                  (!h || g(h, t, u, f, d)) &&
                  ((s[r++] = new a.tk(
                    new o.e(i, f + 1 + n, i, f + 1 + d + n),
                    null
                  )),
                  r >= c)
                )
                  return r;
              return r;
            }
            const u = new f(e.wordSeparators, e.regex);
            let p;
            u.reset(0);
            do {
              if (
                ((p = u.next(t)),
                p &&
                  ((s[r++] = d(
                    new o.e(
                      i,
                      p.index + 1 + n,
                      i,
                      p.index + 1 + p[0].length + n
                    ),
                    p,
                    l
                  )),
                  r >= c))
              )
                return r;
            } while (p);
            return r;
          }
          static findNextMatch(e, t, i, n) {
            const r = t.parseSearchRequest();
            if (!r) return null;
            const s = new f(r.wordSeparators, r.regex);
            return r.regex.multiline
              ? this._doFindNextMatchMultiline(e, i, s, n)
              : this._doFindNextMatchLineByLine(e, i, s, n);
          }
          static _doFindNextMatchMultiline(e, t, i, n) {
            const r = new s.L(t.lineNumber, 1),
              a = e.getOffsetAt(r),
              l = e.getLineCount(),
              c = e.getValueInRange(
                new o.e(r.lineNumber, r.column, l, e.getLineMaxColumn(l)),
                1
              ),
              u = '\r\n' === e.getEOL() ? new h(c) : null;
            i.reset(t.column - 1);
            let g = i.next(c);
            return g
              ? d(this._getMultilineMatchRange(e, a, c, u, g.index, g[0]), g, n)
              : 1 !== t.lineNumber || 1 !== t.column
              ? this._doFindNextMatchMultiline(e, new s.L(1, 1), i, n)
              : null;
          }
          static _doFindNextMatchLineByLine(e, t, i, n) {
            const r = e.getLineCount(),
              s = t.lineNumber,
              o = e.getLineContent(s),
              a = this._findFirstMatchInLine(i, o, s, t.column, n);
            if (a) return a;
            for (let t = 1; t <= r; t++) {
              const o = (s + t - 1) % r,
                a = e.getLineContent(o + 1),
                l = this._findFirstMatchInLine(i, a, o + 1, 1, n);
              if (l) return l;
            }
            return null;
          }
          static _findFirstMatchInLine(e, t, i, n, r) {
            e.reset(n - 1);
            const s = e.next(t);
            return s
              ? d(new o.e(i, s.index + 1, i, s.index + 1 + s[0].length), s, r)
              : null;
          }
          static findPreviousMatch(e, t, i, n) {
            const r = t.parseSearchRequest();
            if (!r) return null;
            const s = new f(r.wordSeparators, r.regex);
            return r.regex.multiline
              ? this._doFindPreviousMatchMultiline(e, i, s, n)
              : this._doFindPreviousMatchLineByLine(e, i, s, n);
          }
          static _doFindPreviousMatchMultiline(e, t, i, n) {
            const r = this._doFindMatchesMultiline(
              e,
              new o.e(1, 1, t.lineNumber, t.column),
              i,
              n,
              9990
            );
            if (r.length > 0) return r[r.length - 1];
            const a = e.getLineCount();
            return t.lineNumber !== a || t.column !== e.getLineMaxColumn(a)
              ? this._doFindPreviousMatchMultiline(
                  e,
                  new s.L(a, e.getLineMaxColumn(a)),
                  i,
                  n
                )
              : null;
          }
          static _doFindPreviousMatchLineByLine(e, t, i, n) {
            const r = e.getLineCount(),
              s = t.lineNumber,
              o = e.getLineContent(s).substring(0, t.column - 1),
              a = this._findLastMatchInLine(i, o, s, n);
            if (a) return a;
            for (let t = 1; t <= r; t++) {
              const o = (r + s - t - 1) % r,
                a = e.getLineContent(o + 1),
                l = this._findLastMatchInLine(i, a, o + 1, n);
              if (l) return l;
            }
            return null;
          }
          static _findLastMatchInLine(e, t, i, n) {
            let r,
              s = null;
            for (e.reset(0); (r = e.next(t)); )
              s = d(
                new o.e(i, r.index + 1, i, r.index + 1 + r[0].length),
                r,
                n
              );
            return s;
          }
        }
        function g(e, t, i, n, r) {
          return (
            (function (e, t, i, n, r) {
              if (0 === n) return !0;
              const s = t.charCodeAt(n - 1);
              if (0 !== e.get(s)) return !0;
              if (13 === s || 10 === s) return !0;
              if (r > 0) {
                const i = t.charCodeAt(n);
                if (0 !== e.get(i)) return !0;
              }
              return !1;
            })(e, t, 0, n, r) &&
            (function (e, t, i, n, r) {
              if (n + r === i) return !0;
              const s = t.charCodeAt(n + r);
              if (0 !== e.get(s)) return !0;
              if (13 === s || 10 === s) return !0;
              if (r > 0) {
                const i = t.charCodeAt(n + r - 1);
                if (0 !== e.get(i)) return !0;
              }
              return !1;
            })(e, t, i, n, r)
          );
        }
        class f {
          constructor(e, t) {
            (this._wordSeparators = e),
              (this._searchRegex = t),
              (this._prevMatchStartIndex = -1),
              (this._prevMatchLength = 0);
          }
          reset(e) {
            (this._searchRegex.lastIndex = e),
              (this._prevMatchStartIndex = -1),
              (this._prevMatchLength = 0);
          }
          next(e) {
            const t = e.length;
            let i;
            do {
              if (this._prevMatchStartIndex + this._prevMatchLength === t)
                return null;
              if (((i = this._searchRegex.exec(e)), !i)) return null;
              const r = i.index,
                s = i[0].length;
              if (
                r === this._prevMatchStartIndex &&
                s === this._prevMatchLength
              ) {
                if (0 === s) {
                  n.ZH(e, t, this._searchRegex.lastIndex) > 65535
                    ? (this._searchRegex.lastIndex += 2)
                    : (this._searchRegex.lastIndex += 1);
                  continue;
                }
                return null;
              }
              if (
                ((this._prevMatchStartIndex = r),
                (this._prevMatchLength = s),
                !this._wordSeparators || g(this._wordSeparators, e, t, r, s))
              )
                return i;
            } while (i);
            return null;
          }
        }
      },
      58409: (e, t, i) => {
        'use strict';
        i.d(t, {
          QZ: () => l,
          DA: () => h,
          OU: () => u,
          Wz: () => f,
          cx: () => _,
          Rl: () => b,
        });
        var n = i(9488),
          r = i(78411),
          s = i(50187),
          o = i(24314),
          a = i(43775);
        function l(e) {
          let t = 0,
            i = 0,
            n = 0,
            r = 0;
          for (let s = 0, o = e.length; s < o; s++) {
            const a = e.charCodeAt(s);
            13 === a
              ? (0 === t && (i = s),
                t++,
                s + 1 < o && 10 === e.charCodeAt(s + 1)
                  ? ((r |= 2), s++)
                  : (r |= 3),
                (n = s + 1))
              : 10 === a && ((r |= 1), 0 === t && (i = s), t++, (n = s + 1));
          }
          return 0 === t && (i = e.length), [t, i, e.length - n, r];
        }
        function c(e) {
          return (16384 | (e << 0) | (2 << 23)) >>> 0;
        }
        const d = new Uint32Array(0).buffer;
        class h {
          constructor() {
            this.tokens = [];
          }
          add(e, t) {
            if (this.tokens.length > 0) {
              const i = this.tokens[this.tokens.length - 1];
              if (i.startLineNumber + i.tokens.length - 1 + 1 === e)
                return void i.tokens.push(t);
            }
            this.tokens.push(new p(e, [t]));
          }
        }
        class u {
          constructor(e) {
            (this._tokens = e), (this._tokenCount = e.length / 4);
          }
          toString(e) {
            let t = [];
            for (let i = 0; i < this._tokenCount; i++)
              t.push(
                `(${this._getDeltaLine(i) + e},${this._getStartCharacter(
                  i
                )}-${this._getEndCharacter(i)})`
              );
            return `[${t.join(',')}]`;
          }
          getMaxDeltaLine() {
            const e = this._getTokenCount();
            return 0 === e ? -1 : this._getDeltaLine(e - 1);
          }
          getRange() {
            const e = this._getTokenCount();
            if (0 === e) return null;
            const t = this._getStartCharacter(0),
              i = this._getDeltaLine(e - 1),
              n = this._getEndCharacter(e - 1);
            return new o.e(0, t + 1, i, n + 1);
          }
          _getTokenCount() {
            return this._tokenCount;
          }
          _getDeltaLine(e) {
            return this._tokens[4 * e];
          }
          _getStartCharacter(e) {
            return this._tokens[4 * e + 1];
          }
          _getEndCharacter(e) {
            return this._tokens[4 * e + 2];
          }
          isEmpty() {
            return 0 === this._getTokenCount();
          }
          getLineTokens(e) {
            let t = 0,
              i = this._getTokenCount() - 1;
            for (; t < i; ) {
              const n = t + Math.floor((i - t) / 2),
                r = this._getDeltaLine(n);
              if (r < e) t = n + 1;
              else {
                if (!(r > e)) {
                  let r = n;
                  for (; r > t && this._getDeltaLine(r - 1) === e; ) r--;
                  let s = n;
                  for (; s < i && this._getDeltaLine(s + 1) === e; ) s++;
                  return new g(this._tokens.subarray(4 * r, 4 * s + 4));
                }
                i = n - 1;
              }
            }
            return this._getDeltaLine(t) === e
              ? new g(this._tokens.subarray(4 * t, 4 * t + 4))
              : null;
          }
          clear() {
            this._tokenCount = 0;
          }
          removeTokens(e, t, i, n) {
            const r = this._tokens,
              s = this._tokenCount;
            let o = 0,
              a = !1,
              l = 0;
            for (let c = 0; c < s; c++) {
              const s = 4 * c,
                d = r[s],
                h = r[s + 1],
                u = r[s + 2],
                g = r[s + 3];
              if (
                (d > e || (d === e && u >= t)) &&
                (d < i || (d === i && h <= n))
              )
                a = !0;
              else {
                if ((0 === o && (l = d), a)) {
                  const e = 4 * o;
                  (r[e] = d - l),
                    (r[e + 1] = h),
                    (r[e + 2] = u),
                    (r[e + 3] = g);
                }
                o++;
              }
            }
            return (this._tokenCount = o), l;
          }
          split(e, t, i, n) {
            const r = this._tokens,
              s = this._tokenCount;
            let o = [],
              a = [],
              l = o,
              c = 0,
              d = 0;
            for (let o = 0; o < s; o++) {
              const s = 4 * o,
                h = r[s],
                u = r[s + 1],
                g = r[s + 2],
                f = r[s + 3];
              if (h > e || (h === e && g >= t)) {
                if (h < i || (h === i && u <= n)) continue;
                l !== a && ((l = a), (c = 0), (d = h));
              }
              (l[c++] = h - d), (l[c++] = u), (l[c++] = g), (l[c++] = f);
            }
            return [new u(new Uint32Array(o)), new u(new Uint32Array(a)), d];
          }
          acceptDeleteRange(e, t, i, n, r) {
            const s = this._tokens,
              o = this._tokenCount,
              a = n - t;
            let l = 0,
              c = !1;
            for (let d = 0; d < o; d++) {
              const h = 4 * d;
              let u = s[h],
                g = s[h + 1],
                f = s[h + 2];
              const p = s[h + 3];
              if (u < t || (u === t && f <= i)) {
                l++;
                continue;
              }
              if (u === t && g < i) u === n && f > r ? (f -= r - i) : (f = i);
              else if (u === t && g === i) {
                if (!(u === n && f > r)) {
                  c = !0;
                  continue;
                }
                f -= r - i;
              } else if (u < n || (u === n && g < r)) {
                if (!(u === n && f > r)) {
                  c = !0;
                  continue;
                }
                u === t
                  ? ((g = i), (f = g + (f - r)))
                  : ((g = 0), (f = g + (f - r)));
              } else if (u > n) {
                if (0 === a && !c) {
                  l = o;
                  break;
                }
                u -= a;
              } else {
                if (!(u === n && g >= r)) throw new Error('Not possible!');
                e && 0 === u && ((g += e), (f += e)),
                  (u -= a),
                  (g -= r - i),
                  (f -= r - i);
              }
              const m = 4 * l;
              (s[m] = u), (s[m + 1] = g), (s[m + 2] = f), (s[m + 3] = p), l++;
            }
            this._tokenCount = l;
          }
          acceptInsertText(e, t, i, n, r, s) {
            const o =
                0 === i &&
                1 === n &&
                ((s >= 48 && s <= 57) ||
                  (s >= 65 && s <= 90) ||
                  (s >= 97 && s <= 122)),
              a = this._tokens,
              l = this._tokenCount;
            for (let s = 0; s < l; s++) {
              const l = 4 * s;
              let c = a[l],
                d = a[l + 1],
                h = a[l + 2];
              if (!(c < e || (c === e && h < t))) {
                if (c === e && h === t) {
                  if (!o) continue;
                  h += 1;
                } else if (c === e && d < t && t < h)
                  0 === i ? (h += n) : (h = t);
                else {
                  if (c === e && d === t && o) continue;
                  if (c === e)
                    if (((c += i), 0 === i)) (d += n), (h += n);
                    else {
                      const e = h - d;
                      (d = r + (d - t)), (h = d + e);
                    }
                  else c += i;
                }
                (a[l] = c), (a[l + 1] = d), (a[l + 2] = h);
              }
            }
          }
        }
        class g {
          constructor(e) {
            this._tokens = e;
          }
          getCount() {
            return this._tokens.length / 4;
          }
          getStartCharacter(e) {
            return this._tokens[4 * e + 1];
          }
          getEndCharacter(e) {
            return this._tokens[4 * e + 2];
          }
          getMetadata(e) {
            return this._tokens[4 * e + 3];
          }
        }
        class f {
          constructor(e, t) {
            (this.startLineNumber = e),
              (this.tokens = t),
              (this.endLineNumber =
                this.startLineNumber + this.tokens.getMaxDeltaLine());
          }
          toString() {
            return this.tokens.toString(this.startLineNumber);
          }
          _updateEndLineNumber() {
            this.endLineNumber =
              this.startLineNumber + this.tokens.getMaxDeltaLine();
          }
          isEmpty() {
            return this.tokens.isEmpty();
          }
          getLineTokens(e) {
            return this.startLineNumber <= e && e <= this.endLineNumber
              ? this.tokens.getLineTokens(e - this.startLineNumber)
              : null;
          }
          getRange() {
            const e = this.tokens.getRange();
            return e
              ? new o.e(
                  this.startLineNumber + e.startLineNumber,
                  e.startColumn,
                  this.startLineNumber + e.endLineNumber,
                  e.endColumn
                )
              : e;
          }
          removeTokens(e) {
            const t = e.startLineNumber - this.startLineNumber,
              i = e.endLineNumber - this.startLineNumber;
            (this.startLineNumber += this.tokens.removeTokens(
              t,
              e.startColumn - 1,
              i,
              e.endColumn - 1
            )),
              this._updateEndLineNumber();
          }
          split(e) {
            const t = e.startLineNumber - this.startLineNumber,
              i = e.endLineNumber - this.startLineNumber,
              [n, r, s] = this.tokens.split(
                t,
                e.startColumn - 1,
                i,
                e.endColumn - 1
              );
            return [
              new f(this.startLineNumber, n),
              new f(this.startLineNumber + s, r),
            ];
          }
          applyEdit(e, t) {
            const [i, n, r] = l(t);
            this.acceptEdit(e, i, n, r, t.length > 0 ? t.charCodeAt(0) : 0);
          }
          acceptEdit(e, t, i, n, r) {
            this._acceptDeleteRange(e),
              this._acceptInsertText(
                new s.L(e.startLineNumber, e.startColumn),
                t,
                i,
                n,
                r
              ),
              this._updateEndLineNumber();
          }
          _acceptDeleteRange(e) {
            if (
              e.startLineNumber === e.endLineNumber &&
              e.startColumn === e.endColumn
            )
              return;
            const t = e.startLineNumber - this.startLineNumber,
              i = e.endLineNumber - this.startLineNumber;
            if (i < 0) {
              const e = i - t;
              return void (this.startLineNumber -= e);
            }
            const n = this.tokens.getMaxDeltaLine();
            if (!(t >= n + 1)) {
              if (t < 0 && i >= n + 1)
                return (this.startLineNumber = 0), void this.tokens.clear();
              if (t < 0) {
                const n = -t;
                (this.startLineNumber -= n),
                  this.tokens.acceptDeleteRange(
                    e.startColumn - 1,
                    0,
                    0,
                    i,
                    e.endColumn - 1
                  );
              } else
                this.tokens.acceptDeleteRange(
                  0,
                  t,
                  e.startColumn - 1,
                  i,
                  e.endColumn - 1
                );
            }
          }
          _acceptInsertText(e, t, i, n, r) {
            if (0 === t && 0 === i) return;
            const s = e.lineNumber - this.startLineNumber;
            s < 0
              ? (this.startLineNumber += t)
              : s >= this.tokens.getMaxDeltaLine() + 1 ||
                this.tokens.acceptInsertText(s, e.column - 1, t, i, n, r);
          }
        }
        class p {
          constructor(e, t) {
            (this.startLineNumber = e), (this.tokens = t);
          }
        }
        function m(e) {
          return e instanceof Uint32Array ? e : new Uint32Array(e);
        }
        class _ {
          constructor() {
            (this._pieces = []), (this._isComplete = !1);
          }
          flush() {
            (this._pieces = []), (this._isComplete = !1);
          }
          set(e, t) {
            (this._pieces = e || []), (this._isComplete = t);
          }
          setPartial(e, t) {
            let i = e;
            if (t.length > 0) {
              const n = t[0].getRange(),
                r = t[t.length - 1].getRange();
              if (!n || !r) return e;
              i = e.plusRange(n).plusRange(r);
            }
            let r = null;
            for (let e = 0, t = this._pieces.length; e < t; e++) {
              const n = this._pieces[e];
              if (n.endLineNumber < i.startLineNumber) continue;
              if (n.startLineNumber > i.endLineNumber) {
                r = r || { index: e };
                break;
              }
              if ((n.removeTokens(i), n.isEmpty())) {
                this._pieces.splice(e, 1), e--, t--;
                continue;
              }
              if (n.endLineNumber < i.startLineNumber) continue;
              if (n.startLineNumber > i.endLineNumber) {
                r = r || { index: e };
                continue;
              }
              const [s, o] = n.split(i);
              s.isEmpty()
                ? (r = r || { index: e })
                : o.isEmpty() ||
                  (this._pieces.splice(e, 1, s, o),
                  e++,
                  t++,
                  (r = r || { index: e }));
            }
            return (
              (r = r || { index: this._pieces.length }),
              t.length > 0 && (this._pieces = n.Zv(this._pieces, r.index, t)),
              i
            );
          }
          isComplete() {
            return this._isComplete;
          }
          addSemanticTokens(e, t) {
            const i = this._pieces;
            if (0 === i.length) return t;
            const n = i[_._findFirstPieceWithLine(i, e)].getLineTokens(e);
            if (!n) return t;
            const s = t.getCount(),
              o = n.getCount();
            let a = 0,
              l = [],
              c = 0,
              d = 0;
            const h = (e, t) => {
              e !== d && ((d = e), (l[c++] = e), (l[c++] = t));
            };
            for (let e = 0; e < o; e++) {
              const i = n.getStartCharacter(e),
                r = n.getEndCharacter(e),
                o = n.getMetadata(e),
                l =
                  ((1 & o ? 2048 : 0) |
                    (2 & o ? 4096 : 0) |
                    (4 & o ? 8192 : 0) |
                    (8 & o ? 8372224 : 0) |
                    (16 & o ? 4286578688 : 0)) >>>
                  0,
                c = ~l >>> 0;
              for (; a < s && t.getEndOffset(a) <= i; )
                h(t.getEndOffset(a), t.getMetadata(a)), a++;
              for (
                a < s && t.getStartOffset(a) < i && h(i, t.getMetadata(a));
                a < s && t.getEndOffset(a) < r;

              )
                h(t.getEndOffset(a), (t.getMetadata(a) & c) | (o & l)), a++;
              if (a < s)
                h(r, (t.getMetadata(a) & c) | (o & l)),
                  t.getEndOffset(a) === r && a++;
              else {
                const e = Math.min(Math.max(0, a - 1), s - 1);
                h(r, (t.getMetadata(e) & c) | (o & l));
              }
            }
            for (; a < s; ) h(t.getEndOffset(a), t.getMetadata(a)), a++;
            return new r.A(new Uint32Array(l), t.getLineContent());
          }
          static _findFirstPieceWithLine(e, t) {
            let i = 0,
              n = e.length - 1;
            for (; i < n; ) {
              let r = i + Math.floor((n - i) / 2);
              if (e[r].endLineNumber < t) i = r + 1;
              else {
                if (!(e[r].startLineNumber > t)) {
                  for (
                    ;
                    r > i &&
                    e[r - 1].startLineNumber <= t &&
                    t <= e[r - 1].endLineNumber;

                  )
                    r--;
                  return r;
                }
                n = r - 1;
              }
            }
            return i;
          }
          acceptEdit(e, t, i, n, r) {
            for (const s of this._pieces) s.acceptEdit(e, t, i, n, r);
          }
        }
        class b {
          constructor() {
            (this._lineTokens = []), (this._len = 0);
          }
          flush() {
            (this._lineTokens = []), (this._len = 0);
          }
          getTokens(e, t, i) {
            let n = null;
            if (
              (t < this._len && (n = this._lineTokens[t]),
              null !== n && n !== d)
            )
              return new r.A(m(n), i);
            let s = new Uint32Array(2);
            return (s[0] = i.length), (s[1] = c(e)), new r.A(s, i);
          }
          static _massageTokens(e, t, i) {
            const n = i ? m(i) : null;
            if (0 === t) {
              let t = !1;
              if (
                (n && n.length > 1 && (t = a.NX.getLanguageId(n[1]) !== e), !t)
              )
                return d;
            }
            if (!n || 0 === n.length) {
              const i = new Uint32Array(2);
              return (i[0] = t), (i[1] = c(e)), i.buffer;
            }
            return (
              (n[n.length - 2] = t),
              0 === n.byteOffset && n.byteLength === n.buffer.byteLength
                ? n.buffer
                : n
            );
          }
          _ensureLine(e) {
            for (; e >= this._len; )
              (this._lineTokens[this._len] = null), this._len++;
          }
          _deleteLines(e, t) {
            0 !== t &&
              (e + t > this._len && (t = this._len - e),
              this._lineTokens.splice(e, t),
              (this._len -= t));
          }
          _insertLines(e, t) {
            if (0 === t) return;
            let i = [];
            for (let e = 0; e < t; e++) i[e] = null;
            (this._lineTokens = n.Zv(this._lineTokens, e, i)), (this._len += t);
          }
          setTokens(e, t, i, n, r) {
            const s = b._massageTokens(e, i, n);
            this._ensureLine(t);
            const o = this._lineTokens[t];
            return (this._lineTokens[t] = s), !!r && !b._equals(o, s);
          }
          static _equals(e, t) {
            if (!e || !t) return !e && !t;
            const i = m(e),
              n = m(t);
            if (i.length !== n.length) return !1;
            for (let e = 0, t = i.length; e < t; e++)
              if (i[e] !== n[e]) return !1;
            return !0;
          }
          acceptEdit(e, t, i) {
            this._acceptDeleteRange(e),
              this._acceptInsertText(
                new s.L(e.startLineNumber, e.startColumn),
                t,
                i
              );
          }
          _acceptDeleteRange(e) {
            const t = e.startLineNumber - 1;
            if (t >= this._len) return;
            if (e.startLineNumber === e.endLineNumber) {
              if (e.startColumn === e.endColumn) return;
              return void (this._lineTokens[t] = b._delete(
                this._lineTokens[t],
                e.startColumn - 1,
                e.endColumn - 1
              ));
            }
            this._lineTokens[t] = b._deleteEnding(
              this._lineTokens[t],
              e.startColumn - 1
            );
            const i = e.endLineNumber - 1;
            let n = null;
            i < this._len &&
              (n = b._deleteBeginning(this._lineTokens[i], e.endColumn - 1)),
              (this._lineTokens[t] = b._append(this._lineTokens[t], n)),
              this._deleteLines(
                e.startLineNumber,
                e.endLineNumber - e.startLineNumber
              );
          }
          _acceptInsertText(e, t, i) {
            if (0 === t && 0 === i) return;
            const n = e.lineNumber - 1;
            n >= this._len ||
              (0 !== t
                ? ((this._lineTokens[n] = b._deleteEnding(
                    this._lineTokens[n],
                    e.column - 1
                  )),
                  (this._lineTokens[n] = b._insert(
                    this._lineTokens[n],
                    e.column - 1,
                    i
                  )),
                  this._insertLines(e.lineNumber, t))
                : (this._lineTokens[n] = b._insert(
                    this._lineTokens[n],
                    e.column - 1,
                    i
                  )));
          }
          static _deleteBeginning(e, t) {
            return null === e || e === d ? e : b._delete(e, 0, t);
          }
          static _deleteEnding(e, t) {
            if (null === e || e === d) return e;
            const i = m(e),
              n = i[i.length - 2];
            return b._delete(e, t, n);
          }
          static _delete(e, t, i) {
            if (null === e || e === d || t === i) return e;
            const n = m(e),
              s = n.length >>> 1;
            if (0 === t && n[n.length - 2] === i) return d;
            const o = r.A.findIndexInTokensArray(n, t),
              a = o > 0 ? n[(o - 1) << 1] : 0;
            if (i < n[o << 1]) {
              const r = i - t;
              for (let e = o; e < s; e++) n[e << 1] -= r;
              return e;
            }
            let l, c;
            a !== t
              ? ((n[o << 1] = t), (l = (o + 1) << 1), (c = t))
              : ((l = o << 1), (c = a));
            const h = i - t;
            for (let e = o + 1; e < s; e++) {
              const t = n[e << 1] - h;
              t > c && ((n[l++] = t), (n[l++] = n[1 + (e << 1)]), (c = t));
            }
            if (l === n.length) return e;
            let u = new Uint32Array(l);
            return u.set(n.subarray(0, l), 0), u.buffer;
          }
          static _append(e, t) {
            if (t === d) return e;
            if (e === d) return t;
            if (null === e) return e;
            if (null === t) return null;
            const i = m(e),
              n = m(t),
              r = n.length >>> 1;
            let s = new Uint32Array(i.length + n.length);
            s.set(i, 0);
            let o = i.length;
            const a = i[i.length - 2];
            for (let e = 0; e < r; e++)
              (s[o++] = n[e << 1] + a), (s[o++] = n[1 + (e << 1)]);
            return s.buffer;
          }
          static _insert(e, t, i) {
            if (null === e || e === d) return e;
            const n = m(e),
              s = n.length >>> 1;
            let o = r.A.findIndexInTokensArray(n, t);
            o > 0 && n[(o - 1) << 1] === t && o--;
            for (let e = o; e < s; e++) n[e << 1] += i;
            return e;
          }
        }
      },
      97461: (e, t, i) => {
        'use strict';
        i.d(t, { vu: () => n, Af: () => r, eq: () => s, t2: () => a });
        const n = '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?',
          r = (function (e = '') {
            let t = '(-?\\d*\\.\\d\\w*)|([^';
            for (const i of n) e.indexOf(i) >= 0 || (t += '\\' + i);
            return (t += '\\s]+)'), new RegExp(t, 'g');
          })();
        function s(e) {
          let t = r;
          if (e && e instanceof RegExp)
            if (e.global) t = e;
            else {
              let i = 'g';
              e.ignoreCase && (i += 'i'),
                e.multiline && (i += 'm'),
                e.unicode && (i += 'u'),
                (t = new RegExp(e.source, i));
            }
          return (t.lastIndex = 0), t;
        }
        const o = { maxLen: 1e3, windowSize: 15, timeBudget: 150 };
        function a(e, t, i, n, r = o) {
          if (i.length > r.maxLen) {
            let s = e - r.maxLen / 2;
            return (
              s < 0 ? ((n += e), (s = 0)) : (n += s),
              a(e, t, (i = i.substring(s, e + r.maxLen / 2)), n, r)
            );
          }
          Date.now();
          const s = e - 1 - n;
          let c = -1,
            d = null;
          for (let e = 1; ; e++) {
            Date.now(), r.timeBudget;
            const n = s - r.windowSize * e;
            t.lastIndex = Math.max(0, n);
            const o = l(t, i, s, c);
            if (!o && d) break;
            if (((d = o), n <= 0)) break;
            c = n;
          }
          if (d) {
            let e = {
              word: d[0],
              startColumn: n + 1 + d.index,
              endColumn: n + 1 + d.index + d[0].length,
            };
            return (t.lastIndex = 0), e;
          }
          return null;
        }
        function l(e, t, i, n) {
          let r;
          for (; (r = e.exec(t)); ) {
            const t = r.index || 0;
            if (t <= i && e.lastIndex >= i) return r;
            if (n > 0 && t > n) return null;
          }
          return null;
        }
      },
      43775: (e, t, i) => {
        'use strict';
        i.d(t, {
          H9: () => P,
          He: () => R,
          OH: () => H,
          KZ: () => x,
          RN: () => I,
          Ct: () => T,
          Az: () => F,
          MY: () => v,
          vH: () => N,
          vN: () => B,
          K7: () => U,
          wT: () => z,
          vJ: () => D,
          AD: () => C,
          aC: () => V,
          xp: () => M,
          vI: () => O,
          rl: () => f,
          pM: () => Y,
          ln: () => W,
          jC: () => E,
          FL: () => S,
          G0: () => k,
          AC: () => j,
          nD: () => L,
          WW: () => b,
          uZ: () => y,
          NX: () => p,
          RW: () => $,
          tA: () => A,
          jr: () => _,
          Sy: () => m,
          vx: () => w,
        });
        var n = i(70666),
          r = i(24314),
          s = i(4669),
          o = i(5976),
          a = i(14118),
          l = i(88721);
        function c(e, t, i, n) {
          if (Array.isArray(e)) {
            let r = 0;
            for (const s of e) {
              const e = c(s, t, i, n);
              if (10 === e) return e;
              e > r && (r = e);
            }
            return r;
          }
          if ('string' == typeof e)
            return n ? ('*' === e ? 5 : e === i ? 10 : 0) : 0;
          if (e) {
            const {
              language: r,
              pattern: s,
              scheme: o,
              hasAccessToAllModels: c,
            } = e;
            if (!n && !c) return 0;
            let d = 0;
            if (o)
              if (o === t.scheme) d = 10;
              else {
                if ('*' !== o) return 0;
                d = 5;
              }
            if (r)
              if (r === i) d = 10;
              else {
                if ('*' !== r) return 0;
                d = Math.max(d, 5);
              }
            if (s) {
              let e;
              if (
                ((e =
                  'string' == typeof s
                    ? s
                    : Object.assign(Object.assign({}, s), {
                        base: (0, l.Fv)(s.base),
                      })),
                e !== t.fsPath && !(0, a.EQ)(e, t.fsPath))
              )
                return 0;
              d = 10;
            }
            return d;
          }
          return 0;
        }
        var d = i(51200);
        function h(e) {
          return (
            'string' != typeof e &&
            (Array.isArray(e) ? e.every(h) : !!e.exclusive)
          );
        }
        class u {
          constructor() {
            (this._clock = 0),
              (this._entries = []),
              (this._onDidChange = new s.Q5());
          }
          get onDidChange() {
            return this._onDidChange.event;
          }
          register(e, t) {
            let i = {
              selector: e,
              provider: t,
              _score: -1,
              _time: this._clock++,
            };
            return (
              this._entries.push(i),
              (this._lastCandidate = void 0),
              this._onDidChange.fire(this._entries.length),
              (0, o.OF)(() => {
                if (i) {
                  let e = this._entries.indexOf(i);
                  e >= 0 &&
                    (this._entries.splice(e, 1),
                    (this._lastCandidate = void 0),
                    this._onDidChange.fire(this._entries.length),
                    (i = void 0));
                }
              })
            );
          }
          has(e) {
            return this.all(e).length > 0;
          }
          all(e) {
            if (!e) return [];
            this._updateScores(e);
            const t = [];
            for (let e of this._entries) e._score > 0 && t.push(e.provider);
            return t;
          }
          ordered(e) {
            const t = [];
            return this._orderedForEach(e, (e) => t.push(e.provider)), t;
          }
          orderedGroups(e) {
            const t = [];
            let i, n;
            return (
              this._orderedForEach(e, (e) => {
                i && n === e._score
                  ? i.push(e.provider)
                  : ((n = e._score), (i = [e.provider]), t.push(i));
              }),
              t
            );
          }
          _orderedForEach(e, t) {
            if (e) {
              this._updateScores(e);
              for (const e of this._entries) e._score > 0 && t(e);
            }
          }
          _updateScores(e) {
            let t = {
              uri: e.uri.toString(),
              language: e.getLanguageIdentifier().language,
            };
            if (
              !this._lastCandidate ||
              this._lastCandidate.language !== t.language ||
              this._lastCandidate.uri !== t.uri
            ) {
              this._lastCandidate = t;
              for (let t of this._entries)
                if (
                  ((t._score = c(
                    t.selector,
                    e.uri,
                    e.getLanguageIdentifier().language,
                    (0, d.p)(e)
                  )),
                  h(t.selector) && t._score > 0)
                ) {
                  for (let e of this._entries) e._score = 0;
                  t._score = 1e3;
                  break;
                }
              this._entries.sort(u._compareByScoreAndTime);
            }
          }
          static _compareByScoreAndTime(e, t) {
            return e._score < t._score
              ? 1
              : e._score > t._score
              ? -1
              : e._time < t._time
              ? 1
              : e._time > t._time
              ? -1
              : 0;
          }
        }
        var g = i(73046);
        class f {
          constructor(e, t) {
            (this.language = e), (this.id = t);
          }
        }
        class p {
          static getLanguageId(e) {
            return (255 & e) >>> 0;
          }
          static getTokenType(e) {
            return (1792 & e) >>> 8;
          }
          static getFontStyle(e) {
            return (14336 & e) >>> 11;
          }
          static getForeground(e) {
            return (8372224 & e) >>> 14;
          }
          static getBackground(e) {
            return (4286578688 & e) >>> 23;
          }
          static getClassNameFromMetadata(e) {
            let t = 'mtk' + this.getForeground(e),
              i = this.getFontStyle(e);
            return (
              1 & i && (t += ' mtki'),
              2 & i && (t += ' mtkb'),
              4 & i && (t += ' mtku'),
              t
            );
          }
          static getInlineStyleFromMetadata(e, t) {
            const i = this.getForeground(e),
              n = this.getFontStyle(e);
            let r = `color: ${t[i]};`;
            return (
              1 & n && (r += 'font-style: italic;'),
              2 & n && (r += 'font-weight: bold;'),
              4 & n && (r += 'text-decoration: underline;'),
              r
            );
          }
        }
        const m = (function () {
          let e = Object.create(null);
          return (
            (e[0] = 'symbol-method'),
            (e[1] = 'symbol-function'),
            (e[2] = 'symbol-constructor'),
            (e[3] = 'symbol-field'),
            (e[4] = 'symbol-variable'),
            (e[5] = 'symbol-class'),
            (e[6] = 'symbol-struct'),
            (e[7] = 'symbol-interface'),
            (e[8] = 'symbol-module'),
            (e[9] = 'symbol-property'),
            (e[10] = 'symbol-event'),
            (e[11] = 'symbol-operator'),
            (e[12] = 'symbol-unit'),
            (e[13] = 'symbol-value'),
            (e[14] = 'symbol-constant'),
            (e[15] = 'symbol-enum'),
            (e[16] = 'symbol-enum-member'),
            (e[17] = 'symbol-keyword'),
            (e[27] = 'symbol-snippet'),
            (e[18] = 'symbol-text'),
            (e[19] = 'symbol-color'),
            (e[20] = 'symbol-file'),
            (e[21] = 'symbol-reference'),
            (e[22] = 'symbol-customcolor'),
            (e[23] = 'symbol-folder'),
            (e[24] = 'symbol-type-parameter'),
            (e[25] = 'account'),
            (e[26] = 'issues'),
            function (t) {
              const i = e[t];
              let n = i && g.fK.get(i);
              return (
                n ||
                  (console.info('No codicon found for CompletionItemKind ' + t),
                  (n = g.lA.symbolProperty)),
                n.classNames
              );
            }
          );
        })();
        let _ = (function () {
          let e = Object.create(null);
          return (
            (e.method = 0),
            (e.function = 1),
            (e.constructor = 2),
            (e.field = 3),
            (e.variable = 4),
            (e.class = 5),
            (e.struct = 6),
            (e.interface = 7),
            (e.module = 8),
            (e.property = 9),
            (e.event = 10),
            (e.operator = 11),
            (e.unit = 12),
            (e.value = 13),
            (e.constant = 14),
            (e.enum = 15),
            (e['enum-member'] = 16),
            (e.enumMember = 16),
            (e.keyword = 17),
            (e.snippet = 27),
            (e.text = 18),
            (e.color = 19),
            (e.file = 20),
            (e.reference = 21),
            (e.customcolor = 22),
            (e.folder = 23),
            (e['type-parameter'] = 24),
            (e.typeParameter = 24),
            (e.account = 25),
            (e.issue = 26),
            function (t, i) {
              let n = e[t];
              return void 0 !== n || i || (n = 9), n;
            }
          );
        })();
        var b, v, y;
        function w(e) {
          return (
            e &&
            n.o.isUri(e.uri) &&
            r.e.isIRange(e.range) &&
            (r.e.isIRange(e.originSelectionRange) ||
              r.e.isIRange(e.targetSelectionRange))
          );
        }
        !(function (e) {
          (e[(e.Invoke = 1)] = 'Invoke'),
            (e[(e.TriggerCharacter = 2)] = 'TriggerCharacter'),
            (e[(e.ContentChange = 3)] = 'ContentChange');
        })(b || (b = {})),
          (function (e) {
            (e[(e.Text = 0)] = 'Text'),
              (e[(e.Read = 1)] = 'Read'),
              (e[(e.Write = 2)] = 'Write');
          })(v || (v = {})),
          (function (e) {
            const t = new Map();
            t.set('file', 0),
              t.set('module', 1),
              t.set('namespace', 2),
              t.set('package', 3),
              t.set('class', 4),
              t.set('method', 5),
              t.set('property', 6),
              t.set('field', 7),
              t.set('constructor', 8),
              t.set('enum', 9),
              t.set('interface', 10),
              t.set('function', 11),
              t.set('variable', 12),
              t.set('constant', 13),
              t.set('string', 14),
              t.set('number', 15),
              t.set('boolean', 16),
              t.set('array', 17),
              t.set('object', 18),
              t.set('key', 19),
              t.set('null', 20),
              t.set('enum-member', 21),
              t.set('struct', 22),
              t.set('event', 23),
              t.set('operator', 24),
              t.set('type-parameter', 25);
            const i = new Map();
            i.set(0, 'file'),
              i.set(1, 'module'),
              i.set(2, 'namespace'),
              i.set(3, 'package'),
              i.set(4, 'class'),
              i.set(5, 'method'),
              i.set(6, 'property'),
              i.set(7, 'field'),
              i.set(8, 'constructor'),
              i.set(9, 'enum'),
              i.set(10, 'interface'),
              i.set(11, 'function'),
              i.set(12, 'variable'),
              i.set(13, 'constant'),
              i.set(14, 'string'),
              i.set(15, 'number'),
              i.set(16, 'boolean'),
              i.set(17, 'array'),
              i.set(18, 'object'),
              i.set(19, 'key'),
              i.set(20, 'null'),
              i.set(21, 'enum-member'),
              i.set(22, 'struct'),
              i.set(23, 'event'),
              i.set(24, 'operator'),
              i.set(25, 'type-parameter'),
              (e.fromString = function (e) {
                return t.get(e);
              }),
              (e.toString = function (e) {
                return i.get(e);
              }),
              (e.toCssClassName = function (e, t) {
                const n = i.get(e);
                let r = n && g.fK.get('symbol-' + n);
                return (
                  r ||
                    (console.info('No codicon found for SymbolKind ' + e),
                    (r = g.lA.symbolProperty)),
                  `${t ? 'inline' : 'block'} ${r.classNames}`
                );
              });
          })(y || (y = {}));
        class C {
          constructor(e) {
            this.value = e;
          }
        }
        (C.Comment = new C('comment')),
          (C.Imports = new C('imports')),
          (C.Region = new C('region'));
        const S = new u(),
          k = new u(),
          x = new u(),
          L = new u(),
          M = new u(),
          D = new u(),
          N = new u(),
          E = new u(),
          T = new u(),
          I = new u(),
          O = new u(),
          A = new u(),
          R = new u(),
          P = new u(),
          F = new u(),
          B = new u(),
          W = new u(),
          Y = new u(),
          H = new u(),
          j = new u(),
          V = new u(),
          z = new u(),
          U = new u(),
          $ = new (class {
            constructor() {
              (this._map = new Map()),
                (this._promises = new Map()),
                (this._onDidChange = new s.Q5()),
                (this.onDidChange = this._onDidChange.event),
                (this._colorMap = null);
            }
            fire(e) {
              this._onDidChange.fire({
                changedLanguages: e,
                changedColorMap: !1,
              });
            }
            register(e, t) {
              return (
                this._map.set(e, t),
                this.fire([e]),
                (0, o.OF)(() => {
                  this._map.get(e) === t &&
                    (this._map.delete(e), this.fire([e]));
                })
              );
            }
            registerPromise(e, t) {
              let i = null,
                n = !1;
              return (
                this._promises.set(
                  e,
                  t.then((t) => {
                    this._promises.delete(e),
                      !n && t && (i = this.register(e, t));
                  })
                ),
                (0, o.OF)(() => {
                  (n = !0), i && i.dispose();
                })
              );
            }
            getPromise(e) {
              const t = this.get(e);
              if (t) return Promise.resolve(t);
              const i = this._promises.get(e);
              return i ? i.then((t) => this.get(e)) : null;
            }
            get(e) {
              return this._map.get(e) || null;
            }
            setColorMap(e) {
              (this._colorMap = e),
                this._onDidChange.fire({
                  changedLanguages: Array.from(this._map.keys()),
                  changedColorMap: !0,
                });
            }
            getColorMap() {
              return this._colorMap;
            }
            getDefaultBackground() {
              return this._colorMap && this._colorMap.length > 2
                ? this._colorMap[2]
                : null;
            }
          })();
      },
      97354: (e, t, i) => {
        'use strict';
        var n;
        i.d(t, { w: () => n, V: () => r }),
          (function (e) {
            (e[(e.None = 0)] = 'None'),
              (e[(e.Indent = 1)] = 'Indent'),
              (e[(e.IndentOutdent = 2)] = 'IndentOutdent'),
              (e[(e.Outdent = 3)] = 'Outdent');
          })(n || (n = {}));
        class r {
          constructor(e) {
            if (
              ((this.open = e.open),
              (this.close = e.close),
              (this._standardTokenMask = 0),
              Array.isArray(e.notIn))
            )
              for (let t = 0, i = e.notIn.length; t < i; t++)
                switch (e.notIn[t]) {
                  case 'string':
                    this._standardTokenMask |= 2;
                    break;
                  case 'comment':
                    this._standardTokenMask |= 1;
                    break;
                  case 'regex':
                    this._standardTokenMask |= 4;
                }
          }
          isOK(e) {
            return 0 == (this._standardTokenMask & e);
          }
        }
      },
      83831: (e, t, i) => {
        'use strict';
        i.d(t, { zu: () => _ });
        var n = i(4669),
          r = i(5976),
          s = i(97295),
          o = i(97461),
          a = i(97354),
          l = i(40764);
        class c {
          constructor(e) {
            if (
              (e.autoClosingPairs
                ? (this._autoClosingPairs = e.autoClosingPairs.map(
                    (e) => new a.V(e)
                  ))
                : e.brackets
                ? (this._autoClosingPairs = e.brackets.map(
                    (e) => new a.V({ open: e[0], close: e[1] })
                  ))
                : (this._autoClosingPairs = []),
              e.__electricCharacterSupport &&
                e.__electricCharacterSupport.docComment)
            ) {
              const t = e.__electricCharacterSupport.docComment;
              this._autoClosingPairs.push(
                new a.V({ open: t.open, close: t.close || '' })
              );
            }
            (this._autoCloseBefore =
              'string' == typeof e.autoCloseBefore
                ? e.autoCloseBefore
                : c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED),
              (this._surroundingPairs =
                e.surroundingPairs || this._autoClosingPairs);
          }
          getAutoClosingPairs() {
            return this._autoClosingPairs;
          }
          getAutoCloseBeforeSet() {
            return this._autoCloseBefore;
          }
          static shouldAutoClosePair(e, t, i) {
            if (0 === t.getTokenCount()) return !0;
            const n = t.findTokenIndexAtOffset(i - 2),
              r = t.getStandardTokenType(n);
            return e.isOK(r);
          }
          getSurroundingPairs() {
            return this._surroundingPairs;
          }
        }
        c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED = ';:.,=}])> \n\t';
        var d = i(34227);
        class h {
          constructor(e) {
            this._richEditBrackets = e;
          }
          getElectricCharacters() {
            let e = [];
            if (this._richEditBrackets)
              for (const t of this._richEditBrackets.brackets)
                for (const i of t.close) {
                  const t = i.charAt(i.length - 1);
                  e.push(t);
                }
            return (e = e.filter((e, t, i) => i.indexOf(e) === t)), e;
          }
          onElectricCharacter(e, t, i) {
            if (
              !this._richEditBrackets ||
              0 === this._richEditBrackets.brackets.length
            )
              return null;
            const n = t.findTokenIndexAtOffset(i - 1);
            if ((0, l.Bu)(t.getStandardTokenType(n))) return null;
            const r = this._richEditBrackets.reversedRegex,
              s = t.getLineContent().substring(0, i - 1) + e,
              o = d.Vr.findPrevBracketInRange(r, 1, s, 0, s.length);
            if (!o) return null;
            const a = s
              .substring(o.startColumn - 1, o.endColumn - 1)
              .toLowerCase();
            if (this._richEditBrackets.textIsOpenBracket[a]) return null;
            const c = t.getActualLineContentBefore(o.startColumn - 1);
            return /^\s*$/.test(c) ? { matchOpenBracket: a } : null;
          }
        }
        class u {
          constructor(e) {
            this._indentationRules = e;
          }
          shouldIncrease(e) {
            return !!(
              this._indentationRules &&
              this._indentationRules.increaseIndentPattern &&
              this._indentationRules.increaseIndentPattern.test(e)
            );
          }
          shouldDecrease(e) {
            return !!(
              this._indentationRules &&
              this._indentationRules.decreaseIndentPattern &&
              this._indentationRules.decreaseIndentPattern.test(e)
            );
          }
          shouldIndentNextLine(e) {
            return !!(
              this._indentationRules &&
              this._indentationRules.indentNextLinePattern &&
              this._indentationRules.indentNextLinePattern.test(e)
            );
          }
          shouldIgnore(e) {
            return !!(
              this._indentationRules &&
              this._indentationRules.unIndentedLinePattern &&
              this._indentationRules.unIndentedLinePattern.test(e)
            );
          }
          getIndentMetadata(e) {
            let t = 0;
            return (
              this.shouldIncrease(e) && (t += 1),
              this.shouldDecrease(e) && (t += 2),
              this.shouldIndentNextLine(e) && (t += 4),
              this.shouldIgnore(e) && (t += 8),
              t
            );
          }
        }
        var g = i(17301);
        class f {
          constructor(e) {
            ((e = e || {}).brackets = e.brackets || [
              ['(', ')'],
              ['{', '}'],
              ['[', ']'],
            ]),
              (this._brackets = []),
              e.brackets.forEach((e) => {
                const t = f._createOpenBracketRegExp(e[0]),
                  i = f._createCloseBracketRegExp(e[1]);
                t &&
                  i &&
                  this._brackets.push({
                    open: e[0],
                    openRegExp: t,
                    close: e[1],
                    closeRegExp: i,
                  });
              }),
              (this._regExpRules = e.onEnterRules || []);
          }
          onEnter(e, t, i, n) {
            if (e >= 3)
              for (let e = 0, r = this._regExpRules.length; e < r; e++) {
                let r = this._regExpRules[e];
                if (
                  [
                    { reg: r.beforeText, text: i },
                    { reg: r.afterText, text: n },
                    { reg: r.oneLineAboveText, text: t },
                  ].every((e) => !e.reg || e.reg.test(e.text))
                )
                  return r.action;
              }
            if (e >= 2 && i.length > 0 && n.length > 0)
              for (let e = 0, t = this._brackets.length; e < t; e++) {
                let t = this._brackets[e];
                if (t.openRegExp.test(i) && t.closeRegExp.test(n))
                  return { indentAction: a.w.IndentOutdent };
              }
            if (e >= 2 && i.length > 0)
              for (let e = 0, t = this._brackets.length; e < t; e++)
                if (this._brackets[e].openRegExp.test(i))
                  return { indentAction: a.w.Indent };
            return null;
          }
          static _createOpenBracketRegExp(e) {
            let t = s.ec(e);
            return (
              /\B/.test(t.charAt(0)) || (t = '\\b' + t),
              (t += '\\s*$'),
              f._safeRegExp(t)
            );
          }
          static _createCloseBracketRegExp(e) {
            let t = s.ec(e);
            return (
              /\B/.test(t.charAt(t.length - 1)) || (t += '\\b'),
              (t = '^\\s*' + t),
              f._safeRegExp(t)
            );
          }
          static _safeRegExp(e) {
            try {
              return new RegExp(e);
            } catch (e) {
              return (0, g.dL)(e), null;
            }
          }
        }
        class p {
          constructor(e, t, i) {
            (this._languageIdentifier = e),
              (this._brackets = null),
              (this._electricCharacter = null);
            let n = null;
            t && (n = t._conf),
              (this._conf = p._mergeConf(n, i)),
              (this._onEnterSupport =
                this._conf.brackets ||
                this._conf.indentationRules ||
                this._conf.onEnterRules
                  ? new f(this._conf)
                  : null),
              (this.comments = p._handleComments(this._conf)),
              (this.characterPair = new c(this._conf)),
              (this.wordDefinition = this._conf.wordPattern || o.Af),
              (this.indentationRules = this._conf.indentationRules),
              this._conf.indentationRules
                ? (this.indentRulesSupport = new u(this._conf.indentationRules))
                : (this.indentRulesSupport = null),
              (this.foldingRules = this._conf.folding || {});
          }
          get brackets() {
            return (
              !this._brackets &&
                this._conf.brackets &&
                (this._brackets = new d.EA(
                  this._languageIdentifier,
                  this._conf.brackets
                )),
              this._brackets
            );
          }
          get electricCharacter() {
            return (
              this._electricCharacter ||
                (this._electricCharacter = new h(this.brackets)),
              this._electricCharacter
            );
          }
          onEnter(e, t, i, n) {
            return this._onEnterSupport
              ? this._onEnterSupport.onEnter(e, t, i, n)
              : null;
          }
          static _mergeConf(e, t) {
            return {
              comments: e ? t.comments || e.comments : t.comments,
              brackets: e ? t.brackets || e.brackets : t.brackets,
              wordPattern: e ? t.wordPattern || e.wordPattern : t.wordPattern,
              indentationRules: e
                ? t.indentationRules || e.indentationRules
                : t.indentationRules,
              onEnterRules: e
                ? t.onEnterRules || e.onEnterRules
                : t.onEnterRules,
              autoClosingPairs: e
                ? t.autoClosingPairs || e.autoClosingPairs
                : t.autoClosingPairs,
              surroundingPairs: e
                ? t.surroundingPairs || e.surroundingPairs
                : t.surroundingPairs,
              autoCloseBefore: e
                ? t.autoCloseBefore || e.autoCloseBefore
                : t.autoCloseBefore,
              folding: e ? t.folding || e.folding : t.folding,
              __electricCharacterSupport: e
                ? t.__electricCharacterSupport || e.__electricCharacterSupport
                : t.__electricCharacterSupport,
            };
          }
          static _handleComments(e) {
            let t = e.comments;
            if (!t) return null;
            let i = {};
            if (
              (t.lineComment && (i.lineCommentToken = t.lineComment),
              t.blockComment)
            ) {
              let [e, n] = t.blockComment;
              (i.blockCommentStartToken = e), (i.blockCommentEndToken = n);
            }
            return i;
          }
        }
        class m {
          constructor(e) {
            this.languageIdentifier = e;
          }
        }
        const _ = new (class {
          constructor() {
            (this._entries = new Map()),
              (this._onDidChange = new n.Q5()),
              (this.onDidChange = this._onDidChange.event);
          }
          register(e, t) {
            let i = this._getRichEditSupport(e.id),
              n = new p(e, i, t);
            return (
              this._entries.set(e.id, n),
              this._onDidChange.fire(new m(e)),
              (0, r.OF)(() => {
                this._entries.get(e.id) === n &&
                  (this._entries.set(e.id, i),
                  this._onDidChange.fire(new m(e)));
              })
            );
          }
          _getRichEditSupport(e) {
            return this._entries.get(e);
          }
          getIndentationRules(e) {
            const t = this._entries.get(e);
            return (t && t.indentationRules) || null;
          }
          _getElectricCharacterSupport(e) {
            let t = this._getRichEditSupport(e);
            return (t && t.electricCharacter) || null;
          }
          getElectricCharacters(e) {
            let t = this._getElectricCharacterSupport(e);
            return t ? t.getElectricCharacters() : [];
          }
          onElectricCharacter(e, t, i) {
            let n = (0, l.wH)(t, i - 1),
              r = this._getElectricCharacterSupport(n.languageId);
            return r
              ? r.onElectricCharacter(e, n, i - n.firstCharOffset)
              : null;
          }
          getComments(e) {
            let t = this._getRichEditSupport(e);
            return (t && t.comments) || null;
          }
          _getCharacterPairSupport(e) {
            let t = this._getRichEditSupport(e);
            return (t && t.characterPair) || null;
          }
          getAutoClosingPairs(e) {
            let t = this._getCharacterPairSupport(e);
            return t ? t.getAutoClosingPairs() : [];
          }
          getAutoCloseBeforeSet(e) {
            let t = this._getCharacterPairSupport(e);
            return t
              ? t.getAutoCloseBeforeSet()
              : c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED;
          }
          getSurroundingPairs(e) {
            let t = this._getCharacterPairSupport(e);
            return t ? t.getSurroundingPairs() : [];
          }
          shouldAutoClosePair(e, t, i) {
            const n = (0, l.wH)(t, i - 1);
            return c.shouldAutoClosePair(e, n, i - n.firstCharOffset);
          }
          getWordDefinition(e) {
            let t = this._getRichEditSupport(e);
            return t ? (0, o.eq)(t.wordDefinition || null) : (0, o.eq)(null);
          }
          getFoldingRules(e) {
            let t = this._getRichEditSupport(e);
            return t ? t.foldingRules : {};
          }
          getIndentRulesSupport(e) {
            let t = this._getRichEditSupport(e);
            return (t && t.indentRulesSupport) || null;
          }
          getPrecedingValidLine(e, t, i) {
            let n = e.getLanguageIdAtPosition(t, 0);
            if (t > 1) {
              let r,
                s = -1;
              for (r = t - 1; r >= 1; r--) {
                if (e.getLanguageIdAtPosition(r, 0) !== n) return s;
                let t = e.getLineContent(r);
                if (!i.shouldIgnore(t) && !/^\s+$/.test(t) && '' !== t)
                  return r;
                s = r;
              }
            }
            return -1;
          }
          getInheritIndentForLine(e, t, i, n = !0) {
            if (e < 4) return null;
            const r = this.getIndentRulesSupport(t.getLanguageIdentifier().id);
            if (!r) return null;
            if (i <= 1) return { indentation: '', action: null };
            const o = this.getPrecedingValidLine(t, i, r);
            if (o < 0) return null;
            if (o < 1) return { indentation: '', action: null };
            const l = t.getLineContent(o);
            if (r.shouldIncrease(l) || r.shouldIndentNextLine(l))
              return { indentation: s.V8(l), action: a.w.Indent, line: o };
            if (r.shouldDecrease(l))
              return { indentation: s.V8(l), action: null, line: o };
            {
              if (1 === o)
                return {
                  indentation: s.V8(t.getLineContent(o)),
                  action: null,
                  line: o,
                };
              const e = o - 1,
                i = r.getIndentMetadata(t.getLineContent(e));
              if (!(3 & i) && 4 & i) {
                let i = 0;
                for (let n = e - 1; n > 0; n--)
                  if (!r.shouldIndentNextLine(t.getLineContent(n))) {
                    i = n;
                    break;
                  }
                return {
                  indentation: s.V8(t.getLineContent(i + 1)),
                  action: null,
                  line: i + 1,
                };
              }
              if (n)
                return {
                  indentation: s.V8(t.getLineContent(o)),
                  action: null,
                  line: o,
                };
              for (let e = o; e > 0; e--) {
                const i = t.getLineContent(e);
                if (r.shouldIncrease(i))
                  return { indentation: s.V8(i), action: a.w.Indent, line: e };
                if (r.shouldIndentNextLine(i)) {
                  let i = 0;
                  for (let n = e - 1; n > 0; n--)
                    if (!r.shouldIndentNextLine(t.getLineContent(e))) {
                      i = n;
                      break;
                    }
                  return {
                    indentation: s.V8(t.getLineContent(i + 1)),
                    action: null,
                    line: i + 1,
                  };
                }
                if (r.shouldDecrease(i))
                  return { indentation: s.V8(i), action: null, line: e };
              }
              return {
                indentation: s.V8(t.getLineContent(1)),
                action: null,
                line: 1,
              };
            }
          }
          getGoodIndentForLine(e, t, i, n, r) {
            if (e < 4) return null;
            const o = this._getRichEditSupport(i);
            if (!o) return null;
            const l = this.getIndentRulesSupport(i);
            if (!l) return null;
            const c = this.getInheritIndentForLine(e, t, n),
              d = t.getLineContent(n);
            if (c) {
              const i = c.line;
              if (void 0 !== i) {
                const n = o.onEnter(e, '', t.getLineContent(i), '');
                if (n) {
                  let e = s.V8(t.getLineContent(i));
                  return (
                    n.removeText &&
                      (e = e.substring(0, e.length - n.removeText)),
                    n.indentAction === a.w.Indent ||
                    n.indentAction === a.w.IndentOutdent
                      ? (e = r.shiftIndent(e))
                      : n.indentAction === a.w.Outdent &&
                        (e = r.unshiftIndent(e)),
                    l.shouldDecrease(d) && (e = r.unshiftIndent(e)),
                    n.appendText && (e += n.appendText),
                    s.V8(e)
                  );
                }
              }
              return l.shouldDecrease(d)
                ? c.action === a.w.Indent
                  ? c.indentation
                  : r.unshiftIndent(c.indentation)
                : c.action === a.w.Indent
                ? r.shiftIndent(c.indentation)
                : c.indentation;
            }
            return null;
          }
          getIndentForEnter(e, t, i, n) {
            if (e < 4) return null;
            t.forceTokenization(i.startLineNumber);
            const r = t.getLineTokens(i.startLineNumber),
              o = (0, l.wH)(r, i.startColumn - 1),
              c = o.getLineContent();
            let d,
              h,
              u = !1;
            o.firstCharOffset > 0 && r.getLanguageId(0) !== o.languageId
              ? ((u = !0),
                (d = c.substr(0, i.startColumn - 1 - o.firstCharOffset)))
              : (d = r.getLineContent().substring(0, i.startColumn - 1)),
              (h = i.isEmpty()
                ? c.substr(i.startColumn - 1 - o.firstCharOffset)
                : this.getScopedLineTokens(t, i.endLineNumber, i.endColumn)
                    .getLineContent()
                    .substr(i.endColumn - 1 - o.firstCharOffset));
            const g = this.getIndentRulesSupport(o.languageId);
            if (!g) return null;
            const f = d,
              p = s.V8(d),
              m = {
                getLineTokens: (e) => t.getLineTokens(e),
                getLanguageIdentifier: () => t.getLanguageIdentifier(),
                getLanguageIdAtPosition: (e, i) =>
                  t.getLanguageIdAtPosition(e, i),
                getLineContent: (e) =>
                  e === i.startLineNumber ? f : t.getLineContent(e),
              },
              _ = s.V8(r.getLineContent()),
              b = this.getInheritIndentForLine(e, m, i.startLineNumber + 1);
            if (!b) {
              const e = u ? _ : p;
              return { beforeEnter: e, afterEnter: e };
            }
            let v = u ? _ : b.indentation;
            return (
              b.action === a.w.Indent && (v = n.shiftIndent(v)),
              g.shouldDecrease(h) && (v = n.unshiftIndent(v)),
              { beforeEnter: u ? _ : p, afterEnter: v }
            );
          }
          getIndentActionForType(e, t, i, n, r) {
            if (e < 4) return null;
            const s = this.getScopedLineTokens(
                t,
                i.startLineNumber,
                i.startColumn
              ),
              o = this.getIndentRulesSupport(s.languageId);
            if (!o) return null;
            const l = s.getLineContent(),
              c = l.substr(0, i.startColumn - 1 - s.firstCharOffset);
            let d;
            if (
              ((d = i.isEmpty()
                ? l.substr(i.startColumn - 1 - s.firstCharOffset)
                : this.getScopedLineTokens(t, i.endLineNumber, i.endColumn)
                    .getLineContent()
                    .substr(i.endColumn - 1 - s.firstCharOffset)),
              !o.shouldDecrease(c + d) && o.shouldDecrease(c + n + d))
            ) {
              const n = this.getInheritIndentForLine(
                e,
                t,
                i.startLineNumber,
                !1
              );
              if (!n) return null;
              let s = n.indentation;
              return n.action !== a.w.Indent && (s = r.unshiftIndent(s)), s;
            }
            return null;
          }
          getIndentMetadata(e, t) {
            const i = this.getIndentRulesSupport(e.getLanguageIdentifier().id);
            return i
              ? t < 1 || t > e.getLineCount()
                ? null
                : i.getIndentMetadata(e.getLineContent(t))
              : null;
          }
          getEnterAction(e, t, i) {
            const n = this.getScopedLineTokens(
                t,
                i.startLineNumber,
                i.startColumn
              ),
              r = this._getRichEditSupport(n.languageId);
            if (!r) return null;
            const s = n.getLineContent(),
              o = s.substr(0, i.startColumn - 1 - n.firstCharOffset);
            let l;
            l = i.isEmpty()
              ? s.substr(i.startColumn - 1 - n.firstCharOffset)
              : this.getScopedLineTokens(t, i.endLineNumber, i.endColumn)
                  .getLineContent()
                  .substr(i.endColumn - 1 - n.firstCharOffset);
            let c = '';
            if (i.startLineNumber > 1 && 0 === n.firstCharOffset) {
              const e = this.getScopedLineTokens(t, i.startLineNumber - 1);
              e.languageId === n.languageId && (c = e.getLineContent());
            }
            const d = r.onEnter(e, c, o, l);
            if (!d) return null;
            const h = d.indentAction;
            let u = d.appendText;
            const g = d.removeText || 0;
            u || (u = h === a.w.Indent || h === a.w.IndentOutdent ? '\t' : '');
            let f = this.getIndentationAtPosition(
              t,
              i.startLineNumber,
              i.startColumn
            );
            return (
              g && (f = f.substring(0, f.length - g)),
              { indentAction: h, appendText: u, removeText: g, indentation: f }
            );
          }
          getIndentationAtPosition(e, t, i) {
            const n = e.getLineContent(t);
            let r = s.V8(n);
            return r.length > i - 1 && (r = r.substring(0, i - 1)), r;
          }
          getScopedLineTokens(e, t, i) {
            e.forceTokenization(t);
            const n = e.getLineTokens(t),
              r = void 0 === i ? e.getLineMaxColumn(t) - 1 : i - 1;
            return (0, l.wH)(n, r);
          }
          getBracketsSupport(e) {
            const t = this._getRichEditSupport(e);
            return (t && t.brackets) || null;
          }
        })();
      },
      71144: (e, t, i) => {
        'use strict';
        i.d(t, { dQ: () => l, XT: () => c, Tb: () => d });
        var n = i(63580),
          r = i(4669),
          s = i(43775),
          o = i(83831),
          a = i(89872);
        const l = new (class {
          constructor() {
            (this._onDidChangeLanguages = new r.Q5()),
              (this.onDidChangeLanguages = this._onDidChangeLanguages.event),
              (this._languages = []),
              (this._dynamicLanguages = []);
          }
          registerLanguage(e) {
            return (
              this._languages.push(e),
              this._onDidChangeLanguages.fire(void 0),
              {
                dispose: () => {
                  for (let t = 0, i = this._languages.length; t < i; t++)
                    if (this._languages[t] === e)
                      return void this._languages.splice(t, 1);
                },
              }
            );
          }
          getLanguages() {
            return [].concat(this._languages).concat(this._dynamicLanguages);
          }
        })();
        a.B.add('editor.modesRegistry', l);
        const c = 'plaintext',
          d = new s.rl(c, 1);
        l.registerLanguage({
          id: c,
          extensions: ['.txt'],
          aliases: [n.N('plainText.alias', 'Plain Text'), 'text'],
          mimetypes: ['text/plain'],
        }),
          o.zu.register(d, {
            brackets: [
              ['(', ')'],
              ['[', ']'],
              ['{', '}'],
            ],
            surroundingPairs: [
              { open: '{', close: '}' },
              { open: '[', close: ']' },
              { open: '(', close: ')' },
              { open: '<', close: '>' },
              { open: '"', close: '"' },
              { open: "'", close: "'" },
              { open: '`', close: '`' },
            ],
            folding: { offSide: !0 },
          });
      },
      28111: (e, t, i) => {
        'use strict';
        i.d(t, {
          nO: () => s,
          TG: () => o,
          pA: () => a,
          Ri: () => l,
          mh: () => c,
        });
        var n = i(85600),
          r = i(43775);
        const s = new (class {
            clone() {
              return this;
            }
            equals(e) {
              return this === e;
            }
          })(),
          o = 'vs.editor.nullMode',
          a = new r.rl(o, 0);
        function l(e, t, i, r) {
          return new n.hG([new n.WU(r, '', e)], i);
        }
        function c(e, t, i, r) {
          let o = new Uint32Array(2);
          return (
            (o[0] = r),
            (o[1] = (16384 | (e << 0) | (2 << 23)) >>> 0),
            new n.Hi(o, null === i ? s : i)
          );
        }
      },
      40764: (e, t, i) => {
        'use strict';
        function n(e, t) {
          let i = e.getCount(),
            n = e.findTokenIndexAtOffset(t),
            s = e.getLanguageId(n),
            o = n;
          for (; o + 1 < i && e.getLanguageId(o + 1) === s; ) o++;
          let a = n;
          for (; a > 0 && e.getLanguageId(a - 1) === s; ) a--;
          return new r(e, s, a, o + 1, e.getStartOffset(a), e.getEndOffset(o));
        }
        i.d(t, { wH: () => n, Bu: () => s });
        class r {
          constructor(e, t, i, n, r, s) {
            (this._actual = e),
              (this.languageId = t),
              (this._firstTokenIndex = i),
              (this._lastTokenIndex = n),
              (this.firstCharOffset = r),
              (this._lastCharOffset = s);
          }
          getLineContent() {
            return this._actual
              .getLineContent()
              .substring(this.firstCharOffset, this._lastCharOffset);
          }
          getActualLineContentBefore(e) {
            return this._actual
              .getLineContent()
              .substring(0, this.firstCharOffset + e);
          }
          getTokenCount() {
            return this._lastTokenIndex - this._firstTokenIndex;
          }
          findTokenIndexAtOffset(e) {
            return (
              this._actual.findTokenIndexAtOffset(e + this.firstCharOffset) -
              this._firstTokenIndex
            );
          }
          getStandardTokenType(e) {
            return this._actual.getStandardTokenType(e + this._firstTokenIndex);
          }
        }
        function s(e) {
          return 0 != (7 & e);
        }
      },
      34227: (e, t, i) => {
        'use strict';
        i.d(t, { EA: () => a, Vr: () => f });
        var n = i(97295),
          r = i(50072),
          s = i(24314);
        class o {
          constructor(e, t, i, n, r, s) {
            (this.languageIdentifier = e),
              (this.index = t),
              (this.open = i),
              (this.close = n),
              (this.forwardRegex = r),
              (this.reversedRegex = s),
              (this._openSet = o._toSet(this.open)),
              (this._closeSet = o._toSet(this.close));
          }
          isOpen(e) {
            return this._openSet.has(e);
          }
          isClose(e) {
            return this._closeSet.has(e);
          }
          static _toSet(e) {
            const t = new Set();
            for (const i of e) t.add(i);
            return t;
          }
        }
        class a {
          constructor(e, t) {
            const i = (function (e) {
              const t = e.length;
              e = e.map((e) => [e[0].toLowerCase(), e[1].toLowerCase()]);
              const i = [];
              for (let e = 0; e < t; e++) i[e] = e;
              const n = (e, t) => {
                  const [i, n] = e,
                    [r, s] = t;
                  return i === r || i === s || n === r || n === s;
                },
                r = (e, n) => {
                  const r = Math.min(e, n),
                    s = Math.max(e, n);
                  for (let e = 0; e < t; e++) i[e] === s && (i[e] = r);
                };
              for (let s = 0; s < t; s++) {
                const o = e[s];
                for (let a = s + 1; a < t; a++) n(o, e[a]) && r(i[s], i[a]);
              }
              const s = [];
              for (let n = 0; n < t; n++) {
                let r = [],
                  o = [];
                for (let s = 0; s < t; s++)
                  if (i[s] === n) {
                    const [t, i] = e[s];
                    r.push(t), o.push(i);
                  }
                r.length > 0 && s.push({ open: r, close: o });
              }
              return s;
            })(t);
            (this.brackets = i.map(
              (t, n) =>
                new o(
                  e,
                  n,
                  t.open,
                  t.close,
                  (function (e, t, i, n) {
                    let r = [];
                    (r = r.concat(e)), (r = r.concat(t));
                    for (let e = 0, t = r.length; e < t; e++) l(r[e], i, n, r);
                    return (r = d(r)), r.sort(c), r.reverse(), u(r);
                  })(t.open, t.close, i, n),
                  (function (e, t, i, n) {
                    let r = [];
                    (r = r.concat(e)), (r = r.concat(t));
                    for (let e = 0, t = r.length; e < t; e++) l(r[e], i, n, r);
                    return (r = d(r)), r.sort(c), r.reverse(), u(r.map(g));
                  })(t.open, t.close, i, n)
                )
            )),
              (this.forwardRegex = (function (e) {
                let t = [];
                for (const i of e) {
                  for (const e of i.open) t.push(e);
                  for (const e of i.close) t.push(e);
                }
                return (t = d(t)), u(t);
              })(this.brackets)),
              (this.reversedRegex = (function (e) {
                let t = [];
                for (const i of e) {
                  for (const e of i.open) t.push(e);
                  for (const e of i.close) t.push(e);
                }
                return (t = d(t)), u(t.map(g));
              })(this.brackets)),
              (this.textIsBracket = {}),
              (this.textIsOpenBracket = {}),
              (this.maxBracketLength = 0);
            for (const e of this.brackets) {
              for (const t of e.open)
                (this.textIsBracket[t] = e),
                  (this.textIsOpenBracket[t] = !0),
                  (this.maxBracketLength = Math.max(
                    this.maxBracketLength,
                    t.length
                  ));
              for (const t of e.close)
                (this.textIsBracket[t] = e),
                  (this.textIsOpenBracket[t] = !1),
                  (this.maxBracketLength = Math.max(
                    this.maxBracketLength,
                    t.length
                  ));
            }
          }
        }
        function l(e, t, i, n) {
          for (let r = 0, s = t.length; r < s; r++) {
            if (r === i) continue;
            const s = t[r];
            for (const t of s.open) t.indexOf(e) >= 0 && n.push(t);
            for (const t of s.close) t.indexOf(e) >= 0 && n.push(t);
          }
        }
        function c(e, t) {
          return e.length - t.length;
        }
        function d(e) {
          if (e.length <= 1) return e;
          const t = [],
            i = new Set();
          for (const n of e) i.has(n) || (t.push(n), i.add(n));
          return t;
        }
        function h(e) {
          const t = /^[\w ]+$/.test(e);
          return (e = n.ec(e)), t ? `\\b${e}\\b` : e;
        }
        function u(e) {
          let t = `(${e.map(h).join(')|(')})`;
          return n.GF(t, !0);
        }
        const g = (function () {
          let e = null,
            t = null;
          return function (i) {
            return (
              e !== i &&
                ((e = i),
                (t = (function (e) {
                  if (r.lZ) {
                    const t = new Uint16Array(e.length);
                    let i = 0;
                    for (let n = e.length - 1; n >= 0; n--)
                      t[i++] = e.charCodeAt(n);
                    return r.oe().decode(t);
                  }
                  {
                    let t = [],
                      i = 0;
                    for (let n = e.length - 1; n >= 0; n--)
                      t[i++] = e.charAt(n);
                    return t.join('');
                  }
                })(e))),
              t
            );
          };
        })();
        class f {
          static _findPrevBracketInText(e, t, i, n) {
            let r = i.match(e);
            if (!r) return null;
            let o = i.length - (r.index || 0),
              a = r[0].length,
              l = n + o;
            return new s.e(t, l - a + 1, t, l + 1);
          }
          static findPrevBracketInRange(e, t, i, n, r) {
            const s = g(i).substring(i.length - r, i.length - n);
            return this._findPrevBracketInText(e, t, s, n);
          }
          static findNextBracketInText(e, t, i, n) {
            let r = i.match(e);
            if (!r) return null;
            let o = r.index || 0,
              a = r[0].length;
            if (0 === a) return null;
            let l = n + o;
            return new s.e(t, l + 1, t, l + 1 + a);
          }
          static findNextBracketInRange(e, t, i, n, r) {
            const s = i.substring(n, r);
            return this.findNextBracketInText(e, t, s, n);
          }
        }
      },
      55713: (e, t, i) => {
        'use strict';
        i.d(t, { C: () => a, F: () => l });
        var n = i(97295),
          r = i(78411),
          s = i(28111);
        const o = {
          getInitialState: () => s.nO,
          tokenize2: (e, t, i) => (0, s.mh)(0, e, t, i),
        };
        function a(e, t = o) {
          return (function (e, t) {
            let i = '<div class="monaco-tokenized-source">',
              s = e.split(/\r\n|\r|\n/),
              o = t.getInitialState();
            for (let e = 0, a = s.length; e < a; e++) {
              let a = s[e];
              e > 0 && (i += '<br/>');
              let l = t.tokenize2(a, o, 0);
              r.A.convertToEndOffset(l.tokens, a.length);
              let c = new r.A(l.tokens, a).inflate(),
                d = 0;
              for (let e = 0, t = c.getCount(); e < t; e++) {
                const t = c.getClassName(e),
                  r = c.getEndOffset(e);
                (i += `<span class="${t}">${n.YU(a.substring(d, r))}</span>`),
                  (d = r);
              }
              o = l.endState;
            }
            return (i += '</div>'), i;
          })(e, t || o);
        }
        function l(e, t, i, n, r, s, o) {
          let a = '<div>',
            l = n,
            c = 0;
          for (let d = 0, h = t.getCount(); d < h; d++) {
            const h = t.getEndOffset(d);
            if (h <= n) continue;
            let u = '';
            for (; l < h && l < r; l++) {
              const t = e.charCodeAt(l);
              switch (t) {
                case 9:
                  let e = s - ((l + c) % s);
                  for (c += e - 1; e > 0; ) (u += o ? '&#160;' : ' '), e--;
                  break;
                case 60:
                  u += '&lt;';
                  break;
                case 62:
                  u += '&gt;';
                  break;
                case 38:
                  u += '&amp;';
                  break;
                case 0:
                  u += '&#00;';
                  break;
                case 65279:
                case 8232:
                case 8233:
                case 133:
                  u += '�';
                  break;
                case 13:
                  u += '&#8203';
                  break;
                case 32:
                  u += o ? '&#160;' : ' ';
                  break;
                default:
                  u += String.fromCharCode(t);
              }
            }
            if (
              ((a += `<span style="${t.getInlineStyle(d, i)}">${u}</span>`),
              h > r || l >= r)
            )
              break;
          }
          return (a += '</div>'), a;
        }
      },
      90469: (e, t, i) => {
        'use strict';
        i.d(t, { p: () => n });
        const n = (0, i(72065).yh)('editorWorkerService');
      },
      26479: (e, t, i) => {
        'use strict';
        i.d(t, { i: () => n });
        const n = (0, i(72065).yh)('markerDecorationsService');
      },
      71531: (e, t, i) => {
        'use strict';
        i.d(t, { h: () => n });
        const n = (0, i(72065).yh)('modeService');
      },
      51200: (e, t, i) => {
        'use strict';
        i.d(t, { q: () => n, p: () => r });
        const n = (0, i(72065).yh)('modelService');
        function r(e) {
          return !e.isTooLargeForSyncing() && !e.isForSimpleWidget;
        }
      },
      32334: (e, t, i) => {
        'use strict';
        i.d(t, { BR: () => x, e3: () => L, tw: () => M });
        var n = i(4669),
          r = i(5976),
          s = i(1432),
          o = i(17301),
          a = i(64141),
          l = i(3411),
          c = i(43775),
          d = i(71144),
          h = i(33187),
          u = i(33108),
          g = i(15393),
          f = i(71050),
          p = i(97781),
          m = i(43557),
          _ = i(64862),
          b = i(89954),
          v = i(95215),
          y = i(65072),
          w = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        function C(e) {
          return e.toString();
        }
        class S {
          constructor(e, t, i) {
            (this._modelEventListeners = new r.SL()),
              (this.model = e),
              (this._languageSelection = null),
              (this._languageSelectionListener = null),
              this._modelEventListeners.add(e.onWillDispose(() => t(e))),
              this._modelEventListeners.add(
                e.onDidChangeLanguage((t) => i(e, t))
              );
          }
          _disposeLanguageSelection() {
            this._languageSelectionListener &&
              (this._languageSelectionListener.dispose(),
              (this._languageSelectionListener = null)),
              this._languageSelection &&
                (this._languageSelection.dispose(),
                (this._languageSelection = null));
          }
          dispose() {
            this._modelEventListeners.dispose(),
              this._disposeLanguageSelection();
          }
          setLanguage(e) {
            this._disposeLanguageSelection(),
              (this._languageSelection = e),
              (this._languageSelectionListener = this._languageSelection.onDidChange(
                () => this.model.setMode(e.languageIdentifier)
              )),
              this.model.setMode(e.languageIdentifier);
          }
        }
        const k = s.IJ || s.dz ? 1 : 2;
        let x = class e extends r.JT {
          constructor(e, t, i, r, s) {
            super(),
              (this._configurationService = e),
              (this._resourcePropertiesService = t),
              (this._themeService = i),
              (this._logService = r),
              (this._undoRedoService = s),
              (this._onModelAdded = this._register(new n.Q5())),
              (this.onModelAdded = this._onModelAdded.event),
              (this._onModelRemoved = this._register(new n.Q5())),
              (this.onModelRemoved = this._onModelRemoved.event),
              (this._onModelModeChanged = this._register(new n.Q5())),
              (this.onModelModeChanged = this._onModelModeChanged.event),
              (this._modelCreationOptionsByLanguageAndResource = Object.create(
                null
              )),
              (this._models = {}),
              (this._disposedModels = new Map()),
              (this._disposedModelsHeapSize = 0),
              (this._semanticStyling = this._register(
                new N(this._themeService, this._logService)
              )),
              this._register(
                this._configurationService.onDidChangeConfiguration(() =>
                  this._updateModelOptions()
                )
              ),
              this._updateModelOptions(),
              this._register(
                new D(
                  this,
                  this._themeService,
                  this._configurationService,
                  this._semanticStyling
                )
              );
          }
          static _readModelOptions(e, t) {
            let i = a.DB.tabSize;
            if (e.editor && void 0 !== e.editor.tabSize) {
              const t = parseInt(e.editor.tabSize, 10);
              isNaN(t) || (i = t), i < 1 && (i = 1);
            }
            let n = i;
            if (
              e.editor &&
              void 0 !== e.editor.indentSize &&
              'tabSize' !== e.editor.indentSize
            ) {
              const t = parseInt(e.editor.indentSize, 10);
              isNaN(t) || (n = t), n < 1 && (n = 1);
            }
            let r = a.DB.insertSpaces;
            e.editor &&
              void 0 !== e.editor.insertSpaces &&
              (r =
                'false' !== e.editor.insertSpaces &&
                Boolean(e.editor.insertSpaces));
            let s = k;
            const o = e.eol;
            '\r\n' === o ? (s = 2) : '\n' === o && (s = 1);
            let l = a.DB.trimAutoWhitespace;
            e.editor &&
              void 0 !== e.editor.trimAutoWhitespace &&
              (l =
                'false' !== e.editor.trimAutoWhitespace &&
                Boolean(e.editor.trimAutoWhitespace));
            let c = a.DB.detectIndentation;
            e.editor &&
              void 0 !== e.editor.detectIndentation &&
              (c =
                'false' !== e.editor.detectIndentation &&
                Boolean(e.editor.detectIndentation));
            let d = a.DB.largeFileOptimizations;
            return (
              e.editor &&
                void 0 !== e.editor.largeFileOptimizations &&
                (d =
                  'false' !== e.editor.largeFileOptimizations &&
                  Boolean(e.editor.largeFileOptimizations)),
              {
                isForSimpleWidget: t,
                tabSize: i,
                indentSize: n,
                insertSpaces: r,
                detectIndentation: c,
                defaultEOL: s,
                trimAutoWhitespace: l,
                largeFileOptimizations: d,
              }
            );
          }
          _getEOL(e, t) {
            if (e) return this._resourcePropertiesService.getEOL(e, t);
            const i = this._configurationService.getValue('files.eol', {
              overrideIdentifier: t,
            });
            return i && 'auto' !== i
              ? i
              : 3 === s.OS || 2 === s.OS
              ? '\n'
              : '\r\n';
          }
          getCreationOptions(t, i, n) {
            let r = this._modelCreationOptionsByLanguageAndResource[t + i];
            if (!r) {
              const s = this._configurationService.getValue('editor', {
                  overrideIdentifier: t,
                  resource: i,
                }),
                o = this._getEOL(i, t);
              (r = e._readModelOptions({ editor: s, eol: o }, n)),
                (this._modelCreationOptionsByLanguageAndResource[t + i] = r);
            }
            return r;
          }
          _updateModelOptions() {
            const t = this._modelCreationOptionsByLanguageAndResource;
            this._modelCreationOptionsByLanguageAndResource = Object.create(
              null
            );
            const i = Object.keys(this._models);
            for (let n = 0, r = i.length; n < r; n++) {
              const r = i[n],
                s = this._models[r],
                o = s.model.getLanguageIdentifier().language,
                a = s.model.uri,
                l = t[o + a],
                c = this.getCreationOptions(o, a, s.model.isForSimpleWidget);
              e._setModelOptionsForModel(s.model, c, l);
            }
          }
          static _setModelOptionsForModel(e, t, i) {
            i &&
              i.defaultEOL !== t.defaultEOL &&
              1 === e.getLineCount() &&
              e.setEOL(1 === t.defaultEOL ? 0 : 1),
              (i &&
                i.detectIndentation === t.detectIndentation &&
                i.insertSpaces === t.insertSpaces &&
                i.tabSize === t.tabSize &&
                i.indentSize === t.indentSize &&
                i.trimAutoWhitespace === t.trimAutoWhitespace) ||
                (t.detectIndentation
                  ? (e.detectIndentation(t.insertSpaces, t.tabSize),
                    e.updateOptions({
                      trimAutoWhitespace: t.trimAutoWhitespace,
                    }))
                  : e.updateOptions({
                      insertSpaces: t.insertSpaces,
                      tabSize: t.tabSize,
                      indentSize: t.indentSize,
                      trimAutoWhitespace: t.trimAutoWhitespace,
                    }));
          }
          _removeDisposedModel(e) {
            const t = this._disposedModels.get(C(e));
            return (
              t && (this._disposedModelsHeapSize -= t.heapSize),
              this._disposedModels.delete(C(e)),
              t
            );
          }
          _createModelData(e, t, i, n) {
            const r = this.getCreationOptions(t.language, i, n),
              s = new l.yO(e, r, t, i, this._undoRedoService);
            if (i && this._disposedModels.has(C(i))) {
              const e = this._removeDisposedModel(i),
                t = this._undoRedoService.getElements(i),
                n =
                  (function (e) {
                    const t = new b.yP(),
                      i = e.createSnapshot();
                    let n;
                    for (; (n = i.read()); ) t.update(n);
                    return t.digest();
                  })(s) === e.sha1;
              if (n || e.sharesUndoRedoStack) {
                for (const e of t.past)
                  (0, v.e9)(e) && e.matchesResource(i) && e.setModel(s);
                for (const e of t.future)
                  (0, v.e9)(e) && e.matchesResource(i) && e.setModel(s);
                this._undoRedoService.setElementsValidFlag(
                  i,
                  !0,
                  (e) => (0, v.e9)(e) && e.matchesResource(i)
                ),
                  n &&
                    (s._overwriteVersionId(e.versionId),
                    s._overwriteAlternativeVersionId(e.alternativeVersionId),
                    s._overwriteInitialUndoRedoSnapshot(
                      e.initialUndoRedoSnapshot
                    ));
              } else
                null !== e.initialUndoRedoSnapshot &&
                  this._undoRedoService.restoreSnapshot(
                    e.initialUndoRedoSnapshot
                  );
            }
            const o = C(s.uri);
            if (this._models[o])
              throw new Error(
                'ModelService: Cannot add model because it already exists!'
              );
            const a = new S(
              s,
              (e) => this._onWillDispose(e),
              (e, t) => this._onDidChangeLanguage(e, t)
            );
            return (this._models[o] = a), a;
          }
          createModel(e, t, i, n = !1) {
            let r;
            return (
              t
                ? ((r = this._createModelData(e, t.languageIdentifier, i, n)),
                  this.setMode(r.model, t))
                : (r = this._createModelData(e, d.Tb, i, n)),
              this._onModelAdded.fire(r.model),
              r.model
            );
          }
          setMode(e, t) {
            if (!t) return;
            const i = this._models[C(e.uri)];
            i && i.setLanguage(t);
          }
          getModels() {
            const e = [],
              t = Object.keys(this._models);
            for (let i = 0, n = t.length; i < n; i++) {
              const n = t[i];
              e.push(this._models[n].model);
            }
            return e;
          }
          getModel(e) {
            const t = C(e),
              i = this._models[t];
            return i ? i.model : null;
          }
          getSemanticTokensProviderStyling(e) {
            return this._semanticStyling.get(e);
          }
          _onWillDispose(e) {
            const t = C(e.uri),
              i = this._models[t];
            delete this._models[t],
              i.dispose(),
              delete this._modelCreationOptionsByLanguageAndResource[
                e.getLanguageIdentifier().language + e.uri
              ],
              this._onModelRemoved.fire(e);
          }
          _onDidChangeLanguage(t, i) {
            const n = i.oldLanguage,
              r = t.getLanguageIdentifier().language,
              s = this.getCreationOptions(n, t.uri, t.isForSimpleWidget),
              o = this.getCreationOptions(r, t.uri, t.isForSimpleWidget);
            e._setModelOptionsForModel(t, o, s),
              this._onModelModeChanged.fire({ model: t, oldModeId: n });
          }
        };
        x = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([w(0, u.Ui), w(1, h.y), w(2, p.XE), w(3, m.VZ), w(4, _.t)], x);
        const L = 'editor.semanticHighlighting';
        function M(e, t, i) {
          var n;
          const r =
            null ===
              (n = i.getValue(L, {
                overrideIdentifier: e.getLanguageIdentifier().language,
                resource: e.uri,
              })) || void 0 === n
              ? void 0
              : n.enabled;
          return 'boolean' == typeof r
            ? r
            : t.getColorTheme().semanticHighlighting;
        }
        class D extends r.JT {
          constructor(e, t, i, n) {
            super(),
              (this._watchers = Object.create(null)),
              (this._semanticStyling = n);
            const r = (e) => {
                this._watchers[e.uri.toString()] = new T(
                  e,
                  t,
                  this._semanticStyling
                );
              },
              s = (e, t) => {
                t.dispose(), delete this._watchers[e.uri.toString()];
              },
              o = () => {
                for (let n of e.getModels()) {
                  const e = this._watchers[n.uri.toString()];
                  M(n, t, i) ? e || r(n) : e && s(n, e);
                }
              };
            this._register(
              e.onModelAdded((e) => {
                M(e, t, i) && r(e);
              })
            ),
              this._register(
                e.onModelRemoved((e) => {
                  const t = this._watchers[e.uri.toString()];
                  t && s(e, t);
                })
              ),
              this._register(
                i.onDidChangeConfiguration((e) => {
                  e.affectsConfiguration(L) && o();
                })
              ),
              this._register(t.onDidColorThemeChange(o));
          }
        }
        class N extends r.JT {
          constructor(e, t) {
            super(),
              (this._themeService = e),
              (this._logService = t),
              (this._caches = new WeakMap()),
              this._register(
                this._themeService.onDidColorThemeChange(() => {
                  this._caches = new WeakMap();
                })
              );
          }
          get(e) {
            return (
              this._caches.has(e) ||
                this._caches.set(
                  e,
                  new y.$(e.getLegend(), this._themeService, this._logService)
                ),
              this._caches.get(e)
            );
          }
        }
        class E {
          constructor(e, t, i) {
            (this._provider = e), (this.resultId = t), (this.data = i);
          }
          dispose() {
            this._provider.releaseDocumentSemanticTokens(this.resultId);
          }
        }
        class T extends r.JT {
          constructor(e, t, i) {
            super(),
              (this._isDisposed = !1),
              (this._model = e),
              (this._semanticStyling = i),
              (this._fetchDocumentSemanticTokens = this._register(
                new g.pY(() => this._fetchDocumentSemanticTokensNow(), 300)
              )),
              (this._currentDocumentResponse = null),
              (this._currentDocumentRequestCancellationTokenSource = null),
              (this._documentProvidersChangeListeners = []),
              this._register(
                this._model.onDidChangeContent(() => {
                  this._fetchDocumentSemanticTokens.isScheduled() ||
                    this._fetchDocumentSemanticTokens.schedule();
                })
              );
            const n = () => {
              (0, r.B9)(this._documentProvidersChangeListeners),
                (this._documentProvidersChangeListeners = []);
              for (const t of c.wT.all(e))
                'function' == typeof t.onDidChange &&
                  this._documentProvidersChangeListeners.push(
                    t.onDidChange(() =>
                      this._fetchDocumentSemanticTokens.schedule(0)
                    )
                  );
            };
            n(),
              this._register(
                c.wT.onDidChange(() => {
                  n(), this._fetchDocumentSemanticTokens.schedule();
                })
              ),
              this._register(
                t.onDidColorThemeChange((e) => {
                  this._setDocumentSemanticTokens(null, null, null, []),
                    this._fetchDocumentSemanticTokens.schedule();
                })
              ),
              this._fetchDocumentSemanticTokens.schedule(0);
          }
          dispose() {
            this._currentDocumentResponse &&
              (this._currentDocumentResponse.dispose(),
              (this._currentDocumentResponse = null)),
              this._currentDocumentRequestCancellationTokenSource &&
                (this._currentDocumentRequestCancellationTokenSource.cancel(),
                (this._currentDocumentRequestCancellationTokenSource = null)),
              this._setDocumentSemanticTokens(null, null, null, []),
              (this._isDisposed = !0),
              super.dispose();
          }
          _fetchDocumentSemanticTokensNow() {
            if (this._currentDocumentRequestCancellationTokenSource) return;
            const e = this._getSemanticColoringProvider();
            if (!e) return;
            this._currentDocumentRequestCancellationTokenSource = new f.A();
            const t = [],
              i = this._model.onDidChangeContent((e) => {
                t.push(e);
              }),
              n = this._semanticStyling.get(e),
              r =
                (this._currentDocumentResponse &&
                  this._currentDocumentResponse.resultId) ||
                null;
            Promise.resolve(
              e.provideDocumentSemanticTokens(
                this._model,
                r,
                this._currentDocumentRequestCancellationTokenSource.token
              )
            ).then(
              (r) => {
                (this._currentDocumentRequestCancellationTokenSource = null),
                  i.dispose(),
                  this._setDocumentSemanticTokens(e, r || null, n, t);
              },
              (e) => {
                (e &&
                  'string' == typeof e.message &&
                  -1 !== e.message.indexOf('busy')) ||
                  o.dL(e),
                  (this._currentDocumentRequestCancellationTokenSource = null),
                  i.dispose(),
                  t.length > 0 &&
                    (this._fetchDocumentSemanticTokens.isScheduled() ||
                      this._fetchDocumentSemanticTokens.schedule());
              }
            );
          }
          static _isSemanticTokens(e) {
            return e && !!e.data;
          }
          static _isSemanticTokensEdits(e) {
            return e && Array.isArray(e.edits);
          }
          static _copy(e, t, i, n, r) {
            for (let s = 0; s < r; s++) i[n + s] = e[t + s];
          }
          _setDocumentSemanticTokens(e, t, i, n) {
            const r = this._currentDocumentResponse;
            if (
              (this._currentDocumentResponse &&
                (this._currentDocumentResponse.dispose(),
                (this._currentDocumentResponse = null)),
              this._isDisposed)
            )
              e && t && e.releaseDocumentSemanticTokens(t.resultId);
            else if (e && i)
              if (t) {
                if (T._isSemanticTokensEdits(t)) {
                  if (!r) return void this._model.setSemanticTokens(null, !0);
                  if (0 === t.edits.length)
                    t = { resultId: t.resultId, data: r.data };
                  else {
                    let e = 0;
                    for (const i of t.edits)
                      e += (i.data ? i.data.length : 0) - i.deleteCount;
                    const i = r.data,
                      n = new Uint32Array(i.length + e);
                    let s = i.length,
                      o = n.length;
                    for (let e = t.edits.length - 1; e >= 0; e--) {
                      const r = t.edits[e],
                        a = s - (r.start + r.deleteCount);
                      a > 0 && (T._copy(i, s - a, n, o - a, a), (o -= a)),
                        r.data &&
                          (T._copy(
                            r.data,
                            0,
                            n,
                            o - r.data.length,
                            r.data.length
                          ),
                          (o -= r.data.length)),
                        (s = r.start);
                    }
                    s > 0 && T._copy(i, 0, n, 0, s),
                      (t = { resultId: t.resultId, data: n });
                  }
                }
                if (T._isSemanticTokens(t)) {
                  this._currentDocumentResponse = new E(e, t.resultId, t.data);
                  const r = (0, y.h)(t, i, this._model.getLanguageIdentifier());
                  if (n.length > 0) {
                    for (const e of n)
                      for (const t of r)
                        for (const i of e.changes) t.applyEdit(i.range, i.text);
                    this._fetchDocumentSemanticTokens.isScheduled() ||
                      this._fetchDocumentSemanticTokens.schedule();
                  }
                  this._model.setSemanticTokens(r, !0);
                } else this._model.setSemanticTokens(null, !0);
              } else this._model.setSemanticTokens(null, !0);
            else this._model.setSemanticTokens(null, !1);
          }
          _getSemanticColoringProvider() {
            const e = c.wT.ordered(this._model);
            return e.length > 0 ? e[0] : null;
          }
        }
      },
      88216: (e, t, i) => {
        'use strict';
        i.d(t, { S: () => n });
        const n = (0, i(72065).yh)('textModelService');
      },
      65072: (e, t, i) => {
        'use strict';
        i.d(t, { $: () => o, h: () => a });
        var n = i(43775),
          r = i(43557),
          s = i(58409);
        class o {
          constructor(e, t, i) {
            (this._legend = e),
              (this._themeService = t),
              (this._logService = i),
              (this._hashTable = new c());
          }
          getMetadata(e, t, i) {
            const s = this._hashTable.get(e, t, i.id);
            let o;
            if (s)
              (o = s.metadata),
                this._logService.getLevel() === r.in.Trace &&
                  this._logService.trace(
                    `SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${n.NX.getForeground(
                      o
                    )}, fontStyle ${n.NX.getFontStyle(o).toString(2)}`
                  );
            else {
              let s = this._legend.tokenTypes[e];
              const a = [];
              if (s) {
                let e = t;
                for (
                  let t = 0;
                  e > 0 && t < this._legend.tokenModifiers.length;
                  t++
                )
                  1 & e && a.push(this._legend.tokenModifiers[t]), (e >>= 1);
                e > 0 &&
                  this._logService.getLevel() === r.in.Trace &&
                  (this._logService.trace(
                    `SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(
                      2
                    )} for legend: ${JSON.stringify(
                      this._legend.tokenModifiers
                    )}`
                  ),
                  a.push('not-in-legend'));
                const n = this._themeService
                  .getColorTheme()
                  .getTokenStyleMetadata(s, a, i.language);
                void 0 === n
                  ? (o = 2147483647)
                  : ((o = 0),
                    void 0 !== n.italic &&
                      (o |= 1 | ((n.italic ? 1 : 0) << 11)),
                    void 0 !== n.bold && (o |= 2 | ((n.bold ? 2 : 0) << 11)),
                    void 0 !== n.underline &&
                      (o |= 4 | ((n.underline ? 4 : 0) << 11)),
                    n.foreground && (o |= 8 | (n.foreground << 14)),
                    0 === o && (o = 2147483647));
              } else
                this._logService.getLevel() === r.in.Trace &&
                  this._logService.trace(
                    `SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(
                      this._legend.tokenTypes
                    )}`
                  ),
                  (o = 2147483647),
                  (s = 'not-in-legend');
              this._hashTable.add(e, t, i.id, o),
                this._logService.getLevel() === r.in.Trace &&
                  this._logService.trace(
                    `SemanticTokensProviderStyling ${e} (${s}) / ${t} (${a.join(
                      ' '
                    )}): foreground ${n.NX.getForeground(
                      o
                    )}, fontStyle ${n.NX.getFontStyle(o).toString(2)}`
                  );
            }
            return o;
          }
        }
        function a(e, t, i) {
          const n = e.data,
            r = (e.data.length / 5) | 0,
            o = Math.max(Math.ceil(r / 1024), 400),
            a = [];
          let l = 0,
            c = 1,
            d = 0;
          for (; l < r; ) {
            const e = l;
            let h = Math.min(e + o, r);
            if (h < r) {
              let t = h;
              for (; t - 1 > e && 0 === n[5 * t]; ) t--;
              if (t - 1 === e) {
                let e = h;
                for (; e + 1 < r && 0 === n[5 * e]; ) e++;
                h = e;
              } else h = t;
            }
            let u = new Uint32Array(4 * (h - e)),
              g = 0,
              f = 0;
            for (; l < h; ) {
              const e = 5 * l,
                r = n[e],
                s = n[e + 1],
                o = c + r,
                a = 0 === r ? d + s : s,
                h = n[e + 2],
                p = n[e + 3],
                m = n[e + 4],
                _ = t.getMetadata(p, m, i);
              2147483647 !== _ &&
                (0 === f && (f = o),
                (u[g] = o - f),
                (u[g + 1] = a),
                (u[g + 2] = a + h),
                (u[g + 3] = _),
                (g += 4)),
                (c = o),
                (d = a),
                l++;
            }
            g !== u.length && (u = u.subarray(0, g));
            const p = new s.Wz(f, new s.OU(u));
            a.push(p);
          }
          return a;
        }
        class l {
          constructor(e, t, i, n) {
            (this.tokenTypeIndex = e),
              (this.tokenModifierSet = t),
              (this.languageId = i),
              (this.metadata = n),
              (this.next = null);
          }
        }
        class c {
          constructor() {
            (this._elementsCount = 0),
              (this._currentLengthIndex = 0),
              (this._currentLength = c._SIZES[this._currentLengthIndex]),
              (this._growCount = Math.round(
                this._currentLengthIndex + 1 < c._SIZES.length
                  ? (2 / 3) * this._currentLength
                  : 0
              )),
              (this._elements = []),
              c._nullOutEntries(this._elements, this._currentLength);
          }
          static _nullOutEntries(e, t) {
            for (let i = 0; i < t; i++) e[i] = null;
          }
          _hash2(e, t) {
            return ((e << 5) - e + t) | 0;
          }
          _hashFunc(e, t, i) {
            return this._hash2(this._hash2(e, t), i) % this._currentLength;
          }
          get(e, t, i) {
            const n = this._hashFunc(e, t, i);
            let r = this._elements[n];
            for (; r; ) {
              if (
                r.tokenTypeIndex === e &&
                r.tokenModifierSet === t &&
                r.languageId === i
              )
                return r;
              r = r.next;
            }
            return null;
          }
          add(e, t, i, n) {
            if (
              (this._elementsCount++,
              0 !== this._growCount && this._elementsCount >= this._growCount)
            ) {
              const e = this._elements;
              this._currentLengthIndex++,
                (this._currentLength = c._SIZES[this._currentLengthIndex]),
                (this._growCount = Math.round(
                  this._currentLengthIndex + 1 < c._SIZES.length
                    ? (2 / 3) * this._currentLength
                    : 0
                )),
                (this._elements = []),
                c._nullOutEntries(this._elements, this._currentLength);
              for (const t of e) {
                let e = t;
                for (; e; ) {
                  const t = e.next;
                  (e.next = null), this._add(e), (e = t);
                }
              }
            }
            this._add(new l(e, t, i, n));
          }
          _add(e) {
            const t = this._hashFunc(
              e.tokenTypeIndex,
              e.tokenModifierSet,
              e.languageId
            );
            (e.next = this._elements[t]), (this._elements[t] = e);
          }
        }
        c._SIZES = [
          3,
          7,
          13,
          31,
          61,
          127,
          251,
          509,
          1021,
          2039,
          4093,
          8191,
          16381,
          32749,
          65521,
          131071,
          262139,
          524287,
          1048573,
          2097143,
        ];
      },
      33187: (e, t, i) => {
        'use strict';
        i.d(t, { V: () => r, y: () => s });
        var n = i(72065);
        const r = (0, n.yh)('textResourceConfigurationService'),
          s = (0, n.yh)('textResourcePropertiesService');
      },
      20913: (e, t, i) => {
        'use strict';
        i.d(t, {
          Oe: () => n,
          ug: () => r,
          qq: () => s,
          ld: () => o,
          UX: () => a,
          aq: () => l,
          B8: () => c,
          xi: () => d,
          UL: () => h,
        });
        var n,
          r,
          s,
          o,
          a,
          l,
          c,
          d,
          h,
          u = i(63580);
        !(function (e) {
          (e.noSelection = u.N('noSelection', 'No selection')),
            (e.singleSelectionRange = u.N(
              'singleSelectionRange',
              'Line {0}, Column {1} ({2} selected)'
            )),
            (e.singleSelection = u.N(
              'singleSelection',
              'Line {0}, Column {1}'
            )),
            (e.multiSelectionRange = u.N(
              'multiSelectionRange',
              '{0} selections ({1} characters selected)'
            )),
            (e.multiSelection = u.N('multiSelection', '{0} selections')),
            (e.emergencyConfOn = u.N(
              'emergencyConfOn',
              "Now changing the setting `accessibilitySupport` to 'on'."
            )),
            (e.openingDocs = u.N(
              'openingDocs',
              'Now opening the Editor Accessibility documentation page.'
            )),
            (e.readonlyDiffEditor = u.N(
              'readonlyDiffEditor',
              ' in a read-only pane of a diff editor.'
            )),
            (e.editableDiffEditor = u.N(
              'editableDiffEditor',
              ' in a pane of a diff editor.'
            )),
            (e.readonlyEditor = u.N(
              'readonlyEditor',
              ' in a read-only code editor'
            )),
            (e.editableEditor = u.N('editableEditor', ' in a code editor')),
            (e.changeConfigToOnMac = u.N(
              'changeConfigToOnMac',
              'To configure the editor to be optimized for usage with a Screen Reader press Command+E now.'
            )),
            (e.changeConfigToOnWinLinux = u.N(
              'changeConfigToOnWinLinux',
              'To configure the editor to be optimized for usage with a Screen Reader press Control+E now.'
            )),
            (e.auto_on = u.N(
              'auto_on',
              'The editor is configured to be optimized for usage with a Screen Reader.'
            )),
            (e.auto_off = u.N(
              'auto_off',
              'The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.'
            )),
            (e.tabFocusModeOnMsg = u.N(
              'tabFocusModeOnMsg',
              'Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.'
            )),
            (e.tabFocusModeOnMsgNoKb = u.N(
              'tabFocusModeOnMsgNoKb',
              'Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.'
            )),
            (e.tabFocusModeOffMsg = u.N(
              'tabFocusModeOffMsg',
              'Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.'
            )),
            (e.tabFocusModeOffMsgNoKb = u.N(
              'tabFocusModeOffMsgNoKb',
              'Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.'
            )),
            (e.openDocMac = u.N(
              'openDocMac',
              'Press Command+H now to open a browser window with more information related to editor accessibility.'
            )),
            (e.openDocWinLinux = u.N(
              'openDocWinLinux',
              'Press Control+H now to open a browser window with more information related to editor accessibility.'
            )),
            (e.outroMsg = u.N(
              'outroMsg',
              'You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.'
            )),
            (e.showAccessibilityHelpAction = u.N(
              'showAccessibilityHelpAction',
              'Show Accessibility Help'
            ));
        })(n || (n = {})),
          (function (e) {
            e.inspectTokensAction = u.N(
              'inspectTokens',
              'Developer: Inspect Tokens'
            );
          })(r || (r = {})),
          (function (e) {
            e.gotoLineActionLabel = u.N(
              'gotoLineActionLabel',
              'Go to Line/Column...'
            );
          })(s || (s = {})),
          (function (e) {
            e.helpQuickAccessActionLabel = u.N(
              'helpQuickAccess',
              'Show all Quick Access Providers'
            );
          })(o || (o = {})),
          (function (e) {
            (e.quickCommandActionLabel = u.N(
              'quickCommandActionLabel',
              'Command Palette'
            )),
              (e.quickCommandHelp = u.N(
                'quickCommandActionHelp',
                'Show And Run Commands'
              ));
          })(a || (a = {})),
          (function (e) {
            (e.quickOutlineActionLabel = u.N(
              'quickOutlineActionLabel',
              'Go to Symbol...'
            )),
              (e.quickOutlineByCategoryActionLabel = u.N(
                'quickOutlineByCategoryActionLabel',
                'Go to Symbol by Category...'
              ));
          })(l || (l = {})),
          (function (e) {
            (e.editorViewAccessibleLabel = u.N(
              'editorViewAccessibleLabel',
              'Editor content'
            )),
              (e.accessibilityHelpMessage = u.N(
                'accessibilityHelpMessage',
                'Press Alt+F1 for Accessibility Options.'
              ));
          })(c || (c = {})),
          (function (e) {
            e.toggleHighContrast = u.N(
              'toggleHighContrast',
              'Toggle High Contrast Theme'
            );
          })(d || (d = {})),
          (function (e) {
            e.bulkEditServiceSummary = u.N(
              'bulkEditServiceSummary',
              'Made {0} edits in {1} files'
            );
          })(h || (h = {}));
      },
      27869: (e, t, i) => {
        'use strict';
        i.d(t, {
          Kh: () => a,
          Mm: () => l,
          n0: () => g,
          fY: () => f,
          tR: () => m,
          Ym: () => _,
          hw: () => b,
          DD: () => y,
          zk: () => w,
          Yp: () => C,
          TC: () => S,
          Dl: () => k,
          zw: () => x,
          e_: () => L,
          kp: () => D,
          zu: () => N,
          m9: () => T,
          lK: () => I,
          Re: () => O,
          eS: () => A,
        });
        var n = i(63580),
          r = i(41264),
          s = i(73910),
          o = i(97781);
        const a = (0, s.P6)(
            'editor.lineHighlightBackground',
            { dark: null, light: null, hc: null },
            n.N(
              'lineHighlight',
              'Background color for the highlight of line at the cursor position.'
            )
          ),
          l = (0, s.P6)(
            'editor.lineHighlightBorder',
            { dark: '#282828', light: '#eeeeee', hc: '#f38518' },
            n.N(
              'lineHighlightBorderBox',
              'Background color for the border around the line at the cursor position.'
            )
          ),
          c = (0, s.P6)(
            'editor.rangeHighlightBackground',
            { dark: '#ffffff0b', light: '#fdff0033', hc: null },
            n.N(
              'rangeHighlight',
              'Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          d = (0, s.P6)(
            'editor.rangeHighlightBorder',
            { dark: null, light: null, hc: s.xL },
            n.N(
              'rangeHighlightBorder',
              'Background color of the border around highlighted ranges.'
            ),
            !0
          ),
          h = (0, s.P6)(
            'editor.symbolHighlightBackground',
            { dark: s.MU, light: s.MU, hc: null },
            n.N(
              'symbolHighlight',
              'Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          u = (0, s.P6)(
            'editor.symbolHighlightBorder',
            { dark: null, light: null, hc: s.xL },
            n.N(
              'symbolHighlightBorder',
              'Background color of the border around highlighted symbols.'
            ),
            !0
          ),
          g = (0, s.P6)(
            'editorCursor.foreground',
            { dark: '#AEAFAD', light: r.Il.black, hc: r.Il.white },
            n.N('caret', 'Color of the editor cursor.')
          ),
          f = (0, s.P6)(
            'editorCursor.background',
            null,
            n.N(
              'editorCursorBackground',
              'The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.'
            )
          ),
          p = (0, s.P6)(
            'editorWhitespace.foreground',
            { dark: '#e3e4e229', light: '#33333333', hc: '#e3e4e229' },
            n.N(
              'editorWhitespaces',
              'Color of whitespace characters in the editor.'
            )
          ),
          m = (0, s.P6)(
            'editorIndentGuide.background',
            { dark: p, light: p, hc: p },
            n.N('editorIndentGuides', 'Color of the editor indentation guides.')
          ),
          _ = (0, s.P6)(
            'editorIndentGuide.activeBackground',
            { dark: p, light: p, hc: p },
            n.N(
              'editorActiveIndentGuide',
              'Color of the active editor indentation guides.'
            )
          ),
          b = (0, s.P6)(
            'editorLineNumber.foreground',
            { dark: '#858585', light: '#237893', hc: r.Il.white },
            n.N('editorLineNumbers', 'Color of editor line numbers.')
          ),
          v = (0, s.P6)(
            'editorActiveLineNumber.foreground',
            { dark: '#c6c6c6', light: '#0B216F', hc: s.xL },
            n.N('editorActiveLineNumber', 'Color of editor active line number'),
            !1,
            n.N(
              'deprecatedEditorActiveLineNumber',
              "Id is deprecated. Use 'editorLineNumber.activeForeground' instead."
            )
          ),
          y = (0, s.P6)(
            'editorLineNumber.activeForeground',
            { dark: v, light: v, hc: v },
            n.N('editorActiveLineNumber', 'Color of editor active line number')
          ),
          w = (0, s.P6)(
            'editorRuler.foreground',
            { dark: '#5A5A5A', light: r.Il.lightgrey, hc: r.Il.white },
            n.N('editorRuler', 'Color of the editor rulers.')
          ),
          C = (0, s.P6)(
            'editorCodeLens.foreground',
            { dark: '#999999', light: '#999999', hc: '#999999' },
            n.N(
              'editorCodeLensForeground',
              'Foreground color of editor CodeLens'
            )
          ),
          S = (0, s.P6)(
            'editorBracketMatch.background',
            { dark: '#0064001a', light: '#0064001a', hc: '#0064001a' },
            n.N(
              'editorBracketMatchBackground',
              'Background color behind matching brackets'
            )
          ),
          k = (0, s.P6)(
            'editorBracketMatch.border',
            { dark: '#888', light: '#B9B9B9', hc: s.lR },
            n.N('editorBracketMatchBorder', 'Color for matching brackets boxes')
          ),
          x = (0, s.P6)(
            'editorOverviewRuler.border',
            { dark: '#7f7f7f4d', light: '#7f7f7f4d', hc: '#7f7f7f4d' },
            n.N(
              'editorOverviewRulerBorder',
              'Color of the overview ruler border.'
            )
          ),
          L = (0, s.P6)(
            'editorOverviewRuler.background',
            null,
            n.N(
              'editorOverviewRulerBackground',
              'Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.'
            )
          ),
          M = (0, s.P6)(
            'editorGutter.background',
            { dark: s.cv, light: s.cv, hc: s.cv },
            n.N(
              'editorGutter',
              'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.'
            )
          ),
          D = (0, s.P6)(
            'editorUnnecessaryCode.border',
            {
              dark: null,
              light: null,
              hc: r.Il.fromHex('#fff').transparent(0.8),
            },
            n.N(
              'unnecessaryCodeBorder',
              'Border color of unnecessary (unused) source code in the editor.'
            )
          ),
          N = (0, s.P6)(
            'editorUnnecessaryCode.opacity',
            {
              dark: r.Il.fromHex('#000a'),
              light: r.Il.fromHex('#0007'),
              hc: null,
            },
            n.N(
              'unnecessaryCodeOpacity',
              'Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the  \'editorUnnecessaryCode.border\' theme color to underline unnecessary code instead of fading it out.'
            )
          ),
          E = new r.Il(new r.VS(0, 122, 204, 0.6)),
          T = (0, s.P6)(
            'editorOverviewRuler.rangeHighlightForeground',
            { dark: E, light: E, hc: E },
            n.N(
              'overviewRulerRangeHighlight',
              'Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          I = (0, s.P6)(
            'editorOverviewRuler.errorForeground',
            {
              dark: new r.Il(new r.VS(255, 18, 18, 0.7)),
              light: new r.Il(new r.VS(255, 18, 18, 0.7)),
              hc: new r.Il(new r.VS(255, 50, 50, 1)),
            },
            n.N('overviewRuleError', 'Overview ruler marker color for errors.')
          ),
          O = (0, s.P6)(
            'editorOverviewRuler.warningForeground',
            { dark: s.uo, light: s.uo, hc: s.pW },
            n.N(
              'overviewRuleWarning',
              'Overview ruler marker color for warnings.'
            )
          ),
          A = (0, s.P6)(
            'editorOverviewRuler.infoForeground',
            { dark: s.c6, light: s.c6, hc: s.T8 },
            n.N('overviewRuleInfo', 'Overview ruler marker color for infos.')
          );
        (0, o.Ic)((e, t) => {
          const i = e.getColor(s.cv);
          i &&
            t.addRule(
              `.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${i}; }`
            );
          const n = e.getColor(s.NO);
          n &&
            t.addRule(
              `.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${n}; }`
            );
          const r = e.getColor(M);
          r && t.addRule(`.monaco-editor .margin { background-color: ${r}; }`);
          const o = e.getColor(c);
          o &&
            t.addRule(
              `.monaco-editor .rangeHighlight { background-color: ${o}; }`
            );
          const a = e.getColor(d);
          a &&
            t.addRule(
              `.monaco-editor .rangeHighlight { border: 1px ${
                'hc' === e.type ? 'dotted' : 'solid'
              } ${a}; }`
            );
          const l = e.getColor(h);
          l &&
            t.addRule(
              `.monaco-editor .symbolHighlight { background-color: ${l}; }`
            );
          const g = e.getColor(u);
          g &&
            t.addRule(
              `.monaco-editor .symbolHighlight { border: 1px ${
                'hc' === e.type ? 'dotted' : 'solid'
              } ${g}; }`
            );
          const f = e.getColor(p);
          f &&
            (t.addRule(`.monaco-editor .mtkw { color: ${f} !important; }`),
            t.addRule(`.monaco-editor .mtkz { color: ${f} !important; }`));
        });
      },
      92003: (e, t, i) => {
        'use strict';
        i.d(t, { EY: () => r, Tj: () => s });
        class n {
          constructor(e, t, i) {
            (this.from = 0 | e), (this.to = 0 | t), (this.colorId = 0 | i);
          }
          static compare(e, t) {
            return e.colorId === t.colorId
              ? e.from === t.from
                ? e.to - t.to
                : e.from - t.from
              : e.colorId - t.colorId;
          }
        }
        class r {
          constructor(e, t, i) {
            (this.startLineNumber = e),
              (this.endLineNumber = t),
              (this.color = i),
              (this._colorZone = null);
          }
          static compare(e, t) {
            return e.color === t.color
              ? e.startLineNumber === t.startLineNumber
                ? e.endLineNumber - t.endLineNumber
                : e.startLineNumber - t.startLineNumber
              : e.color < t.color
              ? -1
              : 1;
          }
          setColorZone(e) {
            this._colorZone = e;
          }
          getColorZones() {
            return this._colorZone;
          }
        }
        class s {
          constructor(e) {
            (this._getVerticalOffsetForLine = e),
              (this._zones = []),
              (this._colorZonesInvalid = !1),
              (this._lineHeight = 0),
              (this._domWidth = 0),
              (this._domHeight = 0),
              (this._outerHeight = 0),
              (this._pixelRatio = 1),
              (this._lastAssignedId = 0),
              (this._color2Id = Object.create(null)),
              (this._id2Color = []);
          }
          getId2Color() {
            return this._id2Color;
          }
          setZones(e) {
            (this._zones = e), this._zones.sort(r.compare);
          }
          setLineHeight(e) {
            return (
              this._lineHeight !== e &&
              ((this._lineHeight = e), (this._colorZonesInvalid = !0), !0)
            );
          }
          setPixelRatio(e) {
            (this._pixelRatio = e), (this._colorZonesInvalid = !0);
          }
          getDOMWidth() {
            return this._domWidth;
          }
          getCanvasWidth() {
            return this._domWidth * this._pixelRatio;
          }
          setDOMWidth(e) {
            return (
              this._domWidth !== e &&
              ((this._domWidth = e), (this._colorZonesInvalid = !0), !0)
            );
          }
          getDOMHeight() {
            return this._domHeight;
          }
          getCanvasHeight() {
            return this._domHeight * this._pixelRatio;
          }
          setDOMHeight(e) {
            return (
              this._domHeight !== e &&
              ((this._domHeight = e), (this._colorZonesInvalid = !0), !0)
            );
          }
          getOuterHeight() {
            return this._outerHeight;
          }
          setOuterHeight(e) {
            return (
              this._outerHeight !== e &&
              ((this._outerHeight = e), (this._colorZonesInvalid = !0), !0)
            );
          }
          resolveColorZones() {
            const e = this._colorZonesInvalid,
              t = Math.floor(this._lineHeight),
              i = Math.floor(this.getCanvasHeight()),
              r = i / Math.floor(this._outerHeight),
              s = Math.floor((4 * this._pixelRatio) / 2);
            let o = [];
            for (let a = 0, l = this._zones.length; a < l; a++) {
              const l = this._zones[a];
              if (!e) {
                const e = l.getColorZones();
                if (e) {
                  o.push(e);
                  continue;
                }
              }
              const c = Math.floor(
                  r * this._getVerticalOffsetForLine(l.startLineNumber)
                ),
                d = Math.floor(
                  r * (this._getVerticalOffsetForLine(l.endLineNumber) + t)
                );
              let h = Math.floor((c + d) / 2),
                u = d - h;
              u < s && (u = s), h - u < 0 && (h = u), h + u > i && (h = i - u);
              const g = l.color;
              let f = this._color2Id[g];
              f ||
                ((f = ++this._lastAssignedId),
                (this._color2Id[g] = f),
                (this._id2Color[f] = g));
              const p = new n(h - u, h + u, f);
              l.setColorZone(p), o.push(p);
            }
            return (this._colorZonesInvalid = !1), o.sort(n.compare), o;
          }
        }
      },
      92550: (e, t, i) => {
        'use strict';
        i.d(t, { Kp: () => r, k: () => a });
        var n = i(97295);
        class r {
          constructor(e, t, i, n) {
            (this.startColumn = e),
              (this.endColumn = t),
              (this.className = i),
              (this.type = n);
          }
          static _equals(e, t) {
            return (
              e.startColumn === t.startColumn &&
              e.endColumn === t.endColumn &&
              e.className === t.className &&
              e.type === t.type
            );
          }
          static equalsArr(e, t) {
            const i = e.length;
            if (i !== t.length) return !1;
            for (let n = 0; n < i; n++) if (!r._equals(e[n], t[n])) return !1;
            return !0;
          }
          static filter(e, t, i, n) {
            if (0 === e.length) return [];
            let s = [],
              o = 0;
            for (let a = 0, l = e.length; a < l; a++) {
              const l = e[a],
                c = l.range;
              if (c.endLineNumber < t || c.startLineNumber > t) continue;
              if (c.isEmpty() && (0 === l.type || 3 === l.type)) continue;
              const d = c.startLineNumber === t ? c.startColumn : i,
                h = c.endLineNumber === t ? c.endColumn : n;
              s[o++] = new r(d, h, l.inlineClassName, l.type);
            }
            return s;
          }
          static _typeCompare(e, t) {
            const i = [2, 0, 1, 3];
            return i[e] - i[t];
          }
          static compare(e, t) {
            if (e.startColumn === t.startColumn) {
              if (e.endColumn === t.endColumn) {
                const i = r._typeCompare(e.type, t.type);
                return 0 === i
                  ? e.className < t.className
                    ? -1
                    : e.className > t.className
                    ? 1
                    : 0
                  : i;
              }
              return e.endColumn - t.endColumn;
            }
            return e.startColumn - t.startColumn;
          }
        }
        class s {
          constructor(e, t, i, n) {
            (this.startOffset = e),
              (this.endOffset = t),
              (this.className = i),
              (this.metadata = n);
          }
        }
        class o {
          constructor() {
            (this.stopOffsets = []),
              (this.classNames = []),
              (this.metadata = []),
              (this.count = 0);
          }
          static _metadata(e) {
            let t = 0;
            for (let i = 0, n = e.length; i < n; i++) t |= e[i];
            return t;
          }
          consumeLowerThan(e, t, i) {
            for (; this.count > 0 && this.stopOffsets[0] < e; ) {
              let e = 0;
              for (
                ;
                e + 1 < this.count &&
                this.stopOffsets[e] === this.stopOffsets[e + 1];

              )
                e++;
              i.push(
                new s(
                  t,
                  this.stopOffsets[e],
                  this.classNames.join(' '),
                  o._metadata(this.metadata)
                )
              ),
                (t = this.stopOffsets[e] + 1),
                this.stopOffsets.splice(0, e + 1),
                this.classNames.splice(0, e + 1),
                this.metadata.splice(0, e + 1),
                (this.count -= e + 1);
            }
            return (
              this.count > 0 &&
                t < e &&
                (i.push(
                  new s(
                    t,
                    e - 1,
                    this.classNames.join(' '),
                    o._metadata(this.metadata)
                  )
                ),
                (t = e)),
              t
            );
          }
          insert(e, t, i) {
            if (0 === this.count || this.stopOffsets[this.count - 1] <= e)
              this.stopOffsets.push(e),
                this.classNames.push(t),
                this.metadata.push(i);
            else
              for (let n = 0; n < this.count; n++)
                if (this.stopOffsets[n] >= e) {
                  this.stopOffsets.splice(n, 0, e),
                    this.classNames.splice(n, 0, t),
                    this.metadata.splice(n, 0, i);
                  break;
                }
            this.count++;
          }
        }
        class a {
          static normalize(e, t) {
            if (0 === t.length) return [];
            let i = [];
            const r = new o();
            let s = 0;
            for (let o = 0, a = t.length; o < a; o++) {
              const a = t[o];
              let l = a.startColumn,
                c = a.endColumn;
              const d = a.className,
                h = 1 === a.type ? 2 : 2 === a.type ? 4 : 0;
              if (l > 1) {
                const t = e.charCodeAt(l - 2);
                n.ZG(t) && l--;
              }
              if (c > 1) {
                const t = e.charCodeAt(c - 2);
                n.ZG(t) && c--;
              }
              const u = l - 1,
                g = c - 2;
              (s = r.consumeLowerThan(u, s, i)),
                0 === r.count && (s = u),
                r.insert(g, d, h);
            }
            return r.consumeLowerThan(1073741824, s, i), i;
          }
        }
      },
      77736: (e, t, i) => {
        'use strict';
        i.d(t, {
          zG: () => a,
          IJ: () => l,
          fH: () => c,
          d1: () => h,
          tF: () => g,
        });
        var n = i(97295),
          r = i(50072),
          s = i(92550);
        class o {
          constructor(e, t, i) {
            (this.endIndex = e), (this.type = t), (this.metadata = i);
          }
          isWhitespace() {
            return !!(1 & this.metadata);
          }
        }
        class a {
          constructor(e, t) {
            (this.startOffset = e), (this.endOffset = t);
          }
          equals(e) {
            return (
              this.startOffset === e.startOffset &&
              this.endOffset === e.endOffset
            );
          }
        }
        class l {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h, u, g, f, p, m, _, b) {
            (this.useMonospaceOptimizations = e),
              (this.canUseHalfwidthRightwardsArrow = t),
              (this.lineContent = i),
              (this.continuesWithWrappedLine = n),
              (this.isBasicASCII = r),
              (this.containsRTL = s),
              (this.fauxIndentLength = o),
              (this.lineTokens = a),
              (this.lineDecorations = l),
              (this.tabSize = c),
              (this.startVisibleColumn = d),
              (this.spaceWidth = h),
              (this.stopRenderingLineAfter = f),
              (this.renderWhitespace =
                'all' === p
                  ? 4
                  : 'boundary' === p
                  ? 1
                  : 'selection' === p
                  ? 2
                  : 'trailing' === p
                  ? 3
                  : 0),
              (this.renderControlCharacters = m),
              (this.fontLigatures = _),
              (this.selectionsOnLine =
                b &&
                b.sort((e, t) => (e.startOffset < t.startOffset ? -1 : 1))),
              Math.abs(g - h) < Math.abs(u - h)
                ? ((this.renderSpaceWidth = g),
                  (this.renderSpaceCharCode = 11825))
                : ((this.renderSpaceWidth = u),
                  (this.renderSpaceCharCode = 183));
          }
          sameSelection(e) {
            if (null === this.selectionsOnLine) return null === e;
            if (null === e) return !1;
            if (e.length !== this.selectionsOnLine.length) return !1;
            for (let t = 0; t < this.selectionsOnLine.length; t++)
              if (!this.selectionsOnLine[t].equals(e[t])) return !1;
            return !0;
          }
          equals(e) {
            return (
              this.useMonospaceOptimizations === e.useMonospaceOptimizations &&
              this.canUseHalfwidthRightwardsArrow ===
                e.canUseHalfwidthRightwardsArrow &&
              this.lineContent === e.lineContent &&
              this.continuesWithWrappedLine === e.continuesWithWrappedLine &&
              this.isBasicASCII === e.isBasicASCII &&
              this.containsRTL === e.containsRTL &&
              this.fauxIndentLength === e.fauxIndentLength &&
              this.tabSize === e.tabSize &&
              this.startVisibleColumn === e.startVisibleColumn &&
              this.spaceWidth === e.spaceWidth &&
              this.renderSpaceWidth === e.renderSpaceWidth &&
              this.renderSpaceCharCode === e.renderSpaceCharCode &&
              this.stopRenderingLineAfter === e.stopRenderingLineAfter &&
              this.renderWhitespace === e.renderWhitespace &&
              this.renderControlCharacters === e.renderControlCharacters &&
              this.fontLigatures === e.fontLigatures &&
              s.Kp.equalsArr(this.lineDecorations, e.lineDecorations) &&
              this.lineTokens.equals(e.lineTokens) &&
              this.sameSelection(e.selectionsOnLine)
            );
          }
        }
        class c {
          constructor(e, t) {
            (this.length = e),
              (this._data = new Uint32Array(this.length)),
              (this._absoluteOffsets = new Uint32Array(this.length));
          }
          static getPartIndex(e) {
            return (4294901760 & e) >>> 16;
          }
          static getCharIndex(e) {
            return (65535 & e) >>> 0;
          }
          setPartData(e, t, i, n) {
            let r = ((t << 16) | (i << 0)) >>> 0;
            (this._data[e] = r), (this._absoluteOffsets[e] = n + i);
          }
          getAbsoluteOffsets() {
            return this._absoluteOffsets;
          }
          charOffsetToPartData(e) {
            return 0 === this.length
              ? 0
              : e < 0
              ? this._data[0]
              : e >= this.length
              ? this._data[this.length - 1]
              : this._data[e];
          }
          partDataToCharOffset(e, t, i) {
            if (0 === this.length) return 0;
            let n = ((e << 16) | (i << 0)) >>> 0,
              r = 0,
              s = this.length - 1;
            for (; r + 1 < s; ) {
              let e = (r + s) >>> 1,
                t = this._data[e];
              if (t === n) return e;
              t > n ? (s = e) : (r = e);
            }
            if (r === s) return r;
            let o = this._data[r],
              a = this._data[s];
            if (o === n) return r;
            if (a === n) return s;
            let l,
              d = c.getPartIndex(o),
              h = c.getCharIndex(o);
            return (
              (l = d !== c.getPartIndex(a) ? t : c.getCharIndex(a)),
              i - h <= l - i ? r : s
            );
          }
        }
        class d {
          constructor(e, t, i) {
            (this.characterMapping = e),
              (this.containsRTL = t),
              (this.containsForeignElements = i);
          }
        }
        function h(e, t) {
          if (0 === e.lineContent.length) {
            let i = 0,
              n = '<span><span></span></span>';
            if (e.lineDecorations.length > 0) {
              const t = [],
                r = [];
              for (let n = 0, s = e.lineDecorations.length; n < s; n++) {
                const s = e.lineDecorations[n];
                1 === s.type &&
                  (t.push(e.lineDecorations[n].className), (i |= 1)),
                  2 === s.type &&
                    (r.push(e.lineDecorations[n].className), (i |= 2));
              }
              0 !== i &&
                (n = `<span>${
                  t.length > 0 ? `<span class="${t.join(' ')}"></span>` : ''
                }${
                  r.length > 0 ? `<span class="${r.join(' ')}"></span>` : ''
                }</span>`);
            }
            return t.appendASCIIString(n), new d(new c(0, 0), !1, i);
          }
          return (function (e, t) {
            const i = e.fontIsMonospace,
              r = e.canUseHalfwidthRightwardsArrow,
              s = e.containsForeignElements,
              o = e.lineContent,
              a = e.len,
              l = e.isOverflowing,
              h = e.parts,
              u = e.fauxIndentLength,
              g = e.tabSize,
              f = e.startVisibleColumn,
              p = e.containsRTL,
              m = e.spaceWidth,
              _ = e.renderSpaceCharCode,
              b = e.renderWhitespace,
              v = e.renderControlCharacters,
              y = new c(a + 1, h.length);
            let w = 0,
              C = f,
              S = 0,
              k = 0,
              x = 0,
              L = 0;
            p
              ? t.appendASCIIString('<span dir="ltr">')
              : t.appendASCIIString('<span>');
            for (let e = 0, a = h.length; e < a; e++) {
              L += x;
              const a = h[e],
                l = a.endIndex,
                c = a.type,
                d = 0 !== b && a.isWhitespace(),
                f = d && !i && ('mtkw' === c || !s),
                p = w === l && 4 === a.metadata;
              if (
                ((S = 0),
                t.appendASCIIString('<span class="'),
                t.appendASCIIString(f ? 'mtkz' : c),
                t.appendASCII(34),
                d)
              ) {
                let i = 0;
                {
                  let e = w,
                    t = C;
                  for (; e < l; e++) {
                    const n = 0 | (9 === o.charCodeAt(e) ? g - (t % g) : 1);
                    (i += n), e >= u && (t += n);
                  }
                }
                for (
                  f &&
                    (t.appendASCIIString(' style="width:'),
                    t.appendASCIIString(String(m * i)),
                    t.appendASCIIString('px"')),
                    t.appendASCII(62);
                  w < l;
                  w++
                ) {
                  let i;
                  if (
                    (y.setPartData(w, e - k, S, L),
                    (k = 0),
                    9 === o.charCodeAt(w))
                  ) {
                    (i = (g - (C % g)) | 0),
                      !r || i > 1 ? t.write1(8594) : t.write1(65515);
                    for (let e = 2; e <= i; e++) t.write1(160);
                  } else (i = 1), t.write1(_);
                  (S += i), w >= u && (C += i);
                }
                x = i;
              } else {
                let i = 0;
                for (t.appendASCII(62); w < l; w++) {
                  y.setPartData(w, e - k, S, L), (k = 0);
                  const r = o.charCodeAt(w);
                  let s = 1,
                    a = 1;
                  switch (r) {
                    case 9:
                      (s = g - (C % g)), (a = s);
                      for (let e = 1; e <= s; e++) t.write1(160);
                      break;
                    case 32:
                      t.write1(160);
                      break;
                    case 60:
                      t.appendASCIIString('&lt;');
                      break;
                    case 62:
                      t.appendASCIIString('&gt;');
                      break;
                    case 38:
                      t.appendASCIIString('&amp;');
                      break;
                    case 0:
                      t.appendASCIIString('&#00;');
                      break;
                    case 65279:
                    case 8232:
                    case 8233:
                    case 133:
                      t.write1(65533);
                      break;
                    default:
                      n.K7(r) && a++,
                        v && r < 32 ? t.write1(9216 + r) : t.write1(r);
                  }
                  (S += s), (i += s), w >= u && (C += a);
                }
                x = i;
              }
              p ? k++ : (k = 0), t.appendASCIIString('</span>');
            }
            return (
              y.setPartData(a, h.length - 1, S, L),
              l && t.appendASCIIString('<span>&hellip;</span>'),
              t.appendASCIIString('</span>'),
              new d(y, p, s)
            );
          })(
            (function (e) {
              const t = e.lineContent;
              let i, r;
              -1 !== e.stopRenderingLineAfter &&
              e.stopRenderingLineAfter < t.length
                ? ((i = !0), (r = e.stopRenderingLineAfter))
                : ((i = !1), (r = t.length));
              let a = (function (e, t, i) {
                let n = [],
                  r = 0;
                t > 0 && (n[r++] = new o(t, '', 0));
                for (let s = 0, a = e.getCount(); s < a; s++) {
                  const a = e.getEndOffset(s);
                  if (a <= t) continue;
                  const l = e.getClassName(s);
                  if (a >= i) {
                    n[r++] = new o(i, l, 0);
                    break;
                  }
                  n[r++] = new o(a, l, 0);
                }
                return n;
              })(e.lineTokens, e.fauxIndentLength, r);
              (4 === e.renderWhitespace ||
                1 === e.renderWhitespace ||
                (2 === e.renderWhitespace && e.selectionsOnLine) ||
                3 === e.renderWhitespace) &&
                (a = (function (e, t, i, r) {
                  const s = e.continuesWithWrappedLine,
                    a = e.fauxIndentLength,
                    l = e.tabSize,
                    c = e.startVisibleColumn,
                    d = e.useMonospaceOptimizations,
                    h = e.selectionsOnLine,
                    u = 1 === e.renderWhitespace,
                    g = 3 === e.renderWhitespace,
                    f = e.renderSpaceWidth !== e.spaceWidth;
                  let p = [],
                    m = 0,
                    _ = 0,
                    b = r[_].type,
                    v = r[_].endIndex;
                  const y = r.length;
                  let w,
                    C = !1,
                    S = n.LC(t);
                  -1 === S ? ((C = !0), (S = i), (w = i)) : (w = n.ow(t));
                  let k = !1,
                    x = 0,
                    L = h && h[x],
                    M = c % l;
                  for (let e = a; e < i; e++) {
                    const s = t.charCodeAt(e);
                    let c;
                    if (
                      (L && e >= L.endOffset && (x++, (L = h && h[x])),
                      e < S || e > w)
                    )
                      c = !0;
                    else if (9 === s) c = !0;
                    else if (32 === s)
                      if (u)
                        if (k) c = !0;
                        else {
                          const n = e + 1 < i ? t.charCodeAt(e + 1) : 0;
                          c = 32 === n || 9 === n;
                        }
                      else c = !0;
                    else c = !1;
                    if (
                      (c &&
                        h &&
                        (c = !!L && L.startOffset <= e && L.endOffset > e),
                      c && g && (c = C || e > w),
                      k)
                    ) {
                      if (!c || (!d && M >= l)) {
                        if (f)
                          for (
                            let t = (m > 0 ? p[m - 1].endIndex : a) + 1;
                            t <= e;
                            t++
                          )
                            p[m++] = new o(t, 'mtkw', 1);
                        else p[m++] = new o(e, 'mtkw', 1);
                        M %= l;
                      }
                    } else
                      (e === v || (c && e > a)) &&
                        ((p[m++] = new o(e, b, 0)), (M %= l));
                    for (
                      9 === s ? (M = l) : n.K7(s) ? (M += 2) : M++, k = c;
                      e === v;

                    )
                      _++, _ < y && ((b = r[_].type), (v = r[_].endIndex));
                  }
                  let D = !1;
                  if (k)
                    if (s && u) {
                      let e = i > 0 ? t.charCodeAt(i - 1) : 0,
                        n = i > 1 ? t.charCodeAt(i - 2) : 0;
                      (32 === e && 32 !== n && 9 !== n) || (D = !0);
                    } else D = !0;
                  if (D)
                    if (f)
                      for (
                        let e = (m > 0 ? p[m - 1].endIndex : a) + 1;
                        e <= i;
                        e++
                      )
                        p[m++] = new o(e, 'mtkw', 1);
                    else p[m++] = new o(i, 'mtkw', 1);
                  else p[m++] = new o(i, b, 0);
                  return p;
                })(e, t, r, a));
              let l = 0;
              if (e.lineDecorations.length > 0) {
                for (let t = 0, i = e.lineDecorations.length; t < i; t++) {
                  const i = e.lineDecorations[t];
                  3 === i.type || 1 === i.type
                    ? (l |= 1)
                    : 2 === i.type && (l |= 2);
                }
                a = (function (e, t, i, n) {
                  n.sort(s.Kp.compare);
                  const r = s.k.normalize(e, n),
                    a = r.length;
                  let l = 0,
                    c = [],
                    d = 0,
                    h = 0;
                  for (let e = 0, t = i.length; e < t; e++) {
                    const t = i[e],
                      n = t.endIndex,
                      s = t.type,
                      u = t.metadata;
                    for (; l < a && r[l].startOffset < n; ) {
                      const e = r[l];
                      if (
                        (e.startOffset > h &&
                          ((h = e.startOffset), (c[d++] = new o(h, s, u))),
                        !(e.endOffset + 1 <= n))
                      ) {
                        (h = n),
                          (c[d++] = new o(
                            h,
                            s + ' ' + e.className,
                            u | e.metadata
                          ));
                        break;
                      }
                      (h = e.endOffset + 1),
                        (c[d++] = new o(
                          h,
                          s + ' ' + e.className,
                          u | e.metadata
                        )),
                        l++;
                    }
                    n > h && ((h = n), (c[d++] = new o(h, s, u)));
                  }
                  const u = i[i.length - 1].endIndex;
                  if (l < a && r[l].startOffset === u) {
                    let e = [],
                      t = 0;
                    for (; l < a && r[l].startOffset === u; )
                      e.push(r[l].className), (t |= r[l].metadata), l++;
                    c[d++] = new o(h, e.join(' '), t);
                  }
                  return c;
                })(t, 0, a, e.lineDecorations);
              }
              return (
                e.containsRTL ||
                  (a = (function (e, t, i) {
                    let n = 0,
                      r = [],
                      s = 0;
                    if (i)
                      for (let i = 0, a = t.length; i < a; i++) {
                        const a = t[i],
                          l = a.endIndex;
                        if (n + 50 < l) {
                          const t = a.type,
                            i = a.metadata;
                          let c = -1,
                            d = n;
                          for (let a = n; a < l; a++)
                            32 === e.charCodeAt(a) && (c = a),
                              -1 !== c &&
                                a - d >= 50 &&
                                ((r[s++] = new o(c + 1, t, i)),
                                (d = c + 1),
                                (c = -1));
                          d !== l && (r[s++] = new o(l, t, i));
                        } else r[s++] = a;
                        n = l;
                      }
                    else
                      for (let e = 0, i = t.length; e < i; e++) {
                        const i = t[e],
                          a = i.endIndex;
                        let l = a - n;
                        if (l > 50) {
                          const e = i.type,
                            t = i.metadata,
                            c = Math.ceil(l / 50);
                          for (let i = 1; i < c; i++) {
                            let a = n + 50 * i;
                            r[s++] = new o(a, e, t);
                          }
                          r[s++] = new o(a, e, t);
                        } else r[s++] = i;
                        n = a;
                      }
                    return r;
                  })(t, a, !e.isBasicASCII || e.fontLigatures)),
                new f(
                  e.useMonospaceOptimizations,
                  e.canUseHalfwidthRightwardsArrow,
                  t,
                  r,
                  i,
                  a,
                  l,
                  e.fauxIndentLength,
                  e.tabSize,
                  e.startVisibleColumn,
                  e.containsRTL,
                  e.spaceWidth,
                  e.renderSpaceCharCode,
                  e.renderWhitespace,
                  e.renderControlCharacters
                )
              );
            })(e),
            t
          );
        }
        class u {
          constructor(e, t, i, n) {
            (this.characterMapping = e),
              (this.html = t),
              (this.containsRTL = i),
              (this.containsForeignElements = n);
          }
        }
        function g(e) {
          let t = (0, r.l$)(1e4),
            i = h(e, t);
          return new u(
            i.characterMapping,
            t.build(),
            i.containsRTL,
            i.containsForeignElements
          );
        }
        class f {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h, u, g, f) {
            (this.fontIsMonospace = e),
              (this.canUseHalfwidthRightwardsArrow = t),
              (this.lineContent = i),
              (this.len = n),
              (this.isOverflowing = r),
              (this.parts = s),
              (this.containsForeignElements = o),
              (this.fauxIndentLength = a),
              (this.tabSize = l),
              (this.startVisibleColumn = c),
              (this.containsRTL = d),
              (this.spaceWidth = h),
              (this.renderSpaceCharCode = u),
              (this.renderWhitespace = g),
              (this.renderControlCharacters = f);
          }
        }
      },
      3544: (e, t, i) => {
        'use strict';
        i.d(t, { T: () => r, o: () => s });
        var n = i(85427);
        class r {
          constructor(e, t) {
            (this.index = e), (this.remainder = t);
          }
        }
        class s {
          constructor(e) {
            (this.values = e),
              (this.prefixSum = new Uint32Array(e.length)),
              (this.prefixSumValidIndex = new Int32Array(1)),
              (this.prefixSumValidIndex[0] = -1);
          }
          insertValues(e, t) {
            e = (0, n.A)(e);
            const i = this.values,
              r = this.prefixSum,
              s = t.length;
            return (
              0 !== s &&
              ((this.values = new Uint32Array(i.length + s)),
              this.values.set(i.subarray(0, e), 0),
              this.values.set(i.subarray(e), e + s),
              this.values.set(t, e),
              e - 1 < this.prefixSumValidIndex[0] &&
                (this.prefixSumValidIndex[0] = e - 1),
              (this.prefixSum = new Uint32Array(this.values.length)),
              this.prefixSumValidIndex[0] >= 0 &&
                this.prefixSum.set(
                  r.subarray(0, this.prefixSumValidIndex[0] + 1)
                ),
              !0)
            );
          }
          changeValue(e, t) {
            return (
              (e = (0, n.A)(e)),
              (t = (0, n.A)(t)),
              this.values[e] !== t &&
                ((this.values[e] = t),
                e - 1 < this.prefixSumValidIndex[0] &&
                  (this.prefixSumValidIndex[0] = e - 1),
                !0)
            );
          }
          removeValues(e, t) {
            (e = (0, n.A)(e)), (t = (0, n.A)(t));
            const i = this.values,
              r = this.prefixSum;
            if (e >= i.length) return !1;
            let s = i.length - e;
            return (
              t >= s && (t = s),
              0 !== t &&
                ((this.values = new Uint32Array(i.length - t)),
                this.values.set(i.subarray(0, e), 0),
                this.values.set(i.subarray(e + t), e),
                (this.prefixSum = new Uint32Array(this.values.length)),
                e - 1 < this.prefixSumValidIndex[0] &&
                  (this.prefixSumValidIndex[0] = e - 1),
                this.prefixSumValidIndex[0] >= 0 &&
                  this.prefixSum.set(
                    r.subarray(0, this.prefixSumValidIndex[0] + 1)
                  ),
                !0)
            );
          }
          getTotalValue() {
            return 0 === this.values.length
              ? 0
              : this._getAccumulatedValue(this.values.length - 1);
          }
          getAccumulatedValue(e) {
            return e < 0
              ? 0
              : ((e = (0, n.A)(e)), this._getAccumulatedValue(e));
          }
          _getAccumulatedValue(e) {
            if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];
            let t = this.prefixSumValidIndex[0] + 1;
            0 === t && ((this.prefixSum[0] = this.values[0]), t++),
              e >= this.values.length && (e = this.values.length - 1);
            for (let i = t; i <= e; i++)
              this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];
            return (
              (this.prefixSumValidIndex[0] = Math.max(
                this.prefixSumValidIndex[0],
                e
              )),
              this.prefixSum[e]
            );
          }
          getIndexOf(e) {
            (e = Math.floor(e)), this.getTotalValue();
            let t = 0,
              i = this.values.length - 1,
              n = 0,
              s = 0,
              o = 0;
            for (; t <= i; )
              if (
                ((n = (t + (i - t) / 2) | 0),
                (s = this.prefixSum[n]),
                (o = s - this.values[n]),
                e < o)
              )
                i = n - 1;
              else {
                if (!(e >= s)) break;
                t = n + 1;
              }
            return new r(n, e - o);
          }
        }
      },
      13824: (e, t, i) => {
        'use strict';
        i.d(t, {
          l_: () => r,
          ud: () => s,
          IP: () => o,
          wA: () => a,
          $t: () => l,
          $l: () => c,
        });
        var n = i(97295);
        class r {
          constructor(e, t, i, n) {
            (this.top = 0 | e),
              (this.left = 0 | t),
              (this.width = 0 | i),
              (this.height = 0 | n);
          }
        }
        class s {
          constructor(e, t) {
            (this.tabSize = e), (this.data = t);
          }
        }
        class o {
          constructor(e, t, i, n, r, s) {
            (this.content = e),
              (this.continuesWithWrappedLine = t),
              (this.minColumn = i),
              (this.maxColumn = n),
              (this.startVisibleColumn = r),
              (this.tokens = s);
          }
        }
        class a {
          constructor(e, t, i, n, r, s, o, l, c, d) {
            (this.minColumn = e),
              (this.maxColumn = t),
              (this.content = i),
              (this.continuesWithWrappedLine = n),
              (this.isBasicASCII = a.isBasicASCII(i, s)),
              (this.containsRTL = a.containsRTL(i, this.isBasicASCII, r)),
              (this.tokens = o),
              (this.inlineDecorations = l),
              (this.tabSize = c),
              (this.startVisibleColumn = d);
          }
          static isBasicASCII(e, t) {
            return !t || n.$i(e);
          }
          static containsRTL(e, t, i) {
            return !(t || !i) && n.Ut(e);
          }
        }
        class l {
          constructor(e, t, i) {
            (this.range = e), (this.inlineClassName = t), (this.type = i);
          }
        }
        class c {
          constructor(e, t) {
            (this.range = e), (this.options = t);
          }
        }
      },
      17355: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { SelectionAnchorSet: () => u });
        var n = i(16830),
          r = i(63580),
          s = i(29102),
          o = i(3860),
          a = i(22258),
          l = i(38819),
          c = i(59365),
          d = i(85152),
          h = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        const u = new l.uy('selectionAnchorSet', !1);
        let g = class e {
          constructor(e, t) {
            (this.editor = e),
              (this.selectionAnchorSetContextKey = u.bindTo(t)),
              (this.modelChangeListener = e.onDidChangeModel(() =>
                this.selectionAnchorSetContextKey.reset()
              ));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          setSelectionAnchor() {
            if (this.editor.hasModel()) {
              const e = this.editor.getPosition(),
                t = this.decorationId ? [this.decorationId] : [],
                i = this.editor.deltaDecorations(t, [
                  {
                    range: o.Y.fromPositions(e, e),
                    options: {
                      stickiness: 1,
                      hoverMessage: new c.W5().appendText(
                        (0, r.N)('selectionAnchor', 'Selection Anchor')
                      ),
                      className: 'selection-anchor',
                    },
                  },
                ]);
              (this.decorationId = i[0]),
                this.selectionAnchorSetContextKey.set(!!this.decorationId),
                (0, d.Z9)(
                  (0, r.N)(
                    'anchorSet',
                    'Anchor set at {0}:{1}',
                    e.lineNumber,
                    e.column
                  )
                );
            }
          }
          goToSelectionAnchor() {
            if (this.editor.hasModel() && this.decorationId) {
              const e = this.editor
                .getModel()
                .getDecorationRange(this.decorationId);
              e && this.editor.setPosition(e.getStartPosition());
            }
          }
          selectFromAnchorToCursor() {
            if (this.editor.hasModel() && this.decorationId) {
              const e = this.editor
                .getModel()
                .getDecorationRange(this.decorationId);
              if (e) {
                const t = this.editor.getPosition();
                this.editor.setSelection(
                  o.Y.fromPositions(e.getStartPosition(), t)
                ),
                  this.cancelSelectionAnchor();
              }
            }
          }
          cancelSelectionAnchor() {
            this.decorationId &&
              (this.editor.deltaDecorations([this.decorationId], []),
              (this.decorationId = void 0),
              this.selectionAnchorSetContextKey.set(!1));
          }
          dispose() {
            this.cancelSelectionAnchor(), this.modelChangeListener.dispose();
          }
        };
        var f, p;
        (g.ID = 'editor.contrib.selectionAnchorController'),
          (g = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((f = 1),
              (p = l.i6),
              function (e, t) {
                p(e, t, f);
              }),
            ],
            g
          ));
        class m extends n.R6 {
          constructor() {
            super({
              id: 'editor.action.setSelectionAnchor',
              label: (0, r.N)('setSelectionAnchor', 'Set Selection Anchor'),
              alias: 'Set Selection Anchor',
              precondition: void 0,
              kbOpts: {
                kbExpr: s.u.editorTextFocus,
                primary: (0, a.gx)(2089, 2080),
                weight: 100,
              },
            });
          }
          run(e, t) {
            return h(this, void 0, void 0, function* () {
              g.get(t).setSelectionAnchor();
            });
          }
        }
        class _ extends n.R6 {
          constructor() {
            super({
              id: 'editor.action.goToSelectionAnchor',
              label: (0, r.N)('goToSelectionAnchor', 'Go to Selection Anchor'),
              alias: 'Go to Selection Anchor',
              precondition: u,
            });
          }
          run(e, t) {
            return h(this, void 0, void 0, function* () {
              g.get(t).goToSelectionAnchor();
            });
          }
        }
        class b extends n.R6 {
          constructor() {
            super({
              id: 'editor.action.selectFromAnchorToCursor',
              label: (0, r.N)(
                'selectFromAnchorToCursor',
                'Select from Anchor to Cursor'
              ),
              alias: 'Select from Anchor to Cursor',
              precondition: u,
              kbOpts: {
                kbExpr: s.u.editorTextFocus,
                primary: (0, a.gx)(2089, 2089),
                weight: 100,
              },
            });
          }
          run(e, t) {
            return h(this, void 0, void 0, function* () {
              g.get(t).selectFromAnchorToCursor();
            });
          }
        }
        class v extends n.R6 {
          constructor() {
            super({
              id: 'editor.action.cancelSelectionAnchor',
              label: (0, r.N)(
                'cancelSelectionAnchor',
                'Cancel Selection Anchor'
              ),
              alias: 'Cancel Selection Anchor',
              precondition: u,
              kbOpts: { kbExpr: s.u.editorTextFocus, primary: 9, weight: 100 },
            });
          }
          run(e, t) {
            return h(this, void 0, void 0, function* () {
              g.get(t).cancelSelectionAnchor();
            });
          }
        }
        (0, n._K)(g.ID, g),
          (0, n.Qr)(m),
          (0, n.Qr)(_),
          (0, n.Qr)(b),
          (0, n.Qr)(v);
      },
      17084: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { BracketMatchingController: () => w });
        var n = i(63580),
          r = i(15393),
          s = i(5976),
          o = i(16830),
          a = i(50187),
          l = i(24314),
          c = i(3860),
          d = i(29102),
          h = i(84973),
          u = i(3411),
          g = i(27869),
          f = i(73910),
          p = i(97781),
          m = i(84144);
        const _ = (0, f.P6)(
          'editorOverviewRuler.bracketMatchForeground',
          { dark: '#A0A0A0', light: '#A0A0A0', hc: '#A0A0A0' },
          n.N(
            'overviewRulerBracketMatchForeground',
            'Overview ruler marker color for matching brackets.'
          )
        );
        class b extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.jumpToBracket',
              label: n.N('smartSelect.jumpBracket', 'Go to Bracket'),
              alias: 'Go to Bracket',
              precondition: void 0,
              kbOpts: {
                kbExpr: d.u.editorTextFocus,
                primary: 3160,
                weight: 100,
              },
            });
          }
          run(e, t) {
            let i = w.get(t);
            i && i.jumpToBracket();
          }
        }
        class v extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.selectToBracket',
              label: n.N('smartSelect.selectToBracket', 'Select to Bracket'),
              alias: 'Select to Bracket',
              precondition: void 0,
              description: {
                description: 'Select to Bracket',
                args: [
                  {
                    name: 'args',
                    schema: {
                      type: 'object',
                      properties: {
                        selectBrackets: { type: 'boolean', default: !0 },
                      },
                    },
                  },
                ],
              },
            });
          }
          run(e, t, i) {
            const n = w.get(t);
            if (!n) return;
            let r = !0;
            i && !1 === i.selectBrackets && (r = !1), n.selectToBracket(r);
          }
        }
        class y {
          constructor(e, t, i) {
            (this.position = e), (this.brackets = t), (this.options = i);
          }
        }
        class w extends s.JT {
          constructor(e) {
            super(),
              (this._editor = e),
              (this._lastBracketsData = []),
              (this._lastVersionId = 0),
              (this._decorations = []),
              (this._updateBracketsSoon = this._register(
                new r.pY(() => this._updateBrackets(), 50)
              )),
              (this._matchBrackets = this._editor.getOption(55)),
              this._updateBracketsSoon.schedule(),
              this._register(
                e.onDidChangeCursorPosition((e) => {
                  'never' !== this._matchBrackets &&
                    this._updateBracketsSoon.schedule();
                })
              ),
              this._register(
                e.onDidChangeModelContent((e) => {
                  this._updateBracketsSoon.schedule();
                })
              ),
              this._register(
                e.onDidChangeModel((e) => {
                  (this._lastBracketsData = []),
                    (this._decorations = []),
                    this._updateBracketsSoon.schedule();
                })
              ),
              this._register(
                e.onDidChangeModelLanguageConfiguration((e) => {
                  (this._lastBracketsData = []),
                    this._updateBracketsSoon.schedule();
                })
              ),
              this._register(
                e.onDidChangeConfiguration((e) => {
                  e.hasChanged(55) &&
                    ((this._matchBrackets = this._editor.getOption(55)),
                    (this._decorations = this._editor.deltaDecorations(
                      this._decorations,
                      []
                    )),
                    (this._lastBracketsData = []),
                    (this._lastVersionId = 0),
                    this._updateBracketsSoon.schedule());
                })
              );
          }
          static get(e) {
            return e.getContribution(w.ID);
          }
          jumpToBracket() {
            if (!this._editor.hasModel()) return;
            const e = this._editor.getModel(),
              t = this._editor.getSelections().map((t) => {
                const i = t.getStartPosition(),
                  n = e.matchBracket(i);
                let r = null;
                if (n)
                  n[0].containsPosition(i)
                    ? (r = n[1].getStartPosition())
                    : n[1].containsPosition(i) && (r = n[0].getStartPosition());
                else {
                  const t = e.findEnclosingBrackets(i);
                  if (t) r = t[0].getStartPosition();
                  else {
                    const t = e.findNextBracket(i);
                    t && t.range && (r = t.range.getStartPosition());
                  }
                }
                return r
                  ? new c.Y(r.lineNumber, r.column, r.lineNumber, r.column)
                  : new c.Y(i.lineNumber, i.column, i.lineNumber, i.column);
              });
            this._editor.setSelections(t), this._editor.revealRange(t[0]);
          }
          selectToBracket(e) {
            if (!this._editor.hasModel()) return;
            const t = this._editor.getModel(),
              i = [];
            this._editor.getSelections().forEach((n) => {
              const r = n.getStartPosition();
              let s = t.matchBracket(r);
              if (!s && ((s = t.findEnclosingBrackets(r)), !s)) {
                const e = t.findNextBracket(r);
                e &&
                  e.range &&
                  (s = t.matchBracket(e.range.getStartPosition()));
              }
              let o = null,
                a = null;
              if (s) {
                s.sort(l.e.compareRangesUsingStarts);
                const [t, i] = s;
                (o = e ? t.getStartPosition() : t.getEndPosition()),
                  (a = e ? i.getEndPosition() : i.getStartPosition());
              }
              o &&
                a &&
                i.push(new c.Y(o.lineNumber, o.column, a.lineNumber, a.column));
            }),
              i.length > 0 &&
                (this._editor.setSelections(i), this._editor.revealRange(i[0]));
          }
          _updateBrackets() {
            if ('never' === this._matchBrackets) return;
            this._recomputeBrackets();
            let e = [],
              t = 0;
            for (const i of this._lastBracketsData) {
              let n = i.brackets;
              n &&
                ((e[t++] = { range: n[0], options: i.options }),
                (e[t++] = { range: n[1], options: i.options }));
            }
            this._decorations = this._editor.deltaDecorations(
              this._decorations,
              e
            );
          }
          _recomputeBrackets() {
            if (!this._editor.hasModel())
              return (
                (this._lastBracketsData = []), void (this._lastVersionId = 0)
              );
            const e = this._editor.getSelections();
            if (e.length > 100)
              return (
                (this._lastBracketsData = []), void (this._lastVersionId = 0)
              );
            const t = this._editor.getModel(),
              i = t.getVersionId();
            let n = [];
            this._lastVersionId === i && (n = this._lastBracketsData);
            let r = [],
              s = 0;
            for (let t = 0, i = e.length; t < i; t++) {
              let i = e[t];
              i.isEmpty() && (r[s++] = i.getStartPosition());
            }
            r.length > 1 && r.sort(a.L.compare);
            let o = [],
              l = 0,
              c = 0,
              d = n.length;
            for (let e = 0, i = r.length; e < i; e++) {
              let i = r[e];
              for (; c < d && n[c].position.isBefore(i); ) c++;
              if (c < d && n[c].position.equals(i)) o[l++] = n[c];
              else {
                let e = t.matchBracket(i),
                  n = w._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;
                e ||
                  'always' !== this._matchBrackets ||
                  ((e = t.findEnclosingBrackets(i, 20)),
                  (n = w._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER)),
                  (o[l++] = new y(i, e, n));
              }
            }
            (this._lastBracketsData = o), (this._lastVersionId = i);
          }
        }
        (w.ID = 'editor.contrib.bracketMatchingController'),
          (w._DECORATION_OPTIONS_WITH_OVERVIEW_RULER = u.qx.register({
            stickiness: 1,
            className: 'bracket-match',
            overviewRuler: { color: (0, p.EN)(_), position: h.sh.Center },
          })),
          (w._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = u.qx.register({
            stickiness: 1,
            className: 'bracket-match',
          })),
          (0, o._K)(w.ID, w),
          (0, o.Qr)(v),
          (0, o.Qr)(b),
          (0, p.Ic)((e, t) => {
            const i = e.getColor(g.TC);
            i &&
              t.addRule(
                `.monaco-editor .bracket-match { background-color: ${i}; }`
              );
            const n = e.getColor(g.Dl);
            n &&
              t.addRule(
                `.monaco-editor .bracket-match { border: 1px solid ${n}; }`
              );
          }),
          m.BH.appendMenuItem(m.eH.MenubarGoMenu, {
            group: '5_infile_nav',
            command: {
              id: 'editor.action.jumpToBracket',
              title: n.N(
                { key: 'miGoToBracket', comment: ['&& denotes a mnemonic'] },
                'Go to &&Bracket'
              ),
            },
            order: 2,
          });
      },
      84594: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(63580),
          r = i(16830),
          s = i(29102),
          o = i(24314),
          a = i(3860);
        class l {
          constructor(e, t) {
            (this._selection = e), (this._isMovingLeft = t);
          }
          getEditOperations(e, t) {
            if (
              this._selection.startLineNumber !==
                this._selection.endLineNumber ||
              this._selection.isEmpty()
            )
              return;
            const i = this._selection.startLineNumber,
              n = this._selection.startColumn,
              r = this._selection.endColumn;
            if (
              (!this._isMovingLeft || 1 !== n) &&
              (this._isMovingLeft || r !== e.getLineMaxColumn(i))
            )
              if (this._isMovingLeft) {
                const s = new o.e(i, n - 1, i, n),
                  a = e.getValueInRange(s);
                t.addEditOperation(s, null),
                  t.addEditOperation(new o.e(i, r, i, r), a);
              } else {
                const s = new o.e(i, r, i, r + 1),
                  a = e.getValueInRange(s);
                t.addEditOperation(s, null),
                  t.addEditOperation(new o.e(i, n, i, n), a);
              }
          }
          computeCursorState(e, t) {
            return this._isMovingLeft
              ? new a.Y(
                  this._selection.startLineNumber,
                  this._selection.startColumn - 1,
                  this._selection.endLineNumber,
                  this._selection.endColumn - 1
                )
              : new a.Y(
                  this._selection.startLineNumber,
                  this._selection.startColumn + 1,
                  this._selection.endLineNumber,
                  this._selection.endColumn + 1
                );
          }
        }
        class c extends r.R6 {
          constructor(e, t) {
            super(t), (this.left = e);
          }
          run(e, t) {
            if (!t.hasModel()) return;
            let i = [],
              n = t.getSelections();
            for (const e of n) i.push(new l(e, this.left));
            t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop();
          }
        }
        (0, r.Qr)(
          class extends c {
            constructor() {
              super(!0, {
                id: 'editor.action.moveCarretLeftAction',
                label: n.N('caret.moveLeft', 'Move Selected Text Left'),
                alias: 'Move Selected Text Left',
                precondition: s.u.writable,
              });
            }
          }
        ),
          (0, r.Qr)(
            class extends c {
              constructor() {
                super(!1, {
                  id: 'editor.action.moveCarretRightAction',
                  label: n.N('caret.moveRight', 'Move Selected Text Right'),
                  alias: 'Move Selected Text Right',
                  precondition: s.u.writable,
                });
              }
            }
          );
      },
      77847: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(63580),
          r = i(16830),
          s = i(61329),
          o = i(24314),
          a = i(29102),
          l = i(88784);
        class c extends r.R6 {
          constructor() {
            super({
              id: 'editor.action.transposeLetters',
              label: n.N('transposeLetters.label', 'Transpose Letters'),
              alias: 'Transpose Letters',
              precondition: a.u.writable,
              kbOpts: {
                kbExpr: a.u.textInputFocus,
                primary: 0,
                mac: { primary: 306 },
                weight: 100,
              },
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            let i = t.getModel(),
              n = [],
              r = t.getSelections();
            for (let e of r) {
              if (!e.isEmpty()) continue;
              let t = e.startLineNumber,
                r = e.startColumn,
                a = i.getLineMaxColumn(t);
              if (1 === t && (1 === r || (2 === r && 2 === a))) continue;
              let c =
                  r === a
                    ? e.getPosition()
                    : l.o.rightPosition(
                        i,
                        e.getPosition().lineNumber,
                        e.getPosition().column
                      ),
                d = l.o.leftPosition(i, c.lineNumber, c.column),
                h = l.o.leftPosition(i, d.lineNumber, d.column),
                u = i.getValueInRange(o.e.fromPositions(h, d)),
                g = i.getValueInRange(o.e.fromPositions(d, c)),
                f = o.e.fromPositions(h, c);
              n.push(new s.T4(f, g + u));
            }
            n.length > 0 &&
              (t.pushUndoStop(),
              t.executeCommands(this.id, n),
              t.pushUndoStop());
          }
        }
        (0, r.Qr)(c);
      },
      62015: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CutAction: () => b,
            CopyAction: () => v,
            PasteAction: () => y,
          });
        var n = i(63580),
          r = i(16268),
          s = i(1432),
          o = i(35715),
          a = i(16830),
          l = i(11640),
          c = i(29102),
          d = i(84144),
          h = i(84972);
        const u = '9_cutcopypaste',
          g = s.tY || document.queryCommandSupported('cut'),
          f = s.tY || document.queryCommandSupported('copy'),
          p = f && !r.un,
          m = !r.vU || document.queryCommandSupported('paste');
        function _(e) {
          return e.register(), e;
        }
        const b = g
            ? _(
                new a.AJ({
                  id: 'editor.action.clipboardCutAction',
                  precondition: void 0,
                  kbOpts: s.tY
                    ? {
                        primary: 2102,
                        win: { primary: 2102, secondary: [1044] },
                        weight: 100,
                      }
                    : void 0,
                  menuOpts: [
                    {
                      menuId: d.eH.MenubarEditMenu,
                      group: '2_ccp',
                      title: n.N(
                        { key: 'miCut', comment: ['&& denotes a mnemonic'] },
                        'Cu&&t'
                      ),
                      order: 1,
                    },
                    {
                      menuId: d.eH.EditorContext,
                      group: u,
                      title: n.N('actions.clipboard.cutLabel', 'Cut'),
                      when: c.u.writable,
                      order: 1,
                    },
                    {
                      menuId: d.eH.CommandPalette,
                      group: '',
                      title: n.N('actions.clipboard.cutLabel', 'Cut'),
                      order: 1,
                    },
                  ],
                })
              )
            : void 0,
          v = f
            ? _(
                new a.AJ({
                  id: 'editor.action.clipboardCopyAction',
                  precondition: void 0,
                  kbOpts: s.tY
                    ? {
                        primary: 2081,
                        win: { primary: 2081, secondary: [2067] },
                        weight: 100,
                      }
                    : void 0,
                  menuOpts: [
                    {
                      menuId: d.eH.MenubarEditMenu,
                      group: '2_ccp',
                      title: n.N(
                        { key: 'miCopy', comment: ['&& denotes a mnemonic'] },
                        '&&Copy'
                      ),
                      order: 2,
                    },
                    {
                      menuId: d.eH.EditorContext,
                      group: u,
                      title: n.N('actions.clipboard.copyLabel', 'Copy'),
                      order: 2,
                    },
                    {
                      menuId: d.eH.CommandPalette,
                      group: '',
                      title: n.N('actions.clipboard.copyLabel', 'Copy'),
                      order: 1,
                    },
                  ],
                })
              )
            : void 0,
          y = m
            ? _(
                new a.AJ({
                  id: 'editor.action.clipboardPasteAction',
                  precondition: void 0,
                  kbOpts: s.tY
                    ? {
                        primary: 2100,
                        win: { primary: 2100, secondary: [1043] },
                        linux: { primary: 2100, secondary: [1043] },
                        weight: 100,
                      }
                    : void 0,
                  menuOpts: [
                    {
                      menuId: d.eH.MenubarEditMenu,
                      group: '2_ccp',
                      title: n.N(
                        { key: 'miPaste', comment: ['&& denotes a mnemonic'] },
                        '&&Paste'
                      ),
                      order: 3,
                    },
                    {
                      menuId: d.eH.EditorContext,
                      group: u,
                      title: n.N('actions.clipboard.pasteLabel', 'Paste'),
                      when: c.u.writable,
                      order: 3,
                    },
                    {
                      menuId: d.eH.CommandPalette,
                      group: '',
                      title: n.N('actions.clipboard.pasteLabel', 'Paste'),
                      order: 1,
                    },
                  ],
                })
              )
            : void 0;
        class w extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.clipboardCopyWithSyntaxHighlightingAction',
              label: n.N(
                'actions.clipboard.copyWithSyntaxHighlightingLabel',
                'Copy With Syntax Highlighting'
              ),
              alias: 'Copy With Syntax Highlighting',
              precondition: void 0,
              kbOpts: { kbExpr: c.u.textInputFocus, primary: 0, weight: 100 },
            });
          }
          run(e, t) {
            t.hasModel() &&
              ((!t.getOption(26) && t.getSelection().isEmpty()) ||
                ((o.RA.forceCopyWithSyntaxHighlighting = !0),
                t.focus(),
                document.execCommand('copy'),
                (o.RA.forceCopyWithSyntaxHighlighting = !1)));
          }
        }
        function C(e, t) {
          e &&
            (e.addImplementation(1e4, (e, i) => {
              const n = e.get(l.$).getFocusedCodeEditor();
              if (n && n.hasTextFocus()) {
                const e = n.getOption(26),
                  i = n.getSelection();
                return (i && i.isEmpty() && !e) || document.execCommand(t), !0;
              }
              return !1;
            }),
            e.addImplementation(0, (e, i) => (document.execCommand(t), !0)));
        }
        C(b, 'cut'),
          C(v, 'copy'),
          y &&
            (y.addImplementation(1e4, (e, t) => {
              const i = e.get(l.$),
                n = e.get(h.p),
                r = i.getFocusedCodeEditor();
              return (
                !(!r || !r.hasTextFocus()) &&
                !(
                  !document.execCommand('paste') &&
                  s.$L &&
                  ((a = void 0),
                  (c = void 0),
                  (d = void 0),
                  (u = function* () {
                    const e = yield n.readText();
                    if ('' !== e) {
                      const t = o.Nl.INSTANCE.get(e);
                      let i = !1,
                        n = null,
                        s = null;
                      t &&
                        ((i = r.getOption(26) && !!t.isFromEmptySelection),
                        (n =
                          void 0 !== t.multicursorText
                            ? t.multicursorText
                            : null),
                        (s = t.mode)),
                        r.trigger('keyboard', 'paste', {
                          text: e,
                          pasteOnNewLine: i,
                          multicursorText: n,
                          mode: s,
                        });
                    }
                  }),
                  new (d || (d = Promise))(function (e, t) {
                    function i(e) {
                      try {
                        r(u.next(e));
                      } catch (e) {
                        t(e);
                      }
                    }
                    function n(e) {
                      try {
                        r(u.throw(e));
                      } catch (e) {
                        t(e);
                      }
                    }
                    function r(t) {
                      var r;
                      t.done
                        ? e(t.value)
                        : ((r = t.value),
                          r instanceof d
                            ? r
                            : new d(function (e) {
                                e(r);
                              })).then(i, n);
                    }
                    r((u = u.apply(a, c || [])).next());
                  }),
                  0)
                )
              );
              var a, c, d, u;
            }),
            y.addImplementation(
              0,
              (e, t) => (document.execCommand('paste'), !0)
            )),
          p && (0, a.Qr)(w);
      },
      31907: (e, t, i) => {
        'use strict';
        i.d(t, {
          RB: () => _,
          Bb: () => b,
          MN: () => v,
          uH: () => y,
          TM: () => w,
          aI: () => k,
        });
        var n = i(9488),
          r = i(71050),
          s = i(17301),
          o = i(5976),
          a = i(70666),
          l = i(39925),
          c = i(16830),
          d = i(24314),
          h = i(3860),
          u = i(43775),
          g = i(51200),
          f = i(89532),
          p = i(90535),
          m = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        const _ = 'editor.action.codeAction',
          b = 'editor.action.refactor',
          v = 'editor.action.sourceAction',
          y = 'editor.action.organizeImports',
          w = 'editor.action.fixAll';
        class C extends o.JT {
          constructor(e, t, i) {
            super(),
              (this.documentation = t),
              this._register(i),
              (this.allActions = (0, n.qt)([...e], C.codeActionsComparator)),
              (this.validActions = this.allActions.filter((e) => !e.disabled));
          }
          static codeActionsComparator(e, t) {
            return e.isPreferred && !t.isPreferred
              ? -1
              : !e.isPreferred && t.isPreferred
              ? 1
              : (0, n.Of)(e.diagnostics)
              ? (0, n.Of)(t.diagnostics)
                ? e.diagnostics[0].message.localeCompare(
                    t.diagnostics[0].message
                  )
                : -1
              : (0, n.Of)(t.diagnostics)
              ? 1
              : 0;
          }
          get hasAutoFix() {
            return this.validActions.some(
              (e) =>
                !!e.kind &&
                f.yN.QuickFix.contains(new f.yN(e.kind)) &&
                !!e.isPreferred
            );
          }
        }
        const S = { actions: [], documentation: void 0 };
        function k(e, t, i, r, a) {
          var c;
          const d = i.filter || {},
            h = {
              only: null === (c = d.include) || void 0 === c ? void 0 : c.value,
              trigger: i.type,
            },
            g = new l.YQ(e, a),
            p = (function (e, t) {
              return u.H9.all(e).filter(
                (e) =>
                  !e.providedCodeActionKinds ||
                  e.providedCodeActionKinds.some((e) =>
                    (0, f.EU)(t, new f.yN(e))
                  )
              );
            })(e, d),
            _ = new o.SL(),
            b = p.map((i) =>
              m(this, void 0, void 0, function* () {
                try {
                  r.report(i);
                  const n = yield i.provideCodeActions(e, t, h, g.token);
                  if ((n && _.add(n), g.token.isCancellationRequested))
                    return S;
                  const s = ((null == n ? void 0 : n.actions) || []).filter(
                    (e) => e && (0, f.Yl)(d, e)
                  );
                  return {
                    actions: s,
                    documentation: (function (e, t, i) {
                      if (!e.documentation) return;
                      const n = e.documentation.map((e) => ({
                        kind: new f.yN(e.kind),
                        command: e.command,
                      }));
                      if (i) {
                        let e;
                        for (const t of n)
                          t.kind.contains(i) &&
                            (e ? e.kind.contains(t.kind) && (e = t) : (e = t));
                        if (e) return null == e ? void 0 : e.command;
                      }
                      for (const e of t)
                        if (e.kind)
                          for (const t of n)
                            if (t.kind.contains(new f.yN(e.kind)))
                              return t.command;
                    })(i, s, d.include),
                  };
                } catch (e) {
                  if ((0, s.VV)(e)) throw e;
                  return (0, s.Cp)(e), S;
                }
              })
            ),
            v = u.H9.onDidChange(() => {
              const t = u.H9.all(e);
              (0, n.fS)(t, p) || g.cancel();
            });
          return Promise.all(b)
            .then((e) => {
              const t = (0, n.xH)(e.map((e) => e.actions)),
                i = (0, n.kX)(e.map((e) => e.documentation));
              return new C(t, i, _);
            })
            .finally(() => {
              v.dispose(), g.dispose();
            });
        }
        (0, c._h)('_executeCodeActionProvider', function (e, t) {
          return m(this, void 0, void 0, function* () {
            const { resource: i, rangeOrSelection: n, kind: o } = t;
            if (!(i instanceof a.o)) throw (0, s.b1)();
            const l = e.get(g.q).getModel(i);
            if (!l) throw (0, s.b1)();
            const c = h.Y.isISelection(n)
              ? h.Y.liftSelection(n)
              : d.e.isIRange(n)
              ? l.validateRange(n)
              : void 0;
            if (!c) throw (0, s.b1)();
            const u = yield k(
              l,
              c,
              {
                type: 2,
                filter: {
                  includeSourceActions: !0,
                  include: o && o.value ? new f.yN(o.value) : void 0,
                },
              },
              p.E.None,
              r.T.None
            );
            return setTimeout(() => u.dispose(), 100), u.validActions;
          });
        });
      },
      23674: (e, t, i) => {
        'use strict';
        i.d(t, {
          S5: () => de,
          dW: () => se,
          Hv: () => ce,
          o$: () => le,
          E7: () => re,
          pY: () => te,
          Eb: () => oe,
          VQ: () => ae,
        });
        class n {
          constructor(e) {
            (this.executor = e), (this._didRun = !1);
          }
          getValue() {
            if (!this._didRun)
              try {
                this._value = this.executor();
              } catch (e) {
                this._error = e;
              } finally {
                this._didRun = !0;
              }
            if (this._error) throw this._error;
            return this._value;
          }
          get rawValue() {
            return this._value;
          }
        }
        var r = i(5976),
          s = i(97295),
          o = i(16830),
          a = i(66007),
          l = i(29102),
          c = i(31907),
          d = i(17301),
          h = i(82276),
          u = i(72065),
          g = i(65321),
          f = i(74741),
          p = i(50187),
          m = i(43775),
          _ = i(89532),
          b = i(5606),
          v = i(91847),
          y = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class w extends f.aU {
          constructor(e, t) {
            super(
              e.command ? e.command.id : e.title,
              e.title,
              void 0,
              !e.disabled,
              t
            ),
              (this.action = e);
          }
        }
        let C = class extends r.JT {
          constructor(e, t, i, n) {
            super(),
              (this._editor = e),
              (this._delegate = t),
              (this._contextMenuService = i),
              (this._visible = !1),
              (this._showingActions = this._register(new r.XK())),
              (this._keybindingResolver = new S({
                getKeybindings: () => n.getKeybindings(),
              }));
          }
          get isVisible() {
            return this._visible;
          }
          show(e, t, i, n) {
            return (
              (r = this),
              (s = void 0),
              (a = function* () {
                const r = n.includeDisabledActions
                  ? t.allActions
                  : t.validActions;
                if (!r.length) return void (this._visible = !1);
                if (!this._editor.getDomNode())
                  throw ((this._visible = !1), (0, d.F0)());
                (this._visible = !0), (this._showingActions.value = t);
                const s = this.getMenuActions(e, r, t.documentation),
                  o = p.L.isIPosition(i)
                    ? this._toCoords(i)
                    : i || { x: 0, y: 0 },
                  a = this._keybindingResolver.getResolver();
                this._contextMenuService.showContextMenu({
                  domForShadowRoot: this._editor.getDomNode(),
                  getAnchor: () => o,
                  getActions: () => s,
                  onHide: () => {
                    (this._visible = !1), this._editor.focus();
                  },
                  autoSelectFirstItem: !0,
                  getKeyBinding: (e) => (e instanceof w ? a(e.action) : void 0),
                });
              }),
              new ((o = void 0) || (o = Promise))(function (e, t) {
                function i(e) {
                  try {
                    l(a.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function n(e) {
                  try {
                    l(a.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var r;
                  t.done
                    ? e(t.value)
                    : ((r = t.value),
                      r instanceof o
                        ? r
                        : new o(function (e) {
                            e(r);
                          })).then(i, n);
                }
                l((a = a.apply(r, s || [])).next());
              })
            );
            var r, s, o, a;
          }
          getMenuActions(e, t, i) {
            var n, r;
            const s = (e) =>
                new w(e, () => this._delegate.onSelectCodeAction(e)),
              o = t.map(s),
              a = [...i],
              l = this._editor.getModel();
            if (l && o.length)
              for (const i of m.H9.all(l))
                i._getAdditionalMenuItems &&
                  a.push(
                    ...i._getAdditionalMenuItems(
                      {
                        trigger: e.type,
                        only:
                          null ===
                            (r =
                              null === (n = e.filter) || void 0 === n
                                ? void 0
                                : n.include) || void 0 === r
                            ? void 0
                            : r.value,
                      },
                      t
                    )
                  );
            return (
              a.length &&
                o.push(
                  new f.Z0(),
                  ...a.map((e) => s({ title: e.title, command: e }))
                ),
              o
            );
          }
          _toCoords(e) {
            if (!this._editor.hasModel()) return { x: 0, y: 0 };
            this._editor.revealPosition(e, 1), this._editor.render();
            const t = this._editor.getScrolledVisiblePosition(e),
              i = (0, g.i)(this._editor.getDomNode());
            return { x: i.left + t.left, y: i.top + t.top + t.height };
          }
        };
        C = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([y(2, b.i), y(3, v.d)], C);
        class S {
          constructor(e) {
            this._keybindingProvider = e;
          }
          getResolver() {
            const e = new n(() =>
              this._keybindingProvider
                .getKeybindings()
                .filter((e) => S.codeActionCommands.indexOf(e.command) >= 0)
                .filter((e) => e.resolvedKeybinding)
                .map((e) => {
                  let t = e.commandArgs;
                  return (
                    e.command === c.uH
                      ? (t = { kind: _.yN.SourceOrganizeImports.value })
                      : e.command === c.TM &&
                        (t = { kind: _.yN.SourceFixAll.value }),
                    Object.assign(
                      { resolvedKeybinding: e.resolvedKeybinding },
                      _.wZ.fromUser(t, { kind: _.yN.None, apply: 'never' })
                    )
                  );
                })
            );
            return (t) => {
              if (t.kind) {
                const i = this.bestKeybindingForCodeAction(t, e.getValue());
                return null == i ? void 0 : i.resolvedKeybinding;
              }
            };
          }
          bestKeybindingForCodeAction(e, t) {
            if (!e.kind) return;
            const i = new _.yN(e.kind);
            return t
              .filter((e) => e.kind.contains(i))
              .filter((t) => !t.preferred || e.isPreferred)
              .reduceRight(
                (e, t) => (e ? (e.kind.contains(t.kind) ? t : e) : t),
                void 0
              );
          }
        }
        S.codeActionCommands = [c.Bb, c.RB, c.MN, c.uH, c.TM];
        var k,
          x = i(57974),
          L = i(4669),
          M = i(3411),
          D = i(63580),
          N = i(97781),
          E = i(73910),
          T = i(10553),
          I = i(73046);
        !(function (e) {
          (e.Hidden = { type: 0 }),
            (e.Showing = class {
              constructor(e, t, i, n) {
                (this.actions = e),
                  (this.trigger = t),
                  (this.editorPosition = i),
                  (this.widgetPosition = n),
                  (this.type = 1);
              }
            });
        })(k || (k = {}));
        let O = class e extends r.JT {
          constructor(e, t, i, n) {
            super(),
              (this._editor = e),
              (this._quickFixActionId = t),
              (this._preferredFixActionId = i),
              (this._keybindingService = n),
              (this._onClick = this._register(new L.Q5())),
              (this.onClick = this._onClick.event),
              (this._state = k.Hidden),
              (this._domNode = document.createElement('div')),
              (this._domNode.className = I.lA.lightBulb.classNames),
              this._editor.addContentWidget(this),
              this._register(
                this._editor.onDidChangeModelContent((e) => {
                  const t = this._editor.getModel();
                  (1 !== this.state.type ||
                    !t ||
                    this.state.editorPosition.lineNumber >= t.getLineCount()) &&
                    this.hide();
                })
              ),
              T.o.ignoreTarget(this._domNode),
              this._register(
                g.Gw(this._domNode, (e) => {
                  if (1 !== this.state.type) return;
                  this._editor.focus(), e.preventDefault();
                  const { top: t, height: i } = g.i(this._domNode),
                    n = this._editor.getOption(51);
                  let r = Math.floor(n / 3);
                  null !== this.state.widgetPosition.position &&
                    this.state.widgetPosition.position.lineNumber <
                      this.state.editorPosition.lineNumber &&
                    (r += n),
                    this._onClick.fire({
                      x: e.posx,
                      y: t + i + r,
                      actions: this.state.actions,
                      trigger: this.state.trigger,
                    });
                })
              ),
              this._register(
                g.nm(this._domNode, 'mouseenter', (e) => {
                  if (1 != (1 & e.buttons)) return;
                  this.hide();
                  const t = new x.Z();
                  t.startMonitoring(
                    e.target,
                    e.buttons,
                    x.e,
                    () => {},
                    () => {
                      t.dispose();
                    }
                  );
                })
              ),
              this._register(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(49) &&
                    !this._editor.getOption(49).enabled &&
                    this.hide();
                })
              ),
              this._updateLightBulbTitleAndIcon(),
              this._register(
                this._keybindingService.onDidUpdateKeybindings(
                  this._updateLightBulbTitleAndIcon,
                  this
                )
              );
          }
          dispose() {
            super.dispose(), this._editor.removeContentWidget(this);
          }
          getId() {
            return 'LightBulbWidget';
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return 1 === this._state.type ? this._state.widgetPosition : null;
          }
          update(t, i, n) {
            if (t.validActions.length <= 0) return this.hide();
            const r = this._editor.getOptions();
            if (!r.get(49).enabled) return this.hide();
            const s = this._editor.getModel();
            if (!s) return this.hide();
            const { lineNumber: o, column: a } = s.validatePosition(n),
              l = s.getOptions().tabSize,
              c = r.get(36),
              d = s.getLineContent(o),
              h = M.yO.computeIndentLevel(d, l),
              u = (e) =>
                e > 2 &&
                this._editor.getTopForLineNumber(e) ===
                  this._editor.getTopForLineNumber(e - 1);
            let g = o;
            if (!(c.spaceWidth * h > 22))
              if (o > 1 && !u(o - 1)) g -= 1;
              else if (u(o + 1)) {
                if (a * c.spaceWidth < 22) return this.hide();
              } else g += 1;
            (this.state = new k.Showing(t, i, n, {
              position: { lineNumber: g, column: 1 },
              preference: e._posPref,
            })),
              this._editor.layoutContentWidget(this);
          }
          hide() {
            (this.state = k.Hidden), this._editor.layoutContentWidget(this);
          }
          get state() {
            return this._state;
          }
          set state(e) {
            (this._state = e), this._updateLightBulbTitleAndIcon();
          }
          _updateLightBulbTitleAndIcon() {
            if (1 === this.state.type && this.state.actions.hasAutoFix) {
              g.GK(this._domNode, I.lA.lightBulb.classNames),
                g.PT(this._domNode, I.lA.lightbulbAutofix.classNames);
              const e = this._keybindingService.lookupKeybinding(
                this._preferredFixActionId
              );
              if (e)
                return void (this.title = D.N(
                  'prefferedQuickFixWithKb',
                  'Show Fixes. Preferred Fix Available ({0})',
                  e.getLabel()
                ));
            }
            g.GK(this._domNode, I.lA.lightbulbAutofix.classNames),
              g.PT(this._domNode, I.lA.lightBulb.classNames);
            const e = this._keybindingService.lookupKeybinding(
              this._quickFixActionId
            );
            this.title = e
              ? D.N('quickFixWithKb', 'Show Fixes ({0})', e.getLabel())
              : D.N('quickFix', 'Show Fixes');
          }
          set title(e) {
            this._domNode.title = e;
          }
        };
        var A, R;
        (O._posPref = [0]),
          (O = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((A = 3),
              (R = v.d),
              function (e, t) {
                R(e, t, A);
              }),
            ],
            O
          )),
          (0, N.Ic)((e, t) => {
            const i = e.getColor(E.Fu);
            i &&
              t.addRule(
                `\n\t\t.monaco-editor .contentWidgets ${I.lA.lightBulb.cssSelector} {\n\t\t\tcolor: ${i};\n\t\t}`
              );
            const n = e.getColor(E.sK);
            n &&
              t.addRule(
                `\n\t\t.monaco-editor .contentWidgets ${I.lA.lightbulbAutofix.cssSelector} {\n\t\t\tcolor: ${n};\n\t\t}`
              );
          });
        var P = function (e, t, i, n) {
          return new (i || (i = Promise))(function (r, s) {
            function o(e) {
              try {
                l(n.next(e));
              } catch (e) {
                s(e);
              }
            }
            function a(e) {
              try {
                l(n.throw(e));
              } catch (e) {
                s(e);
              }
            }
            function l(e) {
              var t;
              e.done
                ? r(e.value)
                : ((t = e.value),
                  t instanceof i
                    ? t
                    : new i(function (e) {
                        e(t);
                      })).then(o, a);
            }
            l((n = n.apply(e, t || [])).next());
          });
        };
        let F = class extends r.JT {
          constructor(e, t, i, s, o) {
            super(),
              (this._editor = e),
              (this.delegate = s),
              (this._activeCodeActions = this._register(new r.XK())),
              (this._codeActionWidget = new n(() =>
                this._register(
                  o.createInstance(C, this._editor, {
                    onSelectCodeAction: (e) =>
                      P(this, void 0, void 0, function* () {
                        this.delegate.applyCodeAction(e, !0);
                      }),
                  })
                )
              )),
              (this._lightBulbWidget = new n(() => {
                const e = this._register(
                  o.createInstance(O, this._editor, t, i)
                );
                return (
                  this._register(
                    e.onClick((e) =>
                      this.showCodeActionList(e.trigger, e.actions, e, {
                        includeDisabledActions: !1,
                      })
                    )
                  ),
                  e
                );
              }));
          }
          update(e) {
            var t, i, n;
            return P(this, void 0, void 0, function* () {
              if (1 !== e.type)
                return void (
                  null === (t = this._lightBulbWidget.rawValue) ||
                  void 0 === t ||
                  t.hide()
                );
              let r;
              try {
                r = yield e.actions;
              } catch (e) {
                return void (0, d.dL)(e);
              }
              if (
                (this._lightBulbWidget
                  .getValue()
                  .update(r, e.trigger, e.position),
                2 === e.trigger.type)
              ) {
                if (
                  null === (i = e.trigger.filter) || void 0 === i
                    ? void 0
                    : i.include
                ) {
                  const t = this.tryGetValidActionToApply(e.trigger, r);
                  if (t) {
                    try {
                      yield this.delegate.applyCodeAction(t, !1);
                    } finally {
                      r.dispose();
                    }
                    return;
                  }
                  if (e.trigger.context) {
                    const t = this.getInvalidActionThatWouldHaveBeenApplied(
                      e.trigger,
                      r
                    );
                    if (t && t.disabled)
                      return (
                        h.O.get(this._editor).showMessage(
                          t.disabled,
                          e.trigger.context.position
                        ),
                        void r.dispose()
                      );
                  }
                }
                const t = !!(null === (n = e.trigger.filter) || void 0 === n
                  ? void 0
                  : n.include);
                if (
                  e.trigger.context &&
                  (!r.allActions.length || (!t && !r.validActions.length))
                )
                  return (
                    h.O.get(this._editor).showMessage(
                      e.trigger.context.notAvailableMessage,
                      e.trigger.context.position
                    ),
                    (this._activeCodeActions.value = r),
                    void r.dispose()
                  );
                (this._activeCodeActions.value = r),
                  this._codeActionWidget
                    .getValue()
                    .show(e.trigger, r, e.position, {
                      includeDisabledActions: t,
                    });
              } else this._codeActionWidget.getValue().isVisible ? r.dispose() : (this._activeCodeActions.value = r);
            });
          }
          getInvalidActionThatWouldHaveBeenApplied(e, t) {
            if (t.allActions.length)
              return ('first' === e.autoApply && 0 === t.validActions.length) ||
                ('ifSingle' === e.autoApply && 1 === t.allActions.length)
                ? t.allActions.find((e) => e.disabled)
                : void 0;
          }
          tryGetValidActionToApply(e, t) {
            if (t.validActions.length)
              return ('first' === e.autoApply && t.validActions.length > 0) ||
                ('ifSingle' === e.autoApply && 1 === t.validActions.length)
                ? t.validActions[0]
                : void 0;
          }
          showCodeActionList(e, t, i, n) {
            return P(this, void 0, void 0, function* () {
              this._codeActionWidget.getValue().show(e, t, i, n);
            });
          }
        };
        F = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            (function (e, t) {
              return function (i, n) {
                t(i, n, e);
              };
            })(4, u.TG),
          ],
          F
        );
        var B = i(94565),
          W = i(38819),
          Y = i(98674),
          H = i(59422),
          j = i(90535),
          V = i(10829),
          z = i(15393),
          U = i(24314),
          $ = i(95935);
        const K = new W.uy('supportedCodeAction', '');
        class q extends r.JT {
          constructor(e, t, i, n = 250) {
            super(),
              (this._editor = e),
              (this._markerService = t),
              (this._signalChange = i),
              (this._delay = n),
              (this._autoTriggerTimer = this._register(new z._F())),
              this._register(
                this._markerService.onMarkerChanged((e) =>
                  this._onMarkerChanges(e)
                )
              ),
              this._register(
                this._editor.onDidChangeCursorPosition(() =>
                  this._onCursorChange()
                )
              );
          }
          trigger(e) {
            const t = this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);
            return this._createEventAndSignalChange(e, t);
          }
          _onMarkerChanges(e) {
            const t = this._editor.getModel();
            t &&
              e.some((e) => (0, $.Xy)(e, t.uri)) &&
              this._autoTriggerTimer.cancelAndSet(() => {
                this.trigger({ type: 1 });
              }, this._delay);
          }
          _onCursorChange() {
            this._autoTriggerTimer.cancelAndSet(() => {
              this.trigger({ type: 1 });
            }, this._delay);
          }
          _getRangeOfMarker(e) {
            const t = this._editor.getModel();
            if (t)
              for (const i of this._markerService.read({ resource: t.uri })) {
                const n = t.validateRange(i);
                if (U.e.intersectRanges(n, e)) return U.e.lift(n);
              }
          }
          _getRangeOfSelectionUnlessWhitespaceEnclosed(e) {
            if (!this._editor.hasModel()) return;
            const t = this._editor.getModel(),
              i = this._editor.getSelection();
            if (i.isEmpty() && 1 === e.type) {
              const { lineNumber: e, column: n } = i.getPosition(),
                r = t.getLineContent(e);
              if (0 === r.length) return;
              if (1 === n) {
                if (/\s/.test(r[0])) return;
              } else if (n === t.getLineMaxColumn(e)) {
                if (/\s/.test(r[r.length - 1])) return;
              } else if (/\s/.test(r[n - 2]) && /\s/.test(r[n - 1])) return;
            }
            return i;
          }
          _createEventAndSignalChange(e, t) {
            const i = this._editor.getModel();
            if (!t || !i) return void this._signalChange(void 0);
            const n = this._getRangeOfMarker(t),
              r = n ? n.getStartPosition() : t.getStartPosition(),
              s = { trigger: e, selection: t, position: r };
            return this._signalChange(s), s;
          }
        }
        var G;
        !(function (e) {
          (e.Empty = { type: 0 }),
            (e.Triggered = class {
              constructor(e, t, i, n) {
                (this.trigger = e),
                  (this.rangeOrSelection = t),
                  (this.position = i),
                  (this.actions = n),
                  (this.type = 1);
              }
            });
        })(G || (G = {}));
        class Z extends r.JT {
          constructor(e, t, i, n) {
            super(),
              (this._editor = e),
              (this._markerService = t),
              (this._progressService = n),
              (this._codeActionOracle = this._register(new r.XK())),
              (this._state = G.Empty),
              (this._onDidChangeState = this._register(new L.Q5())),
              (this.onDidChangeState = this._onDidChangeState.event),
              (this._supportedCodeActions = K.bindTo(i)),
              this._register(
                this._editor.onDidChangeModel(() => this._update())
              ),
              this._register(
                this._editor.onDidChangeModelLanguage(() => this._update())
              ),
              this._register(m.H9.onDidChange(() => this._update())),
              this._update();
          }
          dispose() {
            super.dispose(), this.setState(G.Empty, !0);
          }
          _update() {
            (this._codeActionOracle.value = void 0), this.setState(G.Empty);
            const e = this._editor.getModel();
            if (e && m.H9.has(e) && !this._editor.getOption(72)) {
              const t = [];
              for (const i of m.H9.all(e))
                Array.isArray(i.providedCodeActionKinds) &&
                  t.push(...i.providedCodeActionKinds);
              this._supportedCodeActions.set(t.join(' ')),
                (this._codeActionOracle.value = new q(
                  this._editor,
                  this._markerService,
                  (t) => {
                    var i;
                    if (!t) return void this.setState(G.Empty);
                    const n = (0, z.PG)((i) =>
                      (0, c.aI)(e, t.selection, t.trigger, j.E.None, i)
                    );
                    2 === t.trigger.type &&
                      (null === (i = this._progressService) ||
                        void 0 === i ||
                        i.showWhile(n, 250)),
                      this.setState(
                        new G.Triggered(t.trigger, t.selection, t.position, n)
                      );
                  },
                  void 0
                )),
                this._codeActionOracle.value.trigger({ type: 1 });
            } else this._supportedCodeActions.reset();
          }
          trigger(e) {
            this._codeActionOracle.value &&
              this._codeActionOracle.value.trigger(e);
          }
          setState(e, t) {
            e !== this._state &&
              (1 === this._state.type && this._state.actions.cancel(),
              (this._state = e),
              t || this._onDidChangeState.fire(e));
          }
        }
        var J = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          Q = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function X(e) {
          return W.Ao.regex(
            K.keys()[0],
            new RegExp('(\\s|^)' + (0, s.ec)(e.value) + '\\b')
          );
        }
        const ee = {
          type: 'object',
          defaultSnippets: [{ body: { kind: '' } }],
          properties: {
            kind: {
              type: 'string',
              description: D.N(
                'args.schema.kind',
                'Kind of the code action to run.'
              ),
            },
            apply: {
              type: 'string',
              description: D.N(
                'args.schema.apply',
                'Controls when the returned actions are applied.'
              ),
              default: 'ifSingle',
              enum: ['first', 'ifSingle', 'never'],
              enumDescriptions: [
                D.N(
                  'args.schema.apply.first',
                  'Always apply the first returned code action.'
                ),
                D.N(
                  'args.schema.apply.ifSingle',
                  'Apply the first returned code action if it is the only one.'
                ),
                D.N(
                  'args.schema.apply.never',
                  'Do not apply the returned code actions.'
                ),
              ],
            },
            preferred: {
              type: 'boolean',
              default: !1,
              description: D.N(
                'args.schema.preferred',
                'Controls if only preferred code actions should be returned.'
              ),
            },
          },
        };
        let te = class e extends r.JT {
          constructor(e, t, i, r, s) {
            super(),
              (this._instantiationService = s),
              (this._editor = e),
              (this._model = this._register(new Z(this._editor, t, i, r))),
              this._register(
                this._model.onDidChangeState((e) => this.update(e))
              ),
              (this._ui = new n(() =>
                this._register(
                  new F(
                    e,
                    re.Id,
                    de.Id,
                    {
                      applyCodeAction: (e, t) =>
                        Q(this, void 0, void 0, function* () {
                          try {
                            yield this._applyCodeAction(e);
                          } finally {
                            t && this._trigger({ type: 1, filter: {} });
                          }
                        }),
                    },
                    this._instantiationService
                  )
                )
              ));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          update(e) {
            this._ui.getValue().update(e);
          }
          showCodeActions(e, t, i) {
            return this._ui
              .getValue()
              .showCodeActionList(e, t, i, { includeDisabledActions: !1 });
          }
          manualTriggerAtCurrentPosition(e, t, i) {
            if (!this._editor.hasModel()) return;
            h.O.get(this._editor).closeMessage();
            const n = this._editor.getPosition();
            this._trigger({
              type: 2,
              filter: t,
              autoApply: i,
              context: { notAvailableMessage: e, position: n },
            });
          }
          _trigger(e) {
            return this._model.trigger(e);
          }
          _applyCodeAction(e) {
            return this._instantiationService.invokeFunction(
              ie,
              e,
              this._editor
            );
          }
        };
        function ie(e, t, i) {
          return Q(this, void 0, void 0, function* () {
            const n = e.get(a.vu),
              r = e.get(B.H),
              s = e.get(V.b),
              o = e.get(H.lT);
            if (
              (s.publicLog2('codeAction.applyCodeAction', {
                codeActionTitle: t.title,
                codeActionKind: t.kind,
                codeActionIsPreferred: !!t.isPreferred,
              }),
              t.edit &&
                (yield n.apply(a.fo.convert(t.edit), {
                  editor: i,
                  label: t.title,
                })),
              t.command)
            )
              try {
                yield r.executeCommand(
                  t.command.id,
                  ...(t.command.arguments || [])
                );
              } catch (e) {
                const t = (function (e) {
                  return 'string' == typeof e
                    ? e
                    : e instanceof Error && 'string' == typeof e.message
                    ? e.message
                    : void 0;
                })(e);
                o.error(
                  'string' == typeof t
                    ? t
                    : D.N(
                        'applyCodeActionFailed',
                        'An unknown error occurred while applying the code action'
                      )
                );
              }
          });
        }
        function ne(e, t, i, n) {
          if (e.hasModel()) {
            const r = te.get(e);
            r && r.manualTriggerAtCurrentPosition(t, i, n);
          }
        }
        (te.ID = 'editor.contrib.quickFixController'),
          (te = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([J(1, Y.lT), J(2, W.i6), J(3, j.e), J(4, u.TG)], te));
        class re extends o.R6 {
          constructor() {
            super({
              id: re.Id,
              label: D.N('quickfix.trigger.label', 'Quick Fix...'),
              alias: 'Quick Fix...',
              precondition: W.Ao.and(l.u.writable, l.u.hasCodeActionsProvider),
              kbOpts: {
                kbExpr: l.u.editorTextFocus,
                primary: 2132,
                weight: 100,
              },
            });
          }
          run(e, t) {
            return ne(
              t,
              D.N(
                'editor.action.quickFix.noneMessage',
                'No code actions available'
              ),
              void 0,
              void 0
            );
          }
        }
        re.Id = 'editor.action.quickFix';
        class se extends o._l {
          constructor() {
            super({
              id: c.RB,
              precondition: W.Ao.and(l.u.writable, l.u.hasCodeActionsProvider),
              description: {
                description: 'Trigger a code action',
                args: [{ name: 'args', schema: ee }],
              },
            });
          }
          runEditorCommand(e, t, i) {
            const n = _.wZ.fromUser(i, { kind: _.yN.Empty, apply: 'ifSingle' });
            return ne(
              t,
              'string' == typeof (null == i ? void 0 : i.kind)
                ? n.preferred
                  ? D.N(
                      'editor.action.codeAction.noneMessage.preferred.kind',
                      "No preferred code actions for '{0}' available",
                      i.kind
                    )
                  : D.N(
                      'editor.action.codeAction.noneMessage.kind',
                      "No code actions for '{0}' available",
                      i.kind
                    )
                : n.preferred
                ? D.N(
                    'editor.action.codeAction.noneMessage.preferred',
                    'No preferred code actions available'
                  )
                : D.N(
                    'editor.action.codeAction.noneMessage',
                    'No code actions available'
                  ),
              {
                include: n.kind,
                includeSourceActions: !0,
                onlyIncludePreferredActions: n.preferred,
              },
              n.apply
            );
          }
        }
        class oe extends o.R6 {
          constructor() {
            super({
              id: c.Bb,
              label: D.N('refactor.label', 'Refactor...'),
              alias: 'Refactor...',
              precondition: W.Ao.and(l.u.writable, l.u.hasCodeActionsProvider),
              kbOpts: {
                kbExpr: l.u.editorTextFocus,
                primary: 3120,
                mac: { primary: 1328 },
                weight: 100,
              },
              contextMenuOpts: {
                group: '1_modification',
                order: 2,
                when: W.Ao.and(l.u.writable, X(_.yN.Refactor)),
              },
              description: {
                description: 'Refactor...',
                args: [{ name: 'args', schema: ee }],
              },
            });
          }
          run(e, t, i) {
            const n = _.wZ.fromUser(i, { kind: _.yN.Refactor, apply: 'never' });
            return ne(
              t,
              'string' == typeof (null == i ? void 0 : i.kind)
                ? n.preferred
                  ? D.N(
                      'editor.action.refactor.noneMessage.preferred.kind',
                      "No preferred refactorings for '{0}' available",
                      i.kind
                    )
                  : D.N(
                      'editor.action.refactor.noneMessage.kind',
                      "No refactorings for '{0}' available",
                      i.kind
                    )
                : n.preferred
                ? D.N(
                    'editor.action.refactor.noneMessage.preferred',
                    'No preferred refactorings available'
                  )
                : D.N(
                    'editor.action.refactor.noneMessage',
                    'No refactorings available'
                  ),
              {
                include: _.yN.Refactor.contains(n.kind) ? n.kind : _.yN.None,
                onlyIncludePreferredActions: n.preferred,
              },
              n.apply
            );
          }
        }
        class ae extends o.R6 {
          constructor() {
            super({
              id: c.MN,
              label: D.N('source.label', 'Source Action...'),
              alias: 'Source Action...',
              precondition: W.Ao.and(l.u.writable, l.u.hasCodeActionsProvider),
              contextMenuOpts: {
                group: '1_modification',
                order: 2.1,
                when: W.Ao.and(l.u.writable, X(_.yN.Source)),
              },
              description: {
                description: 'Source Action...',
                args: [{ name: 'args', schema: ee }],
              },
            });
          }
          run(e, t, i) {
            const n = _.wZ.fromUser(i, { kind: _.yN.Source, apply: 'never' });
            return ne(
              t,
              'string' == typeof (null == i ? void 0 : i.kind)
                ? n.preferred
                  ? D.N(
                      'editor.action.source.noneMessage.preferred.kind',
                      "No preferred source actions for '{0}' available",
                      i.kind
                    )
                  : D.N(
                      'editor.action.source.noneMessage.kind',
                      "No source actions for '{0}' available",
                      i.kind
                    )
                : n.preferred
                ? D.N(
                    'editor.action.source.noneMessage.preferred',
                    'No preferred source actions available'
                  )
                : D.N(
                    'editor.action.source.noneMessage',
                    'No source actions available'
                  ),
              {
                include: _.yN.Source.contains(n.kind) ? n.kind : _.yN.None,
                includeSourceActions: !0,
                onlyIncludePreferredActions: n.preferred,
              },
              n.apply
            );
          }
        }
        class le extends o.R6 {
          constructor() {
            super({
              id: c.uH,
              label: D.N('organizeImports.label', 'Organize Imports'),
              alias: 'Organize Imports',
              precondition: W.Ao.and(
                l.u.writable,
                X(_.yN.SourceOrganizeImports)
              ),
              kbOpts: {
                kbExpr: l.u.editorTextFocus,
                primary: 1581,
                weight: 100,
              },
            });
          }
          run(e, t) {
            return ne(
              t,
              D.N(
                'editor.action.organize.noneMessage',
                'No organize imports action available'
              ),
              { include: _.yN.SourceOrganizeImports, includeSourceActions: !0 },
              'ifSingle'
            );
          }
        }
        class ce extends o.R6 {
          constructor() {
            super({
              id: c.TM,
              label: D.N('fixAll.label', 'Fix All'),
              alias: 'Fix All',
              precondition: W.Ao.and(l.u.writable, X(_.yN.SourceFixAll)),
            });
          }
          run(e, t) {
            return ne(
              t,
              D.N('fixAll.noneMessage', 'No fix all action available'),
              { include: _.yN.SourceFixAll, includeSourceActions: !0 },
              'ifSingle'
            );
          }
        }
        class de extends o.R6 {
          constructor() {
            super({
              id: de.Id,
              label: D.N('autoFix.label', 'Auto Fix...'),
              alias: 'Auto Fix...',
              precondition: W.Ao.and(l.u.writable, X(_.yN.QuickFix)),
              kbOpts: {
                kbExpr: l.u.editorTextFocus,
                primary: 1620,
                mac: { primary: 2644 },
                weight: 100,
              },
            });
          }
          run(e, t) {
            return ne(
              t,
              D.N(
                'editor.action.autoFix.noneMessage',
                'No auto fixes available'
              ),
              { include: _.yN.QuickFix, onlyIncludePreferredActions: !0 },
              'ifSingle'
            );
          }
        }
        de.Id = 'editor.action.autoFix';
      },
      9093: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(16830),
          r = i(23674);
        (0, n._K)(r.pY.ID, r.pY),
          (0, n.Qr)(r.E7),
          (0, n.Qr)(r.Eb),
          (0, n.Qr)(r.VQ),
          (0, n.Qr)(r.o$),
          (0, n.Qr)(r.S5),
          (0, n.Qr)(r.Hv),
          (0, n.fK)(new r.dW());
      },
      89532: (e, t, i) => {
        'use strict';
        i.d(t, { yN: () => r, EU: () => s, Yl: () => o, wZ: () => l });
        var n = i(97295);
        class r {
          constructor(e) {
            this.value = e;
          }
          equals(e) {
            return this.value === e.value;
          }
          contains(e) {
            return (
              this.equals(e) ||
              '' === this.value ||
              (0, n.Ny)(e.value, this.value + r.sep)
            );
          }
          intersects(e) {
            return this.contains(e) || e.contains(this);
          }
          append(e) {
            return new r(this.value + r.sep + e);
          }
        }
        function s(e, t) {
          return !(
            (e.include && !e.include.intersects(t)) ||
            (e.excludes && e.excludes.some((i) => a(t, i, e.include))) ||
            (!e.includeSourceActions && r.Source.contains(t))
          );
        }
        function o(e, t) {
          const i = t.kind ? new r(t.kind) : void 0;
          return !(
            !(!e.include || (i && e.include.contains(i))) ||
            (e.excludes && i && e.excludes.some((t) => a(i, t, e.include))) ||
            (!e.includeSourceActions && i && r.Source.contains(i)) ||
            (e.onlyIncludePreferredActions && !t.isPreferred)
          );
        }
        function a(e, t, i) {
          return !(!t.contains(e) || (i && t.contains(i)));
        }
        (r.sep = '.'),
          (r.None = new r('@@none@@')),
          (r.Empty = new r('')),
          (r.QuickFix = new r('quickfix')),
          (r.Refactor = new r('refactor')),
          (r.Source = new r('source')),
          (r.SourceOrganizeImports = r.Source.append('organizeImports')),
          (r.SourceFixAll = r.Source.append('fixAll'));
        class l {
          constructor(e, t, i) {
            (this.kind = e), (this.apply = t), (this.preferred = i);
          }
          static fromUser(e, t) {
            return e && 'object' == typeof e
              ? new l(
                  l.getKindFromUser(e, t.kind),
                  l.getApplyFromUser(e, t.apply),
                  l.getPreferredUser(e)
                )
              : new l(t.kind, t.apply, !1);
          }
          static getApplyFromUser(e, t) {
            switch ('string' == typeof e.apply ? e.apply.toLowerCase() : '') {
              case 'first':
                return 'first';
              case 'never':
                return 'never';
              case 'ifsingle':
                return 'ifSingle';
              default:
                return t;
            }
          }
          static getKindFromUser(e, t) {
            return 'string' == typeof e.kind ? new r(e.kind) : t;
          }
          static getPreferredUser(e) {
            return 'boolean' == typeof e.preferred && e.preferred;
          }
        }
      },
      53832: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { CodeLensContribution: () => z });
        var n = i(15393),
          r = i(17301),
          s = i(5976),
          o = i(39925),
          a = i(16830),
          l = i(43775),
          c = i(9488),
          d = i(71050),
          h = i(70666),
          u = i(51200);
        class g {
          constructor() {
            (this.lenses = []), (this._disposables = new s.SL());
          }
          dispose() {
            this._disposables.dispose();
          }
          add(e, t) {
            this._disposables.add(e);
            for (const i of e.lenses)
              this.lenses.push({ symbol: i, provider: t });
          }
        }
        function f(e, t) {
          const i = l.He.ordered(e),
            n = new Map(),
            s = new g(),
            o = i.map(
              (i, o) => (
                n.set(i, o),
                Promise.resolve(i.provideCodeLenses(e, t))
                  .then((e) => e && s.add(e, i))
                  .catch(r.Cp)
              )
            );
          return Promise.all(o).then(
            () => (
              (s.lenses = (0, c.qt)(s.lenses, (e, t) =>
                e.symbol.range.startLineNumber < t.symbol.range.startLineNumber
                  ? -1
                  : e.symbol.range.startLineNumber >
                    t.symbol.range.startLineNumber
                  ? 1
                  : n.get(e.provider) < n.get(t.provider)
                  ? -1
                  : n.get(e.provider) > n.get(t.provider)
                  ? 1
                  : e.symbol.range.startColumn < t.symbol.range.startColumn
                  ? -1
                  : e.symbol.range.startColumn > t.symbol.range.startColumn
                  ? 1
                  : 0
              )),
              s
            )
          );
        }
        (0, a._h)('_executeCodeLensProvider', function (e, t) {
          let { resource: i, itemResolveCount: n } = t;
          if (!(i instanceof h.o)) throw (0, r.b1)();
          const o = e.get(u.q).getModel(i);
          if (!o) throw (0, r.b1)();
          const a = [],
            l = new s.SL();
          return f(o, d.T.None)
            .then((e) => {
              l.add(e);
              let t = [];
              for (const i of e.lenses)
                void 0 === n || Boolean(i.symbol.command)
                  ? a.push(i.symbol)
                  : n-- > 0 &&
                    i.provider.resolveCodeLens &&
                    t.push(
                      Promise.resolve(
                        i.provider.resolveCodeLens(o, i.symbol, d.T.None)
                      ).then((e) => a.push(e || i.symbol))
                    );
              return Promise.all(t);
            })
            .then(() => a)
            .finally(() => {
              setTimeout(() => l.dispose(), 100);
            });
        });
        var p = i(73046),
          m = i(97295),
          _ = i(24314),
          b = i(3411),
          v = i(27869),
          y = i(73910),
          w = i(97781);
        class C {
          constructor(e, t) {
            (this.afterLineNumber = e),
              (this._onHeight = t),
              (this.heightInLines = 1),
              (this.suppressMouseDown = !0),
              (this.domNode = document.createElement('div'));
          }
          onComputedHeight(e) {
            void 0 === this._lastHeight
              ? (this._lastHeight = e)
              : this._lastHeight !== e &&
                ((this._lastHeight = e), this._onHeight());
          }
        }
        class S {
          constructor(e, t, i) {
            (this.allowEditorOverflow = !1),
              (this.suppressMouseDown = !0),
              (this._commands = new Map()),
              (this._isEmpty = !0),
              (this._editor = e),
              (this._id = 'codelens.widget-' + S._idPool++),
              this.updatePosition(i),
              (this._domNode = document.createElement('span')),
              (this._domNode.className = `codelens-decoration ${t}`);
          }
          withCommands(e, t) {
            this._commands.clear();
            let i = '',
              n = !1;
            for (let t = 0; t < e.length; t++) {
              const r = e[t];
              if (r && ((n = !0), r.command)) {
                const n = (0, p.Mi)((0, m.YU)(r.command.title));
                r.command.id
                  ? ((i += `<a id=${t}>${n}</a>`),
                    this._commands.set(String(t), r.command))
                  : (i += `<span>${n}</span>`),
                  t + 1 < e.length && (i += '<span>&#160;|&#160;</span>');
              }
            }
            n
              ? (i || (i = ' '),
                (this._domNode.innerHTML = i),
                this._isEmpty && t && this._domNode.classList.add('fadein'),
                (this._isEmpty = !1))
              : (this._domNode.innerHTML = '<span>no commands</span>');
          }
          getCommand(e) {
            return e.parentElement === this._domNode
              ? this._commands.get(e.id)
              : void 0;
          }
          getId() {
            return this._id;
          }
          getDomNode() {
            return this._domNode;
          }
          updatePosition(e) {
            const t = this._editor
              .getModel()
              .getLineFirstNonWhitespaceColumn(e);
            this._widgetPosition = {
              position: { lineNumber: e, column: t },
              preference: [1],
            };
          }
          getPosition() {
            return this._widgetPosition || null;
          }
        }
        S._idPool = 0;
        class k {
          constructor() {
            (this._removeDecorations = []),
              (this._addDecorations = []),
              (this._addDecorationsCallbacks = []);
          }
          addDecoration(e, t) {
            this._addDecorations.push(e), this._addDecorationsCallbacks.push(t);
          }
          removeDecoration(e) {
            this._removeDecorations.push(e);
          }
          commit(e) {
            let t = e.deltaDecorations(
              this._removeDecorations,
              this._addDecorations
            );
            for (let e = 0, i = t.length; e < i; e++)
              this._addDecorationsCallbacks[e](t[e]);
          }
        }
        class x {
          constructor(e, t, i, n, r, s) {
            let o;
            (this._isDisposed = !1),
              (this._editor = t),
              (this._className = i),
              (this._data = e),
              (this._decorationIds = []);
            let a = [];
            this._data.forEach((e, t) => {
              e.symbol.command && a.push(e.symbol),
                n.addDecoration(
                  { range: e.symbol.range, options: b.qx.EMPTY },
                  (e) => (this._decorationIds[t] = e)
                ),
                (o = o
                  ? _.e.plusRange(o, e.symbol.range)
                  : _.e.lift(e.symbol.range));
            }),
              (this._viewZone = new C(o.startLineNumber - 1, s)),
              (this._viewZoneId = r.addZone(this._viewZone)),
              a.length > 0 &&
                (this._createContentWidgetIfNecessary(),
                this._contentWidget.withCommands(a, !1));
          }
          _createContentWidgetIfNecessary() {
            this._contentWidget ||
              ((this._contentWidget = new S(
                this._editor,
                this._className,
                this._viewZone.afterLineNumber + 1
              )),
              this._editor.addContentWidget(this._contentWidget));
          }
          dispose(e, t) {
            this._decorationIds.forEach(e.removeDecoration, e),
              (this._decorationIds = []),
              t && t.removeZone(this._viewZoneId),
              this._contentWidget &&
                (this._editor.removeContentWidget(this._contentWidget),
                (this._contentWidget = void 0)),
              (this._isDisposed = !0);
          }
          isDisposed() {
            return this._isDisposed;
          }
          isValid() {
            return this._decorationIds.some((e, t) => {
              const i = this._editor.getModel().getDecorationRange(e),
                n = this._data[t].symbol;
              return !(!i || _.e.isEmpty(n.range) !== i.isEmpty());
            });
          }
          updateCodeLensSymbols(e, t) {
            this._decorationIds.forEach(t.removeDecoration, t),
              (this._decorationIds = []),
              (this._data = e),
              this._data.forEach((e, i) => {
                t.addDecoration(
                  { range: e.symbol.range, options: b.qx.EMPTY },
                  (e) => (this._decorationIds[i] = e)
                );
              });
          }
          computeIfNecessary(e) {
            if (
              !this._viewZone.domNode.hasAttribute('monaco-visible-view-zone')
            )
              return null;
            for (let t = 0; t < this._decorationIds.length; t++) {
              const i = e.getDecorationRange(this._decorationIds[t]);
              i && (this._data[t].symbol.range = i);
            }
            return this._data;
          }
          updateCommands(e) {
            this._createContentWidgetIfNecessary(),
              this._contentWidget.withCommands(e, !0);
            for (let t = 0; t < this._data.length; t++) {
              const i = e[t];
              if (i) {
                const { symbol: e } = this._data[t];
                e.command = i.command || e.command;
              }
            }
          }
          getCommand(e) {
            var t;
            return null === (t = this._contentWidget) || void 0 === t
              ? void 0
              : t.getCommand(e);
          }
          getLineNumber() {
            const e = this._editor
              .getModel()
              .getDecorationRange(this._decorationIds[0]);
            return e ? e.startLineNumber : -1;
          }
          update(e) {
            if (this.isValid()) {
              const t = this._editor
                .getModel()
                .getDecorationRange(this._decorationIds[0]);
              t &&
                ((this._viewZone.afterLineNumber = t.startLineNumber - 1),
                e.layoutZone(this._viewZoneId),
                this._contentWidget &&
                  (this._contentWidget.updatePosition(t.startLineNumber),
                  this._editor.layoutContentWidget(this._contentWidget)));
            }
          }
          getItems() {
            return this._data;
          }
        }
        (0, w.Ic)((e, t) => {
          const i = e.getColor(v.Yp);
          i &&
            (t.addRule(`.monaco-editor .codelens-decoration { color: ${i}; }`),
            t.addRule(
              `.monaco-editor .codelens-decoration .codicon { color: ${i}; }`
            ));
          const n = e.getColor(y._Y);
          n &&
            (t.addRule(
              `.monaco-editor .codelens-decoration > a:hover { color: ${n} !important; }`
            ),
            t.addRule(
              `.monaco-editor .codelens-decoration > a:hover .codicon { color: ${n} !important; }`
            ));
        });
        var L = i(94565),
          M = i(59422),
          D = i(72065),
          N = i(65026),
          E = i(43702),
          T = i(52365),
          I = i(88289);
        const O = (0, D.yh)('ICodeLensCache');
        class A {
          constructor(e, t) {
            (this.lineCount = e), (this.data = t);
          }
        }
        let R = class {
          constructor(e) {
            (this._fakeProvider = new (class {
              provideCodeLenses() {
                throw new Error('not supported');
              }
            })()),
              (this._cache = new E.z6(20, 0.75)),
              (0, n.To)(() => e.remove('codelens/cache', 1));
            const t = 'codelens/cache2',
              i = e.get(t, 1, '{}');
            this._deserialize(i),
              (0, I.I)(e.onWillSaveState)((i) => {
                i.reason === T.fk.SHUTDOWN && e.store(t, this._serialize(), 1);
              });
          }
          put(e, t) {
            const i = t.lenses.map((e) => {
                var t;
                return {
                  range: e.symbol.range,
                  command: e.symbol.command && {
                    id: '',
                    title:
                      null === (t = e.symbol.command) || void 0 === t
                        ? void 0
                        : t.title,
                  },
                };
              }),
              n = new g();
            n.add({ lenses: i, dispose: () => {} }, this._fakeProvider);
            const r = new A(e.getLineCount(), n);
            this._cache.set(e.uri.toString(), r);
          }
          get(e) {
            const t = this._cache.get(e.uri.toString());
            return t && t.lineCount === e.getLineCount() ? t.data : void 0;
          }
          delete(e) {
            this._cache.delete(e.uri.toString());
          }
          _serialize() {
            const e = Object.create(null);
            for (const [t, i] of this._cache) {
              const n = new Set();
              for (const e of i.data.lenses)
                n.add(e.symbol.range.startLineNumber);
              e[t] = { lineCount: i.lineCount, lines: [...n.values()] };
            }
            return JSON.stringify(e);
          }
          _deserialize(e) {
            try {
              const t = JSON.parse(e);
              for (const e in t) {
                const i = t[e],
                  n = [];
                for (const e of i.lines)
                  n.push({ range: new _.e(e, 1, e, 11) });
                const r = new g();
                r.add({ lenses: n, dispose() {} }, this._fakeProvider),
                  this._cache.set(e, new A(i.lineCount, r));
              }
            } catch (e) {}
          }
        };
        var P, F;
        (R = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            ((P = 0),
            (F = T.Uy),
            function (e, t) {
              F(e, t, P);
            }),
          ],
          R
        )),
          (0, N.z)(O, R);
        var B = i(65321),
          W = i(89954),
          Y = i(41157),
          H = i(63580),
          j = i(29102),
          V = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let z = class {
          constructor(e, t, i, n) {
            (this._editor = e),
              (this._commandService = t),
              (this._notificationService = i),
              (this._codeLensCache = n),
              (this._globalToDispose = new s.SL()),
              (this._localToDispose = new s.SL()),
              (this._lenses = []),
              (this._oldCodeLensModels = new s.SL()),
              (this._modelChangeCounter = 0),
              (this._isEnabled = this._editor.getOption(11)),
              this._globalToDispose.add(
                this._editor.onDidChangeModel(() => this._onModelChange())
              ),
              this._globalToDispose.add(
                this._editor.onDidChangeModelLanguage(() =>
                  this._onModelChange()
                )
              ),
              this._globalToDispose.add(
                this._editor.onDidChangeConfiguration(() => {
                  const e = this._isEnabled;
                  (this._isEnabled = this._editor.getOption(11)),
                    e !== this._isEnabled && this._onModelChange();
                })
              ),
              this._globalToDispose.add(
                l.He.onDidChange(this._onModelChange, this)
              ),
              this._globalToDispose.add(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(36) && this._updateLensStyle();
                })
              ),
              this._onModelChange(),
              (this._styleClassName =
                '_' + (0, W.vp)(this._editor.getId()).toString(16)),
              (this._styleElement = B.dS(
                B.OO(this._editor.getContainerDomNode())
                  ? this._editor.getContainerDomNode()
                  : void 0
              )),
              this._updateLensStyle();
          }
          dispose() {
            this._localDispose(),
              this._globalToDispose.dispose(),
              this._oldCodeLensModels.dispose(),
              (0, s.B9)(this._currentCodeLensModel);
          }
          _updateLensStyle() {
            const e = this._editor.getOptions(),
              t = e.get(36),
              i = e.get(51),
              n = Math.round(1.1 * i),
              r = Math.round(0.9 * t.fontSize),
              s = `\n\t\t.monaco-editor .codelens-decoration.${
                this._styleClassName
              } { height: ${n}px; line-height: ${i}px; font-size: ${r}px; padding-right: ${Math.round(
                0.45 * t.fontSize
              )}px;}\n\t\t.monaco-editor .codelens-decoration.${
                this._styleClassName
              } > a > .codicon { line-height: ${i}px; font-size: ${r}px; }\n\t\t`;
            this._styleElement.textContent = s;
          }
          _localDispose() {
            this._currentFindCodeLensSymbolsPromise &&
              (this._currentFindCodeLensSymbolsPromise.cancel(),
              (this._currentFindCodeLensSymbolsPromise = void 0),
              this._modelChangeCounter++),
              this._currentResolveCodeLensSymbolsPromise &&
                (this._currentResolveCodeLensSymbolsPromise.cancel(),
                (this._currentResolveCodeLensSymbolsPromise = void 0)),
              this._localToDispose.clear(),
              this._oldCodeLensModels.clear(),
              (0, s.B9)(this._currentCodeLensModel);
          }
          _onModelChange() {
            this._localDispose();
            const e = this._editor.getModel();
            if (!e) return;
            if (!this._isEnabled) return;
            const t = this._codeLensCache.get(e);
            if ((t && this._renderCodeLensSymbols(t), !l.He.has(e)))
              return void (
                t &&
                this._localToDispose.add(
                  (0, n.Vg)(() => {
                    const i = this._codeLensCache.get(e);
                    t === i &&
                      (this._codeLensCache.delete(e), this._onModelChange());
                  }, 3e4)
                )
              );
            for (const t of l.He.all(e))
              if ('function' == typeof t.onDidChange) {
                let e = t.onDidChange(() => a.schedule());
                this._localToDispose.add(e);
              }
            const i = (this._detectVisibleLenses = new n.pY(
                () => this._onViewportChanged(),
                250
              )),
              a = new n.pY(() => {
                const t = ++this._modelChangeCounter;
                this._currentFindCodeLensSymbolsPromise &&
                  this._currentFindCodeLensSymbolsPromise.cancel(),
                  (this._currentFindCodeLensSymbolsPromise = (0, n.PG)((t) =>
                    f(e, t)
                  )),
                  this._currentFindCodeLensSymbolsPromise.then((n) => {
                    t === this._modelChangeCounter &&
                      (this._currentCodeLensModel &&
                        this._oldCodeLensModels.add(this._currentCodeLensModel),
                      (this._currentCodeLensModel = n),
                      this._codeLensCache.put(e, n),
                      this._renderCodeLensSymbols(n),
                      i.schedule());
                  }, r.dL);
              }, 250);
            this._localToDispose.add(a),
              this._localToDispose.add(i),
              this._localToDispose.add(
                this._editor.onDidChangeModelContent(() => {
                  this._editor.changeDecorations((e) => {
                    this._editor.changeViewZones((t) => {
                      let i = [],
                        n = -1;
                      this._lenses.forEach((e) => {
                        e.isValid() && n !== e.getLineNumber()
                          ? (e.update(t), (n = e.getLineNumber()))
                          : i.push(e);
                      });
                      let r = new k();
                      i.forEach((e) => {
                        e.dispose(r, t),
                          this._lenses.splice(this._lenses.indexOf(e), 1);
                      }),
                        r.commit(e);
                    });
                  }),
                    i.schedule(),
                    a.schedule();
                })
              ),
              this._localToDispose.add(
                this._editor.onDidScrollChange((e) => {
                  e.scrollTopChanged && this._lenses.length > 0 && i.schedule();
                })
              ),
              this._localToDispose.add(
                this._editor.onDidLayoutChange(() => {
                  i.schedule();
                })
              ),
              this._localToDispose.add(
                (0, s.OF)(() => {
                  if (this._editor.getModel()) {
                    const e = o.ZF.capture(this._editor);
                    this._editor.changeDecorations((e) => {
                      this._editor.changeViewZones((t) => {
                        this._disposeAllLenses(e, t);
                      });
                    }),
                      e.restore(this._editor);
                  } else this._disposeAllLenses(void 0, void 0);
                })
              ),
              this._localToDispose.add(
                this._editor.onMouseUp((e) => {
                  if (9 !== e.target.type) return;
                  let t = e.target.element;
                  if (
                    ('SPAN' === (null == t ? void 0 : t.tagName) &&
                      (t = t.parentElement),
                    'A' === (null == t ? void 0 : t.tagName))
                  )
                    for (const e of this._lenses) {
                      let i = e.getCommand(t);
                      if (i) {
                        this._commandService
                          .executeCommand(i.id, ...(i.arguments || []))
                          .catch((e) => this._notificationService.error(e));
                        break;
                      }
                    }
                })
              ),
              a.schedule();
          }
          _disposeAllLenses(e, t) {
            const i = new k();
            for (const e of this._lenses) e.dispose(i, t);
            e && i.commit(e), (this._lenses = []);
          }
          _renderCodeLensSymbols(e) {
            if (!this._editor.hasModel()) return;
            let t,
              i = this._editor.getModel().getLineCount(),
              n = [];
            for (let r of e.lenses) {
              let e = r.symbol.range.startLineNumber;
              e < 1 ||
                e > i ||
                (t && t[t.length - 1].symbol.range.startLineNumber === e
                  ? t.push(r)
                  : ((t = [r]), n.push(t)));
            }
            const r = o.ZF.capture(this._editor);
            this._editor.changeDecorations((e) => {
              this._editor.changeViewZones((t) => {
                const i = new k();
                let r = 0,
                  s = 0;
                for (; s < n.length && r < this._lenses.length; ) {
                  let e = n[s][0].symbol.range.startLineNumber,
                    o = this._lenses[r].getLineNumber();
                  o < e
                    ? (this._lenses[r].dispose(i, t), this._lenses.splice(r, 1))
                    : o === e
                    ? (this._lenses[r].updateCodeLensSymbols(n[s], i), s++, r++)
                    : (this._lenses.splice(
                        r,
                        0,
                        new x(
                          n[s],
                          this._editor,
                          this._styleClassName,
                          i,
                          t,
                          () =>
                            this._detectVisibleLenses &&
                            this._detectVisibleLenses.schedule()
                        )
                      ),
                      r++,
                      s++);
                }
                for (; r < this._lenses.length; )
                  this._lenses[r].dispose(i, t), this._lenses.splice(r, 1);
                for (; s < n.length; )
                  this._lenses.push(
                    new x(
                      n[s],
                      this._editor,
                      this._styleClassName,
                      i,
                      t,
                      () =>
                        this._detectVisibleLenses &&
                        this._detectVisibleLenses.schedule()
                    )
                  ),
                    s++;
                i.commit(e);
              });
            }),
              r.restore(this._editor);
          }
          _onViewportChanged() {
            this._currentResolveCodeLensSymbolsPromise &&
              (this._currentResolveCodeLensSymbolsPromise.cancel(),
              (this._currentResolveCodeLensSymbolsPromise = void 0));
            const e = this._editor.getModel();
            if (!e) return;
            const t = [],
              i = [];
            if (
              (this._lenses.forEach((n) => {
                const r = n.computeIfNecessary(e);
                r && (t.push(r), i.push(n));
              }),
              0 === t.length)
            )
              return;
            const s = (0, n.PG)((n) => {
              const s = t.map((t, s) => {
                const o = new Array(t.length),
                  a = t.map((t, i) =>
                    t.symbol.command ||
                    'function' != typeof t.provider.resolveCodeLens
                      ? ((o[i] = t.symbol), Promise.resolve(void 0))
                      : Promise.resolve(
                          t.provider.resolveCodeLens(e, t.symbol, n)
                        ).then((e) => {
                          o[i] = e;
                        }, r.Cp)
                  );
                return Promise.all(a).then(() => {
                  n.isCancellationRequested ||
                    i[s].isDisposed() ||
                    i[s].updateCommands(o);
                });
              });
              return Promise.all(s);
            });
            (this._currentResolveCodeLensSymbolsPromise = s),
              this._currentResolveCodeLensSymbolsPromise.then(
                () => {
                  this._currentCodeLensModel &&
                    this._codeLensCache.put(e, this._currentCodeLensModel),
                    this._oldCodeLensModels.clear(),
                    s === this._currentResolveCodeLensSymbolsPromise &&
                      (this._currentResolveCodeLensSymbolsPromise = void 0);
                },
                (e) => {
                  (0, r.dL)(e),
                    s === this._currentResolveCodeLensSymbolsPromise &&
                      (this._currentResolveCodeLensSymbolsPromise = void 0);
                }
              );
          }
          getLenses() {
            return this._lenses;
          }
        };
        (z.ID = 'css.editor.codeLens'),
          (z = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([V(1, L.H), V(2, M.lT), V(3, O)], z)),
          (0, a._K)(z.ID, z),
          (0, a.Qr)(
            class extends a.R6 {
              constructor() {
                super({
                  id: 'codelens.showLensesInCurrentLine',
                  precondition: j.u.hasCodeLensProvider,
                  label: (0, H.N)(
                    'showLensOnLine',
                    'Show CodeLens Commands For Current Line'
                  ),
                  alias: 'Show CodeLens Commands For Current Line',
                });
              }
              run(e, t) {
                return (
                  (i = this),
                  (n = void 0),
                  (s = function* () {
                    if (!t.hasModel()) return;
                    const i = e.get(Y.eJ),
                      n = e.get(L.H),
                      r = e.get(M.lT),
                      s = t.getSelection().positionLineNumber,
                      o = t.getContribution(z.ID),
                      a = [];
                    for (let e of o.getLenses())
                      if (e.getLineNumber() === s)
                        for (let t of e.getItems()) {
                          const { command: e } = t.symbol;
                          e && a.push({ label: e.title, command: e });
                        }
                    if (0 === a.length) return;
                    const l = yield i.pick(a, { canPickMany: !1 });
                    if (l)
                      try {
                        yield n.executeCommand(
                          l.command.id,
                          ...(l.command.arguments || [])
                        );
                      } catch (e) {
                        r.error(e);
                      }
                  }),
                  new ((r = void 0) || (r = Promise))(function (e, t) {
                    function o(e) {
                      try {
                        l(s.next(e));
                      } catch (e) {
                        t(e);
                      }
                    }
                    function a(e) {
                      try {
                        l(s.throw(e));
                      } catch (e) {
                        t(e);
                      }
                    }
                    function l(t) {
                      var i;
                      t.done
                        ? e(t.value)
                        : ((i = t.value),
                          i instanceof r
                            ? i
                            : new r(function (e) {
                                e(i);
                              })).then(o, a);
                    }
                    l((s = s.apply(i, n || [])).next());
                  })
                );
                var i, n, r, s;
              }
            }
          );
      },
      83308: (e, t, i) => {
        'use strict';
        i.d(t, { E: () => d, R: () => h });
        var n = i(71050),
          r = i(17301),
          s = i(70666),
          o = i(16830),
          a = i(24314),
          l = i(43775),
          c = i(51200);
        function d(e, t) {
          const i = [],
            n = l.OH.ordered(e)
              .reverse()
              .map((n) =>
                Promise.resolve(n.provideDocumentColors(e, t)).then((e) => {
                  if (Array.isArray(e))
                    for (let t of e) i.push({ colorInfo: t, provider: n });
                })
              );
          return Promise.all(n).then(() => i);
        }
        function h(e, t, i, n) {
          return Promise.resolve(i.provideColorPresentations(e, t, n));
        }
        (0, o._h)('_executeDocumentColorProvider', function (e, t) {
          const { resource: i } = t;
          if (!(i instanceof s.o)) throw (0, r.b1)();
          const o = e.get(c.q).getModel(i);
          if (!o) throw (0, r.b1)();
          const a = [],
            d = l.OH.ordered(o)
              .reverse()
              .map((e) =>
                Promise.resolve(e.provideDocumentColors(o, n.T.None)).then(
                  (e) => {
                    if (Array.isArray(e))
                      for (let t of e)
                        a.push({
                          range: t.range,
                          color: [
                            t.color.red,
                            t.color.green,
                            t.color.blue,
                            t.color.alpha,
                          ],
                        });
                  }
                )
              );
          return Promise.all(d).then(() => a);
        }),
          (0, o._h)('_executeColorPresentationProvider', function (e, t) {
            const { resource: i, color: o, range: d } = t;
            if (
              !(
                i instanceof s.o &&
                Array.isArray(o) &&
                4 === o.length &&
                a.e.isIRange(d)
              )
            )
              throw (0, r.b1)();
            const [h, u, g, f] = o,
              p = e.get(c.q).getModel(i);
            if (!p) throw (0, r.b1)();
            const m = {
                range: d,
                color: { red: h, green: u, blue: g, alpha: f },
              },
              _ = [],
              b = l.OH.ordered(p)
                .reverse()
                .map((e) =>
                  Promise.resolve(
                    e.provideColorPresentations(p, m, n.T.None)
                  ).then((e) => {
                    Array.isArray(e) && _.push(...e);
                  })
                );
            return Promise.all(b).then(() => _);
          });
      },
      64494: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { ColorDetector: () => m });
        var n = i(15393),
          r = i(41264),
          s = i(17301),
          o = i(89954),
          a = i(5976),
          l = i(16830),
          c = i(11640),
          d = i(24314),
          h = i(3411),
          u = i(43775),
          g = i(83308),
          f = i(33108),
          p = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let m = class e extends a.JT {
          constructor(e, t, i) {
            super(),
              (this._editor = e),
              (this._codeEditorService = t),
              (this._configurationService = i),
              (this._localToDispose = this._register(new a.SL())),
              (this._decorationsIds = []),
              (this._colorDatas = new Map()),
              (this._colorDecoratorIds = []),
              (this._decorationsTypes = new Set()),
              this._register(
                e.onDidChangeModel((e) => {
                  (this._isEnabled = this.isEnabled()), this.onModelChanged();
                })
              ),
              this._register(
                e.onDidChangeModelLanguage((e) => this.onModelChanged())
              ),
              this._register(u.OH.onDidChange((e) => this.onModelChanged())),
              this._register(
                e.onDidChangeConfiguration((e) => {
                  let t = this._isEnabled;
                  (this._isEnabled = this.isEnabled()),
                    t !== this._isEnabled &&
                      (this._isEnabled
                        ? this.onModelChanged()
                        : this.removeAllDecorations());
                })
              ),
              (this._timeoutTimer = null),
              (this._computePromise = null),
              (this._isEnabled = this.isEnabled()),
              this.onModelChanged();
          }
          isEnabled() {
            const e = this._editor.getModel();
            if (!e) return !1;
            const t = e.getLanguageIdentifier(),
              i = this._configurationService.getValue(t.language);
            if (i) {
              const e = i.colorDecorators;
              if (e && void 0 !== e.enable && !e.enable) return e.enable;
            }
            return this._editor.getOption(12);
          }
          static get(e) {
            return e.getContribution(this.ID);
          }
          dispose() {
            this.stop(), this.removeAllDecorations(), super.dispose();
          }
          onModelChanged() {
            if ((this.stop(), !this._isEnabled)) return;
            const t = this._editor.getModel();
            t &&
              u.OH.has(t) &&
              (this._localToDispose.add(
                this._editor.onDidChangeModelContent((t) => {
                  this._timeoutTimer ||
                    ((this._timeoutTimer = new n._F()),
                    this._timeoutTimer.cancelAndSet(() => {
                      (this._timeoutTimer = null), this.beginCompute();
                    }, e.RECOMPUTE_TIME));
                })
              ),
              this.beginCompute());
          }
          beginCompute() {
            (this._computePromise = (0, n.PG)((e) => {
              const t = this._editor.getModel();
              return t ? (0, g.E)(t, e) : Promise.resolve([]);
            })),
              this._computePromise.then((e) => {
                this.updateDecorations(e),
                  this.updateColorDecorators(e),
                  (this._computePromise = null);
              }, s.dL);
          }
          stop() {
            this._timeoutTimer &&
              (this._timeoutTimer.cancel(), (this._timeoutTimer = null)),
              this._computePromise &&
                (this._computePromise.cancel(), (this._computePromise = null)),
              this._localToDispose.clear();
          }
          updateDecorations(e) {
            const t = e.map((e) => ({
              range: {
                startLineNumber: e.colorInfo.range.startLineNumber,
                startColumn: e.colorInfo.range.startColumn,
                endLineNumber: e.colorInfo.range.endLineNumber,
                endColumn: e.colorInfo.range.endColumn,
              },
              options: h.qx.EMPTY,
            }));
            (this._decorationsIds = this._editor.deltaDecorations(
              this._decorationsIds,
              t
            )),
              (this._colorDatas = new Map()),
              this._decorationsIds.forEach((t, i) =>
                this._colorDatas.set(t, e[i])
              );
          }
          updateColorDecorators(e) {
            let t = [],
              i = {};
            for (let n = 0; n < e.length && t.length < 500; n++) {
              const { red: s, green: a, blue: l, alpha: c } = e[
                  n
                ].colorInfo.color,
                d = new r.VS(
                  Math.round(255 * s),
                  Math.round(255 * a),
                  Math.round(255 * l),
                  c
                );
              let h = (0, o.vp)(`rgba(${d.r},${d.g},${d.b},${d.a})`).toString(
                  16
                ),
                u = `rgba(${d.r}, ${d.g}, ${d.b}, ${d.a})`,
                g = 'colorBox-' + h;
              this._decorationsTypes.has(g) ||
                i[g] ||
                this._codeEditorService.registerDecorationType(
                  g,
                  {
                    before: {
                      contentText: ' ',
                      border: 'solid 0.1em #000',
                      margin: '0.1em 0.2em 0 0.2em',
                      width: '0.8em',
                      height: '0.8em',
                      backgroundColor: u,
                    },
                    dark: { before: { border: 'solid 0.1em #eee' } },
                  },
                  void 0,
                  this._editor
                ),
                (i[g] = !0),
                t.push({
                  range: {
                    startLineNumber: e[n].colorInfo.range.startLineNumber,
                    startColumn: e[n].colorInfo.range.startColumn,
                    endLineNumber: e[n].colorInfo.range.endLineNumber,
                    endColumn: e[n].colorInfo.range.endColumn,
                  },
                  options: this._codeEditorService.resolveDecorationOptions(
                    g,
                    !0
                  ),
                });
            }
            this._decorationsTypes.forEach((e) => {
              i[e] || this._codeEditorService.removeDecorationType(e);
            }),
              (this._colorDecoratorIds = this._editor.deltaDecorations(
                this._colorDecoratorIds,
                t
              ));
          }
          removeAllDecorations() {
            (this._decorationsIds = this._editor.deltaDecorations(
              this._decorationsIds,
              []
            )),
              (this._colorDecoratorIds = this._editor.deltaDecorations(
                this._colorDecoratorIds,
                []
              )),
              this._decorationsTypes.forEach((e) => {
                this._codeEditorService.removeDecorationType(e);
              });
          }
          getColorData(e) {
            const t = this._editor.getModel();
            if (!t) return null;
            const i = t
              .getDecorationsInRange(d.e.fromPositions(e, e))
              .filter((e) => this._colorDatas.has(e.id));
            return 0 === i.length ? null : this._colorDatas.get(i[0].id);
          }
        };
        (m.ID = 'editor.contrib.colorDetector'),
          (m.RECOMPUTE_TIME = 1e3),
          (m = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([p(1, c.$), p(2, f.Ui)], m)),
          (0, l._K)(m.ID, m);
      },
      89098: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(63580),
          r = i(22258),
          s = i(16830),
          o = i(29102),
          a = i(69386),
          l = i(50187),
          c = i(24314),
          d = i(3860),
          h = i(83831);
        class u {
          constructor(e, t) {
            (this._selection = e),
              (this._insertSpace = t),
              (this._usedEndToken = null);
          }
          static _haystackHasNeedleAtOffset(e, t, i) {
            if (i < 0) return !1;
            const n = t.length;
            if (i + n > e.length) return !1;
            for (let r = 0; r < n; r++) {
              const n = e.charCodeAt(i + r),
                s = t.charCodeAt(r);
              if (
                n !== s &&
                !(
                  (n >= 65 && n <= 90 && n + 32 === s) ||
                  (s >= 65 && s <= 90 && s + 32 === n)
                )
              )
                return !1;
            }
            return !0;
          }
          _createOperationsForBlockComment(e, t, i, n, r, s) {
            const o = e.startLineNumber,
              a = e.startColumn,
              l = e.endLineNumber,
              d = e.endColumn,
              h = r.getLineContent(o),
              g = r.getLineContent(l);
            let f,
              p = h.lastIndexOf(t, a - 1 + t.length),
              m = g.indexOf(i, d - 1 - i.length);
            if (-1 !== p && -1 !== m)
              if (o === l)
                h.substring(p + t.length, m).indexOf(i) >= 0 &&
                  ((p = -1), (m = -1));
              else {
                const e = h.substring(p + t.length),
                  n = g.substring(0, m);
                (e.indexOf(i) >= 0 || n.indexOf(i) >= 0) &&
                  ((p = -1), (m = -1));
              }
            -1 !== p && -1 !== m
              ? (n &&
                  p + t.length < h.length &&
                  32 === h.charCodeAt(p + t.length) &&
                  (t += ' '),
                n &&
                  m > 0 &&
                  32 === g.charCodeAt(m - 1) &&
                  ((i = ' ' + i), (m -= 1)),
                (f = u._createRemoveBlockCommentOperations(
                  new c.e(o, p + t.length + 1, l, m + 1),
                  t,
                  i
                )))
              : ((f = u._createAddBlockCommentOperations(
                  e,
                  t,
                  i,
                  this._insertSpace
                )),
                (this._usedEndToken = 1 === f.length ? i : null));
            for (const e of f) s.addTrackedEditOperation(e.range, e.text);
          }
          static _createRemoveBlockCommentOperations(e, t, i) {
            let n = [];
            return (
              c.e.isEmpty(e)
                ? n.push(
                    a.h.delete(
                      new c.e(
                        e.startLineNumber,
                        e.startColumn - t.length,
                        e.endLineNumber,
                        e.endColumn + i.length
                      )
                    )
                  )
                : (n.push(
                    a.h.delete(
                      new c.e(
                        e.startLineNumber,
                        e.startColumn - t.length,
                        e.startLineNumber,
                        e.startColumn
                      )
                    )
                  ),
                  n.push(
                    a.h.delete(
                      new c.e(
                        e.endLineNumber,
                        e.endColumn,
                        e.endLineNumber,
                        e.endColumn + i.length
                      )
                    )
                  )),
              n
            );
          }
          static _createAddBlockCommentOperations(e, t, i, n) {
            let r = [];
            return (
              c.e.isEmpty(e)
                ? r.push(
                    a.h.replace(
                      new c.e(
                        e.startLineNumber,
                        e.startColumn,
                        e.endLineNumber,
                        e.endColumn
                      ),
                      t + '  ' + i
                    )
                  )
                : (r.push(
                    a.h.insert(
                      new l.L(e.startLineNumber, e.startColumn),
                      t + (n ? ' ' : '')
                    )
                  ),
                  r.push(
                    a.h.insert(
                      new l.L(e.endLineNumber, e.endColumn),
                      (n ? ' ' : '') + i
                    )
                  )),
              r
            );
          }
          getEditOperations(e, t) {
            const i = this._selection.startLineNumber,
              n = this._selection.startColumn;
            e.tokenizeIfCheap(i);
            const r = e.getLanguageIdAtPosition(i, n),
              s = h.zu.getComments(r);
            s &&
              s.blockCommentStartToken &&
              s.blockCommentEndToken &&
              this._createOperationsForBlockComment(
                this._selection,
                s.blockCommentStartToken,
                s.blockCommentEndToken,
                this._insertSpace,
                e,
                t
              );
          }
          computeCursorState(e, t) {
            const i = t.getInverseEditOperations();
            if (2 === i.length) {
              const e = i[0],
                t = i[1];
              return new d.Y(
                e.range.endLineNumber,
                e.range.endColumn,
                t.range.startLineNumber,
                t.range.startColumn
              );
            }
            {
              const e = i[0].range,
                t = this._usedEndToken ? -this._usedEndToken.length - 1 : 0;
              return new d.Y(
                e.endLineNumber,
                e.endColumn + t,
                e.endLineNumber,
                e.endColumn + t
              );
            }
          }
        }
        var g = i(97295);
        class f {
          constructor(e, t, i, n, r) {
            (this._selection = e),
              (this._tabSize = t),
              (this._type = i),
              (this._insertSpace = n),
              (this._selectionId = null),
              (this._deltaColumn = 0),
              (this._moveEndPositionDown = !1),
              (this._ignoreEmptyLines = r);
          }
          static _gatherPreflightCommentStrings(e, t, i) {
            e.tokenizeIfCheap(t);
            const n = e.getLanguageIdAtPosition(t, 1),
              r = h.zu.getComments(n),
              s = r ? r.lineCommentToken : null;
            if (!s) return null;
            let o = [];
            for (let e = 0, n = i - t + 1; e < n; e++)
              o[e] = {
                ignore: !1,
                commentStr: s,
                commentStrOffset: 0,
                commentStrLength: s.length,
              };
            return o;
          }
          static _analyzeLines(e, t, i, n, r, s) {
            let o,
              a = !0;
            o = 0 === e || 1 !== e;
            for (let l = 0, c = n.length; l < c; l++) {
              const c = n[l],
                d = r + l,
                h = i.getLineContent(d),
                f = g.LC(h);
              if (-1 !== f) {
                if (
                  ((a = !1),
                  (c.ignore = !1),
                  (c.commentStrOffset = f),
                  o &&
                    !u._haystackHasNeedleAtOffset(h, c.commentStr, f) &&
                    (0 === e ? (o = !1) : 1 === e || (c.ignore = !0)),
                  o && t)
                ) {
                  const e = f + c.commentStrLength;
                  e < h.length &&
                    32 === h.charCodeAt(e) &&
                    (c.commentStrLength += 1);
                }
              } else (c.ignore = s), (c.commentStrOffset = h.length);
            }
            if (0 === e && a) {
              o = !1;
              for (let e = 0, t = n.length; e < t; e++) n[e].ignore = !1;
            }
            return { supported: !0, shouldRemoveComments: o, lines: n };
          }
          static _gatherPreflightData(e, t, i, n, r, s) {
            const o = f._gatherPreflightCommentStrings(i, n, r);
            return null === o
              ? { supported: !1 }
              : f._analyzeLines(e, t, i, o, n, s);
          }
          _executeLineComments(e, t, i, n) {
            let r;
            i.shouldRemoveComments
              ? (r = f._createRemoveLineCommentsOperations(
                  i.lines,
                  n.startLineNumber
                ))
              : (f._normalizeInsertionPoint(
                  e,
                  i.lines,
                  n.startLineNumber,
                  this._tabSize
                ),
                (r = this._createAddLineCommentsOperations(
                  i.lines,
                  n.startLineNumber
                )));
            const s = new l.L(n.positionLineNumber, n.positionColumn);
            for (let i = 0, n = r.length; i < n; i++)
              t.addEditOperation(r[i].range, r[i].text),
                c.e.isEmpty(r[i].range) &&
                  c.e.getStartPosition(r[i].range).equals(s) &&
                  e.getLineContent(s.lineNumber).length + 1 === s.column &&
                  (this._deltaColumn = (r[i].text || '').length);
            this._selectionId = t.trackSelection(n);
          }
          _attemptRemoveBlockComment(e, t, i, n) {
            let r = t.startLineNumber,
              s = t.endLineNumber,
              o =
                n.length +
                Math.max(
                  e.getLineFirstNonWhitespaceColumn(t.startLineNumber),
                  t.startColumn
                ),
              a = e.getLineContent(r).lastIndexOf(i, o - 1),
              l = e.getLineContent(s).indexOf(n, t.endColumn - 1 - i.length);
            return (
              -1 !== a &&
                -1 === l &&
                ((l = e.getLineContent(r).indexOf(n, a + i.length)), (s = r)),
              -1 === a &&
                -1 !== l &&
                ((a = e.getLineContent(s).lastIndexOf(i, l)), (r = s)),
              !t.isEmpty() ||
                (-1 !== a && -1 !== l) ||
                ((a = e.getLineContent(r).indexOf(i)),
                -1 !== a && (l = e.getLineContent(r).indexOf(n, a + i.length))),
              -1 !== a &&
                32 === e.getLineContent(r).charCodeAt(a + i.length) &&
                (i += ' '),
              -1 !== l &&
                32 === e.getLineContent(s).charCodeAt(l - 1) &&
                ((n = ' ' + n), (l -= 1)),
              -1 !== a && -1 !== l
                ? u._createRemoveBlockCommentOperations(
                    new c.e(r, a + i.length + 1, s, l + 1),
                    i,
                    n
                  )
                : null
            );
          }
          _executeBlockComment(e, t, i) {
            e.tokenizeIfCheap(i.startLineNumber);
            let n = e.getLanguageIdAtPosition(i.startLineNumber, 1),
              r = h.zu.getComments(n);
            if (!r || !r.blockCommentStartToken || !r.blockCommentEndToken)
              return;
            const s = r.blockCommentStartToken,
              o = r.blockCommentEndToken;
            let a = this._attemptRemoveBlockComment(e, i, s, o);
            if (!a) {
              if (i.isEmpty()) {
                const t = e.getLineContent(i.startLineNumber);
                let n = g.LC(t);
                -1 === n && (n = t.length),
                  (a = u._createAddBlockCommentOperations(
                    new c.e(
                      i.startLineNumber,
                      n + 1,
                      i.startLineNumber,
                      t.length + 1
                    ),
                    s,
                    o,
                    this._insertSpace
                  ));
              } else
                a = u._createAddBlockCommentOperations(
                  new c.e(
                    i.startLineNumber,
                    e.getLineFirstNonWhitespaceColumn(i.startLineNumber),
                    i.endLineNumber,
                    e.getLineMaxColumn(i.endLineNumber)
                  ),
                  s,
                  o,
                  this._insertSpace
                );
              1 === a.length && (this._deltaColumn = s.length + 1);
            }
            this._selectionId = t.trackSelection(i);
            for (const e of a) t.addEditOperation(e.range, e.text);
          }
          getEditOperations(e, t) {
            let i = this._selection;
            (this._moveEndPositionDown = !1),
              i.startLineNumber < i.endLineNumber &&
                1 === i.endColumn &&
                ((this._moveEndPositionDown = !0),
                (i = i.setEndPosition(
                  i.endLineNumber - 1,
                  e.getLineMaxColumn(i.endLineNumber - 1)
                )));
            const n = f._gatherPreflightData(
              this._type,
              this._insertSpace,
              e,
              i.startLineNumber,
              i.endLineNumber,
              this._ignoreEmptyLines
            );
            return n.supported
              ? this._executeLineComments(e, t, n, i)
              : this._executeBlockComment(e, t, i);
          }
          computeCursorState(e, t) {
            let i = t.getTrackedSelection(this._selectionId);
            return (
              this._moveEndPositionDown &&
                (i = i.setEndPosition(i.endLineNumber + 1, 1)),
              new d.Y(
                i.selectionStartLineNumber,
                i.selectionStartColumn + this._deltaColumn,
                i.positionLineNumber,
                i.positionColumn + this._deltaColumn
              )
            );
          }
          static _createRemoveLineCommentsOperations(e, t) {
            let i = [];
            for (let n = 0, r = e.length; n < r; n++) {
              const r = e[n];
              r.ignore ||
                i.push(
                  a.h.delete(
                    new c.e(
                      t + n,
                      r.commentStrOffset + 1,
                      t + n,
                      r.commentStrOffset + r.commentStrLength + 1
                    )
                  )
                );
            }
            return i;
          }
          _createAddLineCommentsOperations(e, t) {
            let i = [];
            const n = this._insertSpace ? ' ' : '';
            for (let r = 0, s = e.length; r < s; r++) {
              const s = e[r];
              s.ignore ||
                i.push(
                  a.h.insert(
                    new l.L(t + r, s.commentStrOffset + 1),
                    s.commentStr + n
                  )
                );
            }
            return i;
          }
          static nextVisibleColumn(e, t, i, n) {
            return i ? e + (t - (e % t)) : e + n;
          }
          static _normalizeInsertionPoint(e, t, i, n) {
            let r,
              s,
              o = 1073741824;
            for (let r = 0, s = t.length; r < s; r++) {
              if (t[r].ignore) continue;
              const s = e.getLineContent(i + r);
              let a = 0;
              for (let e = 0, i = t[r].commentStrOffset; a < o && e < i; e++)
                a = f.nextVisibleColumn(a, n, 9 === s.charCodeAt(e), 1);
              a < o && (o = a);
            }
            o = Math.floor(o / n) * n;
            for (let a = 0, l = t.length; a < l; a++) {
              if (t[a].ignore) continue;
              const l = e.getLineContent(i + a);
              let c = 0;
              for (r = 0, s = t[a].commentStrOffset; c < o && r < s; r++)
                c = f.nextVisibleColumn(c, n, 9 === l.charCodeAt(r), 1);
              t[a].commentStrOffset = c > o ? r - 1 : r;
            }
          }
        }
        var p = i(84144);
        class m extends s.R6 {
          constructor(e, t) {
            super(t), (this._type = e);
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getModel(),
              n = [],
              r = t.getSelections(),
              s = i.getOptions(),
              o = t.getOption(14);
            for (const e of r)
              n.push(
                new f(
                  e,
                  s.tabSize,
                  this._type,
                  o.insertSpace,
                  o.ignoreEmptyLines
                )
              );
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop();
          }
        }
        class _ extends s.R6 {
          constructor() {
            super({
              id: 'editor.action.blockComment',
              label: n.N('comment.block', 'Toggle Block Comment'),
              alias: 'Toggle Block Comment',
              precondition: o.u.writable,
              kbOpts: {
                kbExpr: o.u.editorTextFocus,
                primary: 1567,
                linux: { primary: 3103 },
                weight: 100,
              },
              menuOpts: {
                menuId: p.eH.MenubarEditMenu,
                group: '5_insert',
                title: n.N(
                  {
                    key: 'miToggleBlockComment',
                    comment: ['&& denotes a mnemonic'],
                  },
                  'Toggle &&Block Comment'
                ),
                order: 2,
              },
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getOption(14),
              n = [],
              r = t.getSelections();
            for (const e of r) n.push(new u(e, i.insertSpace));
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop();
          }
        }
        (0, s.Qr)(
          class extends m {
            constructor() {
              super(0, {
                id: 'editor.action.commentLine',
                label: n.N('comment.line', 'Toggle Line Comment'),
                alias: 'Toggle Line Comment',
                precondition: o.u.writable,
                kbOpts: {
                  kbExpr: o.u.editorTextFocus,
                  primary: 2133,
                  weight: 100,
                },
                menuOpts: {
                  menuId: p.eH.MenubarEditMenu,
                  group: '5_insert',
                  title: n.N(
                    {
                      key: 'miToggleLineComment',
                      comment: ['&& denotes a mnemonic'],
                    },
                    '&&Toggle Line Comment'
                  ),
                  order: 1,
                },
              });
            }
          }
        ),
          (0, s.Qr)(
            class extends m {
              constructor() {
                super(1, {
                  id: 'editor.action.addCommentLine',
                  label: n.N('comment.line.add', 'Add Line Comment'),
                  alias: 'Add Line Comment',
                  precondition: o.u.writable,
                  kbOpts: {
                    kbExpr: o.u.editorTextFocus,
                    primary: (0, r.gx)(2089, 2081),
                    weight: 100,
                  },
                });
              }
            }
          ),
          (0, s.Qr)(
            class extends m {
              constructor() {
                super(2, {
                  id: 'editor.action.removeCommentLine',
                  label: n.N('comment.line.remove', 'Remove Line Comment'),
                  alias: 'Remove Line Comment',
                  precondition: o.u.writable,
                  kbOpts: {
                    kbExpr: o.u.editorTextFocus,
                    primary: (0, r.gx)(2089, 2099),
                    weight: 100,
                  },
                });
              }
            }
          ),
          (0, s.Qr)(_);
      },
      76522: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { ContextMenuController: () => p });
        var n = i(63580),
          r = i(65321),
          s = i(74741),
          o = i(5976),
          a = i(16830),
          l = i(29102),
          c = i(84144),
          d = i(38819),
          h = i(5606),
          u = i(91847),
          g = i(76033),
          f = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let p = class e {
          constructor(e, t, i, n, s, a) {
            (this._contextMenuService = t),
              (this._contextViewService = i),
              (this._contextKeyService = n),
              (this._keybindingService = s),
              (this._menuService = a),
              (this._toDispose = new o.SL()),
              (this._contextMenuIsBeingShownCount = 0),
              (this._editor = e),
              this._toDispose.add(
                this._editor.onContextMenu((e) => this._onContextMenu(e))
              ),
              this._toDispose.add(
                this._editor.onMouseWheel((e) => {
                  if (this._contextMenuIsBeingShownCount > 0) {
                    const t = this._contextViewService.getContextViewElement(),
                      i = e.srcElement;
                    (i.shadowRoot && r.Ay(t) === i.shadowRoot) ||
                      this._contextViewService.hideContextView();
                  }
                })
              ),
              this._toDispose.add(
                this._editor.onKeyDown((e) => {
                  58 === e.keyCode &&
                    (e.preventDefault(),
                    e.stopPropagation(),
                    this.showContextMenu());
                })
              );
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          _onContextMenu(e) {
            if (!this._editor.hasModel()) return;
            if (!this._editor.getOption(15))
              return (
                this._editor.focus(),
                void (
                  e.target.position &&
                  !this._editor
                    .getSelection()
                    .containsPosition(e.target.position) &&
                  this._editor.setPosition(e.target.position)
                )
              );
            if (12 === e.target.type) return;
            if (
              (e.event.preventDefault(),
              6 !== e.target.type && 7 !== e.target.type && 1 !== e.target.type)
            )
              return;
            if ((this._editor.focus(), e.target.position)) {
              let t = !1;
              for (const i of this._editor.getSelections())
                if (i.containsPosition(e.target.position)) {
                  t = !0;
                  break;
                }
              t || this._editor.setPosition(e.target.position);
            }
            let t = null;
            1 !== e.target.type &&
              (t = {
                x: e.event.posx - 1,
                width: 2,
                y: e.event.posy - 1,
                height: 2,
              }),
              this.showContextMenu(t);
          }
          showContextMenu(e) {
            if (!this._editor.getOption(15)) return;
            if (!this._editor.hasModel()) return;
            if (!this._contextMenuService) return void this._editor.focus();
            const t = this._getMenuActions(
              this._editor.getModel(),
              c.eH.EditorContext
            );
            t.length > 0 && this._doShowContextMenu(t, e);
          }
          _getMenuActions(e, t) {
            const i = [],
              n = this._menuService.createMenu(t, this._contextKeyService),
              r = n.getActions({ arg: e.uri });
            n.dispose();
            for (let t of r) {
              const [, n] = t;
              let r = 0;
              for (const t of n)
                if (t instanceof c.NZ) {
                  const n = this._getMenuActions(e, t.item.submenu);
                  n.length > 0 && (i.push(new s.wY(t.id, t.label, n)), r++);
                } else i.push(t), r++;
              r && i.push(new s.Z0());
            }
            return i.length && i.pop(), i;
          }
          _doShowContextMenu(e, t = null) {
            if (!this._editor.hasModel()) return;
            const i = this._editor.getOption(46);
            if ((this._editor.updateOptions({ hover: { enabled: !1 } }), !t)) {
              this._editor.revealPosition(this._editor.getPosition(), 1),
                this._editor.render();
              const e = this._editor.getScrolledVisiblePosition(
                  this._editor.getPosition()
                ),
                i = r.i(this._editor.getDomNode()),
                n = i.left + e.left,
                s = i.top + e.top + e.height;
              t = { x: n, y: s };
            }
            this._contextMenuIsBeingShownCount++,
              this._contextMenuService.showContextMenu({
                domForShadowRoot: this._editor.getDomNode(),
                getAnchor: () => t,
                getActions: () => e,
                getActionViewItem: (e) => {
                  const t = this._keybindingFor(e);
                  if (t)
                    return new g.g(e, e, {
                      label: !0,
                      keybinding: t.getLabel(),
                      isMenu: !0,
                    });
                  const i = e;
                  return 'function' == typeof i.getActionViewItem
                    ? i.getActionViewItem()
                    : new g.g(e, e, { icon: !0, label: !0, isMenu: !0 });
                },
                getKeyBinding: (e) => this._keybindingFor(e),
                onHide: (e) => {
                  this._contextMenuIsBeingShownCount--,
                    this._editor.focus(),
                    this._editor.updateOptions({ hover: i });
                },
              });
          }
          _keybindingFor(e) {
            return this._keybindingService.lookupKeybinding(e.id);
          }
          dispose() {
            this._contextMenuIsBeingShownCount > 0 &&
              this._contextViewService.hideContextView(),
              this._toDispose.dispose();
          }
        };
        (p.ID = 'editor.contrib.contextmenu'),
          (p = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([f(1, h.i), f(2, h.u), f(3, d.i6), f(4, u.d), f(5, c.co)], p));
        class m extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.showContextMenu',
              label: n.N(
                'action.showContextMenu.label',
                'Show Editor Context Menu'
              ),
              alias: 'Show Editor Context Menu',
              precondition: void 0,
              kbOpts: {
                kbExpr: l.u.textInputFocus,
                primary: 1092,
                weight: 100,
              },
            });
          }
          run(e, t) {
            p.get(t).showContextMenu();
          }
        }
        (0, a._K)(p.ID, p), (0, a.Qr)(m);
      },
      42834: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CursorUndoRedoController: () => c,
            CursorUndo: () => d,
            CursorRedo: () => h,
          });
        var n = i(63580),
          r = i(5976),
          s = i(16830),
          o = i(29102);
        class a {
          constructor(e) {
            this.selections = e;
          }
          equals(e) {
            const t = this.selections.length;
            if (t !== e.selections.length) return !1;
            for (let i = 0; i < t; i++)
              if (!this.selections[i].equalsSelection(e.selections[i]))
                return !1;
            return !0;
          }
        }
        class l {
          constructor(e, t, i) {
            (this.cursorState = e), (this.scrollTop = t), (this.scrollLeft = i);
          }
        }
        class c extends r.JT {
          constructor(e) {
            super(),
              (this._editor = e),
              (this._isCursorUndoRedo = !1),
              (this._undoStack = []),
              (this._redoStack = []),
              this._register(
                e.onDidChangeModel((e) => {
                  (this._undoStack = []), (this._redoStack = []);
                })
              ),
              this._register(
                e.onDidChangeModelContent((e) => {
                  (this._undoStack = []), (this._redoStack = []);
                })
              ),
              this._register(
                e.onDidChangeCursorSelection((t) => {
                  if (this._isCursorUndoRedo) return;
                  if (!t.oldSelections) return;
                  if (t.oldModelVersionId !== t.modelVersionId) return;
                  const i = new a(t.oldSelections);
                  (this._undoStack.length > 0 &&
                    this._undoStack[
                      this._undoStack.length - 1
                    ].cursorState.equals(i)) ||
                    (this._undoStack.push(
                      new l(i, e.getScrollTop(), e.getScrollLeft())
                    ),
                    (this._redoStack = []),
                    this._undoStack.length > 50 && this._undoStack.shift());
                })
              );
          }
          static get(e) {
            return e.getContribution(c.ID);
          }
          cursorUndo() {
            this._editor.hasModel() &&
              0 !== this._undoStack.length &&
              (this._redoStack.push(
                new l(
                  new a(this._editor.getSelections()),
                  this._editor.getScrollTop(),
                  this._editor.getScrollLeft()
                )
              ),
              this._applyState(this._undoStack.pop()));
          }
          cursorRedo() {
            this._editor.hasModel() &&
              0 !== this._redoStack.length &&
              (this._undoStack.push(
                new l(
                  new a(this._editor.getSelections()),
                  this._editor.getScrollTop(),
                  this._editor.getScrollLeft()
                )
              ),
              this._applyState(this._redoStack.pop()));
          }
          _applyState(e) {
            (this._isCursorUndoRedo = !0),
              this._editor.setSelections(e.cursorState.selections),
              this._editor.setScrollPosition({
                scrollTop: e.scrollTop,
                scrollLeft: e.scrollLeft,
              }),
              (this._isCursorUndoRedo = !1);
          }
        }
        c.ID = 'editor.contrib.cursorUndoRedoController';
        class d extends s.R6 {
          constructor() {
            super({
              id: 'cursorUndo',
              label: n.N('cursor.undo', 'Cursor Undo'),
              alias: 'Cursor Undo',
              precondition: void 0,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 2099,
                weight: 100,
              },
            });
          }
          run(e, t, i) {
            c.get(t).cursorUndo();
          }
        }
        class h extends s.R6 {
          constructor() {
            super({
              id: 'cursorRedo',
              label: n.N('cursor.redo', 'Cursor Redo'),
              alias: 'Cursor Redo',
              precondition: void 0,
            });
          }
          run(e, t, i) {
            c.get(t).cursorRedo();
          }
        }
        (0, s._K)(c.ID, c), (0, s.Qr)(d), (0, s.Qr)(h);
      },
      7441: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { DragAndDropController: () => u });
        var n = i(5976),
          r = i(1432),
          s = i(16830),
          o = i(50187),
          a = i(24314),
          l = i(3860);
        class c {
          constructor(e, t, i) {
            (this.selection = e),
              (this.targetPosition = t),
              (this.copy = i),
              (this.targetSelection = null);
          }
          getEditOperations(e, t) {
            let i = e.getValueInRange(this.selection);
            this.copy || t.addEditOperation(this.selection, null),
              t.addEditOperation(
                new a.e(
                  this.targetPosition.lineNumber,
                  this.targetPosition.column,
                  this.targetPosition.lineNumber,
                  this.targetPosition.column
                ),
                i
              ),
              !this.selection.containsPosition(this.targetPosition) ||
              (this.copy &&
                (this.selection.getEndPosition().equals(this.targetPosition) ||
                  this.selection
                    .getStartPosition()
                    .equals(this.targetPosition)))
                ? this.copy
                  ? (this.targetSelection = new l.Y(
                      this.targetPosition.lineNumber,
                      this.targetPosition.column,
                      this.selection.endLineNumber -
                        this.selection.startLineNumber +
                        this.targetPosition.lineNumber,
                      this.selection.startLineNumber ===
                      this.selection.endLineNumber
                        ? this.targetPosition.column +
                          this.selection.endColumn -
                          this.selection.startColumn
                        : this.selection.endColumn
                    ))
                  : this.targetPosition.lineNumber >
                    this.selection.endLineNumber
                  ? (this.targetSelection = new l.Y(
                      this.targetPosition.lineNumber -
                        this.selection.endLineNumber +
                        this.selection.startLineNumber,
                      this.targetPosition.column,
                      this.targetPosition.lineNumber,
                      this.selection.startLineNumber ===
                      this.selection.endLineNumber
                        ? this.targetPosition.column +
                          this.selection.endColumn -
                          this.selection.startColumn
                        : this.selection.endColumn
                    ))
                  : this.targetPosition.lineNumber <
                    this.selection.endLineNumber
                  ? (this.targetSelection = new l.Y(
                      this.targetPosition.lineNumber,
                      this.targetPosition.column,
                      this.targetPosition.lineNumber +
                        this.selection.endLineNumber -
                        this.selection.startLineNumber,
                      this.selection.startLineNumber ===
                      this.selection.endLineNumber
                        ? this.targetPosition.column +
                          this.selection.endColumn -
                          this.selection.startColumn
                        : this.selection.endColumn
                    ))
                  : this.selection.endColumn <= this.targetPosition.column
                  ? (this.targetSelection = new l.Y(
                      this.targetPosition.lineNumber -
                        this.selection.endLineNumber +
                        this.selection.startLineNumber,
                      (this.selection.startLineNumber,
                      this.selection.endLineNumber,
                      this.targetPosition.column -
                        this.selection.endColumn +
                        this.selection.startColumn),
                      this.targetPosition.lineNumber,
                      this.selection.startLineNumber ===
                      this.selection.endLineNumber
                        ? this.targetPosition.column
                        : this.selection.endColumn
                    ))
                  : (this.targetSelection = new l.Y(
                      this.targetPosition.lineNumber -
                        this.selection.endLineNumber +
                        this.selection.startLineNumber,
                      this.targetPosition.column,
                      this.targetPosition.lineNumber,
                      this.targetPosition.column +
                        this.selection.endColumn -
                        this.selection.startColumn
                    ))
                : (this.targetSelection = this.selection);
          }
          computeCursorState(e, t) {
            return this.targetSelection;
          }
        }
        var d = i(3411);
        function h(e) {
          return r.dz ? e.altKey : e.ctrlKey;
        }
        class u extends n.JT {
          constructor(e) {
            super(),
              (this._editor = e),
              this._register(
                this._editor.onMouseDown((e) => this._onEditorMouseDown(e))
              ),
              this._register(
                this._editor.onMouseUp((e) => this._onEditorMouseUp(e))
              ),
              this._register(
                this._editor.onMouseDrag((e) => this._onEditorMouseDrag(e))
              ),
              this._register(
                this._editor.onMouseDrop((e) => this._onEditorMouseDrop(e))
              ),
              this._register(
                this._editor.onKeyDown((e) => this.onEditorKeyDown(e))
              ),
              this._register(
                this._editor.onKeyUp((e) => this.onEditorKeyUp(e))
              ),
              this._register(
                this._editor.onDidBlurEditorWidget(() => this.onEditorBlur())
              ),
              this._register(
                this._editor.onDidBlurEditorText(() => this.onEditorBlur())
              ),
              (this._dndDecorationIds = []),
              (this._mouseDown = !1),
              (this._modifierPressed = !1),
              (this._dragSelection = null);
          }
          onEditorBlur() {
            this._removeDecoration(),
              (this._dragSelection = null),
              (this._mouseDown = !1),
              (this._modifierPressed = !1);
          }
          onEditorKeyDown(e) {
            this._editor.getOption(25) &&
              !this._editor.getOption(13) &&
              (h(e) && (this._modifierPressed = !0),
              this._mouseDown &&
                h(e) &&
                this._editor.updateOptions({ mouseStyle: 'copy' }));
          }
          onEditorKeyUp(e) {
            this._editor.getOption(25) &&
              !this._editor.getOption(13) &&
              (h(e) && (this._modifierPressed = !1),
              this._mouseDown &&
                e.keyCode === u.TRIGGER_KEY_VALUE &&
                this._editor.updateOptions({ mouseStyle: 'default' }));
          }
          _onEditorMouseDown(e) {
            this._mouseDown = !0;
          }
          _onEditorMouseUp(e) {
            (this._mouseDown = !1),
              this._editor.updateOptions({ mouseStyle: 'text' });
          }
          _onEditorMouseDrag(e) {
            let t = e.target;
            if (null === this._dragSelection) {
              let e = (this._editor.getSelections() || []).filter(
                (e) => t.position && e.containsPosition(t.position)
              );
              if (1 !== e.length) return;
              this._dragSelection = e[0];
            }
            h(e.event)
              ? this._editor.updateOptions({ mouseStyle: 'copy' })
              : this._editor.updateOptions({ mouseStyle: 'default' }),
              t.position &&
                (this._dragSelection.containsPosition(t.position)
                  ? this._removeDecoration()
                  : this.showAt(t.position));
          }
          _onEditorMouseDrop(e) {
            if (
              e.target &&
              (this._hitContent(e.target) || this._hitMargin(e.target)) &&
              e.target.position
            ) {
              let t = new o.L(
                e.target.position.lineNumber,
                e.target.position.column
              );
              if (null === this._dragSelection) {
                let i = null;
                if (e.event.shiftKey) {
                  let e = this._editor.getSelection();
                  if (e) {
                    const {
                      selectionStartLineNumber: n,
                      selectionStartColumn: r,
                    } = e;
                    i = [new l.Y(n, r, t.lineNumber, t.column)];
                  }
                } else
                  i = (this._editor.getSelections() || []).map((e) =>
                    e.containsPosition(t)
                      ? new l.Y(t.lineNumber, t.column, t.lineNumber, t.column)
                      : e
                  );
                this._editor.setSelections(i || [], 'mouse');
              } else
                (!this._dragSelection.containsPosition(t) ||
                  ((h(e.event) || this._modifierPressed) &&
                    (this._dragSelection.getEndPosition().equals(t) ||
                      this._dragSelection.getStartPosition().equals(t)))) &&
                  (this._editor.pushUndoStop(),
                  this._editor.executeCommand(
                    u.ID,
                    new c(
                      this._dragSelection,
                      t,
                      h(e.event) || this._modifierPressed
                    )
                  ),
                  this._editor.pushUndoStop());
            }
            this._editor.updateOptions({ mouseStyle: 'text' }),
              this._removeDecoration(),
              (this._dragSelection = null),
              (this._mouseDown = !1);
          }
          showAt(e) {
            let t = [
              {
                range: new a.e(e.lineNumber, e.column, e.lineNumber, e.column),
                options: u._DECORATION_OPTIONS,
              },
            ];
            (this._dndDecorationIds = this._editor.deltaDecorations(
              this._dndDecorationIds,
              t
            )),
              this._editor.revealPosition(e, 1);
          }
          _removeDecoration() {
            this._dndDecorationIds = this._editor.deltaDecorations(
              this._dndDecorationIds,
              []
            );
          }
          _hitContent(e) {
            return 6 === e.type || 7 === e.type;
          }
          _hitMargin(e) {
            return 2 === e.type || 3 === e.type || 4 === e.type;
          }
          dispose() {
            this._removeDecoration(),
              (this._dragSelection = null),
              (this._mouseDown = !1),
              (this._modifierPressed = !1),
              super.dispose();
          }
        }
        (u.ID = 'editor.contrib.dragAndDrop'),
          (u.TRIGGER_KEY_VALUE = r.dz ? 6 : 5),
          (u._DECORATION_OPTIONS = d.qx.register({ className: 'dnd-target' })),
          (0, s._K)(u.ID, u);
      },
      86895: (e, t, i) => {
        'use strict';
        i.d(t, { sT: () => h, C3: () => g });
        var n = i(9488),
          r = i(71050),
          s = i(17301),
          o = i(43702),
          a = i(43775),
          l = i(53725),
          c = i(59870);
        class d {
          remove() {
            this.parent && this.parent.children.delete(this.id);
          }
          static findId(e, t) {
            let i;
            'string' == typeof e
              ? (i = `${t.id}/${e}`)
              : ((i = `${t.id}/${e.name}`),
                void 0 !== t.children.get(i) &&
                  (i = `${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));
            let n = i;
            for (let e = 0; void 0 !== t.children.get(n); e++) n = `${i}_${e}`;
            return n;
          }
          static empty(e) {
            return 0 === e.children.size;
          }
        }
        class h extends d {
          constructor(e, t, i) {
            super(),
              (this.id = e),
              (this.parent = t),
              (this.symbol = i),
              (this.children = new Map());
          }
        }
        class u extends d {
          constructor(e, t, i, n) {
            super(),
              (this.id = e),
              (this.parent = t),
              (this.label = i),
              (this.order = n),
              (this.children = new Map());
          }
        }
        class g extends d {
          constructor(e) {
            super(),
              (this.uri = e),
              (this.id = 'root'),
              (this.parent = void 0),
              (this._groups = new Map()),
              (this.children = new Map()),
              (this.id = 'root'),
              (this.parent = void 0);
          }
          static create(e, t) {
            let i = this._keys.for(e, !0),
              n = g._requests.get(i);
            if (!n) {
              let t = new r.A();
              (n = {
                promiseCnt: 0,
                source: t,
                promise: g._create(e, t.token),
                model: void 0,
              }),
                g._requests.set(i, n);
              const s = Date.now();
              n.promise.then(() => {
                let t = this._keys.for(e, !1),
                  i = this._requestDurations.get(t);
                i || ((i = new c.n()), this._requestDurations.set(t, i)),
                  i.update(Date.now() - s);
              });
            }
            return n.model
              ? Promise.resolve(n.model)
              : ((n.promiseCnt += 1),
                t.onCancellationRequested(() => {
                  0 == --n.promiseCnt &&
                    (n.source.cancel(), g._requests.delete(i));
                }),
                new Promise((e, t) => {
                  n.promise.then(
                    (t) => {
                      (n.model = t), e(t);
                    },
                    (e) => {
                      g._requests.delete(i), t(e);
                    }
                  );
                }));
          }
          static _create(e, t) {
            const i = new r.A(t),
              o = new g(e.uri),
              l = a.vJ.ordered(e),
              c = l.map((t, n) => {
                var r;
                let a = d.findId(`provider_${n}`, o),
                  l = new u(
                    a,
                    o,
                    null !== (r = t.displayName) && void 0 !== r
                      ? r
                      : 'Unknown Outline Provider',
                    n
                  );
                return Promise.resolve(t.provideDocumentSymbols(e, i.token))
                  .then(
                    (e) => {
                      for (const t of e || []) g._makeOutlineElement(t, l);
                      return l;
                    },
                    (e) => ((0, s.Cp)(e), l)
                  )
                  .then((e) => {
                    d.empty(e) ? e.remove() : o._groups.set(a, e);
                  });
              }),
              h = a.vJ.onDidChange(() => {
                const t = a.vJ.ordered(e);
                (0, n.fS)(t, l) || i.cancel();
              });
            return Promise.all(c)
              .then(() =>
                i.token.isCancellationRequested && !t.isCancellationRequested
                  ? g._create(e, t)
                  : o._compact()
              )
              .finally(() => {
                h.dispose();
              });
          }
          static _makeOutlineElement(e, t) {
            let i = d.findId(e, t),
              n = new h(i, t, e);
            if (e.children)
              for (const t of e.children) g._makeOutlineElement(t, n);
            t.children.set(n.id, n);
          }
          _compact() {
            let e = 0;
            for (const [t, i] of this._groups)
              0 === i.children.size ? this._groups.delete(t) : (e += 1);
            if (1 !== e) this.children = this._groups;
            else {
              let e = l.$.first(this._groups.values());
              for (let [, t] of e.children)
                (t.parent = this), this.children.set(t.id, t);
            }
            return this;
          }
        }
        (g._requestDurations = new o.z6(50, 0.7)),
          (g._requests = new o.z6(9, 0.75)),
          (g._keys = new (class {
            constructor() {
              (this._counter = 1), (this._data = new WeakMap());
            }
            for(e, t) {
              return `${e.id}/${t ? e.getVersionId() : ''}/${this._hash(
                a.vJ.all(e)
              )}`;
            }
            _hash(e) {
              let t = '';
              for (const i of e) {
                let e = this._data.get(i);
                void 0 === e && ((e = this._counter++), this._data.set(i, e)),
                  (t += e);
              }
              return t;
            }
          })());
      },
      93391: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CommonFindController: () => bt,
            EditorStartFindAction: () => Tt,
            EditorStartFindReplaceAction: () => It,
            FindController: () => vt,
            MatchFindAction: () => Ct,
            NextMatchFindAction: () => St,
            NextMatchFindAction2: () => kt,
            NextSelectionMatchFindAction: () => Dt,
            PreviousMatchFindAction: () => xt,
            PreviousMatchFindAction2: () => Lt,
            PreviousSelectionMatchFindAction: () => Nt,
            SelectionMatchFindAction: () => Mt,
            StartFindAction: () => yt,
            StartFindReplaceAction: () => Et,
            StartFindWithSelectionAction: () => wt,
            getSelectionSearchString: () => _t,
          });
        var n = i(63580),
          r = i(15393),
          s = i(5976),
          o = i(97295),
          a = i(16830),
          l = i(29102),
          c = i(61329),
          d = i(50187),
          h = i(24314),
          u = i(3860),
          g = i(77277),
          f = i(84973),
          p = i(3411),
          m = i(73910),
          _ = i(97781);
        class b {
          constructor(e) {
            (this._editor = e),
              (this._decorations = []),
              (this._overviewRulerApproximateDecorations = []),
              (this._findScopeDecorationIds = []),
              (this._rangeHighlightDecorationId = null),
              (this._highlightedDecorationId = null),
              (this._startPosition = this._editor.getPosition());
          }
          dispose() {
            this._editor.deltaDecorations(this._allDecorations(), []),
              (this._decorations = []),
              (this._overviewRulerApproximateDecorations = []),
              (this._findScopeDecorationIds = []),
              (this._rangeHighlightDecorationId = null),
              (this._highlightedDecorationId = null);
          }
          reset() {
            (this._decorations = []),
              (this._overviewRulerApproximateDecorations = []),
              (this._findScopeDecorationIds = []),
              (this._rangeHighlightDecorationId = null),
              (this._highlightedDecorationId = null);
          }
          getCount() {
            return this._decorations.length;
          }
          getFindScope() {
            return this._findScopeDecorationIds[0]
              ? this._editor
                  .getModel()
                  .getDecorationRange(this._findScopeDecorationIds[0])
              : null;
          }
          getFindScopes() {
            if (this._findScopeDecorationIds.length) {
              const e = this._findScopeDecorationIds
                .map((e) => this._editor.getModel().getDecorationRange(e))
                .filter((e) => !!e);
              if (e.length) return e;
            }
            return null;
          }
          getStartPosition() {
            return this._startPosition;
          }
          setStartPosition(e) {
            (this._startPosition = e), this.setCurrentFindMatch(null);
          }
          _getDecorationIndex(e) {
            const t = this._decorations.indexOf(e);
            return t >= 0 ? t + 1 : 1;
          }
          getCurrentMatchesPosition(e) {
            let t = this._editor.getModel().getDecorationsInRange(e);
            for (const e of t) {
              const t = e.options;
              if (
                t === b._FIND_MATCH_DECORATION ||
                t === b._CURRENT_FIND_MATCH_DECORATION
              )
                return this._getDecorationIndex(e.id);
            }
            return 0;
          }
          setCurrentFindMatch(e) {
            let t = null,
              i = 0;
            if (e)
              for (let n = 0, r = this._decorations.length; n < r; n++) {
                let r = this._editor
                  .getModel()
                  .getDecorationRange(this._decorations[n]);
                if (e.equalsRange(r)) {
                  (t = this._decorations[n]), (i = n + 1);
                  break;
                }
              }
            return (
              (null === this._highlightedDecorationId && null === t) ||
                this._editor.changeDecorations((e) => {
                  if (
                    (null !== this._highlightedDecorationId &&
                      (e.changeDecorationOptions(
                        this._highlightedDecorationId,
                        b._FIND_MATCH_DECORATION
                      ),
                      (this._highlightedDecorationId = null)),
                    null !== t &&
                      ((this._highlightedDecorationId = t),
                      e.changeDecorationOptions(
                        this._highlightedDecorationId,
                        b._CURRENT_FIND_MATCH_DECORATION
                      )),
                    null !== this._rangeHighlightDecorationId &&
                      (e.removeDecoration(this._rangeHighlightDecorationId),
                      (this._rangeHighlightDecorationId = null)),
                    null !== t)
                  ) {
                    let i = this._editor.getModel().getDecorationRange(t);
                    if (
                      i.startLineNumber !== i.endLineNumber &&
                      1 === i.endColumn
                    ) {
                      let e = i.endLineNumber - 1,
                        t = this._editor.getModel().getLineMaxColumn(e);
                      i = new h.e(i.startLineNumber, i.startColumn, e, t);
                    }
                    this._rangeHighlightDecorationId = e.addDecoration(
                      i,
                      b._RANGE_HIGHLIGHT_DECORATION
                    );
                  }
                }),
              i
            );
          }
          set(e, t) {
            this._editor.changeDecorations((i) => {
              let n = b._FIND_MATCH_DECORATION,
                r = [];
              if (e.length > 1e3) {
                n = b._FIND_MATCH_NO_OVERVIEW_DECORATION;
                const t = this._editor.getModel().getLineCount(),
                  i = this._editor.getLayoutInfo().height / t,
                  s = Math.max(2, Math.ceil(3 / i));
                let o = e[0].range.startLineNumber,
                  a = e[0].range.endLineNumber;
                for (let t = 1, i = e.length; t < i; t++) {
                  const i = e[t].range;
                  a + s >= i.startLineNumber
                    ? i.endLineNumber > a && (a = i.endLineNumber)
                    : (r.push({
                        range: new h.e(o, 1, a, 1),
                        options: b._FIND_MATCH_ONLY_OVERVIEW_DECORATION,
                      }),
                      (o = i.startLineNumber),
                      (a = i.endLineNumber));
                }
                r.push({
                  range: new h.e(o, 1, a, 1),
                  options: b._FIND_MATCH_ONLY_OVERVIEW_DECORATION,
                });
              }
              let s = new Array(e.length);
              for (let t = 0, i = e.length; t < i; t++)
                s[t] = { range: e[t].range, options: n };
              (this._decorations = i.deltaDecorations(this._decorations, s)),
                (this._overviewRulerApproximateDecorations = i.deltaDecorations(
                  this._overviewRulerApproximateDecorations,
                  r
                )),
                this._rangeHighlightDecorationId &&
                  (i.removeDecoration(this._rangeHighlightDecorationId),
                  (this._rangeHighlightDecorationId = null)),
                this._findScopeDecorationIds.length &&
                  (this._findScopeDecorationIds.forEach((e) =>
                    i.removeDecoration(e)
                  ),
                  (this._findScopeDecorationIds = [])),
                (null == t ? void 0 : t.length) &&
                  (this._findScopeDecorationIds = t.map((e) =>
                    i.addDecoration(e, b._FIND_SCOPE_DECORATION)
                  ));
            });
          }
          matchBeforePosition(e) {
            if (0 === this._decorations.length) return null;
            for (let t = this._decorations.length - 1; t >= 0; t--) {
              let i = this._decorations[t],
                n = this._editor.getModel().getDecorationRange(i);
              if (n && !(n.endLineNumber > e.lineNumber)) {
                if (n.endLineNumber < e.lineNumber) return n;
                if (!(n.endColumn > e.column)) return n;
              }
            }
            return this._editor
              .getModel()
              .getDecorationRange(
                this._decorations[this._decorations.length - 1]
              );
          }
          matchAfterPosition(e) {
            if (0 === this._decorations.length) return null;
            for (let t = 0, i = this._decorations.length; t < i; t++) {
              let i = this._decorations[t],
                n = this._editor.getModel().getDecorationRange(i);
              if (n && !(n.startLineNumber < e.lineNumber)) {
                if (n.startLineNumber > e.lineNumber) return n;
                if (!(n.startColumn < e.column)) return n;
              }
            }
            return this._editor
              .getModel()
              .getDecorationRange(this._decorations[0]);
          }
          _allDecorations() {
            let e = [];
            return (
              (e = e.concat(this._decorations)),
              (e = e.concat(this._overviewRulerApproximateDecorations)),
              this._findScopeDecorationIds.length &&
                e.push(...this._findScopeDecorationIds),
              this._rangeHighlightDecorationId &&
                e.push(this._rangeHighlightDecorationId),
              e
            );
          }
        }
        (b._CURRENT_FIND_MATCH_DECORATION = p.qx.register({
          stickiness: 1,
          zIndex: 13,
          className: 'currentFindMatch',
          showIfCollapsed: !0,
          overviewRuler: { color: (0, _.EN)(m.Fm), position: f.sh.Center },
          minimap: { color: (0, _.EN)(m.KT), position: f.F5.Inline },
        })),
          (b._FIND_MATCH_DECORATION = p.qx.register({
            stickiness: 1,
            className: 'findMatch',
            showIfCollapsed: !0,
            overviewRuler: { color: (0, _.EN)(m.Fm), position: f.sh.Center },
            minimap: { color: (0, _.EN)(m.KT), position: f.F5.Inline },
          })),
          (b._FIND_MATCH_NO_OVERVIEW_DECORATION = p.qx.register({
            stickiness: 1,
            className: 'findMatch',
            showIfCollapsed: !0,
          })),
          (b._FIND_MATCH_ONLY_OVERVIEW_DECORATION = p.qx.register({
            stickiness: 1,
            overviewRuler: { color: (0, _.EN)(m.Fm), position: f.sh.Center },
          })),
          (b._RANGE_HIGHLIGHT_DECORATION = p.qx.register({
            stickiness: 1,
            className: 'rangeHighlight',
            isWholeLine: !0,
          })),
          (b._FIND_SCOPE_DECORATION = p.qx.register({
            className: 'findScope',
            isWholeLine: !0,
          }));
        class v {
          constructor(e, t, i) {
            (this._editorSelection = e),
              (this._ranges = t),
              (this._replaceStrings = i),
              (this._trackedEditorSelectionId = null);
          }
          getEditOperations(e, t) {
            if (this._ranges.length > 0) {
              let e = [];
              for (let t = 0; t < this._ranges.length; t++)
                e.push({
                  range: this._ranges[t],
                  text: this._replaceStrings[t],
                });
              e.sort((e, t) => h.e.compareRangesUsingStarts(e.range, t.range));
              let i = [],
                n = e[0];
              for (let t = 1; t < e.length; t++)
                n.range.endLineNumber === e[t].range.startLineNumber &&
                n.range.endColumn === e[t].range.startColumn
                  ? ((n.range = n.range.plusRange(e[t].range)),
                    (n.text = n.text + e[t].text))
                  : (i.push(n), (n = e[t]));
              i.push(n);
              for (const e of i) t.addEditOperation(e.range, e.text);
            }
            this._trackedEditorSelectionId = t.trackSelection(
              this._editorSelection
            );
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this._trackedEditorSelectionId);
          }
        }
        function y(e, t) {
          if (e && '' !== e[0]) {
            const i = w(e, t, '-'),
              n = w(e, t, '_');
            return i && !n
              ? C(e, t, '-')
              : !i && n
              ? C(e, t, '_')
              : e[0].toUpperCase() === e[0]
              ? t.toUpperCase()
              : e[0].toLowerCase() === e[0]
              ? t.toLowerCase()
              : o.Kw(e[0][0]) && t.length > 0
              ? t[0].toUpperCase() + t.substr(1)
              : t;
          }
          return t;
        }
        function w(e, t, i) {
          return (
            -1 !== e[0].indexOf(i) &&
            -1 !== t.indexOf(i) &&
            e[0].split(i).length === t.split(i).length
          );
        }
        function C(e, t, i) {
          const n = t.split(i),
            r = e[0].split(i);
          let s = '';
          return (
            n.forEach((e, t) => {
              s += y([r[t]], e) + i;
            }),
            s.slice(0, -1)
          );
        }
        class S {
          constructor(e) {
            (this.staticValue = e), (this.kind = 0);
          }
        }
        class k {
          constructor(e) {
            (this.pieces = e), (this.kind = 1);
          }
        }
        class x {
          constructor(e) {
            e && 0 !== e.length
              ? 1 === e.length && null !== e[0].staticValue
                ? (this._state = new S(e[0].staticValue))
                : (this._state = new k(e))
              : (this._state = new S(''));
          }
          static fromStaticValue(e) {
            return new x([L.staticValue(e)]);
          }
          get hasReplacementPatterns() {
            return 1 === this._state.kind;
          }
          buildReplaceString(e, t) {
            if (0 === this._state.kind)
              return t
                ? y(e, this._state.staticValue)
                : this._state.staticValue;
            let i = '';
            for (let t = 0, n = this._state.pieces.length; t < n; t++) {
              let n = this._state.pieces[t];
              if (null !== n.staticValue) {
                i += n.staticValue;
                continue;
              }
              let r = x._substitute(n.matchIndex, e);
              if (null !== n.caseOps && n.caseOps.length > 0) {
                let e = [],
                  t = n.caseOps.length,
                  i = 0;
                for (let s = 0, o = r.length; s < o; s++) {
                  if (i >= t) {
                    e.push(r.slice(s));
                    break;
                  }
                  switch (n.caseOps[i]) {
                    case 'U':
                      e.push(r[s].toUpperCase());
                      break;
                    case 'u':
                      e.push(r[s].toUpperCase()), i++;
                      break;
                    case 'L':
                      e.push(r[s].toLowerCase());
                      break;
                    case 'l':
                      e.push(r[s].toLowerCase()), i++;
                      break;
                    default:
                      e.push(r[s]);
                  }
                }
                r = e.join('');
              }
              i += r;
            }
            return i;
          }
          static _substitute(e, t) {
            if (null === t) return '';
            if (0 === e) return t[0];
            let i = '';
            for (; e > 0; ) {
              if (e < t.length) return (t[e] || '') + i;
              (i = String(e % 10) + i), (e = Math.floor(e / 10));
            }
            return '$' + i;
          }
        }
        class L {
          constructor(e, t, i) {
            (this.staticValue = e),
              (this.matchIndex = t),
              i && 0 !== i.length
                ? (this.caseOps = i.slice(0))
                : (this.caseOps = null);
          }
          static staticValue(e) {
            return new L(e, -1, null);
          }
          static caseOps(e, t) {
            return new L(null, e, t);
          }
        }
        class M {
          constructor(e) {
            (this._source = e),
              (this._lastCharIndex = 0),
              (this._result = []),
              (this._resultLen = 0),
              (this._currentStaticPiece = '');
          }
          emitUnchanged(e) {
            this._emitStatic(this._source.substring(this._lastCharIndex, e)),
              (this._lastCharIndex = e);
          }
          emitStatic(e, t) {
            this._emitStatic(e), (this._lastCharIndex = t);
          }
          _emitStatic(e) {
            0 !== e.length && (this._currentStaticPiece += e);
          }
          emitMatchIndex(e, t, i) {
            0 !== this._currentStaticPiece.length &&
              ((this._result[this._resultLen++] = L.staticValue(
                this._currentStaticPiece
              )),
              (this._currentStaticPiece = '')),
              (this._result[this._resultLen++] = L.caseOps(e, i)),
              (this._lastCharIndex = t);
          }
          finalize() {
            return (
              this.emitUnchanged(this._source.length),
              0 !== this._currentStaticPiece.length &&
                ((this._result[this._resultLen++] = L.staticValue(
                  this._currentStaticPiece
                )),
                (this._currentStaticPiece = '')),
              new x(this._result)
            );
          }
        }
        var D = i(38819),
          N = i(9488);
        const E = new D.uy('findWidgetVisible', !1),
          T = new D.uy('findInputFocussed', !1),
          I = new D.uy('replaceInputFocussed', !1),
          O = { primary: 545, mac: { primary: 2593 } },
          A = { primary: 565, mac: { primary: 2613 } },
          R = { primary: 560, mac: { primary: 2608 } },
          P = { primary: 554, mac: { primary: 2602 } },
          F = 'editor.action.nextMatchFindAction',
          B = 'editor.action.previousMatchFindAction',
          W = 'closeFindWidget',
          Y = 'toggleFindCaseSensitive',
          H = 'toggleFindWholeWord',
          j = 'toggleFindRegex',
          V = 'toggleFindInSelection',
          z = 'editor.action.replaceOne',
          U = 'editor.action.replaceAll',
          $ = 19999;
        class K {
          constructor(e, t) {
            (this._toDispose = new s.SL()),
              (this._editor = e),
              (this._state = t),
              (this._isDisposed = !1),
              (this._startSearchingTimer = new r._F()),
              (this._decorations = new b(e)),
              this._toDispose.add(this._decorations),
              (this._updateDecorationsScheduler = new r.pY(
                () => this.research(!1),
                100
              )),
              this._toDispose.add(this._updateDecorationsScheduler),
              this._toDispose.add(
                this._editor.onDidChangeCursorPosition((e) => {
                  (3 !== e.reason && 5 !== e.reason && 6 !== e.reason) ||
                    this._decorations.setStartPosition(
                      this._editor.getPosition()
                    );
                })
              ),
              (this._ignoreModelContentChanged = !1),
              this._toDispose.add(
                this._editor.onDidChangeModelContent((e) => {
                  this._ignoreModelContentChanged ||
                    (e.isFlush && this._decorations.reset(),
                    this._decorations.setStartPosition(
                      this._editor.getPosition()
                    ),
                    this._updateDecorationsScheduler.schedule());
                })
              ),
              this._toDispose.add(
                this._state.onFindReplaceStateChange((e) =>
                  this._onStateChanged(e)
                )
              ),
              this.research(!1, this._state.searchScope);
          }
          dispose() {
            (this._isDisposed = !0),
              (0, s.B9)(this._startSearchingTimer),
              this._toDispose.dispose();
          }
          _onStateChanged(e) {
            !this._isDisposed &&
              this._editor.hasModel() &&
              (e.searchString ||
                e.isReplaceRevealed ||
                e.isRegex ||
                e.wholeWord ||
                e.matchCase ||
                e.searchScope) &&
              (this._editor.getModel().isTooLargeForSyncing()
                ? (this._startSearchingTimer.cancel(),
                  this._startSearchingTimer.setIfNotSet(() => {
                    e.searchScope
                      ? this.research(e.moveCursor, this._state.searchScope)
                      : this.research(e.moveCursor);
                  }, 240))
                : e.searchScope
                ? this.research(e.moveCursor, this._state.searchScope)
                : this.research(e.moveCursor));
          }
          static _getSearchRange(e, t) {
            return t || e.getFullModelRange();
          }
          research(e, t) {
            let i = null;
            void 0 !== t
              ? null !== t && (i = Array.isArray(t) ? t : [t])
              : (i = this._decorations.getFindScopes()),
              null !== i &&
                (i = i.map((e) => {
                  if (e.startLineNumber !== e.endLineNumber) {
                    let t = e.endLineNumber;
                    return (
                      1 === e.endColumn && (t -= 1),
                      new h.e(
                        e.startLineNumber,
                        1,
                        t,
                        this._editor.getModel().getLineMaxColumn(t)
                      )
                    );
                  }
                  return e;
                }));
            let n = this._findMatches(i, !1, $);
            this._decorations.set(n, i);
            const r = this._editor.getSelection();
            let s = this._decorations.getCurrentMatchesPosition(r);
            if (0 === s && n.length > 0) {
              const e = (0, N.lG)(
                n.map((e) => e.range),
                (e) => h.e.compareRangesUsingStarts(e, r) >= 0
              );
              s = e > 0 ? e - 1 + 1 : s;
            }
            this._state.changeMatchInfo(
              s,
              this._decorations.getCount(),
              void 0
            ),
              e &&
                this._editor.getOption(29).cursorMoveOnType &&
                this._moveToNextMatch(this._decorations.getStartPosition());
          }
          _hasMatches() {
            return this._state.matchesCount > 0;
          }
          _cannotFind() {
            if (!this._hasMatches()) {
              let e = this._decorations.getFindScope();
              return (
                e && this._editor.revealRangeInCenterIfOutsideViewport(e, 0), !0
              );
            }
            return !1;
          }
          _setCurrentFindMatch(e) {
            let t = this._decorations.setCurrentFindMatch(e);
            this._state.changeMatchInfo(t, this._decorations.getCount(), e),
              this._editor.setSelection(e),
              this._editor.revealRangeInCenterIfOutsideViewport(e, 0);
          }
          _prevSearchPosition(e) {
            let t =
                this._state.isRegex &&
                (this._state.searchString.indexOf('^') >= 0 ||
                  this._state.searchString.indexOf('$') >= 0),
              { lineNumber: i, column: n } = e,
              r = this._editor.getModel();
            return (
              t || 1 === n
                ? (1 === i ? (i = r.getLineCount()) : i--,
                  (n = r.getLineMaxColumn(i)))
                : n--,
              new d.L(i, n)
            );
          }
          _moveToPrevMatch(e, t = !1) {
            if (!this._state.canNavigateBack()) {
              const t = this._decorations.matchAfterPosition(e);
              return void (t && this._setCurrentFindMatch(t));
            }
            if (this._decorations.getCount() < $) {
              let t = this._decorations.matchBeforePosition(e);
              return (
                t &&
                  t.isEmpty() &&
                  t.getStartPosition().equals(e) &&
                  ((e = this._prevSearchPosition(e)),
                  (t = this._decorations.matchBeforePosition(e))),
                void (t && this._setCurrentFindMatch(t))
              );
            }
            if (this._cannotFind()) return;
            let i = this._decorations.getFindScope(),
              n = K._getSearchRange(this._editor.getModel(), i);
            n.getEndPosition().isBefore(e) && (e = n.getEndPosition()),
              e.isBefore(n.getStartPosition()) && (e = n.getEndPosition());
            let { lineNumber: r, column: s } = e,
              o = this._editor.getModel(),
              a = new d.L(r, s),
              l = o.findPreviousMatch(
                this._state.searchString,
                a,
                this._state.isRegex,
                this._state.matchCase,
                this._state.wholeWord ? this._editor.getOption(105) : null,
                !1
              );
            return (
              l &&
                l.range.isEmpty() &&
                l.range.getStartPosition().equals(a) &&
                ((a = this._prevSearchPosition(a)),
                (l = o.findPreviousMatch(
                  this._state.searchString,
                  a,
                  this._state.isRegex,
                  this._state.matchCase,
                  this._state.wholeWord ? this._editor.getOption(105) : null,
                  !1
                ))),
              l
                ? t || n.containsRange(l.range)
                  ? void this._setCurrentFindMatch(l.range)
                  : this._moveToPrevMatch(l.range.getStartPosition(), !0)
                : void 0
            );
          }
          moveToPrevMatch() {
            this._moveToPrevMatch(
              this._editor.getSelection().getStartPosition()
            );
          }
          _nextSearchPosition(e) {
            let t =
                this._state.isRegex &&
                (this._state.searchString.indexOf('^') >= 0 ||
                  this._state.searchString.indexOf('$') >= 0),
              { lineNumber: i, column: n } = e,
              r = this._editor.getModel();
            return (
              t || n === r.getLineMaxColumn(i)
                ? (i === r.getLineCount() ? (i = 1) : i++, (n = 1))
                : n++,
              new d.L(i, n)
            );
          }
          _moveToNextMatch(e) {
            if (!this._state.canNavigateForward()) {
              const t = this._decorations.matchBeforePosition(e);
              return void (t && this._setCurrentFindMatch(t));
            }
            if (this._decorations.getCount() < $) {
              let t = this._decorations.matchAfterPosition(e);
              return (
                t &&
                  t.isEmpty() &&
                  t.getStartPosition().equals(e) &&
                  ((e = this._nextSearchPosition(e)),
                  (t = this._decorations.matchAfterPosition(e))),
                void (t && this._setCurrentFindMatch(t))
              );
            }
            let t = this._getNextMatch(e, !1, !0);
            t && this._setCurrentFindMatch(t.range);
          }
          _getNextMatch(e, t, i, n = !1) {
            if (this._cannotFind()) return null;
            let r = this._decorations.getFindScope(),
              s = K._getSearchRange(this._editor.getModel(), r);
            s.getEndPosition().isBefore(e) && (e = s.getStartPosition()),
              e.isBefore(s.getStartPosition()) && (e = s.getStartPosition());
            let { lineNumber: o, column: a } = e,
              l = this._editor.getModel(),
              c = new d.L(o, a),
              h = l.findNextMatch(
                this._state.searchString,
                c,
                this._state.isRegex,
                this._state.matchCase,
                this._state.wholeWord ? this._editor.getOption(105) : null,
                t
              );
            return (
              i &&
                h &&
                h.range.isEmpty() &&
                h.range.getStartPosition().equals(c) &&
                ((c = this._nextSearchPosition(c)),
                (h = l.findNextMatch(
                  this._state.searchString,
                  c,
                  this._state.isRegex,
                  this._state.matchCase,
                  this._state.wholeWord ? this._editor.getOption(105) : null,
                  t
                ))),
              h
                ? n || s.containsRange(h.range)
                  ? h
                  : this._getNextMatch(h.range.getEndPosition(), t, i, !0)
                : null
            );
          }
          moveToNextMatch() {
            this._moveToNextMatch(this._editor.getSelection().getEndPosition());
          }
          _getReplacePattern() {
            return this._state.isRegex
              ? (function (e) {
                  if (!e || 0 === e.length) return new x(null);
                  let t = [],
                    i = new M(e);
                  for (let n = 0, r = e.length; n < r; n++) {
                    let s = e.charCodeAt(n);
                    if (92 !== s) {
                      if (36 === s) {
                        if ((n++, n >= r)) break;
                        let s = e.charCodeAt(n);
                        if (36 === s) {
                          i.emitUnchanged(n - 1), i.emitStatic('$', n + 1);
                          continue;
                        }
                        if (48 === s || 38 === s) {
                          i.emitUnchanged(n - 1),
                            i.emitMatchIndex(0, n + 1, t),
                            (t.length = 0);
                          continue;
                        }
                        if (49 <= s && s <= 57) {
                          let o = s - 48;
                          if (n + 1 < r) {
                            let r = e.charCodeAt(n + 1);
                            if (48 <= r && r <= 57) {
                              n++,
                                (o = 10 * o + (r - 48)),
                                i.emitUnchanged(n - 2),
                                i.emitMatchIndex(o, n + 1, t),
                                (t.length = 0);
                              continue;
                            }
                          }
                          i.emitUnchanged(n - 1),
                            i.emitMatchIndex(o, n + 1, t),
                            (t.length = 0);
                          continue;
                        }
                      }
                    } else {
                      if ((n++, n >= r)) break;
                      let s = e.charCodeAt(n);
                      switch (s) {
                        case 92:
                          i.emitUnchanged(n - 1), i.emitStatic('\\', n + 1);
                          break;
                        case 110:
                          i.emitUnchanged(n - 1), i.emitStatic('\n', n + 1);
                          break;
                        case 116:
                          i.emitUnchanged(n - 1), i.emitStatic('\t', n + 1);
                          break;
                        case 117:
                        case 85:
                        case 108:
                        case 76:
                          i.emitUnchanged(n - 1),
                            i.emitStatic('', n + 1),
                            t.push(String.fromCharCode(s));
                      }
                    }
                  }
                  return i.finalize();
                })(this._state.replaceString)
              : x.fromStaticValue(this._state.replaceString);
          }
          replace() {
            if (!this._hasMatches()) return;
            let e = this._getReplacePattern(),
              t = this._editor.getSelection(),
              i = this._getNextMatch(t.getStartPosition(), !0, !1);
            if (i)
              if (t.equalsRange(i.range)) {
                let n = e.buildReplaceString(
                    i.matches,
                    this._state.preserveCase
                  ),
                  r = new c.T4(t, n);
                this._executeEditorCommand('replace', r),
                  this._decorations.setStartPosition(
                    new d.L(t.startLineNumber, t.startColumn + n.length)
                  ),
                  this.research(!0);
              } else
                this._decorations.setStartPosition(this._editor.getPosition()),
                  this._setCurrentFindMatch(i.range);
          }
          _findMatches(e, t, i) {
            const n = (e || [null]).map((e) =>
              K._getSearchRange(this._editor.getModel(), e)
            );
            return this._editor
              .getModel()
              .findMatches(
                this._state.searchString,
                n,
                this._state.isRegex,
                this._state.matchCase,
                this._state.wholeWord ? this._editor.getOption(105) : null,
                t,
                i
              );
          }
          replaceAll() {
            if (!this._hasMatches()) return;
            const e = this._decorations.getFindScopes();
            null === e && this._state.matchesCount >= $
              ? this._largeReplaceAll()
              : this._regularReplaceAll(e),
              this.research(!1);
          }
          _largeReplaceAll() {
            const e = new g.bc(
              this._state.searchString,
              this._state.isRegex,
              this._state.matchCase,
              this._state.wholeWord ? this._editor.getOption(105) : null
            ).parseSearchRequest();
            if (!e) return;
            let t = e.regex;
            if (!t.multiline) {
              let e = 'mu';
              t.ignoreCase && (e += 'i'),
                t.global && (e += 'g'),
                (t = new RegExp(t.source, e));
            }
            const i = this._editor.getModel(),
              n = i.getValue(1),
              r = i.getFullModelRange(),
              s = this._getReplacePattern();
            let o;
            const a = this._state.preserveCase;
            o =
              s.hasReplacementPatterns || a
                ? n.replace(t, function () {
                    return s.buildReplaceString(arguments, a);
                  })
                : n.replace(t, s.buildReplaceString(null, a));
            let l = new c.hP(r, o, this._editor.getSelection());
            this._executeEditorCommand('replaceAll', l);
          }
          _regularReplaceAll(e) {
            const t = this._getReplacePattern();
            let i = this._findMatches(
                e,
                t.hasReplacementPatterns || this._state.preserveCase,
                1073741824
              ),
              n = [];
            for (let e = 0, r = i.length; e < r; e++)
              n[e] = t.buildReplaceString(
                i[e].matches,
                this._state.preserveCase
              );
            let r = new v(
              this._editor.getSelection(),
              i.map((e) => e.range),
              n
            );
            this._executeEditorCommand('replaceAll', r);
          }
          selectAllMatches() {
            if (!this._hasMatches()) return;
            let e = this._decorations.getFindScopes(),
              t = this._findMatches(e, !1, 1073741824).map(
                (e) =>
                  new u.Y(
                    e.range.startLineNumber,
                    e.range.startColumn,
                    e.range.endLineNumber,
                    e.range.endColumn
                  )
              ),
              i = this._editor.getSelection();
            for (let e = 0, n = t.length; e < n; e++)
              if (t[e].equalsRange(i)) {
                t = [i].concat(t.slice(0, e)).concat(t.slice(e + 1));
                break;
              }
            this._editor.setSelections(t);
          }
          _executeEditorCommand(e, t) {
            try {
              (this._ignoreModelContentChanged = !0),
                this._editor.pushUndoStop(),
                this._editor.executeCommand(e, t),
                this._editor.pushUndoStop();
            } finally {
              this._ignoreModelContentChanged = !1;
            }
          }
        }
        var q = i(65321),
          G = i(93794),
          Z = i(41264),
          J = i(4669);
        const Q = {
          inputActiveOptionBorder: Z.Il.fromHex('#007ACC00'),
          inputActiveOptionForeground: Z.Il.fromHex('#FFFFFF'),
          inputActiveOptionBackground: Z.Il.fromHex('#0E639C50'),
        };
        class X extends G.$ {
          constructor(e) {
            super(),
              (this._onChange = this._register(new J.Q5())),
              (this.onChange = this._onChange.event),
              (this._onKeyDown = this._register(new J.Q5())),
              (this.onKeyDown = this._onKeyDown.event),
              (this._opts = Object.assign(Object.assign({}, Q), e)),
              (this._checked = this._opts.isChecked);
            const t = ['monaco-custom-checkbox'];
            this._opts.icon
              ? t.push(this._opts.icon.classNames)
              : t.push('codicon'),
              this._opts.actionClassName && t.push(this._opts.actionClassName),
              t.push(this._checked ? 'checked' : 'unchecked'),
              (this.domNode = document.createElement('div')),
              (this.domNode.title = this._opts.title),
              (this.domNode.className = t.join(' ')),
              (this.domNode.tabIndex = 0),
              this.domNode.setAttribute('role', 'checkbox'),
              this.domNode.setAttribute('aria-checked', String(this._checked)),
              this.domNode.setAttribute('aria-label', this._opts.title),
              this.applyStyles(),
              this.onclick(this.domNode, (e) => {
                (this.checked = !this._checked),
                  this._onChange.fire(!1),
                  e.preventDefault();
              }),
              this.ignoreGesture(this.domNode),
              this.onkeydown(this.domNode, (e) => {
                if (10 === e.keyCode || 3 === e.keyCode)
                  return (
                    (this.checked = !this._checked),
                    this._onChange.fire(!0),
                    void e.preventDefault()
                  );
                this._onKeyDown.fire(e);
              });
          }
          get enabled() {
            return 'true' !== this.domNode.getAttribute('aria-disabled');
          }
          focus() {
            this.domNode.focus();
          }
          get checked() {
            return this._checked;
          }
          set checked(e) {
            (this._checked = e),
              this.domNode.setAttribute('aria-checked', String(this._checked)),
              this._checked
                ? this.domNode.classList.add('checked')
                : this.domNode.classList.remove('checked'),
              this.applyStyles();
          }
          width() {
            return 22;
          }
          style(e) {
            e.inputActiveOptionBorder &&
              (this._opts.inputActiveOptionBorder = e.inputActiveOptionBorder),
              e.inputActiveOptionForeground &&
                (this._opts.inputActiveOptionForeground =
                  e.inputActiveOptionForeground),
              e.inputActiveOptionBackground &&
                (this._opts.inputActiveOptionBackground =
                  e.inputActiveOptionBackground),
              this.applyStyles();
          }
          applyStyles() {
            this.domNode &&
              ((this.domNode.style.borderColor =
                this._checked && this._opts.inputActiveOptionBorder
                  ? this._opts.inputActiveOptionBorder.toString()
                  : 'transparent'),
              (this.domNode.style.color =
                this._checked && this._opts.inputActiveOptionForeground
                  ? this._opts.inputActiveOptionForeground.toString()
                  : 'inherit'),
              (this.domNode.style.backgroundColor =
                this._checked && this._opts.inputActiveOptionBackground
                  ? this._opts.inputActiveOptionBackground.toString()
                  : 'transparent'));
          }
          enable() {
            (this.domNode.tabIndex = 0),
              this.domNode.setAttribute('aria-disabled', String(!1));
          }
          disable() {
            q.eJ(this.domNode),
              this.domNode.setAttribute('aria-disabled', String(!0));
          }
        }
        var ee = i(73046);
        const te = n.N('caseDescription', 'Match Case'),
          ie = n.N('wordsDescription', 'Match Whole Word'),
          ne = n.N('regexDescription', 'Use Regular Expression');
        class re extends X {
          constructor(e) {
            super({
              icon: ee.lA.caseSensitive,
              title: te + e.appendTitle,
              isChecked: e.isChecked,
              inputActiveOptionBorder: e.inputActiveOptionBorder,
              inputActiveOptionForeground: e.inputActiveOptionForeground,
              inputActiveOptionBackground: e.inputActiveOptionBackground,
            });
          }
        }
        class se extends X {
          constructor(e) {
            super({
              icon: ee.lA.wholeWord,
              title: ie + e.appendTitle,
              isChecked: e.isChecked,
              inputActiveOptionBorder: e.inputActiveOptionBorder,
              inputActiveOptionForeground: e.inputActiveOptionForeground,
              inputActiveOptionBackground: e.inputActiveOptionBackground,
            });
          }
        }
        class oe extends X {
          constructor(e) {
            super({
              icon: ee.lA.regex,
              title: ne + e.appendTitle,
              isChecked: e.isChecked,
              inputActiveOptionBorder: e.inputActiveOptionBorder,
              inputActiveOptionForeground: e.inputActiveOptionForeground,
              inputActiveOptionBackground: e.inputActiveOptionBackground,
            });
          }
        }
        class ae extends G.$ {
          constructor(e, t, i, n) {
            super(),
              (this._hideSoon = this._register(
                new r.pY(() => this._hide(), 2e3)
              )),
              (this._isVisible = !1),
              (this._editor = e),
              (this._state = t),
              (this._keybindingService = i),
              (this._domNode = document.createElement('div')),
              (this._domNode.className = 'findOptionsWidget'),
              (this._domNode.style.display = 'none'),
              (this._domNode.style.top = '10px'),
              this._domNode.setAttribute('role', 'presentation'),
              this._domNode.setAttribute('aria-hidden', 'true');
            const s = n.getColorTheme().getColor(m.PR),
              o = n.getColorTheme().getColor(m.Pv),
              a = n.getColorTheme().getColor(m.XE);
            (this.caseSensitive = this._register(
              new re({
                appendTitle: this._keybindingLabelFor(Y),
                isChecked: this._state.matchCase,
                inputActiveOptionBorder: s,
                inputActiveOptionForeground: o,
                inputActiveOptionBackground: a,
              })
            )),
              this._domNode.appendChild(this.caseSensitive.domNode),
              this._register(
                this.caseSensitive.onChange(() => {
                  this._state.change(
                    { matchCase: this.caseSensitive.checked },
                    !1
                  );
                })
              ),
              (this.wholeWords = this._register(
                new se({
                  appendTitle: this._keybindingLabelFor(H),
                  isChecked: this._state.wholeWord,
                  inputActiveOptionBorder: s,
                  inputActiveOptionForeground: o,
                  inputActiveOptionBackground: a,
                })
              )),
              this._domNode.appendChild(this.wholeWords.domNode),
              this._register(
                this.wholeWords.onChange(() => {
                  this._state.change(
                    { wholeWord: this.wholeWords.checked },
                    !1
                  );
                })
              ),
              (this.regex = this._register(
                new oe({
                  appendTitle: this._keybindingLabelFor(j),
                  isChecked: this._state.isRegex,
                  inputActiveOptionBorder: s,
                  inputActiveOptionForeground: o,
                  inputActiveOptionBackground: a,
                })
              )),
              this._domNode.appendChild(this.regex.domNode),
              this._register(
                this.regex.onChange(() => {
                  this._state.change({ isRegex: this.regex.checked }, !1);
                })
              ),
              this._editor.addOverlayWidget(this),
              this._register(
                this._state.onFindReplaceStateChange((e) => {
                  let t = !1;
                  e.isRegex &&
                    ((this.regex.checked = this._state.isRegex), (t = !0)),
                    e.wholeWord &&
                      ((this.wholeWords.checked = this._state.wholeWord),
                      (t = !0)),
                    e.matchCase &&
                      ((this.caseSensitive.checked = this._state.matchCase),
                      (t = !0)),
                    !this._state.isRevealed && t && this._revealTemporarily();
                })
              ),
              this._register(q.j_(this._domNode, (e) => this._onMouseOut())),
              this._register(
                q.nm(this._domNode, 'mouseover', (e) => this._onMouseOver())
              ),
              this._applyTheme(n.getColorTheme()),
              this._register(
                n.onDidColorThemeChange(this._applyTheme.bind(this))
              );
          }
          _keybindingLabelFor(e) {
            let t = this._keybindingService.lookupKeybinding(e);
            return t ? ` (${t.getLabel()})` : '';
          }
          dispose() {
            this._editor.removeOverlayWidget(this), super.dispose();
          }
          getId() {
            return ae.ID;
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return { preference: 0 };
          }
          highlightFindOptions() {
            this._revealTemporarily();
          }
          _revealTemporarily() {
            this._show(), this._hideSoon.schedule();
          }
          _onMouseOut() {
            this._hideSoon.schedule();
          }
          _onMouseOver() {
            this._hideSoon.cancel();
          }
          _show() {
            this._isVisible ||
              ((this._isVisible = !0), (this._domNode.style.display = 'block'));
          }
          _hide() {
            this._isVisible &&
              ((this._isVisible = !1), (this._domNode.style.display = 'none'));
          }
          _applyTheme(e) {
            let t = {
              inputActiveOptionBorder: e.getColor(m.PR),
              inputActiveOptionForeground: e.getColor(m.Pv),
              inputActiveOptionBackground: e.getColor(m.XE),
            };
            this.caseSensitive.style(t),
              this.wholeWords.style(t),
              this.regex.style(t);
          }
        }
        function le(e, t) {
          return 1 === e || (2 !== e && t);
        }
        (ae.ID = 'editor.contrib.findOptionsWidget'),
          (0, _.Ic)((e, t) => {
            const i = e.getColor(m.D0);
            i &&
              t.addRule(
                `.monaco-editor .findOptionsWidget { background-color: ${i}; }`
              );
            const n = e.getColor(m.Hf);
            n &&
              t.addRule(`.monaco-editor .findOptionsWidget { color: ${n}; }`);
            const r = e.getColor(m.rh);
            r &&
              t.addRule(
                `.monaco-editor .findOptionsWidget { box-shadow: 0 2px 8px ${r}; }`
              );
            const s = e.getColor(m.lR);
            s &&
              t.addRule(
                `.monaco-editor .findOptionsWidget { border: 2px solid ${s}; }`
              );
          });
        class ce extends s.JT {
          constructor() {
            super(),
              (this._onFindReplaceStateChange = this._register(new J.Q5())),
              (this.onFindReplaceStateChange = this._onFindReplaceStateChange.event),
              (this._searchString = ''),
              (this._replaceString = ''),
              (this._isRevealed = !1),
              (this._isReplaceRevealed = !1),
              (this._isRegex = !1),
              (this._isRegexOverride = 0),
              (this._wholeWord = !1),
              (this._wholeWordOverride = 0),
              (this._matchCase = !1),
              (this._matchCaseOverride = 0),
              (this._preserveCase = !1),
              (this._preserveCaseOverride = 0),
              (this._searchScope = null),
              (this._matchesPosition = 0),
              (this._matchesCount = 0),
              (this._currentMatch = null),
              (this._loop = !0);
          }
          get searchString() {
            return this._searchString;
          }
          get replaceString() {
            return this._replaceString;
          }
          get isRevealed() {
            return this._isRevealed;
          }
          get isReplaceRevealed() {
            return this._isReplaceRevealed;
          }
          get isRegex() {
            return le(this._isRegexOverride, this._isRegex);
          }
          get wholeWord() {
            return le(this._wholeWordOverride, this._wholeWord);
          }
          get matchCase() {
            return le(this._matchCaseOverride, this._matchCase);
          }
          get preserveCase() {
            return le(this._preserveCaseOverride, this._preserveCase);
          }
          get actualIsRegex() {
            return this._isRegex;
          }
          get actualWholeWord() {
            return this._wholeWord;
          }
          get actualMatchCase() {
            return this._matchCase;
          }
          get actualPreserveCase() {
            return this._preserveCase;
          }
          get searchScope() {
            return this._searchScope;
          }
          get matchesPosition() {
            return this._matchesPosition;
          }
          get matchesCount() {
            return this._matchesCount;
          }
          get currentMatch() {
            return this._currentMatch;
          }
          changeMatchInfo(e, t, i) {
            let n = {
                moveCursor: !1,
                updateHistory: !1,
                searchString: !1,
                replaceString: !1,
                isRevealed: !1,
                isReplaceRevealed: !1,
                isRegex: !1,
                wholeWord: !1,
                matchCase: !1,
                preserveCase: !1,
                searchScope: !1,
                matchesPosition: !1,
                matchesCount: !1,
                currentMatch: !1,
                loop: !1,
              },
              r = !1;
            0 === t && (e = 0),
              e > t && (e = t),
              this._matchesPosition !== e &&
                ((this._matchesPosition = e),
                (n.matchesPosition = !0),
                (r = !0)),
              this._matchesCount !== t &&
                ((this._matchesCount = t), (n.matchesCount = !0), (r = !0)),
              void 0 !== i &&
                (h.e.equalsRange(this._currentMatch, i) ||
                  ((this._currentMatch = i), (n.currentMatch = !0), (r = !0))),
              r && this._onFindReplaceStateChange.fire(n);
          }
          change(e, t, i = !0) {
            var n;
            let r = {
                moveCursor: t,
                updateHistory: i,
                searchString: !1,
                replaceString: !1,
                isRevealed: !1,
                isReplaceRevealed: !1,
                isRegex: !1,
                wholeWord: !1,
                matchCase: !1,
                preserveCase: !1,
                searchScope: !1,
                matchesPosition: !1,
                matchesCount: !1,
                currentMatch: !1,
                loop: !1,
              },
              s = !1;
            const o = this.isRegex,
              a = this.wholeWord,
              l = this.matchCase,
              c = this.preserveCase;
            void 0 !== e.searchString &&
              this._searchString !== e.searchString &&
              ((this._searchString = e.searchString),
              (r.searchString = !0),
              (s = !0)),
              void 0 !== e.replaceString &&
                this._replaceString !== e.replaceString &&
                ((this._replaceString = e.replaceString),
                (r.replaceString = !0),
                (s = !0)),
              void 0 !== e.isRevealed &&
                this._isRevealed !== e.isRevealed &&
                ((this._isRevealed = e.isRevealed),
                (r.isRevealed = !0),
                (s = !0)),
              void 0 !== e.isReplaceRevealed &&
                this._isReplaceRevealed !== e.isReplaceRevealed &&
                ((this._isReplaceRevealed = e.isReplaceRevealed),
                (r.isReplaceRevealed = !0),
                (s = !0)),
              void 0 !== e.isRegex && (this._isRegex = e.isRegex),
              void 0 !== e.wholeWord && (this._wholeWord = e.wholeWord),
              void 0 !== e.matchCase && (this._matchCase = e.matchCase),
              void 0 !== e.preserveCase &&
                (this._preserveCase = e.preserveCase),
              void 0 !== e.searchScope &&
                ((null === (n = e.searchScope) || void 0 === n
                  ? void 0
                  : n.every((e) => {
                      var t;
                      return null === (t = this._searchScope) || void 0 === t
                        ? void 0
                        : t.some((t) => !h.e.equalsRange(t, e));
                    })) ||
                  ((this._searchScope = e.searchScope),
                  (r.searchScope = !0),
                  (s = !0))),
              void 0 !== e.loop &&
                this._loop !== e.loop &&
                ((this._loop = e.loop), (r.loop = !0), (s = !0)),
              (this._isRegexOverride =
                void 0 !== e.isRegexOverride ? e.isRegexOverride : 0),
              (this._wholeWordOverride =
                void 0 !== e.wholeWordOverride ? e.wholeWordOverride : 0),
              (this._matchCaseOverride =
                void 0 !== e.matchCaseOverride ? e.matchCaseOverride : 0),
              (this._preserveCaseOverride =
                void 0 !== e.preserveCaseOverride ? e.preserveCaseOverride : 0),
              o !== this.isRegex && ((s = !0), (r.isRegex = !0)),
              a !== this.wholeWord && ((s = !0), (r.wholeWord = !0)),
              l !== this.matchCase && ((s = !0), (r.matchCase = !0)),
              c !== this.preserveCase && ((s = !0), (r.preserveCase = !0)),
              s && this._onFindReplaceStateChange.fire(r);
          }
          canNavigateBack() {
            return this.canNavigateInLoop() || 1 !== this.matchesPosition;
          }
          canNavigateForward() {
            return (
              this.canNavigateInLoop() ||
              this.matchesPosition < this.matchesCount
            );
          }
          canNavigateInLoop() {
            return this._loop || this.matchesCount >= $;
          }
        }
        var de = i(85152),
          he = i(73098),
          ue = i(17301),
          ge = i(1432),
          fe = i(77927);
        const pe = n.N('defaultLabel', 'input');
        class me extends G.$ {
          constructor(e, t, i, n) {
            super(),
              (this._showOptionButtons = i),
              (this.fixFocusOnOptionClickEnabled = !0),
              (this._onDidOptionChange = this._register(new J.Q5())),
              (this.onDidOptionChange = this._onDidOptionChange.event),
              (this._onKeyDown = this._register(new J.Q5())),
              (this.onKeyDown = this._onKeyDown.event),
              (this._onMouseDown = this._register(new J.Q5())),
              (this.onMouseDown = this._onMouseDown.event),
              (this._onInput = this._register(new J.Q5())),
              (this._onKeyUp = this._register(new J.Q5())),
              (this._onCaseSensitiveKeyDown = this._register(new J.Q5())),
              (this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown.event),
              (this._onRegexKeyDown = this._register(new J.Q5())),
              (this.onRegexKeyDown = this._onRegexKeyDown.event),
              (this._lastHighlightFindOptions = 0),
              (this.contextViewProvider = t),
              (this.placeholder = n.placeholder || ''),
              (this.validation = n.validation),
              (this.label = n.label || pe),
              (this.inputActiveOptionBorder = n.inputActiveOptionBorder),
              (this.inputActiveOptionForeground =
                n.inputActiveOptionForeground),
              (this.inputActiveOptionBackground =
                n.inputActiveOptionBackground),
              (this.inputBackground = n.inputBackground),
              (this.inputForeground = n.inputForeground),
              (this.inputBorder = n.inputBorder),
              (this.inputValidationInfoBorder = n.inputValidationInfoBorder),
              (this.inputValidationInfoBackground =
                n.inputValidationInfoBackground),
              (this.inputValidationInfoForeground =
                n.inputValidationInfoForeground),
              (this.inputValidationWarningBorder =
                n.inputValidationWarningBorder),
              (this.inputValidationWarningBackground =
                n.inputValidationWarningBackground),
              (this.inputValidationWarningForeground =
                n.inputValidationWarningForeground),
              (this.inputValidationErrorBorder = n.inputValidationErrorBorder),
              (this.inputValidationErrorBackground =
                n.inputValidationErrorBackground),
              (this.inputValidationErrorForeground =
                n.inputValidationErrorForeground);
            const r = n.appendCaseSensitiveLabel || '',
              s = n.appendWholeWordsLabel || '',
              o = n.appendRegexLabel || '',
              a = n.history || [],
              l = !!n.flexibleHeight,
              c = !!n.flexibleWidth,
              d = n.flexibleMaxHeight;
            (this.domNode = document.createElement('div')),
              q.cn(this.domNode, 'monaco-findInput'),
              (this.inputBox = this._register(
                new fe.p(this.domNode, this.contextViewProvider, {
                  placeholder: this.placeholder || '',
                  ariaLabel: this.label || '',
                  validationOptions: { validation: this.validation },
                  inputBackground: this.inputBackground,
                  inputForeground: this.inputForeground,
                  inputBorder: this.inputBorder,
                  inputValidationInfoBackground: this
                    .inputValidationInfoBackground,
                  inputValidationInfoForeground: this
                    .inputValidationInfoForeground,
                  inputValidationInfoBorder: this.inputValidationInfoBorder,
                  inputValidationWarningBackground: this
                    .inputValidationWarningBackground,
                  inputValidationWarningForeground: this
                    .inputValidationWarningForeground,
                  inputValidationWarningBorder: this
                    .inputValidationWarningBorder,
                  inputValidationErrorBackground: this
                    .inputValidationErrorBackground,
                  inputValidationErrorForeground: this
                    .inputValidationErrorForeground,
                  inputValidationErrorBorder: this.inputValidationErrorBorder,
                  history: a,
                  flexibleHeight: l,
                  flexibleWidth: c,
                  flexibleMaxHeight: d,
                })
              )),
              (this.regex = this._register(
                new oe({
                  appendTitle: o,
                  isChecked: !1,
                  inputActiveOptionBorder: this.inputActiveOptionBorder,
                  inputActiveOptionForeground: this.inputActiveOptionForeground,
                  inputActiveOptionBackground: this.inputActiveOptionBackground,
                })
              )),
              this._register(
                this.regex.onChange((e) => {
                  this._onDidOptionChange.fire(e),
                    !e &&
                      this.fixFocusOnOptionClickEnabled &&
                      this.inputBox.focus(),
                    this.validate();
                })
              ),
              this._register(
                this.regex.onKeyDown((e) => {
                  this._onRegexKeyDown.fire(e);
                })
              ),
              (this.wholeWords = this._register(
                new se({
                  appendTitle: s,
                  isChecked: !1,
                  inputActiveOptionBorder: this.inputActiveOptionBorder,
                  inputActiveOptionForeground: this.inputActiveOptionForeground,
                  inputActiveOptionBackground: this.inputActiveOptionBackground,
                })
              )),
              this._register(
                this.wholeWords.onChange((e) => {
                  this._onDidOptionChange.fire(e),
                    !e &&
                      this.fixFocusOnOptionClickEnabled &&
                      this.inputBox.focus(),
                    this.validate();
                })
              ),
              (this.caseSensitive = this._register(
                new re({
                  appendTitle: r,
                  isChecked: !1,
                  inputActiveOptionBorder: this.inputActiveOptionBorder,
                  inputActiveOptionForeground: this.inputActiveOptionForeground,
                  inputActiveOptionBackground: this.inputActiveOptionBackground,
                })
              )),
              this._register(
                this.caseSensitive.onChange((e) => {
                  this._onDidOptionChange.fire(e),
                    !e &&
                      this.fixFocusOnOptionClickEnabled &&
                      this.inputBox.focus(),
                    this.validate();
                })
              ),
              this._register(
                this.caseSensitive.onKeyDown((e) => {
                  this._onCaseSensitiveKeyDown.fire(e);
                })
              ),
              this._showOptionButtons &&
                (this.inputBox.paddingRight =
                  this.caseSensitive.width() +
                  this.wholeWords.width() +
                  this.regex.width());
            let h = [
              this.caseSensitive.domNode,
              this.wholeWords.domNode,
              this.regex.domNode,
            ];
            this.onkeydown(this.domNode, (e) => {
              if (e.equals(15) || e.equals(17) || e.equals(9)) {
                let t = h.indexOf(document.activeElement);
                if (t >= 0) {
                  let i = -1;
                  e.equals(17)
                    ? (i = (t + 1) % h.length)
                    : e.equals(15) && (i = 0 === t ? h.length - 1 : t - 1),
                    e.equals(9) ? h[t].blur() : i >= 0 && h[i].focus(),
                    q.zB.stop(e, !0);
                }
              }
            });
            let u = document.createElement('div');
            (u.className = 'controls'),
              (u.style.display = this._showOptionButtons ? 'block' : 'none'),
              u.appendChild(this.caseSensitive.domNode),
              u.appendChild(this.wholeWords.domNode),
              u.appendChild(this.regex.domNode),
              this.domNode.appendChild(u),
              e && e.appendChild(this.domNode),
              this.onkeydown(this.inputBox.inputElement, (e) =>
                this._onKeyDown.fire(e)
              ),
              this.onkeyup(this.inputBox.inputElement, (e) =>
                this._onKeyUp.fire(e)
              ),
              this.oninput(this.inputBox.inputElement, (e) =>
                this._onInput.fire()
              ),
              this.onmousedown(this.inputBox.inputElement, (e) =>
                this._onMouseDown.fire(e)
              );
          }
          enable() {
            q.IV(this.domNode, 'disabled'),
              this.inputBox.enable(),
              this.regex.enable(),
              this.wholeWords.enable(),
              this.caseSensitive.enable();
          }
          disable() {
            q.cn(this.domNode, 'disabled'),
              this.inputBox.disable(),
              this.regex.disable(),
              this.wholeWords.disable(),
              this.caseSensitive.disable();
          }
          setFocusInputOnOptionClick(e) {
            this.fixFocusOnOptionClickEnabled = e;
          }
          setEnabled(e) {
            e ? this.enable() : this.disable();
          }
          getValue() {
            return this.inputBox.value;
          }
          setValue(e) {
            this.inputBox.value !== e && (this.inputBox.value = e);
          }
          style(e) {
            (this.inputActiveOptionBorder = e.inputActiveOptionBorder),
              (this.inputActiveOptionForeground =
                e.inputActiveOptionForeground),
              (this.inputActiveOptionBackground =
                e.inputActiveOptionBackground),
              (this.inputBackground = e.inputBackground),
              (this.inputForeground = e.inputForeground),
              (this.inputBorder = e.inputBorder),
              (this.inputValidationInfoBackground =
                e.inputValidationInfoBackground),
              (this.inputValidationInfoForeground =
                e.inputValidationInfoForeground),
              (this.inputValidationInfoBorder = e.inputValidationInfoBorder),
              (this.inputValidationWarningBackground =
                e.inputValidationWarningBackground),
              (this.inputValidationWarningForeground =
                e.inputValidationWarningForeground),
              (this.inputValidationWarningBorder =
                e.inputValidationWarningBorder),
              (this.inputValidationErrorBackground =
                e.inputValidationErrorBackground),
              (this.inputValidationErrorForeground =
                e.inputValidationErrorForeground),
              (this.inputValidationErrorBorder = e.inputValidationErrorBorder),
              this.applyStyles();
          }
          applyStyles() {
            if (this.domNode) {
              const e = {
                inputActiveOptionBorder: this.inputActiveOptionBorder,
                inputActiveOptionForeground: this.inputActiveOptionForeground,
                inputActiveOptionBackground: this.inputActiveOptionBackground,
              };
              this.regex.style(e),
                this.wholeWords.style(e),
                this.caseSensitive.style(e);
              const t = {
                inputBackground: this.inputBackground,
                inputForeground: this.inputForeground,
                inputBorder: this.inputBorder,
                inputValidationInfoBackground: this
                  .inputValidationInfoBackground,
                inputValidationInfoForeground: this
                  .inputValidationInfoForeground,
                inputValidationInfoBorder: this.inputValidationInfoBorder,
                inputValidationWarningBackground: this
                  .inputValidationWarningBackground,
                inputValidationWarningForeground: this
                  .inputValidationWarningForeground,
                inputValidationWarningBorder: this.inputValidationWarningBorder,
                inputValidationErrorBackground: this
                  .inputValidationErrorBackground,
                inputValidationErrorForeground: this
                  .inputValidationErrorForeground,
                inputValidationErrorBorder: this.inputValidationErrorBorder,
              };
              this.inputBox.style(t);
            }
          }
          select() {
            this.inputBox.select();
          }
          focus() {
            this.inputBox.focus();
          }
          getCaseSensitive() {
            return this.caseSensitive.checked;
          }
          setCaseSensitive(e) {
            this.caseSensitive.checked = e;
          }
          getWholeWords() {
            return this.wholeWords.checked;
          }
          setWholeWords(e) {
            this.wholeWords.checked = e;
          }
          getRegex() {
            return this.regex.checked;
          }
          setRegex(e) {
            (this.regex.checked = e), this.validate();
          }
          focusOnCaseSensitive() {
            this.caseSensitive.focus();
          }
          highlightFindOptions() {
            q.IV(this.domNode, 'highlight-' + this._lastHighlightFindOptions),
              (this._lastHighlightFindOptions =
                1 - this._lastHighlightFindOptions),
              q.cn(this.domNode, 'highlight-' + this._lastHighlightFindOptions);
          }
          validate() {
            this.inputBox.validate();
          }
          clearMessage() {
            this.inputBox.hideMessage();
          }
        }
        var _e = i(49989);
        const be = n.N('defaultLabel', 'input'),
          ve = n.N('label.preserveCaseCheckbox', 'Preserve Case');
        class ye extends X {
          constructor(e) {
            super({
              icon: ee.lA.preserveCase,
              title: ve + e.appendTitle,
              isChecked: e.isChecked,
              inputActiveOptionBorder: e.inputActiveOptionBorder,
              inputActiveOptionForeground: e.inputActiveOptionForeground,
              inputActiveOptionBackground: e.inputActiveOptionBackground,
            });
          }
        }
        class we extends G.$ {
          constructor(e, t, i, n) {
            super(),
              (this._showOptionButtons = i),
              (this.fixFocusOnOptionClickEnabled = !0),
              (this.cachedOptionsWidth = 0),
              (this._onDidOptionChange = this._register(new J.Q5())),
              (this.onDidOptionChange = this._onDidOptionChange.event),
              (this._onKeyDown = this._register(new J.Q5())),
              (this.onKeyDown = this._onKeyDown.event),
              (this._onMouseDown = this._register(new J.Q5())),
              (this._onInput = this._register(new J.Q5())),
              (this._onKeyUp = this._register(new J.Q5())),
              (this._onPreserveCaseKeyDown = this._register(new J.Q5())),
              (this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event),
              (this.contextViewProvider = t),
              (this.placeholder = n.placeholder || ''),
              (this.validation = n.validation),
              (this.label = n.label || be),
              (this.inputActiveOptionBorder = n.inputActiveOptionBorder),
              (this.inputActiveOptionForeground =
                n.inputActiveOptionForeground),
              (this.inputActiveOptionBackground =
                n.inputActiveOptionBackground),
              (this.inputBackground = n.inputBackground),
              (this.inputForeground = n.inputForeground),
              (this.inputBorder = n.inputBorder),
              (this.inputValidationInfoBorder = n.inputValidationInfoBorder),
              (this.inputValidationInfoBackground =
                n.inputValidationInfoBackground),
              (this.inputValidationInfoForeground =
                n.inputValidationInfoForeground),
              (this.inputValidationWarningBorder =
                n.inputValidationWarningBorder),
              (this.inputValidationWarningBackground =
                n.inputValidationWarningBackground),
              (this.inputValidationWarningForeground =
                n.inputValidationWarningForeground),
              (this.inputValidationErrorBorder = n.inputValidationErrorBorder),
              (this.inputValidationErrorBackground =
                n.inputValidationErrorBackground),
              (this.inputValidationErrorForeground =
                n.inputValidationErrorForeground);
            const r = n.history || [],
              s = !!n.flexibleHeight,
              o = !!n.flexibleWidth,
              a = n.flexibleMaxHeight;
            (this.domNode = document.createElement('div')),
              q.cn(this.domNode, 'monaco-findInput'),
              (this.inputBox = this._register(
                new fe.p(this.domNode, this.contextViewProvider, {
                  ariaLabel: this.label || '',
                  placeholder: this.placeholder || '',
                  validationOptions: { validation: this.validation },
                  inputBackground: this.inputBackground,
                  inputForeground: this.inputForeground,
                  inputBorder: this.inputBorder,
                  inputValidationInfoBackground: this
                    .inputValidationInfoBackground,
                  inputValidationInfoForeground: this
                    .inputValidationInfoForeground,
                  inputValidationInfoBorder: this.inputValidationInfoBorder,
                  inputValidationWarningBackground: this
                    .inputValidationWarningBackground,
                  inputValidationWarningForeground: this
                    .inputValidationWarningForeground,
                  inputValidationWarningBorder: this
                    .inputValidationWarningBorder,
                  inputValidationErrorBackground: this
                    .inputValidationErrorBackground,
                  inputValidationErrorForeground: this
                    .inputValidationErrorForeground,
                  inputValidationErrorBorder: this.inputValidationErrorBorder,
                  history: r,
                  flexibleHeight: s,
                  flexibleWidth: o,
                  flexibleMaxHeight: a,
                })
              )),
              (this.preserveCase = this._register(
                new ye({
                  appendTitle: '',
                  isChecked: !1,
                  inputActiveOptionBorder: this.inputActiveOptionBorder,
                  inputActiveOptionForeground: this.inputActiveOptionForeground,
                  inputActiveOptionBackground: this.inputActiveOptionBackground,
                })
              )),
              this._register(
                this.preserveCase.onChange((e) => {
                  this._onDidOptionChange.fire(e),
                    !e &&
                      this.fixFocusOnOptionClickEnabled &&
                      this.inputBox.focus(),
                    this.validate();
                })
              ),
              this._register(
                this.preserveCase.onKeyDown((e) => {
                  this._onPreserveCaseKeyDown.fire(e);
                })
              ),
              this._showOptionButtons
                ? (this.cachedOptionsWidth = this.preserveCase.width())
                : (this.cachedOptionsWidth = 0);
            let l = [this.preserveCase.domNode];
            this.onkeydown(this.domNode, (e) => {
              if (e.equals(15) || e.equals(17) || e.equals(9)) {
                let t = l.indexOf(document.activeElement);
                if (t >= 0) {
                  let i = -1;
                  e.equals(17)
                    ? (i = (t + 1) % l.length)
                    : e.equals(15) && (i = 0 === t ? l.length - 1 : t - 1),
                    e.equals(9) ? l[t].blur() : i >= 0 && l[i].focus(),
                    q.zB.stop(e, !0);
                }
              }
            });
            let c = document.createElement('div');
            (c.className = 'controls'),
              (c.style.display = this._showOptionButtons ? 'block' : 'none'),
              c.appendChild(this.preserveCase.domNode),
              this.domNode.appendChild(c),
              e && e.appendChild(this.domNode),
              this.onkeydown(this.inputBox.inputElement, (e) =>
                this._onKeyDown.fire(e)
              ),
              this.onkeyup(this.inputBox.inputElement, (e) =>
                this._onKeyUp.fire(e)
              ),
              this.oninput(this.inputBox.inputElement, (e) =>
                this._onInput.fire()
              ),
              this.onmousedown(this.inputBox.inputElement, (e) =>
                this._onMouseDown.fire(e)
              );
          }
          enable() {
            q.IV(this.domNode, 'disabled'),
              this.inputBox.enable(),
              this.preserveCase.enable();
          }
          disable() {
            q.cn(this.domNode, 'disabled'),
              this.inputBox.disable(),
              this.preserveCase.disable();
          }
          setEnabled(e) {
            e ? this.enable() : this.disable();
          }
          style(e) {
            (this.inputActiveOptionBorder = e.inputActiveOptionBorder),
              (this.inputActiveOptionForeground =
                e.inputActiveOptionForeground),
              (this.inputActiveOptionBackground =
                e.inputActiveOptionBackground),
              (this.inputBackground = e.inputBackground),
              (this.inputForeground = e.inputForeground),
              (this.inputBorder = e.inputBorder),
              (this.inputValidationInfoBackground =
                e.inputValidationInfoBackground),
              (this.inputValidationInfoForeground =
                e.inputValidationInfoForeground),
              (this.inputValidationInfoBorder = e.inputValidationInfoBorder),
              (this.inputValidationWarningBackground =
                e.inputValidationWarningBackground),
              (this.inputValidationWarningForeground =
                e.inputValidationWarningForeground),
              (this.inputValidationWarningBorder =
                e.inputValidationWarningBorder),
              (this.inputValidationErrorBackground =
                e.inputValidationErrorBackground),
              (this.inputValidationErrorForeground =
                e.inputValidationErrorForeground),
              (this.inputValidationErrorBorder = e.inputValidationErrorBorder),
              this.applyStyles();
          }
          applyStyles() {
            if (this.domNode) {
              const e = {
                inputActiveOptionBorder: this.inputActiveOptionBorder,
                inputActiveOptionForeground: this.inputActiveOptionForeground,
                inputActiveOptionBackground: this.inputActiveOptionBackground,
              };
              this.preserveCase.style(e);
              const t = {
                inputBackground: this.inputBackground,
                inputForeground: this.inputForeground,
                inputBorder: this.inputBorder,
                inputValidationInfoBackground: this
                  .inputValidationInfoBackground,
                inputValidationInfoForeground: this
                  .inputValidationInfoForeground,
                inputValidationInfoBorder: this.inputValidationInfoBorder,
                inputValidationWarningBackground: this
                  .inputValidationWarningBackground,
                inputValidationWarningForeground: this
                  .inputValidationWarningForeground,
                inputValidationWarningBorder: this.inputValidationWarningBorder,
                inputValidationErrorBackground: this
                  .inputValidationErrorBackground,
                inputValidationErrorForeground: this
                  .inputValidationErrorForeground,
                inputValidationErrorBorder: this.inputValidationErrorBorder,
              };
              this.inputBox.style(t);
            }
          }
          select() {
            this.inputBox.select();
          }
          focus() {
            this.inputBox.focus();
          }
          getPreserveCase() {
            return this.preserveCase.checked;
          }
          setPreserveCase(e) {
            this.preserveCase.checked = e;
          }
          focusOnPreserve() {
            this.preserveCase.focus();
          }
          validate() {
            this.inputBox && this.inputBox.validate();
          }
          set width(e) {
            (this.inputBox.paddingRight = this.cachedOptionsWidth),
              (this.inputBox.width = e),
              (this.domNode.style.width = e + 'px');
          }
          dispose() {
            super.dispose();
          }
        }
        var Ce = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          Se = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const ke = 'historyNavigationWidget',
          xe = 'historyNavigationEnabled';
        function Le(e, t) {
          return e.getContext(document.activeElement).getValue(t);
        }
        function Me(e, t) {
          const i = (function (e, t) {
            return e.createScoped(t.target);
          })(e, t);
          return (
            (function (e, t, i) {
              new D.uy('historyNavigationWidget', t).bindTo(e);
            })(i, t),
            {
              scopedContextKeyService: i,
              historyNavigationEnablement: new D.uy(xe, !0).bindTo(i),
            }
          );
        }
        let De = class extends me {
          constructor(e, t, i, n, r = !1) {
            super(e, t, r, i),
              this._register(
                Me(n, {
                  target: this.inputBox.element,
                  historyNavigator: this.inputBox,
                }).scopedContextKeyService
              );
          }
        };
        De = Ce([Se(3, D.i6)], De);
        let Ne = class extends we {
          constructor(e, t, i, n, r = !1) {
            super(e, t, r, i),
              this._register(
                Me(n, {
                  target: this.inputBox.element,
                  historyNavigator: this.inputBox,
                }).scopedContextKeyService
              );
          }
        };
        (Ne = Ce([Se(3, D.i6)], Ne)),
          _e.W.registerCommandAndKeybindingRule({
            id: 'history.showPrevious',
            weight: 200,
            when: D.Ao.and(D.Ao.has(ke), D.Ao.equals(xe, !0)),
            primary: 16,
            secondary: [528],
            handler: (e, t) => {
              const i = Le(e.get(D.i6), ke);
              i && i.historyNavigator.showPreviousValue();
            },
          }),
          _e.W.registerCommandAndKeybindingRule({
            id: 'history.showNext',
            weight: 200,
            when: D.Ao.and(D.Ao.has(ke), D.Ao.equals(xe, !0)),
            primary: 18,
            secondary: [530],
            handler: (e, t) => {
              const i = Le(e.get(D.i6), ke);
              i && i.historyNavigator.showNextValue();
            },
          });
        const Ee = (0, ee.q5)('find-selection', ee.lA.selection),
          Te = (0, ee.q5)('find-collapsed', ee.lA.chevronRight),
          Ie = (0, ee.q5)('find-expanded', ee.lA.chevronDown),
          Oe = (0, ee.q5)('find-close', ee.lA.close),
          Ae = (0, ee.q5)('find-replace', ee.lA.replace),
          Re = (0, ee.q5)('find-replace-all', ee.lA.replaceAll),
          Pe = (0, ee.q5)('find-previous-match', ee.lA.arrowUp),
          Fe = (0, ee.q5)('find-next-match', ee.lA.arrowDown),
          Be = n.N('label.find', 'Find'),
          We = n.N('placeholder.find', 'Find'),
          Ye = n.N('label.previousMatchButton', 'Previous match'),
          He = n.N('label.nextMatchButton', 'Next match'),
          je = n.N('label.toggleSelectionFind', 'Find in selection'),
          Ve = n.N('label.closeButton', 'Close'),
          ze = n.N('label.replace', 'Replace'),
          Ue = n.N('placeholder.replace', 'Replace'),
          $e = n.N('label.replaceButton', 'Replace'),
          Ke = n.N('label.replaceAllButton', 'Replace All'),
          qe = n.N('label.toggleReplaceButton', 'Toggle Replace mode'),
          Ge = n.N(
            'title.matchesCountLimit',
            'Only the first {0} results are highlighted, but all find operations work on the entire text.',
            $
          ),
          Ze = n.N('label.matchesLocation', '{0} of {1}'),
          Je = n.N('label.noResults', 'No results'),
          Qe = 419;
        let Xe = 69;
        const et = 'ctrlEnterReplaceAll.windows.donotask',
          tt = ge.dz ? 256 : 2048;
        class it {
          constructor(e) {
            (this.afterLineNumber = e),
              (this.heightInPx = 33),
              (this.suppressMouseDown = !1),
              (this.domNode = document.createElement('div')),
              (this.domNode.className = 'dock-find-viewzone');
          }
        }
        function nt(e, t, i) {
          const n = !!t.match(/\n/);
          i && n && i.selectionStart > 0 && e.stopPropagation();
        }
        function rt(e, t, i) {
          const n = !!t.match(/\n/);
          i && n && i.selectionEnd < i.value.length && e.stopPropagation();
        }
        class st extends G.$ {
          constructor(e, t, i, n, o, a, l, c, d, h) {
            super(),
              (this._cachedHeight = null),
              (this._codeEditor = e),
              (this._controller = t),
              (this._state = i),
              (this._contextViewProvider = n),
              (this._keybindingService = o),
              (this._contextKeyService = a),
              (this._storageService = c),
              (this._notificationService = d),
              h.registerStorageKey({ key: et, version: 1 }),
              (this._ctrlEnterReplaceAllWarningPrompted = !!c.getBoolean(
                et,
                0
              )),
              (this._isVisible = !1),
              (this._isReplaceVisible = !1),
              (this._ignoreChangeEvent = !1),
              (this._updateHistoryDelayer = new r.vp(500)),
              this._register(
                (0, s.OF)(() => this._updateHistoryDelayer.cancel())
              ),
              this._register(
                this._state.onFindReplaceStateChange((e) =>
                  this._onStateChanged(e)
                )
              ),
              this._buildDomNode(),
              this._updateButtons(),
              this._tryUpdateWidgetWidth(),
              this._findInput.inputBox.layout(),
              this._register(
                this._codeEditor.onDidChangeConfiguration((e) => {
                  if (
                    (e.hasChanged(72) &&
                      (this._codeEditor.getOption(72) &&
                        this._state.change({ isReplaceRevealed: !1 }, !1),
                      this._updateButtons()),
                    e.hasChanged(117) && this._tryUpdateWidgetWidth(),
                    e.hasChanged(2) && this.updateAccessibilitySupport(),
                    e.hasChanged(29))
                  ) {
                    const e = this._codeEditor.getOption(29).addExtraSpaceOnTop;
                    e &&
                      !this._viewZone &&
                      ((this._viewZone = new it(0)), this._showViewZone()),
                      !e && this._viewZone && this._removeViewZone();
                  }
                })
              ),
              this.updateAccessibilitySupport(),
              this._register(
                this._codeEditor.onDidChangeCursorSelection(() => {
                  this._isVisible && this._updateToggleSelectionFindButton();
                })
              ),
              this._register(
                this._codeEditor.onDidFocusEditorWidget(() => {
                  return (
                    (e = this),
                    (t = void 0),
                    (n = function* () {
                      if (this._isVisible) {
                        let e = yield this._controller.getGlobalBufferTerm();
                        e &&
                          e !== this._state.searchString &&
                          (this._state.change({ searchString: e }, !0),
                          this._findInput.select());
                      }
                    }),
                    new ((i = void 0) || (i = Promise))(function (r, s) {
                      function o(e) {
                        try {
                          l(n.next(e));
                        } catch (e) {
                          s(e);
                        }
                      }
                      function a(e) {
                        try {
                          l(n.throw(e));
                        } catch (e) {
                          s(e);
                        }
                      }
                      function l(e) {
                        var t;
                        e.done
                          ? r(e.value)
                          : ((t = e.value),
                            t instanceof i
                              ? t
                              : new i(function (e) {
                                  e(t);
                                })).then(o, a);
                      }
                      l((n = n.apply(e, t || [])).next());
                    })
                  );
                  var e, t, i, n;
                })
              ),
              (this._findInputFocused = T.bindTo(a)),
              (this._findFocusTracker = this._register(
                q.go(this._findInput.inputBox.inputElement)
              )),
              this._register(
                this._findFocusTracker.onDidFocus(() => {
                  this._findInputFocused.set(!0), this._updateSearchScope();
                })
              ),
              this._register(
                this._findFocusTracker.onDidBlur(() => {
                  this._findInputFocused.set(!1);
                })
              ),
              (this._replaceInputFocused = I.bindTo(a)),
              (this._replaceFocusTracker = this._register(
                q.go(this._replaceInput.inputBox.inputElement)
              )),
              this._register(
                this._replaceFocusTracker.onDidFocus(() => {
                  this._replaceInputFocused.set(!0), this._updateSearchScope();
                })
              ),
              this._register(
                this._replaceFocusTracker.onDidBlur(() => {
                  this._replaceInputFocused.set(!1);
                })
              ),
              this._codeEditor.addOverlayWidget(this),
              this._codeEditor.getOption(29).addExtraSpaceOnTop &&
                (this._viewZone = new it(0)),
              this._applyTheme(l.getColorTheme()),
              this._register(
                l.onDidColorThemeChange(this._applyTheme.bind(this))
              ),
              this._register(
                this._codeEditor.onDidChangeModel(() => {
                  this._isVisible && (this._viewZoneId = void 0);
                })
              ),
              this._register(
                this._codeEditor.onDidScrollChange((e) => {
                  e.scrollTopChanged
                    ? this._layoutViewZone()
                    : setTimeout(() => {
                        this._layoutViewZone();
                      }, 0);
                })
              );
          }
          getId() {
            return st.ID;
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return this._isVisible ? { preference: 0 } : null;
          }
          _onStateChanged(e) {
            if (e.searchString) {
              try {
                (this._ignoreChangeEvent = !0),
                  this._findInput.setValue(this._state.searchString);
              } finally {
                this._ignoreChangeEvent = !1;
              }
              this._updateButtons();
            }
            if (
              (e.replaceString &&
                (this._replaceInput.inputBox.value = this._state.replaceString),
              e.isRevealed &&
                (this._state.isRevealed ? this._reveal() : this._hide(!0)),
              e.isReplaceRevealed &&
                (this._state.isReplaceRevealed
                  ? this._codeEditor.getOption(72) ||
                    this._isReplaceVisible ||
                    ((this._isReplaceVisible = !0),
                    (this._replaceInput.width = q.w(this._findInput.domNode)),
                    this._updateButtons(),
                    this._replaceInput.inputBox.layout())
                  : this._isReplaceVisible &&
                    ((this._isReplaceVisible = !1), this._updateButtons())),
              (e.isRevealed || e.isReplaceRevealed) &&
                (this._state.isRevealed || this._state.isReplaceRevealed) &&
                this._tryUpdateHeight() &&
                this._showViewZone(),
              e.isRegex && this._findInput.setRegex(this._state.isRegex),
              e.wholeWord &&
                this._findInput.setWholeWords(this._state.wholeWord),
              e.matchCase &&
                this._findInput.setCaseSensitive(this._state.matchCase),
              e.searchScope &&
                (this._state.searchScope
                  ? (this._toggleSelectionFind.checked = !0)
                  : (this._toggleSelectionFind.checked = !1),
                this._updateToggleSelectionFindButton()),
              e.searchString || e.matchesCount || e.matchesPosition)
            ) {
              let e =
                this._state.searchString.length > 0 &&
                0 === this._state.matchesCount;
              q.og(this._domNode, 'no-results', e),
                this._updateMatchesCount(),
                this._updateButtons();
            }
            (e.searchString || e.currentMatch) && this._layoutViewZone(),
              e.updateHistory && this._delayedUpdateHistory(),
              e.loop && this._updateButtons();
          }
          _delayedUpdateHistory() {
            this._updateHistoryDelayer.trigger(this._updateHistory.bind(this));
          }
          _updateHistory() {
            this._state.searchString && this._findInput.inputBox.addToHistory(),
              this._state.replaceString &&
                this._replaceInput.inputBox.addToHistory();
          }
          _updateMatchesCount() {
            let e;
            if (
              ((this._matchesCount.style.minWidth = Xe + 'px'),
              this._state.matchesCount >= $
                ? (this._matchesCount.title = Ge)
                : (this._matchesCount.title = ''),
              this._matchesCount.firstChild &&
                this._matchesCount.removeChild(this._matchesCount.firstChild),
              this._state.matchesCount > 0)
            ) {
              let t = String(this._state.matchesCount);
              this._state.matchesCount >= $ && (t += '+');
              let i = String(this._state.matchesPosition);
              '0' === i && (i = '?'), (e = o.WU(Ze, i, t));
            } else e = Je;
            this._matchesCount.appendChild(document.createTextNode(e)),
              (0, de.Z9)(
                this._getAriaLabel(
                  e,
                  this._state.currentMatch,
                  this._state.searchString
                )
              ),
              (Xe = Math.max(Xe, this._matchesCount.clientWidth));
          }
          _getAriaLabel(e, t, i) {
            if (e === Je)
              return '' === i
                ? n.N('ariaSearchNoResultEmpty', '{0} found', e)
                : n.N('ariaSearchNoResult', "{0} found for '{1}'", e, i);
            if (t) {
              const r = n.N(
                  'ariaSearchNoResultWithLineNum',
                  "{0} found for '{1}', at {2}",
                  e,
                  i,
                  t.startLineNumber + ':' + t.startColumn
                ),
                s = this._codeEditor.getModel();
              return s &&
                t.startLineNumber <= s.getLineCount() &&
                t.startLineNumber >= 1
                ? `${s.getLineContent(t.startLineNumber)}, ${r}`
                : r;
            }
            return n.N(
              'ariaSearchNoResultWithLineNumNoCurrentMatch',
              "{0} found for '{1}'",
              e,
              i
            );
          }
          _updateToggleSelectionFindButton() {
            let e = this._codeEditor.getSelection(),
              t =
                !!e &&
                (e.startLineNumber !== e.endLineNumber ||
                  e.startColumn !== e.endColumn),
              i = this._toggleSelectionFind.checked;
            this._isVisible && (i || t)
              ? this._toggleSelectionFind.enable()
              : this._toggleSelectionFind.disable();
          }
          _updateButtons() {
            this._findInput.setEnabled(this._isVisible),
              this._replaceInput.setEnabled(
                this._isVisible && this._isReplaceVisible
              ),
              this._updateToggleSelectionFindButton(),
              this._closeBtn.setEnabled(this._isVisible);
            let e = this._state.searchString.length > 0,
              t = !!this._state.matchesCount;
            this._prevBtn.setEnabled(
              this._isVisible && e && t && this._state.canNavigateBack()
            ),
              this._nextBtn.setEnabled(
                this._isVisible && e && t && this._state.canNavigateForward()
              ),
              this._replaceBtn.setEnabled(
                this._isVisible && this._isReplaceVisible && e
              ),
              this._replaceAllBtn.setEnabled(
                this._isVisible && this._isReplaceVisible && e
              ),
              q.og(this._domNode, 'replaceToggled', this._isReplaceVisible),
              this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);
            let i = !this._codeEditor.getOption(72);
            this._toggleReplaceBtn.setEnabled(this._isVisible && i);
          }
          _reveal() {
            if (!this._isVisible) {
              this._isVisible = !0;
              const e = this._codeEditor.getSelection();
              switch (this._codeEditor.getOption(29).autoFindInSelection) {
                case 'always':
                  this._toggleSelectionFind.checked = !0;
                  break;
                case 'never':
                  this._toggleSelectionFind.checked = !1;
                  break;
                case 'multiline':
                  const t = !!e && e.startLineNumber !== e.endLineNumber;
                  this._toggleSelectionFind.checked = t;
              }
              this._tryUpdateWidgetWidth(),
                this._updateButtons(),
                setTimeout(() => {
                  q.cn(this._domNode, 'visible'),
                    this._domNode.setAttribute('aria-hidden', 'false');
                }, 0),
                setTimeout(() => {
                  this._findInput.validate();
                }, 200),
                this._codeEditor.layoutOverlayWidget(this);
              let t = !0;
              if (
                this._codeEditor.getOption(29).seedSearchStringFromSelection &&
                e
              ) {
                const i = this._codeEditor.getDomNode();
                if (i) {
                  const n = q.i(i),
                    r = this._codeEditor.getScrolledVisiblePosition(
                      e.getStartPosition()
                    ),
                    s = n.left + (r ? r.left : 0),
                    o = r ? r.top : 0;
                  if (this._viewZone && o < this._viewZone.heightInPx) {
                    e.endLineNumber > e.startLineNumber && (t = !1);
                    const i = q.xQ(this._domNode).left;
                    s > i && (t = !1);
                    const r = this._codeEditor.getScrolledVisiblePosition(
                      e.getEndPosition()
                    );
                    n.left + (r ? r.left : 0) > i && (t = !1);
                  }
                }
              }
              this._showViewZone(t);
            }
          }
          _hide(e) {
            this._isVisible &&
              ((this._isVisible = !1),
              this._updateButtons(),
              q.IV(this._domNode, 'visible'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              this._findInput.clearMessage(),
              e && this._codeEditor.focus(),
              this._codeEditor.layoutOverlayWidget(this),
              this._removeViewZone());
          }
          _layoutViewZone() {
            if (!this._codeEditor.getOption(29).addExtraSpaceOnTop)
              return void this._removeViewZone();
            if (!this._isVisible) return;
            const e = this._viewZone;
            void 0 === this._viewZoneId &&
              e &&
              this._codeEditor.changeViewZones((t) => {
                (e.heightInPx = this._getHeight()),
                  (this._viewZoneId = t.addZone(e)),
                  this._codeEditor.setScrollTop(
                    this._codeEditor.getScrollTop() + e.heightInPx
                  );
              });
          }
          _showViewZone(e = !0) {
            if (!this._isVisible) return;
            if (!this._codeEditor.getOption(29).addExtraSpaceOnTop) return;
            void 0 === this._viewZone && (this._viewZone = new it(0));
            const t = this._viewZone;
            this._codeEditor.changeViewZones((i) => {
              if (void 0 !== this._viewZoneId) {
                const n = this._getHeight();
                if (n === t.heightInPx) return;
                let r = n - t.heightInPx;
                return (
                  (t.heightInPx = n),
                  i.layoutZone(this._viewZoneId),
                  void (
                    e &&
                    this._codeEditor.setScrollTop(
                      this._codeEditor.getScrollTop() + r
                    )
                  )
                );
              }
              {
                let n = this._getHeight();
                if (((n -= this._codeEditor.getOption(66).top), n <= 0)) return;
                (t.heightInPx = n),
                  (this._viewZoneId = i.addZone(t)),
                  e &&
                    this._codeEditor.setScrollTop(
                      this._codeEditor.getScrollTop() + n
                    );
              }
            });
          }
          _removeViewZone() {
            this._codeEditor.changeViewZones((e) => {
              void 0 !== this._viewZoneId &&
                (e.removeZone(this._viewZoneId),
                (this._viewZoneId = void 0),
                this._viewZone &&
                  (this._codeEditor.setScrollTop(
                    this._codeEditor.getScrollTop() - this._viewZone.heightInPx
                  ),
                  (this._viewZone = void 0)));
            });
          }
          _applyTheme(e) {
            let t = {
              inputActiveOptionBorder: e.getColor(m.PR),
              inputActiveOptionBackground: e.getColor(m.XE),
              inputActiveOptionForeground: e.getColor(m.Pv),
              inputBackground: e.getColor(m.sE),
              inputForeground: e.getColor(m.zJ),
              inputBorder: e.getColor(m.dt),
              inputValidationInfoBackground: e.getColor(m._l),
              inputValidationInfoForeground: e.getColor(m.YI),
              inputValidationInfoBorder: e.getColor(m.EP),
              inputValidationWarningBackground: e.getColor(m.RV),
              inputValidationWarningForeground: e.getColor(m.SU),
              inputValidationWarningBorder: e.getColor(m.C3),
              inputValidationErrorBackground: e.getColor(m.p),
              inputValidationErrorForeground: e.getColor(m._t),
              inputValidationErrorBorder: e.getColor(m.OZ),
            };
            this._findInput.style(t),
              this._replaceInput.style(t),
              this._toggleSelectionFind.style(t);
          }
          _tryUpdateWidgetWidth() {
            if (!this._isVisible) return;
            if (!q.Uw(this._domNode)) return;
            const e = this._codeEditor.getLayoutInfo();
            if (e.contentWidth <= 0)
              return void q.cn(this._domNode, 'hiddenEditor');
            q.pv(this._domNode, 'hiddenEditor') &&
              q.IV(this._domNode, 'hiddenEditor');
            const t = e.width,
              i = e.minimap.minimapWidth;
            let n = !1,
              r = !1,
              s = !1;
            if (this._resized && q.w(this._domNode) > Qe)
              return (
                (this._domNode.style.maxWidth = t - 28 - i - 15 + 'px'),
                void (this._replaceInput.width = q.w(this._findInput.domNode))
              );
            if (
              (447 + i >= t && (r = !0),
              447 + i - Xe >= t && (s = !0),
              447 + i - Xe >= t + 50 && (n = !0),
              q.og(this._domNode, 'collapsed-find-widget', n),
              q.og(this._domNode, 'narrow-find-widget', s),
              q.og(this._domNode, 'reduced-find-widget', r),
              s || n || (this._domNode.style.maxWidth = t - 28 - i - 15 + 'px'),
              this._resized)
            ) {
              this._findInput.inputBox.layout();
              let e = this._findInput.inputBox.element.clientWidth;
              e > 0 && (this._replaceInput.width = e);
            } else
              this._isReplaceVisible &&
                (this._replaceInput.width = q.w(this._findInput.domNode));
          }
          _getHeight() {
            let e = 0;
            return (
              (e += 4),
              (e += this._findInput.inputBox.height + 2),
              this._isReplaceVisible &&
                ((e += 4), (e += this._replaceInput.inputBox.height + 2)),
              (e += 4),
              e
            );
          }
          _tryUpdateHeight() {
            const e = this._getHeight();
            return (
              (null === this._cachedHeight || this._cachedHeight !== e) &&
              ((this._cachedHeight = e),
              (this._domNode.style.height = `${e}px`),
              !0)
            );
          }
          focusFindInput() {
            this._findInput.select(), this._findInput.focus();
          }
          focusReplaceInput() {
            this._replaceInput.select(), this._replaceInput.focus();
          }
          highlightFindOptions() {
            this._findInput.highlightFindOptions();
          }
          _updateSearchScope() {
            if (
              this._codeEditor.hasModel() &&
              this._toggleSelectionFind.checked
            ) {
              let e = this._codeEditor.getSelections();
              e
                .map((e) => {
                  1 === e.endColumn &&
                    e.endLineNumber > e.startLineNumber &&
                    (e = e.setEndPosition(
                      e.endLineNumber - 1,
                      this._codeEditor
                        .getModel()
                        .getLineMaxColumn(e.endLineNumber - 1)
                    ));
                  const t = this._state.currentMatch;
                  return e.startLineNumber === e.endLineNumber ||
                    h.e.equalsRange(e, t)
                    ? null
                    : e;
                })
                .filter((e) => !!e),
                e.length && this._state.change({ searchScope: e }, !0);
            }
          }
          _onFindInputMouseDown(e) {
            e.middleButton && e.stopPropagation();
          }
          _onFindInputKeyDown(e) {
            return e.equals(3 | tt)
              ? (this._findInput.inputBox.insertAtCursor('\n'),
                void e.preventDefault())
              : e.equals(2)
              ? (this._isReplaceVisible
                  ? this._replaceInput.focus()
                  : this._findInput.focusOnCaseSensitive(),
                void e.preventDefault())
              : e.equals(2066)
              ? (this._codeEditor.focus(), void e.preventDefault())
              : e.equals(16)
              ? nt(
                  e,
                  this._findInput.getValue(),
                  this._findInput.domNode.querySelector('textarea')
                )
              : e.equals(18)
              ? rt(
                  e,
                  this._findInput.getValue(),
                  this._findInput.domNode.querySelector('textarea')
                )
              : void 0;
          }
          _onReplaceInputKeyDown(e) {
            return e.equals(3 | tt)
              ? (ge.ED &&
                  ge.tY &&
                  !this._ctrlEnterReplaceAllWarningPrompted &&
                  (this._notificationService.info(
                    n.N(
                      'ctrlEnter.keybindingChanged',
                      'Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.'
                    )
                  ),
                  (this._ctrlEnterReplaceAllWarningPrompted = !0),
                  this._storageService.store(et, !0, 0)),
                this._replaceInput.inputBox.insertAtCursor('\n'),
                void e.preventDefault())
              : e.equals(2)
              ? (this._findInput.focusOnCaseSensitive(),
                void e.preventDefault())
              : e.equals(1026)
              ? (this._findInput.focus(), void e.preventDefault())
              : e.equals(2066)
              ? (this._codeEditor.focus(), void e.preventDefault())
              : e.equals(16)
              ? nt(
                  e,
                  this._replaceInput.inputBox.value,
                  this._replaceInput.inputBox.element.querySelector('textarea')
                )
              : e.equals(18)
              ? rt(
                  e,
                  this._replaceInput.inputBox.value,
                  this._replaceInput.inputBox.element.querySelector('textarea')
                )
              : void 0;
          }
          getVerticalSashLeft(e) {
            return 0;
          }
          _keybindingLabelFor(e) {
            let t = this._keybindingService.lookupKeybinding(e);
            return t ? ` (${t.getLabel()})` : '';
          }
          _buildDomNode() {
            (this._findInput = this._register(
              new De(
                null,
                this._contextViewProvider,
                {
                  width: 221,
                  label: Be,
                  placeholder: We,
                  appendCaseSensitiveLabel: this._keybindingLabelFor(Y),
                  appendWholeWordsLabel: this._keybindingLabelFor(H),
                  appendRegexLabel: this._keybindingLabelFor(j),
                  validation: (e) => {
                    if (0 === e.length || !this._findInput.getRegex())
                      return null;
                    try {
                      return new RegExp(e, 'gu'), null;
                    } catch (e) {
                      return { content: e.message };
                    }
                  },
                  flexibleHeight: !0,
                  flexibleWidth: !0,
                  flexibleMaxHeight: 118,
                },
                this._contextKeyService,
                !0
              )
            )),
              this._findInput.setRegex(!!this._state.isRegex),
              this._findInput.setCaseSensitive(!!this._state.matchCase),
              this._findInput.setWholeWords(!!this._state.wholeWord),
              this._register(
                this._findInput.onKeyDown((e) => this._onFindInputKeyDown(e))
              ),
              this._register(
                this._findInput.inputBox.onDidChange(() => {
                  this._ignoreChangeEvent ||
                    this._state.change(
                      { searchString: this._findInput.getValue() },
                      !0
                    );
                })
              ),
              this._register(
                this._findInput.onDidOptionChange(() => {
                  this._state.change(
                    {
                      isRegex: this._findInput.getRegex(),
                      wholeWord: this._findInput.getWholeWords(),
                      matchCase: this._findInput.getCaseSensitive(),
                    },
                    !0
                  );
                })
              ),
              this._register(
                this._findInput.onCaseSensitiveKeyDown((e) => {
                  e.equals(1026) &&
                    this._isReplaceVisible &&
                    (this._replaceInput.focus(), e.preventDefault());
                })
              ),
              this._register(
                this._findInput.onRegexKeyDown((e) => {
                  e.equals(2) &&
                    this._isReplaceVisible &&
                    (this._replaceInput.focusOnPreserve(), e.preventDefault());
                })
              ),
              this._register(
                this._findInput.inputBox.onDidHeightChange((e) => {
                  this._tryUpdateHeight() && this._showViewZone();
                })
              ),
              ge.IJ &&
                this._register(
                  this._findInput.onMouseDown((e) =>
                    this._onFindInputMouseDown(e)
                  )
                ),
              (this._matchesCount = document.createElement('div')),
              (this._matchesCount.className = 'matchesCount'),
              this._updateMatchesCount(),
              (this._prevBtn = this._register(
                new ot({
                  label: Ye + this._keybindingLabelFor(B),
                  className: Pe.classNames,
                  onTrigger: () => {
                    this._codeEditor
                      .getAction(B)
                      .run()
                      .then(void 0, ue.dL);
                  },
                })
              )),
              (this._nextBtn = this._register(
                new ot({
                  label: He + this._keybindingLabelFor(F),
                  className: Fe.classNames,
                  onTrigger: () => {
                    this._codeEditor
                      .getAction(F)
                      .run()
                      .then(void 0, ue.dL);
                  },
                })
              ));
            let e = document.createElement('div');
            (e.className = 'find-part'), e.appendChild(this._findInput.domNode);
            const t = document.createElement('div');
            (t.className = 'find-actions'),
              e.appendChild(t),
              t.appendChild(this._matchesCount),
              t.appendChild(this._prevBtn.domNode),
              t.appendChild(this._nextBtn.domNode),
              (this._toggleSelectionFind = this._register(
                new X({
                  icon: Ee,
                  title: je + this._keybindingLabelFor(V),
                  isChecked: !1,
                })
              )),
              this._register(
                this._toggleSelectionFind.onChange(() => {
                  if (this._toggleSelectionFind.checked) {
                    if (this._codeEditor.hasModel()) {
                      let e = this._codeEditor.getSelections();
                      e
                        .map(
                          (e) => (
                            1 === e.endColumn &&
                              e.endLineNumber > e.startLineNumber &&
                              (e = e.setEndPosition(
                                e.endLineNumber - 1,
                                this._codeEditor
                                  .getModel()
                                  .getLineMaxColumn(e.endLineNumber - 1)
                              )),
                            e.isEmpty() ? null : e
                          )
                        )
                        .filter((e) => !!e),
                        e.length && this._state.change({ searchScope: e }, !0);
                    }
                  } else this._state.change({ searchScope: null }, !0);
                })
              ),
              t.appendChild(this._toggleSelectionFind.domNode),
              (this._closeBtn = this._register(
                new ot({
                  label: Ve + this._keybindingLabelFor(W),
                  className: Oe.classNames,
                  onTrigger: () => {
                    this._state.change(
                      { isRevealed: !1, searchScope: null },
                      !1
                    );
                  },
                  onKeyDown: (e) => {
                    e.equals(2) &&
                      this._isReplaceVisible &&
                      (this._replaceBtn.isEnabled()
                        ? this._replaceBtn.focus()
                        : this._codeEditor.focus(),
                      e.preventDefault());
                  },
                })
              )),
              t.appendChild(this._closeBtn.domNode),
              (this._replaceInput = this._register(
                new Ne(
                  null,
                  void 0,
                  {
                    label: ze,
                    placeholder: Ue,
                    history: [],
                    flexibleHeight: !0,
                    flexibleWidth: !0,
                    flexibleMaxHeight: 118,
                  },
                  this._contextKeyService,
                  !0
                )
              )),
              this._replaceInput.setPreserveCase(!!this._state.preserveCase),
              this._register(
                this._replaceInput.onKeyDown((e) =>
                  this._onReplaceInputKeyDown(e)
                )
              ),
              this._register(
                this._replaceInput.inputBox.onDidChange(() => {
                  this._state.change(
                    { replaceString: this._replaceInput.inputBox.value },
                    !1
                  );
                })
              ),
              this._register(
                this._replaceInput.inputBox.onDidHeightChange((e) => {
                  this._isReplaceVisible &&
                    this._tryUpdateHeight() &&
                    this._showViewZone();
                })
              ),
              this._register(
                this._replaceInput.onDidOptionChange(() => {
                  this._state.change(
                    { preserveCase: this._replaceInput.getPreserveCase() },
                    !0
                  );
                })
              ),
              this._register(
                this._replaceInput.onPreserveCaseKeyDown((e) => {
                  e.equals(2) &&
                    (this._prevBtn.isEnabled()
                      ? this._prevBtn.focus()
                      : this._nextBtn.isEnabled()
                      ? this._nextBtn.focus()
                      : this._toggleSelectionFind.enabled
                      ? this._toggleSelectionFind.focus()
                      : this._closeBtn.isEnabled() && this._closeBtn.focus(),
                    e.preventDefault());
                })
              ),
              (this._replaceBtn = this._register(
                new ot({
                  label: $e + this._keybindingLabelFor(z),
                  className: Ae.classNames,
                  onTrigger: () => {
                    this._controller.replace();
                  },
                  onKeyDown: (e) => {
                    e.equals(1026) &&
                      (this._closeBtn.focus(), e.preventDefault());
                  },
                })
              )),
              (this._replaceAllBtn = this._register(
                new ot({
                  label: Ke + this._keybindingLabelFor(U),
                  className: Re.classNames,
                  onTrigger: () => {
                    this._controller.replaceAll();
                  },
                })
              ));
            let i = document.createElement('div');
            (i.className = 'replace-part'),
              i.appendChild(this._replaceInput.domNode);
            const n = document.createElement('div');
            (n.className = 'replace-actions'),
              i.appendChild(n),
              n.appendChild(this._replaceBtn.domNode),
              n.appendChild(this._replaceAllBtn.domNode),
              (this._toggleReplaceBtn = this._register(
                new ot({
                  label: qe,
                  className: 'codicon toggle left',
                  onTrigger: () => {
                    this._state.change(
                      { isReplaceRevealed: !this._isReplaceVisible },
                      !1
                    ),
                      this._isReplaceVisible &&
                        ((this._replaceInput.width = q.w(
                          this._findInput.domNode
                        )),
                        this._replaceInput.inputBox.layout()),
                      this._showViewZone();
                  },
                })
              )),
              this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),
              (this._domNode = document.createElement('div')),
              (this._domNode.className = 'editor-widget find-widget'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              (this._domNode.style.width = '419px'),
              this._domNode.appendChild(this._toggleReplaceBtn.domNode),
              this._domNode.appendChild(e),
              this._domNode.appendChild(i),
              (this._resizeSash = new he.g(this._domNode, this, {
                orientation: 0,
                size: 2,
              })),
              (this._resized = !1);
            let r = Qe;
            this._register(
              this._resizeSash.onDidStart(() => {
                r = q.w(this._domNode);
              })
            ),
              this._register(
                this._resizeSash.onDidChange((e) => {
                  this._resized = !0;
                  let t = r + e.startX - e.currentX;
                  t < Qe ||
                    t > (parseFloat(q.Dx(this._domNode).maxWidth) || 0) ||
                    ((this._domNode.style.width = `${t}px`),
                    this._isReplaceVisible &&
                      (this._replaceInput.width = q.w(this._findInput.domNode)),
                    this._findInput.inputBox.layout(),
                    this._tryUpdateHeight());
                })
              ),
              this._register(
                this._resizeSash.onDidReset(() => {
                  const e = q.w(this._domNode);
                  if (e < Qe) return;
                  let t = Qe;
                  if (!this._resized || e === Qe) {
                    const e = this._codeEditor.getLayoutInfo();
                    (t = e.width - 28 - e.minimap.minimapWidth - 15),
                      (this._resized = !0);
                  }
                  (this._domNode.style.width = `${t}px`),
                    this._isReplaceVisible &&
                      (this._replaceInput.width = q.w(this._findInput.domNode)),
                    this._findInput.inputBox.layout();
                })
              );
          }
          updateAccessibilitySupport() {
            const e = this._codeEditor.getOption(2);
            this._findInput.setFocusInputOnOptionClick(2 !== e);
          }
        }
        st.ID = 'editor.contrib.findWidget';
        class ot extends G.$ {
          constructor(e) {
            super(),
              (this._opts = e),
              (this._domNode = document.createElement('div')),
              (this._domNode.title = this._opts.label),
              (this._domNode.tabIndex = 0),
              (this._domNode.className = 'button ' + this._opts.className),
              this._domNode.setAttribute('role', 'button'),
              this._domNode.setAttribute('aria-label', this._opts.label),
              this.onclick(this._domNode, (e) => {
                this._opts.onTrigger(), e.preventDefault();
              }),
              this.onkeydown(this._domNode, (e) => {
                if (e.equals(10) || e.equals(3))
                  return this._opts.onTrigger(), void e.preventDefault();
                this._opts.onKeyDown && this._opts.onKeyDown(e);
              });
          }
          get domNode() {
            return this._domNode;
          }
          isEnabled() {
            return this._domNode.tabIndex >= 0;
          }
          focus() {
            this._domNode.focus();
          }
          setEnabled(e) {
            q.og(this._domNode, 'disabled', !e),
              this._domNode.setAttribute('aria-disabled', String(!e)),
              (this._domNode.tabIndex = e ? 0 : -1);
          }
          setExpanded(e) {
            this._domNode.setAttribute('aria-expanded', String(!!e)),
              e
                ? (q.GK(this._domNode, Te.classNames),
                  q.PT(this._domNode, Ie.classNames))
                : (q.GK(this._domNode, Ie.classNames),
                  q.PT(this._domNode, Te.classNames));
          }
        }
        (0, _.Ic)((e, t) => {
          const i = (e, i) => {
            i && t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`);
          };
          i('.findMatch', e.getColor(m.MU)),
            i('.currentFindMatch', e.getColor(m.ny)),
            i('.findScope', e.getColor(m.jU)),
            i('.find-widget', e.getColor(m.D0));
          const n = e.getColor(m.rh);
          n &&
            t.addRule(
              `.monaco-editor .find-widget { box-shadow: 0 2px 8px ${n}; }`
            );
          const r = e.getColor(m.Ei);
          r &&
            t.addRule(
              `.monaco-editor .findMatch { border: 1px ${
                'hc' === e.type ? 'dotted' : 'solid'
              } ${r}; box-sizing: border-box; }`
            );
          const s = e.getColor(m.pn);
          s &&
            t.addRule(
              `.monaco-editor .currentFindMatch { border: 2px solid ${s}; padding: 1px; box-sizing: border-box; }`
            );
          const o = e.getColor(m.gk);
          o &&
            t.addRule(
              `.monaco-editor .findScope { border: 1px ${
                'hc' === e.type ? 'dashed' : 'solid'
              } ${o}; }`
            );
          const a = e.getColor(m.lR);
          a &&
            t.addRule(
              `.monaco-editor .find-widget { border: 1px solid ${a}; }`
            );
          const l = e.getColor(m.Hf);
          l && t.addRule(`.monaco-editor .find-widget { color: ${l}; }`);
          const c = e.getColor(m.Id);
          c &&
            t.addRule(
              `.monaco-editor .find-widget.no-results .matchesCount { color: ${c}; }`
            );
          const d = e.getColor(m.Ng);
          if (d)
            t.addRule(
              `.monaco-editor .find-widget .monaco-sash { background-color: ${d}; }`
            );
          else {
            const i = e.getColor(m.D1);
            i &&
              t.addRule(
                `.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }`
              );
          }
          const h = e.getColor(m.R8);
          h &&
            t.addRule(
              `.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${h}; }`
            );
        });
        var at = i(84144),
          lt = i(84972),
          ct = i(5606),
          dt = i(91847),
          ht = i(52365),
          ut = i(59422),
          gt = i(37280),
          ft = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          pt = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          mt = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function _t(e) {
          if (!e.hasModel()) return null;
          const t = e.getSelection();
          if (t.startLineNumber === t.endLineNumber)
            if (t.isEmpty()) {
              const i = e.getConfiguredWordAtPosition(t.getStartPosition());
              if (i) return i.word;
            } else if (e.getModel().getValueLengthInRange(t) < 524288)
              return e.getModel().getValueInRange(t);
          return null;
        }
        let bt = class e extends s.JT {
          constructor(e, t, i, n) {
            super(),
              (this._editor = e),
              (this._findWidgetVisible = E.bindTo(t)),
              (this._contextKeyService = t),
              (this._storageService = i),
              (this._clipboardService = n),
              (this._updateHistoryDelayer = new r.vp(500)),
              (this._state = this._register(new ce())),
              this.loadQueryState(),
              this._register(
                this._state.onFindReplaceStateChange((e) =>
                  this._onStateChanged(e)
                )
              ),
              (this._model = null),
              this._register(
                this._editor.onDidChangeModel(() => {
                  let e = this._editor.getModel() && this._state.isRevealed;
                  this.disposeModel(),
                    this._state.change(
                      {
                        searchScope: null,
                        matchCase: this._storageService.getBoolean(
                          'editor.matchCase',
                          1,
                          !1
                        ),
                        wholeWord: this._storageService.getBoolean(
                          'editor.wholeWord',
                          1,
                          !1
                        ),
                        isRegex: this._storageService.getBoolean(
                          'editor.isRegex',
                          1,
                          !1
                        ),
                        preserveCase: this._storageService.getBoolean(
                          'editor.preserveCase',
                          1,
                          !1
                        ),
                      },
                      !1
                    ),
                    e &&
                      this._start({
                        forceRevealReplace: !1,
                        seedSearchStringFromSelection: !1,
                        seedSearchStringFromGlobalClipboard: !1,
                        shouldFocus: 0,
                        shouldAnimate: !1,
                        updateSearchScope: !1,
                        loop: this._editor.getOption(29).loop,
                      });
                })
              );
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this.disposeModel(), super.dispose();
          }
          disposeModel() {
            this._model && (this._model.dispose(), (this._model = null));
          }
          _onStateChanged(e) {
            this.saveQueryState(e),
              e.isRevealed &&
                (this._state.isRevealed
                  ? this._findWidgetVisible.set(!0)
                  : (this._findWidgetVisible.reset(), this.disposeModel())),
              e.searchString &&
                this.setGlobalBufferTerm(this._state.searchString);
          }
          saveQueryState(e) {
            e.isRegex &&
              this._storageService.store(
                'editor.isRegex',
                this._state.actualIsRegex,
                1
              ),
              e.wholeWord &&
                this._storageService.store(
                  'editor.wholeWord',
                  this._state.actualWholeWord,
                  1
                ),
              e.matchCase &&
                this._storageService.store(
                  'editor.matchCase',
                  this._state.actualMatchCase,
                  1
                ),
              e.preserveCase &&
                this._storageService.store(
                  'editor.preserveCase',
                  this._state.actualPreserveCase,
                  1
                );
          }
          loadQueryState() {
            this._state.change(
              {
                matchCase: this._storageService.getBoolean(
                  'editor.matchCase',
                  1,
                  this._state.matchCase
                ),
                wholeWord: this._storageService.getBoolean(
                  'editor.wholeWord',
                  1,
                  this._state.wholeWord
                ),
                isRegex: this._storageService.getBoolean(
                  'editor.isRegex',
                  1,
                  this._state.isRegex
                ),
                preserveCase: this._storageService.getBoolean(
                  'editor.preserveCase',
                  1,
                  this._state.preserveCase
                ),
              },
              !1
            );
          }
          isFindInputFocused() {
            return !!T.getValue(this._contextKeyService);
          }
          getState() {
            return this._state;
          }
          closeFindWidget() {
            this._state.change({ isRevealed: !1, searchScope: null }, !1),
              this._editor.focus();
          }
          toggleCaseSensitive() {
            this._state.change({ matchCase: !this._state.matchCase }, !1),
              this._state.isRevealed || this.highlightFindOptions();
          }
          toggleWholeWords() {
            this._state.change({ wholeWord: !this._state.wholeWord }, !1),
              this._state.isRevealed || this.highlightFindOptions();
          }
          toggleRegex() {
            this._state.change({ isRegex: !this._state.isRegex }, !1),
              this._state.isRevealed || this.highlightFindOptions();
          }
          toggleSearchScope() {
            if (this._state.searchScope)
              this._state.change({ searchScope: null }, !0);
            else if (this._editor.hasModel()) {
              let e = this._editor.getSelections();
              e
                .map(
                  (e) => (
                    1 === e.endColumn &&
                      e.endLineNumber > e.startLineNumber &&
                      (e = e.setEndPosition(
                        e.endLineNumber - 1,
                        this._editor
                          .getModel()
                          .getLineMaxColumn(e.endLineNumber - 1)
                      )),
                    e.isEmpty() ? null : e
                  )
                )
                .filter((e) => !!e),
                e.length && this._state.change({ searchScope: e }, !0);
            }
          }
          setSearchString(e) {
            this._state.isRegex && (e = o.ec(e)),
              this._state.change({ searchString: e }, !1);
          }
          highlightFindOptions() {}
          _start(e) {
            return mt(this, void 0, void 0, function* () {
              if ((this.disposeModel(), !this._editor.hasModel())) return;
              let t = { isRevealed: !0 };
              if (e.seedSearchStringFromSelection) {
                let e = _t(this._editor);
                e &&
                  (this._state.isRegex
                    ? (t.searchString = o.ec(e))
                    : (t.searchString = e));
              }
              if (!t.searchString && e.seedSearchStringFromGlobalClipboard) {
                let e = yield this.getGlobalBufferTerm();
                if (!this._editor.hasModel()) return;
                e && (t.searchString = e);
              }
              if (
                (e.forceRevealReplace
                  ? (t.isReplaceRevealed = !0)
                  : this._findWidgetVisible.get() || (t.isReplaceRevealed = !1),
                e.updateSearchScope)
              ) {
                let e = this._editor.getSelections();
                e.some((e) => !e.isEmpty()) && (t.searchScope = e);
              }
              (t.loop = e.loop),
                this._state.change(t, !1),
                this._model || (this._model = new K(this._editor, this._state));
            });
          }
          start(e) {
            return this._start(e);
          }
          moveToNextMatch() {
            return !!this._model && (this._model.moveToNextMatch(), !0);
          }
          moveToPrevMatch() {
            return !!this._model && (this._model.moveToPrevMatch(), !0);
          }
          replace() {
            return !!this._model && (this._model.replace(), !0);
          }
          replaceAll() {
            return !!this._model && (this._model.replaceAll(), !0);
          }
          selectAllMatches() {
            return (
              !!this._model &&
              (this._model.selectAllMatches(), this._editor.focus(), !0)
            );
          }
          getGlobalBufferTerm() {
            return mt(this, void 0, void 0, function* () {
              return this._editor.getOption(29).globalFindClipboard &&
                this._editor.hasModel() &&
                !this._editor.getModel().isTooLargeForSyncing()
                ? this._clipboardService.readFindText()
                : '';
            });
          }
          setGlobalBufferTerm(e) {
            this._editor.getOption(29).globalFindClipboard &&
              this._editor.hasModel() &&
              !this._editor.getModel().isTooLargeForSyncing() &&
              this._clipboardService.writeFindText(e);
          }
        };
        (bt.ID = 'editor.contrib.findController'),
          (bt = ft([pt(1, D.i6), pt(2, ht.Uy), pt(3, lt.p)], bt));
        let vt = class extends bt {
          constructor(e, t, i, n, r, s, o, a, l) {
            super(e, i, o, l),
              (this._contextViewService = t),
              (this._keybindingService = n),
              (this._themeService = r),
              (this._notificationService = s),
              (this._storageKeysSyncRegistryService = a),
              (this._widget = null),
              (this._findOptionsWidget = null);
          }
          _start(e) {
            const t = Object.create(null, {
              _start: { get: () => super._start },
            });
            return mt(this, void 0, void 0, function* () {
              this._widget || this._createFindWidget();
              const i = this._editor.getSelection();
              let n = !1;
              switch (this._editor.getOption(29).autoFindInSelection) {
                case 'always':
                  n = !0;
                  break;
                case 'never':
                  n = !1;
                  break;
                case 'multiline':
                  n = !!i && i.startLineNumber !== i.endLineNumber;
              }
              (e.updateSearchScope = n),
                yield t._start.call(this, e),
                this._widget &&
                  (2 === e.shouldFocus
                    ? this._widget.focusReplaceInput()
                    : 1 === e.shouldFocus && this._widget.focusFindInput());
            });
          }
          highlightFindOptions() {
            this._widget || this._createFindWidget(),
              this._state.isRevealed
                ? this._widget.highlightFindOptions()
                : this._findOptionsWidget.highlightFindOptions();
          }
          _createFindWidget() {
            (this._widget = this._register(
              new st(
                this._editor,
                this,
                this._state,
                this._contextViewService,
                this._keybindingService,
                this._contextKeyService,
                this._themeService,
                this._storageService,
                this._notificationService,
                this._storageKeysSyncRegistryService
              )
            )),
              (this._findOptionsWidget = this._register(
                new ae(
                  this._editor,
                  this._state,
                  this._keybindingService,
                  this._themeService
                )
              ));
          }
        };
        vt = ft(
          [
            pt(1, ct.u),
            pt(2, D.i6),
            pt(3, dt.d),
            pt(4, _.XE),
            pt(5, ut.lT),
            pt(6, ht.Uy),
            pt(7, gt.u),
            pt(8, lt.p),
          ],
          vt
        );
        class yt extends a.jY {
          constructor() {
            super({
              id: 'actions.find',
              label: n.N('startFindAction', 'Find'),
              alias: 'Find',
              precondition: void 0,
              kbOpts: { kbExpr: null, primary: 2084, weight: 100 },
              menuOpts: {
                menuId: at.eH.MenubarEditMenu,
                group: '3_find',
                title: n.N(
                  { key: 'miFind', comment: ['&& denotes a mnemonic'] },
                  '&&Find'
                ),
                order: 1,
              },
            });
          }
          run(e, t) {
            return mt(this, void 0, void 0, function* () {
              let e = bt.get(t);
              e &&
                (yield e.start({
                  forceRevealReplace: !1,
                  seedSearchStringFromSelection: t.getOption(29)
                    .seedSearchStringFromSelection,
                  seedSearchStringFromGlobalClipboard: t.getOption(29)
                    .globalFindClipboard,
                  shouldFocus: 1,
                  shouldAnimate: !0,
                  updateSearchScope: !1,
                  loop: t.getOption(29).loop,
                }));
            });
          }
        }
        class wt extends a.R6 {
          constructor() {
            super({
              id: 'actions.findWithSelection',
              label: n.N('startFindWithSelectionAction', 'Find With Selection'),
              alias: 'Find With Selection',
              precondition: void 0,
              kbOpts: {
                kbExpr: null,
                primary: 0,
                mac: { primary: 2083 },
                weight: 100,
              },
            });
          }
          run(e, t) {
            return mt(this, void 0, void 0, function* () {
              let e = bt.get(t);
              e &&
                (yield e.start({
                  forceRevealReplace: !1,
                  seedSearchStringFromSelection: !0,
                  seedSearchStringFromGlobalClipboard: !1,
                  shouldFocus: 0,
                  shouldAnimate: !0,
                  updateSearchScope: !1,
                  loop: t.getOption(29).loop,
                }),
                e.setGlobalBufferTerm(e.getState().searchString));
            });
          }
        }
        class Ct extends a.R6 {
          run(e, t) {
            return mt(this, void 0, void 0, function* () {
              let e = bt.get(t);
              e &&
                !this._run(e) &&
                (yield e.start({
                  forceRevealReplace: !1,
                  seedSearchStringFromSelection:
                    0 === e.getState().searchString.length &&
                    t.getOption(29).seedSearchStringFromSelection,
                  seedSearchStringFromGlobalClipboard: !0,
                  shouldFocus: 0,
                  shouldAnimate: !0,
                  updateSearchScope: !1,
                  loop: t.getOption(29).loop,
                }),
                this._run(e));
            });
          }
        }
        class St extends Ct {
          constructor() {
            super({
              id: F,
              label: n.N('findNextMatchAction', 'Find Next'),
              alias: 'Find Next',
              precondition: void 0,
              kbOpts: {
                kbExpr: l.u.focus,
                primary: 61,
                mac: { primary: 2085, secondary: [61] },
                weight: 100,
              },
            });
          }
          _run(e) {
            return e.moveToNextMatch();
          }
        }
        class kt extends Ct {
          constructor() {
            super({
              id: F,
              label: n.N('findNextMatchAction', 'Find Next'),
              alias: 'Find Next',
              precondition: void 0,
              kbOpts: {
                kbExpr: D.Ao.and(l.u.focus, T),
                primary: 3,
                weight: 100,
              },
            });
          }
          _run(e) {
            return e.moveToNextMatch();
          }
        }
        class xt extends Ct {
          constructor() {
            super({
              id: B,
              label: n.N('findPreviousMatchAction', 'Find Previous'),
              alias: 'Find Previous',
              precondition: void 0,
              kbOpts: {
                kbExpr: l.u.focus,
                primary: 1085,
                mac: { primary: 3109, secondary: [1085] },
                weight: 100,
              },
            });
          }
          _run(e) {
            return e.moveToPrevMatch();
          }
        }
        class Lt extends Ct {
          constructor() {
            super({
              id: B,
              label: n.N('findPreviousMatchAction', 'Find Previous'),
              alias: 'Find Previous',
              precondition: void 0,
              kbOpts: {
                kbExpr: D.Ao.and(l.u.focus, T),
                primary: 1027,
                weight: 100,
              },
            });
          }
          _run(e) {
            return e.moveToPrevMatch();
          }
        }
        class Mt extends a.R6 {
          run(e, t) {
            return mt(this, void 0, void 0, function* () {
              let e = bt.get(t);
              if (!e) return;
              let i = _t(t);
              i && e.setSearchString(i),
                this._run(e) ||
                  (yield e.start({
                    forceRevealReplace: !1,
                    seedSearchStringFromSelection: t.getOption(29)
                      .seedSearchStringFromSelection,
                    seedSearchStringFromGlobalClipboard: !1,
                    shouldFocus: 0,
                    shouldAnimate: !0,
                    updateSearchScope: !1,
                    loop: t.getOption(29).loop,
                  }),
                  this._run(e));
            });
          }
        }
        class Dt extends Mt {
          constructor() {
            super({
              id: 'editor.action.nextSelectionMatchFindAction',
              label: n.N('nextSelectionMatchFindAction', 'Find Next Selection'),
              alias: 'Find Next Selection',
              precondition: void 0,
              kbOpts: { kbExpr: l.u.focus, primary: 2109, weight: 100 },
            });
          }
          _run(e) {
            return e.moveToNextMatch();
          }
        }
        class Nt extends Mt {
          constructor() {
            super({
              id: 'editor.action.previousSelectionMatchFindAction',
              label: n.N(
                'previousSelectionMatchFindAction',
                'Find Previous Selection'
              ),
              alias: 'Find Previous Selection',
              precondition: void 0,
              kbOpts: { kbExpr: l.u.focus, primary: 3133, weight: 100 },
            });
          }
          _run(e) {
            return e.moveToPrevMatch();
          }
        }
        class Et extends a.jY {
          constructor() {
            super({
              id: 'editor.action.startFindReplaceAction',
              label: n.N('startReplace', 'Replace'),
              alias: 'Replace',
              precondition: void 0,
              kbOpts: {
                kbExpr: null,
                primary: 2086,
                mac: { primary: 2596 },
                weight: 100,
              },
              menuOpts: {
                menuId: at.eH.MenubarEditMenu,
                group: '3_find',
                title: n.N(
                  { key: 'miReplace', comment: ['&& denotes a mnemonic'] },
                  '&&Replace'
                ),
                order: 2,
              },
            });
          }
          run(e, t) {
            return mt(this, void 0, void 0, function* () {
              if (!t.hasModel() || t.getOption(72)) return;
              let e = bt.get(t),
                i = t.getSelection(),
                n = e.isFindInputFocused(),
                r =
                  !i.isEmpty() &&
                  i.startLineNumber === i.endLineNumber &&
                  t.getOption(29).seedSearchStringFromSelection &&
                  !n,
                s = n || r ? 2 : 1;
              e &&
                (yield e.start({
                  forceRevealReplace: !0,
                  seedSearchStringFromSelection: r,
                  seedSearchStringFromGlobalClipboard: t.getOption(29)
                    .seedSearchStringFromSelection,
                  shouldFocus: s,
                  shouldAnimate: !0,
                  updateSearchScope: !1,
                  loop: t.getOption(29).loop,
                }));
            });
          }
        }
        (0, a._K)(bt.ID, vt);
        const Tt = new yt();
        (0, a.rn)(Tt),
          (0, a.Qr)(wt),
          (0, a.Qr)(St),
          (0, a.Qr)(kt),
          (0, a.Qr)(xt),
          (0, a.Qr)(Lt),
          (0, a.Qr)(Dt),
          (0, a.Qr)(Nt);
        const It = new Et();
        (0, a.rn)(It);
        const Ot = a._l.bindToContribution(bt.get);
        (0, a.fK)(
          new Ot({
            id: W,
            precondition: E,
            handler: (e) => e.closeFindWidget(),
            kbOpts: {
              weight: 105,
              kbExpr: l.u.focus,
              primary: 9,
              secondary: [1033],
            },
          })
        ),
          (0, a.fK)(
            new Ot({
              id: Y,
              precondition: void 0,
              handler: (e) => e.toggleCaseSensitive(),
              kbOpts: {
                weight: 105,
                kbExpr: l.u.focus,
                primary: O.primary,
                mac: O.mac,
                win: O.win,
                linux: O.linux,
              },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: H,
              precondition: void 0,
              handler: (e) => e.toggleWholeWords(),
              kbOpts: {
                weight: 105,
                kbExpr: l.u.focus,
                primary: A.primary,
                mac: A.mac,
                win: A.win,
                linux: A.linux,
              },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: j,
              precondition: void 0,
              handler: (e) => e.toggleRegex(),
              kbOpts: {
                weight: 105,
                kbExpr: l.u.focus,
                primary: R.primary,
                mac: R.mac,
                win: R.win,
                linux: R.linux,
              },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: V,
              precondition: void 0,
              handler: (e) => e.toggleSearchScope(),
              kbOpts: {
                weight: 105,
                kbExpr: l.u.focus,
                primary: P.primary,
                mac: P.mac,
                win: P.win,
                linux: P.linux,
              },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: z,
              precondition: E,
              handler: (e) => e.replace(),
              kbOpts: { weight: 105, kbExpr: l.u.focus, primary: 3094 },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: z,
              precondition: E,
              handler: (e) => e.replace(),
              kbOpts: {
                weight: 105,
                kbExpr: D.Ao.and(l.u.focus, I),
                primary: 3,
              },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: U,
              precondition: E,
              handler: (e) => e.replaceAll(),
              kbOpts: { weight: 105, kbExpr: l.u.focus, primary: 2563 },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: U,
              precondition: E,
              handler: (e) => e.replaceAll(),
              kbOpts: {
                weight: 105,
                kbExpr: D.Ao.and(l.u.focus, I),
                primary: void 0,
                mac: { primary: 2051 },
              },
            })
          ),
          (0, a.fK)(
            new Ot({
              id: 'editor.action.selectAllMatches',
              precondition: E,
              handler: (e) => e.selectAllMatches(),
              kbOpts: { weight: 105, kbExpr: l.u.focus, primary: 515 },
            })
          );
      },
      62943: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            FoldingController: () => $,
            editorFoldForeground: () => X,
            foldBackgroundBackground: () => Q,
          });
        var n = i(63580),
          r = i(98401),
          s = i(97295),
          o = i(15393),
          a = i(22258),
          l = i(5976),
          c = i(16830),
          d = i(4669);
        const h = 16777215,
          u = 4278190080;
        class g {
          constructor(e, t, i) {
            if (e.length !== t.length || e.length > 65535)
              throw new Error('invalid startIndexes or endIndexes size');
            (this._startIndexes = e),
              (this._endIndexes = t),
              (this._collapseStates = new Uint32Array(
                Math.ceil(e.length / 32)
              )),
              (this._types = i),
              (this._parentsComputed = !1);
          }
          ensureParentIndices() {
            if (!this._parentsComputed) {
              this._parentsComputed = !0;
              let e = [],
                t = (t, i) => {
                  let n = e[e.length - 1];
                  return (
                    this.getStartLineNumber(n) <= t &&
                    this.getEndLineNumber(n) >= i
                  );
                };
              for (let i = 0, n = this._startIndexes.length; i < n; i++) {
                let n = this._startIndexes[i],
                  r = this._endIndexes[i];
                if (n > h || r > h)
                  throw new Error(
                    'startLineNumber or endLineNumber must not exceed 16777215'
                  );
                for (; e.length > 0 && !t(n, r); ) e.pop();
                let s = e.length > 0 ? e[e.length - 1] : -1;
                e.push(i),
                  (this._startIndexes[i] = n + ((255 & s) << 24)),
                  (this._endIndexes[i] = r + ((65280 & s) << 16));
              }
            }
          }
          get length() {
            return this._startIndexes.length;
          }
          getStartLineNumber(e) {
            return this._startIndexes[e] & h;
          }
          getEndLineNumber(e) {
            return this._endIndexes[e] & h;
          }
          getType(e) {
            return this._types ? this._types[e] : void 0;
          }
          hasTypes() {
            return !!this._types;
          }
          isCollapsed(e) {
            let t = (e / 32) | 0,
              i = e % 32;
            return 0 != (this._collapseStates[t] & (1 << i));
          }
          setCollapsed(e, t) {
            let i = (e / 32) | 0,
              n = e % 32,
              r = this._collapseStates[i];
            this._collapseStates[i] = t ? r | (1 << n) : r & ~(1 << n);
          }
          toRegion(e) {
            return new f(this, e);
          }
          getParentIndex(e) {
            this.ensureParentIndices();
            let t =
              ((this._startIndexes[e] & u) >>> 24) +
              ((this._endIndexes[e] & u) >>> 16);
            return 65535 === t ? -1 : t;
          }
          contains(e, t) {
            return (
              this.getStartLineNumber(e) <= t && this.getEndLineNumber(e) >= t
            );
          }
          findIndex(e) {
            let t = 0,
              i = this._startIndexes.length;
            if (0 === i) return -1;
            for (; t < i; ) {
              let n = Math.floor((t + i) / 2);
              e < this.getStartLineNumber(n) ? (i = n) : (t = n + 1);
            }
            return t - 1;
          }
          findRange(e) {
            let t = this.findIndex(e);
            if (t >= 0) {
              if (this.getEndLineNumber(t) >= e) return t;
              for (t = this.getParentIndex(t); -1 !== t; ) {
                if (this.contains(t, e)) return t;
                t = this.getParentIndex(t);
              }
            }
            return -1;
          }
          toString() {
            let e = [];
            for (let t = 0; t < this.length; t++)
              e[t] = `[${
                this.isCollapsed(t) ? '+' : '-'
              }] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;
            return e.join(', ');
          }
        }
        class f {
          constructor(e, t) {
            (this.ranges = e), (this.index = t);
          }
          get startLineNumber() {
            return this.ranges.getStartLineNumber(this.index);
          }
          get endLineNumber() {
            return this.ranges.getEndLineNumber(this.index);
          }
          get regionIndex() {
            return this.index;
          }
          get parentIndex() {
            return this.ranges.getParentIndex(this.index);
          }
          get isCollapsed() {
            return this.ranges.isCollapsed(this.index);
          }
          containedBy(e) {
            return (
              e.startLineNumber <= this.startLineNumber &&
              e.endLineNumber >= this.endLineNumber
            );
          }
          containsLine(e) {
            return this.startLineNumber <= e && e <= this.endLineNumber;
          }
        }
        class p {
          constructor(e, t) {
            (this._updateEventEmitter = new d.Q5()),
              (this.onDidChange = this._updateEventEmitter.event),
              (this._textModel = e),
              (this._decorationProvider = t),
              (this._regions = new g(new Uint32Array(0), new Uint32Array(0))),
              (this._editorDecorationIds = []),
              (this._isInitialized = !1);
          }
          get regions() {
            return this._regions;
          }
          get textModel() {
            return this._textModel;
          }
          get isInitialized() {
            return this._isInitialized;
          }
          toggleCollapseState(e) {
            if (!e.length) return;
            e = e.sort((e, t) => e.regionIndex - t.regionIndex);
            const t = {};
            this._decorationProvider.changeDecorations((i) => {
              let n = 0,
                r = -1,
                s = -1;
              const o = (e) => {
                for (; n < e; ) {
                  const e = this._regions.getEndLineNumber(n),
                    t = this._regions.isCollapsed(n);
                  e <= r &&
                    i.changeDecorationOptions(
                      this._editorDecorationIds[n],
                      this._decorationProvider.getDecorationOption(t, e <= s)
                    ),
                    t && e > s && (s = e),
                    n++;
                }
              };
              for (let i of e) {
                let e = i.regionIndex,
                  n = this._editorDecorationIds[e];
                if (n && !t[n]) {
                  (t[n] = !0), o(e);
                  let i = !this._regions.isCollapsed(e);
                  this._regions.setCollapsed(e, i),
                    (r = Math.max(r, this._regions.getEndLineNumber(e)));
                }
              }
              o(this._regions.length);
            }),
              this._updateEventEmitter.fire({
                model: this,
                collapseStateChanged: e,
              });
          }
          update(e, t = []) {
            let i = [],
              n = -1,
              r = (r, s) => {
                const o = e.getStartLineNumber(r),
                  a = e.getEndLineNumber(r);
                s &&
                  ((e, i) => {
                    for (let n of t) if (e < n && n <= i) return !0;
                    return !1;
                  })(o, a) &&
                  (s = !1),
                  e.setCollapsed(r, s);
                const l = this._textModel.getLineMaxColumn(o),
                  c = {
                    startLineNumber: o,
                    startColumn: l,
                    endLineNumber: o,
                    endColumn: l,
                  };
                i.push({
                  range: c,
                  options: this._decorationProvider.getDecorationOption(
                    s,
                    a <= n
                  ),
                }),
                  s && a > n && (n = a);
              },
              s = 0,
              o = () => {
                for (; s < this._regions.length; ) {
                  let e = this._regions.isCollapsed(s);
                  if ((s++, e)) return s - 1;
                }
                return -1;
              },
              a = 0,
              l = o();
            for (; -1 !== l && a < e.length; ) {
              let t = this._textModel.getDecorationRange(
                this._editorDecorationIds[l]
              );
              if (t) {
                let i = t.startLineNumber;
                if (this._textModel.getLineMaxColumn(i) === t.startColumn)
                  for (; a < e.length; ) {
                    let t = e.getStartLineNumber(a);
                    if (!(i >= t)) break;
                    r(a, i === t), a++;
                  }
              }
              l = o();
            }
            for (; a < e.length; ) r(a, !1), a++;
            (this._editorDecorationIds = this._decorationProvider.deltaDecorations(
              this._editorDecorationIds,
              i
            )),
              (this._regions = e),
              (this._isInitialized = !0),
              this._updateEventEmitter.fire({ model: this });
          }
          getMemento() {
            let e = [];
            for (let t = 0; t < this._regions.length; t++)
              if (this._regions.isCollapsed(t)) {
                let i = this._textModel.getDecorationRange(
                  this._editorDecorationIds[t]
                );
                if (i) {
                  let n = i.startLineNumber,
                    r =
                      i.endLineNumber +
                      this._regions.getEndLineNumber(t) -
                      this._regions.getStartLineNumber(t);
                  e.push({ startLineNumber: n, endLineNumber: r });
                }
              }
            if (e.length > 0) return e;
          }
          applyMemento(e) {
            if (!Array.isArray(e)) return;
            let t = [];
            for (let i of e) {
              let e = this.getRegionAtLine(i.startLineNumber);
              e && !e.isCollapsed && t.push(e);
            }
            this.toggleCollapseState(t);
          }
          dispose() {
            this._decorationProvider.deltaDecorations(
              this._editorDecorationIds,
              []
            );
          }
          getAllRegionsAtLine(e, t) {
            let i = [];
            if (this._regions) {
              let n = this._regions.findRange(e),
                r = 1;
              for (; n >= 0; ) {
                let e = this._regions.toRegion(n);
                (t && !t(e, r)) || i.push(e), r++, (n = e.parentIndex);
              }
            }
            return i;
          }
          getRegionAtLine(e) {
            if (this._regions) {
              let t = this._regions.findRange(e);
              if (t >= 0) return this._regions.toRegion(t);
            }
            return null;
          }
          getRegionsInside(e, t) {
            let i = [],
              n = e ? e.regionIndex + 1 : 0,
              r = e ? e.endLineNumber : Number.MAX_VALUE;
            if (t && 2 === t.length) {
              const e = [];
              for (let s = n, o = this._regions.length; s < o; s++) {
                let n = this._regions.toRegion(s);
                if (!(this._regions.getStartLineNumber(s) < r)) break;
                for (; e.length > 0 && !n.containedBy(e[e.length - 1]); )
                  e.pop();
                e.push(n), t(n, e.length) && i.push(n);
              }
            } else
              for (let e = n, s = this._regions.length; e < s; e++) {
                let n = this._regions.toRegion(e);
                if (!(this._regions.getStartLineNumber(e) < r)) break;
                (t && !t(n)) || i.push(n);
              }
            return i;
          }
        }
        function m(e, t, i = Number.MAX_VALUE, n) {
          let r = [];
          if (n && n.length > 0)
            for (let s of n) {
              let n = e.getRegionAtLine(s);
              if (n && (n.isCollapsed !== t && r.push(n), i > 1)) {
                let s = e.getRegionsInside(
                  n,
                  (e, n) => e.isCollapsed !== t && n < i
                );
                r.push(...s);
              }
            }
          else {
            let n = e.getRegionsInside(
              null,
              (e, n) => e.isCollapsed !== t && n < i
            );
            r.push(...n);
          }
          e.toggleCollapseState(r);
        }
        function _(e, t, i, n) {
          let r = [];
          for (let s of n) {
            let n = e.getAllRegionsAtLine(
              s,
              (e, n) => e.isCollapsed !== t && n <= i
            );
            r.push(...n);
          }
          e.toggleCollapseState(r);
        }
        function b(e, t, i) {
          let n = e.textModel,
            r = e.regions,
            s = [];
          for (let e = r.length - 1; e >= 0; e--)
            if (i !== r.isCollapsed(e)) {
              let i = r.getStartLineNumber(e);
              t.test(n.getLineContent(i)) && s.push(r.toRegion(e));
            }
          e.toggleCollapseState(s);
        }
        function v(e, t, i) {
          let n = e.regions,
            r = [];
          for (let e = n.length - 1; e >= 0; e--)
            i !== n.isCollapsed(e) &&
              t === n.getType(e) &&
              r.push(n.toRegion(e));
          e.toggleCollapseState(r);
        }
        var y = i(3411),
          w = i(73046);
        const C = (0, w.q5)('folding-expanded', w.lA.chevronDown),
          S = (0, w.q5)('folding-collapsed', w.lA.chevronRight);
        class k {
          constructor(e) {
            (this.editor = e),
              (this.autoHideFoldingControls = !0),
              (this.showFoldingHighlights = !0);
          }
          getDecorationOption(e, t) {
            return t
              ? k.HIDDEN_RANGE_DECORATION
              : e
              ? this.showFoldingHighlights
                ? k.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION
                : k.COLLAPSED_VISUAL_DECORATION
              : this.autoHideFoldingControls
              ? k.EXPANDED_AUTO_HIDE_VISUAL_DECORATION
              : k.EXPANDED_VISUAL_DECORATION;
          }
          deltaDecorations(e, t) {
            return this.editor.deltaDecorations(e, t);
          }
          changeDecorations(e) {
            return this.editor.changeDecorations(e);
          }
        }
        (k.COLLAPSED_VISUAL_DECORATION = y.qx.register({
          stickiness: 1,
          afterContentClassName: 'inline-folded',
          isWholeLine: !0,
          firstLineDecorationClassName: S.classNames,
        })),
          (k.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = y.qx.register({
            stickiness: 1,
            afterContentClassName: 'inline-folded',
            className: 'folded-background',
            isWholeLine: !0,
            firstLineDecorationClassName: S.classNames,
          })),
          (k.EXPANDED_AUTO_HIDE_VISUAL_DECORATION = y.qx.register({
            stickiness: 1,
            isWholeLine: !0,
            firstLineDecorationClassName: C.classNames,
          })),
          (k.EXPANDED_VISUAL_DECORATION = y.qx.register({
            stickiness: 1,
            isWholeLine: !0,
            firstLineDecorationClassName: 'alwaysShowFoldIcons ' + C.classNames,
          })),
          (k.HIDDEN_RANGE_DECORATION = y.qx.register({ stickiness: 1 }));
        var x = i(29102),
          L = i(24314),
          M = i(9488);
        class D {
          constructor(e) {
            (this._updateEventEmitter = new d.Q5()),
              (this._foldingModel = e),
              (this._foldingModelListener = e.onDidChange((e) =>
                this.updateHiddenRanges()
              )),
              (this._hiddenRanges = []),
              e.regions.length && this.updateHiddenRanges();
          }
          get onDidChange() {
            return this._updateEventEmitter.event;
          }
          get hiddenRanges() {
            return this._hiddenRanges;
          }
          updateHiddenRanges() {
            let e = !1,
              t = [],
              i = 0,
              n = 0,
              r = Number.MAX_VALUE,
              s = -1,
              o = this._foldingModel.regions;
            for (; i < o.length; i++) {
              if (!o.isCollapsed(i)) continue;
              let a = o.getStartLineNumber(i) + 1,
                l = o.getEndLineNumber(i);
              (r <= a && l <= s) ||
                (!e &&
                n < this._hiddenRanges.length &&
                this._hiddenRanges[n].startLineNumber === a &&
                this._hiddenRanges[n].endLineNumber === l
                  ? (t.push(this._hiddenRanges[n]), n++)
                  : ((e = !0), t.push(new L.e(a, 1, l, 1))),
                (r = a),
                (s = l));
            }
            (e || n < this._hiddenRanges.length) && this.applyHiddenRanges(t);
          }
          applyMemento(e) {
            if (!Array.isArray(e) || 0 === e.length) return !1;
            let t = [];
            for (let i of e) {
              if (!i.startLineNumber || !i.endLineNumber) return !1;
              t.push(new L.e(i.startLineNumber + 1, 1, i.endLineNumber, 1));
            }
            return this.applyHiddenRanges(t), !0;
          }
          getMemento() {
            return this._hiddenRanges.map((e) => ({
              startLineNumber: e.startLineNumber - 1,
              endLineNumber: e.endLineNumber,
            }));
          }
          applyHiddenRanges(e) {
            (this._hiddenRanges = e), this._updateEventEmitter.fire(e);
          }
          hasRanges() {
            return this._hiddenRanges.length > 0;
          }
          isHidden(e) {
            return null !== N(this._hiddenRanges, e);
          }
          adjustSelections(e) {
            let t = !1,
              i = this._foldingModel.textModel,
              n = null,
              r = (e) => (
                (n &&
                  (function (e, t) {
                    return e >= t.startLineNumber && e <= t.endLineNumber;
                  })(e, n)) ||
                  (n = N(this._hiddenRanges, e)),
                n ? n.startLineNumber - 1 : null
              );
            for (let n = 0, s = e.length; n < s; n++) {
              let s = e[n],
                o = r(s.startLineNumber);
              o &&
                ((s = s.setStartPosition(o, i.getLineMaxColumn(o))), (t = !0));
              let a = r(s.endLineNumber);
              a && ((s = s.setEndPosition(a, i.getLineMaxColumn(a))), (t = !0)),
                (e[n] = s);
            }
            return t;
          }
          dispose() {
            this.hiddenRanges.length > 0 &&
              ((this._hiddenRanges = []),
              this._updateEventEmitter.fire(this._hiddenRanges)),
              this._foldingModelListener &&
                (this._foldingModelListener.dispose(),
                (this._foldingModelListener = null));
          }
        }
        function N(e, t) {
          let i = (0, M.lG)(e, (e) => t < e.startLineNumber) - 1;
          return i >= 0 && e[i].endLineNumber >= t ? e[i] : null;
        }
        var E = i(83831);
        class T {
          constructor(e) {
            (this.editorModel = e), (this.id = 'indent');
          }
          dispose() {}
          compute(e) {
            let t = E.zu.getFoldingRules(
                this.editorModel.getLanguageIdentifier().id
              ),
              i = t && !!t.offSide,
              n = t && t.markers;
            return Promise.resolve(
              (function (e, t, i, n = 5e3) {
                const r = e.getOptions().tabSize;
                let s,
                  o = new I(n);
                i &&
                  (s = new RegExp(`(${i.start.source})|(?:${i.end.source})`));
                let a = [],
                  l = e.getLineCount() + 1;
                a.push({ indent: -1, endAbove: l, line: l });
                for (let i = e.getLineCount(); i > 0; i--) {
                  let n,
                    l = e.getLineContent(i),
                    c = y.yO.computeIndentLevel(l, r),
                    d = a[a.length - 1];
                  if (-1 !== c) {
                    if (s && (n = l.match(s))) {
                      if (!n[1]) {
                        a.push({ indent: -2, endAbove: i, line: i });
                        continue;
                      }
                      {
                        let e = a.length - 1;
                        for (; e > 0 && -2 !== a[e].indent; ) e--;
                        if (e > 0) {
                          (a.length = e + 1),
                            (d = a[e]),
                            o.insertFirst(i, d.line, c),
                            (d.line = i),
                            (d.indent = c),
                            (d.endAbove = i);
                          continue;
                        }
                      }
                    }
                    if (d.indent > c) {
                      do {
                        a.pop(), (d = a[a.length - 1]);
                      } while (d.indent > c);
                      let e = d.endAbove - 1;
                      e - i >= 1 && o.insertFirst(i, e, c);
                    }
                    d.indent === c
                      ? (d.endAbove = i)
                      : a.push({ indent: c, endAbove: i, line: i });
                  } else t && (d.endAbove = i);
                }
                return o.toIndentRanges(e);
              })(this.editorModel, i, n)
            );
          }
        }
        class I {
          constructor(e) {
            (this._startIndexes = []),
              (this._endIndexes = []),
              (this._indentOccurrences = []),
              (this._length = 0),
              (this._foldingRangesLimit = e);
          }
          insertFirst(e, t, i) {
            if (e > h || t > h) return;
            let n = this._length;
            (this._startIndexes[n] = e),
              (this._endIndexes[n] = t),
              this._length++,
              i < 1e3 &&
                (this._indentOccurrences[i] =
                  (this._indentOccurrences[i] || 0) + 1);
          }
          toIndentRanges(e) {
            if (this._length <= this._foldingRangesLimit) {
              let e = new Uint32Array(this._length),
                t = new Uint32Array(this._length);
              for (let i = this._length - 1, n = 0; i >= 0; i--, n++)
                (e[n] = this._startIndexes[i]), (t[n] = this._endIndexes[i]);
              return new g(e, t);
            }
            {
              let t = 0,
                i = this._indentOccurrences.length;
              for (let e = 0; e < this._indentOccurrences.length; e++) {
                let n = this._indentOccurrences[e];
                if (n) {
                  if (n + t > this._foldingRangesLimit) {
                    i = e;
                    break;
                  }
                  t += n;
                }
              }
              const n = e.getOptions().tabSize;
              let r = new Uint32Array(this._foldingRangesLimit),
                s = new Uint32Array(this._foldingRangesLimit);
              for (let o = this._length - 1, a = 0; o >= 0; o--) {
                let l = this._startIndexes[o],
                  c = e.getLineContent(l),
                  d = y.yO.computeIndentLevel(c, n);
                (d < i || (d === i && t++ < this._foldingRangesLimit)) &&
                  ((r[a] = l), (s[a] = this._endIndexes[o]), a++);
              }
              return new g(r, s);
            }
          }
        }
        var O = i(43775),
          A = i(17301);
        const R = {},
          P = 'syntax';
        class F {
          constructor(e, t, i = 5e3) {
            (this.editorModel = e),
              (this.providers = t),
              (this.limit = i),
              (this.id = P);
          }
          compute(e) {
            return (function (e, t, i) {
              let n = null,
                r = e.map((e, r) =>
                  Promise.resolve(e.provideFoldingRanges(t, R, i)).then((e) => {
                    if (!i.isCancellationRequested && Array.isArray(e)) {
                      Array.isArray(n) || (n = []);
                      let i = t.getLineCount();
                      for (let t of e)
                        t.start > 0 &&
                          t.end > t.start &&
                          t.end <= i &&
                          n.push({
                            start: t.start,
                            end: t.end,
                            rank: r,
                            kind: t.kind,
                          });
                    }
                  }, A.Cp)
                );
              return Promise.all(r).then((e) => n);
            })(this.providers, this.editorModel, e).then((e) =>
              e ? W(e, this.limit) : null
            );
          }
          dispose() {}
        }
        class B {
          constructor(e) {
            (this._startIndexes = []),
              (this._endIndexes = []),
              (this._nestingLevels = []),
              (this._nestingLevelCounts = []),
              (this._types = []),
              (this._length = 0),
              (this._foldingRangesLimit = e);
          }
          add(e, t, i, n) {
            if (e > h || t > h) return;
            let r = this._length;
            (this._startIndexes[r] = e),
              (this._endIndexes[r] = t),
              (this._nestingLevels[r] = n),
              (this._types[r] = i),
              this._length++,
              n < 30 &&
                (this._nestingLevelCounts[n] =
                  (this._nestingLevelCounts[n] || 0) + 1);
          }
          toIndentRanges() {
            if (this._length <= this._foldingRangesLimit) {
              let e = new Uint32Array(this._length),
                t = new Uint32Array(this._length);
              for (let i = 0; i < this._length; i++)
                (e[i] = this._startIndexes[i]), (t[i] = this._endIndexes[i]);
              return new g(e, t, this._types);
            }
            {
              let e = 0,
                t = this._nestingLevelCounts.length;
              for (let i = 0; i < this._nestingLevelCounts.length; i++) {
                let n = this._nestingLevelCounts[i];
                if (n) {
                  if (n + e > this._foldingRangesLimit) {
                    t = i;
                    break;
                  }
                  e += n;
                }
              }
              let i = new Uint32Array(this._foldingRangesLimit),
                n = new Uint32Array(this._foldingRangesLimit),
                r = [];
              for (let s = 0, o = 0; s < this._length; s++) {
                let a = this._nestingLevels[s];
                (a < t || (a === t && e++ < this._foldingRangesLimit)) &&
                  ((i[o] = this._startIndexes[s]),
                  (n[o] = this._endIndexes[s]),
                  (r[o] = this._types[s]),
                  o++);
              }
              return new g(i, n, r);
            }
          }
        }
        function W(e, t) {
          let i,
            n = e.sort((e, t) => {
              let i = e.start - t.start;
              return 0 === i && (i = e.rank - t.rank), i;
            }),
            r = new B(t),
            s = [];
          for (let e of n)
            if (i) {
              if (e.start > i.start)
                if (e.end <= i.end)
                  s.push(i),
                    (i = e),
                    r.add(e.start, e.end, e.kind && e.kind.value, s.length);
                else {
                  if (e.start > i.end) {
                    do {
                      i = s.pop();
                    } while (i && e.start > i.end);
                    i && s.push(i), (i = e);
                  }
                  r.add(e.start, e.end, e.kind && e.kind.value, s.length);
                }
            } else
              (i = e), r.add(e.start, e.end, e.kind && e.kind.value, s.length);
          return r.toIndentRanges();
        }
        const Y = 'init';
        class H {
          constructor(e, t, i, n) {
            if (((this.editorModel = e), (this.id = Y), t.length)) {
              let r = (t) => ({
                range: {
                  startLineNumber: t.startLineNumber,
                  startColumn: 0,
                  endLineNumber: t.endLineNumber,
                  endColumn: e.getLineLength(t.endLineNumber),
                },
                options: { stickiness: 1 },
              });
              (this.decorationIds = e.deltaDecorations([], t.map(r))),
                (this.timeout = setTimeout(i, n));
            }
          }
          dispose() {
            this.decorationIds &&
              (this.editorModel.deltaDecorations(this.decorationIds, []),
              (this.decorationIds = void 0)),
              'number' == typeof this.timeout &&
                (clearTimeout(this.timeout), (this.timeout = void 0));
          }
          compute(e) {
            let t = [];
            if (this.decorationIds)
              for (let e of this.decorationIds) {
                let i = this.editorModel.getDecorationRange(e);
                i &&
                  t.push({
                    start: i.startLineNumber,
                    end: i.endLineNumber,
                    rank: 1,
                  });
              }
            return Promise.resolve(W(t, Number.MAX_VALUE));
          }
        }
        var j = i(38819),
          V = i(97781),
          z = i(73910);
        const U = new j.uy('foldingEnabled', !1);
        let $ = class e extends l.JT {
          constructor(e, t) {
            super(),
              (this.contextKeyService = t),
              (this.localToDispose = this._register(new l.SL())),
              (this.editor = e);
            const i = this.editor.getOptions();
            (this._isEnabled = i.get(31)),
              (this._useFoldingProviders = 'indentation' !== i.get(32)),
              (this._unfoldOnClickAfterEndOfLine = i.get(34)),
              (this.foldingModel = null),
              (this.hiddenRangeModel = null),
              (this.rangeProvider = null),
              (this.foldingRegionPromise = null),
              (this.foldingStateMemento = null),
              (this.foldingModelPromise = null),
              (this.updateScheduler = null),
              (this.cursorChangedScheduler = null),
              (this.mouseDownInfo = null),
              (this.foldingDecorationProvider = new k(e)),
              (this.foldingDecorationProvider.autoHideFoldingControls =
                'mouseover' === i.get(91)),
              (this.foldingDecorationProvider.showFoldingHighlights = i.get(
                33
              )),
              (this.foldingEnabled = U.bindTo(this.contextKeyService)),
              this.foldingEnabled.set(this._isEnabled),
              this._register(
                this.editor.onDidChangeModel(() => this.onModelChanged())
              ),
              this._register(
                this.editor.onDidChangeConfiguration((e) => {
                  if (
                    (e.hasChanged(31) &&
                      ((this._isEnabled = this.editor.getOptions().get(31)),
                      this.foldingEnabled.set(this._isEnabled),
                      this.onModelChanged()),
                    e.hasChanged(91) || e.hasChanged(33))
                  ) {
                    const e = this.editor.getOptions();
                    (this.foldingDecorationProvider.autoHideFoldingControls =
                      'mouseover' === e.get(91)),
                      (this.foldingDecorationProvider.showFoldingHighlights = e.get(
                        33
                      )),
                      this.onModelContentChanged();
                  }
                  e.hasChanged(32) &&
                    ((this._useFoldingProviders =
                      'indentation' !== this.editor.getOptions().get(32)),
                    this.onFoldingStrategyChanged()),
                    e.hasChanged(34) &&
                      (this._unfoldOnClickAfterEndOfLine = this.editor
                        .getOptions()
                        .get(34));
                })
              ),
              this.onModelChanged();
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          saveViewState() {
            let e = this.editor.getModel();
            if (!e || !this._isEnabled || e.isTooLargeForTokenization())
              return {};
            if (this.foldingModel) {
              let t = this.foldingModel.isInitialized
                  ? this.foldingModel.getMemento()
                  : this.hiddenRangeModel.getMemento(),
                i = this.rangeProvider ? this.rangeProvider.id : void 0;
              return {
                collapsedRegions: t,
                lineCount: e.getLineCount(),
                provider: i,
              };
            }
          }
          restoreViewState(e) {
            let t = this.editor.getModel();
            if (
              !t ||
              !this._isEnabled ||
              t.isTooLargeForTokenization() ||
              !this.hiddenRangeModel
            )
              return;
            if (!e || !e.collapsedRegions || e.lineCount !== t.getLineCount())
              return;
            (e.provider !== P && e.provider !== Y) ||
              (this.foldingStateMemento = e);
            const i = e.collapsedRegions;
            if (this.hiddenRangeModel.applyMemento(i)) {
              const e = this.getFoldingModel();
              e &&
                e
                  .then((e) => {
                    e && e.applyMemento(i);
                  })
                  .then(void 0, A.dL);
            }
          }
          onModelChanged() {
            this.localToDispose.clear();
            let e = this.editor.getModel();
            this._isEnabled &&
              e &&
              !e.isTooLargeForTokenization() &&
              ((this.foldingModel = new p(e, this.foldingDecorationProvider)),
              this.localToDispose.add(this.foldingModel),
              (this.hiddenRangeModel = new D(this.foldingModel)),
              this.localToDispose.add(this.hiddenRangeModel),
              this.localToDispose.add(
                this.hiddenRangeModel.onDidChange((e) =>
                  this.onHiddenRangesChanges(e)
                )
              ),
              (this.updateScheduler = new o.vp(200)),
              (this.cursorChangedScheduler = new o.pY(
                () => this.revealCursor(),
                200
              )),
              this.localToDispose.add(this.cursorChangedScheduler),
              this.localToDispose.add(
                O.aC.onDidChange(() => this.onFoldingStrategyChanged())
              ),
              this.localToDispose.add(
                this.editor.onDidChangeModelLanguageConfiguration(() =>
                  this.onFoldingStrategyChanged()
                )
              ),
              this.localToDispose.add(
                this.editor.onDidChangeModelContent(() =>
                  this.onModelContentChanged()
                )
              ),
              this.localToDispose.add(
                this.editor.onDidChangeCursorPosition(() =>
                  this.onCursorPositionChanged()
                )
              ),
              this.localToDispose.add(
                this.editor.onMouseDown((e) => this.onEditorMouseDown(e))
              ),
              this.localToDispose.add(
                this.editor.onMouseUp((e) => this.onEditorMouseUp(e))
              ),
              this.localToDispose.add({
                dispose: () => {
                  this.foldingRegionPromise &&
                    (this.foldingRegionPromise.cancel(),
                    (this.foldingRegionPromise = null)),
                    this.updateScheduler && this.updateScheduler.cancel(),
                    (this.updateScheduler = null),
                    (this.foldingModel = null),
                    (this.foldingModelPromise = null),
                    (this.hiddenRangeModel = null),
                    (this.cursorChangedScheduler = null),
                    (this.foldingStateMemento = null),
                    this.rangeProvider && this.rangeProvider.dispose(),
                    (this.rangeProvider = null);
                },
              }),
              this.onModelContentChanged());
          }
          onFoldingStrategyChanged() {
            this.rangeProvider && this.rangeProvider.dispose(),
              (this.rangeProvider = null),
              this.onModelContentChanged();
          }
          getRangeProvider(e) {
            if (this.rangeProvider) return this.rangeProvider;
            if (
              ((this.rangeProvider = new T(e)),
              this._useFoldingProviders && this.foldingModel)
            ) {
              let t = O.aC.ordered(this.foldingModel.textModel);
              if (
                0 === t.length &&
                this.foldingStateMemento &&
                this.foldingStateMemento.collapsedRegions
              )
                return (this.rangeProvider = new H(
                  e,
                  this.foldingStateMemento.collapsedRegions,
                  () => {
                    (this.foldingStateMemento = null),
                      this.onFoldingStrategyChanged();
                  },
                  3e4
                ));
              t.length > 0 && (this.rangeProvider = new F(e, t));
            }
            return (this.foldingStateMemento = null), this.rangeProvider;
          }
          getFoldingModel() {
            return this.foldingModelPromise;
          }
          onModelContentChanged() {
            this.updateScheduler &&
              (this.foldingRegionPromise &&
                (this.foldingRegionPromise.cancel(),
                (this.foldingRegionPromise = null)),
              (this.foldingModelPromise = this.updateScheduler
                .trigger(() => {
                  const e = this.foldingModel;
                  if (!e) return null;
                  let t = (this.foldingRegionPromise = (0, o.PG)((t) =>
                    this.getRangeProvider(e.textModel).compute(t)
                  ));
                  return t.then((i) => {
                    if (i && t === this.foldingRegionPromise) {
                      let t = this.editor.getSelections(),
                        n = t ? t.map((e) => e.startLineNumber) : [];
                      e.update(i, n);
                    }
                    return e;
                  });
                })
                .then(void 0, (e) => ((0, A.dL)(e), null))));
          }
          onHiddenRangesChanges(e) {
            if (this.hiddenRangeModel && e.length) {
              let e = this.editor.getSelections();
              e &&
                this.hiddenRangeModel.adjustSelections(e) &&
                this.editor.setSelections(e);
            }
            this.editor.setHiddenAreas(e);
          }
          onCursorPositionChanged() {
            this.hiddenRangeModel &&
              this.hiddenRangeModel.hasRanges() &&
              this.cursorChangedScheduler.schedule();
          }
          revealCursor() {
            const e = this.getFoldingModel();
            e &&
              e
                .then((e) => {
                  if (e) {
                    let t = this.editor.getSelections();
                    if (t && t.length > 0) {
                      let i = [];
                      for (let n of t) {
                        let t = n.selectionStartLineNumber;
                        this.hiddenRangeModel &&
                          this.hiddenRangeModel.isHidden(t) &&
                          i.push(
                            ...e.getAllRegionsAtLine(
                              t,
                              (e) => e.isCollapsed && t > e.startLineNumber
                            )
                          );
                      }
                      i.length &&
                        (e.toggleCollapseState(i),
                        this.reveal(t[0].getPosition()));
                    }
                  }
                })
                .then(void 0, A.dL);
          }
          onEditorMouseDown(e) {
            if (
              ((this.mouseDownInfo = null),
              !this.hiddenRangeModel || !e.target || !e.target.range)
            )
              return;
            if (!e.event.leftButton && !e.event.middleButton) return;
            const t = e.target.range;
            let i = !1;
            switch (e.target.type) {
              case 4:
                const n = e.target.detail,
                  r = e.target.element.offsetLeft;
                if (n.offsetX - r < 5) return;
                i = !0;
                break;
              case 7:
                if (
                  this._unfoldOnClickAfterEndOfLine &&
                  this.hiddenRangeModel.hasRanges() &&
                  !e.target.detail.isAfterLines
                )
                  break;
                return;
              case 6:
                if (this.hiddenRangeModel.hasRanges()) {
                  let e = this.editor.getModel();
                  if (
                    e &&
                    t.startColumn === e.getLineMaxColumn(t.startLineNumber)
                  )
                    break;
                }
                return;
              default:
                return;
            }
            this.mouseDownInfo = {
              lineNumber: t.startLineNumber,
              iconClicked: i,
            };
          }
          onEditorMouseUp(e) {
            const t = this.getFoldingModel();
            if (!t || !this.mouseDownInfo || !e.target) return;
            let i = this.mouseDownInfo.lineNumber,
              n = this.mouseDownInfo.iconClicked,
              r = e.target.range;
            if (r && r.startLineNumber === i) {
              if (n) {
                if (4 !== e.target.type) return;
              } else {
                let e = this.editor.getModel();
                if (!e || r.startColumn !== e.getLineMaxColumn(i)) return;
              }
              t.then((t) => {
                if (t) {
                  let r = t.getRegionAtLine(i);
                  if (r && r.startLineNumber === i) {
                    let s = r.isCollapsed;
                    if (n || s) {
                      let n = [],
                        o = e.event.middleButton || e.event.shiftKey;
                      if (o)
                        for (const e of t.getRegionsInside(r))
                          e.isCollapsed === s && n.push(e);
                      (!s && o && 0 !== n.length) || n.push(r),
                        t.toggleCollapseState(n),
                        this.reveal({ lineNumber: i, column: 1 });
                    }
                  }
                }
              }).then(void 0, A.dL);
            }
          }
          reveal(e) {
            this.editor.revealPositionInCenterIfOutsideViewport(e, 0);
          }
        };
        var K, q;
        ($.ID = 'editor.contrib.folding'),
          ($ = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((K = 1),
              (q = j.i6),
              function (e, t) {
                q(e, t, K);
              }),
            ],
            $
          ));
        class G extends c.R6 {
          runEditorCommand(e, t, i) {
            let n = $.get(t);
            if (!n) return;
            let r = n.getFoldingModel();
            return r
              ? (this.reportTelemetry(e, t),
                r.then((e) => {
                  if (e) {
                    this.invoke(n, e, t, i);
                    const r = t.getSelection();
                    r && n.reveal(r.getStartPosition());
                  }
                }))
              : void 0;
          }
          getSelectedLines(e) {
            let t = e.getSelections();
            return t ? t.map((e) => e.startLineNumber) : [];
          }
          getLineNumbers(e, t) {
            return e && e.selectionLines
              ? e.selectionLines.map((e) => e + 1)
              : this.getSelectedLines(t);
          }
          run(e, t) {}
        }
        function Z(e) {
          if (!r.o8(e)) {
            if (!r.Kn(e)) return !1;
            const t = e;
            if (!r.o8(t.levels) && !r.hj(t.levels)) return !1;
            if (!r.o8(t.direction) && !r.HD(t.direction)) return !1;
            if (
              !(
                r.o8(t.selectionLines) ||
                (r.kJ(t.selectionLines) && t.selectionLines.every(r.hj))
              )
            )
              return !1;
          }
          return !0;
        }
        class J extends G {
          getFoldingLevel() {
            return parseInt(this.id.substr(J.ID_PREFIX.length));
          }
          invoke(e, t, i) {
            !(function (e, t, i, n) {
              let r = e.getRegionsInside(
                null,
                (e, i) =>
                  i === t &&
                  true !== e.isCollapsed &&
                  !n.some((t) => e.containsLine(t))
              );
              e.toggleCollapseState(r);
            })(t, this.getFoldingLevel(), 0, this.getSelectedLines(i));
          }
        }
        (J.ID_PREFIX = 'editor.foldLevel'),
          (J.ID = (e) => J.ID_PREFIX + e),
          (0, c._K)($.ID, $),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.unfold',
                  label: n.N('unfoldAction.label', 'Unfold'),
                  alias: 'Unfold',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: 3161,
                    mac: { primary: 2649 },
                    weight: 100,
                  },
                  description: {
                    description: 'Unfold the content in the editor',
                    args: [
                      {
                        name: 'Unfold editor argument',
                        description:
                          "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",
                        constraint: Z,
                        schema: {
                          type: 'object',
                          properties: {
                            levels: { type: 'number', default: 1 },
                            direction: {
                              type: 'string',
                              enum: ['up', 'down'],
                              default: 'down',
                            },
                            selectionLines: {
                              type: 'array',
                              items: { type: 'number' },
                            },
                          },
                        },
                      },
                    ],
                  },
                });
              }
              invoke(e, t, i, n) {
                let r = (n && n.levels) || 1,
                  s = this.getLineNumbers(n, i);
                n && 'up' === n.direction ? _(t, !1, r, s) : m(t, !1, r, s);
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.unfoldRecursively',
                  label: n.N(
                    'unFoldRecursivelyAction.label',
                    'Unfold Recursively'
                  ),
                  alias: 'Unfold Recursively',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2137),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i, n) {
                m(t, !1, Number.MAX_VALUE, this.getSelectedLines(i));
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.fold',
                  label: n.N('foldAction.label', 'Fold'),
                  alias: 'Fold',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: 3159,
                    mac: { primary: 2647 },
                    weight: 100,
                  },
                  description: {
                    description: 'Fold the content in the editor',
                    args: [
                      {
                        name: 'Fold editor argument',
                        description:
                          "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': The start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",
                        constraint: Z,
                        schema: {
                          type: 'object',
                          properties: {
                            levels: { type: 'number' },
                            direction: { type: 'string', enum: ['up', 'down'] },
                            selectionLines: {
                              type: 'array',
                              items: { type: 'number' },
                            },
                          },
                        },
                      },
                    ],
                  },
                });
              }
              invoke(e, t, i, n) {
                let r = this.getLineNumbers(n, i);
                const s = n && n.levels,
                  o = n && n.direction;
                'number' != typeof s && 'string' != typeof o
                  ? (function (e, t, i) {
                      let n = [];
                      for (let t of i) {
                        let i = e.getAllRegionsAtLine(
                          t,
                          (e) => true !== e.isCollapsed
                        );
                        i.length > 0 && n.push(i[0]);
                      }
                      e.toggleCollapseState(n);
                    })(t, 0, r)
                  : 'up' === o
                  ? _(t, !0, s || 1, r)
                  : m(t, !0, s || 1, r);
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.foldRecursively',
                  label: n.N('foldRecursivelyAction.label', 'Fold Recursively'),
                  alias: 'Fold Recursively',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2135),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                let n = this.getSelectedLines(i);
                m(t, !0, Number.MAX_VALUE, n);
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.foldAll',
                  label: n.N('foldAllAction.label', 'Fold All'),
                  alias: 'Fold All',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2069),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                m(t, !0);
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.unfoldAll',
                  label: n.N('unfoldAllAction.label', 'Unfold All'),
                  alias: 'Unfold All',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2088),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                m(t, !1);
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.foldAllBlockComments',
                  label: n.N(
                    'foldAllBlockComments.label',
                    'Fold All Block Comments'
                  ),
                  alias: 'Fold All Block Comments',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2133),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                if (t.regions.hasTypes()) v(t, O.AD.Comment.value, !0);
                else {
                  const e = i.getModel();
                  if (!e) return;
                  let n = E.zu.getComments(e.getLanguageIdentifier().id);
                  n &&
                    n.blockCommentStartToken &&
                    b(
                      t,
                      new RegExp('^\\s*' + (0, s.ec)(n.blockCommentStartToken)),
                      !0
                    );
                }
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.foldAllMarkerRegions',
                  label: n.N('foldAllMarkerRegions.label', 'Fold All Regions'),
                  alias: 'Fold All Regions',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2077),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                if (t.regions.hasTypes()) v(t, O.AD.Region.value, !0);
                else {
                  const e = i.getModel();
                  if (!e) return;
                  let n = E.zu.getFoldingRules(e.getLanguageIdentifier().id);
                  n &&
                    n.markers &&
                    n.markers.start &&
                    b(t, new RegExp(n.markers.start), !0);
                }
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.unfoldAllMarkerRegions',
                  label: n.N(
                    'unfoldAllMarkerRegions.label',
                    'Unfold All Regions'
                  ),
                  alias: 'Unfold All Regions',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2078),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                if (t.regions.hasTypes()) v(t, O.AD.Region.value, !1);
                else {
                  const e = i.getModel();
                  if (!e) return;
                  let n = E.zu.getFoldingRules(e.getLanguageIdentifier().id);
                  n &&
                    n.markers &&
                    n.markers.start &&
                    b(t, new RegExp(n.markers.start), !1);
                }
              }
            }
          ),
          (0, c.Qr)(
            class extends G {
              constructor() {
                super({
                  id: 'editor.toggleFold',
                  label: n.N('toggleFoldAction.label', 'Toggle Fold'),
                  alias: 'Toggle Fold',
                  precondition: U,
                  kbOpts: {
                    kbExpr: x.u.editorTextFocus,
                    primary: (0, a.gx)(2089, 2090),
                    weight: 100,
                  },
                });
              }
              invoke(e, t, i) {
                !(function (e, t, i) {
                  let n = [];
                  for (let t of i) {
                    let i = e.getRegionAtLine(t);
                    if (i) {
                      i.isCollapsed;
                      n.push(i), 0;
                    }
                  }
                  e.toggleCollapseState(n);
                })(t, 0, this.getSelectedLines(i));
              }
            }
          );
        for (let e = 1; e <= 7; e++)
          (0, c.QG)(
            new J({
              id: J.ID(e),
              label: n.N('foldLevelAction.label', 'Fold Level {0}', e),
              alias: `Fold Level ${e}`,
              precondition: U,
              kbOpts: {
                kbExpr: x.u.editorTextFocus,
                primary: (0, a.gx)(2089, 2048 | (21 + e)),
                weight: 100,
              },
            })
          );
        const Q = (0, z.P6)(
            'editor.foldBackground',
            {
              light: (0, z.Zn)(z.hE, 0.3),
              dark: (0, z.Zn)(z.hE, 0.3),
              hc: null,
            },
            n.N(
              'foldBackgroundBackground',
              'Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          X = (0, z.P6)(
            'editorGutter.foldingControlForeground',
            { dark: z.XZ, light: z.XZ, hc: z.XZ },
            n.N(
              'editorGutter.foldingControlForeground',
              'Color of the folding control in the editor gutter.'
            )
          );
        (0, V.Ic)((e, t) => {
          const i = e.getColor(Q);
          i &&
            t.addRule(
              `.monaco-editor .folded-background { background-color: ${i}; }`
            );
          const n = e.getColor(X);
          n &&
            t.addRule(
              `\n\t\t.monaco-editor .cldr${C.cssSelector},\n\t\t.monaco-editor .cldr${S.cssSelector} {\n\t\t\tcolor: ${n} !important;\n\t\t}\n\t\t`
            );
        });
      },
      23111: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(63580),
          r = i(16830),
          s = i(82334);
        class o extends r.R6 {
          constructor() {
            super({
              id: 'editor.action.fontZoomIn',
              label: n.N('EditorFontZoomIn.label', 'Editor Font Zoom In'),
              alias: 'Editor Font Zoom In',
              precondition: void 0,
            });
          }
          run(e, t) {
            s.C.setZoomLevel(s.C.getZoomLevel() + 1);
          }
        }
        class a extends r.R6 {
          constructor() {
            super({
              id: 'editor.action.fontZoomOut',
              label: n.N('EditorFontZoomOut.label', 'Editor Font Zoom Out'),
              alias: 'Editor Font Zoom Out',
              precondition: void 0,
            });
          }
          run(e, t) {
            s.C.setZoomLevel(s.C.getZoomLevel() - 1);
          }
        }
        class l extends r.R6 {
          constructor() {
            super({
              id: 'editor.action.fontZoomReset',
              label: n.N('EditorFontZoomReset.label', 'Editor Font Zoom Reset'),
              alias: 'Editor Font Zoom Reset',
              precondition: void 0,
            });
          }
          run(e, t) {
            s.C.setZoomLevel(0);
          }
        }
        (0, r.Qr)(o), (0, r.Qr)(a), (0, r.Qr)(l);
      },
      76798: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(9488),
          r = i(71050),
          s = i(22258),
          o = i(5976),
          a = i(16830),
          l = i(11640),
          c = i(44906),
          d = i(24314),
          h = i(29102),
          u = i(43775),
          g = i(90469),
          f = i(85152),
          p = i(17301),
          m = i(70666),
          _ = i(39925),
          b = i(65520),
          v = i(50187),
          y = i(3860),
          w = i(51200),
          C = i(69386);
        class S {
          static _handleEolEdits(e, t) {
            let i,
              n = [];
            for (let e of t)
              'number' == typeof e.eol && (i = e.eol),
                e.range && 'string' == typeof e.text && n.push(e);
            return (
              'number' == typeof i && e.hasModel() && e.getModel().pushEOL(i), n
            );
          }
          static _isFullModelReplaceEdit(e, t) {
            if (!e.hasModel()) return !1;
            const i = e.getModel(),
              n = i.validateRange(t.range);
            return i.getFullModelRange().equalsRange(n);
          }
          static execute(e, t, i) {
            i && e.pushUndoStop();
            const n = S._handleEolEdits(e, t);
            1 === n.length && S._isFullModelReplaceEdit(e, n[0])
              ? e.executeEdits(
                  'formatEditsCommand',
                  n.map((e) => C.h.replace(d.e.lift(e.range), e.text))
                )
              : e.executeEdits(
                  'formatEditsCommand',
                  n.map((e) => C.h.replaceMove(d.e.lift(e.range), e.text))
                ),
              i && e.pushUndoStop();
          }
        }
        var k = i(63580);
        class x {
          constructor(e) {
            (this.value = e), (this._lower = e.toLowerCase());
          }
          static toKey(e) {
            return 'string' == typeof e ? e.toLowerCase() : e._lower;
          }
        }
        var L = i(72065),
          M = i(91741),
          D = i(94565),
          N = i(98401),
          E = i(53725),
          T = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function I(e) {
          if (!(e = e.filter((e) => e.range)).length) return;
          let { range: t } = e[0];
          for (let i = 1; i < e.length; i++) t = d.e.plusRange(t, e[i].range);
          const { startLineNumber: i, endLineNumber: n } = t;
          i === n
            ? 1 === e.length
              ? (0, f.Z9)(
                  k.N('hint11', 'Made 1 formatting edit on line {0}', i)
                )
              : (0, f.Z9)(
                  k.N(
                    'hintn1',
                    'Made {0} formatting edits on line {1}',
                    e.length,
                    i
                  )
                )
            : 1 === e.length
            ? (0, f.Z9)(
                k.N(
                  'hint1n',
                  'Made 1 formatting edit between lines {0} and {1}',
                  i,
                  n
                )
              )
            : (0, f.Z9)(
                k.N(
                  'hintnn',
                  'Made {0} formatting edits between lines {1} and {2}',
                  e.length,
                  i,
                  n
                )
              );
        }
        function O(e) {
          const t = [],
            i = new Set(),
            n = u.Az.ordered(e);
          for (const e of n)
            t.push(e), e.extensionId && i.add(x.toKey(e.extensionId));
          const r = u.vN.ordered(e);
          for (const e of r) {
            if (e.extensionId) {
              if (i.has(x.toKey(e.extensionId))) continue;
              i.add(x.toKey(e.extensionId));
            }
            t.push({
              displayName: e.displayName,
              extensionId: e.extensionId,
              provideDocumentFormattingEdits: (t, i, n) =>
                e.provideDocumentRangeFormattingEdits(
                  t,
                  t.getFullModelRange(),
                  i,
                  n
                ),
            });
          }
          return t;
        }
        class A {
          static select(e, t, i) {
            return T(this, void 0, void 0, function* () {
              if (0 === e.length) return;
              const n = E.$.first(A._selectors);
              return n ? yield n(e, t, i) : e[0];
            });
          }
        }
        function R(e, t, i, n, r, s) {
          return T(this, void 0, void 0, function* () {
            const o = e.get(L.TG),
              a = (0, b.CL)(t) ? t.getModel() : t,
              l = u.vN.ordered(a),
              c = yield A.select(l, a, n);
            c && (r.report(c), yield o.invokeFunction(P, c, t, i, s));
          });
        }
        function P(e, t, i, r, s) {
          return T(this, void 0, void 0, function* () {
            const o = e.get(g.p);
            let a, l;
            (0, b.CL)(i)
              ? ((a = i.getModel()), (l = new _.Dl(i, 5, void 0, s)))
              : ((a = i), (l = new _.YQ(i, s)));
            let c = [],
              h = 0;
            for (let e of (0, n._2)(r).sort(d.e.compareRangesUsingStarts))
              h > 0 && d.e.areIntersectingOrTouching(c[h - 1], e)
                ? (c[h - 1] = d.e.fromPositions(
                    c[h - 1].getStartPosition(),
                    e.getEndPosition()
                  ))
                : (h = c.push(e));
            const u = [];
            for (let e of c)
              try {
                const i = yield t.provideDocumentRangeFormattingEdits(
                    a,
                    e,
                    a.getFormattingOptions(),
                    l.token
                  ),
                  n = yield o.computeMoreMinimalEdits(a.uri, i);
                if ((n && u.push(...n), l.token.isCancellationRequested))
                  return !0;
              } finally {
                l.dispose();
              }
            if (0 === u.length) return !1;
            if ((0, b.CL)(i))
              S.execute(i, u, !0),
                I(u),
                i.revealPositionInCenterIfOutsideViewport(i.getPosition(), 1);
            else {
              const [{ range: e }] = u,
                t = new y.Y(
                  e.startLineNumber,
                  e.startColumn,
                  e.endLineNumber,
                  e.endColumn
                );
              a.pushEditOperations(
                [t],
                u.map((e) => ({
                  text: e.text,
                  range: d.e.lift(e.range),
                  forceMoveMarkers: !0,
                })),
                (e) => {
                  for (const { range: i } of e)
                    if (d.e.areIntersectingOrTouching(i, t))
                      return [
                        new y.Y(
                          i.startLineNumber,
                          i.startColumn,
                          i.endLineNumber,
                          i.endColumn
                        ),
                      ];
                  return null;
                }
              );
            }
            return !0;
          });
        }
        function F(e, t, i, n, r) {
          return T(this, void 0, void 0, function* () {
            const s = e.get(L.TG),
              o = (0, b.CL)(t) ? t.getModel() : t,
              a = O(o),
              l = yield A.select(a, o, i);
            l && (n.report(l), yield s.invokeFunction(B, l, t, i, r));
          });
        }
        function B(e, t, i, n, r) {
          return T(this, void 0, void 0, function* () {
            const s = e.get(g.p);
            let o, a, l;
            (0, b.CL)(i)
              ? ((o = i.getModel()), (a = new _.Dl(i, 5, void 0, r)))
              : ((o = i), (a = new _.YQ(i, r)));
            try {
              const e = yield t.provideDocumentFormattingEdits(
                o,
                o.getFormattingOptions(),
                a.token
              );
              if (
                ((l = yield s.computeMoreMinimalEdits(o.uri, e)),
                a.token.isCancellationRequested)
              )
                return !0;
            } finally {
              a.dispose();
            }
            if (!l || 0 === l.length) return !1;
            if ((0, b.CL)(i))
              S.execute(i, l, 2 !== n),
                2 !== n &&
                  (I(l),
                  i.revealPositionInCenterIfOutsideViewport(
                    i.getPosition(),
                    1
                  ));
            else {
              const [{ range: e }] = l,
                t = new y.Y(
                  e.startLineNumber,
                  e.startColumn,
                  e.endLineNumber,
                  e.endColumn
                );
              o.pushEditOperations(
                [t],
                l.map((e) => ({
                  text: e.text,
                  range: d.e.lift(e.range),
                  forceMoveMarkers: !0,
                })),
                (e) => {
                  for (const { range: i } of e)
                    if (d.e.areIntersectingOrTouching(i, t))
                      return [
                        new y.Y(
                          i.startLineNumber,
                          i.startColumn,
                          i.endLineNumber,
                          i.endColumn
                        ),
                      ];
                  return null;
                }
              );
            }
            return !0;
          });
        }
        function W(e, t, i, n, s) {
          const o = u.ln.ordered(t);
          return 0 === o.length ||
            o[0].autoFormatTriggerCharacters.indexOf(n) < 0
            ? Promise.resolve(void 0)
            : Promise.resolve(
                o[0].provideOnTypeFormattingEdits(t, i, n, s, r.T.None)
              )
                .catch(p.Cp)
                .then((i) => e.computeMoreMinimalEdits(t.uri, i));
        }
        (A._selectors = new M.S()),
          D.P.registerCommand(
            '_executeFormatRangeProvider',
            function (e, ...t) {
              const [i, s, o] = t;
              (0, N.p_)(m.o.isUri(i)), (0, N.p_)(d.e.isIRange(s));
              const a = e.get(w.q).getModel(i);
              if (!a) throw (0, p.b1)('resource');
              return (function (e, t, i, r, s) {
                return T(this, void 0, void 0, function* () {
                  const o = u.vN.ordered(t);
                  for (const a of o) {
                    let o = yield Promise.resolve(
                      a.provideDocumentRangeFormattingEdits(t, i, r, s)
                    ).catch(p.Cp);
                    if ((0, n.Of)(o))
                      return yield e.computeMoreMinimalEdits(t.uri, o);
                  }
                });
              })(e.get(g.p), a, d.e.lift(s), o, r.T.None);
            }
          ),
          D.P.registerCommand(
            '_executeFormatDocumentProvider',
            function (e, ...t) {
              const [i, s] = t;
              (0, N.p_)(m.o.isUri(i));
              const o = e.get(w.q).getModel(i);
              if (!o) throw (0, p.b1)('resource');
              return (function (e, t, i, r) {
                return T(this, void 0, void 0, function* () {
                  const s = O(t);
                  for (const o of s) {
                    let s = yield Promise.resolve(
                      o.provideDocumentFormattingEdits(t, i, r)
                    ).catch(p.Cp);
                    if ((0, n.Of)(s))
                      return yield e.computeMoreMinimalEdits(t.uri, s);
                  }
                });
              })(e.get(g.p), o, s, r.T.None);
            }
          ),
          D.P.registerCommand(
            '_executeFormatOnTypeProvider',
            function (e, ...t) {
              const [i, n, r, s] = t;
              (0, N.p_)(m.o.isUri(i)),
                (0, N.p_)(v.L.isIPosition(n)),
                (0, N.p_)('string' == typeof r);
              const o = e.get(w.q).getModel(i);
              if (!o) throw (0, p.b1)('resource');
              return W(e.get(g.p), o, v.L.lift(n), r, s);
            }
          );
        var Y = i(38819),
          H = i(90535),
          j = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          V = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          z = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        let U = class {
          constructor(e, t) {
            (this._workerService = t),
              (this._callOnDispose = new o.SL()),
              (this._callOnModel = new o.SL()),
              (this._editor = e),
              this._callOnDispose.add(
                e.onDidChangeConfiguration(() => this._update())
              ),
              this._callOnDispose.add(e.onDidChangeModel(() => this._update())),
              this._callOnDispose.add(
                e.onDidChangeModelLanguage(() => this._update())
              ),
              this._callOnDispose.add(u.ln.onDidChange(this._update, this));
          }
          dispose() {
            this._callOnDispose.dispose(), this._callOnModel.dispose();
          }
          _update() {
            if ((this._callOnModel.clear(), !this._editor.getOption(41)))
              return;
            if (!this._editor.hasModel()) return;
            const e = this._editor.getModel(),
              [t] = u.ln.ordered(e);
            if (!t || !t.autoFormatTriggerCharacters) return;
            let i = new c.q();
            for (let e of t.autoFormatTriggerCharacters) i.add(e.charCodeAt(0));
            this._callOnModel.add(
              this._editor.onDidType((e) => {
                let t = e.charCodeAt(e.length - 1);
                i.has(t) && this._trigger(String.fromCharCode(t));
              })
            );
          }
          _trigger(e) {
            if (!this._editor.hasModel()) return;
            if (this._editor.getSelections().length > 1) return;
            const t = this._editor.getModel(),
              i = this._editor.getPosition();
            let r = !1;
            const s = this._editor.onDidChangeModelContent((e) => {
              if (e.isFlush) return (r = !0), void s.dispose();
              for (let t = 0, n = e.changes.length; t < n; t++)
                if (e.changes[t].range.endLineNumber <= i.lineNumber)
                  return (r = !0), void s.dispose();
            });
            W(this._workerService, t, i, e, t.getFormattingOptions()).then(
              (e) => {
                s.dispose(),
                  r || ((0, n.Of)(e) && (S.execute(this._editor, e, !0), I(e)));
              },
              (e) => {
                throw (s.dispose(), e);
              }
            );
          }
        };
        (U.ID = 'editor.contrib.autoFormat'), (U = j([V(1, g.p)], U));
        let $ = class {
          constructor(e, t) {
            (this.editor = e),
              (this._instantiationService = t),
              (this._callOnDispose = new o.SL()),
              (this._callOnModel = new o.SL()),
              this._callOnDispose.add(
                e.onDidChangeConfiguration(() => this._update())
              ),
              this._callOnDispose.add(e.onDidChangeModel(() => this._update())),
              this._callOnDispose.add(
                e.onDidChangeModelLanguage(() => this._update())
              ),
              this._callOnDispose.add(u.vN.onDidChange(this._update, this));
          }
          dispose() {
            this._callOnDispose.dispose(), this._callOnModel.dispose();
          }
          _update() {
            this._callOnModel.clear(),
              this.editor.getOption(40) &&
                this.editor.hasModel() &&
                u.vN.has(this.editor.getModel()) &&
                this._callOnModel.add(
                  this.editor.onDidPaste(({ range: e }) => this._trigger(e))
                );
          }
          _trigger(e) {
            this.editor.hasModel() &&
              (this.editor.getSelections().length > 1 ||
                this._instantiationService
                  .invokeFunction(R, this.editor, e, 2, H.E.None, r.T.None)
                  .catch(p.dL));
          }
        };
        ($.ID = 'editor.contrib.formatOnPaste'), ($ = j([V(1, L.TG)], $));
        class K extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.formatDocument',
              label: k.N('formatDocument.label', 'Format Document'),
              alias: 'Format Document',
              precondition: Y.Ao.and(
                h.u.notInCompositeEditor,
                h.u.writable,
                h.u.hasDocumentFormattingProvider
              ),
              kbOpts: {
                kbExpr: Y.Ao.and(
                  h.u.editorTextFocus,
                  h.u.hasDocumentFormattingProvider
                ),
                primary: 1572,
                linux: { primary: 3111 },
                weight: 100,
              },
              contextMenuOpts: {
                when: h.u.hasDocumentFormattingProvider,
                group: '1_modification',
                order: 1.3,
              },
            });
          }
          run(e, t) {
            return z(this, void 0, void 0, function* () {
              if (t.hasModel()) {
                const i = e.get(L.TG),
                  n = e.get(H.e);
                yield n.showWhile(
                  i.invokeFunction(F, t, 1, H.E.None, r.T.None),
                  250
                );
              }
            });
          }
        }
        class q extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.formatSelection',
              label: k.N('formatSelection.label', 'Format Selection'),
              alias: 'Format Selection',
              precondition: Y.Ao.and(
                h.u.writable,
                h.u.hasDocumentSelectionFormattingProvider
              ),
              kbOpts: {
                kbExpr: Y.Ao.and(
                  h.u.editorTextFocus,
                  h.u.hasDocumentSelectionFormattingProvider
                ),
                primary: (0, s.gx)(2089, 2084),
                weight: 100,
              },
              contextMenuOpts: {
                when: Y.Ao.and(
                  h.u.hasDocumentSelectionFormattingProvider,
                  h.u.hasNonEmptySelection
                ),
                group: '1_modification',
                order: 1.31,
              },
            });
          }
          run(e, t) {
            return z(this, void 0, void 0, function* () {
              if (!t.hasModel()) return;
              const i = e.get(L.TG),
                n = t.getModel(),
                s = t
                  .getSelections()
                  .map((e) =>
                    e.isEmpty()
                      ? new d.e(
                          e.startLineNumber,
                          1,
                          e.startLineNumber,
                          n.getLineMaxColumn(e.startLineNumber)
                        )
                      : e
                  ),
                o = e.get(H.e);
              yield o.showWhile(
                i.invokeFunction(R, t, s, 1, H.E.None, r.T.None),
                250
              );
            });
          }
        }
        (0, a._K)(U.ID, U),
          (0, a._K)($.ID, $),
          (0, a.Qr)(K),
          (0, a.Qr)(q),
          D.P.registerCommand('editor.action.format', (e) =>
            z(void 0, void 0, void 0, function* () {
              const t = e.get(l.$).getFocusedCodeEditor();
              if (!t || !t.hasModel()) return;
              const i = e.get(D.H);
              t.getSelection().isEmpty()
                ? yield i.executeCommand('editor.action.formatDocument')
                : yield i.executeCommand('editor.action.formatSelection');
            })
          );
      },
      42698: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, { MarkerController: () => J, NextMarkerAction: () => X });
        var n,
          r = i(63580),
          s = i(5976),
          o = i(38819),
          a = i(50187),
          l = i(24314),
          c = i(16830),
          d = i(29102),
          h = i(65321),
          u = i(98674),
          g = i(73910),
          f = i(97781),
          p = i(41264),
          m = i(9802),
          _ = i(68843),
          b = i(9488),
          v = i(4669),
          y = i(22043),
          w = i(95935),
          C = i(14603),
          S = i(73046);
        !(function (e) {
          e.className = function (e) {
            switch (e) {
              case C.Z.Ignore:
                return 'severity-ignore ' + S.lA.info.classNames;
              case C.Z.Info:
                return S.lA.info.classNames;
              case C.Z.Warning:
                return S.lA.warning.classNames;
              case C.Z.Error:
                return S.lA.error.classNames;
              default:
                return '';
            }
          };
        })(n || (n = {})),
          (0, f.Ic)((e, t) => {
            const i = e.getColor(g.Jp);
            if (i) {
              const e = S.lA.error.cssSelector;
              t.addRule(
                `\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e} {\n\t\t\t\tcolor: ${i};\n\t\t\t}\n\t\t`
              );
            }
            const n = e.getColor(g.BO);
            if (n) {
              const e = S.lA.warning.cssSelector;
              t.addRule(
                `\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${n};\n\t\t\t}\n\t\t`
              );
            }
            const r = e.getColor(g.OL);
            if (r) {
              const e = S.lA.info.cssSelector;
              t.addRule(
                `\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${r};\n\t\t\t}\n\t\t`
              );
            }
          });
        var k = i(50988),
          x = i(84144),
          L = i(58335),
          M = i(72065),
          D = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class N {
          constructor(e, t, i, n) {
            (this._openerService = n),
              (this._lines = 0),
              (this._longestLineLength = 0),
              (this._relatedDiagnostics = new WeakMap()),
              (this._disposables = new s.SL()),
              (this._editor = t);
            const r = document.createElement('div');
            (r.className = 'descriptioncontainer'),
              (this._messageBlock = document.createElement('div')),
              h.cn(this._messageBlock, 'message'),
              this._messageBlock.setAttribute('aria-live', 'assertive'),
              this._messageBlock.setAttribute('role', 'alert'),
              r.appendChild(this._messageBlock),
              (this._relatedBlock = document.createElement('div')),
              r.appendChild(this._relatedBlock),
              this._disposables.add(
                h.mu(this._relatedBlock, 'click', (e) => {
                  e.preventDefault();
                  const t = this._relatedDiagnostics.get(e.target);
                  t && i(t);
                })
              ),
              (this._scrollable = new m.NB(r, {
                horizontal: 1,
                vertical: 1,
                useShadows: !1,
                horizontalScrollbarSize: 3,
                verticalScrollbarSize: 3,
              })),
              e.appendChild(this._scrollable.getDomNode()),
              this._disposables.add(
                this._scrollable.onScroll((e) => {
                  (r.style.left = `-${e.scrollLeft}px`),
                    (r.style.top = `-${e.scrollTop}px`);
                })
              ),
              this._disposables.add(this._scrollable);
          }
          dispose() {
            (0, s.B9)(this._disposables);
          }
          update(e) {
            const { source: t, message: i, relatedInformation: n, code: r } = e;
            let s = ((null == t ? void 0 : t.length) || 0) + '()'.length;
            r && (s += 'string' == typeof r ? r.length : r.value.length);
            const o = i.split(/\r\n|\r|\n/g);
            (this._lines = o.length), (this._longestLineLength = 0);
            for (const e of o)
              this._longestLineLength = Math.max(
                e.length + s,
                this._longestLineLength
              );
            h.PO(this._messageBlock),
              this._messageBlock.setAttribute(
                'aria-label',
                this.getAriaLabel(e)
              ),
              this._editor.applyFontInfo(this._messageBlock);
            let a = this._messageBlock;
            for (const e of o)
              (a = document.createElement('div')),
                (a.innerText = e),
                '' === e &&
                  (a.style.height = this._messageBlock.style.lineHeight),
                this._messageBlock.appendChild(a);
            if (t || r) {
              const e = document.createElement('span');
              if ((h.cn(e, 'details'), a.appendChild(e), t)) {
                const i = document.createElement('span');
                (i.innerText = t), h.cn(i, 'source'), e.appendChild(i);
              }
              if (r)
                if ('string' == typeof r) {
                  const t = document.createElement('span');
                  (t.innerText = `(${r})`), h.cn(t, 'code'), e.appendChild(t);
                } else
                  (this._codeLink = h.$('a.code-link')),
                    this._codeLink.setAttribute(
                      'href',
                      `${r.target.toString()}`
                    ),
                    (this._codeLink.onclick = (e) => {
                      this._openerService.open(r.target),
                        e.preventDefault(),
                        e.stopPropagation();
                    }),
                    (h.R3(this._codeLink, h.$('span')).innerText = r.value),
                    e.appendChild(this._codeLink);
            }
            if (
              (h.PO(this._relatedBlock),
              this._editor.applyFontInfo(this._relatedBlock),
              (0, b.Of)(n))
            ) {
              const e = this._relatedBlock.appendChild(
                document.createElement('div')
              );
              (e.style.paddingTop = `${Math.floor(
                0.66 * this._editor.getOption(51)
              )}px`),
                (this._lines += 1);
              for (const t of n) {
                let i = document.createElement('div'),
                  n = document.createElement('a');
                h.cn(n, 'filename'),
                  (n.innerText = `${(0, _.pP)(t.resource)}(${
                    t.startLineNumber
                  }, ${t.startColumn}): `),
                  (n.title = (0, _.kz)(t.resource, void 0)),
                  this._relatedDiagnostics.set(n, t);
                let r = document.createElement('span');
                (r.innerText = t.message),
                  i.appendChild(n),
                  i.appendChild(r),
                  (this._lines += 1),
                  e.appendChild(i);
              }
            }
            const l = this._editor.getOption(36),
              c = Math.ceil(
                l.typicalFullwidthCharacterWidth *
                  this._longestLineLength *
                  0.75
              ),
              d = l.lineHeight * this._lines;
            this._scrollable.setScrollDimensions({
              scrollWidth: c,
              scrollHeight: d,
            });
          }
          layout(e, t) {
            (this._scrollable.getDomNode().style.height = `${e}px`),
              (this._scrollable.getDomNode().style.width = `${t}px`),
              this._scrollable.setScrollDimensions({ width: t, height: e });
          }
          getHeightInLines() {
            return Math.min(17, this._lines);
          }
          getAriaLabel(e) {
            let t = '';
            switch (e.severity) {
              case u.ZL.Error:
                t = r.N('Error', 'Error');
                break;
              case u.ZL.Warning:
                t = r.N('Warning', 'Warning');
                break;
              case u.ZL.Info:
                t = r.N('Info', 'Info');
                break;
              case u.ZL.Hint:
                t = r.N('Hint', 'Hint');
            }
            let i = r.N(
              'marker aria',
              '{0} at {1}. ',
              t,
              e.startLineNumber + ':' + e.startColumn
            );
            const n = this._editor.getModel();
            return (
              n &&
                e.startLineNumber <= n.getLineCount() &&
                e.startLineNumber >= 1 &&
                (i = `${n.getLineContent(e.startLineNumber)}, ${i}`),
              i
            );
          }
        }
        let E = class e extends y.vk {
          constructor(e, t, i, n, r, o) {
            super(e, { showArrow: !0, showFrame: !0, isAccessible: !0 }, r),
              (this._themeService = t),
              (this._openerService = i),
              (this._menuService = n),
              (this._contextKeyService = o),
              (this._callOnDispose = new s.SL()),
              (this._onDidSelectRelatedInformation = new v.Q5()),
              (this.onDidSelectRelatedInformation = this._onDidSelectRelatedInformation.event),
              (this._severity = u.ZL.Warning),
              (this._backgroundColor = p.Il.white),
              this._applyTheme(t.getColorTheme()),
              this._callOnDispose.add(
                t.onDidColorThemeChange(this._applyTheme.bind(this))
              ),
              this.create();
          }
          _applyTheme(e) {
            this._backgroundColor = e.getColor(F);
            let t = A;
            this._severity === u.ZL.Warning
              ? (t = R)
              : this._severity === u.ZL.Info && (t = P);
            const i = e.getColor(t);
            this.style({
              arrowColor: i,
              frameColor: i,
              headerBackgroundColor: this._backgroundColor,
              primaryHeadingColor: e.getColor(y.IH),
              secondaryHeadingColor: e.getColor(y.R7),
            });
          }
          _applyStyles() {
            this._parentContainer &&
              (this._parentContainer.style.backgroundColor = this
                ._backgroundColor
                ? this._backgroundColor.toString()
                : ''),
              super._applyStyles();
          }
          dispose() {
            this._callOnDispose.dispose(), super.dispose();
          }
          _fillHead(t) {
            super._fillHead(t),
              this._disposables.add(
                this._actionbarWidget.actionRunner.onDidBeforeRun((e) =>
                  this.editor.focus()
                )
              );
            const i = [],
              n = this._menuService.createMenu(
                e.TitleMenu,
                this._contextKeyService
              );
            (0, L.vr)(n, void 0, i),
              this._actionbarWidget.push(i, { label: !1, icon: !0, index: 0 }),
              n.dispose();
          }
          _fillTitleIcon(e) {
            this._icon = h.R3(e, h.$(''));
          }
          _getActionBarOptions() {
            return Object.assign(
              Object.assign({}, super._getActionBarOptions()),
              { orientation: 0 }
            );
          }
          _fillBody(e) {
            (this._parentContainer = e),
              h.cn(e, 'marker-widget'),
              (this._parentContainer.tabIndex = 0),
              this._parentContainer.setAttribute('role', 'tooltip'),
              (this._container = document.createElement('div')),
              e.appendChild(this._container),
              (this._message = new N(
                this._container,
                this.editor,
                (e) => this._onDidSelectRelatedInformation.fire(e),
                this._openerService
              )),
              this._disposables.add(this._message);
          }
          show() {
            throw new Error('call showAtMarker');
          }
          showAtMarker(e, t, i) {
            this._container.classList.remove('stale'),
              this._message.update(e),
              (this._severity = e.severity),
              this._applyTheme(this._themeService.getColorTheme());
            let s = l.e.lift(e);
            const o = this.editor.getPosition();
            let a = o && s.containsPosition(o) ? o : s.getStartPosition();
            super.show(a, this.computeRequiredHeight());
            const c = this.editor.getModel();
            if (c) {
              const e =
                i > 1
                  ? r.N('problems', '{0} of {1} problems', t, i)
                  : r.N('change', '{0} of {1} problem', t, i);
              this.setTitle((0, w.EZ)(c.uri), e);
            }
            (this._icon.className = `codicon ${n.className(
              u.ZL.toSeverity(this._severity)
            )}`),
              this.editor.revealPositionNearTop(a, 0),
              this.editor.focus();
          }
          updateMarker(e) {
            this._container.classList.remove('stale'), this._message.update(e);
          }
          showStale() {
            this._container.classList.add('stale'), this._relayout();
          }
          _doLayoutBody(e, t) {
            super._doLayoutBody(e, t),
              (this._heightInPixel = e),
              this._message.layout(e, t),
              (this._container.style.height = `${e}px`);
          }
          _onWidth(e) {
            this._message.layout(this._heightInPixel, e);
          }
          _relayout() {
            super._relayout(this.computeRequiredHeight());
          }
          computeRequiredHeight() {
            return 3 + this._message.getHeightInLines();
          }
        };
        (E.TitleMenu = new x.eH('gotoErrorTitleMenu')),
          (E = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([D(1, f.XE), D(2, k.v4), D(3, x.co), D(4, M.TG), D(5, o.i6)], E));
        let T = (0, g.kw)(g.lX, g.b6),
          I = (0, g.kw)(g.uo, g.pW),
          O = (0, g.kw)(g.c6, g.T8);
        const A = (0, g.P6)(
            'editorMarkerNavigationError.background',
            { dark: T, light: T, hc: T },
            r.N(
              'editorMarkerNavigationError',
              'Editor marker navigation widget error color.'
            )
          ),
          R = (0, g.P6)(
            'editorMarkerNavigationWarning.background',
            { dark: I, light: I, hc: I },
            r.N(
              'editorMarkerNavigationWarning',
              'Editor marker navigation widget warning color.'
            )
          ),
          P = (0, g.P6)(
            'editorMarkerNavigationInfo.background',
            { dark: O, light: O, hc: O },
            r.N(
              'editorMarkerNavigationInfo',
              'Editor marker navigation widget info color.'
            )
          ),
          F = (0, g.P6)(
            'editorMarkerNavigation.background',
            { dark: '#2D2D30', light: p.Il.white, hc: '#0C141F' },
            r.N(
              'editorMarkerNavigationBackground',
              'Editor marker navigation widget background.'
            )
          );
        (0, f.Ic)((e, t) => {
          const i = e.getColor(g.ur);
          i &&
            (t.addRule(`.monaco-editor .marker-widget a { color: ${i}; }`),
            t.addRule(
              `.monaco-editor .marker-widget a.code-link span:hover { color: ${i}; }`
            ));
        });
        var B = i(11640),
          W = i(70666),
          Y = i(97295),
          H = i(65026),
          j = i(91741),
          V = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          z = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class U {
          constructor(e, t, i) {
            (this.marker = e), (this.index = t), (this.total = i);
          }
        }
        let $ = class e {
          constructor(t, i) {
            (this._markerService = i),
              (this._onDidChange = new v.Q5()),
              (this.onDidChange = this._onDidChange.event),
              (this._dispoables = new s.SL()),
              (this._markers = []),
              (this._nextIdx = -1),
              W.o.isUri(t)
                ? (this._resourceFilter = (e) => e.toString() === t.toString())
                : t && (this._resourceFilter = t);
            const n = () => {
              (this._markers = this._markerService.read({
                resource: W.o.isUri(t) ? t : void 0,
                severities: u.ZL.Error | u.ZL.Warning | u.ZL.Info,
              })),
                'function' == typeof t &&
                  (this._markers = this._markers.filter((e) =>
                    this._resourceFilter(e.resource)
                  )),
                this._markers.sort(e._compareMarker);
            };
            n(),
              this._dispoables.add(
                i.onMarkerChanged((e) => {
                  (this._resourceFilter &&
                    !e.some((e) => this._resourceFilter(e))) ||
                    (n(), (this._nextIdx = -1), this._onDidChange.fire());
                })
              );
          }
          dispose() {
            this._dispoables.dispose(), this._onDidChange.dispose();
          }
          matches(e) {
            return (
              (!this._resourceFilter && !e) ||
              (!(!this._resourceFilter || !e) && this._resourceFilter(e))
            );
          }
          get selected() {
            const e = this._markers[this._nextIdx];
            return e && new U(e, this._nextIdx + 1, this._markers.length);
          }
          _initIdx(e, t, i) {
            let n = !1,
              r = this._markers.findIndex(
                (t) => t.resource.toString() === e.uri.toString()
              );
            r < 0 &&
              ((r = (0, b.ry)(this._markers, { resource: e.uri }, (e, t) =>
                (0, Y.qu)(e.resource.toString(), t.resource.toString())
              )),
              r < 0 && (r = ~r));
            for (let i = r; i < this._markers.length; i++) {
              let r = l.e.lift(this._markers[i]);
              if (r.isEmpty()) {
                const t = e.getWordAtPosition(r.getStartPosition());
                t &&
                  (r = new l.e(
                    r.startLineNumber,
                    t.startColumn,
                    r.startLineNumber,
                    t.endColumn
                  ));
              }
              if (
                t &&
                (r.containsPosition(t) ||
                  t.isBeforeOrEqual(r.getStartPosition()))
              ) {
                (this._nextIdx = i), (n = !0);
                break;
              }
              if (this._markers[i].resource.toString() !== e.uri.toString())
                break;
            }
            n || (this._nextIdx = i ? 0 : this._markers.length - 1),
              this._nextIdx < 0 && (this._nextIdx = this._markers.length - 1);
          }
          resetIndex() {
            this._nextIdx = -1;
          }
          move(e, t, i) {
            if (0 === this._markers.length) return !1;
            let n = this._nextIdx;
            return (
              -1 === this._nextIdx
                ? this._initIdx(t, i, e)
                : e
                ? (this._nextIdx = (this._nextIdx + 1) % this._markers.length)
                : e ||
                  (this._nextIdx =
                    (this._nextIdx - 1 + this._markers.length) %
                    this._markers.length),
              n !== this._nextIdx
            );
          }
          find(e, t) {
            let i = this._markers.findIndex(
              (t) => t.resource.toString() === e.toString()
            );
            if (!(i < 0))
              for (; i < this._markers.length; i++)
                if (l.e.containsPosition(this._markers[i], t))
                  return new U(this._markers[i], i + 1, this._markers.length);
          }
          static _compareMarker(e, t) {
            let i = (0, Y.qu)(e.resource.toString(), t.resource.toString());
            return (
              0 === i && (i = u.ZL.compare(e.severity, t.severity)),
              0 === i && (i = l.e.compareRangesUsingStarts(e, t)),
              i
            );
          }
        };
        $ = V([z(1, u.lT)], $);
        const K = (0, M.yh)('IMarkerNavigationService');
        let q = class {
          constructor(e) {
            (this._markerService = e), (this._provider = new j.S());
          }
          getMarkerList(e) {
            for (let t of this._provider) {
              const i = t.getMarkerList(e);
              if (i) return i;
            }
            return new $(e, this._markerService);
          }
        };
        (q = V([z(0, u.lT)], q)), (0, H.z)(K, q, !0);
        var G = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          Z = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        let J = class e {
          constructor(e, t, i, n, r) {
            (this._markerNavigationService = t),
              (this._contextKeyService = i),
              (this._editorService = n),
              (this._instantiationService = r),
              (this._sessionDispoables = new s.SL()),
              (this._editor = e),
              (this._widgetVisible = te.bindTo(this._contextKeyService));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this._cleanUp(), this._sessionDispoables.dispose();
          }
          _cleanUp() {
            this._widgetVisible.reset(),
              this._sessionDispoables.clear(),
              (this._widget = void 0),
              (this._model = void 0);
          }
          _getOrCreateModel(e) {
            if (this._model && this._model.matches(e)) return this._model;
            let t = !1;
            return (
              this._model && ((t = !0), this._cleanUp()),
              (this._model = this._markerNavigationService.getMarkerList(e)),
              t &&
                this._model.move(
                  !0,
                  this._editor.getModel(),
                  this._editor.getPosition()
                ),
              (this._widget = this._instantiationService.createInstance(
                E,
                this._editor
              )),
              this._widget.onDidClose(
                () => this.close(),
                this,
                this._sessionDispoables
              ),
              this._widgetVisible.set(!0),
              this._sessionDispoables.add(this._model),
              this._sessionDispoables.add(this._widget),
              this._sessionDispoables.add(
                this._editor.onDidChangeCursorPosition((e) => {
                  var t, i, n;
                  ((null === (t = this._model) || void 0 === t
                    ? void 0
                    : t.selected) &&
                    l.e.containsPosition(
                      null === (i = this._model) || void 0 === i
                        ? void 0
                        : i.selected.marker,
                      e.position
                    )) ||
                    null === (n = this._model) ||
                    void 0 === n ||
                    n.resetIndex();
                })
              ),
              this._sessionDispoables.add(
                this._model.onDidChange(() => {
                  if (!this._widget || !this._widget.position || !this._model)
                    return;
                  const e = this._model.find(
                    this._editor.getModel().uri,
                    this._widget.position
                  );
                  e
                    ? this._widget.updateMarker(e.marker)
                    : this._widget.showStale();
                })
              ),
              this._sessionDispoables.add(
                this._widget.onDidSelectRelatedInformation((e) => {
                  this._editorService.openCodeEditor(
                    {
                      resource: e.resource,
                      options: {
                        pinned: !0,
                        revealIfOpened: !0,
                        selection: l.e.lift(e).collapseToStart(),
                      },
                    },
                    this._editor
                  ),
                    this.close(!1);
                })
              ),
              this._sessionDispoables.add(
                this._editor.onDidChangeModel(() => this._cleanUp())
              ),
              this._model
            );
          }
          close(e = !0) {
            this._cleanUp(), e && this._editor.focus();
          }
          showAtMarker(e) {
            if (this._editor.hasModel()) {
              const t = this._getOrCreateModel(this._editor.getModel().uri);
              t.resetIndex(),
                t.move(
                  !0,
                  this._editor.getModel(),
                  new a.L(e.startLineNumber, e.startColumn)
                ),
                t.selected &&
                  this._widget.showAtMarker(
                    t.selected.marker,
                    t.selected.index,
                    t.selected.total
                  );
            }
          }
          nagivate(t, i) {
            return Z(this, void 0, void 0, function* () {
              if (this._editor.hasModel()) {
                const n = this._getOrCreateModel(
                  i ? void 0 : this._editor.getModel().uri
                );
                if (
                  (n.move(
                    t,
                    this._editor.getModel(),
                    this._editor.getPosition()
                  ),
                  !n.selected)
                )
                  return;
                if (
                  n.selected.marker.resource.toString() !==
                  this._editor.getModel().uri.toString()
                ) {
                  this._cleanUp();
                  const r = yield this._editorService.openCodeEditor(
                    {
                      resource: n.selected.marker.resource,
                      options: {
                        pinned: !1,
                        revealIfOpened: !0,
                        selectionRevealType: 2,
                        selection: n.selected.marker,
                      },
                    },
                    this._editor
                  );
                  r && (e.get(r).close(), e.get(r).nagivate(t, i));
                } else
                  this._widget.showAtMarker(
                    n.selected.marker,
                    n.selected.index,
                    n.selected.total
                  );
              }
            });
          }
        };
        (J.ID = 'editor.contrib.markerController'),
          (J = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([G(1, K), G(2, o.i6), G(3, B.$), G(4, M.TG)], J));
        class Q extends c.R6 {
          constructor(e, t, i) {
            super(i), (this._next = e), (this._multiFile = t);
          }
          run(e, t) {
            return Z(this, void 0, void 0, function* () {
              t.hasModel() && J.get(t).nagivate(this._next, this._multiFile);
            });
          }
        }
        class X extends Q {
          constructor() {
            super(!0, !1, {
              id: X.ID,
              label: X.LABEL,
              alias: 'Go to Next Problem (Error, Warning, Info)',
              precondition: void 0,
              kbOpts: { kbExpr: d.u.focus, primary: 578, weight: 100 },
              menuOpts: {
                menuId: E.TitleMenu,
                title: X.LABEL,
                icon: (0, S.q5)('marker-navigation-next', S.lA.chevronDown),
                group: 'navigation',
                order: 1,
              },
            });
          }
        }
        (X.ID = 'editor.action.marker.next'),
          (X.LABEL = r.N(
            'markerAction.next.label',
            'Go to Next Problem (Error, Warning, Info)'
          ));
        class ee extends Q {
          constructor() {
            super(!1, !1, {
              id: ee.ID,
              label: ee.LABEL,
              alias: 'Go to Previous Problem (Error, Warning, Info)',
              precondition: void 0,
              kbOpts: { kbExpr: d.u.focus, primary: 1602, weight: 100 },
              menuOpts: {
                menuId: E.TitleMenu,
                title: X.LABEL,
                icon: (0, S.q5)('marker-navigation-previous', S.lA.chevronUp),
                group: 'navigation',
                order: 2,
              },
            });
          }
        }
        (ee.ID = 'editor.action.marker.prev'),
          (ee.LABEL = r.N(
            'markerAction.previous.label',
            'Go to Previous Problem (Error, Warning, Info)'
          )),
          (0, c._K)(J.ID, J),
          (0, c.Qr)(X),
          (0, c.Qr)(ee),
          (0, c.Qr)(
            class extends Q {
              constructor() {
                super(!0, !0, {
                  id: 'editor.action.marker.nextInFiles',
                  label: r.N(
                    'markerAction.nextInFiles.label',
                    'Go to Next Problem in Files (Error, Warning, Info)'
                  ),
                  alias: 'Go to Next Problem in Files (Error, Warning, Info)',
                  precondition: void 0,
                  kbOpts: { kbExpr: d.u.focus, primary: 66, weight: 100 },
                  menuOpts: {
                    menuId: x.eH.MenubarGoMenu,
                    title: r.N(
                      {
                        key: 'miGotoNextProblem',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Next &&Problem'
                    ),
                    group: '6_problem_nav',
                    order: 1,
                  },
                });
              }
            }
          ),
          (0, c.Qr)(
            class extends Q {
              constructor() {
                super(!1, !0, {
                  id: 'editor.action.marker.prevInFiles',
                  label: r.N(
                    'markerAction.previousInFiles.label',
                    'Go to Previous Problem in Files (Error, Warning, Info)'
                  ),
                  alias:
                    'Go to Previous Problem in Files (Error, Warning, Info)',
                  precondition: void 0,
                  kbOpts: { kbExpr: d.u.focus, primary: 1090, weight: 100 },
                  menuOpts: {
                    menuId: x.eH.MenubarGoMenu,
                    title: r.N(
                      {
                        key: 'miGotoPreviousProblem',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Previous &&Problem'
                    ),
                    group: '6_problem_nav',
                    order: 2,
                  },
                });
              }
            }
          );
        const te = new o.uy('markersNavigationVisible', !1),
          ie = c._l.bindToContribution(J.get);
        (0, c.fK)(
          new ie({
            id: 'closeMarkersNavigation',
            precondition: te,
            handler: (e) => e.close(),
            kbOpts: {
              weight: 150,
              kbExpr: d.u.focus,
              primary: 9,
              secondary: [1033],
            },
          })
        );
      },
      92729: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { DefinitionAction: () => X });
        var n = i(85152),
          r = i(15393),
          s = i(22258),
          o = i(1432),
          a = i(65520),
          l = i(16830),
          c = i(11640),
          d = i(50187),
          h = i(24314),
          u = i(29102),
          g = i(43775),
          f = i(82276),
          p = i(22043),
          m = i(19192),
          _ = i(71455),
          b = i(63580),
          v = i(84144),
          y = i(38819),
          w = i(59422),
          C = i(90535),
          S = i(91691),
          k = i(94565),
          x = i(39925),
          L = i(72065),
          M = i(65026),
          D = i(49989),
          N = i(5976),
          E = i(4669),
          T = i(91847),
          I = i(95935),
          O = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          A = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const R = new y.uy('hasSymbols', !1),
          P = (0, L.yh)('ISymbolNavigationService');
        let F = class {
          constructor(e, t, i, n) {
            (this._editorService = t),
              (this._notificationService = i),
              (this._keybindingService = n),
              (this._currentModel = void 0),
              (this._currentIdx = -1),
              (this._ignoreEditorChange = !1),
              (this._ctxHasSymbols = R.bindTo(e));
          }
          reset() {
            this._ctxHasSymbols.reset(),
              (0, N.B9)(this._currentState),
              (0, N.B9)(this._currentMessage),
              (this._currentModel = void 0),
              (this._currentIdx = -1);
          }
          put(e) {
            const t = e.parent.parent;
            if (t.references.length <= 1) return void this.reset();
            (this._currentModel = t),
              (this._currentIdx = t.references.indexOf(e)),
              this._ctxHasSymbols.set(!0),
              this._showMessage();
            const i = new B(this._editorService),
              n = i.onDidChange((e) => {
                if (this._ignoreEditorChange) return;
                const i = this._editorService.getActiveCodeEditor();
                if (!i) return;
                const n = i.getModel(),
                  r = i.getPosition();
                if (!n || !r) return;
                let s = !1,
                  o = !1;
                for (const e of t.references)
                  if ((0, I.Xy)(e.uri, n.uri))
                    (s = !0), (o = o || h.e.containsPosition(e.range, r));
                  else if (s) break;
                (s && o) || this.reset();
              });
            this._currentState = (0, N.F8)(i, n);
          }
          revealNext(e) {
            if (!this._currentModel) return Promise.resolve();
            (this._currentIdx += 1),
              (this._currentIdx %= this._currentModel.references.length);
            const t = this._currentModel.references[this._currentIdx];
            return (
              this._showMessage(),
              (this._ignoreEditorChange = !0),
              this._editorService
                .openCodeEditor(
                  {
                    resource: t.uri,
                    options: {
                      selection: h.e.collapseToStart(t.range),
                      selectionRevealType: 3,
                    },
                  },
                  e
                )
                .finally(() => {
                  this._ignoreEditorChange = !1;
                })
            );
          }
          _showMessage() {
            (0, N.B9)(this._currentMessage);
            const e = this._keybindingService.lookupKeybinding(
                'editor.gotoNextSymbolFromResult'
              ),
              t = e
                ? (0, b.N)(
                    'location.kb',
                    'Symbol {0} of {1}, {2} for next',
                    this._currentIdx + 1,
                    this._currentModel.references.length,
                    e.getLabel()
                  )
                : (0, b.N)(
                    'location',
                    'Symbol {0} of {1}',
                    this._currentIdx + 1,
                    this._currentModel.references.length
                  );
            this._currentMessage = this._notificationService.status(t);
          }
        };
        (F = O([A(0, y.i6), A(1, c.$), A(2, w.lT), A(3, T.d)], F)),
          (0, M.z)(P, F, !0),
          (0, l.fK)(
            new (class extends l._l {
              constructor() {
                super({
                  id: 'editor.gotoNextSymbolFromResult',
                  precondition: R,
                  kbOpts: { weight: 100, primary: 70 },
                });
              }
              runEditorCommand(e, t) {
                return e.get(P).revealNext(t);
              }
            })()
          ),
          D.W.registerCommandAndKeybindingRule({
            id: 'editor.gotoNextSymbolFromResult.cancel',
            weight: 100,
            when: R,
            primary: 9,
            handler(e) {
              e.get(P).reset();
            },
          });
        let B = class {
          constructor(e) {
            (this._listener = new Map()),
              (this._disposables = new N.SL()),
              (this._onDidChange = new E.Q5()),
              (this.onDidChange = this._onDidChange.event),
              this._disposables.add(
                e.onCodeEditorRemove(this._onDidRemoveEditor, this)
              ),
              this._disposables.add(
                e.onCodeEditorAdd(this._onDidAddEditor, this)
              ),
              e.listCodeEditors().forEach(this._onDidAddEditor, this);
          }
          dispose() {
            this._disposables.dispose(),
              this._onDidChange.dispose(),
              (0, N.B9)(this._listener.values());
          }
          _onDidAddEditor(e) {
            this._listener.set(
              e,
              (0, N.F8)(
                e.onDidChangeCursorPosition((t) =>
                  this._onDidChange.fire({ editor: e })
                ),
                e.onDidChangeModelContent((t) =>
                  this._onDidChange.fire({ editor: e })
                )
              )
            );
          }
          _onDidRemoveEditor(e) {
            (0, N.B9)(this._listener.get(e)), this._listener.delete(e);
          }
        };
        B = O([A(0, c.$)], B);
        var W,
          Y,
          H,
          j,
          V,
          z,
          U,
          $,
          K = i(16268),
          q = i(70666),
          G = i(98401),
          Z = i(84527),
          J = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        v.BH.appendMenuItem(v.eH.EditorContext, {
          submenu: v.eH.EditorContextPeek,
          title: b.N('peek.submenu', 'Peek'),
          group: 'navigation',
          order: 100,
        });
        class Q extends l.R6 {
          constructor(e, t) {
            super(t), (this._configuration = e);
          }
          run(e, t) {
            if (!t.hasModel()) return Promise.resolve(void 0);
            const i = e.get(w.lT),
              s = e.get(c.$),
              o = e.get(C.e),
              a = e.get(P),
              l = t.getModel(),
              d = t.getPosition(),
              h = new x.Dl(t, 5),
              u = (0, r.eP)(this._getLocationModel(l, d, h.token), h.token)
                .then(
                  (e) =>
                    J(this, void 0, void 0, function* () {
                      if (!e || h.token.isCancellationRequested) return;
                      let i;
                      if (((0, n.Z9)(e.ariaMessage), e.referenceAt(l.uri, d))) {
                        const e = this._getAlternativeCommand(t);
                        e !== this.id && (i = t.getAction(e));
                      }
                      const r = e.references.length;
                      if (0 === r) {
                        if (!this._configuration.muteMessage) {
                          const e = l.getWordAtPosition(d);
                          f.O.get(t).showMessage(
                            this._getNoResultFoundMessage(e),
                            d
                          );
                        }
                      } else {
                        if (1 !== r || !i) return this._onResult(s, a, t, e);
                        i.run();
                      }
                    }),
                  (e) => {
                    i.error(e);
                  }
                )
                .finally(() => {
                  h.dispose();
                });
            return o.showWhile(u, 250), u;
          }
          _onResult(e, t, i, n) {
            return J(this, void 0, void 0, function* () {
              const r = this._getGoToPreference(i);
              if (
                i instanceof Z.H ||
                !(
                  this._configuration.openInPeek ||
                  ('peek' === r && n.references.length > 1)
                )
              ) {
                const s = n.firstReference(),
                  o = n.references.length > 1 && 'gotoAndPeek' === r,
                  a = yield this._openReference(
                    i,
                    e,
                    s,
                    this._configuration.openToSide,
                    !o
                  );
                o && a ? this._openInPeek(a, n) : n.dispose(),
                  'goto' === r && t.put(s);
              } else this._openInPeek(i, n);
            });
          }
          _openReference(e, t, i, n, r) {
            return J(this, void 0, void 0, function* () {
              let s;
              (0, g.vx)(i) && (s = i.targetSelectionRange), s || (s = i.range);
              const o = yield t.openCodeEditor(
                {
                  resource: i.uri,
                  options: {
                    selection: h.e.collapseToStart(s),
                    selectionRevealType: 3,
                  },
                },
                e,
                n
              );
              if (o) {
                if (r) {
                  const e = o.getModel(),
                    t = o.deltaDecorations(
                      [],
                      [{ range: s, options: { className: 'symbolHighlight' } }]
                    );
                  setTimeout(() => {
                    o.getModel() === e && o.deltaDecorations(t, []);
                  }, 350);
                }
                return o;
              }
            });
          }
          _openInPeek(e, t) {
            let i = m.J.get(e);
            i && e.hasModel()
              ? i.toggleWidget(
                  e.getSelection(),
                  (0, r.PG)((e) => Promise.resolve(t)),
                  this._configuration.openInPeek
                )
              : t.dispose();
          }
        }
        class X extends Q {
          _getLocationModel(e, t, i) {
            return J(this, void 0, void 0, function* () {
              return new _.oQ(
                yield (0, S.nD)(e, t, i),
                b.N('def.title', 'Definitions')
              );
            });
          }
          _getNoResultFoundMessage(e) {
            return e && e.word
              ? b.N('noResultWord', "No definition found for '{0}'", e.word)
              : b.N('generic.noResults', 'No definition found');
          }
          _getAlternativeCommand(e) {
            return e.getOption(43).alternativeDefinitionCommand;
          }
          _getGoToPreference(e) {
            return e.getOption(43).multipleDefinitions;
          }
        }
        const ee = o.$L && !K.$W ? 2118 : 70;
        (0, l.Qr)(
          (((W = class e extends X {
            constructor() {
              super(
                { openToSide: !1, openInPeek: !1, muteMessage: !1 },
                {
                  id: e.id,
                  label: b.N('actions.goToDecl.label', 'Go to Definition'),
                  alias: 'Go to Definition',
                  precondition: y.Ao.and(
                    u.u.hasDefinitionProvider,
                    u.u.isInWalkThroughSnippet.toNegated()
                  ),
                  kbOpts: {
                    kbExpr: u.u.editorTextFocus,
                    primary: ee,
                    weight: 100,
                  },
                  contextMenuOpts: { group: 'navigation', order: 1.1 },
                  menuOpts: {
                    menuId: v.eH.MenubarGoMenu,
                    group: '4_symbol_nav',
                    order: 2,
                    title: b.N(
                      {
                        key: 'miGotoDefinition',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Go to &&Definition'
                    ),
                  },
                }
              ),
                k.P.registerCommandAlias('editor.action.goToDeclaration', e.id);
            }
          }).id = 'editor.action.revealDefinition'),
          W)
        ),
          (0, l.Qr)(
            (((Y = class e extends X {
              constructor() {
                super(
                  { openToSide: !0, openInPeek: !1, muteMessage: !1 },
                  {
                    id: e.id,
                    label: b.N(
                      'actions.goToDeclToSide.label',
                      'Open Definition to the Side'
                    ),
                    alias: 'Open Definition to the Side',
                    precondition: y.Ao.and(
                      u.u.hasDefinitionProvider,
                      u.u.isInWalkThroughSnippet.toNegated()
                    ),
                    kbOpts: {
                      kbExpr: u.u.editorTextFocus,
                      primary: (0, s.gx)(2089, ee),
                      weight: 100,
                    },
                  }
                ),
                  k.P.registerCommandAlias(
                    'editor.action.openDeclarationToTheSide',
                    e.id
                  );
              }
            }).id = 'editor.action.revealDefinitionAside'),
            Y)
          ),
          (0, l.Qr)(
            (((H = class e extends X {
              constructor() {
                super(
                  { openToSide: !1, openInPeek: !0, muteMessage: !1 },
                  {
                    id: e.id,
                    label: b.N('actions.previewDecl.label', 'Peek Definition'),
                    alias: 'Peek Definition',
                    precondition: y.Ao.and(
                      u.u.hasDefinitionProvider,
                      p.Jy.notInPeekEditor,
                      u.u.isInWalkThroughSnippet.toNegated()
                    ),
                    kbOpts: {
                      kbExpr: u.u.editorTextFocus,
                      primary: 582,
                      linux: { primary: 3140 },
                      weight: 100,
                    },
                    contextMenuOpts: {
                      menuId: v.eH.EditorContextPeek,
                      group: 'peek',
                      order: 2,
                    },
                  }
                ),
                  k.P.registerCommandAlias(
                    'editor.action.previewDeclaration',
                    e.id
                  );
              }
            }).id = 'editor.action.peekDefinition'),
            H)
          );
        class te extends Q {
          _getLocationModel(e, t, i) {
            return J(this, void 0, void 0, function* () {
              return new _.oQ(
                yield (0, S.zq)(e, t, i),
                b.N('decl.title', 'Declarations')
              );
            });
          }
          _getNoResultFoundMessage(e) {
            return e && e.word
              ? b.N(
                  'decl.noResultWord',
                  "No declaration found for '{0}'",
                  e.word
                )
              : b.N('decl.generic.noResults', 'No declaration found');
          }
          _getAlternativeCommand(e) {
            return e.getOption(43).alternativeDeclarationCommand;
          }
          _getGoToPreference(e) {
            return e.getOption(43).multipleDeclarations;
          }
        }
        (0, l.Qr)(
          (((j = class e extends te {
            constructor() {
              super(
                { openToSide: !1, openInPeek: !1, muteMessage: !1 },
                {
                  id: e.id,
                  label: b.N(
                    'actions.goToDeclaration.label',
                    'Go to Declaration'
                  ),
                  alias: 'Go to Declaration',
                  precondition: y.Ao.and(
                    u.u.hasDeclarationProvider,
                    u.u.isInWalkThroughSnippet.toNegated()
                  ),
                  contextMenuOpts: { group: 'navigation', order: 1.3 },
                  menuOpts: {
                    menuId: v.eH.MenubarGoMenu,
                    group: '4_symbol_nav',
                    order: 3,
                    title: b.N(
                      {
                        key: 'miGotoDeclaration',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Go to &&Declaration'
                    ),
                  },
                }
              );
            }
            _getNoResultFoundMessage(e) {
              return e && e.word
                ? b.N(
                    'decl.noResultWord',
                    "No declaration found for '{0}'",
                    e.word
                  )
                : b.N('decl.generic.noResults', 'No declaration found');
            }
          }).id = 'editor.action.revealDeclaration'),
          j)
        ),
          (0, l.Qr)(
            class extends te {
              constructor() {
                super(
                  { openToSide: !1, openInPeek: !0, muteMessage: !1 },
                  {
                    id: 'editor.action.peekDeclaration',
                    label: b.N('actions.peekDecl.label', 'Peek Declaration'),
                    alias: 'Peek Declaration',
                    precondition: y.Ao.and(
                      u.u.hasDeclarationProvider,
                      p.Jy.notInPeekEditor,
                      u.u.isInWalkThroughSnippet.toNegated()
                    ),
                    contextMenuOpts: {
                      menuId: v.eH.EditorContextPeek,
                      group: 'peek',
                      order: 3,
                    },
                  }
                );
              }
            }
          );
        class ie extends Q {
          _getLocationModel(e, t, i) {
            return J(this, void 0, void 0, function* () {
              return new _.oQ(
                yield (0, S.L3)(e, t, i),
                b.N('typedef.title', 'Type Definitions')
              );
            });
          }
          _getNoResultFoundMessage(e) {
            return e && e.word
              ? b.N(
                  'goToTypeDefinition.noResultWord',
                  "No type definition found for '{0}'",
                  e.word
                )
              : b.N(
                  'goToTypeDefinition.generic.noResults',
                  'No type definition found'
                );
          }
          _getAlternativeCommand(e) {
            return e.getOption(43).alternativeTypeDefinitionCommand;
          }
          _getGoToPreference(e) {
            return e.getOption(43).multipleTypeDefinitions;
          }
        }
        (0, l.Qr)(
          (((V = class e extends ie {
            constructor() {
              super(
                { openToSide: !1, openInPeek: !1, muteMessage: !1 },
                {
                  id: e.ID,
                  label: b.N(
                    'actions.goToTypeDefinition.label',
                    'Go to Type Definition'
                  ),
                  alias: 'Go to Type Definition',
                  precondition: y.Ao.and(
                    u.u.hasTypeDefinitionProvider,
                    u.u.isInWalkThroughSnippet.toNegated()
                  ),
                  kbOpts: {
                    kbExpr: u.u.editorTextFocus,
                    primary: 0,
                    weight: 100,
                  },
                  contextMenuOpts: { group: 'navigation', order: 1.4 },
                  menuOpts: {
                    menuId: v.eH.MenubarGoMenu,
                    group: '4_symbol_nav',
                    order: 3,
                    title: b.N(
                      {
                        key: 'miGotoTypeDefinition',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Go to &&Type Definition'
                    ),
                  },
                }
              );
            }
          }).ID = 'editor.action.goToTypeDefinition'),
          V)
        ),
          (0, l.Qr)(
            (((z = class e extends ie {
              constructor() {
                super(
                  { openToSide: !1, openInPeek: !0, muteMessage: !1 },
                  {
                    id: e.ID,
                    label: b.N(
                      'actions.peekTypeDefinition.label',
                      'Peek Type Definition'
                    ),
                    alias: 'Peek Type Definition',
                    precondition: y.Ao.and(
                      u.u.hasTypeDefinitionProvider,
                      p.Jy.notInPeekEditor,
                      u.u.isInWalkThroughSnippet.toNegated()
                    ),
                    contextMenuOpts: {
                      menuId: v.eH.EditorContextPeek,
                      group: 'peek',
                      order: 4,
                    },
                  }
                );
              }
            }).ID = 'editor.action.peekTypeDefinition'),
            z)
          );
        class ne extends Q {
          _getLocationModel(e, t, i) {
            return J(this, void 0, void 0, function* () {
              return new _.oQ(
                yield (0, S.f4)(e, t, i),
                b.N('impl.title', 'Implementations')
              );
            });
          }
          _getNoResultFoundMessage(e) {
            return e && e.word
              ? b.N(
                  'goToImplementation.noResultWord',
                  "No implementation found for '{0}'",
                  e.word
                )
              : b.N(
                  'goToImplementation.generic.noResults',
                  'No implementation found'
                );
          }
          _getAlternativeCommand(e) {
            return e.getOption(43).alternativeImplementationCommand;
          }
          _getGoToPreference(e) {
            return e.getOption(43).multipleImplementations;
          }
        }
        (0, l.Qr)(
          (((U = class e extends ne {
            constructor() {
              super(
                { openToSide: !1, openInPeek: !1, muteMessage: !1 },
                {
                  id: e.ID,
                  label: b.N(
                    'actions.goToImplementation.label',
                    'Go to Implementations'
                  ),
                  alias: 'Go to Implementations',
                  precondition: y.Ao.and(
                    u.u.hasImplementationProvider,
                    u.u.isInWalkThroughSnippet.toNegated()
                  ),
                  kbOpts: {
                    kbExpr: u.u.editorTextFocus,
                    primary: 2118,
                    weight: 100,
                  },
                  menuOpts: {
                    menuId: v.eH.MenubarGoMenu,
                    group: '4_symbol_nav',
                    order: 4,
                    title: b.N(
                      {
                        key: 'miGotoImplementation',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Go to &&Implementations'
                    ),
                  },
                  contextMenuOpts: { group: 'navigation', order: 1.45 },
                }
              );
            }
          }).ID = 'editor.action.goToImplementation'),
          U)
        ),
          (0, l.Qr)(
            ((($ = class e extends ne {
              constructor() {
                super(
                  { openToSide: !1, openInPeek: !0, muteMessage: !1 },
                  {
                    id: e.ID,
                    label: b.N(
                      'actions.peekImplementation.label',
                      'Peek Implementations'
                    ),
                    alias: 'Peek Implementations',
                    precondition: y.Ao.and(
                      u.u.hasImplementationProvider,
                      p.Jy.notInPeekEditor,
                      u.u.isInWalkThroughSnippet.toNegated()
                    ),
                    kbOpts: {
                      kbExpr: u.u.editorTextFocus,
                      primary: 3142,
                      weight: 100,
                    },
                    contextMenuOpts: {
                      menuId: v.eH.EditorContextPeek,
                      group: 'peek',
                      order: 5,
                    },
                  }
                );
              }
            }).ID = 'editor.action.peekImplementation'),
            $)
          );
        class re extends Q {
          _getNoResultFoundMessage(e) {
            return e
              ? b.N('references.no', "No references found for '{0}'", e.word)
              : b.N('references.noGeneric', 'No references found');
          }
          _getAlternativeCommand(e) {
            return e.getOption(43).alternativeReferenceCommand;
          }
          _getGoToPreference(e) {
            return e.getOption(43).multipleReferences;
          }
        }
        (0, l.Qr)(
          class extends re {
            constructor() {
              super(
                { openToSide: !1, openInPeek: !1, muteMessage: !1 },
                {
                  id: 'editor.action.goToReferences',
                  label: b.N('goToReferences.label', 'Go to References'),
                  alias: 'Go to References',
                  precondition: y.Ao.and(
                    u.u.hasReferenceProvider,
                    p.Jy.notInPeekEditor,
                    u.u.isInWalkThroughSnippet.toNegated()
                  ),
                  kbOpts: {
                    kbExpr: u.u.editorTextFocus,
                    primary: 1094,
                    weight: 100,
                  },
                  contextMenuOpts: { group: 'navigation', order: 1.45 },
                  menuOpts: {
                    menuId: v.eH.MenubarGoMenu,
                    group: '4_symbol_nav',
                    order: 5,
                    title: b.N(
                      {
                        key: 'miGotoReference',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Go to &&References'
                    ),
                  },
                }
              );
            }
            _getLocationModel(e, t, i) {
              return J(this, void 0, void 0, function* () {
                return new _.oQ(
                  yield (0, S.aA)(e, t, !0, i),
                  b.N('ref.title', 'References')
                );
              });
            }
          }
        ),
          (0, l.Qr)(
            class extends re {
              constructor() {
                super(
                  { openToSide: !1, openInPeek: !0, muteMessage: !1 },
                  {
                    id: 'editor.action.referenceSearch.trigger',
                    label: b.N('references.action.label', 'Peek References'),
                    alias: 'Peek References',
                    precondition: y.Ao.and(
                      u.u.hasReferenceProvider,
                      p.Jy.notInPeekEditor,
                      u.u.isInWalkThroughSnippet.toNegated()
                    ),
                    contextMenuOpts: {
                      menuId: v.eH.EditorContextPeek,
                      group: 'peek',
                      order: 6,
                    },
                  }
                );
              }
              _getLocationModel(e, t, i) {
                return J(this, void 0, void 0, function* () {
                  return new _.oQ(
                    yield (0, S.aA)(e, t, !1, i),
                    b.N('ref.title', 'References')
                  );
                });
              }
            }
          );
        class se extends Q {
          constructor(e, t, i) {
            super(e, {
              id: 'editor.action.goToLocation',
              label: b.N('label.generic', 'Go To Any Symbol'),
              alias: 'Go To Any Symbol',
              precondition: y.Ao.and(
                p.Jy.notInPeekEditor,
                u.u.isInWalkThroughSnippet.toNegated()
              ),
            }),
              (this._references = t),
              (this._gotoMultipleBehaviour = i);
          }
          _getLocationModel(e, t, i) {
            return J(this, void 0, void 0, function* () {
              return new _.oQ(
                this._references,
                b.N('generic.title', 'Locations')
              );
            });
          }
          _getNoResultFoundMessage(e) {
            return (
              (e && b.N('generic.noResult', "No results for '{0}'", e.word)) ||
              ''
            );
          }
          _getGoToPreference(e) {
            var t;
            return null !== (t = this._gotoMultipleBehaviour) && void 0 !== t
              ? t
              : e.getOption(43).multipleReferences;
          }
          _getAlternativeCommand() {
            return '';
          }
        }
        k.P.registerCommand({
          id: 'editor.action.goToLocations',
          description: {
            description: 'Go to locations from a position in a file',
            args: [
              {
                name: 'uri',
                description: 'The text document in which to start',
                constraint: q.o,
              },
              {
                name: 'position',
                description: 'The position at which to start',
                constraint: d.L.isIPosition,
              },
              {
                name: 'locations',
                description: 'An array of locations.',
                constraint: Array,
              },
              {
                name: 'multiple',
                description:
                  'Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto',
              },
              {
                name: 'noResultsMessage',
                description:
                  'Human readable message that shows when locations is empty.',
              },
            ],
          },
          handler: (e, t, i, n, r, s, o) =>
            J(void 0, void 0, void 0, function* () {
              (0, G.p_)(q.o.isUri(t)),
                (0, G.p_)(d.L.isIPosition(i)),
                (0, G.p_)(Array.isArray(n)),
                (0, G.p_)(void 0 === r || 'string' == typeof r),
                (0, G.p_)(void 0 === o || 'boolean' == typeof o);
              const l = e.get(c.$),
                h = yield l.openCodeEditor(
                  { resource: t },
                  l.getFocusedCodeEditor()
                );
              if ((0, a.CL)(h))
                return (
                  h.setPosition(i),
                  h.revealPositionInCenterIfOutsideViewport(i, 0),
                  h.invokeWithinContext((e) => {
                    const t = new (class extends se {
                      _getNoResultFoundMessage(e) {
                        return s || super._getNoResultFoundMessage(e);
                      }
                    })(
                      {
                        muteMessage: !Boolean(s),
                        openInPeek: Boolean(o),
                        openToSide: !1,
                      },
                      n,
                      r
                    );
                    e.get(L.TG).invokeFunction(t.run.bind(t), h);
                  })
                );
            }),
        }),
          k.P.registerCommand({
            id: 'editor.action.peekLocations',
            description: {
              description: 'Peek locations from a position in a file',
              args: [
                {
                  name: 'uri',
                  description: 'The text document in which to start',
                  constraint: q.o,
                },
                {
                  name: 'position',
                  description: 'The position at which to start',
                  constraint: d.L.isIPosition,
                },
                {
                  name: 'locations',
                  description: 'An array of locations.',
                  constraint: Array,
                },
                {
                  name: 'multiple',
                  description:
                    'Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto',
                },
              ],
            },
            handler: (e, t, i, n, r) =>
              J(void 0, void 0, void 0, function* () {
                e.get(k.H).executeCommand(
                  'editor.action.goToLocations',
                  t,
                  i,
                  n,
                  r,
                  void 0,
                  !0
                );
              }),
          }),
          k.P.registerCommand({
            id: 'editor.action.findReferences',
            handler: (e, t, i) => {
              (0, G.p_)(q.o.isUri(t)), (0, G.p_)(d.L.isIPosition(i));
              const n = e.get(c.$);
              return n
                .openCodeEditor({ resource: t }, n.getFocusedCodeEditor())
                .then((e) => {
                  if (!(0, a.CL)(e) || !e.hasModel()) return;
                  const t = m.J.get(e);
                  if (!t) return;
                  const n = (0, r.PG)((t) =>
                      (0, S.aA)(e.getModel(), d.L.lift(i), !1, t).then(
                        (e) => new _.oQ(e, b.N('ref.title', 'References'))
                      )
                    ),
                    s = new h.e(i.lineNumber, i.column, i.lineNumber, i.column);
                  return Promise.resolve(t.toggleWidget(s, n, !1));
                });
            },
          }),
          k.P.registerCommandAlias(
            'editor.action.showReferences',
            'editor.action.peekLocations'
          );
      },
      91691: (e, t, i) => {
        'use strict';
        i.d(t, {
          nD: () => l,
          zq: () => c,
          f4: () => d,
          L3: () => h,
          aA: () => u,
        });
        var n = i(71050),
          r = i(17301),
          s = i(16830),
          o = i(43775);
        function a(e, t, i, n) {
          const s = i.ordered(e).map((i) =>
            Promise.resolve(n(i, e, t)).then(void 0, (e) => {
              (0, r.Cp)(e);
            })
          );
          return Promise.all(s).then((e) => {
            const t = [];
            for (let i of e) Array.isArray(i) ? t.push(...i) : i && t.push(i);
            return t;
          });
        }
        function l(e, t, i) {
          return a(e, t, o.Ct, (e, t, n) => e.provideDefinition(t, n, i));
        }
        function c(e, t, i) {
          return a(e, t, o.RN, (e, t, n) => e.provideDeclaration(t, n, i));
        }
        function d(e, t, i) {
          return a(e, t, o.vI, (e, t, n) => e.provideImplementation(t, n, i));
        }
        function h(e, t, i) {
          return a(e, t, o.tA, (e, t, n) => e.provideTypeDefinition(t, n, i));
        }
        function u(e, t, i, n) {
          return a(e, t, o.FL, (e, t, r) => {
            return (
              (s = this),
              (o = void 0),
              (l = function* () {
                const s = yield e.provideReferences(
                  t,
                  r,
                  { includeDeclaration: !0 },
                  n
                );
                if (!i || !s || 2 !== s.length) return s;
                const o = yield e.provideReferences(
                  t,
                  r,
                  { includeDeclaration: !1 },
                  n
                );
                return o && 1 === o.length ? o : s;
              }),
              new ((a = void 0) || (a = Promise))(function (e, t) {
                function i(e) {
                  try {
                    r(l.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function n(e) {
                  try {
                    r(l.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function r(t) {
                  var r;
                  t.done
                    ? e(t.value)
                    : ((r = t.value),
                      r instanceof a
                        ? r
                        : new a(function (e) {
                            e(r);
                          })).then(i, n);
                }
                r((l = l.apply(s, o || [])).next());
              })
            );
            var s, o, a, l;
          });
        }
        (0, s.sb)('_executeDefinitionProvider', (e, t) => l(e, t, n.T.None)),
          (0, s.sb)('_executeDeclarationProvider', (e, t) => c(e, t, n.T.None)),
          (0, s.sb)('_executeImplementationProvider', (e, t) =>
            d(e, t, n.T.None)
          ),
          (0, s.sb)('_executeTypeDefinitionProvider', (e, t) =>
            h(e, t, n.T.None)
          ),
          (0, s.sb)('_executeReferenceProvider', (e, t) =>
            u(e, t, !1, n.T.None)
          );
      },
      69241: (e, t, i) => {
        'use strict';
        i.d(t, { yN: () => h });
        var n = i(5976),
          r = i(4669),
          s = i(1432);
        function o(e, t) {
          return !!e[t];
        }
        class a {
          constructor(e, t) {
            (this.target = e.target),
              (this.hasTriggerModifier = o(e.event, t.triggerModifier)),
              (this.hasSideBySideModifier = o(
                e.event,
                t.triggerSideBySideModifier
              )),
              (this.isNoneOrSingleMouseDown = e.event.detail <= 1);
          }
        }
        class l {
          constructor(e, t) {
            (this.keyCodeIsTriggerKey = e.keyCode === t.triggerKey),
              (this.keyCodeIsSideBySideKey =
                e.keyCode === t.triggerSideBySideKey),
              (this.hasTriggerModifier = o(e, t.triggerModifier));
          }
        }
        class c {
          constructor(e, t, i, n) {
            (this.triggerKey = e),
              (this.triggerModifier = t),
              (this.triggerSideBySideKey = i),
              (this.triggerSideBySideModifier = n);
          }
          equals(e) {
            return (
              this.triggerKey === e.triggerKey &&
              this.triggerModifier === e.triggerModifier &&
              this.triggerSideBySideKey === e.triggerSideBySideKey &&
              this.triggerSideBySideModifier === e.triggerSideBySideModifier
            );
          }
        }
        function d(e) {
          return 'altKey' === e
            ? s.dz
              ? new c(57, 'metaKey', 6, 'altKey')
              : new c(5, 'ctrlKey', 6, 'altKey')
            : s.dz
            ? new c(6, 'altKey', 57, 'metaKey')
            : new c(6, 'altKey', 5, 'ctrlKey');
        }
        class h extends n.JT {
          constructor(e) {
            super(),
              (this._onMouseMoveOrRelevantKeyDown = this._register(new r.Q5())),
              (this.onMouseMoveOrRelevantKeyDown = this._onMouseMoveOrRelevantKeyDown.event),
              (this._onExecute = this._register(new r.Q5())),
              (this.onExecute = this._onExecute.event),
              (this._onCancel = this._register(new r.Q5())),
              (this.onCancel = this._onCancel.event),
              (this._editor = e),
              (this._opts = d(this._editor.getOption(61))),
              (this._lastMouseMoveEvent = null),
              (this._hasTriggerKeyOnMouseDown = !1),
              (this._lineNumberOnMouseDown = 0),
              this._register(
                this._editor.onDidChangeConfiguration((e) => {
                  if (e.hasChanged(61)) {
                    const e = d(this._editor.getOption(61));
                    if (this._opts.equals(e)) return;
                    (this._opts = e),
                      (this._lastMouseMoveEvent = null),
                      (this._hasTriggerKeyOnMouseDown = !1),
                      (this._lineNumberOnMouseDown = 0),
                      this._onCancel.fire();
                  }
                })
              ),
              this._register(
                this._editor.onMouseMove((e) =>
                  this._onEditorMouseMove(new a(e, this._opts))
                )
              ),
              this._register(
                this._editor.onMouseDown((e) =>
                  this._onEditorMouseDown(new a(e, this._opts))
                )
              ),
              this._register(
                this._editor.onMouseUp((e) =>
                  this._onEditorMouseUp(new a(e, this._opts))
                )
              ),
              this._register(
                this._editor.onKeyDown((e) =>
                  this._onEditorKeyDown(new l(e, this._opts))
                )
              ),
              this._register(
                this._editor.onKeyUp((e) =>
                  this._onEditorKeyUp(new l(e, this._opts))
                )
              ),
              this._register(
                this._editor.onMouseDrag(() => this._resetHandler())
              ),
              this._register(
                this._editor.onDidChangeCursorSelection((e) =>
                  this._onDidChangeCursorSelection(e)
                )
              ),
              this._register(
                this._editor.onDidChangeModel((e) => this._resetHandler())
              ),
              this._register(
                this._editor.onDidChangeModelContent(() => this._resetHandler())
              ),
              this._register(
                this._editor.onDidScrollChange((e) => {
                  (e.scrollTopChanged || e.scrollLeftChanged) &&
                    this._resetHandler();
                })
              );
          }
          _onDidChangeCursorSelection(e) {
            e.selection &&
              e.selection.startColumn !== e.selection.endColumn &&
              this._resetHandler();
          }
          _onEditorMouseMove(e) {
            (this._lastMouseMoveEvent = e),
              this._onMouseMoveOrRelevantKeyDown.fire([e, null]);
          }
          _onEditorMouseDown(e) {
            (this._hasTriggerKeyOnMouseDown = e.hasTriggerModifier),
              (this._lineNumberOnMouseDown = e.target.position
                ? e.target.position.lineNumber
                : 0);
          }
          _onEditorMouseUp(e) {
            const t = e.target.position ? e.target.position.lineNumber : 0;
            this._hasTriggerKeyOnMouseDown &&
              this._lineNumberOnMouseDown &&
              this._lineNumberOnMouseDown === t &&
              this._onExecute.fire(e);
          }
          _onEditorKeyDown(e) {
            this._lastMouseMoveEvent &&
            (e.keyCodeIsTriggerKey ||
              (e.keyCodeIsSideBySideKey && e.hasTriggerModifier))
              ? this._onMouseMoveOrRelevantKeyDown.fire([
                  this._lastMouseMoveEvent,
                  e,
                ])
              : e.hasTriggerModifier && this._onCancel.fire();
          }
          _onEditorKeyUp(e) {
            e.keyCodeIsTriggerKey && this._onCancel.fire();
          }
          _resetHandler() {
            (this._lastMouseMoveEvent = null),
              (this._hasTriggerKeyOnMouseDown = !1),
              this._onCancel.fire();
          }
        }
      },
      10365: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { GotoDefinitionAtPositionEditorContribution: () => k });
        var n = i(63580),
          r = i(15393),
          s = i(17301),
          o = i(59365),
          a = i(71531),
          l = i(24314),
          c = i(43775),
          d = i(16830),
          h = i(91691),
          u = i(5976),
          g = i(88216),
          f = i(97781),
          p = i(73910),
          m = i(39925),
          _ = i(92729),
          b = i(69241),
          v = i(50187),
          y = i(98401),
          w = i(22043),
          C = i(38819),
          S = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let k = class e {
          constructor(e, t, i) {
            (this.textModelResolverService = t),
              (this.modeService = i),
              (this.toUnhook = new u.SL()),
              (this.toUnhookForKeyboard = new u.SL()),
              (this.linkDecorations = []),
              (this.currentWordAtPosition = null),
              (this.previousPromise = null),
              (this.editor = e);
            let n = new b.yN(e);
            this.toUnhook.add(n),
              this.toUnhook.add(
                n.onMouseMoveOrRelevantKeyDown(([e, t]) => {
                  this.startFindDefinitionFromMouse(e, (0, y.f6)(t));
                })
              ),
              this.toUnhook.add(
                n.onExecute((e) => {
                  this.isEnabled(e) &&
                    this.gotoDefinition(
                      e.target.position,
                      e.hasSideBySideModifier
                    ).then(
                      () => {
                        this.removeLinkDecorations();
                      },
                      (e) => {
                        this.removeLinkDecorations(), (0, s.dL)(e);
                      }
                    );
                })
              ),
              this.toUnhook.add(
                n.onCancel(() => {
                  this.removeLinkDecorations(),
                    (this.currentWordAtPosition = null);
                })
              );
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          startFindDefinitionFromCursor(e) {
            return this.startFindDefinition(e).then(() => {
              this.toUnhookForKeyboard.add(
                this.editor.onDidChangeCursorPosition(() => {
                  (this.currentWordAtPosition = null),
                    this.removeLinkDecorations(),
                    this.toUnhookForKeyboard.clear();
                })
              ),
                this.toUnhookForKeyboard.add(
                  this.editor.onKeyDown((e) => {
                    e &&
                      ((this.currentWordAtPosition = null),
                      this.removeLinkDecorations(),
                      this.toUnhookForKeyboard.clear());
                  })
                );
            });
          }
          startFindDefinitionFromMouse(e, t) {
            if (9 === e.target.type && this.linkDecorations.length > 0) return;
            if (!this.editor.hasModel() || !this.isEnabled(e, t))
              return (
                (this.currentWordAtPosition = null),
                void this.removeLinkDecorations()
              );
            const i = e.target.position;
            this.startFindDefinition(i);
          }
          startFindDefinition(e) {
            var t;
            this.toUnhookForKeyboard.clear();
            const i = e
              ? null === (t = this.editor.getModel()) || void 0 === t
                ? void 0
                : t.getWordAtPosition(e)
              : null;
            if (!i)
              return (
                (this.currentWordAtPosition = null),
                this.removeLinkDecorations(),
                Promise.resolve(0)
              );
            if (
              this.currentWordAtPosition &&
              this.currentWordAtPosition.startColumn === i.startColumn &&
              this.currentWordAtPosition.endColumn === i.endColumn &&
              this.currentWordAtPosition.word === i.word
            )
              return Promise.resolve(0);
            this.currentWordAtPosition = i;
            let a = new m.yy(this.editor, 15);
            return (
              this.previousPromise &&
                (this.previousPromise.cancel(), (this.previousPromise = null)),
              (this.previousPromise = (0, r.PG)((t) =>
                this.findDefinition(e, t)
              )),
              this.previousPromise
                .then((t) => {
                  if (t && t.length && a.validate(this.editor))
                    if (t.length > 1)
                      this.addDecoration(
                        new l.e(
                          e.lineNumber,
                          i.startColumn,
                          e.lineNumber,
                          i.endColumn
                        ),
                        new o.W5().appendText(
                          n.N(
                            'multipleResults',
                            'Click to show {0} definitions.',
                            t.length
                          )
                        )
                      );
                    else {
                      let n = t[0];
                      if (!n.uri) return;
                      this.textModelResolverService
                        .createModelReference(n.uri)
                        .then((t) => {
                          if (!t.object || !t.object.textEditorModel)
                            return void t.dispose();
                          const {
                              object: { textEditorModel: r },
                            } = t,
                            { startLineNumber: s } = n.range;
                          if (s < 1 || s > r.getLineCount())
                            return void t.dispose();
                          const a = this.getPreviewValue(r, s, n);
                          let c;
                          c = n.originSelectionRange
                            ? l.e.lift(n.originSelectionRange)
                            : new l.e(
                                e.lineNumber,
                                i.startColumn,
                                e.lineNumber,
                                i.endColumn
                              );
                          const d = this.modeService.getModeIdByFilepathOrFirstLine(
                            r.uri
                          );
                          this.addDecoration(
                            c,
                            new o.W5().appendCodeblock(d || '', a)
                          ),
                            t.dispose();
                        });
                    }
                  else this.removeLinkDecorations();
                })
                .then(void 0, s.dL)
            );
          }
          getPreviewValue(t, i, n) {
            let r = n.targetSelectionRange
              ? n.range
              : this.getPreviewRangeBasedOnBrackets(t, i);
            return (
              r.endLineNumber - r.startLineNumber >=
                e.MAX_SOURCE_PREVIEW_LINES &&
                (r = this.getPreviewRangeBasedOnIndentation(t, i)),
              this.stripIndentationFromPreviewRange(t, i, r)
            );
          }
          stripIndentationFromPreviewRange(e, t, i) {
            let n = e.getLineFirstNonWhitespaceColumn(t);
            for (let r = t + 1; r < i.endLineNumber; r++) {
              const t = e.getLineFirstNonWhitespaceColumn(r);
              n = Math.min(n, t);
            }
            return e
              .getValueInRange(i)
              .replace(new RegExp(`^\\s{${n - 1}}`, 'gm'), '')
              .trim();
          }
          getPreviewRangeBasedOnIndentation(t, i) {
            const n = t.getLineFirstNonWhitespaceColumn(i),
              r = Math.min(t.getLineCount(), i + e.MAX_SOURCE_PREVIEW_LINES);
            let s = i + 1;
            for (; s < r && n !== t.getLineFirstNonWhitespaceColumn(s); s++);
            return new l.e(i, 1, s + 1, 1);
          }
          getPreviewRangeBasedOnBrackets(t, i) {
            const n = Math.min(
                t.getLineCount(),
                i + e.MAX_SOURCE_PREVIEW_LINES
              ),
              r = [];
            let s = !0,
              o = t.findNextBracket(new v.L(i, 1));
            for (; null !== o; ) {
              if (0 === r.length) r.push(o);
              else {
                const e = r[r.length - 1];
                if (
                  (e.open[0] === o.open[0] && e.isOpen && !o.isOpen
                    ? r.pop()
                    : r.push(o),
                  0 === r.length)
                ) {
                  if (!s) return new l.e(i, 1, o.range.endLineNumber + 1, 1);
                  s = !1;
                }
              }
              const e = t.getLineMaxColumn(i);
              let a = o.range.endLineNumber,
                c = o.range.endColumn;
              if ((e === o.range.endColumn && (a++, (c = 1)), a > n))
                return new l.e(i, 1, n + 1, 1);
              o = t.findNextBracket(new v.L(a, c));
            }
            return new l.e(i, 1, n + 1, 1);
          }
          addDecoration(e, t) {
            const i = {
              range: e,
              options: {
                inlineClassName: 'goto-definition-link',
                hoverMessage: t,
              },
            };
            this.linkDecorations = this.editor.deltaDecorations(
              this.linkDecorations,
              [i]
            );
          }
          removeLinkDecorations() {
            this.linkDecorations.length > 0 &&
              (this.linkDecorations = this.editor.deltaDecorations(
                this.linkDecorations,
                []
              ));
          }
          isEnabled(e, t) {
            return (
              this.editor.hasModel() &&
              e.isNoneOrSingleMouseDown &&
              6 === e.target.type &&
              (e.hasTriggerModifier || (!!t && t.keyCodeIsTriggerKey)) &&
              c.Ct.has(this.editor.getModel())
            );
          }
          findDefinition(e, t) {
            const i = this.editor.getModel();
            return i ? (0, h.nD)(i, e, t) : Promise.resolve(null);
          }
          gotoDefinition(e, t) {
            return (
              this.editor.setPosition(e),
              this.editor.invokeWithinContext((e) => {
                const i =
                  !t && this.editor.getOption(69) && !this.isInPeekEditor(e);
                return new _.DefinitionAction(
                  { openToSide: t, openInPeek: i, muteMessage: !0 },
                  { alias: '', label: '', id: '', precondition: void 0 }
                ).run(e, this.editor);
              })
            );
          }
          isInPeekEditor(e) {
            const t = e.get(C.i6);
            return w.Jy.inPeekEditor.getValue(t);
          }
          dispose() {
            this.toUnhook.dispose();
          }
        };
        (k.ID = 'editor.contrib.gotodefinitionatposition'),
          (k.MAX_SOURCE_PREVIEW_LINES = 8),
          (k = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([S(1, g.S), S(2, a.h)], k)),
          (0, d._K)(k.ID, k),
          (0, f.Ic)((e, t) => {
            const i = e.getColor(p._Y);
            i &&
              t.addRule(
                `.monaco-editor .goto-definition-link { color: ${i} !important; }`
              );
          });
      },
      19192: (e, t, i) => {
        'use strict';
        i.d(t, { J: () => _e });
        var n = i(63580),
          r = i(17301),
          s = i(5976),
          o = i(11640),
          a = i(72065),
          l = i(38819),
          c = i(33108),
          d = i(52365),
          h = i(71455),
          u = i(65321),
          g = i(41264),
          f = i(4669),
          p = i(66663),
          m = i(95935),
          _ = i(84527),
          b = i(24314),
          v = i(3411),
          y = i(88216),
          w = i(59834),
          C = i(67488),
          S = i(44349),
          k = i(97781),
          x = i(88810),
          L = i(68843),
          M = i(91847),
          D = i(75392),
          N = i(34650),
          E = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          T = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let I = class {
          constructor(e) {
            this._resolverService = e;
          }
          hasChildren(e) {
            return e instanceof h.oQ || e instanceof h.F2;
          }
          getChildren(e) {
            if (e instanceof h.oQ) return e.groups;
            if (e instanceof h.F2)
              return e.resolve(this._resolverService).then((e) => e.children);
            throw new Error('bad tree');
          }
        };
        I = E([T(0, y.S)], I);
        class O {
          getHeight() {
            return 23;
          }
          getTemplateId(e) {
            return e instanceof h.F2 ? F.id : W.id;
          }
        }
        let A = class {
          constructor(e) {
            this._keybindingService = e;
          }
          getKeyboardNavigationLabel(e) {
            var t;
            if (e instanceof h.WX) {
              const i =
                null === (t = e.parent.getPreview(e)) || void 0 === t
                  ? void 0
                  : t.preview(e.range);
              if (i) return i.value;
            }
            return (0, m.EZ)(e.uri);
          }
        };
        A = E([T(0, M.d)], A);
        class R {
          getId(e) {
            return e instanceof h.WX ? e.id : e.uri;
          }
        }
        let P = class extends s.JT {
          constructor(e, t, i) {
            super(), (this._uriLabel = t);
            const n = document.createElement('div');
            n.classList.add('reference-file'),
              (this.file = this._register(
                new w.g(n, { supportHighlights: !0 })
              )),
              (this.badge = new C.Z(u.R3(n, u.$('.count')))),
              this._register((0, x.WZ)(this.badge, i)),
              e.appendChild(n);
          }
          set(e, t) {
            let i = (0, m.XX)(e.uri);
            this.file.setLabel(
              (0, L.pP)(e.uri),
              this._uriLabel.getUriLabel(i, { relative: !0 }),
              { title: this._uriLabel.getUriLabel(e.uri), matches: t }
            );
            const r = e.children.length;
            this.badge.setCount(r),
              r > 1
                ? this.badge.setTitleFormat(
                    (0, n.N)('referencesCount', '{0} references', r)
                  )
                : this.badge.setTitleFormat(
                    (0, n.N)('referenceCount', '{0} reference', r)
                  );
          }
        };
        P = E([T(1, S.e), T(2, k.XE)], P);
        let F = class e {
          constructor(t) {
            (this._instantiationService = t), (this.templateId = e.id);
          }
          renderTemplate(e) {
            return this._instantiationService.createInstance(P, e);
          }
          renderElement(e, t, i) {
            i.set(e.element, (0, D.mB)(e.filterData));
          }
          disposeTemplate(e) {
            e.dispose();
          }
        };
        (F.id = 'FileReferencesRenderer'), (F = E([T(0, a.TG)], F));
        class B {
          constructor(e) {
            this.label = new N.q(e, !1);
          }
          set(e, t) {
            var i;
            const n =
              null === (i = e.parent.getPreview(e)) || void 0 === i
                ? void 0
                : i.preview(e.range);
            if (n && n.value) {
              const { value: e, highlight: i } = n;
              t && !D.CL.isDefault(t)
                ? (this.label.element.classList.toggle('referenceMatch', !1),
                  this.label.set(e, (0, D.mB)(t)))
                : (this.label.element.classList.toggle('referenceMatch', !0),
                  this.label.set(e, [i]));
            } else
              this.label.set(
                `${(0, m.EZ)(e.uri)}:${e.range.startLineNumber + 1}:${
                  e.range.startColumn + 1
                }`
              );
          }
        }
        class W {
          constructor() {
            this.templateId = W.id;
          }
          renderTemplate(e) {
            return new B(e);
          }
          renderElement(e, t, i) {
            i.set(e.element, e.filterData);
          }
          disposeTemplate() {}
        }
        W.id = 'OneReferenceRenderer';
        class Y {
          getWidgetAriaLabel() {
            return (0, n.N)('treeAriaLabel', 'References');
          }
          getAriaLabel(e) {
            return e.ariaMessage;
          }
        }
        var H = i(58664),
          j = i(73910),
          V = i(22043),
          z = i(98401),
          U = i(59870),
          $ = i(9488),
          K = i(73098),
          q = i(4850);
        const G = { separatorBorder: g.Il.transparent };
        class Z {
          constructor(e, t, i, n) {
            (this.container = e),
              (this.view = t),
              (this.disposable = n),
              (this._cachedVisibleSize = void 0),
              'number' == typeof i
                ? ((this._size = i),
                  (this._cachedVisibleSize = void 0),
                  u.cn(e, 'visible'))
                : ((this._size = 0),
                  (this._cachedVisibleSize = i.cachedVisibleSize));
          }
          set size(e) {
            this._size = e;
          }
          get size() {
            return this._size;
          }
          get visible() {
            return void 0 === this._cachedVisibleSize;
          }
          setVisible(e, t) {
            e !== this.visible &&
              (e
                ? ((this.size = (0, U.u)(
                    this._cachedVisibleSize,
                    this.viewMinimumSize,
                    this.viewMaximumSize
                  )),
                  (this._cachedVisibleSize = void 0))
                : ((this._cachedVisibleSize =
                    'number' == typeof t ? t : this.size),
                  (this.size = 0)),
              u.og(this.container, 'visible', e),
              this.view.setVisible && this.view.setVisible(e));
          }
          get minimumSize() {
            return this.visible ? this.view.minimumSize : 0;
          }
          get viewMinimumSize() {
            return this.view.minimumSize;
          }
          get maximumSize() {
            return this.visible ? this.view.maximumSize : 0;
          }
          get viewMaximumSize() {
            return this.view.maximumSize;
          }
          get priority() {
            return this.view.priority;
          }
          get snap() {
            return !!this.view.snap;
          }
          set enabled(e) {
            this.container.style.pointerEvents = e ? '' : 'none';
          }
          layout(e, t) {
            this.layoutContainer(e), this.view.layout(this.size, e, t);
          }
          dispose() {
            return this.disposable.dispose(), this.view;
          }
        }
        class J extends Z {
          layoutContainer(e) {
            (this.container.style.top = `${e}px`),
              (this.container.style.height = `${this.size}px`);
          }
        }
        class Q extends Z {
          layoutContainer(e) {
            (this.container.style.left = `${e}px`),
              (this.container.style.width = `${this.size}px`);
          }
        }
        var X, ee;
        !(function (e) {
          (e[(e.Idle = 0)] = 'Idle'), (e[(e.Busy = 1)] = 'Busy');
        })(X || (X = {})),
          (function (e) {
            (e.Distribute = { type: 'distribute' }),
              (e.Split = function (e) {
                return { type: 'split', index: e };
              }),
              (e.Invisible = function (e) {
                return { type: 'invisible', cachedVisibleSize: e };
              });
          })(ee || (ee = {}));
        class te extends s.JT {
          constructor(e, t = {}) {
            super(),
              (this.size = 0),
              (this.contentSize = 0),
              (this.proportions = void 0),
              (this.viewItems = []),
              (this.sashItems = []),
              (this.state = X.Idle),
              (this._onDidSashChange = this._register(new f.Q5())),
              (this.onDidSashChange = this._onDidSashChange.event),
              (this._onDidSashReset = this._register(new f.Q5())),
              (this._startSnappingEnabled = !0),
              (this._endSnappingEnabled = !0),
              (this.orientation = z.o8(t.orientation) ? 0 : t.orientation),
              (this.inverseAltBehavior = !!t.inverseAltBehavior),
              (this.proportionalLayout =
                !!z.o8(t.proportionalLayout) || !!t.proportionalLayout),
              (this.el = document.createElement('div')),
              u.cn(this.el, 'monaco-split-view2'),
              u.cn(this.el, 0 === this.orientation ? 'vertical' : 'horizontal'),
              e.appendChild(this.el),
              (this.sashContainer = u.R3(this.el, u.$('.sash-container'))),
              (this.viewContainer = u.R3(
                this.el,
                u.$('.split-view-container')
              )),
              this.style(t.styles || G),
              t.descriptor &&
                ((this.size = t.descriptor.size),
                t.descriptor.views.forEach((e, t) => {
                  const i =
                      z.o8(e.visible) || e.visible
                        ? e.size
                        : { type: 'invisible', cachedVisibleSize: e.size },
                    n = e.view;
                  this.doAddView(n, i, t, !0);
                }),
                (this.contentSize = this.viewItems.reduce(
                  (e, t) => e + t.size,
                  0
                )),
                this.saveProportions());
          }
          get orthogonalStartSash() {
            return this._orthogonalStartSash;
          }
          set orthogonalStartSash(e) {
            for (const t of this.sashItems) t.sash.orthogonalStartSash = e;
            this._orthogonalStartSash = e;
          }
          get orthogonalEndSash() {
            return this._orthogonalEndSash;
          }
          set orthogonalEndSash(e) {
            for (const t of this.sashItems) t.sash.orthogonalEndSash = e;
            this._orthogonalEndSash = e;
          }
          get startSnappingEnabled() {
            return this._startSnappingEnabled;
          }
          set startSnappingEnabled(e) {
            this._startSnappingEnabled !== e &&
              ((this._startSnappingEnabled = e), this.updateSashEnablement());
          }
          get endSnappingEnabled() {
            return this._endSnappingEnabled;
          }
          set endSnappingEnabled(e) {
            this._endSnappingEnabled !== e &&
              ((this._endSnappingEnabled = e), this.updateSashEnablement());
          }
          style(e) {
            e.separatorBorder.isTransparent()
              ? (u.IV(this.el, 'separator-border'),
                this.el.style.removeProperty('--separator-border'))
              : (u.cn(this.el, 'separator-border'),
                this.el.style.setProperty(
                  '--separator-border',
                  e.separatorBorder.toString()
                ));
          }
          addView(e, t, i = this.viewItems.length, n) {
            this.doAddView(e, t, i, n);
          }
          layout(e, t) {
            const i = Math.max(this.size, this.contentSize);
            if (((this.size = e), (this.layoutContext = t), this.proportions))
              for (let t = 0; t < this.viewItems.length; t++) {
                const i = this.viewItems[t];
                i.size = (0, U.u)(
                  Math.round(this.proportions[t] * e),
                  i.minimumSize,
                  i.maximumSize
                );
              }
            else {
              const t = (0, $.w6)(this.viewItems.length),
                n = t.filter((e) => 1 === this.viewItems[e].priority),
                r = t.filter((e) => 2 === this.viewItems[e].priority);
              this.resize(this.viewItems.length - 1, e - i, void 0, n, r);
            }
            this.distributeEmptySpace(), this.layoutViews();
          }
          saveProportions() {
            this.proportionalLayout &&
              this.contentSize > 0 &&
              (this.proportions = this.viewItems.map(
                (e) => e.size / this.contentSize
              ));
          }
          onSashStart({ sash: e, start: t, alt: i }) {
            for (const e of this.viewItems) e.enabled = !1;
            const n = (0, $.Zr)(this.sashItems, (t) => t.sash === e),
              r = (0, s.F8)(
                (0, q.j)(
                  document.body,
                  'keydown'
                )((e) => o(this.sashDragState.current, e.altKey)),
                (0, q.j)(
                  document.body,
                  'keyup'
                )(() => o(this.sashDragState.current, !1))
              ),
              o = (e, t) => {
                const i = this.viewItems.map((e) => e.size);
                let s,
                  o,
                  a = Number.NEGATIVE_INFINITY,
                  l = Number.POSITIVE_INFINITY;
                if ((this.inverseAltBehavior && (t = !t), t))
                  if (n === this.sashItems.length - 1) {
                    const e = this.viewItems[n];
                    (a = (e.minimumSize - e.size) / 2),
                      (l = (e.maximumSize - e.size) / 2);
                  } else {
                    const e = this.viewItems[n + 1];
                    (a = (e.size - e.maximumSize) / 2),
                      (l = (e.size - e.minimumSize) / 2);
                  }
                if (!t) {
                  const e = (0, $.w6)(n, -1),
                    t = (0, $.w6)(n + 1, this.viewItems.length),
                    r = e.reduce(
                      (e, t) => e + (this.viewItems[t].minimumSize - i[t]),
                      0
                    ),
                    a = e.reduce(
                      (e, t) => e + (this.viewItems[t].viewMaximumSize - i[t]),
                      0
                    ),
                    l =
                      0 === t.length
                        ? Number.POSITIVE_INFINITY
                        : t.reduce(
                            (e, t) =>
                              e + (i[t] - this.viewItems[t].minimumSize),
                            0
                          ),
                    c =
                      0 === t.length
                        ? Number.NEGATIVE_INFINITY
                        : t.reduce(
                            (e, t) =>
                              e + (i[t] - this.viewItems[t].viewMaximumSize),
                            0
                          ),
                    d = Math.max(r, c),
                    h = Math.min(l, a),
                    u = this.findFirstSnapIndex(e),
                    g = this.findFirstSnapIndex(t);
                  if ('number' == typeof u) {
                    const e = this.viewItems[u],
                      t = Math.floor(e.viewMinimumSize / 2);
                    s = {
                      index: u,
                      limitDelta: e.visible ? d - t : d + t,
                      size: e.size,
                    };
                  }
                  if ('number' == typeof g) {
                    const e = this.viewItems[g],
                      t = Math.floor(e.viewMinimumSize / 2);
                    o = {
                      index: g,
                      limitDelta: e.visible ? h + t : h - t,
                      size: e.size,
                    };
                  }
                }
                this.sashDragState = {
                  start: e,
                  current: e,
                  index: n,
                  sizes: i,
                  minDelta: a,
                  maxDelta: l,
                  alt: t,
                  snapBefore: s,
                  snapAfter: o,
                  disposable: r,
                };
              };
            o(t, i);
          }
          onSashChange({ current: e }) {
            const {
              index: t,
              start: i,
              sizes: n,
              alt: r,
              minDelta: s,
              maxDelta: o,
              snapBefore: a,
              snapAfter: l,
            } = this.sashDragState;
            this.sashDragState.current = e;
            const c = e - i,
              d = this.resize(t, c, n, void 0, void 0, s, o, a, l);
            if (r) {
              const e = t === this.sashItems.length - 1,
                i = this.viewItems.map((e) => e.size),
                n = e ? t : t + 1,
                r = this.viewItems[n],
                s = r.size - r.maximumSize,
                o = r.size - r.minimumSize,
                a = e ? t - 1 : t + 1;
              this.resize(a, -d, i, void 0, void 0, s, o);
            }
            this.distributeEmptySpace(), this.layoutViews();
          }
          onSashEnd(e) {
            this._onDidSashChange.fire(e),
              this.sashDragState.disposable.dispose(),
              this.saveProportions();
            for (const e of this.viewItems) e.enabled = !0;
          }
          onViewChange(e, t) {
            const i = this.viewItems.indexOf(e);
            i < 0 ||
              i >= this.viewItems.length ||
              ((t = 'number' == typeof t ? t : e.size),
              (t = (0, U.u)(t, e.minimumSize, e.maximumSize)),
              this.inverseAltBehavior && i > 0
                ? (this.resize(i - 1, Math.floor((e.size - t) / 2)),
                  this.distributeEmptySpace(),
                  this.layoutViews())
                : ((e.size = t), this.relayout([i], void 0)));
          }
          resizeView(e, t) {
            if (this.state !== X.Idle) throw new Error('Cant modify splitview');
            if (((this.state = X.Busy), e < 0 || e >= this.viewItems.length))
              return;
            const i = (0, $.w6)(this.viewItems.length).filter((t) => t !== e),
              n = [...i.filter((e) => 1 === this.viewItems[e].priority), e],
              r = i.filter((e) => 2 === this.viewItems[e].priority),
              s = this.viewItems[e];
            (t = Math.round(t)),
              (t = (0, U.u)(
                t,
                s.minimumSize,
                Math.min(s.maximumSize, this.size)
              )),
              (s.size = t),
              this.relayout(n, r),
              (this.state = X.Idle);
          }
          distributeViewSizes() {
            const e = [];
            let t = 0;
            for (const i of this.viewItems)
              i.maximumSize - i.minimumSize > 0 && (e.push(i), (t += i.size));
            const i = Math.floor(t / e.length);
            for (const t of e)
              t.size = (0, U.u)(i, t.minimumSize, t.maximumSize);
            const n = (0, $.w6)(this.viewItems.length),
              r = n.filter((e) => 1 === this.viewItems[e].priority),
              s = n.filter((e) => 2 === this.viewItems[e].priority);
            this.relayout(r, s);
          }
          getViewSize(e) {
            return e < 0 || e >= this.viewItems.length
              ? -1
              : this.viewItems[e].size;
          }
          doAddView(e, t, i = this.viewItems.length, n) {
            if (this.state !== X.Idle) throw new Error('Cant modify splitview');
            this.state = X.Busy;
            const r = u.$('.split-view-view');
            i === this.viewItems.length
              ? this.viewContainer.appendChild(r)
              : this.viewContainer.insertBefore(
                  r,
                  this.viewContainer.children.item(i)
                );
            const o = e.onDidChange((e) => this.onViewChange(d, e)),
              a = (0, s.OF)(() => this.viewContainer.removeChild(r)),
              l = (0, s.F8)(o, a);
            let c;
            c =
              'number' == typeof t
                ? t
                : 'split' === t.type
                ? this.getViewSize(t.index) / 2
                : 'invisible' === t.type
                ? { cachedVisibleSize: t.cachedVisibleSize }
                : e.minimumSize;
            const d =
              0 === this.orientation ? new J(r, e, c, l) : new Q(r, e, c, l);
            if ((this.viewItems.splice(i, 0, d), this.viewItems.length > 1)) {
              const e =
                  0 === this.orientation
                    ? new K.g(
                        this.sashContainer,
                        {
                          getHorizontalSashTop: (e) => this.getSashPosition(e),
                        },
                        {
                          orientation: 1,
                          orthogonalStartSash: this.orthogonalStartSash,
                          orthogonalEndSash: this.orthogonalEndSash,
                        }
                      )
                    : new K.g(
                        this.sashContainer,
                        { getVerticalSashLeft: (e) => this.getSashPosition(e) },
                        {
                          orientation: 0,
                          orthogonalStartSash: this.orthogonalStartSash,
                          orthogonalEndSash: this.orthogonalEndSash,
                        }
                      ),
                t =
                  0 === this.orientation
                    ? (t) => ({
                        sash: e,
                        start: t.startY,
                        current: t.currentY,
                        alt: t.altKey,
                      })
                    : (t) => ({
                        sash: e,
                        start: t.startX,
                        current: t.currentX,
                        alt: t.altKey,
                      }),
                n = f.ju.map(e.onDidStart, t)(this.onSashStart, this),
                r = f.ju.map(e.onDidChange, t)(this.onSashChange, this),
                o = f.ju.map(e.onDidEnd, () =>
                  (0, $.Zr)(this.sashItems, (t) => t.sash === e)
                )(this.onSashEnd, this),
                a = e.onDidReset(() => {
                  const t = (0, $.Zr)(this.sashItems, (t) => t.sash === e),
                    i = (0, $.w6)(t, -1),
                    n = (0, $.w6)(t + 1, this.viewItems.length),
                    r = this.findFirstSnapIndex(i),
                    s = this.findFirstSnapIndex(n);
                  ('number' != typeof r || this.viewItems[r].visible) &&
                    ('number' != typeof s || this.viewItems[s].visible) &&
                    this._onDidSashReset.fire(t);
                }),
                l = (0, s.F8)(n, r, o, a, e),
                c = { sash: e, disposable: l };
              this.sashItems.splice(i - 1, 0, c);
            }
            let h;
            r.appendChild(e.element),
              'number' != typeof t && 'split' === t.type && (h = [t.index]),
              n || this.relayout([i], h),
              (this.state = X.Idle),
              n ||
                'number' == typeof t ||
                'distribute' !== t.type ||
                this.distributeViewSizes();
          }
          relayout(e, t) {
            const i = this.viewItems.reduce((e, t) => e + t.size, 0);
            this.resize(this.viewItems.length - 1, this.size - i, void 0, e, t),
              this.distributeEmptySpace(),
              this.layoutViews(),
              this.saveProportions();
          }
          resize(
            e,
            t,
            i = this.viewItems.map((e) => e.size),
            n,
            r,
            s = Number.NEGATIVE_INFINITY,
            o = Number.POSITIVE_INFINITY,
            a,
            l
          ) {
            if (e < 0 || e >= this.viewItems.length) return 0;
            const c = (0, $.w6)(e, -1),
              d = (0, $.w6)(e + 1, this.viewItems.length);
            if (r) for (const e of r) (0, $.zI)(c, e), (0, $.zI)(d, e);
            if (n) for (const e of n) (0, $.al)(c, e), (0, $.al)(d, e);
            const h = c.map((e) => this.viewItems[e]),
              u = c.map((e) => i[e]),
              g = d.map((e) => this.viewItems[e]),
              f = d.map((e) => i[e]),
              p = c.reduce(
                (e, t) => e + (this.viewItems[t].minimumSize - i[t]),
                0
              ),
              m = c.reduce(
                (e, t) => e + (this.viewItems[t].maximumSize - i[t]),
                0
              ),
              _ =
                0 === d.length
                  ? Number.POSITIVE_INFINITY
                  : d.reduce(
                      (e, t) => e + (i[t] - this.viewItems[t].minimumSize),
                      0
                    ),
              b =
                0 === d.length
                  ? Number.NEGATIVE_INFINITY
                  : d.reduce(
                      (e, t) => e + (i[t] - this.viewItems[t].maximumSize),
                      0
                    ),
              v = Math.max(p, b, s),
              y = Math.min(_, m, o);
            let w = !1;
            if (a) {
              const e = this.viewItems[a.index],
                i = t >= a.limitDelta;
              (w = i !== e.visible), e.setVisible(i, a.size);
            }
            if (!w && l) {
              const e = this.viewItems[l.index],
                i = t < l.limitDelta;
              (w = i !== e.visible), e.setVisible(i, l.size);
            }
            if (w) return this.resize(e, t, i, n, r, s, o);
            for (let e = 0, i = (t = (0, U.u)(t, v, y)); e < h.length; e++) {
              const t = h[e],
                n = (0, U.u)(u[e] + i, t.minimumSize, t.maximumSize);
              (i -= n - u[e]), (t.size = n);
            }
            for (let e = 0, i = t; e < g.length; e++) {
              const t = g[e],
                n = (0, U.u)(f[e] - i, t.minimumSize, t.maximumSize);
              (i += n - f[e]), (t.size = n);
            }
            return t;
          }
          distributeEmptySpace(e) {
            const t = this.viewItems.reduce((e, t) => e + t.size, 0);
            let i = this.size - t;
            const n = (0, $.w6)(this.viewItems.length - 1, -1),
              r = n.filter((e) => 1 === this.viewItems[e].priority),
              s = n.filter((e) => 2 === this.viewItems[e].priority);
            for (const e of s) (0, $.zI)(n, e);
            for (const e of r) (0, $.al)(n, e);
            'number' == typeof e && (0, $.al)(n, e);
            for (let e = 0; 0 !== i && e < n.length; e++) {
              const t = this.viewItems[n[e]],
                r = (0, U.u)(t.size + i, t.minimumSize, t.maximumSize);
              (i -= r - t.size), (t.size = r);
            }
          }
          layoutViews() {
            this.contentSize = this.viewItems.reduce((e, t) => e + t.size, 0);
            let e = 0;
            for (const t of this.viewItems)
              t.layout(e, this.layoutContext), (e += t.size);
            this.sashItems.forEach((e) => e.sash.layout()),
              this.updateSashEnablement();
          }
          updateSashEnablement() {
            let e = !1;
            const t = this.viewItems.map(
              (t) => (e = t.size - t.minimumSize > 0 || e)
            );
            e = !1;
            const i = this.viewItems.map(
                (t) => (e = t.maximumSize - t.size > 0 || e)
              ),
              n = [...this.viewItems].reverse();
            e = !1;
            const r = n
              .map((t) => (e = t.size - t.minimumSize > 0 || e))
              .reverse();
            e = !1;
            const s = n
              .map((t) => (e = t.maximumSize - t.size > 0 || e))
              .reverse();
            let o = 0;
            for (let e = 0; e < this.sashItems.length; e++) {
              const { sash: n } = this.sashItems[e];
              o += this.viewItems[e].size;
              const a = !(t[e] && s[e + 1]),
                l = !(i[e] && r[e + 1]);
              if (a && l) {
                const i = (0, $.w6)(e, -1),
                  s = (0, $.w6)(e + 1, this.viewItems.length),
                  a = this.findFirstSnapIndex(i),
                  l = this.findFirstSnapIndex(s),
                  c = 'number' == typeof a && !this.viewItems[a].visible,
                  d = 'number' == typeof l && !this.viewItems[l].visible;
                c && r[e] && (o > 0 || this.startSnappingEnabled)
                  ? (n.state = 1)
                  : d &&
                    t[e] &&
                    (o < this.contentSize || this.endSnappingEnabled)
                  ? (n.state = 2)
                  : (n.state = 0);
              } else n.state = a && !l ? 1 : !a && l ? 2 : 3;
            }
          }
          getSashPosition(e) {
            let t = 0;
            for (let i = 0; i < this.sashItems.length; i++)
              if (((t += this.viewItems[i].size), this.sashItems[i].sash === e))
                return t;
            return 0;
          }
          findFirstSnapIndex(e) {
            for (const t of e) {
              const e = this.viewItems[t];
              if (e.visible && e.snap) return t;
            }
            for (const t of e) {
              const e = this.viewItems[t];
              if (e.visible && e.maximumSize - e.minimumSize > 0) return;
              if (!e.visible && e.snap) return t;
            }
          }
          dispose() {
            super.dispose(),
              this.viewItems.forEach((e) => e.dispose()),
              (this.viewItems = []),
              this.sashItems.forEach((e) => e.disposable.dispose()),
              (this.sashItems = []);
          }
        }
        var ie = i(64862),
          ne = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          re = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        class se {
          constructor(e, t) {
            (this._editor = e),
              (this._model = t),
              (this._decorations = new Map()),
              (this._decorationIgnoreSet = new Set()),
              (this._callOnDispose = new s.SL()),
              (this._callOnModelChange = new s.SL()),
              this._callOnDispose.add(
                this._editor.onDidChangeModel(() => this._onModelChanged())
              ),
              this._onModelChanged();
          }
          dispose() {
            this._callOnModelChange.dispose(),
              this._callOnDispose.dispose(),
              this.removeDecorations();
          }
          _onModelChanged() {
            this._callOnModelChange.clear();
            const e = this._editor.getModel();
            if (e)
              for (let t of this._model.references)
                if (t.uri.toString() === e.uri.toString())
                  return void this._addDecorations(t.parent);
          }
          _addDecorations(e) {
            if (!this._editor.hasModel()) return;
            this._callOnModelChange.add(
              this._editor
                .getModel()
                .onDidChangeDecorations(() => this._onDecorationChanged())
            );
            const t = [],
              i = [];
            for (let n = 0, r = e.children.length; n < r; n++) {
              let r = e.children[n];
              this._decorationIgnoreSet.has(r.id) ||
                (r.uri.toString() === this._editor.getModel().uri.toString() &&
                  (t.push({ range: r.range, options: se.DecorationOptions }),
                  i.push(n)));
            }
            const n = this._editor.deltaDecorations([], t);
            for (let t = 0; t < n.length; t++)
              this._decorations.set(n[t], e.children[i[t]]);
          }
          _onDecorationChanged() {
            const e = [],
              t = this._editor.getModel();
            if (t) {
              for (let [i, n] of this._decorations) {
                const r = t.getDecorationRange(i);
                if (!r) continue;
                let s = !1;
                b.e.equalsRange(r, n.range) ||
                  ((b.e.spansMultipleLines(r) ||
                    n.range.endColumn - n.range.startColumn !=
                      r.endColumn - r.startColumn) &&
                    (s = !0),
                  s
                    ? (this._decorationIgnoreSet.add(n.id), e.push(i))
                    : (n.range = r));
              }
              for (let t = 0, i = e.length; t < i; t++)
                this._decorations.delete(e[t]);
              this._editor.deltaDecorations(e, []);
            }
          }
          removeDecorations() {
            this._editor.deltaDecorations([...this._decorations.keys()], []),
              this._decorations.clear();
          }
        }
        se.DecorationOptions = v.qx.register({
          stickiness: 1,
          className: 'reference-decoration',
        });
        class oe extends H.ls {}
        let ae = class extends V.vk {
          constructor(e, t, i, n, r, o, a, l, c, d) {
            super(
              e,
              {
                showFrame: !1,
                showArrow: !0,
                isResizeable: !0,
                isAccessible: !0,
              },
              o
            ),
              (this._defaultTreeKeyboardSupport = t),
              (this.layoutData = i),
              (this._textModelResolverService = r),
              (this._instantiationService = o),
              (this._peekViewService = a),
              (this._uriLabel = l),
              (this._undoRedoService = c),
              (this._keybindingService = d),
              (this._disposeOnNewModel = new s.SL()),
              (this._callOnDispose = new s.SL()),
              (this._onDidSelectReference = new f.Q5()),
              (this.onDidSelectReference = this._onDidSelectReference.event),
              (this._dim = { height: 0, width: 0 }),
              this._applyTheme(n.getColorTheme()),
              this._callOnDispose.add(
                n.onDidColorThemeChange(this._applyTheme.bind(this))
              ),
              this._peekViewService.addExclusiveWidget(e, this),
              this.create();
          }
          dispose() {
            this.setModel(void 0),
              this._callOnDispose.dispose(),
              this._disposeOnNewModel.dispose(),
              (0, s.B9)(this._preview),
              (0, s.B9)(this._previewNotAvailableMessage),
              (0, s.B9)(this._tree),
              (0, s.B9)(this._previewModelReference),
              this._splitView.dispose(),
              super.dispose();
          }
          _applyTheme(e) {
            const t = e.getColor(V.SC) || g.Il.transparent;
            this.style({
              arrowColor: t,
              frameColor: t,
              headerBackgroundColor: e.getColor(V.KY) || g.Il.transparent,
              primaryHeadingColor: e.getColor(V.IH),
              secondaryHeadingColor: e.getColor(V.R7),
            });
          }
          show(e) {
            this.editor.revealRangeInCenterIfOutsideViewport(e, 0),
              super.show(e, this.layoutData.heightInLines || 18);
          }
          focusOnReferenceTree() {
            this._tree.domFocus();
          }
          focusOnPreviewEditor() {
            this._preview.focus();
          }
          isPreviewEditorFocused() {
            return this._preview.hasTextFocus();
          }
          _onTitleClick(e) {
            this._preview &&
              this._preview.getModel() &&
              this._onDidSelectReference.fire({
                element: this._getFocusedReference(),
                kind: e.ctrlKey || e.metaKey || e.altKey ? 'side' : 'open',
                source: 'title',
              });
          }
          _fillBody(e) {
            this.setCssClass('reference-zone-widget'),
              (this._messageContainer = u.R3(e, u.$('div.messages'))),
              u.Cp(this._messageContainer),
              (this._splitView = new te(e, { orientation: 1 })),
              (this._previewContainer = u.R3(e, u.$('div.preview.inline'))),
              (this._preview = this._instantiationService.createInstance(
                _.H,
                this._previewContainer,
                {
                  scrollBeyondLastLine: !1,
                  scrollbar: {
                    verticalScrollbarSize: 14,
                    horizontal: 'auto',
                    useShadows: !0,
                    verticalHasArrows: !1,
                    horizontalHasArrows: !1,
                    alwaysConsumeMouseWheel: !1,
                  },
                  overviewRulerLanes: 2,
                  fixedOverflowWidgets: !0,
                  minimap: { enabled: !1 },
                },
                this.editor
              )),
              u.Cp(this._previewContainer),
              (this._previewNotAvailableMessage = new v.yO(
                n.N('missingPreviewMessage', 'no preview available'),
                v.yO.DEFAULT_CREATION_OPTIONS,
                null,
                null,
                this._undoRedoService
              )),
              (this._treeContainer = u.R3(e, u.$('div.ref-tree.inline')));
            const t = {
              keyboardSupport: this._defaultTreeKeyboardSupport,
              accessibilityProvider: new Y(),
              keyboardNavigationLabelProvider: this._instantiationService.createInstance(
                A
              ),
              identityProvider: new R(),
              openOnSingleClick: !0,
              openOnFocus: !0,
              overrideStyles: { listBackground: V.M8 },
            };
            this._defaultTreeKeyboardSupport &&
              this._callOnDispose.add(
                u.mu(
                  this._treeContainer,
                  'keydown',
                  (e) => {
                    e.equals(9) &&
                      (this._keybindingService.dispatchEvent(e, e.target),
                      e.stopPropagation());
                  },
                  !0
                )
              ),
              (this._tree = this._instantiationService.createInstance(
                oe,
                'ReferencesWidget',
                this._treeContainer,
                new O(),
                [
                  this._instantiationService.createInstance(F),
                  this._instantiationService.createInstance(W),
                ],
                this._instantiationService.createInstance(I),
                t
              )),
              this._splitView.addView(
                {
                  onDidChange: f.ju.None,
                  element: this._previewContainer,
                  minimumSize: 200,
                  maximumSize: Number.MAX_VALUE,
                  layout: (e) => {
                    this._preview.layout({
                      height: this._dim.height,
                      width: e,
                    });
                  },
                },
                ee.Distribute
              ),
              this._splitView.addView(
                {
                  onDidChange: f.ju.None,
                  element: this._treeContainer,
                  minimumSize: 100,
                  maximumSize: Number.MAX_VALUE,
                  layout: (e) => {
                    (this._treeContainer.style.height = `${this._dim.height}px`),
                      (this._treeContainer.style.width = `${e}px`),
                      this._tree.layout(this._dim.height, e);
                  },
                },
                ee.Distribute
              ),
              this._disposables.add(
                this._splitView.onDidSashChange(() => {
                  this._dim.width &&
                    (this.layoutData.ratio =
                      this._splitView.getViewSize(0) / this._dim.width);
                }, void 0)
              );
            let i = (e, t) => {
              e instanceof h.WX &&
                ('show' === t && this._revealReference(e, !1),
                this._onDidSelectReference.fire({
                  element: e,
                  kind: t,
                  source: 'tree',
                }));
            };
            this._tree.onDidOpen((e) => {
              e.sideBySide
                ? i(e.element, 'side')
                : e.editorOptions.pinned
                ? i(e.element, 'goto')
                : i(e.element, 'show');
            }),
              u.Cp(this._treeContainer);
          }
          _onWidth(e) {
            this._dim && this._doLayoutBody(this._dim.height, e);
          }
          _doLayoutBody(e, t) {
            super._doLayoutBody(e, t),
              (this._dim = { height: e, width: t }),
              (this.layoutData.heightInLines = this._viewZone
                ? this._viewZone.heightInLines
                : this.layoutData.heightInLines),
              this._splitView.layout(t),
              this._splitView.resizeView(0, t * this.layoutData.ratio);
          }
          setSelection(e) {
            return this._revealReference(e, !0).then(() => {
              this._model &&
                (this._tree.setSelection([e]), this._tree.setFocus([e]));
            });
          }
          setModel(e) {
            return (
              this._disposeOnNewModel.clear(),
              (this._model = e),
              this._model ? this._onNewModel() : Promise.resolve()
            );
          }
          _onNewModel() {
            return this._model
              ? this._model.isEmpty
                ? (this.setTitle(''),
                  (this._messageContainer.innerText = n.N(
                    'noResults',
                    'No results'
                  )),
                  u.$Z(this._messageContainer),
                  Promise.resolve(void 0))
                : (u.Cp(this._messageContainer),
                  (this._decorationsManager = new se(
                    this._preview,
                    this._model
                  )),
                  this._disposeOnNewModel.add(this._decorationsManager),
                  this._disposeOnNewModel.add(
                    this._model.onDidChangeReferenceRange((e) =>
                      this._tree.rerender(e)
                    )
                  ),
                  this._disposeOnNewModel.add(
                    this._preview.onMouseDown((e) => {
                      const { event: t, target: i } = e;
                      if (2 !== t.detail) return;
                      const n = this._getFocusedReference();
                      n &&
                        this._onDidSelectReference.fire({
                          element: { uri: n.uri, range: i.range },
                          kind:
                            t.ctrlKey || t.metaKey || t.altKey
                              ? 'side'
                              : 'open',
                          source: 'editor',
                        });
                    })
                  ),
                  this.container.classList.add('results-loaded'),
                  u.$Z(this._treeContainer),
                  u.$Z(this._previewContainer),
                  this._splitView.layout(this._dim.width),
                  this.focusOnReferenceTree(),
                  this._tree.setInput(
                    1 === this._model.groups.length
                      ? this._model.groups[0]
                      : this._model
                  ))
              : Promise.resolve(void 0);
          }
          _getFocusedReference() {
            const [e] = this._tree.getFocus();
            return e instanceof h.WX
              ? e
              : e instanceof h.F2 && e.children.length > 0
              ? e.children[0]
              : void 0;
          }
          revealReference(e) {
            return re(this, void 0, void 0, function* () {
              yield this._revealReference(e, !1),
                this._onDidSelectReference.fire({
                  element: e,
                  kind: 'goto',
                  source: 'tree',
                });
            });
          }
          _revealReference(e, t) {
            return re(this, void 0, void 0, function* () {
              if (this._revealedReference === e) return;
              (this._revealedReference = e),
                e.uri.scheme !== p.l.inMemory
                  ? this.setTitle(
                      (0, m.Hx)(e.uri),
                      this._uriLabel.getUriLabel((0, m.XX)(e.uri))
                    )
                  : this.setTitle(n.N('peekView.alternateTitle', 'References'));
              const i = this._textModelResolverService.createModelReference(
                e.uri
              );
              this._tree.getInput() === e.parent ||
                (t && this._tree.reveal(e.parent),
                yield this._tree.expand(e.parent)),
                this._tree.reveal(e);
              const r = yield i;
              if (!this._model) return void r.dispose();
              (0, s.B9)(this._previewModelReference);
              const o = r.object;
              if (o) {
                const t =
                    this._preview.getModel() === o.textEditorModel ? 0 : 1,
                  i = b.e.lift(e.range).collapseToStart();
                (this._previewModelReference = r),
                  this._preview.setModel(o.textEditorModel),
                  this._preview.setSelection(i),
                  this._preview.revealRangeInCenter(i, t);
              } else this._preview.setModel(this._previewNotAvailableMessage), r.dispose();
            });
          }
        };
        (ae = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            ne(3, k.XE),
            ne(4, y.S),
            ne(5, a.TG),
            ne(6, V.Fw),
            ne(7, S.e),
            ne(8, ie.t),
            ne(9, M.d),
          ],
          ae
        )),
          (0, k.Ic)((e, t) => {
            const i = e.getColor(V.F8);
            i &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ${i}; }`
              );
            const n = e.getColor(V.WL);
            n &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ${n}; }`
              );
            const r = e.getColor(V.xH);
            r &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ${r}; box-sizing: border-box; }`
              );
            const s = e.getColor(j.xL);
            s &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted ${s}; box-sizing: border-box; }`
              );
            const o = e.getColor(V.M8);
            o &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree { background-color: ${o}; }`
              );
            const a = e.getColor(V.xk);
            a &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree { color: ${a}; }`
              );
            const l = e.getColor(V.a7);
            l &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ${l}; }`
              );
            const c = e.getColor(V.Zj);
            c &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: ${c}; }`
              );
            const d = e.getColor(V.IY);
            d &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: ${d} !important; }`
              );
            const h = e.getColor(V.RX);
            h &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\tbackground-color: ${h};}`
              );
            const u = e.getColor(V.sH);
            u &&
              t.addRule(
                `.monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\tbackground-color: ${u};}`
              );
          });
        var le = i(50187),
          ce = i(59422),
          de = i(15393),
          he = i(49989),
          ue = i(22258),
          ge = i(94565),
          fe = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          pe = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        const me = new l.uy('referenceSearchVisible', !1);
        let _e = class e {
          constructor(e, t, i, n, r, o, a, l) {
            (this._defaultTreeKeyboardSupport = e),
              (this._editor = t),
              (this._editorService = n),
              (this._notificationService = r),
              (this._instantiationService = o),
              (this._storageService = a),
              (this._configurationService = l),
              (this._disposables = new s.SL()),
              (this._requestIdPool = 0),
              (this._ignoreModelChangeEvent = !1),
              (this._referenceSearchVisible = me.bindTo(i));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this._referenceSearchVisible.reset(),
              this._disposables.dispose(),
              (0, s.B9)(this._widget),
              (0, s.B9)(this._model),
              (this._widget = void 0),
              (this._model = void 0);
          }
          toggleWidget(e, t, i) {
            let r;
            if (
              (this._widget && (r = this._widget.position),
              this.closeWidget(),
              r && e.containsPosition(r))
            )
              return;
            (this._peekMode = i),
              this._referenceSearchVisible.set(!0),
              this._disposables.add(
                this._editor.onDidChangeModelLanguage(() => {
                  this.closeWidget();
                })
              ),
              this._disposables.add(
                this._editor.onDidChangeModel(() => {
                  this._ignoreModelChangeEvent || this.closeWidget();
                })
              );
            const s = 'peekViewLayout',
              o = class {
                constructor() {
                  (this.ratio = 0.7), (this.heightInLines = 18);
                }
                static fromJSON(e) {
                  let t, i;
                  try {
                    const n = JSON.parse(e);
                    (t = n.ratio), (i = n.heightInLines);
                  } catch (e) {}
                  return { ratio: t || 0.7, heightInLines: i || 18 };
                }
              }.fromJSON(this._storageService.get(s, 0, '{}'));
            (this._widget = this._instantiationService.createInstance(
              ae,
              this._editor,
              this._defaultTreeKeyboardSupport,
              o
            )),
              this._widget.setTitle(n.N('labelLoading', 'Loading...')),
              this._widget.show(e),
              this._disposables.add(
                this._widget.onDidClose(() => {
                  t.cancel(),
                    this._widget &&
                      (this._storageService.store(
                        s,
                        JSON.stringify(this._widget.layoutData),
                        0
                      ),
                      (this._widget = void 0)),
                    this.closeWidget();
                })
              ),
              this._disposables.add(
                this._widget.onDidSelectReference((e) => {
                  let { element: t, kind: n } = e;
                  if (t)
                    switch (n) {
                      case 'open':
                        ('editor' === e.source &&
                          this._configurationService.getValue(
                            'editor.stablePeek'
                          )) ||
                          this.openReference(t, !1);
                        break;
                      case 'side':
                        this.openReference(t, !0);
                        break;
                      case 'goto':
                        i ? this._gotoReference(t) : this.openReference(t, !1);
                    }
                })
              );
            const a = ++this._requestIdPool;
            t.then(
              (t) => {
                if (a === this._requestIdPool && this._widget)
                  return (
                    this._model && this._model.dispose(),
                    (this._model = t),
                    this._widget.setModel(this._model).then(() => {
                      if (
                        this._widget &&
                        this._model &&
                        this._editor.hasModel()
                      ) {
                        this._model.isEmpty
                          ? this._widget.setMetaTitle('')
                          : this._widget.setMetaTitle(
                              n.N(
                                'metaTitle.N',
                                '{0} ({1})',
                                this._model.title,
                                this._model.references.length
                              )
                            );
                        let t = this._editor.getModel().uri,
                          i = new le.L(e.startLineNumber, e.startColumn),
                          r = this._model.nearestReference(t, i);
                        if (r)
                          return this._widget.setSelection(r).then(() => {
                            this._widget &&
                              'editor' === this._editor.getOption(68) &&
                              this._widget.focusOnPreviewEditor();
                          });
                      }
                    })
                  );
              },
              (e) => {
                this._notificationService.error(e);
              }
            );
          }
          changeFocusBetweenPreviewAndReferences() {
            this._widget &&
              (this._widget.isPreviewEditorFocused()
                ? this._widget.focusOnReferenceTree()
                : this._widget.focusOnPreviewEditor());
          }
          goToNextOrPreviousReference(e) {
            return pe(this, void 0, void 0, function* () {
              if (!this._editor.hasModel() || !this._model || !this._widget)
                return;
              const t = this._widget.position;
              if (!t) return;
              const i = this._model.nearestReference(
                this._editor.getModel().uri,
                t
              );
              if (!i) return;
              const n = this._model.nextOrPreviousReference(i, e),
                r = this._editor.hasTextFocus(),
                s = this._widget.isPreviewEditorFocused();
              yield this._widget.setSelection(n),
                yield this._gotoReference(n),
                r
                  ? this._editor.focus()
                  : this._widget && s && this._widget.focusOnPreviewEditor();
            });
          }
          revealReference(e) {
            return pe(this, void 0, void 0, function* () {
              this._editor.hasModel() &&
                this._model &&
                this._widget &&
                (yield this._widget.revealReference(e));
            });
          }
          closeWidget(e = !0) {
            (0, s.B9)(this._widget),
              (0, s.B9)(this._model),
              this._referenceSearchVisible.reset(),
              this._disposables.clear(),
              (this._widget = void 0),
              (this._model = void 0),
              e && this._editor.focus(),
              (this._requestIdPool += 1);
          }
          _gotoReference(t) {
            this._widget && this._widget.hide(),
              (this._ignoreModelChangeEvent = !0);
            const i = b.e.lift(t.range).collapseToStart();
            return this._editorService
              .openCodeEditor(
                { resource: t.uri, options: { selection: i } },
                this._editor
              )
              .then(
                (t) => {
                  var n;
                  if (((this._ignoreModelChangeEvent = !1), t && this._widget))
                    if (this._editor === t)
                      this._widget.show(i), this._widget.focusOnReferenceTree();
                    else {
                      const r = e.get(t),
                        s = this._model.clone();
                      this.closeWidget(),
                        t.focus(),
                        r.toggleWidget(
                          i,
                          (0, de.PG)((e) => Promise.resolve(s)),
                          null !== (n = this._peekMode) && void 0 !== n && n
                        );
                    }
                  else this.closeWidget();
                },
                (e) => {
                  (this._ignoreModelChangeEvent = !1), (0, r.dL)(e);
                }
              );
          }
          openReference(e, t) {
            t || this.closeWidget();
            const { uri: i, range: n } = e;
            this._editorService.openCodeEditor(
              { resource: i, options: { selection: n } },
              this._editor,
              t
            );
          }
        };
        function be(e, t) {
          const i = (0, V.rc)(e);
          if (!i) return;
          let n = _e.get(i);
          n && t(n);
        }
        (_e.ID = 'editor.contrib.referencesController'),
          (_e = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              fe(2, l.i6),
              fe(3, o.$),
              fe(4, ce.lT),
              fe(5, a.TG),
              fe(6, d.Uy),
              fe(7, c.Ui),
            ],
            _e
          )),
          he.W.registerCommandAndKeybindingRule({
            id: 'togglePeekWidgetFocus',
            weight: 100,
            primary: (0, ue.gx)(2089, 60),
            when: l.Ao.or(me, V.Jy.inPeekEditor),
            handler(e) {
              be(e, (e) => {
                e.changeFocusBetweenPreviewAndReferences();
              });
            },
          }),
          he.W.registerCommandAndKeybindingRule({
            id: 'goToNextReference',
            weight: 90,
            primary: 62,
            secondary: [70],
            when: l.Ao.or(me, V.Jy.inPeekEditor),
            handler(e) {
              be(e, (e) => {
                e.goToNextOrPreviousReference(!0);
              });
            },
          }),
          he.W.registerCommandAndKeybindingRule({
            id: 'goToPreviousReference',
            weight: 90,
            primary: 1086,
            secondary: [1094],
            when: l.Ao.or(me, V.Jy.inPeekEditor),
            handler(e) {
              be(e, (e) => {
                e.goToNextOrPreviousReference(!1);
              });
            },
          }),
          ge.P.registerCommandAlias(
            'goToNextReferenceFromEmbeddedEditor',
            'goToNextReference'
          ),
          ge.P.registerCommandAlias(
            'goToPreviousReferenceFromEmbeddedEditor',
            'goToPreviousReference'
          ),
          ge.P.registerCommandAlias(
            'closeReferenceSearchEditor',
            'closeReferenceSearch'
          ),
          ge.P.registerCommand('closeReferenceSearch', (e) =>
            be(e, (e) => e.closeWidget())
          ),
          he.W.registerKeybindingRule({
            id: 'closeReferenceSearch',
            weight: -1,
            primary: 9,
            secondary: [1033],
            when: l.Ao.and(
              V.Jy.inPeekEditor,
              l.Ao.not('config.editor.stablePeek')
            ),
          }),
          he.W.registerKeybindingRule({
            id: 'closeReferenceSearch',
            weight: 250,
            primary: 9,
            secondary: [1033],
            when: l.Ao.and(me, l.Ao.not('config.editor.stablePeek')),
          }),
          he.W.registerCommandAndKeybindingRule({
            id: 'revealReference',
            weight: 200,
            primary: 3,
            mac: { primary: 3, secondary: [2066] },
            when: l.Ao.and(me, H.CQ),
            handler(e) {
              var t;
              const i =
                null === (t = e.get(H.Lw).lastFocusedList) || void 0 === t
                  ? void 0
                  : t.getFocus();
              Array.isArray(i) &&
                i[0] instanceof h.WX &&
                be(e, (e) => e.revealReference(i[0]));
            },
          }),
          he.W.registerCommandAndKeybindingRule({
            id: 'openReferenceToSide',
            weight: 100,
            primary: 2051,
            mac: { primary: 259 },
            when: l.Ao.and(me, H.CQ),
            handler(e) {
              var t;
              const i =
                null === (t = e.get(H.Lw).lastFocusedList) || void 0 === t
                  ? void 0
                  : t.getFocus();
              Array.isArray(i) &&
                i[0] instanceof h.WX &&
                be(e, (e) => e.openReference(i[0], !0));
            },
          }),
          ge.P.registerCommand('openReference', (e) => {
            var t;
            const i =
              null === (t = e.get(H.Lw).lastFocusedList) || void 0 === t
                ? void 0
                : t.getFocus();
            Array.isArray(i) &&
              i[0] instanceof h.WX &&
              be(e, (e) => e.openReference(i[0], !1));
          });
      },
      71455: (e, t, i) => {
        'use strict';
        i.d(t, { WX: () => u, F2: () => f, oQ: () => p });
        var n = i(63580),
          r = i(4669),
          s = i(95935),
          o = i(5976),
          a = i(97295),
          l = i(44742),
          c = i(24314),
          d = i(43702),
          h = i(17301);
        class u {
          constructor(e, t, i, n, r) {
            (this.isProviderFirst = e),
              (this.parent = t),
              (this.uri = i),
              (this._range = n),
              (this._rangeCallback = r),
              (this.id = l.a.nextId());
          }
          get range() {
            return this._range;
          }
          set range(e) {
            (this._range = e), this._rangeCallback(this);
          }
          get ariaMessage() {
            return (0, n.N)(
              'aria.oneReference',
              'symbol in {0} on line {1} at column {2}',
              (0, s.EZ)(this.uri),
              this.range.startLineNumber,
              this.range.startColumn
            );
          }
        }
        class g {
          constructor(e) {
            this._modelReference = e;
          }
          dispose() {
            this._modelReference.dispose();
          }
          preview(e, t = 8) {
            const i = this._modelReference.object.textEditorModel;
            if (!i) return;
            const {
                startLineNumber: n,
                startColumn: r,
                endLineNumber: s,
                endColumn: o,
              } = e,
              a = i.getWordUntilPosition({ lineNumber: n, column: r - t }),
              l = new c.e(n, a.startColumn, n, r),
              d = new c.e(s, o, s, 1073741824),
              h = i.getValueInRange(l).replace(/^\s+/, ''),
              u = i.getValueInRange(e);
            return {
              value: h + u + i.getValueInRange(d).replace(/\s+$/, ''),
              highlight: { start: h.length, end: h.length + u.length },
            };
          }
        }
        class f {
          constructor(e, t) {
            (this.parent = e),
              (this.uri = t),
              (this.children = []),
              (this._previews = new d.Y9());
          }
          dispose() {
            (0, o.B9)(this._previews.values()), this._previews.clear();
          }
          getPreview(e) {
            return this._previews.get(e.uri);
          }
          get ariaMessage() {
            const e = this.children.length;
            return 1 === e
              ? (0, n.N)(
                  'aria.fileReferences.1',
                  '1 symbol in {0}, full path {1}',
                  (0, s.EZ)(this.uri),
                  this.uri.fsPath
                )
              : (0, n.N)(
                  'aria.fileReferences.N',
                  '{0} symbols in {1}, full path {2}',
                  e,
                  (0, s.EZ)(this.uri),
                  this.uri.fsPath
                );
          }
          resolve(e) {
            return (
              (t = this),
              (i = void 0),
              (r = function* () {
                if (0 !== this._previews.size) return this;
                for (let t of this.children)
                  if (!this._previews.has(t.uri))
                    try {
                      const i = yield e.createModelReference(t.uri);
                      this._previews.set(t.uri, new g(i));
                    } catch (e) {
                      (0, h.dL)(e);
                    }
                return this;
              }),
              new ((n = void 0) || (n = Promise))(function (e, s) {
                function o(e) {
                  try {
                    l(r.next(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function a(e) {
                  try {
                    l(r.throw(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof n
                        ? i
                        : new n(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((r = r.apply(t, i || [])).next());
              })
            );
            var t, i, n, r;
          }
        }
        class p {
          constructor(e, t) {
            (this._disposables = new o.SL()),
              (this.groups = []),
              (this.references = []),
              (this._onDidChangeReferenceRange = new r.Q5()),
              (this.onDidChangeReferenceRange = this._onDidChangeReferenceRange.event),
              (this._links = e),
              (this._title = t);
            const [i] = e;
            let n;
            e.sort(p._compareReferences);
            for (let t of e)
              if (
                ((n && s.SF.isEqual(n.uri, t.uri, !0)) ||
                  ((n = new f(this, t.uri)), this.groups.push(n)),
                0 === n.children.length ||
                  0 !==
                    p._compareReferences(t, n.children[n.children.length - 1]))
              ) {
                const e = new u(
                  i === t,
                  n,
                  t.uri,
                  t.targetSelectionRange || t.range,
                  (e) => this._onDidChangeReferenceRange.fire(e)
                );
                this.references.push(e), n.children.push(e);
              }
          }
          dispose() {
            (0, o.B9)(this.groups),
              this._disposables.dispose(),
              this._onDidChangeReferenceRange.dispose(),
              (this.groups.length = 0);
          }
          clone() {
            return new p(this._links, this._title);
          }
          get title() {
            return this._title;
          }
          get isEmpty() {
            return 0 === this.groups.length;
          }
          get ariaMessage() {
            return this.isEmpty
              ? (0, n.N)('aria.result.0', 'No results found')
              : 1 === this.references.length
              ? (0, n.N)(
                  'aria.result.1',
                  'Found 1 symbol in {0}',
                  this.references[0].uri.fsPath
                )
              : 1 === this.groups.length
              ? (0, n.N)(
                  'aria.result.n1',
                  'Found {0} symbols in {1}',
                  this.references.length,
                  this.groups[0].uri.fsPath
                )
              : (0, n.N)(
                  'aria.result.nm',
                  'Found {0} symbols in {1} files',
                  this.references.length,
                  this.groups.length
                );
          }
          nextOrPreviousReference(e, t) {
            let { parent: i } = e,
              n = i.children.indexOf(e),
              r = i.children.length,
              s = i.parent.groups.length;
            return 1 === s || (t && n + 1 < r) || (!t && n > 0)
              ? ((n = t ? (n + 1) % r : (n + r - 1) % r), i.children[n])
              : ((n = i.parent.groups.indexOf(i)),
                t
                  ? ((n = (n + 1) % s), i.parent.groups[n].children[0])
                  : ((n = (n + s - 1) % s),
                    i.parent.groups[n].children[
                      i.parent.groups[n].children.length - 1
                    ]));
          }
          nearestReference(e, t) {
            const i = this.references
              .map((i, n) => ({
                idx: n,
                prefixLen: a.Mh(i.uri.toString(), e.toString()),
                offsetDist:
                  100 * Math.abs(i.range.startLineNumber - t.lineNumber) +
                  Math.abs(i.range.startColumn - t.column),
              }))
              .sort((e, t) =>
                e.prefixLen > t.prefixLen
                  ? -1
                  : e.prefixLen < t.prefixLen
                  ? 1
                  : e.offsetDist < t.offsetDist
                  ? -1
                  : e.offsetDist > t.offsetDist
                  ? 1
                  : 0
              )[0];
            if (i) return this.references[i.idx];
          }
          referenceAt(e, t) {
            for (const i of this.references)
              if (
                i.uri.toString() === e.toString() &&
                c.e.containsPosition(i.range, t)
              )
                return i;
          }
          firstReference() {
            for (const e of this.references) if (e.isProviderFirst) return e;
            return this.references[0];
          }
          static _compareReferences(e, t) {
            return (
              s.SF.compare(e.uri, t.uri) ||
              c.e.compareRangesUsingStarts(e.range, t.range)
            );
          }
        }
      },
      25217: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { ModesHoverController: () => ue });
        var n = i(63580),
          r = i(22258),
          s = i(5976),
          o = i(16830),
          a = i(24314),
          l = i(29102),
          c = i(71531),
          d = i(65321),
          h = i(71050),
          u = i(41264),
          g = i(59365),
          f = i(50187),
          p = i(3411),
          m = i(43775),
          _ = i(83308),
          b = i(64494),
          v = i(4669);
        class y {
          constructor(e, t, i) {
            (this.presentationIndex = i),
              (this._onColorFlushed = new v.Q5()),
              (this.onColorFlushed = this._onColorFlushed.event),
              (this._onDidChangeColor = new v.Q5()),
              (this.onDidChangeColor = this._onDidChangeColor.event),
              (this._onDidChangePresentation = new v.Q5()),
              (this.onDidChangePresentation = this._onDidChangePresentation.event),
              (this.originalColor = e),
              (this._color = e),
              (this._colorPresentations = t);
          }
          get color() {
            return this._color;
          }
          set color(e) {
            this._color.equals(e) ||
              ((this._color = e), this._onDidChangeColor.fire(e));
          }
          get presentation() {
            return this.colorPresentations[this.presentationIndex];
          }
          get colorPresentations() {
            return this._colorPresentations;
          }
          set colorPresentations(e) {
            (this._colorPresentations = e),
              this.presentationIndex > e.length - 1 &&
                (this.presentationIndex = 0),
              this._onDidChangePresentation.fire(this.presentation);
          }
          selectNextColorPresentation() {
            (this.presentationIndex =
              (this.presentationIndex + 1) % this.colorPresentations.length),
              this.flushColor(),
              this._onDidChangePresentation.fire(this.presentation);
          }
          guessColorPresentation(e, t) {
            for (let e = 0; e < this.colorPresentations.length; e++)
              if (t.toLowerCase() === this.colorPresentations[e].label) {
                (this.presentationIndex = e),
                  this._onDidChangePresentation.fire(this.presentation);
                break;
              }
          }
          flushColor() {
            this._onColorFlushed.fire(this._color);
          }
        }
        var w = i(16268),
          C = i(57974),
          S = i(93794),
          k = i(73910),
          x = i(97781);
        const L = d.$;
        class M extends s.JT {
          constructor(e, t, i) {
            super(),
              (this.model = t),
              (this.domNode = L('.colorpicker-header')),
              d.R3(e, this.domNode),
              (this.pickedColorNode = d.R3(this.domNode, L('.picked-color')));
            const n = d.R3(this.domNode, L('.original-color'));
            (n.style.backgroundColor =
              u.Il.Format.CSS.format(this.model.originalColor) || ''),
              (this.backgroundColor =
                i.getColorTheme().getColor(k.yJ) || u.Il.white),
              this._register(
                (0, x.Ic)((e, t) => {
                  this.backgroundColor = e.getColor(k.yJ) || u.Il.white;
                })
              ),
              this._register(
                d.nm(this.pickedColorNode, d.tw.CLICK, () =>
                  this.model.selectNextColorPresentation()
                )
              ),
              this._register(
                d.nm(n, d.tw.CLICK, () => {
                  (this.model.color = this.model.originalColor),
                    this.model.flushColor();
                })
              ),
              this._register(t.onDidChangeColor(this.onDidChangeColor, this)),
              this._register(
                t.onDidChangePresentation(this.onDidChangePresentation, this)
              ),
              (this.pickedColorNode.style.backgroundColor =
                u.Il.Format.CSS.format(t.color) || ''),
              d.og(
                this.pickedColorNode,
                'light',
                t.color.rgba.a < 0.5
                  ? this.backgroundColor.isLighter()
                  : t.color.isLighter()
              );
          }
          onDidChangeColor(e) {
            (this.pickedColorNode.style.backgroundColor =
              u.Il.Format.CSS.format(e) || ''),
              d.og(
                this.pickedColorNode,
                'light',
                e.rgba.a < 0.5
                  ? this.backgroundColor.isLighter()
                  : e.isLighter()
              ),
              this.onDidChangePresentation();
          }
          onDidChangePresentation() {
            this.pickedColorNode.textContent = this.model.presentation
              ? this.model.presentation.label
              : '';
          }
        }
        class D extends s.JT {
          constructor(e, t, i) {
            super(),
              (this.model = t),
              (this.pixelRatio = i),
              (this.domNode = L('.colorpicker-body')),
              d.R3(e, this.domNode),
              (this.saturationBox = new N(
                this.domNode,
                this.model,
                this.pixelRatio
              )),
              this._register(this.saturationBox),
              this._register(
                this.saturationBox.onDidChange(
                  this.onDidSaturationValueChange,
                  this
                )
              ),
              this._register(
                this.saturationBox.onColorFlushed(this.flushColor, this)
              ),
              (this.opacityStrip = new T(this.domNode, this.model)),
              this._register(this.opacityStrip),
              this._register(
                this.opacityStrip.onDidChange(this.onDidOpacityChange, this)
              ),
              this._register(
                this.opacityStrip.onColorFlushed(this.flushColor, this)
              ),
              (this.hueStrip = new I(this.domNode, this.model)),
              this._register(this.hueStrip),
              this._register(
                this.hueStrip.onDidChange(this.onDidHueChange, this)
              ),
              this._register(
                this.hueStrip.onColorFlushed(this.flushColor, this)
              );
          }
          flushColor() {
            this.model.flushColor();
          }
          onDidSaturationValueChange({ s: e, v: t }) {
            const i = this.model.color.hsva;
            this.model.color = new u.Il(new u.tx(i.h, e, t, i.a));
          }
          onDidOpacityChange(e) {
            const t = this.model.color.hsva;
            this.model.color = new u.Il(new u.tx(t.h, t.s, t.v, e));
          }
          onDidHueChange(e) {
            const t = this.model.color.hsva,
              i = 360 * (1 - e);
            this.model.color = new u.Il(
              new u.tx(360 === i ? 0 : i, t.s, t.v, t.a)
            );
          }
          layout() {
            this.saturationBox.layout(),
              this.opacityStrip.layout(),
              this.hueStrip.layout();
          }
        }
        class N extends s.JT {
          constructor(e, t, i) {
            super(),
              (this.model = t),
              (this.pixelRatio = i),
              (this._onDidChange = new v.Q5()),
              (this.onDidChange = this._onDidChange.event),
              (this._onColorFlushed = new v.Q5()),
              (this.onColorFlushed = this._onColorFlushed.event),
              (this.domNode = L('.saturation-wrap')),
              d.R3(e, this.domNode),
              (this.canvas = document.createElement('canvas')),
              (this.canvas.className = 'saturation-box'),
              d.R3(this.domNode, this.canvas),
              (this.selection = L('.saturation-selection')),
              d.R3(this.domNode, this.selection),
              this.layout(),
              this._register(d.Lo(this.domNode, (e) => this.onMouseDown(e))),
              this._register(
                this.model.onDidChangeColor(this.onDidChangeColor, this)
              ),
              (this.monitor = null);
          }
          onMouseDown(e) {
            this.monitor = this._register(new C.Z());
            const t = d.i(this.domNode);
            e.target !== this.selection &&
              this.onDidChangePosition(e.offsetX, e.offsetY),
              this.monitor.startMonitoring(
                e.target,
                e.buttons,
                C.e,
                (e) =>
                  this.onDidChangePosition(e.posx - t.left, e.posy - t.top),
                () => null
              );
            const i = d.qV(
              document,
              () => {
                this._onColorFlushed.fire(),
                  i.dispose(),
                  this.monitor &&
                    (this.monitor.stopMonitoring(!0), (this.monitor = null));
              },
              !0
            );
          }
          onDidChangePosition(e, t) {
            const i = Math.max(0, Math.min(1, e / this.width)),
              n = Math.max(0, Math.min(1, 1 - t / this.height));
            this.paintSelection(i, n), this._onDidChange.fire({ s: i, v: n });
          }
          layout() {
            (this.width = this.domNode.offsetWidth),
              (this.height = this.domNode.offsetHeight),
              (this.canvas.width = this.width * this.pixelRatio),
              (this.canvas.height = this.height * this.pixelRatio),
              this.paint();
            const e = this.model.color.hsva;
            this.paintSelection(e.s, e.v);
          }
          paint() {
            const e = this.model.color.hsva,
              t = new u.Il(new u.tx(e.h, 1, 1, 1)),
              i = this.canvas.getContext('2d'),
              n = i.createLinearGradient(0, 0, this.canvas.width, 0);
            n.addColorStop(0, 'rgba(255, 255, 255, 1)'),
              n.addColorStop(0.5, 'rgba(255, 255, 255, 0.5)'),
              n.addColorStop(1, 'rgba(255, 255, 255, 0)');
            const r = i.createLinearGradient(0, 0, 0, this.canvas.height);
            r.addColorStop(0, 'rgba(0, 0, 0, 0)'),
              r.addColorStop(1, 'rgba(0, 0, 0, 1)'),
              i.rect(0, 0, this.canvas.width, this.canvas.height),
              (i.fillStyle = u.Il.Format.CSS.format(t)),
              i.fill(),
              (i.fillStyle = n),
              i.fill(),
              (i.fillStyle = r),
              i.fill();
          }
          paintSelection(e, t) {
            (this.selection.style.left = e * this.width + 'px'),
              (this.selection.style.top = this.height - t * this.height + 'px');
          }
          onDidChangeColor() {
            (this.monitor && this.monitor.isMonitoring()) || this.paint();
          }
        }
        class E extends s.JT {
          constructor(e, t) {
            super(),
              (this.model = t),
              (this._onDidChange = new v.Q5()),
              (this.onDidChange = this._onDidChange.event),
              (this._onColorFlushed = new v.Q5()),
              (this.onColorFlushed = this._onColorFlushed.event),
              (this.domNode = d.R3(e, L('.strip'))),
              (this.overlay = d.R3(this.domNode, L('.overlay'))),
              (this.slider = d.R3(this.domNode, L('.slider'))),
              (this.slider.style.top = '0px'),
              this._register(d.Lo(this.domNode, (e) => this.onMouseDown(e))),
              this.layout();
          }
          layout() {
            this.height = this.domNode.offsetHeight - this.slider.offsetHeight;
            const e = this.getValue(this.model.color);
            this.updateSliderPosition(e);
          }
          onMouseDown(e) {
            const t = this._register(new C.Z()),
              i = d.i(this.domNode);
            d.cn(this.domNode, 'grabbing'),
              e.target !== this.slider && this.onDidChangeTop(e.offsetY),
              t.startMonitoring(
                e.target,
                e.buttons,
                C.e,
                (e) => this.onDidChangeTop(e.posy - i.top),
                () => null
              );
            const n = d.qV(
              document,
              () => {
                this._onColorFlushed.fire(),
                  n.dispose(),
                  t.stopMonitoring(!0),
                  d.IV(this.domNode, 'grabbing');
              },
              !0
            );
          }
          onDidChangeTop(e) {
            const t = Math.max(0, Math.min(1, 1 - e / this.height));
            this.updateSliderPosition(t), this._onDidChange.fire(t);
          }
          updateSliderPosition(e) {
            this.slider.style.top = (1 - e) * this.height + 'px';
          }
        }
        class T extends E {
          constructor(e, t) {
            super(e, t),
              d.cn(this.domNode, 'opacity-strip'),
              this._register(t.onDidChangeColor(this.onDidChangeColor, this)),
              this.onDidChangeColor(this.model.color);
          }
          onDidChangeColor(e) {
            const { r: t, g: i, b: n } = e.rgba,
              r = new u.Il(new u.VS(t, i, n, 1)),
              s = new u.Il(new u.VS(t, i, n, 0));
            this.overlay.style.background = `linear-gradient(to bottom, ${r} 0%, ${s} 100%)`;
          }
          getValue(e) {
            return e.hsva.a;
          }
        }
        class I extends E {
          constructor(e, t) {
            super(e, t), d.cn(this.domNode, 'hue-strip');
          }
          getValue(e) {
            return 1 - e.hsva.h / 360;
          }
        }
        class O extends S.$ {
          constructor(e, t, i, n) {
            super(),
              (this.model = t),
              (this.pixelRatio = i),
              this._register((0, w.fX)(() => this.layout()));
            const r = L('.colorpicker-widget');
            e.appendChild(r);
            const s = new M(r, this.model, n);
            (this.body = new D(r, this.model, this.pixelRatio)),
              this._register(s),
              this._register(this.body);
          }
          layout() {
            this.body.layout();
          }
        }
        var A = i(9488),
          R = i(17301);
        function P(e, t, i) {
          const n = m.xp.ordered(e).map((n) =>
            Promise.resolve(n.provideHover(e, t, i)).then(
              (e) =>
                e &&
                (function (e) {
                  const t = void 0 !== e.range,
                    i =
                      void 0 !== e.contents &&
                      e.contents &&
                      e.contents.length > 0;
                  return t && i;
                })(e)
                  ? e
                  : void 0,
              (e) => {
                (0, R.Cp)(e);
              }
            )
          );
          return Promise.all(n).then(A.kX);
        }
        (0, o.sb)('_executeHoverProvider', (e, t) => P(e, t, h.T.None));
        var F = i(15393);
        class B {
          constructor(e, t, i, n, r) {
            (this._computer = e),
              (this._state = 0),
              (this._hoverTime = r),
              (this._firstWaitScheduler = new F.pY(
                () => this._triggerAsyncComputation(),
                0
              )),
              (this._secondWaitScheduler = new F.pY(
                () => this._triggerSyncComputation(),
                0
              )),
              (this._loadingMessageScheduler = new F.pY(
                () => this._showLoadingMessage(),
                0
              )),
              (this._asyncComputationPromise = null),
              (this._asyncComputationPromiseDone = !1),
              (this._completeCallback = t),
              (this._errorCallback = i),
              (this._progressCallback = n);
          }
          setHoverTime(e) {
            this._hoverTime = e;
          }
          _firstWaitTime() {
            return this._hoverTime / 2;
          }
          _secondWaitTime() {
            return this._hoverTime / 2;
          }
          _loadingMessageTime() {
            return 3 * this._hoverTime;
          }
          _triggerAsyncComputation() {
            (this._state = 2),
              this._secondWaitScheduler.schedule(this._secondWaitTime()),
              this._computer.computeAsync
                ? ((this._asyncComputationPromiseDone = !1),
                  (this._asyncComputationPromise = (0, F.PG)((e) =>
                    this._computer.computeAsync(e)
                  )),
                  this._asyncComputationPromise.then(
                    (e) => {
                      (this._asyncComputationPromiseDone = !0),
                        this._withAsyncResult(e);
                    },
                    (e) => this._onError(e)
                  ))
                : (this._asyncComputationPromiseDone = !0);
          }
          _triggerSyncComputation() {
            this._computer.computeSync &&
              this._computer.onResult(this._computer.computeSync(), !0),
              this._asyncComputationPromiseDone
                ? ((this._state = 0),
                  this._onComplete(this._computer.getResult()))
                : ((this._state = 3),
                  this._onProgress(this._computer.getResult()));
          }
          _showLoadingMessage() {
            3 === this._state &&
              this._onProgress(this._computer.getResultWithLoadingMessage());
          }
          _withAsyncResult(e) {
            e && this._computer.onResult(e, !1),
              3 === this._state &&
                ((this._state = 0),
                this._onComplete(this._computer.getResult()));
          }
          _onComplete(e) {
            this._completeCallback(e);
          }
          _onError(e) {
            this._errorCallback ? this._errorCallback(e) : (0, R.dL)(e);
          }
          _onProgress(e) {
            this._progressCallback(e);
          }
          start(e) {
            if (0 === e)
              0 === this._state &&
                ((this._state = 1),
                this._firstWaitScheduler.schedule(this._firstWaitTime()),
                this._loadingMessageScheduler.schedule(
                  this._loadingMessageTime()
                ));
            else
              switch (this._state) {
                case 0:
                  this._triggerAsyncComputation(),
                    this._secondWaitScheduler.cancel(),
                    this._triggerSyncComputation();
                  break;
                case 2:
                  this._secondWaitScheduler.cancel(),
                    this._triggerSyncComputation();
              }
          }
          cancel() {
            this._loadingMessageScheduler.cancel(),
              1 === this._state && this._firstWaitScheduler.cancel(),
              2 === this._state &&
                (this._secondWaitScheduler.cancel(),
                this._asyncComputationPromise &&
                  (this._asyncComputationPromise.cancel(),
                  (this._asyncComputationPromise = null))),
              3 === this._state &&
                this._asyncComputationPromise &&
                (this._asyncComputationPromise.cancel(),
                (this._asyncComputationPromise = null)),
              (this._state = 0);
          }
        }
        var W = i(9802);
        const Y = d.$;
        class H extends s.JT {
          constructor() {
            super(),
              (this.containerDomNode = document.createElement('div')),
              (this.containerDomNode.className = 'monaco-hover'),
              (this.containerDomNode.tabIndex = 0),
              this.containerDomNode.setAttribute('role', 'tooltip'),
              (this.contentsDomNode = document.createElement('div')),
              (this.contentsDomNode.className = 'monaco-hover-content'),
              (this._scrollbar = this._register(
                new W.s$(this.contentsDomNode, {})
              )),
              this.containerDomNode.appendChild(this._scrollbar.getDomNode());
          }
          onContentsChanged() {
            this._scrollbar.scanDomNode();
          }
        }
        class j extends S.$ {
          constructor(e, t, i, n) {
            super(),
              (this._hoverVisibleKey = i),
              (this._keybindingService = n),
              (this.allowEditorOverflow = !0),
              (this._hover = this._register(new H())),
              (this._id = e),
              (this._editor = t),
              (this._isVisible = !1),
              (this._stoleFocus = !1),
              this.onkeydown(this._hover.containerDomNode, (e) => {
                e.equals(9) && this.hide();
              }),
              this._register(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(36) && this.updateFont();
                })
              ),
              this._editor.onDidLayoutChange((e) => this.layout()),
              this.layout(),
              this._editor.addContentWidget(this),
              (this._showAtPosition = null),
              (this._showAtRange = null),
              (this._stoleFocus = !1);
          }
          get isVisible() {
            return this._isVisible;
          }
          set isVisible(e) {
            (this._isVisible = e),
              d.og(this._hover.containerDomNode, 'hidden', !this._isVisible);
          }
          getId() {
            return this._id;
          }
          getDomNode() {
            return this._hover.containerDomNode;
          }
          showAt(e, t, i) {
            (this._showAtPosition = e),
              (this._showAtRange = t),
              this._hoverVisibleKey.set(!0),
              (this.isVisible = !0),
              this._editor.layoutContentWidget(this),
              this._editor.render(),
              (this._stoleFocus = i),
              i && this._hover.containerDomNode.focus();
          }
          hide() {
            this.isVisible &&
              (setTimeout(() => {
                this.isVisible || this._hoverVisibleKey.set(!1);
              }, 0),
              (this.isVisible = !1),
              this._editor.layoutContentWidget(this),
              this._stoleFocus && this._editor.focus());
          }
          getPosition() {
            return this.isVisible
              ? {
                  position: this._showAtPosition,
                  range: this._showAtRange,
                  preference: [1, 2],
                }
              : null;
          }
          dispose() {
            this._editor.removeContentWidget(this), super.dispose();
          }
          updateFont() {
            Array.prototype.slice
              .call(this._hover.contentsDomNode.getElementsByClassName('code'))
              .forEach((e) => this._editor.applyFontInfo(e));
          }
          updateContents(e) {
            (this._hover.contentsDomNode.textContent = ''),
              this._hover.contentsDomNode.appendChild(e),
              this.updateFont(),
              this._editor.layoutContentWidget(this),
              this._hover.onContentsChanged();
          }
          _renderAction(e, t) {
            const i = this._keybindingService.lookupKeybinding(t.commandId);
            return (function (e, t, i) {
              const n = d.R3(e, Y('div.action-container')),
                r = d.R3(n, Y('a.action'));
              return (
                r.setAttribute('href', '#'),
                r.setAttribute('role', 'button'),
                t.iconClass && d.R3(r, Y(`span.icon.${t.iconClass}`)),
                (d.R3(r, Y('span')).textContent = i
                  ? `${t.label} (${i})`
                  : t.label),
                d.nm(n, d.tw.CLICK, (e) => {
                  e.stopPropagation(), e.preventDefault(), t.run(n);
                })
              );
            })(e, t, i ? i.getLabel() : null);
          }
          layout() {
            const e = Math.max(this._editor.getLayoutInfo().height / 4, 250),
              { fontSize: t, lineHeight: i } = this._editor.getOption(36);
            (this._hover.contentsDomNode.style.fontSize = `${t}px`),
              (this._hover.contentsDomNode.style.lineHeight = `${i}px`),
              (this._hover.contentsDomNode.style.maxHeight = `${e}px`),
              (this._hover.contentsDomNode.style.maxWidth = `${Math.max(
                0.66 * this._editor.getLayoutInfo().width,
                500
              )}px`);
          }
        }
        class V extends S.$ {
          constructor(e, t) {
            super(),
              (this._id = e),
              (this._editor = t),
              (this._isVisible = !1),
              (this._domNode = document.createElement('div')),
              (this._domNode.className = 'monaco-hover hidden'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              this._domNode.setAttribute('role', 'tooltip'),
              (this._showAtLineNumber = -1),
              this._register(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(36) && this.updateFont();
                })
              ),
              this._editor.addOverlayWidget(this);
          }
          get isVisible() {
            return this._isVisible;
          }
          set isVisible(e) {
            (this._isVisible = e),
              d.og(this._domNode, 'hidden', !this._isVisible);
          }
          getId() {
            return this._id;
          }
          getDomNode() {
            return this._domNode;
          }
          showAt(e) {
            (this._showAtLineNumber = e),
              this.isVisible || (this.isVisible = !0);
            const t = this._editor.getLayoutInfo(),
              i = this._editor.getTopForLineNumber(this._showAtLineNumber),
              n = this._editor.getScrollTop(),
              r = this._editor.getOption(51),
              s = i - n - (this._domNode.clientHeight - r) / 2;
            (this._domNode.style.left = `${
              t.glyphMarginLeft + t.glyphMarginWidth
            }px`),
              (this._domNode.style.top = `${Math.max(Math.round(s), 0)}px`);
          }
          hide() {
            this.isVisible && (this.isVisible = !1);
          }
          getPosition() {
            return null;
          }
          dispose() {
            this._editor.removeOverlayWidget(this), super.dispose();
          }
          updateFont() {
            [
              ...Array.prototype.slice.call(
                this._domNode.getElementsByTagName('code')
              ),
              ...Array.prototype.slice.call(
                this._domNode.getElementsByClassName('code')
              ),
            ].forEach((e) => this._editor.applyFontInfo(e));
          }
          updateContents(e) {
            (this._domNode.textContent = ''),
              this._domNode.appendChild(e),
              this.updateFont();
          }
        }
        var z = i(53335),
          U = i(98674),
          $ = i(95935),
          K = i(50988),
          q = i(42698),
          G = i(31907),
          Z = i(23674),
          J = i(89532),
          Q = i(90535);
        const X = d.$;
        class ee {
          constructor(e, t, i) {
            (this.range = e), (this.color = t), (this.provider = i);
          }
        }
        class te {
          constructor(e, t) {
            (this.range = e), (this.marker = t);
          }
        }
        class ie {
          constructor(e, t) {
            (this._markerDecorationsService = t),
              (this._editor = e),
              (this._result = []);
          }
          setRange(e) {
            (this._range = e), (this._result = []);
          }
          clearResult() {
            this._result = [];
          }
          computeAsync(e) {
            if (!this._editor.hasModel() || !this._range)
              return Promise.resolve([]);
            const t = this._editor.getModel();
            return m.xp.has(t)
              ? P(
                  t,
                  new f.L(this._range.startLineNumber, this._range.startColumn),
                  e
                )
              : Promise.resolve([]);
          }
          computeSync() {
            if (!this._editor.hasModel() || !this._range) return [];
            const e = this._editor.getModel(),
              t = this._range.startLineNumber;
            if (t > this._editor.getModel().getLineCount()) return [];
            const i = b.ColorDetector.get(this._editor),
              n = e.getLineMaxColumn(t),
              r = this._editor.getLineDecorations(t);
            let s = !1;
            const o = this._range,
              l = r.map((r) => {
                const l =
                    r.range.startLineNumber === t ? r.range.startColumn : 1,
                  c = r.range.endLineNumber === t ? r.range.endColumn : n;
                if (l > o.startColumn || o.endColumn > c) return null;
                const d = new a.e(o.startLineNumber, l, o.startLineNumber, c),
                  h = this._markerDecorationsService.getMarker(e, r);
                if (h) return new te(d, h);
                const u = i.getColorData(r.range.getStartPosition());
                if (!s && u) {
                  s = !0;
                  const { color: e, range: t } = u.colorInfo;
                  return new ee(t, e, u.provider);
                }
                return (0, g.CP)(r.options.hoverMessage)
                  ? null
                  : {
                      contents: r.options.hoverMessage
                        ? (0, A._2)(r.options.hoverMessage)
                        : [],
                      range: d,
                    };
              });
            return (0, A.kX)(l);
          }
          onResult(e, t) {
            this._result = t
              ? e.concat(
                  this._result.sort((e, t) =>
                    e instanceof ee ? -1 : t instanceof ee ? 1 : 0
                  )
                )
              : this._result.concat(e);
          }
          getResult() {
            return this._result.slice(0);
          }
          getResultWithLoadingMessage() {
            return this._result.slice(0).concat([this._getLoadingMessage()]);
          }
          _getLoadingMessage() {
            return {
              range: this._range,
              contents: [
                new g.W5().appendText(
                  n.N('modesContentHover.loading', 'Loading...')
                ),
              ],
            };
          }
        }
        const ne = { type: 2, filter: { include: J.yN.QuickFix } };
        class re extends j {
          constructor(e, t, i, n, r, o, a = K.SW) {
            super(re.ID, e, t, n),
              (this._themeService = r),
              (this._modeService = o),
              (this._openerService = a),
              (this.renderDisposable = this._register(new s.XK())),
              (this._messages = []),
              (this._lastRange = null),
              (this._computer = new ie(this._editor, i)),
              (this._highlightDecorations = []),
              (this._isChangingDecorations = !1),
              (this._shouldFocus = !1),
              (this._colorPicker = null),
              (this._hoverOperation = new B(
                this._computer,
                (e) => this._withResult(e, !0),
                null,
                (e) => this._withResult(e, !1),
                this._editor.getOption(46).delay
              )),
              this._register(
                d.mu(this.getDomNode(), d.tw.FOCUS, () => {
                  this._colorPicker &&
                    d.cn(this.getDomNode(), 'colorpicker-hover');
                })
              ),
              this._register(
                d.mu(this.getDomNode(), d.tw.BLUR, () => {
                  d.IV(this.getDomNode(), 'colorpicker-hover');
                })
              ),
              this._register(
                e.onDidChangeConfiguration((e) => {
                  this._hoverOperation.setHoverTime(
                    this._editor.getOption(46).delay
                  );
                })
              ),
              this._register(
                m.RW.onDidChange((e) => {
                  this.isVisible &&
                    this._lastRange &&
                    this._messages.length > 0 &&
                    ((this._hover.contentsDomNode.textContent = ''),
                    this._renderMessages(this._lastRange, this._messages));
                })
              );
          }
          dispose() {
            this._hoverOperation.cancel(), super.dispose();
          }
          onModelDecorationsChanged() {
            this._isChangingDecorations ||
              (this.isVisible &&
                (this._hoverOperation.cancel(),
                this._computer.clearResult(),
                this._colorPicker || this._hoverOperation.start(0)));
          }
          startShowingAt(e, t, i) {
            if (!this._lastRange || !this._lastRange.equalsRange(e)) {
              if ((this._hoverOperation.cancel(), this.isVisible))
                if (
                  this._showAtPosition &&
                  this._showAtPosition.lineNumber === e.startLineNumber
                ) {
                  let t = [];
                  for (let i = 0, n = this._messages.length; i < n; i++) {
                    const n = this._messages[i],
                      r = n.range;
                    r &&
                      r.startColumn <= e.startColumn &&
                      r.endColumn >= e.endColumn &&
                      t.push(n);
                  }
                  if (t.length > 0) {
                    if (
                      (function (e, t) {
                        if ((!e && t) || (e && !t) || e.length !== t.length)
                          return !1;
                        for (let i = 0; i < e.length; i++) {
                          const n = e[i],
                            r = t[i];
                          if (n instanceof te && r instanceof te)
                            return (
                              U.H0.makeKey(n.marker) === U.H0.makeKey(r.marker)
                            );
                          if (n instanceof ee || r instanceof ee) return !1;
                          if (n instanceof te || r instanceof te) return !1;
                          if (!(0, g.W6)(n.contents, r.contents)) return !1;
                        }
                        return !0;
                      })(t, this._messages)
                    )
                      return;
                    this._renderMessages(e, t);
                  } else this.hide();
                } else this.hide();
              (this._lastRange = e),
                this._computer.setRange(e),
                (this._shouldFocus = i),
                this._hoverOperation.start(t);
            }
          }
          hide() {
            (this._lastRange = null),
              this._hoverOperation.cancel(),
              super.hide(),
              (this._isChangingDecorations = !0),
              (this._highlightDecorations = this._editor.deltaDecorations(
                this._highlightDecorations,
                []
              )),
              (this._isChangingDecorations = !1),
              this.renderDisposable.clear(),
              (this._colorPicker = null);
          }
          isColorPickerVisible() {
            return !!this._colorPicker;
          }
          _withResult(e, t) {
            (this._messages = e),
              this._lastRange && this._messages.length > 0
                ? this._renderMessages(this._lastRange, this._messages)
                : t && this.hide();
          }
          _renderMessages(e, t) {
            this.renderDisposable.dispose(), (this._colorPicker = null);
            let i = 1073741824,
              n = t[0].range ? a.e.lift(t[0].range) : null,
              r = document.createDocumentFragment(),
              o = !0,
              l = !1;
            const c = new s.SL(),
              p = [];
            if (
              (t.forEach((e) => {
                if (e.range)
                  if (
                    ((i = Math.min(i, e.range.startColumn)),
                    (n = n ? a.e.plusRange(n, e.range) : a.e.lift(e.range)),
                    e instanceof ee)
                  ) {
                    l = !0;
                    const { red: t, green: i, blue: n, alpha: o } = e.color,
                      d = new u.VS(
                        Math.round(255 * t),
                        Math.round(255 * i),
                        Math.round(255 * n),
                        o
                      ),
                      g = new u.Il(d);
                    if (!this._editor.hasModel()) return;
                    const f = this._editor.getModel();
                    let p = new a.e(
                        e.range.startLineNumber,
                        e.range.startColumn,
                        e.range.endLineNumber,
                        e.range.endColumn
                      ),
                      m = { range: e.range, color: e.color };
                    const b = new y(g, [], 0),
                      v = new O(
                        r,
                        b,
                        this._editor.getOption(115),
                        this._themeService
                      );
                    (0, _.R)(f, m, e.provider, h.T.None).then((t) => {
                      if (
                        ((b.colorPresentations = t || []),
                        !this._editor.hasModel())
                      )
                        return;
                      const i = this._editor
                        .getModel()
                        .getValueInRange(e.range);
                      b.guessColorPresentation(g, i);
                      const n = () => {
                          let e, t;
                          b.presentation.textEdit
                            ? ((e = [b.presentation.textEdit]),
                              (t = new a.e(
                                b.presentation.textEdit.range.startLineNumber,
                                b.presentation.textEdit.range.startColumn,
                                b.presentation.textEdit.range.endLineNumber,
                                b.presentation.textEdit.range.endColumn
                              )),
                              (t = t.setEndPosition(
                                t.endLineNumber,
                                t.startColumn +
                                  b.presentation.textEdit.text.length
                              )))
                            : ((e = [
                                {
                                  identifier: null,
                                  range: p,
                                  text: b.presentation.label,
                                  forceMoveMarkers: !1,
                                },
                              ]),
                              (t = p.setEndPosition(
                                p.endLineNumber,
                                p.startColumn + b.presentation.label.length
                              ))),
                            this._editor.pushUndoStop(),
                            this._editor.executeEdits('colorpicker', e),
                            b.presentation.additionalTextEdits &&
                              ((e = [...b.presentation.additionalTextEdits]),
                              this._editor.executeEdits('colorpicker', e),
                              this.hide()),
                            this._editor.pushUndoStop(),
                            (p = t);
                        },
                        o = (t) =>
                          (0, _.R)(
                            f,
                            {
                              range: p,
                              color: {
                                red: t.rgba.r / 255,
                                green: t.rgba.g / 255,
                                blue: t.rgba.b / 255,
                                alpha: t.rgba.a,
                              },
                            },
                            e.provider,
                            h.T.None
                          ).then((e) => {
                            b.colorPresentations = e || [];
                          }),
                        l = b.onColorFlushed((e) => {
                          o(e).then(n);
                        }),
                        d = b.onDidChangeColor(o);
                      (this._colorPicker = v),
                        this.showAt(p.getStartPosition(), p, this._shouldFocus),
                        this.updateContents(r),
                        this._colorPicker.layout(),
                        (this.renderDisposable.value = (0, s.F8)(l, d, v, c));
                    });
                  } else
                    e instanceof te
                      ? (p.push(e), (o = !1))
                      : e.contents
                          .filter((e) => !(0, g.CP)(e))
                          .forEach((e) => {
                            const t = X('div.hover-row.markdown-hover'),
                              i = d.R3(t, X('div.hover-contents')),
                              n = c.add(
                                new z.$(
                                  this._editor,
                                  this._modeService,
                                  this._openerService
                                )
                              );
                            c.add(
                              n.onDidRenderCodeBlock(() => {
                                (i.className =
                                  'hover-contents code-hover-contents'),
                                  this._hover.onContentsChanged();
                              })
                            );
                            const s = c.add(n.render(e));
                            i.appendChild(s.element),
                              r.appendChild(t),
                              (o = !1);
                          });
              }),
              p.length)
            ) {
              p.forEach((e) => r.appendChild(this.renderMarkerHover(e)));
              const e =
                1 === p.length
                  ? p[0]
                  : p.sort((e, t) =>
                      U.ZL.compare(e.marker.severity, t.marker.severity)
                    )[0];
              r.appendChild(this.renderMarkerStatusbar(e));
            }
            l ||
              o ||
              (this.showAt(new f.L(e.startLineNumber, i), n, this._shouldFocus),
              this.updateContents(r)),
              (this._isChangingDecorations = !0),
              (this._highlightDecorations = this._editor.deltaDecorations(
                this._highlightDecorations,
                n ? [{ range: n, options: re._DECORATION_OPTIONS }] : []
              )),
              (this._isChangingDecorations = !1);
          }
          renderMarkerHover(e) {
            const t = X('div.hover-row'),
              i = d.R3(t, X('div.marker.hover-contents')),
              {
                source: n,
                message: r,
                code: s,
                relatedInformation: o,
              } = e.marker;
            this._editor.applyFontInfo(i);
            const a = d.R3(i, X('span'));
            if (((a.style.whiteSpace = 'pre-wrap'), (a.innerText = r), n || s))
              if (s && 'string' != typeof s) {
                const e = X('span');
                n && (d.R3(e, X('span')).innerText = n),
                  (this._codeLink = d.R3(e, X('a.code-link'))),
                  this._codeLink.setAttribute('href', s.target.toString()),
                  (this._codeLink.onclick = (e) => {
                    this._openerService.open(s.target),
                      e.preventDefault(),
                      e.stopPropagation();
                  }),
                  (d.R3(this._codeLink, X('span')).innerText = s.value);
                const t = d.R3(i, e);
                (t.style.opacity = '0.6'), (t.style.paddingLeft = '6px');
              } else {
                const e = d.R3(i, X('span'));
                (e.style.opacity = '0.6'),
                  (e.style.paddingLeft = '6px'),
                  (e.innerText = n && s ? `${n}(${s})` : n || `(${s})`);
              }
            if ((0, A.Of)(o))
              for (const {
                message: e,
                resource: t,
                startLineNumber: n,
                startColumn: r,
              } of o) {
                const s = d.R3(i, X('div'));
                s.style.marginTop = '8px';
                const o = d.R3(s, X('a'));
                (o.innerText = `${(0, $.EZ)(t)}(${n}, ${r}): `),
                  (o.style.cursor = 'pointer'),
                  (o.onclick = (e) => {
                    e.stopPropagation(),
                      e.preventDefault(),
                      this._openerService &&
                        this._openerService
                          .open(t.with({ fragment: `${n},${r}` }), {
                            fromUserGesture: !0,
                          })
                          .catch(R.dL);
                  });
                const a = d.R3(s, X('span'));
                (a.innerText = e), this._editor.applyFontInfo(a);
              }
            return t;
          }
          renderMarkerStatusbar(e) {
            const t = X('div.hover-row.status-bar'),
              i = new s.SL(),
              r = d.R3(t, X('div.actions'));
            if (
              ((e.marker.severity !== U.ZL.Error &&
                e.marker.severity !== U.ZL.Warning &&
                e.marker.severity !== U.ZL.Info) ||
                i.add(
                  this._renderAction(r, {
                    label: n.N('peek problem', 'Peek Problem'),
                    commandId: q.NextMarkerAction.ID,
                    run: () => {
                      this.hide(),
                        q.MarkerController.get(this._editor).showAtMarker(
                          e.marker
                        ),
                        this._editor.focus();
                    },
                  })
                ),
              !this._editor.getOption(72))
            ) {
              const t = d.R3(r, X('div'));
              (t.style.opacity = '0'),
                (t.style.transition = 'opacity 0.2s'),
                setTimeout(() => (t.style.opacity = '1'), 200),
                (t.textContent = n.N(
                  'checkingForQuickFixes',
                  'Checking for quick fixes...'
                )),
                i.add((0, s.OF)(() => t.remove()));
              const o = this.getCodeActions(e.marker);
              i.add((0, s.OF)(() => o.cancel())),
                o.then((e) => {
                  if (
                    ((t.style.transition = ''),
                    (t.style.opacity = '1'),
                    !e.validActions.length)
                  )
                    return (
                      e.dispose(),
                      void (t.textContent = n.N(
                        'noQuickFixes',
                        'No quick fixes available'
                      ))
                    );
                  t.remove();
                  let o = !1;
                  i.add(
                    (0, s.OF)(() => {
                      o || e.dispose();
                    })
                  ),
                    i.add(
                      this._renderAction(r, {
                        label: n.N('quick fixes', 'Quick Fix...'),
                        commandId: Z.E7.Id,
                        run: (t) => {
                          o = !0;
                          const i = Z.pY.get(this._editor),
                            n = d.i(t);
                          this.hide(),
                            i.showCodeActions(ne, e, {
                              x: n.left + 6,
                              y: n.top + n.height + 6,
                            });
                        },
                      })
                    );
                });
            }
            return (this.renderDisposable.value = i), t;
          }
          getCodeActions(e) {
            return (0, F.PG)((t) =>
              (0, G.aI)(
                this._editor.getModel(),
                new a.e(
                  e.startLineNumber,
                  e.startColumn,
                  e.endLineNumber,
                  e.endColumn
                ),
                ne,
                Q.E.None,
                t
              )
            );
          }
        }
        (re.ID = 'editor.contrib.modesContentHoverWidget'),
          (re._DECORATION_OPTIONS = p.qx.register({
            className: 'hoverHighlight',
          })),
          (0, x.Ic)((e, t) => {
            const i = e.getColor(k.ur);
            i &&
              t.addRule(
                `.monaco-hover .hover-contents a.code-link span:hover { color: ${i}; }`
              );
          });
        class se {
          constructor(e) {
            (this._editor = e), (this._lineNumber = -1), (this._result = []);
          }
          setLineNumber(e) {
            (this._lineNumber = e), (this._result = []);
          }
          clearResult() {
            this._result = [];
          }
          computeSync() {
            const e = (e) => ({ value: e }),
              t = this._editor.getLineDecorations(this._lineNumber),
              i = [];
            if (!t) return i;
            for (const n of t) {
              if (!n.options.glyphMarginClassName) continue;
              const t = n.options.glyphMarginHoverMessage;
              t && !(0, g.CP)(t) && i.push(...(0, A._2)(t).map(e));
            }
            return i;
          }
          onResult(e, t) {
            this._result = this._result.concat(e);
          }
          getResult() {
            return this._result;
          }
          getResultWithLoadingMessage() {
            return this.getResult();
          }
        }
        class oe extends V {
          constructor(e, t, i = K.SW) {
            super(oe.ID, e),
              (this._renderDisposeables = this._register(new s.SL())),
              (this._messages = []),
              (this._lastLineNumber = -1),
              (this._markdownRenderer = this._register(
                new z.$(this._editor, t, i)
              )),
              (this._computer = new se(this._editor)),
              (this._hoverOperation = new B(
                this._computer,
                (e) => this._withResult(e),
                void 0,
                (e) => this._withResult(e),
                300
              ));
          }
          dispose() {
            this._hoverOperation.cancel(), super.dispose();
          }
          onModelDecorationsChanged() {
            this.isVisible &&
              (this._hoverOperation.cancel(),
              this._computer.clearResult(),
              this._hoverOperation.start(0));
          }
          startShowingAt(e) {
            this._lastLineNumber !== e &&
              (this._hoverOperation.cancel(),
              this.hide(),
              (this._lastLineNumber = e),
              this._computer.setLineNumber(e),
              this._hoverOperation.start(0));
          }
          hide() {
            (this._lastLineNumber = -1),
              this._hoverOperation.cancel(),
              super.hide();
          }
          _withResult(e) {
            (this._messages = e),
              this._messages.length > 0
                ? this._renderMessages(this._lastLineNumber, this._messages)
                : this.hide();
          }
          _renderMessages(e, t) {
            this._renderDisposeables.clear();
            const i = document.createDocumentFragment();
            for (const e of t) {
              const t = this._markdownRenderer.render(e.value);
              this._renderDisposeables.add(t),
                i.appendChild((0, d.$)('div.hover-row', void 0, t.element));
            }
            this.updateContents(i), this.showAt(e);
          }
        }
        oe.ID = 'editor.contrib.modesGlyphHoverWidget';
        var ae = i(26479),
          le = i(91847),
          ce = i(10365),
          de = i(38819),
          he = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let ue = class e {
          constructor(e, t, i, n, r, o, a) {
            (this._editor = e),
              (this._openerService = t),
              (this._modeService = i),
              (this._markerDecorationsService = n),
              (this._keybindingService = r),
              (this._themeService = o),
              (this._toUnhook = new s.SL()),
              (this._contentWidget = new s.XK()),
              (this._glyphWidget = new s.XK()),
              (this._isMouseDown = !1),
              (this._hoverClicked = !1),
              this._hookEvents(),
              (this._didChangeConfigurationHandler = this._editor.onDidChangeConfiguration(
                (e) => {
                  e.hasChanged(46) &&
                    (this._hideWidgets(),
                    this._unhookEvents(),
                    this._hookEvents());
                }
              )),
              (this._hoverVisibleKey = l.u.hoverVisible.bindTo(a));
          }
          get contentWidget() {
            return (
              this._contentWidget.value || this._createHoverWidgets(),
              this._contentWidget.value
            );
          }
          get glyphWidget() {
            return (
              this._glyphWidget.value || this._createHoverWidgets(),
              this._glyphWidget.value
            );
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          _hookEvents() {
            const e = () => this._hideWidgets(),
              t = this._editor.getOption(46);
            (this._isHoverEnabled = t.enabled),
              (this._isHoverSticky = t.sticky),
              this._isHoverEnabled
                ? (this._toUnhook.add(
                    this._editor.onMouseDown((e) => this._onEditorMouseDown(e))
                  ),
                  this._toUnhook.add(
                    this._editor.onMouseUp((e) => this._onEditorMouseUp(e))
                  ),
                  this._toUnhook.add(
                    this._editor.onMouseMove((e) => this._onEditorMouseMove(e))
                  ),
                  this._toUnhook.add(
                    this._editor.onKeyDown((e) => this._onKeyDown(e))
                  ),
                  this._toUnhook.add(
                    this._editor.onDidChangeModelDecorations(() =>
                      this._onModelDecorationsChanged()
                    )
                  ))
                : (this._toUnhook.add(this._editor.onMouseMove(e)),
                  this._toUnhook.add(
                    this._editor.onKeyDown((e) => this._onKeyDown(e))
                  )),
              this._toUnhook.add(this._editor.onMouseLeave(e)),
              this._toUnhook.add(this._editor.onDidChangeModel(e)),
              this._toUnhook.add(
                this._editor.onDidScrollChange((e) =>
                  this._onEditorScrollChanged(e)
                )
              );
          }
          _unhookEvents() {
            this._toUnhook.clear();
          }
          _onModelDecorationsChanged() {
            this.contentWidget.onModelDecorationsChanged(),
              this.glyphWidget.onModelDecorationsChanged();
          }
          _onEditorScrollChanged(e) {
            (e.scrollTopChanged || e.scrollLeftChanged) && this._hideWidgets();
          }
          _onEditorMouseDown(e) {
            this._isMouseDown = !0;
            const t = e.target.type;
            9 !== t || e.target.detail !== re.ID
              ? (12 === t && e.target.detail === oe.ID) ||
                (12 !== t &&
                  e.target.detail !== oe.ID &&
                  (this._hoverClicked = !1),
                this._hideWidgets())
              : (this._hoverClicked = !0);
          }
          _onEditorMouseUp(e) {
            this._isMouseDown = !1;
          }
          _onEditorMouseMove(e) {
            let t = e.target.type;
            if (
              !(
                (this._isMouseDown &&
                  this._hoverClicked &&
                  this.contentWidget.isColorPickerVisible()) ||
                (this._isHoverSticky && 9 === t && e.target.detail === re.ID) ||
                (this._isHoverSticky && 12 === t && e.target.detail === oe.ID)
              )
            ) {
              if (7 === t) {
                const i =
                    this._editor.getOption(36).typicalHalfwidthCharacterWidth /
                    2,
                  n = e.target.detail;
                n &&
                  !n.isAfterLines &&
                  'number' == typeof n.horizontalDistanceToText &&
                  n.horizontalDistanceToText < i &&
                  (t = 6);
              }
              6 === t
                ? (this.glyphWidget.hide(),
                  this._isHoverEnabled &&
                    e.target.range &&
                    this.contentWidget.startShowingAt(e.target.range, 0, !1))
                : 2 === t
                ? (this.contentWidget.hide(),
                  this._isHoverEnabled &&
                    e.target.position &&
                    this.glyphWidget.startShowingAt(
                      e.target.position.lineNumber
                    ))
                : this._hideWidgets();
            }
          }
          _onKeyDown(e) {
            5 !== e.keyCode &&
              6 !== e.keyCode &&
              57 !== e.keyCode &&
              4 !== e.keyCode &&
              this._hideWidgets();
          }
          _hideWidgets() {
            !this._glyphWidget.value ||
              !this._contentWidget.value ||
              (this._isMouseDown &&
                this._hoverClicked &&
                this._contentWidget.value.isColorPickerVisible()) ||
              (this._glyphWidget.value.hide(),
              this._contentWidget.value.hide());
          }
          _createHoverWidgets() {
            (this._contentWidget.value = new re(
              this._editor,
              this._hoverVisibleKey,
              this._markerDecorationsService,
              this._keybindingService,
              this._themeService,
              this._modeService,
              this._openerService
            )),
              (this._glyphWidget.value = new oe(
                this._editor,
                this._modeService,
                this._openerService
              ));
          }
          showContentHover(e, t, i) {
            this.contentWidget.startShowingAt(e, t, i);
          }
          dispose() {
            this._unhookEvents(),
              this._toUnhook.dispose(),
              this._didChangeConfigurationHandler.dispose(),
              this._glyphWidget.dispose(),
              this._contentWidget.dispose();
          }
        };
        (ue.ID = 'editor.contrib.hover'),
          (ue = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              he(1, K.v4),
              he(2, c.h),
              he(3, ae.i),
              he(4, le.d),
              he(5, x.XE),
              he(6, de.i6),
            ],
            ue
          ));
        class ge extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.showHover',
              label: n.N(
                {
                  key: 'showHover',
                  comment: [
                    'Label for action that will trigger the showing of a hover in the editor.',
                    'This allows for users to show the hover without using the mouse.',
                  ],
                },
                'Show Hover'
              ),
              alias: 'Show Hover',
              precondition: void 0,
              kbOpts: {
                kbExpr: l.u.editorTextFocus,
                primary: (0, r.gx)(2089, 2087),
                weight: 100,
              },
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            let i = ue.get(t);
            if (!i) return;
            const n = t.getPosition(),
              r = new a.e(n.lineNumber, n.column, n.lineNumber, n.column),
              s = 2 === t.getOption(2);
            i.showContentHover(r, 1, s);
          }
        }
        class fe extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.showDefinitionPreviewHover',
              label: n.N(
                {
                  key: 'showDefinitionPreviewHover',
                  comment: [
                    'Label for action that will trigger the showing of definition preview hover in the editor.',
                    'This allows for users to show the definition preview hover without using the mouse.',
                  ],
                },
                'Show Definition Preview Hover'
              ),
              alias: 'Show Definition Preview Hover',
              precondition: void 0,
            });
          }
          run(e, t) {
            let i = ue.get(t);
            if (!i) return;
            const n = t.getPosition();
            if (!n) return;
            const r = new a.e(n.lineNumber, n.column, n.lineNumber, n.column),
              s = ce.GotoDefinitionAtPositionEditorContribution.get(
                t
              ).startFindDefinitionFromCursor(n);
            s
              ? s.then(() => {
                  i.showContentHover(r, 1, !0);
                })
              : i.showContentHover(r, 1, !0);
          }
        }
        (0, o._K)(ue.ID, ue),
          (0, o.Qr)(ge),
          (0, o.Qr)(fe),
          (0, x.Ic)((e, t) => {
            const i = e.getColor(k.pt);
            i &&
              t.addRule(
                `.monaco-editor .hoverHighlight { background-color: ${i}; }`
              );
            const n = e.getColor(k.yJ);
            n &&
              t.addRule(
                `.monaco-editor .monaco-hover { background-color: ${n}; }`
              );
            const r = e.getColor(k.CN);
            r &&
              (t.addRule(
                `.monaco-editor .monaco-hover { border: 1px solid ${r}; }`
              ),
              t.addRule(
                `.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${r.transparent(
                  0.5
                )}; }`
              ),
              t.addRule(
                `.monaco-editor .monaco-hover hr { border-top: 1px solid ${r.transparent(
                  0.5
                )}; }`
              ),
              t.addRule(
                `.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${r.transparent(
                  0.5
                )}; }`
              ));
            const s = e.getColor(k.ur);
            s && t.addRule(`.monaco-editor .monaco-hover a { color: ${s}; }`);
            const o = e.getColor(k.Sb);
            o && t.addRule(`.monaco-editor .monaco-hover { color: ${o}; }`);
            const a = e.getColor(k.Lo);
            a &&
              t.addRule(
                `.monaco-editor .monaco-hover .hover-row .actions { background-color: ${a}; }`
              );
            const l = e.getColor(k.Sw);
            l &&
              t.addRule(
                `.monaco-editor .monaco-hover code { background-color: ${l}; }`
              );
          });
      },
      83554: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(63580),
          r = i(24314),
          s = i(3860),
          o = i(29102),
          a = i(16830),
          l = i(90469);
        class c {
          constructor(e, t, i) {
            (this._editRange = e),
              (this._originalSelection = t),
              (this._text = i);
          }
          getEditOperations(e, t) {
            t.addTrackedEditOperation(this._editRange, this._text);
          }
          computeCursorState(e, t) {
            const i = t.getInverseEditOperations()[0].range;
            return this._originalSelection.isEmpty()
              ? new s.Y(
                  i.endLineNumber,
                  Math.min(this._originalSelection.positionColumn, i.endColumn),
                  i.endLineNumber,
                  Math.min(this._originalSelection.positionColumn, i.endColumn)
                )
              : new s.Y(
                  i.endLineNumber,
                  i.endColumn - this._text.length,
                  i.endLineNumber,
                  i.endColumn
                );
          }
        }
        var d = i(39925),
          h = i(97781),
          u = i(27869),
          g = i(3411),
          f = i(15393),
          p = i(17301);
        let m = class e {
          constructor(e, t) {
            (this.decorationIds = []),
              (this.editor = e),
              (this.editorWorkerService = t);
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {}
          run(t, i) {
            this.currentRequest && this.currentRequest.cancel();
            const n = this.editor.getSelection(),
              o = this.editor.getModel();
            if (!o || !n) return;
            let a = n;
            if (a.startLineNumber !== a.endLineNumber) return;
            const l = new d.yy(this.editor, 5),
              h = o.uri;
            return this.editorWorkerService.canNavigateValueSet(h)
              ? ((this.currentRequest = (0, f.PG)((e) =>
                  this.editorWorkerService.navigateValueSet(h, a, i)
                )),
                this.currentRequest
                  .then((i) => {
                    if (!i || !i.range || !i.value) return;
                    if (!l.validate(this.editor)) return;
                    let n = r.e.lift(i.range),
                      o = i.range,
                      d = i.value.length - (a.endColumn - a.startColumn);
                    (o = {
                      startLineNumber: o.startLineNumber,
                      startColumn: o.startColumn,
                      endLineNumber: o.endLineNumber,
                      endColumn: o.startColumn + i.value.length,
                    }),
                      d > 1 &&
                        (a = new s.Y(
                          a.startLineNumber,
                          a.startColumn,
                          a.endLineNumber,
                          a.endColumn + d - 1
                        ));
                    const h = new c(n, a, i.value);
                    this.editor.pushUndoStop(),
                      this.editor.executeCommand(t, h),
                      this.editor.pushUndoStop(),
                      (this.decorationIds = this.editor.deltaDecorations(
                        this.decorationIds,
                        [{ range: o, options: e.DECORATION }]
                      )),
                      this.decorationRemover && this.decorationRemover.cancel(),
                      (this.decorationRemover = (0, f.Vs)(350)),
                      this.decorationRemover
                        .then(
                          () =>
                            (this.decorationIds = this.editor.deltaDecorations(
                              this.decorationIds,
                              []
                            ))
                        )
                        .catch(p.dL);
                  })
                  .catch(p.dL))
              : Promise.resolve(void 0);
          }
        };
        var _, b;
        (m.ID = 'editor.contrib.inPlaceReplaceController'),
          (m.DECORATION = g.qx.register({ className: 'valueSetReplacement' })),
          (m = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((_ = 1),
              (b = l.p),
              function (e, t) {
                b(e, t, _);
              }),
            ],
            m
          ));
        class v extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.inPlaceReplace.up',
              label: n.N(
                'InPlaceReplaceAction.previous.label',
                'Replace with Previous Value'
              ),
              alias: 'Replace with Previous Value',
              precondition: o.u.writable,
              kbOpts: {
                kbExpr: o.u.editorTextFocus,
                primary: 3154,
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = m.get(t);
            return i ? i.run(this.id, !0) : Promise.resolve(void 0);
          }
        }
        class y extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.inPlaceReplace.down',
              label: n.N(
                'InPlaceReplaceAction.next.label',
                'Replace with Next Value'
              ),
              alias: 'Replace with Next Value',
              precondition: o.u.writable,
              kbOpts: {
                kbExpr: o.u.editorTextFocus,
                primary: 3156,
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = m.get(t);
            return i ? i.run(this.id, !1) : Promise.resolve(void 0);
          }
        }
        (0, a._K)(m.ID, m),
          (0, a.Qr)(v),
          (0, a.Qr)(y),
          (0, h.Ic)((e, t) => {
            const i = e.getColor(u.Dl);
            i &&
              t.addRule(
                `.monaco-editor.vs .valueSetReplacement { outline: solid 2px ${i}; }`
              );
          });
      },
      51491: (e, t, i) => {
        'use strict';
        function n(e, t) {
          let i = 0;
          for (let n = 0; n < e.length; n++)
            '\t' === e.charAt(n) ? (i += t) : i++;
          return i;
        }
        function r(e, t, i) {
          e = e < 0 ? 0 : e;
          let n = '';
          if (!i) {
            let i = Math.floor(e / t);
            e %= t;
            for (let e = 0; e < i; e++) n += '\t';
          }
          for (let t = 0; t < e; t++) n += ' ';
          return n;
        }
        i.d(t, { Y: () => n, J: () => r });
      },
      80638: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            getReindentEditOperations: () => _,
            IndentationToSpacesAction: () => b,
            IndentationToTabsAction: () => v,
            ChangeIndentationSizeAction: () => y,
            IndentUsingTabs: () => w,
            IndentUsingSpaces: () => C,
            DetectIndentation: () => S,
            ReindentLinesAction: () => k,
            ReindentSelectedLinesAction: () => x,
            AutoIndentOnPasteCommand: () => L,
            AutoIndentOnPaste: () => M,
            IndentationToSpacesCommand: () => N,
            IndentationToTabsCommand: () => E,
          });
        var n = i(63580),
          r = i(5976),
          s = i(97295),
          o = i(16830),
          a = i(10291),
          l = i(69386),
          c = i(24314),
          d = i(3860),
          h = i(29102),
          u = i(3411),
          g = i(83831),
          f = i(51200),
          p = i(51491),
          m = i(41157);
        function _(e, t, i, n) {
          if (1 === e.getLineCount() && 1 === e.getLineMaxColumn(1)) return [];
          let r = g.zu.getIndentationRules(e.getLanguageIdentifier().id);
          if (!r) return [];
          for (
            i = Math.min(i, e.getLineCount());
            t <= i && r.unIndentedLinePattern;

          ) {
            let i = e.getLineContent(t);
            if (!r.unIndentedLinePattern.test(i)) break;
            t++;
          }
          if (t > i - 1) return [];
          const { tabSize: o, indentSize: c, insertSpaces: h } = e.getOptions(),
            f = (e, t) => (
              (t = t || 1), a.U.shiftIndent(e, e.length + t, o, c, h)
            ),
            p = (e, t) => (
              (t = t || 1), a.U.unshiftIndent(e, e.length + t, o, c, h)
            );
          let m,
            _ = [],
            b = e.getLineContent(t),
            v = b;
          if (null != n) {
            m = n;
            let e = s.V8(b);
            (v = m + b.substring(e.length)),
              r.decreaseIndentPattern &&
                r.decreaseIndentPattern.test(v) &&
                ((m = p(m)), (v = m + b.substring(e.length))),
              b !== v &&
                _.push(
                  l.h.replace(
                    new d.Y(t, 1, t, e.length + 1),
                    u.yO.normalizeIndentation(m, c, h)
                  )
                );
          } else m = s.V8(b);
          let y = m;
          r.increaseIndentPattern && r.increaseIndentPattern.test(v)
            ? ((y = f(y)), (m = f(m)))
            : r.indentNextLinePattern &&
              r.indentNextLinePattern.test(v) &&
              (y = f(y));
          for (let n = ++t; n <= i; n++) {
            let t = e.getLineContent(n),
              i = s.V8(t),
              o = y + t.substring(i.length);
            r.decreaseIndentPattern &&
              r.decreaseIndentPattern.test(o) &&
              ((y = p(y)), (m = p(m))),
              i !== y &&
                _.push(
                  l.h.replace(
                    new d.Y(n, 1, n, i.length + 1),
                    u.yO.normalizeIndentation(y, c, h)
                  )
                ),
              (r.unIndentedLinePattern && r.unIndentedLinePattern.test(t)) ||
                (r.increaseIndentPattern && r.increaseIndentPattern.test(o)
                  ? ((m = f(m)), (y = m))
                  : (y =
                      r.indentNextLinePattern && r.indentNextLinePattern.test(o)
                        ? f(y)
                        : m));
          }
          return _;
        }
        class b extends o.R6 {
          constructor() {
            super({
              id: b.ID,
              label: n.N(
                'indentationToSpaces',
                'Convert Indentation to Spaces'
              ),
              alias: 'Convert Indentation to Spaces',
              precondition: h.u.writable,
            });
          }
          run(e, t) {
            let i = t.getModel();
            if (!i) return;
            let n = i.getOptions(),
              r = t.getSelection();
            if (!r) return;
            const s = new N(r, n.tabSize);
            t.pushUndoStop(),
              t.executeCommands(this.id, [s]),
              t.pushUndoStop(),
              i.updateOptions({ insertSpaces: !0 });
          }
        }
        b.ID = 'editor.action.indentationToSpaces';
        class v extends o.R6 {
          constructor() {
            super({
              id: v.ID,
              label: n.N('indentationToTabs', 'Convert Indentation to Tabs'),
              alias: 'Convert Indentation to Tabs',
              precondition: h.u.writable,
            });
          }
          run(e, t) {
            let i = t.getModel();
            if (!i) return;
            let n = i.getOptions(),
              r = t.getSelection();
            if (!r) return;
            const s = new E(r, n.tabSize);
            t.pushUndoStop(),
              t.executeCommands(this.id, [s]),
              t.pushUndoStop(),
              i.updateOptions({ insertSpaces: !1 });
          }
        }
        v.ID = 'editor.action.indentationToTabs';
        class y extends o.R6 {
          constructor(e, t) {
            super(t), (this.insertSpaces = e);
          }
          run(e, t) {
            const i = e.get(m.eJ),
              r = e.get(f.q);
            let s = t.getModel();
            if (!s) return;
            let o = r.getCreationOptions(
              s.getLanguageIdentifier().language,
              s.uri,
              s.isForSimpleWidget
            );
            const a = [1, 2, 3, 4, 5, 6, 7, 8].map((e) => ({
                id: e.toString(),
                label: e.toString(),
                description:
                  e === o.tabSize
                    ? n.N('configuredTabSize', 'Configured Tab Size')
                    : void 0,
              })),
              l = Math.min(s.getOptions().tabSize - 1, 7);
            setTimeout(() => {
              i.pick(a, {
                placeHolder: n.N(
                  {
                    key: 'selectTabWidth',
                    comment: ['Tab corresponds to the tab key'],
                  },
                  'Select Tab Size for Current File'
                ),
                activeItem: a[l],
              }).then((e) => {
                e &&
                  s &&
                  !s.isDisposed() &&
                  s.updateOptions({
                    tabSize: parseInt(e.label, 10),
                    insertSpaces: this.insertSpaces,
                  });
              });
            }, 50);
          }
        }
        class w extends y {
          constructor() {
            super(!1, {
              id: w.ID,
              label: n.N('indentUsingTabs', 'Indent Using Tabs'),
              alias: 'Indent Using Tabs',
              precondition: void 0,
            });
          }
        }
        w.ID = 'editor.action.indentUsingTabs';
        class C extends y {
          constructor() {
            super(!0, {
              id: C.ID,
              label: n.N('indentUsingSpaces', 'Indent Using Spaces'),
              alias: 'Indent Using Spaces',
              precondition: void 0,
            });
          }
        }
        C.ID = 'editor.action.indentUsingSpaces';
        class S extends o.R6 {
          constructor() {
            super({
              id: S.ID,
              label: n.N(
                'detectIndentation',
                'Detect Indentation from Content'
              ),
              alias: 'Detect Indentation from Content',
              precondition: void 0,
            });
          }
          run(e, t) {
            const i = e.get(f.q);
            let n = t.getModel();
            if (!n) return;
            let r = i.getCreationOptions(
              n.getLanguageIdentifier().language,
              n.uri,
              n.isForSimpleWidget
            );
            n.detectIndentation(r.insertSpaces, r.tabSize);
          }
        }
        S.ID = 'editor.action.detectIndentation';
        class k extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.reindentlines',
              label: n.N('editor.reindentlines', 'Reindent Lines'),
              alias: 'Reindent Lines',
              precondition: h.u.writable,
            });
          }
          run(e, t) {
            let i = t.getModel();
            if (!i) return;
            let n = _(i, 1, i.getLineCount());
            n.length > 0 &&
              (t.pushUndoStop(), t.executeEdits(this.id, n), t.pushUndoStop());
          }
        }
        class x extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.reindentselectedlines',
              label: n.N(
                'editor.reindentselectedlines',
                'Reindent Selected Lines'
              ),
              alias: 'Reindent Selected Lines',
              precondition: h.u.writable,
            });
          }
          run(e, t) {
            let i = t.getModel();
            if (!i) return;
            let n = t.getSelections();
            if (null === n) return;
            let r = [];
            for (let e of n) {
              let t = e.startLineNumber,
                n = e.endLineNumber;
              if ((t !== n && 1 === e.endColumn && n--, 1 === t)) {
                if (t === n) continue;
              } else t--;
              let s = _(i, t, n);
              r.push(...s);
            }
            r.length > 0 &&
              (t.pushUndoStop(), t.executeEdits(this.id, r), t.pushUndoStop());
          }
        }
        class L {
          constructor(e, t) {
            (this._initialSelection = t),
              (this._edits = []),
              (this._selectionId = null);
            for (let t of e)
              t.range && 'string' == typeof t.text && this._edits.push(t);
          }
          getEditOperations(e, t) {
            for (let e of this._edits)
              t.addEditOperation(c.e.lift(e.range), e.text);
            let i = !1;
            Array.isArray(this._edits) &&
              1 === this._edits.length &&
              this._initialSelection.isEmpty() &&
              (this._edits[0].range.startColumn ===
                this._initialSelection.endColumn &&
              this._edits[0].range.startLineNumber ===
                this._initialSelection.endLineNumber
                ? ((i = !0),
                  (this._selectionId = t.trackSelection(
                    this._initialSelection,
                    !0
                  )))
                : this._edits[0].range.endColumn ===
                    this._initialSelection.startColumn &&
                  this._edits[0].range.endLineNumber ===
                    this._initialSelection.startLineNumber &&
                  ((i = !0),
                  (this._selectionId = t.trackSelection(
                    this._initialSelection,
                    !1
                  )))),
              i ||
                (this._selectionId = t.trackSelection(this._initialSelection));
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this._selectionId);
          }
        }
        class M {
          constructor(e) {
            (this.callOnDispose = new r.SL()),
              (this.callOnModel = new r.SL()),
              (this.editor = e),
              this.callOnDispose.add(
                e.onDidChangeConfiguration(() => this.update())
              ),
              this.callOnDispose.add(e.onDidChangeModel(() => this.update())),
              this.callOnDispose.add(
                e.onDidChangeModelLanguage(() => this.update())
              );
          }
          update() {
            this.callOnModel.clear(),
              this.editor.getOption(8) < 4 ||
                this.editor.getOption(40) ||
                (this.editor.hasModel() &&
                  this.callOnModel.add(
                    this.editor.onDidPaste(({ range: e }) => {
                      this.trigger(e);
                    })
                  ));
          }
          trigger(e) {
            let t = this.editor.getSelections();
            if (null === t || t.length > 1) return;
            const i = this.editor.getModel();
            if (!i) return;
            if (!i.isCheapToTokenize(e.getStartPosition().lineNumber)) return;
            const n = this.editor.getOption(8),
              { tabSize: r, indentSize: o, insertSpaces: l } = i.getOptions();
            this.editor.pushUndoStop();
            let d = [],
              h = {
                shiftIndent: (e) => a.U.shiftIndent(e, e.length + 1, r, o, l),
                unshiftIndent: (e) =>
                  a.U.unshiftIndent(e, e.length + 1, r, o, l),
              },
              u = e.startLineNumber;
            for (; u <= e.endLineNumber && this.shouldIgnoreLine(i, u); ) u++;
            if (u > e.endLineNumber) return;
            let f = i.getLineContent(u);
            if (!/\S/.test(f.substring(0, e.startColumn - 1))) {
              let e = g.zu.getGoodIndentForLine(
                n,
                i,
                i.getLanguageIdentifier().id,
                u,
                h
              );
              if (null !== e) {
                let t = s.V8(f),
                  n = p.Y(e, r);
                if (n !== p.Y(t, r)) {
                  let e = p.J(n, r, l);
                  d.push({ range: new c.e(u, 1, u, t.length + 1), text: e }),
                    (f = e + f.substr(t.length));
                } else {
                  let e = g.zu.getIndentMetadata(i, u);
                  if (0 === e || 8 === e) return;
                }
              }
            }
            const m = u;
            for (; u < e.endLineNumber && !/\S/.test(i.getLineContent(u + 1)); )
              u++;
            if (u !== e.endLineNumber) {
              let t = {
                  getLineTokens: (e) => i.getLineTokens(e),
                  getLanguageIdentifier: () => i.getLanguageIdentifier(),
                  getLanguageIdAtPosition: (e, t) =>
                    i.getLanguageIdAtPosition(e, t),
                  getLineContent: (e) => (e === m ? f : i.getLineContent(e)),
                },
                o = g.zu.getGoodIndentForLine(
                  n,
                  t,
                  i.getLanguageIdentifier().id,
                  u + 1,
                  h
                );
              if (null !== o) {
                let t = p.Y(o, r),
                  n = p.Y(s.V8(i.getLineContent(u + 1)), r);
                if (t !== n) {
                  let o = t - n;
                  for (let t = u + 1; t <= e.endLineNumber; t++) {
                    let e = i.getLineContent(t),
                      n = s.V8(e),
                      a = p.Y(n, r) + o,
                      h = p.J(a, r, l);
                    h !== n &&
                      d.push({
                        range: new c.e(t, 1, t, n.length + 1),
                        text: h,
                      });
                  }
                }
              }
            }
            let _ = new L(d, this.editor.getSelection());
            this.editor.executeCommand('autoIndentOnPaste', _),
              this.editor.pushUndoStop();
          }
          shouldIgnoreLine(e, t) {
            e.forceTokenization(t);
            let i = e.getLineFirstNonWhitespaceColumn(t);
            if (0 === i) return !0;
            let n = e.getLineTokens(t);
            if (n.getCount() > 0) {
              let e = n.findTokenIndexAtOffset(i);
              if (e >= 0 && 1 === n.getStandardTokenType(e)) return !0;
            }
            return !1;
          }
          dispose() {
            this.callOnDispose.dispose(), this.callOnModel.dispose();
          }
        }
        function D(e, t, i, n) {
          if (1 === e.getLineCount() && 1 === e.getLineMaxColumn(1)) return;
          let r = '';
          for (let e = 0; e < i; e++) r += ' ';
          let s = new RegExp(r, 'gi');
          for (let i = 1, o = e.getLineCount(); i <= o; i++) {
            let o = e.getLineFirstNonWhitespaceColumn(i);
            if ((0 === o && (o = e.getLineMaxColumn(i)), 1 === o)) continue;
            const a = new c.e(i, 1, i, o),
              l = e.getValueInRange(a),
              d = n ? l.replace(/\t/gi, r) : l.replace(s, '\t');
            t.addEditOperation(a, d);
          }
        }
        M.ID = 'editor.contrib.autoIndentOnPaste';
        class N {
          constructor(e, t) {
            (this.selection = e), (this.tabSize = t), (this.selectionId = null);
          }
          getEditOperations(e, t) {
            (this.selectionId = t.trackSelection(this.selection)),
              D(e, t, this.tabSize, !0);
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this.selectionId);
          }
        }
        class E {
          constructor(e, t) {
            (this.selection = e), (this.tabSize = t), (this.selectionId = null);
          }
          getEditOperations(e, t) {
            (this.selectionId = t.trackSelection(this.selection)),
              D(e, t, this.tabSize, !1);
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this.selectionId);
          }
        }
        (0, o._K)(M.ID, M),
          (0, o.Qr)(b),
          (0, o.Qr)(v),
          (0, o.Qr)(w),
          (0, o.Qr)(C),
          (0, o.Qr)(S),
          (0, o.Qr)(k),
          (0, o.Qr)(x);
      },
      42408: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            AbstractCaseAction: () => j,
            AbstractDeleteAllToBoundaryAction: () => F,
            AbstractSortLinesAction: () => D,
            DeleteAllLeftAction: () => B,
            DeleteAllRightAction: () => W,
            DeleteLinesAction: () => I,
            DuplicateSelectionAction: () => L,
            IndentLinesAction: () => O,
            InsertLineAfterAction: () => P,
            InsertLineBeforeAction: () => R,
            JoinLinesAction: () => Y,
            LowerCaseAction: () => z,
            SortLinesAscendingAction: () => N,
            SortLinesDescendingAction: () => E,
            TitleCaseAction: () => U,
            TransposeAction: () => H,
            TrimTrailingWhitespaceAction: () => T,
            UpperCaseAction: () => V,
          });
        var n = i(63580),
          r = i(22258),
          s = i(18728),
          o = i(16830),
          a = i(61329),
          l = i(97295),
          c = i(69386),
          d = i(24314);
        class h {
          constructor(e, t) {
            (this._selection = e),
              (this._cursors = t),
              (this._selectionId = null);
          }
          getEditOperations(e, t) {
            let i = (function (e, t) {
              t.sort((e, t) =>
                e.lineNumber === t.lineNumber
                  ? e.column - t.column
                  : e.lineNumber - t.lineNumber
              );
              for (let e = t.length - 2; e >= 0; e--)
                t[e].lineNumber === t[e + 1].lineNumber && t.splice(e, 1);
              let i = [],
                n = 0,
                r = 0,
                s = t.length;
              for (let o = 1, a = e.getLineCount(); o <= a; o++) {
                let a = e.getLineContent(o),
                  h = a.length + 1,
                  u = 0;
                if (
                  r < s &&
                  t[r].lineNumber === o &&
                  ((u = t[r].column), r++, u === h)
                )
                  continue;
                if (0 === a.length) continue;
                let g = l.ow(a),
                  f = 0;
                if (-1 === g) f = 1;
                else {
                  if (g === a.length - 1) continue;
                  f = g + 2;
                }
                (f = Math.max(u, f)),
                  (i[n++] = c.h.delete(new d.e(o, f, o, h)));
              }
              return i;
            })(e, this._cursors);
            for (let e = 0, n = i.length; e < n; e++) {
              let n = i[e];
              t.addEditOperation(n.range, n.text);
            }
            this._selectionId = t.trackSelection(this._selection);
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this._selectionId);
          }
        }
        var u = i(23582),
          g = i(50187),
          f = i(3860),
          p = i(29102);
        class m {
          constructor(e, t) {
            (this._selection = e),
              (this._isCopyingDown = t),
              (this._selectionDirection = 0),
              (this._selectionId = null),
              (this._startLineNumberDelta = 0),
              (this._endLineNumberDelta = 0);
          }
          getEditOperations(e, t) {
            let i = this._selection;
            (this._startLineNumberDelta = 0),
              (this._endLineNumberDelta = 0),
              i.startLineNumber < i.endLineNumber &&
                1 === i.endColumn &&
                ((this._endLineNumberDelta = 1),
                (i = i.setEndPosition(
                  i.endLineNumber - 1,
                  e.getLineMaxColumn(i.endLineNumber - 1)
                )));
            let n = [];
            for (let t = i.startLineNumber; t <= i.endLineNumber; t++)
              n.push(e.getLineContent(t));
            const r = n.join('\n');
            '' === r &&
              this._isCopyingDown &&
              (this._startLineNumberDelta++, this._endLineNumberDelta++),
              this._isCopyingDown
                ? t.addEditOperation(
                    new d.e(i.startLineNumber, 1, i.startLineNumber, 1),
                    r + '\n'
                  )
                : t.addEditOperation(
                    new d.e(
                      i.endLineNumber,
                      e.getLineMaxColumn(i.endLineNumber),
                      i.endLineNumber,
                      e.getLineMaxColumn(i.endLineNumber)
                    ),
                    '\n' + r
                  ),
              (this._selectionId = t.trackSelection(i)),
              (this._selectionDirection = this._selection.getDirection());
          }
          computeCursorState(e, t) {
            let i = t.getTrackedSelection(this._selectionId);
            if (
              0 !== this._startLineNumberDelta ||
              0 !== this._endLineNumberDelta
            ) {
              let e = i.startLineNumber,
                t = i.startColumn,
                n = i.endLineNumber,
                r = i.endColumn;
              0 !== this._startLineNumberDelta &&
                ((e += this._startLineNumberDelta), (t = 1)),
                0 !== this._endLineNumberDelta &&
                  ((n += this._endLineNumberDelta), (r = 1)),
                (i = f.Y.createWithDirection(
                  e,
                  t,
                  n,
                  r,
                  this._selectionDirection
                ));
            }
            return i;
          }
        }
        var _ = i(10291),
          b = i(97354),
          v = i(83831),
          y = i(51491);
        class w {
          constructor(e, t, i) {
            (this._selection = e),
              (this._isMovingDown = t),
              (this._autoIndent = i),
              (this._selectionId = null),
              (this._moveEndLineSelectionShrink = !1);
          }
          getEditOperations(e, t) {
            let i = e.getLineCount();
            if (this._isMovingDown && this._selection.endLineNumber === i)
              return void (this._selectionId = t.trackSelection(
                this._selection
              ));
            if (!this._isMovingDown && 1 === this._selection.startLineNumber)
              return void (this._selectionId = t.trackSelection(
                this._selection
              ));
            this._moveEndPositionDown = !1;
            let n = this._selection;
            n.startLineNumber < n.endLineNumber &&
              1 === n.endColumn &&
              ((this._moveEndPositionDown = !0),
              (n = n.setEndPosition(
                n.endLineNumber - 1,
                e.getLineMaxColumn(n.endLineNumber - 1)
              )));
            const {
              tabSize: r,
              indentSize: s,
              insertSpaces: o,
            } = e.getOptions();
            let a = this.buildIndentConverter(r, s, o),
              c = {
                getLineTokens: (t) => e.getLineTokens(t),
                getLanguageIdentifier: () => e.getLanguageIdentifier(),
                getLanguageIdAtPosition: (t, i) =>
                  e.getLanguageIdAtPosition(t, i),
                getLineContent: null,
              };
            if (
              n.startLineNumber === n.endLineNumber &&
              1 === e.getLineMaxColumn(n.startLineNumber)
            ) {
              let i = n.startLineNumber,
                r = this._isMovingDown ? i + 1 : i - 1;
              1 === e.getLineMaxColumn(r)
                ? t.addEditOperation(new d.e(1, 1, 1, 1), null)
                : (t.addEditOperation(new d.e(i, 1, i, 1), e.getLineContent(r)),
                  t.addEditOperation(
                    new d.e(r, 1, r, e.getLineMaxColumn(r)),
                    null
                  )),
                (n = new f.Y(r, 1, r, 1));
            } else {
              let i, s;
              if (this._isMovingDown) {
                (i = n.endLineNumber + 1),
                  (s = e.getLineContent(i)),
                  t.addEditOperation(
                    new d.e(
                      i - 1,
                      e.getLineMaxColumn(i - 1),
                      i,
                      e.getLineMaxColumn(i)
                    ),
                    null
                  );
                let h = s;
                if (this.shouldAutoIndent(e, n)) {
                  let u = this.matchEnterRule(
                    e,
                    a,
                    r,
                    i,
                    n.startLineNumber - 1
                  );
                  if (null !== u) {
                    let t = l.V8(e.getLineContent(i)),
                      n = u + y.Y(t, r),
                      a = y.J(n, r, o);
                    h = a + this.trimLeft(s);
                  } else {
                    c.getLineContent = (t) =>
                      t === n.startLineNumber
                        ? e.getLineContent(i)
                        : e.getLineContent(t);
                    let t = v.zu.getGoodIndentForLine(
                      this._autoIndent,
                      c,
                      e.getLanguageIdAtPosition(i, 1),
                      n.startLineNumber,
                      a
                    );
                    if (null !== t) {
                      let n = l.V8(e.getLineContent(i)),
                        a = y.Y(t, r);
                      if (a !== y.Y(n, r)) {
                        let e = y.J(a, r, o);
                        h = e + this.trimLeft(s);
                      }
                    }
                  }
                  t.addEditOperation(
                    new d.e(n.startLineNumber, 1, n.startLineNumber, 1),
                    h + '\n'
                  );
                  let g = this.matchEnterRule(
                    e,
                    a,
                    r,
                    n.startLineNumber,
                    n.startLineNumber,
                    h
                  );
                  if (null !== g)
                    0 !== g &&
                      this.getIndentEditsOfMovingBlock(e, t, n, r, o, g);
                  else {
                    c.getLineContent = (t) =>
                      t === n.startLineNumber
                        ? h
                        : t >= n.startLineNumber + 1 && t <= n.endLineNumber + 1
                        ? e.getLineContent(t - 1)
                        : e.getLineContent(t);
                    let s = v.zu.getGoodIndentForLine(
                      this._autoIndent,
                      c,
                      e.getLanguageIdAtPosition(i, 1),
                      n.startLineNumber + 1,
                      a
                    );
                    if (null !== s) {
                      const i = l.V8(e.getLineContent(n.startLineNumber)),
                        a = y.Y(s, r),
                        c = y.Y(i, r);
                      if (a !== c) {
                        const i = a - c;
                        this.getIndentEditsOfMovingBlock(e, t, n, r, o, i);
                      }
                    }
                  }
                } else
                  t.addEditOperation(
                    new d.e(n.startLineNumber, 1, n.startLineNumber, 1),
                    h + '\n'
                  );
              } else if (
                ((i = n.startLineNumber - 1),
                (s = e.getLineContent(i)),
                t.addEditOperation(new d.e(i, 1, i + 1, 1), null),
                t.addEditOperation(
                  new d.e(
                    n.endLineNumber,
                    e.getLineMaxColumn(n.endLineNumber),
                    n.endLineNumber,
                    e.getLineMaxColumn(n.endLineNumber)
                  ),
                  '\n' + s
                ),
                this.shouldAutoIndent(e, n))
              ) {
                c.getLineContent = (t) =>
                  t === i
                    ? e.getLineContent(n.startLineNumber)
                    : e.getLineContent(t);
                let s = this.matchEnterRule(
                  e,
                  a,
                  r,
                  n.startLineNumber,
                  n.startLineNumber - 2
                );
                if (null !== s)
                  0 !== s && this.getIndentEditsOfMovingBlock(e, t, n, r, o, s);
                else {
                  let s = v.zu.getGoodIndentForLine(
                    this._autoIndent,
                    c,
                    e.getLanguageIdAtPosition(n.startLineNumber, 1),
                    i,
                    a
                  );
                  if (null !== s) {
                    let i = l.V8(e.getLineContent(n.startLineNumber)),
                      a = y.Y(s, r),
                      c = y.Y(i, r);
                    if (a !== c) {
                      let i = a - c;
                      this.getIndentEditsOfMovingBlock(e, t, n, r, o, i);
                    }
                  }
                }
              }
            }
            this._selectionId = t.trackSelection(n);
          }
          buildIndentConverter(e, t, i) {
            return {
              shiftIndent: (n) => _.U.shiftIndent(n, n.length + 1, e, t, i),
              unshiftIndent: (n) => _.U.unshiftIndent(n, n.length + 1, e, t, i),
            };
          }
          matchEnterRule(e, t, i, n, r, s) {
            let o = r;
            for (; o >= 1; ) {
              let t;
              if (
                ((t = o === r && void 0 !== s ? s : e.getLineContent(o)),
                l.ow(t) >= 0)
              )
                break;
              o--;
            }
            if (o < 1 || n > e.getLineCount()) return null;
            let a = e.getLineMaxColumn(o),
              c = v.zu.getEnterAction(this._autoIndent, e, new d.e(o, a, o, a));
            if (c) {
              let r = c.indentation;
              c.indentAction === b.w.None || c.indentAction === b.w.Indent
                ? (r = c.indentation + c.appendText)
                : c.indentAction === b.w.IndentOutdent
                ? (r = c.indentation)
                : c.indentAction === b.w.Outdent &&
                  (r = t.unshiftIndent(c.indentation) + c.appendText);
              let s = e.getLineContent(n);
              if (this.trimLeft(s).indexOf(this.trimLeft(r)) >= 0) {
                let s = l.V8(e.getLineContent(n)),
                  o = l.V8(r),
                  a = v.zu.getIndentMetadata(e, n);
                return (
                  null !== a && 2 & a && (o = t.unshiftIndent(o)),
                  y.Y(o, i) - y.Y(s, i)
                );
              }
            }
            return null;
          }
          trimLeft(e) {
            return e.replace(/^\s+/, '');
          }
          shouldAutoIndent(e, t) {
            if (this._autoIndent < 4) return !1;
            if (!e.isCheapToTokenize(t.startLineNumber)) return !1;
            let i = e.getLanguageIdAtPosition(t.startLineNumber, 1);
            return (
              i === e.getLanguageIdAtPosition(t.endLineNumber, 1) &&
              null !== v.zu.getIndentRulesSupport(i)
            );
          }
          getIndentEditsOfMovingBlock(e, t, i, n, r, s) {
            for (let o = i.startLineNumber; o <= i.endLineNumber; o++) {
              let a = e.getLineContent(o),
                c = l.V8(a),
                h = y.Y(c, n) + s,
                u = y.J(h, n, r);
              u !== c &&
                (t.addEditOperation(new d.e(o, 1, o, c.length + 1), u),
                o === i.endLineNumber &&
                  i.endColumn <= c.length + 1 &&
                  '' === u &&
                  (this._moveEndLineSelectionShrink = !0));
            }
          }
          computeCursorState(e, t) {
            let i = t.getTrackedSelection(this._selectionId);
            return (
              this._moveEndPositionDown &&
                (i = i.setEndPosition(i.endLineNumber + 1, 1)),
              this._moveEndLineSelectionShrink &&
                i.startLineNumber < i.endLineNumber &&
                (i = i.setEndPosition(i.endLineNumber, 2)),
              i
            );
          }
        }
        class C {
          constructor(e, t) {
            (this.selection = e),
              (this.descending = t),
              (this.selectionId = null);
          }
          static getCollator() {
            return (
              C._COLLATOR || (C._COLLATOR = new Intl.Collator()), C._COLLATOR
            );
          }
          getEditOperations(e, t) {
            let i = (function (e, t, i) {
              let n = S(e, t, i);
              return n
                ? c.h.replace(
                    new d.e(
                      n.startLineNumber,
                      1,
                      n.endLineNumber,
                      e.getLineMaxColumn(n.endLineNumber)
                    ),
                    n.after.join('\n')
                  )
                : null;
            })(e, this.selection, this.descending);
            i && t.addEditOperation(i.range, i.text),
              (this.selectionId = t.trackSelection(this.selection));
          }
          computeCursorState(e, t) {
            return t.getTrackedSelection(this.selectionId);
          }
          static canRun(e, t, i) {
            if (null === e) return !1;
            let n = S(e, t, i);
            if (!n) return !1;
            for (let e = 0, t = n.before.length; e < t; e++)
              if (n.before[e] !== n.after[e]) return !0;
            return !1;
          }
        }
        function S(e, t, i) {
          let n = t.startLineNumber,
            r = t.endLineNumber;
          if ((1 === t.endColumn && r--, n >= r)) return null;
          let s = [];
          for (let t = n; t <= r; t++) s.push(e.getLineContent(t));
          let o = s.slice(0);
          return (
            o.sort(C.getCollator().compare),
            !0 === i && (o = o.reverse()),
            { startLineNumber: n, endLineNumber: r, before: s, after: o }
          );
        }
        C._COLLATOR = null;
        var k = i(84144);
        class x extends o.R6 {
          constructor(e, t) {
            super(t), (this.down = e);
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t
              .getSelections()
              .map((e, t) => ({ selection: e, index: t, ignore: !1 }));
            i.sort((e, t) =>
              d.e.compareRangesUsingStarts(e.selection, t.selection)
            );
            let n = i[0];
            for (let e = 1; e < i.length; e++) {
              const t = i[e];
              n.selection.endLineNumber === t.selection.startLineNumber &&
                (n.index < t.index
                  ? (t.ignore = !0)
                  : ((n.ignore = !0), (n = t)));
            }
            const r = [];
            for (const e of i)
              e.ignore || r.push(new m(e.selection, this.down));
            t.pushUndoStop(), t.executeCommands(this.id, r), t.pushUndoStop();
          }
        }
        class L extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.duplicateSelection',
              label: n.N('duplicateSelection', 'Duplicate Selection'),
              alias: 'Duplicate Selection',
              precondition: p.u.writable,
              menuOpts: {
                menuId: k.eH.MenubarSelectionMenu,
                group: '2_line',
                title: n.N(
                  {
                    key: 'miDuplicateSelection',
                    comment: ['&& denotes a mnemonic'],
                  },
                  '&&Duplicate Selection'
                ),
                order: 5,
              },
            });
          }
          run(e, t, i) {
            if (!t.hasModel()) return;
            const n = [],
              r = t.getSelections(),
              s = t.getModel();
            for (const e of r)
              if (e.isEmpty()) n.push(new m(e, !0));
              else {
                const t = new f.Y(
                  e.endLineNumber,
                  e.endColumn,
                  e.endLineNumber,
                  e.endColumn
                );
                n.push(new a.OY(t, s.getValueInRange(e)));
              }
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop();
          }
        }
        class M extends o.R6 {
          constructor(e, t) {
            super(t), (this.down = e);
          }
          run(e, t) {
            let i = [],
              n = t.getSelections() || [];
            const r = t.getOption(8);
            for (const e of n) i.push(new w(e, this.down, r));
            t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop();
          }
        }
        class D extends o.R6 {
          constructor(e, t) {
            super(t), (this.descending = e);
          }
          run(e, t) {
            const i = t.getSelections() || [];
            for (const e of i)
              if (!C.canRun(t.getModel(), e, this.descending)) return;
            let n = [];
            for (let e = 0, t = i.length; e < t; e++)
              n[e] = new C(i[e], this.descending);
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop();
          }
        }
        class N extends D {
          constructor() {
            super(!1, {
              id: 'editor.action.sortLinesAscending',
              label: n.N('lines.sortAscending', 'Sort Lines Ascending'),
              alias: 'Sort Lines Ascending',
              precondition: p.u.writable,
            });
          }
        }
        class E extends D {
          constructor() {
            super(!0, {
              id: 'editor.action.sortLinesDescending',
              label: n.N('lines.sortDescending', 'Sort Lines Descending'),
              alias: 'Sort Lines Descending',
              precondition: p.u.writable,
            });
          }
        }
        class T extends o.R6 {
          constructor() {
            super({
              id: T.ID,
              label: n.N(
                'lines.trimTrailingWhitespace',
                'Trim Trailing Whitespace'
              ),
              alias: 'Trim Trailing Whitespace',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.editorTextFocus,
                primary: (0, r.gx)(2089, 2102),
                weight: 100,
              },
            });
          }
          run(e, t, i) {
            let n = [];
            'auto-save' === i.reason &&
              (n = (t.getSelections() || []).map(
                (e) => new g.L(e.positionLineNumber, e.positionColumn)
              ));
            let r = t.getSelection();
            if (null === r) return;
            let s = new h(r, n);
            t.pushUndoStop(), t.executeCommands(this.id, [s]), t.pushUndoStop();
          }
        }
        T.ID = 'editor.action.trimTrailingWhitespace';
        class I extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.deleteLines',
              label: n.N('lines.delete', 'Delete Line'),
              alias: 'Delete Line',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.textInputFocus,
                primary: 3113,
                weight: 100,
              },
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            let i = this._getLinesToRemove(t),
              n = t.getModel();
            if (1 === n.getLineCount() && 1 === n.getLineMaxColumn(1)) return;
            let r = 0,
              s = [],
              o = [];
            for (let e = 0, t = i.length; e < t; e++) {
              const t = i[e];
              let a = t.startLineNumber,
                l = t.endLineNumber,
                d = 1,
                h = n.getLineMaxColumn(l);
              l < n.getLineCount()
                ? ((l += 1), (h = 1))
                : a > 1 && ((a -= 1), (d = n.getLineMaxColumn(a))),
                s.push(c.h.replace(new f.Y(a, d, l, h), '')),
                o.push(
                  new f.Y(a - r, t.positionColumn, a - r, t.positionColumn)
                ),
                (r += t.endLineNumber - t.startLineNumber + 1);
            }
            t.pushUndoStop(), t.executeEdits(this.id, s, o), t.pushUndoStop();
          }
          _getLinesToRemove(e) {
            let t = e.getSelections().map((e) => {
              let t = e.endLineNumber;
              return (
                e.startLineNumber < e.endLineNumber &&
                  1 === e.endColumn &&
                  (t -= 1),
                {
                  startLineNumber: e.startLineNumber,
                  selectionStartColumn: e.selectionStartColumn,
                  endLineNumber: t,
                  positionColumn: e.positionColumn,
                }
              );
            });
            t.sort((e, t) =>
              e.startLineNumber === t.startLineNumber
                ? e.endLineNumber - t.endLineNumber
                : e.startLineNumber - t.startLineNumber
            );
            let i = [],
              n = t[0];
            for (let e = 1; e < t.length; e++)
              n.endLineNumber + 1 >= t[e].startLineNumber
                ? (n.endLineNumber = t[e].endLineNumber)
                : (i.push(n), (n = t[e]));
            return i.push(n), i;
          }
        }
        class O extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.indentLines',
              label: n.N('lines.indent', 'Indent Line'),
              alias: 'Indent Line',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.editorTextFocus,
                primary: 2137,
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = t._getViewModel();
            i &&
              (t.pushUndoStop(),
              t.executeCommands(
                this.id,
                u.u.indent(i.cursorConfig, t.getModel(), t.getSelections())
              ),
              t.pushUndoStop());
          }
        }
        class A extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.outdentLines',
              label: n.N('lines.outdent', 'Outdent Line'),
              alias: 'Outdent Line',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.editorTextFocus,
                primary: 2135,
                weight: 100,
              },
            });
          }
          run(e, t) {
            s.CoreEditingCommands.Outdent.runEditorCommand(e, t, null);
          }
        }
        class R extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.insertLineBefore',
              label: n.N('lines.insertBefore', 'Insert Line Above'),
              alias: 'Insert Line Above',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.editorTextFocus,
                primary: 3075,
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = t._getViewModel();
            i &&
              (t.pushUndoStop(),
              t.executeCommands(
                this.id,
                u.u.lineInsertBefore(
                  i.cursorConfig,
                  t.getModel(),
                  t.getSelections()
                )
              ));
          }
        }
        class P extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.insertLineAfter',
              label: n.N('lines.insertAfter', 'Insert Line Below'),
              alias: 'Insert Line Below',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.editorTextFocus,
                primary: 2051,
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = t._getViewModel();
            i &&
              (t.pushUndoStop(),
              t.executeCommands(
                this.id,
                u.u.lineInsertAfter(
                  i.cursorConfig,
                  t.getModel(),
                  t.getSelections()
                )
              ));
          }
        }
        class F extends o.R6 {
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getSelection();
            let n = this._getRangesToDelete(t),
              r = [];
            for (let e = 0, t = n.length - 1; e < t; e++) {
              let t = n[e],
                i = n[e + 1];
              null === d.e.intersectRanges(t, i)
                ? r.push(t)
                : (n[e + 1] = d.e.plusRange(t, i));
            }
            r.push(n[n.length - 1]);
            let s = this._getEndCursorState(i, r),
              o = r.map((e) => c.h.replace(e, ''));
            t.pushUndoStop(), t.executeEdits(this.id, o, s), t.pushUndoStop();
          }
        }
        class B extends F {
          constructor() {
            super({
              id: 'deleteAllLeft',
              label: n.N('lines.deleteAllLeft', 'Delete All Left'),
              alias: 'Delete All Left',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.textInputFocus,
                primary: 0,
                mac: { primary: 2049 },
                weight: 100,
              },
            });
          }
          _getEndCursorState(e, t) {
            let i = null,
              n = [],
              r = 0;
            return (
              t.forEach((t) => {
                let s;
                if (1 === t.endColumn && r > 0) {
                  let e = t.startLineNumber - r;
                  s = new f.Y(e, t.startColumn, e, t.startColumn);
                } else
                  s = new f.Y(
                    t.startLineNumber,
                    t.startColumn,
                    t.startLineNumber,
                    t.startColumn
                  );
                (r += t.endLineNumber - t.startLineNumber),
                  t.intersectRanges(e) ? (i = s) : n.push(s);
              }),
              i && n.unshift(i),
              n
            );
          }
          _getRangesToDelete(e) {
            let t = e.getSelections();
            if (null === t) return [];
            let i = t,
              n = e.getModel();
            return null === n
              ? []
              : (i.sort(d.e.compareRangesUsingStarts),
                (i = i.map((e) => {
                  if (e.isEmpty()) {
                    if (1 === e.startColumn) {
                      let t = Math.max(1, e.startLineNumber - 1),
                        i =
                          1 === e.startLineNumber
                            ? 1
                            : n.getLineContent(t).length + 1;
                      return new d.e(t, i, e.startLineNumber, 1);
                    }
                    return new d.e(
                      e.startLineNumber,
                      1,
                      e.startLineNumber,
                      e.startColumn
                    );
                  }
                  return new d.e(
                    e.startLineNumber,
                    1,
                    e.endLineNumber,
                    e.endColumn
                  );
                })),
                i);
          }
        }
        class W extends F {
          constructor() {
            super({
              id: 'deleteAllRight',
              label: n.N('lines.deleteAllRight', 'Delete All Right'),
              alias: 'Delete All Right',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.textInputFocus,
                primary: 0,
                mac: { primary: 297, secondary: [2068] },
                weight: 100,
              },
            });
          }
          _getEndCursorState(e, t) {
            let i = null,
              n = [];
            for (let r = 0, s = t.length, o = 0; r < s; r++) {
              let s = t[r],
                a = new f.Y(
                  s.startLineNumber - o,
                  s.startColumn,
                  s.startLineNumber - o,
                  s.startColumn
                );
              s.intersectRanges(e) ? (i = a) : n.push(a);
            }
            return i && n.unshift(i), n;
          }
          _getRangesToDelete(e) {
            let t = e.getModel();
            if (null === t) return [];
            let i = e.getSelections();
            if (null === i) return [];
            let n = i.map((e) => {
              if (e.isEmpty()) {
                const i = t.getLineMaxColumn(e.startLineNumber);
                return e.startColumn === i
                  ? new d.e(
                      e.startLineNumber,
                      e.startColumn,
                      e.startLineNumber + 1,
                      1
                    )
                  : new d.e(
                      e.startLineNumber,
                      e.startColumn,
                      e.startLineNumber,
                      i
                    );
              }
              return e;
            });
            return n.sort(d.e.compareRangesUsingStarts), n;
          }
        }
        class Y extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.joinLines',
              label: n.N('lines.joinLines', 'Join Lines'),
              alias: 'Join Lines',
              precondition: p.u.writable,
              kbOpts: {
                kbExpr: p.u.editorTextFocus,
                primary: 0,
                mac: { primary: 296 },
                weight: 100,
              },
            });
          }
          run(e, t) {
            let i = t.getSelections();
            if (null === i) return;
            let n = t.getSelection();
            if (null === n) return;
            i.sort(d.e.compareRangesUsingStarts);
            let r = [],
              s = i.reduce((e, t) =>
                e.isEmpty()
                  ? e.endLineNumber === t.startLineNumber
                    ? (n.equalsSelection(e) && (n = t), t)
                    : t.startLineNumber > e.endLineNumber + 1
                    ? (r.push(e), t)
                    : new f.Y(
                        e.startLineNumber,
                        e.startColumn,
                        t.endLineNumber,
                        t.endColumn
                      )
                  : t.startLineNumber > e.endLineNumber
                  ? (r.push(e), t)
                  : new f.Y(
                      e.startLineNumber,
                      e.startColumn,
                      t.endLineNumber,
                      t.endColumn
                    )
              );
            r.push(s);
            let o = t.getModel();
            if (null === o) return;
            let a = [],
              l = [],
              h = n,
              u = 0;
            for (let e = 0, t = r.length; e < t; e++) {
              let t,
                i,
                s = r[e],
                g = s.startLineNumber,
                p = 1,
                m = 0,
                _ = o.getLineContent(s.endLineNumber).length - s.endColumn;
              if (s.isEmpty() || s.startLineNumber === s.endLineNumber) {
                let e = s.getStartPosition();
                e.lineNumber < o.getLineCount()
                  ? ((t = g + 1), (i = o.getLineMaxColumn(t)))
                  : ((t = e.lineNumber),
                    (i = o.getLineMaxColumn(e.lineNumber)));
              } else (t = s.endLineNumber), (i = o.getLineMaxColumn(t));
              let b = o.getLineContent(g);
              for (let e = g + 1; e <= t; e++) {
                let t = o.getLineContent(e),
                  i = o.getLineFirstNonWhitespaceColumn(e);
                if (i >= 1) {
                  let e = !0;
                  '' === b && (e = !1),
                    !e ||
                      (' ' !== b.charAt(b.length - 1) &&
                        '\t' !== b.charAt(b.length - 1)) ||
                      ((e = !1), (b = b.replace(/[\s\uFEFF\xA0]+$/g, ' ')));
                  let n = t.substr(i - 1);
                  (b += (e ? ' ' : '') + n), (m = e ? n.length + 1 : n.length);
                } else m = 0;
              }
              let v = new d.e(g, p, t, i);
              if (!v.isEmpty()) {
                let e;
                s.isEmpty()
                  ? (a.push(c.h.replace(v, b)),
                    (e = new f.Y(
                      v.startLineNumber - u,
                      b.length - m + 1,
                      g - u,
                      b.length - m + 1
                    )))
                  : s.startLineNumber === s.endLineNumber
                  ? (a.push(c.h.replace(v, b)),
                    (e = new f.Y(
                      s.startLineNumber - u,
                      s.startColumn,
                      s.endLineNumber - u,
                      s.endColumn
                    )))
                  : (a.push(c.h.replace(v, b)),
                    (e = new f.Y(
                      s.startLineNumber - u,
                      s.startColumn,
                      s.startLineNumber - u,
                      b.length - _
                    ))),
                  null !== d.e.intersectRanges(v, n) ? (h = e) : l.push(e);
              }
              u += v.endLineNumber - v.startLineNumber;
            }
            l.unshift(h),
              t.pushUndoStop(),
              t.executeEdits(this.id, a, l),
              t.pushUndoStop();
          }
        }
        class H extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.transpose',
              label: n.N(
                'editor.transpose',
                'Transpose characters around the cursor'
              ),
              alias: 'Transpose characters around the cursor',
              precondition: p.u.writable,
            });
          }
          run(e, t) {
            let i = t.getSelections();
            if (null === i) return;
            let n = t.getModel();
            if (null === n) return;
            let r = [];
            for (let e = 0, t = i.length; e < t; e++) {
              let t = i[e];
              if (!t.isEmpty()) continue;
              let s = t.getStartPosition(),
                o = n.getLineMaxColumn(s.lineNumber);
              if (s.column >= o) {
                if (s.lineNumber === n.getLineCount()) continue;
                let e = new d.e(
                    s.lineNumber,
                    Math.max(1, s.column - 1),
                    s.lineNumber + 1,
                    1
                  ),
                  t = n.getValueInRange(e).split('').reverse().join('');
                r.push(
                  new a.T4(
                    new f.Y(
                      s.lineNumber,
                      Math.max(1, s.column - 1),
                      s.lineNumber + 1,
                      1
                    ),
                    t
                  )
                );
              } else {
                let e = new d.e(
                    s.lineNumber,
                    Math.max(1, s.column - 1),
                    s.lineNumber,
                    s.column + 1
                  ),
                  t = n.getValueInRange(e).split('').reverse().join('');
                r.push(
                  new a.hP(
                    e,
                    t,
                    new f.Y(
                      s.lineNumber,
                      s.column + 1,
                      s.lineNumber,
                      s.column + 1
                    )
                  )
                );
              }
            }
            t.pushUndoStop(), t.executeCommands(this.id, r), t.pushUndoStop();
          }
        }
        class j extends o.R6 {
          run(e, t) {
            let i = t.getSelections();
            if (null === i) return;
            let n = t.getModel();
            if (null === n) return;
            let r = t.getOption(105),
              s = [];
            for (let e = 0, o = i.length; e < o; e++) {
              let o = i[e];
              if (o.isEmpty()) {
                let e = o.getStartPosition();
                const i = t.getConfiguredWordAtPosition(e);
                if (!i) continue;
                let l = new d.e(
                    e.lineNumber,
                    i.startColumn,
                    e.lineNumber,
                    i.endColumn
                  ),
                  c = n.getValueInRange(l);
                s.push(
                  new a.hP(
                    l,
                    this._modifyText(c, r),
                    new f.Y(e.lineNumber, e.column, e.lineNumber, e.column)
                  )
                );
              } else {
                let e = n.getValueInRange(o);
                s.push(new a.hP(o, this._modifyText(e, r), o));
              }
            }
            t.pushUndoStop(), t.executeCommands(this.id, s), t.pushUndoStop();
          }
        }
        class V extends j {
          constructor() {
            super({
              id: 'editor.action.transformToUppercase',
              label: n.N(
                'editor.transformToUppercase',
                'Transform to Uppercase'
              ),
              alias: 'Transform to Uppercase',
              precondition: p.u.writable,
            });
          }
          _modifyText(e, t) {
            return e.toLocaleUpperCase();
          }
        }
        class z extends j {
          constructor() {
            super({
              id: 'editor.action.transformToLowercase',
              label: n.N(
                'editor.transformToLowercase',
                'Transform to Lowercase'
              ),
              alias: 'Transform to Lowercase',
              precondition: p.u.writable,
            });
          }
          _modifyText(e, t) {
            return e.toLocaleLowerCase();
          }
        }
        class U extends j {
          constructor() {
            super({
              id: 'editor.action.transformToTitlecase',
              label: n.N(
                'editor.transformToTitlecase',
                'Transform to Title Case'
              ),
              alias: 'Transform to Title Case',
              precondition: p.u.writable,
            });
          }
          _modifyText(e, t) {
            const i = ('\r\n\t ' + t).split('');
            let n = '',
              r = !0;
            for (let t = 0; t < e.length; t++) {
              let s = e[t];
              i.indexOf(s) >= 0
                ? ((r = !0), (n += s))
                : r
                ? ((r = !1), (n += s.toLocaleUpperCase()))
                : (n += s.toLocaleLowerCase());
            }
            return n;
          }
        }
        (0, o.Qr)(
          class extends x {
            constructor() {
              super(!1, {
                id: 'editor.action.copyLinesUpAction',
                label: n.N('lines.copyUp', 'Copy Line Up'),
                alias: 'Copy Line Up',
                precondition: p.u.writable,
                kbOpts: {
                  kbExpr: p.u.editorTextFocus,
                  primary: 1552,
                  linux: { primary: 3600 },
                  weight: 100,
                },
                menuOpts: {
                  menuId: k.eH.MenubarSelectionMenu,
                  group: '2_line',
                  title: n.N(
                    {
                      key: 'miCopyLinesUp',
                      comment: ['&& denotes a mnemonic'],
                    },
                    '&&Copy Line Up'
                  ),
                  order: 1,
                },
              });
            }
          }
        ),
          (0, o.Qr)(
            class extends x {
              constructor() {
                super(!0, {
                  id: 'editor.action.copyLinesDownAction',
                  label: n.N('lines.copyDown', 'Copy Line Down'),
                  alias: 'Copy Line Down',
                  precondition: p.u.writable,
                  kbOpts: {
                    kbExpr: p.u.editorTextFocus,
                    primary: 1554,
                    linux: { primary: 3602 },
                    weight: 100,
                  },
                  menuOpts: {
                    menuId: k.eH.MenubarSelectionMenu,
                    group: '2_line',
                    title: n.N(
                      {
                        key: 'miCopyLinesDown',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Co&&py Line Down'
                    ),
                    order: 2,
                  },
                });
              }
            }
          ),
          (0, o.Qr)(L),
          (0, o.Qr)(
            class extends M {
              constructor() {
                super(!1, {
                  id: 'editor.action.moveLinesUpAction',
                  label: n.N('lines.moveUp', 'Move Line Up'),
                  alias: 'Move Line Up',
                  precondition: p.u.writable,
                  kbOpts: {
                    kbExpr: p.u.editorTextFocus,
                    primary: 528,
                    linux: { primary: 528 },
                    weight: 100,
                  },
                  menuOpts: {
                    menuId: k.eH.MenubarSelectionMenu,
                    group: '2_line',
                    title: n.N(
                      {
                        key: 'miMoveLinesUp',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Mo&&ve Line Up'
                    ),
                    order: 3,
                  },
                });
              }
            }
          ),
          (0, o.Qr)(
            class extends M {
              constructor() {
                super(!0, {
                  id: 'editor.action.moveLinesDownAction',
                  label: n.N('lines.moveDown', 'Move Line Down'),
                  alias: 'Move Line Down',
                  precondition: p.u.writable,
                  kbOpts: {
                    kbExpr: p.u.editorTextFocus,
                    primary: 530,
                    linux: { primary: 530 },
                    weight: 100,
                  },
                  menuOpts: {
                    menuId: k.eH.MenubarSelectionMenu,
                    group: '2_line',
                    title: n.N(
                      {
                        key: 'miMoveLinesDown',
                        comment: ['&& denotes a mnemonic'],
                      },
                      'Move &&Line Down'
                    ),
                    order: 4,
                  },
                });
              }
            }
          ),
          (0, o.Qr)(N),
          (0, o.Qr)(E),
          (0, o.Qr)(T),
          (0, o.Qr)(I),
          (0, o.Qr)(O),
          (0, o.Qr)(A),
          (0, o.Qr)(R),
          (0, o.Qr)(P),
          (0, o.Qr)(B),
          (0, o.Qr)(W),
          (0, o.Qr)(Y),
          (0, o.Qr)(H),
          (0, o.Qr)(V),
          (0, o.Qr)(z),
          (0, o.Qr)(U);
      },
      34800: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { LinkDetector: () => O });
        var n = i(63580),
          r = i(15393),
          s = i(71050),
          o = i(17301),
          a = i(59365),
          l = i(5976),
          c = i(1432),
          d = i(16830),
          h = i(3411),
          u = i(43775),
          g = i(69241),
          f = i(70666),
          p = i(24314),
          m = i(51200),
          _ = i(94565),
          b = i(9488),
          v = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        class y {
          constructor(e, t) {
            (this._link = e), (this._provider = t);
          }
          toJSON() {
            return { range: this.range, url: this.url, tooltip: this.tooltip };
          }
          get range() {
            return this._link.range;
          }
          get url() {
            return this._link.url;
          }
          get tooltip() {
            return this._link.tooltip;
          }
          resolve(e) {
            return v(this, void 0, void 0, function* () {
              return this._link.url
                ? this._link.url
                : 'function' == typeof this._provider.resolveLink
                ? Promise.resolve(
                    this._provider.resolveLink(this._link, e)
                  ).then(
                    (t) => (
                      (this._link = t || this._link),
                      this._link.url
                        ? this.resolve(e)
                        : Promise.reject(new Error('missing'))
                    )
                  )
                : Promise.reject(new Error('missing'));
            });
          }
        }
        class w extends l.JT {
          constructor(e) {
            super();
            let t = [];
            for (const [i, n] of e) {
              const e = i.links.map((e) => new y(e, n));
              (t = w._union(t, e)), (0, l.Wf)(i) && this._register(i);
            }
            this.links = t;
          }
          static _union(e, t) {
            let i,
              n,
              r,
              s,
              o = [];
            for (i = 0, r = 0, n = e.length, s = t.length; i < n && r < s; ) {
              const n = e[i],
                s = t[r];
              p.e.areIntersectingOrTouching(n.range, s.range)
                ? i++
                : p.e.compareRangesUsingStarts(n.range, s.range) < 0
                ? (o.push(n), i++)
                : (o.push(s), r++);
            }
            for (; i < n; i++) o.push(e[i]);
            for (; r < s; r++) o.push(t[r]);
            return o;
          }
        }
        function C(e, t) {
          const i = [],
            n = u.pM
              .ordered(e)
              .reverse()
              .map((n, r) =>
                Promise.resolve(n.provideLinks(e, t)).then((e) => {
                  e && (i[r] = [e, n]);
                }, o.Cp)
              );
          return Promise.all(n).then(() => {
            const e = new w((0, b.kX)(i));
            return t.isCancellationRequested ? (e.dispose(), new w([])) : e;
          });
        }
        _.P.registerCommand('_executeLinkProvider', (e, ...t) =>
          v(void 0, void 0, void 0, function* () {
            const [i] = t;
            if (!(i instanceof f.o)) return [];
            const n = e.get(m.q).getModel(i);
            if (!n) return [];
            const r = yield C(n, s.T.None);
            if (!r) return [];
            const o = r.links.slice(0);
            return r.dispose(), o;
          })
        );
        var S = i(59422),
          k = i(50988),
          x = i(73910),
          L = i(97781),
          M = i(66663),
          D = i(95935),
          N = i(97295),
          E = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const T = {
          general: h.qx.register({
            stickiness: 1,
            collapseOnReplaceEdit: !0,
            inlineClassName: 'detected-link',
          }),
          active: h.qx.register({
            stickiness: 1,
            collapseOnReplaceEdit: !0,
            inlineClassName: 'detected-link-active',
          }),
        };
        class I {
          constructor(e, t) {
            (this.link = e), (this.decorationId = t);
          }
          static decoration(e, t) {
            return { range: e.range, options: I._getOptions(e, t, !1) };
          }
          static _getOptions(e, t, i) {
            const r = Object.assign({}, i ? T.active : T.general);
            return (
              (r.hoverMessage = (function (e, t) {
                const i = e.url && /^command:/i.test(e.url.toString()),
                  r = e.tooltip
                    ? e.tooltip
                    : i
                    ? n.N('links.navigate.executeCmd', 'Execute command')
                    : n.N('links.navigate.follow', 'Follow link'),
                  s = t
                    ? c.dz
                      ? n.N('links.navigate.kb.meta.mac', 'cmd + click')
                      : n.N('links.navigate.kb.meta', 'ctrl + click')
                    : c.dz
                    ? n.N('links.navigate.kb.alt.mac', 'option + click')
                    : n.N('links.navigate.kb.alt', 'alt + click');
                return e.url
                  ? new a.W5('', !0).appendMarkdown(
                      `[${r}](${e.url.toString()}) (${s})`
                    )
                  : new a.W5().appendText(`${r} (${s})`);
              })(e, t)),
              r
            );
          }
          activate(e, t) {
            e.changeDecorationOptions(
              this.decorationId,
              I._getOptions(this.link, t, !0)
            );
          }
          deactivate(e, t) {
            e.changeDecorationOptions(
              this.decorationId,
              I._getOptions(this.link, t, !1)
            );
          }
        }
        let O = class e {
          constructor(e, t, i) {
            (this.listenersToRemove = new l.SL()),
              (this.editor = e),
              (this.openerService = t),
              (this.notificationService = i);
            let n = new g.yN(e);
            this.listenersToRemove.add(n),
              this.listenersToRemove.add(
                n.onMouseMoveOrRelevantKeyDown(([e, t]) => {
                  this._onEditorMouseMove(e, t);
                })
              ),
              this.listenersToRemove.add(
                n.onExecute((e) => {
                  this.onEditorMouseUp(e);
                })
              ),
              this.listenersToRemove.add(
                n.onCancel((e) => {
                  this.cleanUpActiveLinkDecoration();
                })
              ),
              (this.enabled = e.getOption(54)),
              this.listenersToRemove.add(
                e.onDidChangeConfiguration((t) => {
                  const i = e.getOption(54);
                  this.enabled !== i &&
                    ((this.enabled = i),
                    this.updateDecorations([]),
                    this.stop(),
                    this.beginCompute());
                })
              ),
              this.listenersToRemove.add(
                e.onDidChangeModelContent((e) => this.onChange())
              ),
              this.listenersToRemove.add(
                e.onDidChangeModel((e) => this.onModelChanged())
              ),
              this.listenersToRemove.add(
                e.onDidChangeModelLanguage((e) => this.onModelModeChanged())
              ),
              this.listenersToRemove.add(
                u.pM.onDidChange((e) => this.onModelModeChanged())
              ),
              (this.timeout = new r._F()),
              (this.computePromise = null),
              (this.activeLinksList = null),
              (this.currentOccurrences = {}),
              (this.activeLinkDecorationId = null),
              this.beginCompute();
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          onModelChanged() {
            (this.currentOccurrences = {}),
              (this.activeLinkDecorationId = null),
              this.stop(),
              this.beginCompute();
          }
          onModelModeChanged() {
            this.stop(), this.beginCompute();
          }
          onChange() {
            this.timeout.setIfNotSet(
              () => this.beginCompute(),
              e.RECOMPUTE_TIME
            );
          }
          beginCompute() {
            return (
              (e = this),
              (t = void 0),
              (n = function* () {
                if (!this.editor.hasModel() || !this.enabled) return;
                const e = this.editor.getModel();
                if (u.pM.has(e)) {
                  this.activeLinksList &&
                    (this.activeLinksList.dispose(),
                    (this.activeLinksList = null)),
                    (this.computePromise = r.PG((t) => C(e, t)));
                  try {
                    (this.activeLinksList = yield this.computePromise),
                      this.updateDecorations(this.activeLinksList.links);
                  } catch (e) {
                    (0, o.dL)(e);
                  } finally {
                    this.computePromise = null;
                  }
                }
              }),
              new ((i = void 0) || (i = Promise))(function (r, s) {
                function o(e) {
                  try {
                    l(n.next(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function a(e) {
                  try {
                    l(n.throw(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function l(e) {
                  var t;
                  e.done
                    ? r(e.value)
                    : ((t = e.value),
                      t instanceof i
                        ? t
                        : new i(function (e) {
                            e(t);
                          })).then(o, a);
                }
                l((n = n.apply(e, t || [])).next());
              })
            );
            var e, t, i, n;
          }
          updateDecorations(e) {
            const t = 'altKey' === this.editor.getOption(61);
            let i = [],
              n = Object.keys(this.currentOccurrences);
            for (let e = 0, t = n.length; e < t; e++) {
              let t = n[e],
                r = this.currentOccurrences[t];
              i.push(r.decorationId);
            }
            let r = [];
            if (e) for (const i of e) r.push(I.decoration(i, t));
            let s = this.editor.deltaDecorations(i, r);
            (this.currentOccurrences = {}),
              (this.activeLinkDecorationId = null);
            for (let t = 0, i = s.length; t < i; t++) {
              let i = new I(e[t], s[t]);
              this.currentOccurrences[i.decorationId] = i;
            }
          }
          _onEditorMouseMove(e, t) {
            const i = 'altKey' === this.editor.getOption(61);
            if (this.isEnabled(e, t)) {
              this.cleanUpActiveLinkDecoration();
              const t = this.getLinkOccurrence(e.target.position);
              t &&
                this.editor.changeDecorations((e) => {
                  t.activate(e, i),
                    (this.activeLinkDecorationId = t.decorationId);
                });
            } else this.cleanUpActiveLinkDecoration();
          }
          cleanUpActiveLinkDecoration() {
            const e = 'altKey' === this.editor.getOption(61);
            if (this.activeLinkDecorationId) {
              const t = this.currentOccurrences[this.activeLinkDecorationId];
              t &&
                this.editor.changeDecorations((i) => {
                  t.deactivate(i, e);
                }),
                (this.activeLinkDecorationId = null);
            }
          }
          onEditorMouseUp(e) {
            if (!this.isEnabled(e)) return;
            const t = this.getLinkOccurrence(e.target.position);
            t && this.openLinkOccurrence(t, e.hasSideBySideModifier, !0);
          }
          openLinkOccurrence(e, t, i = !1) {
            if (!this.openerService) return;
            const { link: r } = e;
            r.resolve(s.T.None).then(
              (e) => {
                if ('string' == typeof e && this.editor.hasModel()) {
                  const t = this.editor.getModel().uri;
                  if (t.scheme === M.l.file && N.Ny(e, 'file:')) {
                    const i = f.o.parse(e);
                    if (i.scheme === M.l.file) {
                      const n = D.z_(i);
                      let r = null;
                      N.Ny(n, '/./')
                        ? (r = `.${n.substr(1)}`)
                        : N.Ny(n, '//./') && (r = `.${n.substr(2)}`),
                        r && (e = D.Vo(t, r));
                    }
                  }
                }
                return this.openerService.open(e, {
                  openToSide: t,
                  fromUserGesture: i,
                });
              },
              (e) => {
                const t = e instanceof Error ? e.message : e;
                'invalid' === t
                  ? this.notificationService.warn(
                      n.N(
                        'invalid.url',
                        'Failed to open this link because it is not well-formed: {0}',
                        r.url.toString()
                      )
                    )
                  : 'missing' === t
                  ? this.notificationService.warn(
                      n.N(
                        'missing.url',
                        'Failed to open this link because its target is missing.'
                      )
                    )
                  : (0, o.dL)(e);
              }
            );
          }
          getLinkOccurrence(e) {
            if (!this.editor.hasModel() || !e) return null;
            const t = this.editor
              .getModel()
              .getDecorationsInRange(
                {
                  startLineNumber: e.lineNumber,
                  startColumn: e.column,
                  endLineNumber: e.lineNumber,
                  endColumn: e.column,
                },
                0,
                !0
              );
            for (const e of t) {
              const t = this.currentOccurrences[e.id];
              if (t) return t;
            }
            return null;
          }
          isEnabled(e, t) {
            return Boolean(
              6 === e.target.type &&
                (e.hasTriggerModifier || (t && t.keyCodeIsTriggerKey))
            );
          }
          stop() {
            this.timeout.cancel(),
              this.activeLinksList && this.activeLinksList.dispose(),
              this.computePromise &&
                (this.computePromise.cancel(), (this.computePromise = null));
          }
          dispose() {
            this.listenersToRemove.dispose(),
              this.stop(),
              this.timeout.dispose();
          }
        };
        (O.ID = 'editor.linkDetector'),
          (O.RECOMPUTE_TIME = 1e3),
          (O = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([E(1, k.v4), E(2, S.lT)], O));
        class A extends d.R6 {
          constructor() {
            super({
              id: 'editor.action.openLink',
              label: n.N('label', 'Open Link'),
              alias: 'Open Link',
              precondition: void 0,
            });
          }
          run(e, t) {
            let i = O.get(t);
            if (!i) return;
            if (!t.hasModel()) return;
            let n = t.getSelections();
            for (let e of n) {
              let t = i.getLinkOccurrence(e.getEndPosition());
              t && i.openLinkOccurrence(t, !1);
            }
          }
        }
        (0, d._K)(O.ID, O),
          (0, d.Qr)(A),
          (0, L.Ic)((e, t) => {
            const i = e.getColor(x._Y);
            i &&
              t.addRule(
                `.monaco-editor .detected-link-active { color: ${i} !important; }`
              );
          });
      },
      53335: (e, t, i) => {
        'use strict';
        i.d(t, { $: () => M });
        var n = i(65321),
          r = i(48764),
          s = i(17301),
          o = i(59365),
          a = i(44742),
          l = i(33720);
        let c;
        !(function e(t, i, n) {
          function r(o, a) {
            if (!i[o]) {
              if (!t[o]) {
                if (s) return s(o, !0);
                var l = new Error("Cannot find module '" + o + "'");
                throw ((l.code = 'MODULE_NOT_FOUND'), l);
              }
              var c = (i[o] = { exports: {} });
              t[o][0].call(
                c.exports,
                function (e) {
                  return r(t[o][1][e] || e);
                },
                c,
                c.exports,
                e,
                t,
                i,
                n
              );
            }
            return i[o].exports;
          }
          for (var s = void 0, o = 0; o < n.length; o++) r(n[o]);
          return r;
        })(
          {
            1: [
              function (e, t, i) {
                var n = e('./toMap');
                t.exports = {
                  uris: n([
                    'background',
                    'base',
                    'cite',
                    'href',
                    'longdesc',
                    'src',
                    'usemap',
                  ]),
                };
              },
              { './toMap': 10 },
            ],
            2: [
              function (e, t, i) {
                t.exports = {
                  allowedAttributes: {
                    '*': ['title', 'accesskey'],
                    a: ['href', 'name', 'target', 'aria-label'],
                    iframe: ['allowfullscreen', 'frameborder', 'src'],
                    img: ['src', 'alt', 'title', 'aria-label'],
                  },
                  allowedClasses: {},
                  allowedSchemes: ['http', 'https', 'mailto'],
                  allowedTags: [
                    'a',
                    'abbr',
                    'article',
                    'b',
                    'blockquote',
                    'br',
                    'caption',
                    'code',
                    'del',
                    'details',
                    'div',
                    'em',
                    'h1',
                    'h2',
                    'h3',
                    'h4',
                    'h5',
                    'h6',
                    'hr',
                    'i',
                    'img',
                    'ins',
                    'kbd',
                    'li',
                    'main',
                    'mark',
                    'ol',
                    'p',
                    'pre',
                    'section',
                    'span',
                    'strike',
                    'strong',
                    'sub',
                    'summary',
                    'sup',
                    'table',
                    'tbody',
                    'td',
                    'th',
                    'thead',
                    'tr',
                    'u',
                    'ul',
                  ],
                  filter: null,
                };
              },
              {},
            ],
            3: [
              function (e, t, i) {
                var n = e('./toMap');
                t.exports = {
                  voids: n([
                    'area',
                    'br',
                    'col',
                    'hr',
                    'img',
                    'wbr',
                    'input',
                    'base',
                    'basefont',
                    'link',
                    'meta',
                  ]),
                };
              },
              { './toMap': 10 },
            ],
            4: [
              function (e, t, i) {
                e('he');
                var n = e('assignment'),
                  r = e('./parser'),
                  s = e('./sanitizer'),
                  o = e('./defaults');
                function a(e, t, i) {
                  var a = [],
                    l = !0 === i ? t : n({}, o, t),
                    c = s(a, l);
                  return r(e, c), a.join('');
                }
                (a.defaults = o), (t.exports = a), (c = a);
              },
              {
                './defaults': 2,
                './parser': 7,
                './sanitizer': 8,
                assignment: 6,
                he: 9,
              },
            ],
            5: [
              function (e, t, i) {
                t.exports = function (e) {
                  return 'string' == typeof e ? e.toLowerCase() : e;
                };
              },
              {},
            ],
            6: [
              function (e, t, i) {
                t.exports = function e(t) {
                  for (
                    var i, n, r = Array.prototype.slice.call(arguments, 1);
                    r.length;

                  )
                    for (n in (i = r.shift()))
                      i.hasOwnProperty(n) &&
                        ('[object Object]' ===
                        Object.prototype.toString.call(t[n])
                          ? (t[n] = e(t[n], i[n]))
                          : (t[n] = i[n]));
                  return t;
                };
              },
              {},
            ],
            7: [
              function (e, t, i) {
                var n = e('he'),
                  r = e('./lowercase'),
                  s = (e('./attributes'), e('./elements')),
                  o = /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,
                  a = /^<\s*\/\s*([\w:-]+)[^>]*>/,
                  l = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,
                  c = /^</,
                  d = /^<\s*\//;
                t.exports = function (e, t) {
                  for (
                    var i,
                      h = (function () {
                        var e = [];
                        return (
                          (e.lastItem = function () {
                            return e[e.length - 1];
                          }),
                          e
                        );
                      })(),
                      u = e;
                    e;

                  )
                    g();
                  function g() {
                    var n;
                    (i = !0),
                      '\x3c!--' === e.substr(0, 4)
                        ? (n = e.indexOf('--\x3e')) >= 0 &&
                          (t.comment && t.comment(e.substring(4, n)),
                          (e = e.substring(n + 3)),
                          (i = !1))
                        : d.test(e)
                        ? f(a, m)
                        : c.test(e) && f(o, p),
                      (function () {
                        if (i) {
                          var n,
                            r = e.indexOf('<');
                          r >= 0
                            ? ((n = e.substring(0, r)), (e = e.substring(r)))
                            : ((n = e), (e = '')),
                            t.chars && t.chars(n);
                        }
                      })();
                    var r = e === u;
                    (u = e), r && (e = '');
                  }
                  function f(t, n) {
                    var r = e.match(t);
                    r &&
                      ((e = e.substring(r[0].length)),
                      r[0].replace(t, n),
                      (i = !1));
                  }
                  function p(e, i, o, a) {
                    var c = {},
                      d = r(i),
                      u = s.voids[d] || !!a;
                    o.replace(l, function (e, t, i, r, s) {
                      c[t] =
                        void 0 === i && void 0 === r && void 0 === s
                          ? void 0
                          : n.decode(i || r || s || '');
                    }),
                      u || h.push(d),
                      t.start && t.start(d, c, u);
                  }
                  function m(e, i) {
                    var n,
                      s = 0,
                      o = r(i);
                    if (o) for (s = h.length - 1; s >= 0 && h[s] !== o; s--);
                    if (s >= 0) {
                      for (n = h.length - 1; n >= s; n--) t.end && t.end(h[n]);
                      h.length = s;
                    }
                  }
                  m();
                };
              },
              { './attributes': 1, './elements': 3, './lowercase': 5, he: 9 },
            ],
            8: [
              function (e, t, i) {
                var n = e('he'),
                  r = e('./lowercase'),
                  s = e('./attributes'),
                  o = e('./elements');
                t.exports = function (e, t) {
                  var i,
                    a = t || {};
                  return (
                    d(),
                    {
                      start: function (e, t, o) {
                        var d = r(e);
                        i.ignoring
                          ? c(d)
                          : -1 !== (a.allowedTags || []).indexOf(d) &&
                            (!a.filter || a.filter({ tag: d, attrs: t }))
                          ? (l('<'),
                            l(d),
                            Object.keys(t).forEach(function (e) {
                              var i = t[e],
                                o = (a.allowedClasses || {})[d] || [],
                                c = (a.allowedAttributes || {})[d] || [];
                              c = c.concat(
                                (a.allowedAttributes || {})['*'] || []
                              );
                              var h = r(e);
                              ('class' === h && -1 === c.indexOf(h)
                                ? (i = i
                                    .split(' ')
                                    .filter(function (e) {
                                      return o && -1 !== o.indexOf(e);
                                    })
                                    .join(' ')
                                    .trim()).length
                                : -1 !== c.indexOf(h) &&
                                  (!0 !== s.uris[h] ||
                                    (function (e) {
                                      var t = e[0];
                                      if ('#' === t || '/' === t) return !0;
                                      var i = e.indexOf(':');
                                      if (-1 === i) return !0;
                                      var n = e.indexOf('?');
                                      if (-1 !== n && i > n) return !0;
                                      var r = e.indexOf('#');
                                      return (
                                        (-1 !== r && i > r) ||
                                        a.allowedSchemes.some(function (t) {
                                          return 0 === e.indexOf(t + ':');
                                        })
                                      );
                                    })(i))) &&
                                (l(' '),
                                l(e),
                                'string' == typeof i &&
                                  (l('="'), l(n.encode(i)), l('"')));
                            }),
                            l(o ? '/>' : '>'))
                          : c(d);
                      },
                      end: function (e) {
                        var t = r(e);
                        -1 !== (a.allowedTags || []).indexOf(t) &&
                        !1 === i.ignoring
                          ? (l('</'), l(t), l('>'))
                          : (function (e) {
                              i.ignoring === e && --i.depth <= 0 && d();
                            })(t);
                      },
                      chars: function (e) {
                        !1 === i.ignoring &&
                          l(a.transformText ? a.transformText(e) : e);
                      },
                    }
                  );
                  function l(t) {
                    e.push(t);
                  }
                  function c(e) {
                    o.voids[e] ||
                      (!1 === i.ignoring
                        ? (i = { ignoring: e, depth: 1 })
                        : i.ignoring === e && i.depth++);
                  }
                  function d() {
                    i = { ignoring: !1, depth: 0 };
                  }
                };
              },
              { './attributes': 1, './elements': 3, './lowercase': 5, he: 9 },
            ],
            9: [
              function (e, t, i) {
                var n = {
                    '&': '&amp;',
                    '<': '&lt;',
                    '>': '&gt;',
                    '"': '&quot;',
                    "'": '&#39;',
                  },
                  r = {
                    '&amp;': '&',
                    '&lt;': '<',
                    '&gt;': '>',
                    '&quot;': '"',
                    '&#39;': "'",
                  },
                  s = /(&amp;|&lt;|&gt;|&quot;|&#39;)/g,
                  o = /[&<>"']/g;
                function a(e) {
                  return n[e];
                }
                function l(e) {
                  return r[e];
                }
                function c(e) {
                  return null == e ? '' : String(e).replace(o, a);
                }
                function d(e) {
                  return null == e ? '' : String(e).replace(s, l);
                }
                (c.options = d.options = {}),
                  (t.exports = {
                    encode: c,
                    escape: c,
                    decode: d,
                    unescape: d,
                    version: '1.0.0-browser',
                  });
              },
              {},
            ],
            10: [
              function (e, t, i) {
                function n(e, t) {
                  return (e[t] = !0), e;
                }
                t.exports = function (e) {
                  return e.reduce(n, {});
                };
              },
              {},
            ],
          },
          {},
          [4]
        );
        var d = c,
          h = i(23897),
          u = i(36248),
          g = i(97295),
          f = i(70666),
          p = i(66663),
          m = i(73046),
          _ = i(95935),
          b = i(23938),
          v = i(50988),
          y = i(71531),
          w = i(55713),
          C = i(72065),
          S = i(4669),
          k = i(5976),
          x = i(43775),
          L = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let M = class extends k.JT {
          constructor(e, t, i = v.SW) {
            super(),
              (this._editor = e),
              (this._modeService = t),
              (this._openerService = i),
              (this._onDidRenderCodeBlock = this._register(new S.Q5())),
              (this.onDidRenderCodeBlock = this._onDidRenderCodeBlock.event);
          }
          getOptions(e) {
            return {
              codeBlockRenderer: (e, t) => {
                let i = null;
                if (e) i = this._modeService.getModeIdForLanguageName(e);
                else {
                  const e = this._editor.getModel();
                  e && (i = e.getLanguageIdentifier().language);
                }
                return (
                  this._modeService.triggerMode(i || ''),
                  Promise.resolve(!0)
                    .then((e) => {
                      const n = x.RW.getPromise(i || '');
                      return n
                        ? n.then((e) => (0, w.C)(t, e))
                        : (0, w.C)(t, void 0);
                    })
                    .then(
                      (e) =>
                        `<span style="font-family: ${
                          this._editor.getOption(36).fontFamily
                        }">${e}</span>`
                    )
                );
              },
              codeBlockRenderCallback: () => this._onDidRenderCodeBlock.fire(),
              actionHandler: {
                callback: (e) => {
                  this._openerService
                    .open(e, { fromUserGesture: !0 })
                    .catch(s.dL);
                },
                disposeables: e,
              },
            };
          }
          render(e) {
            const t = new k.SL();
            let i;
            return (
              (i = e
                ? (function (e, t = {}, i = {}) {
                    var c;
                    const v = (0, r.az)(t),
                      y = function (t) {
                        let i;
                        try {
                          i = (0, h.Q)(decodeURIComponent(t));
                        } catch (e) {}
                        return i
                          ? ((i = (0, u.rs)(i, (t) =>
                              e.uris && e.uris[t]
                                ? f.o.revive(e.uris[t])
                                : void 0
                            )),
                            encodeURIComponent(JSON.stringify(i)))
                          : t;
                      },
                      w = function (t, i) {
                        const r = e.uris && e.uris[t];
                        if (!r) return t;
                        let s = f.o.revive(r);
                        return f.o.parse(t).toString() === s.toString()
                          ? t
                          : i
                          ? n.uD(s).toString(!0)
                          : (s.query && (s = s.with({ query: y(s.query) })),
                            s.toString());
                      };
                    let C;
                    const S = new Promise((e) => (C = e)),
                      k = new l.Renderer();
                    (k.image = (e, i, n) => {
                      let r = [],
                        s = [];
                      if (e) {
                        ({ href: e, dimensions: r } = (0, o.v1)(e)),
                          (e = w(e, !0));
                        try {
                          const i = f.o.parse(e);
                          t.baseUrl &&
                            i.scheme === p.l.file &&
                            (e = (0, _.i3)(t.baseUrl, e).toString());
                        } catch (e) {}
                        s.push(`src="${e}"`);
                      }
                      return (
                        n && s.push(`alt="${n}"`),
                        i && s.push(`title="${i}"`),
                        r.length && (s = s.concat(r)),
                        '<img ' + s.join(' ') + '>'
                      );
                    }),
                      (k.link = (i, n, r) => (
                        i === r && (r = (0, o.oR)(r)),
                        (i = w(i, !1)),
                        t.baseUrl &&
                          (/^\w[\w\d+.-]*:/.test(i) ||
                            (i = (0, _.i3)(t.baseUrl, i).toString())),
                        (n = (0, o.oR)(n)),
                        !(i = (0, o.oR)(i)) ||
                        i.match(/^data:|javascript:/i) ||
                        (i.match(/^command:/i) && !e.isTrusted) ||
                        i.match(
                          /^command:(\/\/\/)?_workbench\.downloadResource/i
                        )
                          ? r
                          : `<a href="#" data-href="${(i = i
                              .replace(/&/g, '&amp;')
                              .replace(/</g, '&lt;')
                              .replace(/>/g, '&gt;')
                              .replace(/"/g, '&quot;')
                              .replace(/'/g, '&#39;'))}" title="${
                              n || i
                            }">${r}</a>`
                      )),
                      (k.paragraph = (t) =>
                        `<p>${e.supportThemeIcons ? (0, m.Mi)(t) : t}</p>`),
                      t.codeBlockRenderer &&
                        (k.code = (e, i) => {
                          const n = t.codeBlockRenderer(i, e),
                            r = a.a.nextId(),
                            s = Promise.all([n, S])
                              .then((e) => {
                                const t = e[0],
                                  i = v.querySelector(`div[data-code="${r}"]`);
                                i && (i.innerHTML = t);
                              })
                              .catch((e) => {});
                          return (
                            t.codeBlockRenderCallback &&
                              s.then(t.codeBlockRenderCallback),
                            `<div class="code" data-code="${r}">${(0, g.YU)(
                              e
                            )}</div>`
                          );
                        });
                    const x = t.actionHandler;
                    x &&
                      [n.tw.CLICK, n.tw.AUXCLICK].forEach((e) => {
                        x.disposeables.add(
                          n.nm(v, e, (e) => {
                            const t = new b.n(e);
                            if (!t.leftButton && !t.middleButton) return;
                            let i = t.target;
                            if (
                              'A' === i.tagName ||
                              ((i = i.parentElement), i && 'A' === i.tagName)
                            )
                              try {
                                const e = i.dataset.href;
                                e && x.callback(e, t);
                              } catch (e) {
                                (0, s.dL)(e);
                              } finally {
                                t.preventDefault();
                              }
                          })
                        );
                      }),
                      (i.sanitizer = (t) =>
                        (
                          e.isTrusted
                            ? t.match(/^(<span[^<]+>)|(<\/\s*span>)$/)
                            : void 0
                        )
                          ? t
                          : ''),
                      (i.sanitize = !0),
                      (i.renderer = k);
                    const L = [
                      p.l.http,
                      p.l.https,
                      p.l.mailto,
                      p.l.data,
                      p.l.file,
                      p.l.vscodeRemote,
                      p.l.vscodeRemoteResource,
                    ];
                    e.isTrusted && L.push(p.l.command);
                    let M = null !== (c = e.value) && void 0 !== c ? c : '';
                    M.length > 1e5 && (M = `${M.substr(0, 1e5)}…`);
                    const D = l.parse(
                      e.supportThemeIcons ? (0, m.dg)(M) : M,
                      i
                    );
                    return (
                      (v.innerHTML = d(D, {
                        allowedSchemes: L,
                        allowedTags: [
                          'ul',
                          'li',
                          'p',
                          'code',
                          'blockquote',
                          'ol',
                          'h1',
                          'h2',
                          'h3',
                          'h4',
                          'h5',
                          'h6',
                          'hr',
                          'em',
                          'pre',
                          'table',
                          'thead',
                          'tbody',
                          'tr',
                          'th',
                          'td',
                          'div',
                          'del',
                          'a',
                          'strong',
                          'br',
                          'img',
                          'span',
                        ],
                        allowedAttributes: {
                          a: ['href', 'name', 'target', 'data-href'],
                          img: ['src', 'title', 'alt', 'width', 'height'],
                          div: ['class', 'data-code'],
                          span: ['class', 'style'],
                          th: ['align'],
                          td: ['align'],
                        },
                        filter: function (t) {
                          return !(
                            'span' === t.tag &&
                            e.isTrusted &&
                            1 === Object.keys(t.attrs).length &&
                            (t.attrs.style
                              ? !t.attrs.style.match(
                                  /^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/
                                )
                              : !t.attrs.class ||
                                !t.attrs.class.match(
                                  /^codicon codicon-[a-z\-]+( codicon-animation-[a-z\-]+)?$/
                                ))
                          );
                        },
                      })),
                      C(),
                      v
                    );
                  })(e, this.getOptions(t))
                : document.createElement('span')),
              { element: i, dispose: () => t.dispose() }
            );
          }
        };
        M = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([L(1, y.h), L(2, (0, C.jt)(v.v4))], M);
      },
      82276: (e, t, i) => {
        'use strict';
        i.d(t, { O: () => u });
        var n = i(63580),
          r = i(15393),
          s = i(5976),
          o = i(85152),
          a = i(24314),
          l = i(16830),
          c = i(38819),
          d = i(97781),
          h = i(73910);
        let u = class e extends s.JT {
          constructor(t, i) {
            super(),
              (this._messageWidget = this._register(new s.XK())),
              (this._messageListeners = this._register(new s.SL())),
              (this._editor = t),
              (this._visible = e.MESSAGE_VISIBLE.bindTo(i)),
              this._register(
                this._editor.onDidAttemptReadOnlyEdit(() =>
                  this._onDidAttemptReadOnlyEdit()
                )
              );
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            super.dispose(), this._visible.reset();
          }
          showMessage(e, t) {
            let i;
            (0, o.Z9)(e),
              this._visible.set(!0),
              this._messageWidget.clear(),
              this._messageListeners.clear(),
              (this._messageWidget.value = new m(this._editor, t, e)),
              this._messageListeners.add(
                this._editor.onDidBlurEditorText(() => this.closeMessage())
              ),
              this._messageListeners.add(
                this._editor.onDidChangeCursorPosition(() =>
                  this.closeMessage()
                )
              ),
              this._messageListeners.add(
                this._editor.onDidDispose(() => this.closeMessage())
              ),
              this._messageListeners.add(
                this._editor.onDidChangeModel(() => this.closeMessage())
              ),
              this._messageListeners.add(
                new r._F(() => this.closeMessage(), 3e3)
              ),
              this._messageListeners.add(
                this._editor.onMouseMove((e) => {
                  e.target.position &&
                    (i
                      ? i.containsPosition(e.target.position) ||
                        this.closeMessage()
                      : (i = new a.e(
                          t.lineNumber - 3,
                          1,
                          e.target.position.lineNumber + 3,
                          1
                        )));
                })
              );
          }
          closeMessage() {
            this._visible.reset(),
              this._messageListeners.clear(),
              this._messageWidget.value &&
                this._messageListeners.add(
                  m.fadeOut(this._messageWidget.value)
                );
          }
          _onDidAttemptReadOnlyEdit() {
            this._editor.hasModel() &&
              this.showMessage(
                n.N('editor.readonly', 'Cannot edit in read-only editor'),
                this._editor.getPosition()
              );
          }
        };
        var g, f;
        (u.ID = 'editor.contrib.messageController'),
          (u.MESSAGE_VISIBLE = new c.uy('messageVisible', !1)),
          (u = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((g = 1),
              (f = c.i6),
              function (e, t) {
                f(e, t, g);
              }),
            ],
            u
          ));
        const p = l._l.bindToContribution(u.get);
        (0, l.fK)(
          new p({
            id: 'leaveEditorMessage',
            precondition: u.MESSAGE_VISIBLE,
            handler: (e) => e.closeMessage(),
            kbOpts: { weight: 130, primary: 9 },
          })
        );
        class m {
          constructor(e, { lineNumber: t, column: i }, n) {
            (this.allowEditorOverflow = !0),
              (this.suppressMouseDown = !1),
              (this._editor = e),
              this._editor.revealLinesInCenterIfOutsideViewport(t, t, 0),
              (this._position = { lineNumber: t, column: i - 1 }),
              (this._domNode = document.createElement('div')),
              this._domNode.classList.add('monaco-editor-overlaymessage');
            const r = document.createElement('div');
            r.classList.add('message'),
              (r.textContent = n),
              this._domNode.appendChild(r);
            const s = document.createElement('div');
            s.classList.add('anchor'),
              this._domNode.appendChild(s),
              this._editor.addContentWidget(this),
              this._domNode.classList.add('fadeIn');
          }
          static fadeOut(e) {
            let t;
            const i = () => {
              e.dispose(),
                clearTimeout(t),
                e.getDomNode().removeEventListener('animationend', i);
            };
            return (
              (t = setTimeout(i, 110)),
              e.getDomNode().addEventListener('animationend', i),
              e.getDomNode().classList.add('fadeOut'),
              { dispose: i }
            );
          }
          dispose() {
            this._editor.removeContentWidget(this);
          }
          getId() {
            return 'messageoverlay';
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return { position: this._position, preference: [1, 2] };
          }
        }
        (0, l._K)(u.ID, u),
          (0, d.Ic)((e, t) => {
            const i = e.getColor(h.EP);
            if (i) {
              let n = e.type === d.QP ? 2 : 1;
              t.addRule(
                `.monaco-editor .monaco-editor-overlaymessage .anchor { border-top-color: ${i}; }`
              ),
                t.addRule(
                  `.monaco-editor .monaco-editor-overlaymessage .message { border: ${n}px solid ${i}; }`
                );
            }
            const n = e.getColor(h._l);
            n &&
              t.addRule(
                `.monaco-editor .monaco-editor-overlaymessage .message { background-color: ${n}; }`
              );
            const r = e.getColor(h.YI);
            r &&
              t.addRule(
                `.monaco-editor .monaco-editor-overlaymessage .message { color: ${r}; }`
              );
          });
      },
      38486: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            InsertCursorAbove: () => y,
            InsertCursorBelow: () => w,
            MultiCursorSessionResult: () => x,
            MultiCursorSession: () => L,
            MultiCursorSelectionController: () => M,
            MultiCursorSelectionControllerAction: () => D,
            AddSelectionToNextFindMatchAction: () => N,
            AddSelectionToPreviousFindMatchAction: () => E,
            MoveSelectionToNextFindMatchAction: () => T,
            MoveSelectionToPreviousFindMatchAction: () => I,
            SelectHighlightsAction: () => O,
            CompatChangeAll: () => A,
            SelectionHighlighter: () => P,
          });
        var n = i(63580),
          r = i(15393),
          s = i(22258),
          o = i(5976),
          a = i(16830),
          l = i(83814),
          c = i(24314),
          d = i(3860),
          h = i(29102),
          u = i(84973),
          g = i(3411),
          f = i(43775),
          p = i(93391),
          m = i(84144),
          _ = i(73910),
          b = i(97781),
          v = i(38819);
        class y extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.insertCursorAbove',
              label: n.N('mutlicursor.insertAbove', 'Add Cursor Above'),
              alias: 'Add Cursor Above',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.editorTextFocus,
                primary: 2576,
                linux: { primary: 1552, secondary: [3088] },
                weight: 100,
              },
              menuOpts: {
                menuId: m.eH.MenubarSelectionMenu,
                group: '3_multi',
                title: n.N(
                  {
                    key: 'miInsertCursorAbove',
                    comment: ['&& denotes a mnemonic'],
                  },
                  '&&Add Cursor Above'
                ),
                order: 2,
              },
            });
          }
          run(e, t, i) {
            if (!t.hasModel()) return;
            const n = i && !0 === i.logicalLine,
              r = t._getViewModel();
            r.cursorConfig.readOnly ||
              (r.pushStackElement(),
              r.setCursorStates(
                i.source,
                3,
                l.P.addCursorUp(r, r.getCursorStates(), n)
              ),
              r.revealTopMostCursor(i.source));
          }
        }
        class w extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.insertCursorBelow',
              label: n.N('mutlicursor.insertBelow', 'Add Cursor Below'),
              alias: 'Add Cursor Below',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.editorTextFocus,
                primary: 2578,
                linux: { primary: 1554, secondary: [3090] },
                weight: 100,
              },
              menuOpts: {
                menuId: m.eH.MenubarSelectionMenu,
                group: '3_multi',
                title: n.N(
                  {
                    key: 'miInsertCursorBelow',
                    comment: ['&& denotes a mnemonic'],
                  },
                  'A&&dd Cursor Below'
                ),
                order: 3,
              },
            });
          }
          run(e, t, i) {
            if (!t.hasModel()) return;
            const n = i && !0 === i.logicalLine,
              r = t._getViewModel();
            r.cursorConfig.readOnly ||
              (r.pushStackElement(),
              r.setCursorStates(
                i.source,
                3,
                l.P.addCursorDown(r, r.getCursorStates(), n)
              ),
              r.revealBottomMostCursor(i.source));
          }
        }
        class C extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.insertCursorAtEndOfEachLineSelected',
              label: n.N(
                'mutlicursor.insertAtEndOfEachLineSelected',
                'Add Cursors to Line Ends'
              ),
              alias: 'Add Cursors to Line Ends',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.editorTextFocus,
                primary: 1575,
                weight: 100,
              },
              menuOpts: {
                menuId: m.eH.MenubarSelectionMenu,
                group: '3_multi',
                title: n.N(
                  {
                    key: 'miInsertCursorAtEndOfEachLineSelected',
                    comment: ['&& denotes a mnemonic'],
                  },
                  'Add C&&ursors to Line Ends'
                ),
                order: 4,
              },
            });
          }
          getCursorsForSelection(e, t, i) {
            if (!e.isEmpty()) {
              for (let n = e.startLineNumber; n < e.endLineNumber; n++) {
                let e = t.getLineMaxColumn(n);
                i.push(new d.Y(n, e, n, e));
              }
              e.endColumn > 1 &&
                i.push(
                  new d.Y(
                    e.endLineNumber,
                    e.endColumn,
                    e.endLineNumber,
                    e.endColumn
                  )
                );
            }
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getModel(),
              n = t.getSelections();
            let r = [];
            n.forEach((e) => this.getCursorsForSelection(e, i, r)),
              r.length > 0 && t.setSelections(r);
          }
        }
        class S extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.addCursorsToBottom',
              label: n.N(
                'mutlicursor.addCursorsToBottom',
                'Add Cursors To Bottom'
              ),
              alias: 'Add Cursors To Bottom',
              precondition: void 0,
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getSelections(),
              n = t.getModel().getLineCount();
            let r = [];
            for (let e = i[0].startLineNumber; e <= n; e++)
              r.push(new d.Y(e, i[0].startColumn, e, i[0].endColumn));
            r.length > 0 && t.setSelections(r);
          }
        }
        class k extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.addCursorsToTop',
              label: n.N('mutlicursor.addCursorsToTop', 'Add Cursors To Top'),
              alias: 'Add Cursors To Top',
              precondition: void 0,
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getSelections();
            let n = [];
            for (let e = i[0].startLineNumber; e >= 1; e--)
              n.push(new d.Y(e, i[0].startColumn, e, i[0].endColumn));
            n.length > 0 && t.setSelections(n);
          }
        }
        class x {
          constructor(e, t, i) {
            (this.selections = e),
              (this.revealRange = t),
              (this.revealScrollType = i);
          }
        }
        class L {
          constructor(e, t, i, n, r, s, o) {
            (this._editor = e),
              (this.findController = t),
              (this.isDisconnectedFromFindController = i),
              (this.searchText = n),
              (this.wholeWord = r),
              (this.matchCase = s),
              (this.currentMatch = o);
          }
          static create(e, t) {
            if (!e.hasModel()) return null;
            const i = t.getState();
            if (!e.hasTextFocus() && i.isRevealed && i.searchString.length > 0)
              return new L(
                e,
                t,
                !1,
                i.searchString,
                i.wholeWord,
                i.matchCase,
                null
              );
            let n,
              r,
              s = !1;
            const o = e.getSelections();
            1 === o.length && o[0].isEmpty()
              ? ((s = !0), (n = !0), (r = !0))
              : ((n = i.wholeWord), (r = i.matchCase));
            const a = e.getSelection();
            let l,
              c = null;
            if (a.isEmpty()) {
              const t = e.getConfiguredWordAtPosition(a.getStartPosition());
              if (!t) return null;
              (l = t.word),
                (c = new d.Y(
                  a.startLineNumber,
                  t.startColumn,
                  a.startLineNumber,
                  t.endColumn
                ));
            } else l = e.getModel().getValueInRange(a).replace(/\r\n/g, '\n');
            return new L(e, t, s, l, n, r, c);
          }
          addSelectionToNextFindMatch() {
            if (!this._editor.hasModel()) return null;
            const e = this._getNextMatch();
            if (!e) return null;
            const t = this._editor.getSelections();
            return new x(t.concat(e), e, 0);
          }
          moveSelectionToNextFindMatch() {
            if (!this._editor.hasModel()) return null;
            const e = this._getNextMatch();
            if (!e) return null;
            const t = this._editor.getSelections();
            return new x(t.slice(0, t.length - 1).concat(e), e, 0);
          }
          _getNextMatch() {
            if (!this._editor.hasModel()) return null;
            if (this.currentMatch) {
              const e = this.currentMatch;
              return (this.currentMatch = null), e;
            }
            this.findController.highlightFindOptions();
            const e = this._editor.getSelections(),
              t = e[e.length - 1],
              i = this._editor
                .getModel()
                .findNextMatch(
                  this.searchText,
                  t.getEndPosition(),
                  !1,
                  this.matchCase,
                  this.wholeWord ? this._editor.getOption(105) : null,
                  !1
                );
            return i
              ? new d.Y(
                  i.range.startLineNumber,
                  i.range.startColumn,
                  i.range.endLineNumber,
                  i.range.endColumn
                )
              : null;
          }
          addSelectionToPreviousFindMatch() {
            if (!this._editor.hasModel()) return null;
            const e = this._getPreviousMatch();
            if (!e) return null;
            const t = this._editor.getSelections();
            return new x(t.concat(e), e, 0);
          }
          moveSelectionToPreviousFindMatch() {
            if (!this._editor.hasModel()) return null;
            const e = this._getPreviousMatch();
            if (!e) return null;
            const t = this._editor.getSelections();
            return new x(t.slice(0, t.length - 1).concat(e), e, 0);
          }
          _getPreviousMatch() {
            if (!this._editor.hasModel()) return null;
            if (this.currentMatch) {
              const e = this.currentMatch;
              return (this.currentMatch = null), e;
            }
            this.findController.highlightFindOptions();
            const e = this._editor.getSelections(),
              t = e[e.length - 1],
              i = this._editor
                .getModel()
                .findPreviousMatch(
                  this.searchText,
                  t.getStartPosition(),
                  !1,
                  this.matchCase,
                  this.wholeWord ? this._editor.getOption(105) : null,
                  !1
                );
            return i
              ? new d.Y(
                  i.range.startLineNumber,
                  i.range.startColumn,
                  i.range.endLineNumber,
                  i.range.endColumn
                )
              : null;
          }
          selectAll() {
            return this._editor.hasModel()
              ? (this.findController.highlightFindOptions(),
                this._editor
                  .getModel()
                  .findMatches(
                    this.searchText,
                    !0,
                    !1,
                    this.matchCase,
                    this.wholeWord ? this._editor.getOption(105) : null,
                    !1,
                    1073741824
                  ))
              : [];
          }
        }
        class M extends o.JT {
          constructor(e) {
            super(),
              (this._sessionDispose = this._register(new o.SL())),
              (this._editor = e),
              (this._ignoreSelectionChange = !1),
              (this._session = null);
          }
          static get(e) {
            return e.getContribution(M.ID);
          }
          dispose() {
            this._endSession(), super.dispose();
          }
          _beginSessionIfNeeded(e) {
            if (!this._session) {
              const t = L.create(this._editor, e);
              if (!t) return;
              this._session = t;
              const i = { searchString: this._session.searchText };
              this._session.isDisconnectedFromFindController &&
                ((i.wholeWordOverride = 1),
                (i.matchCaseOverride = 1),
                (i.isRegexOverride = 2)),
                e.getState().change(i, !1),
                this._sessionDispose.add(
                  this._editor.onDidChangeCursorSelection((e) => {
                    this._ignoreSelectionChange || this._endSession();
                  })
                ),
                this._sessionDispose.add(
                  this._editor.onDidBlurEditorText(() => {
                    this._endSession();
                  })
                ),
                this._sessionDispose.add(
                  e.getState().onFindReplaceStateChange((e) => {
                    (e.matchCase || e.wholeWord) && this._endSession();
                  })
                );
            }
          }
          _endSession() {
            if (
              (this._sessionDispose.clear(),
              this._session && this._session.isDisconnectedFromFindController)
            ) {
              const e = {
                wholeWordOverride: 0,
                matchCaseOverride: 0,
                isRegexOverride: 0,
              };
              this._session.findController.getState().change(e, !1);
            }
            this._session = null;
          }
          _setSelections(e) {
            (this._ignoreSelectionChange = !0),
              this._editor.setSelections(e),
              (this._ignoreSelectionChange = !1);
          }
          _expandEmptyToWord(e, t) {
            if (!t.isEmpty()) return t;
            const i = this._editor.getConfiguredWordAtPosition(
              t.getStartPosition()
            );
            return i
              ? new d.Y(
                  t.startLineNumber,
                  i.startColumn,
                  t.startLineNumber,
                  i.endColumn
                )
              : t;
          }
          _applySessionResult(e) {
            e &&
              (this._setSelections(e.selections),
              e.revealRange &&
                this._editor.revealRangeInCenterIfOutsideViewport(
                  e.revealRange,
                  e.revealScrollType
                ));
          }
          getSession(e) {
            return this._session;
          }
          addSelectionToNextFindMatch(e) {
            if (this._editor.hasModel()) {
              if (!this._session) {
                const t = this._editor.getSelections();
                if (t.length > 1) {
                  const i = e.getState().matchCase;
                  if (!F(this._editor.getModel(), t, i)) {
                    const e = this._editor.getModel();
                    let i = [];
                    for (let n = 0, r = t.length; n < r; n++)
                      i[n] = this._expandEmptyToWord(e, t[n]);
                    return void this._editor.setSelections(i);
                  }
                }
              }
              this._beginSessionIfNeeded(e),
                this._session &&
                  this._applySessionResult(
                    this._session.addSelectionToNextFindMatch()
                  );
            }
          }
          addSelectionToPreviousFindMatch(e) {
            this._beginSessionIfNeeded(e),
              this._session &&
                this._applySessionResult(
                  this._session.addSelectionToPreviousFindMatch()
                );
          }
          moveSelectionToNextFindMatch(e) {
            this._beginSessionIfNeeded(e),
              this._session &&
                this._applySessionResult(
                  this._session.moveSelectionToNextFindMatch()
                );
          }
          moveSelectionToPreviousFindMatch(e) {
            this._beginSessionIfNeeded(e),
              this._session &&
                this._applySessionResult(
                  this._session.moveSelectionToPreviousFindMatch()
                );
          }
          selectAll(e) {
            if (!this._editor.hasModel()) return;
            let t = null;
            const i = e.getState();
            if (i.isRevealed && i.searchString.length > 0 && i.isRegex)
              t = this._editor
                .getModel()
                .findMatches(
                  i.searchString,
                  !0,
                  i.isRegex,
                  i.matchCase,
                  i.wholeWord ? this._editor.getOption(105) : null,
                  !1,
                  1073741824
                );
            else {
              if ((this._beginSessionIfNeeded(e), !this._session)) return;
              t = this._session.selectAll();
            }
            if (i.searchScope) {
              const e = i.searchScope;
              let n = [];
              t.forEach((t) => {
                e.forEach((e) => {
                  t.range.endLineNumber <= e.endLineNumber &&
                    t.range.startLineNumber >= e.startLineNumber &&
                    n.push(t);
                });
              }),
                (t = n);
            }
            if (t.length > 0) {
              const e = this._editor.getSelection();
              for (let i = 0, n = t.length; i < n; i++) {
                const n = t[i];
                if (n.range.intersectRanges(e)) {
                  (t[i] = t[0]), (t[0] = n);
                  break;
                }
              }
              this._setSelections(
                t.map(
                  (e) =>
                    new d.Y(
                      e.range.startLineNumber,
                      e.range.startColumn,
                      e.range.endLineNumber,
                      e.range.endColumn
                    )
                )
              );
            }
          }
        }
        M.ID = 'editor.contrib.multiCursorController';
        class D extends a.R6 {
          run(e, t) {
            const i = M.get(t);
            if (!i) return;
            const n = p.CommonFindController.get(t);
            n && this._run(i, n);
          }
        }
        class N extends D {
          constructor() {
            super({
              id: 'editor.action.addSelectionToNextFindMatch',
              label: n.N(
                'addSelectionToNextFindMatch',
                'Add Selection To Next Find Match'
              ),
              alias: 'Add Selection To Next Find Match',
              precondition: void 0,
              kbOpts: { kbExpr: h.u.focus, primary: 2082, weight: 100 },
              menuOpts: {
                menuId: m.eH.MenubarSelectionMenu,
                group: '3_multi',
                title: n.N(
                  {
                    key: 'miAddSelectionToNextFindMatch',
                    comment: ['&& denotes a mnemonic'],
                  },
                  'Add &&Next Occurrence'
                ),
                order: 5,
              },
            });
          }
          _run(e, t) {
            e.addSelectionToNextFindMatch(t);
          }
        }
        class E extends D {
          constructor() {
            super({
              id: 'editor.action.addSelectionToPreviousFindMatch',
              label: n.N(
                'addSelectionToPreviousFindMatch',
                'Add Selection To Previous Find Match'
              ),
              alias: 'Add Selection To Previous Find Match',
              precondition: void 0,
              menuOpts: {
                menuId: m.eH.MenubarSelectionMenu,
                group: '3_multi',
                title: n.N(
                  {
                    key: 'miAddSelectionToPreviousFindMatch',
                    comment: ['&& denotes a mnemonic'],
                  },
                  'Add P&&revious Occurrence'
                ),
                order: 6,
              },
            });
          }
          _run(e, t) {
            e.addSelectionToPreviousFindMatch(t);
          }
        }
        class T extends D {
          constructor() {
            super({
              id: 'editor.action.moveSelectionToNextFindMatch',
              label: n.N(
                'moveSelectionToNextFindMatch',
                'Move Last Selection To Next Find Match'
              ),
              alias: 'Move Last Selection To Next Find Match',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.focus,
                primary: (0, s.gx)(2089, 2082),
                weight: 100,
              },
            });
          }
          _run(e, t) {
            e.moveSelectionToNextFindMatch(t);
          }
        }
        class I extends D {
          constructor() {
            super({
              id: 'editor.action.moveSelectionToPreviousFindMatch',
              label: n.N(
                'moveSelectionToPreviousFindMatch',
                'Move Last Selection To Previous Find Match'
              ),
              alias: 'Move Last Selection To Previous Find Match',
              precondition: void 0,
            });
          }
          _run(e, t) {
            e.moveSelectionToPreviousFindMatch(t);
          }
        }
        class O extends D {
          constructor() {
            super({
              id: 'editor.action.selectHighlights',
              label: n.N(
                'selectAllOccurrencesOfFindMatch',
                'Select All Occurrences of Find Match'
              ),
              alias: 'Select All Occurrences of Find Match',
              precondition: void 0,
              kbOpts: { kbExpr: h.u.focus, primary: 3114, weight: 100 },
              menuOpts: {
                menuId: m.eH.MenubarSelectionMenu,
                group: '3_multi',
                title: n.N(
                  {
                    key: 'miSelectHighlights',
                    comment: ['&& denotes a mnemonic'],
                  },
                  'Select All &&Occurrences'
                ),
                order: 7,
              },
            });
          }
          _run(e, t) {
            e.selectAll(t);
          }
        }
        class A extends D {
          constructor() {
            super({
              id: 'editor.action.changeAll',
              label: n.N('changeAll.label', 'Change All Occurrences'),
              alias: 'Change All Occurrences',
              precondition: v.Ao.and(h.u.writable, h.u.editorTextFocus),
              kbOpts: {
                kbExpr: h.u.editorTextFocus,
                primary: 2108,
                weight: 100,
              },
              contextMenuOpts: { group: '1_modification', order: 1.2 },
            });
          }
          _run(e, t) {
            e.selectAll(t);
          }
        }
        class R {
          constructor(e, t, i, n) {
            (this.searchText = e),
              (this.matchCase = t),
              (this.wordSeparators = i),
              (this.modelVersionId = n);
          }
          static softEquals(e, t) {
            return (
              (!e && !t) ||
              (!(!e || !t) &&
                e.searchText === t.searchText &&
                e.matchCase === t.matchCase &&
                e.wordSeparators === t.wordSeparators &&
                e.modelVersionId === t.modelVersionId)
            );
          }
        }
        class P extends o.JT {
          constructor(e) {
            super(),
              (this.editor = e),
              (this._isEnabled = e.getOption(89)),
              (this.decorations = []),
              (this.updateSoon = this._register(
                new r.pY(() => this._update(), 300)
              )),
              (this.state = null),
              this._register(
                e.onDidChangeConfiguration((t) => {
                  this._isEnabled = e.getOption(89);
                })
              ),
              this._register(
                e.onDidChangeCursorSelection((e) => {
                  this._isEnabled &&
                    (e.selection.isEmpty()
                      ? 3 === e.reason
                        ? (this.state && this._setState(null),
                          this.updateSoon.schedule())
                        : this._setState(null)
                      : this._update());
                })
              ),
              this._register(
                e.onDidChangeModel((e) => {
                  this._setState(null);
                })
              ),
              this._register(
                e.onDidChangeModelContent((e) => {
                  this._isEnabled && this.updateSoon.schedule();
                })
              ),
              this._register(
                p.CommonFindController.get(e)
                  .getState()
                  .onFindReplaceStateChange((e) => {
                    this._update();
                  })
              );
          }
          _update() {
            this._setState(P._createState(this._isEnabled, this.editor));
          }
          static _createState(e, t) {
            if (!e) return null;
            if (!t.hasModel()) return null;
            const i = t.getSelection();
            if (i.startLineNumber !== i.endLineNumber) return null;
            const n = M.get(t);
            if (!n) return null;
            const r = p.CommonFindController.get(t);
            if (!r) return null;
            let s = n.getSession(r);
            if (!s) {
              const e = t.getSelections();
              if (e.length > 1) {
                const i = r.getState().matchCase;
                if (!F(t.getModel(), e, i)) return null;
              }
              s = L.create(t, r);
            }
            if (!s) return null;
            if (s.currentMatch) return null;
            if (/^[ \t]+$/.test(s.searchText)) return null;
            if (s.searchText.length > 200) return null;
            const o = r.getState(),
              a = o.matchCase;
            if (o.isRevealed) {
              let e = o.searchString;
              a || (e = e.toLowerCase());
              let t = s.searchText;
              if (
                (a || (t = t.toLowerCase()),
                e === t &&
                  s.matchCase === o.matchCase &&
                  s.wholeWord === o.wholeWord &&
                  !o.isRegex)
              )
                return null;
            }
            return new R(
              s.searchText,
              s.matchCase,
              s.wholeWord ? t.getOption(105) : null,
              t.getModel().getVersionId()
            );
          }
          _setState(e) {
            if (R.softEquals(this.state, e)) return void (this.state = e);
            if (((this.state = e), !this.state))
              return void (this.decorations = this.editor.deltaDecorations(
                this.decorations,
                []
              ));
            if (!this.editor.hasModel()) return;
            const t = this.editor.getModel();
            if (t.isTooLargeForTokenization()) return;
            const i = f.vH.has(t) && this.editor.getOption(63);
            let n = t
              .findMatches(
                this.state.searchText,
                !0,
                !1,
                this.state.matchCase,
                this.state.wordSeparators,
                !1
              )
              .map((e) => e.range);
            n.sort(c.e.compareRangesUsingStarts);
            let r = this.editor.getSelections();
            r.sort(c.e.compareRangesUsingStarts);
            let s = [];
            for (let e = 0, t = 0, i = n.length, o = r.length; e < i; ) {
              const i = n[e];
              if (t >= o) s.push(i), e++;
              else {
                const n = c.e.compareRangesUsingStarts(i, r[t]);
                n < 0
                  ? ((!r[t].isEmpty() && c.e.areIntersecting(i, r[t])) ||
                      s.push(i),
                    e++)
                  : (n > 0 || e++, t++);
              }
            }
            const o = s.map((e) => ({
              range: e,
              options: i
                ? P._SELECTION_HIGHLIGHT
                : P._SELECTION_HIGHLIGHT_OVERVIEW,
            }));
            this.decorations = this.editor.deltaDecorations(
              this.decorations,
              o
            );
          }
          dispose() {
            this._setState(null), super.dispose();
          }
        }
        function F(e, t, i) {
          const n = B(e, t[0], !i);
          for (let r = 1, s = t.length; r < s; r++) {
            const s = t[r];
            if (s.isEmpty()) return !1;
            if (n !== B(e, s, !i)) return !1;
          }
          return !0;
        }
        function B(e, t, i) {
          const n = e.getValueInRange(t);
          return i ? n.toLowerCase() : n;
        }
        (P.ID = 'editor.contrib.selectionHighlighter'),
          (P._SELECTION_HIGHLIGHT_OVERVIEW = g.qx.register({
            stickiness: 1,
            className: 'selectionHighlight',
            overviewRuler: { color: (0, b.EN)(_.SP), position: u.sh.Center },
          })),
          (P._SELECTION_HIGHLIGHT = g.qx.register({
            stickiness: 1,
            className: 'selectionHighlight',
          })),
          (0, a._K)(M.ID, M),
          (0, a._K)(P.ID, P),
          (0, a.Qr)(y),
          (0, a.Qr)(w),
          (0, a.Qr)(C),
          (0, a.Qr)(N),
          (0, a.Qr)(E),
          (0, a.Qr)(T),
          (0, a.Qr)(I),
          (0, a.Qr)(O),
          (0, a.Qr)(A),
          (0, a.Qr)(S),
          (0, a.Qr)(k);
      },
      40517: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { TriggerParameterHintsAction: () => Y });
        var n = i(63580),
          r = i(5976),
          s = i(72065),
          o = i(29102),
          a = i(38819),
          l = i(16830),
          c = i(65321),
          d = i(4850),
          h = i(85152),
          u = i(9802),
          g = i(4669),
          f = i(71531),
          p = i(53335),
          m = i(15393),
          _ = i(17301),
          b = i(43775),
          v = i(71050);
        const y = {
          Visible: new a.uy('parameterHintsVisible', !1),
          MultipleSignatures: new a.uy('parameterHintsMultipleSignatures', !1),
        };
        function w(e, t, i, n) {
          const r = b.nD.ordered(e);
          return (0, m.Ps)(
            r.map((r) => () =>
              Promise.resolve(r.provideSignatureHelp(e, t, n, i)).catch((e) =>
                (0, _.Cp)(e)
              )
            )
          );
        }
        (0, l.kT)('_executeSignatureHelpProvider', (e, t, i) => {
          return (
            (n = void 0),
            (r = void 0),
            (o = function* () {
              const n = yield w(
                e,
                t,
                {
                  triggerKind: b.WW.Invoke,
                  isRetrigger: !1,
                  triggerCharacter: i.triggerCharacter,
                },
                v.T.None
              );
              if (n) return setTimeout(() => n.dispose(), 0), n.value;
            }),
            new ((s = void 0) || (s = Promise))(function (e, t) {
              function i(e) {
                try {
                  l(o.next(e));
                } catch (e) {
                  t(e);
                }
              }
              function a(e) {
                try {
                  l(o.throw(e));
                } catch (e) {
                  t(e);
                }
              }
              function l(t) {
                var n;
                t.done
                  ? e(t.value)
                  : ((n = t.value),
                    n instanceof s
                      ? n
                      : new s(function (e) {
                          e(n);
                        })).then(i, a);
              }
              l((o = o.apply(n, r || [])).next());
            })
          );
          var n, r, s, o;
        });
        var C,
          S = i(50988),
          k = i(73910),
          x = i(97781),
          L = i(44906);
        !(function (e) {
          (e.Default = { type: 0 }),
            (e.Pending = class {
              constructor(e) {
                (this.request = e), (this.type = 2);
              }
            }),
            (e.Active = class {
              constructor(e) {
                (this.hints = e), (this.type = 1);
              }
            });
        })(C || (C = {}));
        class M extends r.JT {
          constructor(e, t = M.DEFAULT_DELAY) {
            super(),
              (this._onChangedHints = this._register(new g.Q5())),
              (this.onChangedHints = this._onChangedHints.event),
              (this.triggerOnType = !1),
              (this._state = C.Default),
              (this._pendingTriggers = []),
              (this._lastSignatureHelpResult = this._register(new r.XK())),
              (this.triggerChars = new L.q()),
              (this.retriggerChars = new L.q()),
              (this.triggerId = 0),
              (this.editor = e),
              (this.throttledDelayer = new m.vp(t)),
              this._register(
                this.editor.onDidChangeConfiguration(() =>
                  this.onEditorConfigurationChange()
                )
              ),
              this._register(
                this.editor.onDidChangeModel((e) => this.onModelChanged())
              ),
              this._register(
                this.editor.onDidChangeModelLanguage((e) =>
                  this.onModelChanged()
                )
              ),
              this._register(
                this.editor.onDidChangeCursorSelection((e) =>
                  this.onCursorChange(e)
                )
              ),
              this._register(
                this.editor.onDidChangeModelContent((e) =>
                  this.onModelContentChange()
                )
              ),
              this._register(b.nD.onDidChange(this.onModelChanged, this)),
              this._register(this.editor.onDidType((e) => this.onDidType(e))),
              this.onEditorConfigurationChange(),
              this.onModelChanged();
          }
          get state() {
            return this._state;
          }
          set state(e) {
            2 === this._state.type && this._state.request.cancel(),
              (this._state = e);
          }
          cancel(e = !1) {
            (this.state = C.Default),
              this.throttledDelayer.cancel(),
              e || this._onChangedHints.fire(void 0);
          }
          trigger(e, t) {
            const i = this.editor.getModel();
            if (!i || !b.nD.has(i)) return;
            const n = ++this.triggerId;
            this._pendingTriggers.push(e),
              this.throttledDelayer
                .trigger(() => this.doTrigger(n), t)
                .catch(_.dL);
          }
          next() {
            if (1 !== this.state.type) return;
            const e = this.state.hints.signatures.length,
              t = this.state.hints.activeSignature,
              i = t % e == e - 1,
              n = this.editor.getOption(67).cycle;
            !(e < 2 || i) || n
              ? this.updateActiveSignature(i && n ? 0 : t + 1)
              : this.cancel();
          }
          previous() {
            if (1 !== this.state.type) return;
            const e = this.state.hints.signatures.length,
              t = this.state.hints.activeSignature,
              i = 0 === t,
              n = this.editor.getOption(67).cycle;
            !(e < 2 || i) || n
              ? this.updateActiveSignature(i && n ? e - 1 : t - 1)
              : this.cancel();
          }
          updateActiveSignature(e) {
            1 === this.state.type &&
              ((this.state = new C.Active(
                Object.assign(Object.assign({}, this.state.hints), {
                  activeSignature: e,
                })
              )),
              this._onChangedHints.fire(this.state.hints));
          }
          doTrigger(e) {
            return (
              (t = this),
              (i = void 0),
              (r = function* () {
                const t = 1 === this.state.type || 2 === this.state.type,
                  i = 1 === this.state.type ? this.state.hints : void 0;
                if ((this.cancel(!0), 0 === this._pendingTriggers.length))
                  return !1;
                const n = this._pendingTriggers.reduce(D);
                this._pendingTriggers = [];
                const r = {
                  triggerKind: n.triggerKind,
                  triggerCharacter: n.triggerCharacter,
                  isRetrigger: t,
                  activeSignatureHelp: i,
                };
                if (!this.editor.hasModel()) return !1;
                const s = this.editor.getModel(),
                  o = this.editor.getPosition();
                this.state = new C.Pending((0, m.PG)((e) => w(s, o, r, e)));
                try {
                  const t = yield this.state.request;
                  return e !== this.triggerId
                    ? (null == t || t.dispose(), !1)
                    : t && t.value.signatures && 0 !== t.value.signatures.length
                    ? ((this.state = new C.Active(t.value)),
                      (this._lastSignatureHelpResult.value = t),
                      this._onChangedHints.fire(this.state.hints),
                      !0)
                    : (null == t || t.dispose(),
                      this._lastSignatureHelpResult.clear(),
                      this.cancel(),
                      !1);
                } catch (t) {
                  return (
                    e === this.triggerId && (this.state = C.Default),
                    (0, _.dL)(t),
                    !1
                  );
                }
              }),
              new ((n = void 0) || (n = Promise))(function (e, s) {
                function o(e) {
                  try {
                    l(r.next(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function a(e) {
                  try {
                    l(r.throw(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof n
                        ? i
                        : new n(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((r = r.apply(t, i || [])).next());
              })
            );
            var t, i, n, r;
          }
          get isTriggered() {
            return (
              1 === this.state.type ||
              2 === this.state.type ||
              this.throttledDelayer.isTriggered()
            );
          }
          onModelChanged() {
            this.cancel(),
              (this.triggerChars = new L.q()),
              (this.retriggerChars = new L.q());
            const e = this.editor.getModel();
            if (e)
              for (const t of b.nD.ordered(e)) {
                for (const e of t.signatureHelpTriggerCharacters || [])
                  this.triggerChars.add(e.charCodeAt(0)),
                    this.retriggerChars.add(e.charCodeAt(0));
                for (const e of t.signatureHelpRetriggerCharacters || [])
                  this.retriggerChars.add(e.charCodeAt(0));
              }
          }
          onDidType(e) {
            if (!this.triggerOnType) return;
            const t = e.length - 1,
              i = e.charCodeAt(t);
            (this.triggerChars.has(i) ||
              (this.isTriggered && this.retriggerChars.has(i))) &&
              this.trigger({
                triggerKind: b.WW.TriggerCharacter,
                triggerCharacter: e.charAt(t),
              });
          }
          onCursorChange(e) {
            'mouse' === e.source
              ? this.cancel()
              : this.isTriggered &&
                this.trigger({ triggerKind: b.WW.ContentChange });
          }
          onModelContentChange() {
            this.isTriggered &&
              this.trigger({ triggerKind: b.WW.ContentChange });
          }
          onEditorConfigurationChange() {
            (this.triggerOnType = this.editor.getOption(67).enabled),
              this.triggerOnType || this.cancel();
          }
          dispose() {
            this.cancel(!0), super.dispose();
          }
        }
        function D(e, t) {
          switch (t.triggerKind) {
            case b.WW.Invoke:
              return t;
            case b.WW.ContentChange:
              return e;
            case b.WW.TriggerCharacter:
            default:
              return t;
          }
        }
        M.DEFAULT_DELAY = 120;
        var N = i(97295),
          E = i(73046),
          T = i(98401),
          I = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const O = c.$,
          A = (0, E.q5)('parameter-hints-next', E.lA.chevronDown),
          R = (0, E.q5)('parameter-hints-previous', E.lA.chevronUp);
        let P = class e extends r.JT {
          constructor(e, t, i, n) {
            super(),
              (this.editor = e),
              (this.renderDisposeables = this._register(new r.SL())),
              (this.visible = !1),
              (this.announcedLabel = null),
              (this.allowEditorOverflow = !0),
              (this.markdownRenderer = this._register(new p.$(e, n, i))),
              (this.model = this._register(new M(e))),
              (this.keyVisible = y.Visible.bindTo(t)),
              (this.keyMultipleSignatures = y.MultipleSignatures.bindTo(t)),
              this._register(
                this.model.onChangedHints((e) => {
                  e ? (this.show(), this.render(e)) : this.hide();
                })
              );
          }
          createParamaterHintDOMNodes() {
            const e = O('.editor-widget.parameter-hints-widget'),
              t = c.R3(e, O('.wrapper'));
            t.tabIndex = -1;
            const i = c.R3(t, O('.controls')),
              n = c.R3(i, O('.button' + R.cssSelector)),
              r = c.R3(i, O('.overloads')),
              s = c.R3(i, O('.button' + A.cssSelector)),
              o = (0, d.s)((0, d.j)(n, 'click'));
            this._register(o(this.previous, this));
            const a = (0, d.s)((0, d.j)(s, 'click'));
            this._register(a(this.next, this));
            const l = O('.body'),
              h = new u.s$(l, {});
            this._register(h), t.appendChild(h.getDomNode());
            const f = c.R3(l, O('.signature')),
              p = c.R3(l, O('.docs'));
            (e.style.userSelect = 'text'),
              (this.domNodes = {
                element: e,
                signature: f,
                overloads: r,
                docs: p,
                scrollbar: h,
              }),
              this.editor.addContentWidget(this),
              this.hide(),
              this._register(
                this.editor.onDidChangeCursorSelection((e) => {
                  this.visible && this.editor.layoutContentWidget(this);
                })
              );
            const m = () => {
              if (!this.domNodes) return;
              const e = this.editor.getOption(36);
              this.domNodes.element.style.fontSize = `${e.fontSize}px`;
            };
            m(),
              this._register(
                g.ju
                  .chain(this.editor.onDidChangeConfiguration.bind(this.editor))
                  .filter((e) => e.hasChanged(36))
                  .on(m, null)
              ),
              this._register(
                this.editor.onDidLayoutChange((e) => this.updateMaxHeight())
              ),
              this.updateMaxHeight();
          }
          show() {
            this.visible ||
              (this.domNodes || this.createParamaterHintDOMNodes(),
              this.keyVisible.set(!0),
              (this.visible = !0),
              setTimeout(() => {
                this.domNodes && c.cn(this.domNodes.element, 'visible');
              }, 100),
              this.editor.layoutContentWidget(this));
          }
          hide() {
            this.renderDisposeables.clear(),
              this.visible &&
                (this.keyVisible.reset(),
                (this.visible = !1),
                (this.announcedLabel = null),
                this.domNodes && c.IV(this.domNodes.element, 'visible'),
                this.editor.layoutContentWidget(this));
          }
          getPosition() {
            return this.visible
              ? { position: this.editor.getPosition(), preference: [1, 2] }
              : null;
          }
          render(e) {
            var t;
            if ((this.renderDisposeables.clear(), !this.domNodes)) return;
            const i = e.signatures.length > 1;
            c.og(this.domNodes.element, 'multiple', i),
              this.keyMultipleSignatures.set(i),
              (this.domNodes.signature.innerText = ''),
              (this.domNodes.docs.innerText = '');
            const r = e.signatures[e.activeSignature];
            if (!r) return;
            const s = c.R3(this.domNodes.signature, O('.code')),
              o = this.editor.getOption(36);
            (s.style.fontSize = `${o.fontSize}px`),
              (s.style.fontFamily = o.fontFamily);
            const a = r.parameters.length > 0,
              l =
                null !== (t = r.activeParameter) && void 0 !== t
                  ? t
                  : e.activeParameter;
            a
              ? this.renderParameters(s, r, l)
              : (c.R3(s, O('span')).textContent = r.label);
            const d = r.parameters[l];
            if (null == d ? void 0 : d.documentation) {
              const e = O('span.documentation');
              if ('string' == typeof d.documentation)
                e.textContent = d.documentation;
              else {
                const t = this.renderDisposeables.add(
                  this.markdownRenderer.render(d.documentation)
                );
                c.cn(t.element, 'markdown-docs'), e.appendChild(t.element);
              }
              c.R3(this.domNodes.docs, O('p', {}, e));
            }
            if (void 0 === r.documentation);
            else if ('string' == typeof r.documentation)
              c.R3(this.domNodes.docs, O('p', {}, r.documentation));
            else {
              const e = this.renderDisposeables.add(
                this.markdownRenderer.render(r.documentation)
              );
              c.cn(e.element, 'markdown-docs'),
                c.R3(this.domNodes.docs, e.element);
            }
            const u = this.hasDocs(r, d);
            if (
              (c.og(this.domNodes.signature, 'has-docs', u),
              c.og(this.domNodes.docs, 'empty', !u),
              (this.domNodes.overloads.textContent =
                (0, N.vk)(
                  e.activeSignature + 1,
                  e.signatures.length.toString().length
                ) +
                '/' +
                e.signatures.length),
              d)
            ) {
              const e = this.getParameterLabel(r, l);
              this.announcedLabel !== e &&
                (h.Z9(n.N('hint', '{0}, hint', e)), (this.announcedLabel = e));
            }
            this.editor.layoutContentWidget(this),
              this.domNodes.scrollbar.scanDomNode();
          }
          hasDocs(e, t) {
            return !!(
              (t &&
                'string' == typeof t.documentation &&
                (0, T.cW)(t.documentation).length > 0) ||
              (t &&
                'object' == typeof t.documentation &&
                (0, T.cW)(t.documentation).value.length > 0) ||
              (e.documentation &&
                'string' == typeof e.documentation &&
                (0, T.cW)(e.documentation).length > 0) ||
              (e.documentation &&
                'object' == typeof e.documentation &&
                (0, T.cW)(e.documentation.value).length > 0)
            );
          }
          renderParameters(e, t, i) {
            const [n, r] = this.getParameterLabelOffsets(t, i),
              s = document.createElement('span');
            s.textContent = t.label.substring(0, n);
            const o = document.createElement('span');
            (o.textContent = t.label.substring(n, r)),
              (o.className = 'parameter active');
            const a = document.createElement('span');
            (a.textContent = t.label.substring(r)), c.R3(e, s, o, a);
          }
          getParameterLabel(e, t) {
            const i = e.parameters[t];
            return Array.isArray(i.label)
              ? e.label.substring(i.label[0], i.label[1])
              : i.label;
          }
          getParameterLabelOffsets(e, t) {
            const i = e.parameters[t];
            if (i) {
              if (Array.isArray(i.label)) return i.label;
              {
                const t = e.label.lastIndexOf(i.label);
                return t >= 0 ? [t, t + i.label.length] : [0, 0];
              }
            }
            return [0, 0];
          }
          next() {
            this.editor.focus(), this.model.next();
          }
          previous() {
            this.editor.focus(), this.model.previous();
          }
          cancel() {
            this.model.cancel();
          }
          getDomNode() {
            return (
              this.domNodes || this.createParamaterHintDOMNodes(),
              this.domNodes.element
            );
          }
          getId() {
            return e.ID;
          }
          trigger(e) {
            this.model.trigger(e, 0);
          }
          updateMaxHeight() {
            if (!this.domNodes) return;
            const e = `${Math.max(
              this.editor.getLayoutInfo().height / 4,
              250
            )}px`;
            this.domNodes.element.style.maxHeight = e;
            const t = this.domNodes.element.getElementsByClassName('wrapper');
            t.length && (t[0].style.maxHeight = e);
          }
        };
        (P.ID = 'editor.widget.parameterHintsWidget'),
          (P = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([I(1, a.i6), I(2, S.v4), I(3, f.h)], P)),
          (0, x.Ic)((e, t) => {
            const i = e.getColor(k.CN);
            if (i) {
              const n = e.type === x.QP ? 2 : 1;
              t.addRule(
                `.monaco-editor .parameter-hints-widget { border: ${n}px solid ${i}; }`
              ),
                t.addRule(
                  `.monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ${i.transparent(
                    0.5
                  )}; }`
                ),
                t.addRule(
                  `.monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ${i.transparent(
                    0.5
                  )}; }`
                );
            }
            const n = e.getColor(k.yJ);
            n &&
              t.addRule(
                `.monaco-editor .parameter-hints-widget { background-color: ${n}; }`
              );
            const r = e.getColor(k.ur);
            r &&
              t.addRule(
                `.monaco-editor .parameter-hints-widget a { color: ${r}; }`
              );
            const s = e.getColor(k.Sb);
            s &&
              t.addRule(
                `.monaco-editor .parameter-hints-widget { color: ${s}; }`
              );
            const o = e.getColor(k.Sw);
            o &&
              t.addRule(
                `.monaco-editor .parameter-hints-widget code { background-color: ${o}; }`
              );
          });
        let F = class e extends r.JT {
          constructor(e, t) {
            super(),
              (this.editor = e),
              (this.widget = this._register(t.createInstance(P, this.editor)));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          cancel() {
            this.widget.cancel();
          }
          previous() {
            this.widget.previous();
          }
          next() {
            this.widget.next();
          }
          trigger(e) {
            this.widget.trigger(e);
          }
        };
        var B, W;
        (F.ID = 'editor.controller.parameterHints'),
          (F = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((B = 1),
              (W = s.TG),
              function (e, t) {
                W(e, t, B);
              }),
            ],
            F
          ));
        class Y extends l.R6 {
          constructor() {
            super({
              id: 'editor.action.triggerParameterHints',
              label: n.N(
                'parameterHints.trigger.label',
                'Trigger Parameter Hints'
              ),
              alias: 'Trigger Parameter Hints',
              precondition: o.u.hasSignatureHelpProvider,
              kbOpts: {
                kbExpr: o.u.editorTextFocus,
                primary: 3082,
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = F.get(t);
            i && i.trigger({ triggerKind: b.WW.Invoke });
          }
        }
        (0, l._K)(F.ID, F), (0, l.Qr)(Y);
        const H = l._l.bindToContribution(F.get);
        (0, l.fK)(
          new H({
            id: 'closeParameterHints',
            precondition: y.Visible,
            handler: (e) => e.cancel(),
            kbOpts: {
              weight: 175,
              kbExpr: o.u.focus,
              primary: 9,
              secondary: [1033],
            },
          })
        ),
          (0, l.fK)(
            new H({
              id: 'showPrevParameterHint',
              precondition: a.Ao.and(y.Visible, y.MultipleSignatures),
              handler: (e) => e.previous(),
              kbOpts: {
                weight: 175,
                kbExpr: o.u.focus,
                primary: 16,
                secondary: [528],
                mac: { primary: 16, secondary: [528, 302] },
              },
            })
          ),
          (0, l.fK)(
            new H({
              id: 'showNextParameterHint',
              precondition: a.Ao.and(y.Visible, y.MultipleSignatures),
              handler: (e) => e.next(),
              kbOpts: {
                weight: 175,
                kbExpr: o.u.focus,
                primary: 18,
                secondary: [530],
                mac: { primary: 18, secondary: [530, 300] },
              },
            })
          );
      },
      22043: (e, t, i) => {
        'use strict';
        i.d(t, {
          Fw: () => I,
          Jy: () => O,
          vk: () => F,
          rc: () => R,
          SC: () => H,
          RX: () => K,
          sH: () => q,
          WL: () => Z,
          xH: () => J,
          M8: () => j,
          a7: () => z,
          xk: () => V,
          F8: () => G,
          Zj: () => U,
          IY: () => $,
          KY: () => B,
          IH: () => W,
          R7: () => Y,
        });
        var n = i(65321),
          r = i(90317),
          s = i(74741),
          o = i(41264),
          a = i(4669),
          l = i(36248),
          c = i(11640),
          d = i(84527),
          h = i(73098),
          u = i(44742),
          g = i(5976),
          f = i(24314),
          p = i(3411);
        const m = new o.Il(new o.VS(0, 122, 204)),
          _ = {
            showArrow: !0,
            showFrame: !0,
            className: '',
            frameColor: m,
            arrowColor: m,
            keepEditorSelection: !1,
          };
        class b {
          constructor(e, t, i, n, r, s) {
            (this.id = ''),
              (this.domNode = e),
              (this.afterLineNumber = t),
              (this.afterColumn = i),
              (this.heightInLines = n),
              (this._onDomNodeTop = r),
              (this._onComputedHeight = s);
          }
          onDomNodeTop(e) {
            this._onDomNodeTop(e);
          }
          onComputedHeight(e) {
            this._onComputedHeight(e);
          }
        }
        class v {
          constructor(e, t) {
            (this._id = e), (this._domNode = t);
          }
          getId() {
            return this._id;
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return null;
          }
        }
        class y {
          constructor(e) {
            (this._editor = e),
              (this._ruleName = y._IdGenerator.nextId()),
              (this._decorations = []),
              (this._color = null),
              (this._height = -1);
          }
          dispose() {
            this.hide(), n.uN(this._ruleName);
          }
          set color(e) {
            this._color !== e && ((this._color = e), this._updateStyle());
          }
          set height(e) {
            this._height !== e && ((this._height = e), this._updateStyle());
          }
          _updateStyle() {
            n.uN(this._ruleName),
              n.fk(
                `.monaco-editor ${this._ruleName}`,
                `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `
              );
          }
          show(e) {
            this._decorations = this._editor.deltaDecorations(
              this._decorations,
              [
                {
                  range: f.e.fromPositions(e),
                  options: { className: this._ruleName, stickiness: 1 },
                },
              ]
            );
          }
          hide() {
            this._editor.deltaDecorations(this._decorations, []);
          }
        }
        y._IdGenerator = new u.R('.arrow-decoration-');
        var w = i(63580),
          C = i(38819),
          S = i(72065),
          k = i(65026),
          x = i(16830),
          L = i(73910),
          M = i(73046),
          D = i(84144),
          N = i(58335),
          E = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          T = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const I = (0, S.yh)('IPeekViewService');
        var O;
        (0, k.z)(
          I,
          class {
            constructor() {
              this._widgets = new Map();
            }
            addExclusiveWidget(e, t) {
              const i = this._widgets.get(e);
              i && (i.listener.dispose(), i.widget.dispose()),
                this._widgets.set(e, {
                  widget: t,
                  listener: t.onDidClose(() => {
                    const i = this._widgets.get(e);
                    i &&
                      i.widget === t &&
                      (i.listener.dispose(), this._widgets.delete(e));
                  }),
                });
            }
          }
        ),
          (function (e) {
            (e.inPeekEditor = new C.uy('inReferenceSearchEditor', !0)),
              (e.notInPeekEditor = e.inPeekEditor.toNegated());
          })(O || (O = {}));
        let A = class {
          constructor(e, t) {
            e instanceof d.H && O.inPeekEditor.bindTo(t);
          }
          dispose() {}
        };
        function R(e) {
          let t = e.get(c.$).getFocusedCodeEditor();
          return t instanceof d.H ? t.getParentEditor() : t;
        }
        (A.ID = 'editor.contrib.referenceController'),
          (A = E([T(1, C.i6)], A)),
          (0, x._K)(A.ID, A);
        const P = {
          headerBackgroundColor: o.Il.white,
          primaryHeadingColor: o.Il.fromHex('#333333'),
          secondaryHeadingColor: o.Il.fromHex('#6c6c6cb3'),
        };
        let F = class extends class {
          constructor(e, t = {}) {
            (this._arrow = null),
              (this._overlayWidget = null),
              (this._resizeSash = null),
              (this._positionMarkerId = []),
              (this._viewZone = null),
              (this._disposables = new g.SL()),
              (this.container = null),
              (this._isShowing = !1),
              (this.editor = e),
              (this.options = l.I8(t)),
              l.jB(this.options, _, !1),
              (this.domNode = document.createElement('div')),
              this.options.isAccessible ||
                (this.domNode.setAttribute('aria-hidden', 'true'),
                this.domNode.setAttribute('role', 'presentation')),
              this._disposables.add(
                this.editor.onDidLayoutChange((e) => {
                  const t = this._getWidth(e);
                  (this.domNode.style.width = t + 'px'),
                    (this.domNode.style.left = this._getLeft(e) + 'px'),
                    this._onWidth(t);
                })
              );
          }
          dispose() {
            this._overlayWidget &&
              (this.editor.removeOverlayWidget(this._overlayWidget),
              (this._overlayWidget = null)),
              this._viewZone &&
                this.editor.changeViewZones((e) => {
                  this._viewZone && e.removeZone(this._viewZone.id),
                    (this._viewZone = null);
                }),
              this.editor.deltaDecorations(this._positionMarkerId, []),
              (this._positionMarkerId = []),
              this._disposables.dispose();
          }
          create() {
            this.domNode.classList.add('zone-widget'),
              this.options.className &&
                this.domNode.classList.add(this.options.className),
              (this.container = document.createElement('div')),
              this.container.classList.add('zone-widget-container'),
              this.domNode.appendChild(this.container),
              this.options.showArrow &&
                ((this._arrow = new y(this.editor)),
                this._disposables.add(this._arrow)),
              this._fillContainer(this.container),
              this._initSash(),
              this._applyStyles();
          }
          style(e) {
            e.frameColor && (this.options.frameColor = e.frameColor),
              e.arrowColor && (this.options.arrowColor = e.arrowColor),
              this._applyStyles();
          }
          _applyStyles() {
            if (this.container && this.options.frameColor) {
              let e = this.options.frameColor.toString();
              (this.container.style.borderTopColor = e),
                (this.container.style.borderBottomColor = e);
            }
            if (this._arrow && this.options.arrowColor) {
              let e = this.options.arrowColor.toString();
              this._arrow.color = e;
            }
          }
          _getWidth(e) {
            return e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth;
          }
          _getLeft(e) {
            return e.minimap.minimapWidth > 0 && 0 === e.minimap.minimapLeft
              ? e.minimap.minimapWidth
              : 0;
          }
          _onViewZoneTop(e) {
            this.domNode.style.top = e + 'px';
          }
          _onViewZoneHeight(e) {
            if (((this.domNode.style.height = `${e}px`), this.container)) {
              let t = e - this._decoratingElementsHeight();
              this.container.style.height = `${t}px`;
              const i = this.editor.getLayoutInfo();
              this._doLayout(t, this._getWidth(i));
            }
            this._resizeSash && this._resizeSash.layout();
          }
          get position() {
            const [e] = this._positionMarkerId;
            if (!e) return;
            const t = this.editor.getModel();
            if (!t) return;
            const i = t.getDecorationRange(e);
            return i ? i.getStartPosition() : void 0;
          }
          show(e, t) {
            const i = f.e.isIRange(e) ? f.e.lift(e) : f.e.fromPositions(e);
            (this._isShowing = !0),
              this._showImpl(i, t),
              (this._isShowing = !1),
              (this._positionMarkerId = this.editor.deltaDecorations(
                this._positionMarkerId,
                [{ range: i, options: p.qx.EMPTY }]
              ));
          }
          hide() {
            this._viewZone &&
              (this.editor.changeViewZones((e) => {
                this._viewZone && e.removeZone(this._viewZone.id);
              }),
              (this._viewZone = null)),
              this._overlayWidget &&
                (this.editor.removeOverlayWidget(this._overlayWidget),
                (this._overlayWidget = null)),
              this._arrow && this._arrow.hide();
          }
          _decoratingElementsHeight() {
            let e = this.editor.getOption(51),
              t = 0;
            return (
              this.options.showArrow && (t += 2 * Math.round(e / 3)),
              this.options.showFrame && (t += 2 * Math.round(e / 9)),
              t
            );
          }
          _showImpl(e, t) {
            const i = e.getStartPosition(),
              n = this.editor.getLayoutInfo(),
              r = this._getWidth(n);
            (this.domNode.style.width = `${r}px`),
              (this.domNode.style.left = this._getLeft(n) + 'px');
            const s = document.createElement('div');
            s.style.overflow = 'hidden';
            const o = this.editor.getOption(51),
              a = Math.max(12, (this.editor.getLayoutInfo().height / o) * 0.8);
            t = Math.min(t, a);
            let l = 0,
              c = 0;
            if (
              (this._arrow &&
                this.options.showArrow &&
                ((l = Math.round(o / 3)),
                (this._arrow.height = l),
                this._arrow.show(i)),
              this.options.showFrame && (c = Math.round(o / 9)),
              this.editor.changeViewZones((e) => {
                this._viewZone && e.removeZone(this._viewZone.id),
                  this._overlayWidget &&
                    (this.editor.removeOverlayWidget(this._overlayWidget),
                    (this._overlayWidget = null)),
                  (this.domNode.style.top = '-1000px'),
                  (this._viewZone = new b(
                    s,
                    i.lineNumber,
                    i.column,
                    t,
                    (e) => this._onViewZoneTop(e),
                    (e) => this._onViewZoneHeight(e)
                  )),
                  (this._viewZone.id = e.addZone(this._viewZone)),
                  (this._overlayWidget = new v(
                    'vs.editor.contrib.zoneWidget' + this._viewZone.id,
                    this.domNode
                  )),
                  this.editor.addOverlayWidget(this._overlayWidget);
              }),
              this.container && this.options.showFrame)
            ) {
              const e = this.options.frameWidth ? this.options.frameWidth : c;
              (this.container.style.borderTopWidth = e + 'px'),
                (this.container.style.borderBottomWidth = e + 'px');
            }
            let d = t * o - this._decoratingElementsHeight();
            this.container &&
              ((this.container.style.top = l + 'px'),
              (this.container.style.height = d + 'px'),
              (this.container.style.overflow = 'hidden')),
              this._doLayout(d, r),
              this.options.keepEditorSelection || this.editor.setSelection(e);
            const h = this.editor.getModel();
            if (h) {
              const t = e.endLineNumber + 1;
              t <= h.getLineCount()
                ? this.revealLine(t, !1)
                : this.revealLine(h.getLineCount(), !0);
            }
          }
          revealLine(e, t) {
            t
              ? this.editor.revealLineInCenter(e, 0)
              : this.editor.revealLine(e, 0);
          }
          setCssClass(e, t) {
            this.container &&
              (t && this.container.classList.remove(t),
              n.cn(this.container, e));
          }
          _onWidth(e) {}
          _doLayout(e, t) {}
          _relayout(e) {
            this._viewZone &&
              this._viewZone.heightInLines !== e &&
              this.editor.changeViewZones((t) => {
                this._viewZone &&
                  ((this._viewZone.heightInLines = e),
                  t.layoutZone(this._viewZone.id));
              });
          }
          _initSash() {
            if (this._resizeSash) return;
            let e;
            (this._resizeSash = this._disposables.add(
              new h.g(this.domNode, this, { orientation: 1 })
            )),
              this.options.isResizeable ||
                (this._resizeSash.hide(), (this._resizeSash.state = 0)),
              this._disposables.add(
                this._resizeSash.onDidStart((t) => {
                  this._viewZone &&
                    (e = {
                      startY: t.startY,
                      heightInLines: this._viewZone.heightInLines,
                    });
                })
              ),
              this._disposables.add(
                this._resizeSash.onDidEnd(() => {
                  e = void 0;
                })
              ),
              this._disposables.add(
                this._resizeSash.onDidChange((t) => {
                  if (e) {
                    let i = (t.currentY - e.startY) / this.editor.getOption(51),
                      n = i < 0 ? Math.ceil(i) : Math.floor(i),
                      r = e.heightInLines + n;
                    r > 5 && r < 35 && this._relayout(r);
                  }
                })
              );
          }
          getHorizontalSashLeft() {
            return 0;
          }
          getHorizontalSashTop() {
            return (
              (null === this.domNode.style.height
                ? 0
                : parseInt(this.domNode.style.height)) -
              this._decoratingElementsHeight() / 2
            );
          }
          getHorizontalSashWidth() {
            const e = this.editor.getLayoutInfo();
            return e.width - e.minimap.minimapWidth;
          }
        } {
          constructor(e, t, i) {
            super(e, t),
              (this.instantiationService = i),
              (this._onDidClose = new a.Q5()),
              (this.onDidClose = this._onDidClose.event),
              l.jB(this.options, P, !1);
          }
          dispose() {
            super.dispose(), this._onDidClose.fire(this);
          }
          style(e) {
            let t = this.options;
            e.headerBackgroundColor &&
              (t.headerBackgroundColor = e.headerBackgroundColor),
              e.primaryHeadingColor &&
                (t.primaryHeadingColor = e.primaryHeadingColor),
              e.secondaryHeadingColor &&
                (t.secondaryHeadingColor = e.secondaryHeadingColor),
              super.style(e);
          }
          _applyStyles() {
            super._applyStyles();
            let e = this.options;
            this._headElement &&
              e.headerBackgroundColor &&
              (this._headElement.style.backgroundColor = e.headerBackgroundColor.toString()),
              this._primaryHeading &&
                e.primaryHeadingColor &&
                (this._primaryHeading.style.color = e.primaryHeadingColor.toString()),
              this._secondaryHeading &&
                e.secondaryHeadingColor &&
                (this._secondaryHeading.style.color = e.secondaryHeadingColor.toString()),
              this._bodyElement &&
                e.frameColor &&
                (this._bodyElement.style.borderColor = e.frameColor.toString());
          }
          _fillContainer(e) {
            this.setCssClass('peekview-widget'),
              (this._headElement = n.$('.head')),
              (this._bodyElement = n.$('.body')),
              this._fillHead(this._headElement),
              this._fillBody(this._bodyElement),
              e.appendChild(this._headElement),
              e.appendChild(this._bodyElement);
          }
          _fillHead(e, t) {
            const i = n.$('.peekview-title');
            n.R3(this._headElement, i),
              n.mu(i, 'click', (e) => this._onTitleClick(e)),
              this._fillTitleIcon(i),
              (this._primaryHeading = n.$('span.filename')),
              (this._secondaryHeading = n.$('span.dirname')),
              (this._metaHeading = n.$('span.meta')),
              n.R3(
                i,
                this._primaryHeading,
                this._secondaryHeading,
                this._metaHeading
              );
            const o = n.$('.peekview-actions');
            n.R3(this._headElement, o);
            const a = this._getActionBarOptions();
            (this._actionbarWidget = new r.o(o, a)),
              this._disposables.add(this._actionbarWidget),
              t ||
                this._actionbarWidget.push(
                  new s.aU(
                    'peekview.close',
                    w.N('label.close', 'Close'),
                    M.lA.close.classNames,
                    !0,
                    () => (this.dispose(), Promise.resolve())
                  ),
                  { label: !1, icon: !0 }
                );
          }
          _fillTitleIcon(e) {}
          _getActionBarOptions() {
            return {
              actionViewItemProvider: (e) =>
                e instanceof D.U8
                  ? this.instantiationService.createInstance(N.Mm, e)
                  : e instanceof D.NZ
                  ? this.instantiationService.createInstance(N.bi, e)
                  : void 0,
            };
          }
          _onTitleClick(e) {}
          setTitle(e, t) {
            this._primaryHeading &&
              this._secondaryHeading &&
              ((this._primaryHeading.innerText = e),
              this._primaryHeading.setAttribute('aria-label', e),
              t
                ? (this._secondaryHeading.innerText = t)
                : n.PO(this._secondaryHeading));
          }
          setMetaTitle(e) {
            this._metaHeading &&
              (e
                ? ((this._metaHeading.innerText = e), n.$Z(this._metaHeading))
                : n.Cp(this._metaHeading));
          }
          _doLayout(e, t) {
            if (!this._isShowing && e < 0) return void this.dispose();
            const i = Math.ceil(1.2 * this.editor.getOption(51)),
              n = Math.round(e - (i + 2));
            this._doLayoutHead(i, t), this._doLayoutBody(n, t);
          }
          _doLayoutHead(e, t) {
            this._headElement &&
              ((this._headElement.style.height = `${e}px`),
              (this._headElement.style.lineHeight = this._headElement.style.height));
          }
          _doLayoutBody(e, t) {
            this._bodyElement && (this._bodyElement.style.height = `${e}px`);
          }
        };
        F = E([T(2, S.TG)], F);
        const B = (0, L.P6)(
            'peekViewTitle.background',
            { dark: '#1E1E1E', light: '#FFFFFF', hc: '#0C141F' },
            w.N(
              'peekViewTitleBackground',
              'Background color of the peek view title area.'
            )
          ),
          W = (0, L.P6)(
            'peekViewTitleLabel.foreground',
            { dark: '#FFFFFF', light: '#333333', hc: '#FFFFFF' },
            w.N('peekViewTitleForeground', 'Color of the peek view title.')
          ),
          Y = (0, L.P6)(
            'peekViewTitleDescription.foreground',
            { dark: '#ccccccb3', light: '#616161e6', hc: '#FFFFFF99' },
            w.N(
              'peekViewTitleInfoForeground',
              'Color of the peek view title info.'
            )
          ),
          H = (0, L.P6)(
            'peekView.border',
            { dark: '#007acc', light: '#007acc', hc: L.lR },
            w.N('peekViewBorder', 'Color of the peek view borders and arrow.')
          ),
          j = (0, L.P6)(
            'peekViewResult.background',
            { dark: '#252526', light: '#F3F3F3', hc: o.Il.black },
            w.N(
              'peekViewResultsBackground',
              'Background color of the peek view result list.'
            )
          ),
          V = (0, L.P6)(
            'peekViewResult.lineForeground',
            { dark: '#bbbbbb', light: '#646465', hc: o.Il.white },
            w.N(
              'peekViewResultsMatchForeground',
              'Foreground color for line nodes in the peek view result list.'
            )
          ),
          z = (0, L.P6)(
            'peekViewResult.fileForeground',
            { dark: o.Il.white, light: '#1E1E1E', hc: o.Il.white },
            w.N(
              'peekViewResultsFileForeground',
              'Foreground color for file nodes in the peek view result list.'
            )
          ),
          U = (0, L.P6)(
            'peekViewResult.selectionBackground',
            { dark: '#3399ff33', light: '#3399ff33', hc: null },
            w.N(
              'peekViewResultsSelectionBackground',
              'Background color of the selected entry in the peek view result list.'
            )
          ),
          $ = (0, L.P6)(
            'peekViewResult.selectionForeground',
            { dark: o.Il.white, light: '#6C6C6C', hc: o.Il.white },
            w.N(
              'peekViewResultsSelectionForeground',
              'Foreground color of the selected entry in the peek view result list.'
            )
          ),
          K = (0, L.P6)(
            'peekViewEditor.background',
            { dark: '#001F33', light: '#F2F8FC', hc: o.Il.black },
            w.N(
              'peekViewEditorBackground',
              'Background color of the peek view editor.'
            )
          ),
          q = (0, L.P6)(
            'peekViewEditorGutter.background',
            { dark: K, light: K, hc: K },
            w.N(
              'peekViewEditorGutterBackground',
              'Background color of the gutter in the peek view editor.'
            )
          ),
          G = (0, L.P6)(
            'peekViewResult.matchHighlightBackground',
            { dark: '#ea5c004d', light: '#ea5c004d', hc: null },
            w.N(
              'peekViewResultsMatchHighlight',
              'Match highlight color in the peek view result list.'
            )
          ),
          Z = (0, L.P6)(
            'peekViewEditor.matchHighlightBackground',
            { dark: '#ff8f0099', light: '#f5d802de', hc: null },
            w.N(
              'peekViewEditorMatchHighlight',
              'Match highlight color in the peek view editor.'
            )
          ),
          J = (0, L.P6)(
            'peekViewEditor.matchHighlightBorder',
            { dark: null, light: null, hc: L.xL },
            w.N(
              'peekViewEditorMatchHighlightBorder',
              'Match highlight border in the peek view editor.'
            )
          );
      },
      98275: (e, t, i) => {
        'use strict';
        i.d(t, { X: () => d });
        var n = i(84973),
          r = i(97781),
          s = i(27869),
          o = i(5976),
          a = i(65520),
          l = i(98401),
          c = i(88289);
        class d {
          constructor(e) {
            (this.options = e), (this.rangeHighlightDecorationId = void 0);
          }
          provide(e, t) {
            var i;
            const n = new o.SL();
            (e.canAcceptInBackground = !!(null === (i = this.options) ||
            void 0 === i
              ? void 0
              : i.canAcceptInBackground)),
              (e.matchOnLabel = e.matchOnDescription = e.matchOnDetail = e.sortByLabel = !1);
            const r = n.add(new o.XK());
            return (
              (r.value = this.doProvide(e, t)),
              n.add(
                this.onDidActiveTextEditorControlChange(() => {
                  (r.value = void 0), (r.value = this.doProvide(e, t));
                })
              ),
              n
            );
          }
          doProvide(e, t) {
            const i = new o.SL(),
              n = this.activeTextEditorControl;
            if (n && this.canProvideWithTextEditor(n)) {
              const r = (0, a.Pi)(n);
              if (r) {
                let e = (0, l.f6)(n.saveViewState());
                i.add(
                  r.onDidChangeCursorPosition(() => {
                    e = (0, l.f6)(n.saveViewState());
                  })
                ),
                  i.add(
                    (0, c.I)(t.onCancellationRequested)(() => {
                      e &&
                        n === this.activeTextEditorControl &&
                        n.restoreViewState(e);
                    })
                  );
              }
              i.add((0, o.OF)(() => this.clearDecorations(n))),
                i.add(this.provideWithTextEditor(n, e, t));
            } else i.add(this.provideWithoutTextEditor(e, t));
            return i;
          }
          canProvideWithTextEditor(e) {
            return !0;
          }
          gotoLocation(e, t) {
            e.setSelection(t.range),
              e.revealRangeInCenter(t.range, 0),
              t.preserveFocus || e.focus();
          }
          getModel(e) {
            var t;
            return (0, a.QI)(e)
              ? null === (t = e.getModel()) || void 0 === t
                ? void 0
                : t.modified
              : e.getModel();
          }
          addDecorations(e, t) {
            e.changeDecorations((e) => {
              const i = [];
              this.rangeHighlightDecorationId &&
                (i.push(
                  this.rangeHighlightDecorationId.overviewRulerDecorationId
                ),
                i.push(this.rangeHighlightDecorationId.rangeHighlightId),
                (this.rangeHighlightDecorationId = void 0));
              const o = [
                  {
                    range: t,
                    options: { className: 'rangeHighlight', isWholeLine: !0 },
                  },
                  {
                    range: t,
                    options: {
                      overviewRuler: {
                        color: (0, r.EN)(s.m9),
                        position: n.sh.Full,
                      },
                    },
                  },
                ],
                [a, l] = e.deltaDecorations(i, o);
              this.rangeHighlightDecorationId = {
                rangeHighlightId: a,
                overviewRulerDecorationId: l,
              };
            });
          }
          clearDecorations(e) {
            const t = this.rangeHighlightDecorationId;
            t &&
              (e.changeDecorations((e) => {
                e.deltaDecorations(
                  [t.overviewRulerDecorationId, t.rangeHighlightId],
                  []
                );
              }),
              (this.rangeHighlightDecorationId = void 0));
          }
        }
      },
      55027: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE: () => k,
            OnTypeRenameContribution: () => x,
            OnTypeRenameAction: () => D,
            getOnTypeRenameRanges: () => E,
            editorOnTypeRenameBackground: () => T,
          });
        var n = i(63580),
          r = i(16830),
          s = i(9488),
          o = i(5976),
          a = i(50187),
          l = i(71050),
          c = i(24314),
          d = i(43775),
          h = i(15393),
          u = i(3411),
          g = i(38819),
          f = i(29102),
          p = i(70666),
          m = i(11640),
          _ = i(17301),
          b = i(97295),
          v = i(73910),
          y = i(97781),
          w = i(41264),
          C = i(83831),
          S = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        const k = new g.uy('onTypeRenameInputVisible', !1);
        let x = class e extends o.JT {
          constructor(e, t) {
            super(),
              (this._debounceDuration = 200),
              (this._localToDispose = this._register(new o.SL())),
              (this._editor = e),
              (this._enabled = !1),
              (this._visibleContextKey = k.bindTo(t)),
              (this._currentDecorations = []),
              (this._languageWordPattern = null),
              (this._currentWordPattern = null),
              (this._ignoreChangeEvent = !1),
              (this._localToDispose = this._register(new o.SL())),
              (this._rangeUpdateTriggerPromise = null),
              (this._rangeSyncTriggerPromise = null),
              (this._currentRequest = null),
              (this._currentRequestPosition = null),
              (this._currentRequestModelVersion = null),
              this._register(
                this._editor.onDidChangeModel(() => this.reinitialize())
              ),
              this._register(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(73) && this.reinitialize();
                })
              ),
              this._register(d.jC.onDidChange(() => this.reinitialize())),
              this._register(
                this._editor.onDidChangeModelLanguage(() => this.reinitialize())
              ),
              this.reinitialize();
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          reinitialize() {
            const e = this._editor.getModel(),
              t = null !== e && this._editor.getOption(73) && d.jC.has(e);
            if (t === this._enabled) return;
            if (
              ((this._enabled = t),
              this.clearRanges(),
              this._localToDispose.clear(),
              !t || null === e)
            )
              return;
            (this._languageWordPattern = C.zu.getWordDefinition(
              e.getLanguageIdentifier().id
            )),
              this._localToDispose.add(
                e.onDidChangeLanguageConfiguration(() => {
                  this._languageWordPattern = C.zu.getWordDefinition(
                    e.getLanguageIdentifier().id
                  );
                })
              );
            const i = new h.vp(this._debounceDuration),
              n = () => {
                this._rangeUpdateTriggerPromise = i.trigger(
                  () => this.updateRanges(),
                  this._debounceDuration
                );
              },
              r = new h.vp(0),
              s = (e) => {
                this._rangeSyncTriggerPromise = r.trigger(() =>
                  this._syncRanges(e)
                );
              };
            this._localToDispose.add(
              this._editor.onDidChangeCursorPosition(() => {
                n();
              })
            ),
              this._localToDispose.add(
                this._editor.onDidChangeModelContent((t) => {
                  if (
                    !this._ignoreChangeEvent &&
                    this._currentDecorations.length > 0
                  ) {
                    const i = e.getDecorationRange(this._currentDecorations[0]);
                    if (i && t.changes.every((e) => i.intersectRanges(e.range)))
                      return void s(this._currentDecorations);
                  }
                  n();
                })
              ),
              this._localToDispose.add({
                dispose: () => {
                  i.cancel(), r.cancel();
                },
              }),
              this.updateRanges();
          }
          _syncRanges(e) {
            if (
              !this._editor.hasModel() ||
              e !== this._currentDecorations ||
              0 === e.length
            )
              return;
            const t = this._editor.getModel(),
              i = t.getDecorationRange(e[0]);
            if (!i || i.startLineNumber !== i.endLineNumber)
              return this.clearRanges();
            const n = t.getValueInRange(i);
            if (this._currentWordPattern) {
              const e = n.match(this._currentWordPattern);
              if ((e ? e[0].length : 0) !== n.length) return this.clearRanges();
            }
            let r = [];
            for (let i = 1, s = e.length; i < s; i++) {
              const s = t.getDecorationRange(e[i]);
              if (s)
                if (s.startLineNumber !== s.endLineNumber)
                  r.push({ range: s, text: n });
                else {
                  let e = t.getValueInRange(s),
                    i = n,
                    o = s.startColumn,
                    a = s.endColumn;
                  const l = b.Mh(e, i);
                  (o += l), (e = e.substr(l)), (i = i.substr(l));
                  const d = b.P1(e, i);
                  (a -= d),
                    (e = e.substr(0, e.length - d)),
                    (i = i.substr(0, i.length - d)),
                    (o === a && 0 === i.length) ||
                      r.push({
                        range: new c.e(
                          s.startLineNumber,
                          o,
                          s.endLineNumber,
                          a
                        ),
                        text: i,
                      });
                }
            }
            if (0 !== r.length)
              try {
                this._ignoreChangeEvent = !0;
                const e = this._editor
                  ._getViewModel()
                  .getPrevEditOperationType();
                this._editor.executeEdits('onTypeRename', r),
                  this._editor._getViewModel().setPrevEditOperationType(e);
              } finally {
                this._ignoreChangeEvent = !1;
              }
          }
          dispose() {
            this.clearRanges(), super.dispose();
          }
          clearRanges() {
            this._visibleContextKey.set(!1),
              (this._currentDecorations = this._editor.deltaDecorations(
                this._currentDecorations,
                []
              )),
              this._currentRequest &&
                (this._currentRequest.cancel(),
                (this._currentRequest = null),
                (this._currentRequestPosition = null));
          }
          updateRanges(t = !1) {
            return S(this, void 0, void 0, function* () {
              if (!this._editor.hasModel()) return void this.clearRanges();
              const i = this._editor.getPosition();
              if (
                (!this._enabled && !t) ||
                this._editor.getSelections().length > 1
              )
                return void this.clearRanges();
              const n = this._editor.getModel(),
                r = n.getVersionId();
              if (
                this._currentRequestPosition &&
                this._currentRequestModelVersion === r
              ) {
                if (i.equals(this._currentRequestPosition)) return;
                if (
                  this._currentDecorations &&
                  this._currentDecorations.length > 0
                ) {
                  const e = n.getDecorationRange(this._currentDecorations[0]);
                  if (e && e.containsPosition(i)) return;
                }
              }
              (this._currentRequestPosition = i),
                (this._currentRequestModelVersion = r);
              const s = (0, h.PG)((t) =>
                S(this, void 0, void 0, function* () {
                  try {
                    const o = yield E(n, i, t);
                    if (s !== this._currentRequest) return;
                    if (((this._currentRequest = null), r !== n.getVersionId()))
                      return;
                    let a = [];
                    (null == o ? void 0 : o.ranges) && (a = o.ranges),
                      (this._currentWordPattern =
                        (null == o ? void 0 : o.wordPattern) ||
                        this._languageWordPattern);
                    let l = !1;
                    for (let e = 0, t = a.length; e < t; e++)
                      if (c.e.containsPosition(a[e], i)) {
                        if (((l = !0), 0 !== e)) {
                          const t = a[e];
                          a.splice(e, 1), a.unshift(t);
                        }
                        break;
                      }
                    if (!l) return void this.clearRanges();
                    const d = a.map((t) => ({
                      range: t,
                      options: e.DECORATION,
                    }));
                    this._visibleContextKey.set(!0),
                      (this._currentDecorations = this._editor.deltaDecorations(
                        this._currentDecorations,
                        d
                      ));
                  } catch (e) {
                    (0, _.VV)(e) || (0, _.dL)(e),
                      (this._currentRequest !== s && this._currentRequest) ||
                        this.clearRanges();
                  }
                })
              );
              return (this._currentRequest = s), s;
            });
          }
        };
        var L, M;
        (x.ID = 'editor.contrib.onTypeRename'),
          (x.DECORATION = u.qx.register({
            stickiness: 0,
            className: 'on-type-rename-decoration',
          })),
          (x = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((L = 1),
              (M = g.i6),
              function (e, t) {
                M(e, t, L);
              }),
            ],
            x
          ));
        class D extends r.R6 {
          constructor() {
            super({
              id: 'editor.action.onTypeRename',
              label: n.N('onTypeRename.label', 'On Type Rename Symbol'),
              alias: 'On Type Rename Symbol',
              precondition: g.Ao.and(f.u.writable, f.u.hasRenameProvider),
              kbOpts: {
                kbExpr: f.u.editorTextFocus,
                primary: 3132,
                weight: 100,
              },
            });
          }
          runCommand(e, t) {
            const i = e.get(m.$),
              [n, r] = (Array.isArray(t) && t) || [void 0, void 0];
            return p.o.isUri(n) && a.L.isIPosition(r)
              ? i
                  .openCodeEditor({ resource: n }, i.getActiveCodeEditor())
                  .then((e) => {
                    e &&
                      (e.setPosition(r),
                      e.invokeWithinContext(
                        (t) => (this.reportTelemetry(t, e), this.run(t, e))
                      ));
                  }, _.dL)
              : super.runCommand(e, t);
          }
          run(e, t) {
            const i = x.get(t);
            return i ? Promise.resolve(i.updateRanges(!0)) : Promise.resolve();
          }
        }
        const N = r._l.bindToContribution(x.get);
        function E(e, t, i) {
          const n = d.jC.ordered(e);
          return (0, h.Ps)(
            n.map((n) => () =>
              Promise.resolve(n.provideOnTypeRenameRanges(e, t, i)).then(
                (e) => {
                  if (e)
                    return {
                      ranges: e.ranges,
                      wordPattern: e.wordPattern || n.wordPattern,
                    };
                },
                (e) => {
                  (0, _.Cp)(e);
                }
              )
            ),
            (e) => !!e && s.Of(null == e ? void 0 : e.ranges)
          );
        }
        (0, r.fK)(
          new N({
            id: 'cancelOnTypeRenameInput',
            precondition: k,
            handler: (e) => e.clearRanges(),
            kbOpts: {
              kbExpr: f.u.editorTextFocus,
              weight: 199,
              primary: 9,
              secondary: [1033],
            },
          })
        );
        const T = (0, v.P6)(
          'editor.onTypeRenameBackground',
          {
            dark: w.Il.fromHex('#f00').transparent(0.3),
            light: w.Il.fromHex('#f00').transparent(0.3),
            hc: w.Il.fromHex('#f00').transparent(0.3),
          },
          n.N(
            'editorOnTypeRenameBackground',
            'Background color when the editor auto renames on type.'
          )
        );
        (0, y.Ic)((e, t) => {
          const i = e.getColor(T);
          i &&
            t.addRule(
              `.monaco-editor .on-type-rename-decoration { background: ${i}; border-left-color: ${i}; }`
            );
        }),
          (0, r.sb)('_executeRenameOnTypeProvider', (e, t) =>
            E(e, t, l.T.None)
          ),
          (0, r._K)(x.ID, x),
          (0, r.Qr)(D);
      },
      4454: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { RenameAction: () => W, rename: () => F });
        var n = i(63580),
          r = i(17301),
          s = i(38819),
          o = i(90535),
          a = i(16830),
          l = i(29102),
          c = i(5976),
          d = i(50187),
          h = i(73910),
          u = i(97781),
          g = i(91847),
          f = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const p = new s.uy('renameInputVisible', !1);
        let m = class {
          constructor(e, t, i, n, r) {
            (this._editor = e),
              (this._acceptKeybindings = t),
              (this._themeService = i),
              (this._keybindingService = n),
              (this._disposables = new c.SL()),
              (this.allowEditorOverflow = !0),
              (this._visibleContextKey = p.bindTo(r)),
              this._editor.addContentWidget(this),
              this._disposables.add(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(36) && this._updateFont();
                })
              ),
              this._disposables.add(
                i.onDidColorThemeChange(this._updateStyles, this)
              );
          }
          dispose() {
            this._disposables.dispose(), this._editor.removeContentWidget(this);
          }
          getId() {
            return '__renameInputWidget';
          }
          getDomNode() {
            if (!this._domNode) {
              (this._domNode = document.createElement('div')),
                (this._domNode.className = 'monaco-editor rename-box'),
                (this._input = document.createElement('input')),
                (this._input.className = 'rename-input'),
                (this._input.type = 'text'),
                this._input.setAttribute(
                  'aria-label',
                  (0, n.N)(
                    'renameAriaLabel',
                    'Rename input. Type new name and press Enter to commit.'
                  )
                ),
                this._domNode.appendChild(this._input),
                (this._label = document.createElement('div')),
                (this._label.className = 'rename-label'),
                this._domNode.appendChild(this._label);
              const e = () => {
                var e, t;
                const [i, r] = this._acceptKeybindings;
                this._keybindingService.lookupKeybinding(i),
                  (this._label.innerText = (0, n.N)(
                    {
                      key: 'label',
                      comment: [
                        'placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"',
                      ],
                    },
                    '{0} to Rename, {1} to Preview',
                    null ===
                      (e = this._keybindingService.lookupKeybinding(i)) ||
                      void 0 === e
                      ? void 0
                      : e.getLabel(),
                    null ===
                      (t = this._keybindingService.lookupKeybinding(r)) ||
                      void 0 === t
                      ? void 0
                      : t.getLabel()
                  ));
              };
              e(),
                this._disposables.add(
                  this._keybindingService.onDidUpdateKeybindings(e)
                ),
                this._updateFont(),
                this._updateStyles(this._themeService.getColorTheme());
            }
            return this._domNode;
          }
          _updateStyles(e) {
            var t, i, n, r;
            if (!this._input || !this._domNode) return;
            const s = e.getColor(h.rh);
            (this._domNode.style.backgroundColor = String(
              null !== (t = e.getColor(h.D0)) && void 0 !== t ? t : ''
            )),
              (this._domNode.style.boxShadow = s ? ` 0 2px 8px ${s}` : ''),
              (this._domNode.style.color = String(
                null !== (i = e.getColor(h.zJ)) && void 0 !== i ? i : ''
              )),
              (this._input.style.backgroundColor = String(
                null !== (n = e.getColor(h.sE)) && void 0 !== n ? n : ''
              ));
            const o = e.getColor(h.dt);
            (this._input.style.borderWidth = o ? '1px' : '0px'),
              (this._input.style.borderStyle = o ? 'solid' : 'none'),
              (this._input.style.borderColor =
                null !== (r = null == o ? void 0 : o.toString()) && void 0 !== r
                  ? r
                  : 'none');
          }
          _updateFont() {
            if (!this._input || !this._label) return;
            const e = this._editor.getOption(36);
            (this._input.style.fontFamily = e.fontFamily),
              (this._input.style.fontWeight = e.fontWeight),
              (this._input.style.fontSize = `${e.fontSize}px`),
              (this._label.style.fontSize = 0.8 * e.fontSize + 'px');
          }
          getPosition() {
            return this._visible
              ? { position: this._position, preference: [2, 1] }
              : null;
          }
          acceptInput(e) {
            this._currentAcceptInput && this._currentAcceptInput(e);
          }
          cancelInput(e) {
            this._currentCancelInput && this._currentCancelInput(e);
          }
          getInput(e, t, i, n, r, s) {
            this._domNode.classList.toggle('preview', r),
              (this._position = new d.L(e.startLineNumber, e.startColumn)),
              (this._input.value = t),
              this._input.setAttribute('selectionStart', i.toString()),
              this._input.setAttribute('selectionEnd', n.toString()),
              (this._input.size = Math.max(
                1.1 * (e.endColumn - e.startColumn),
                20
              ));
            const o = new c.SL();
            return new Promise((e) => {
              (this._currentCancelInput = (t) => (
                (this._currentAcceptInput = void 0),
                (this._currentCancelInput = void 0),
                e(t),
                !0
              )),
                (this._currentAcceptInput = (i) => {
                  0 !== this._input.value.trim().length &&
                  this._input.value !== t
                    ? ((this._currentAcceptInput = void 0),
                      (this._currentCancelInput = void 0),
                      e({ newName: this._input.value, wantsPreview: r && i }))
                    : this.cancelInput(!0);
                }),
                s.onCancellationRequested(() => this.cancelInput(!0)),
                o.add(
                  this._editor.onDidBlurEditorWidget(() => this.cancelInput(!1))
                ),
                this._show();
            }).finally(() => {
              o.dispose(), this._hide();
            });
          }
          _show() {
            this._editor.revealLineInCenterIfOutsideViewport(
              this._position.lineNumber,
              0
            ),
              (this._visible = !0),
              this._visibleContextKey.set(!0),
              this._editor.layoutContentWidget(this),
              setTimeout(() => {
                this._input.focus(),
                  this._input.setSelectionRange(
                    parseInt(this._input.getAttribute('selectionStart')),
                    parseInt(this._input.getAttribute('selectionEnd'))
                  );
              }, 100);
          }
          _hide() {
            (this._visible = !1),
              this._visibleContextKey.reset(),
              this._editor.layoutContentWidget(this);
          }
        };
        m = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([f(2, u.XE), f(3, g.d), f(4, s.i6)], m);
        var _ = i(43775),
          b = i(85152),
          v = i(24314),
          y = i(82276),
          w = i(39925),
          C = i(59422),
          S = i(66007),
          k = i(70666),
          x = i(11640),
          L = i(71050),
          M = i(15393),
          D = i(43557),
          N = i(72065),
          E = i(89872),
          T = i(23193),
          I = i(33187),
          O = i(98401),
          A = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          R = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        class P {
          constructor(e, t) {
            (this.model = e),
              (this.position = t),
              (this._providerRenameIdx = 0),
              (this._providers = _.G0.ordered(e));
          }
          hasProvider() {
            return this._providers.length > 0;
          }
          resolveRenameLocation(e) {
            return R(this, void 0, void 0, function* () {
              const t = [];
              for (
                this._providerRenameIdx = 0;
                this._providerRenameIdx < this._providers.length;
                this._providerRenameIdx++
              ) {
                const i = this._providers[this._providerRenameIdx];
                if (!i.resolveRenameLocation) break;
                let n = yield i.resolveRenameLocation(
                  this.model,
                  this.position,
                  e
                );
                if (n) {
                  if (!n.rejectReason) return n;
                  t.push(n.rejectReason);
                }
              }
              const i = this.model.getWordAtPosition(this.position);
              return i
                ? {
                    range: new v.e(
                      this.position.lineNumber,
                      i.startColumn,
                      this.position.lineNumber,
                      i.endColumn
                    ),
                    text: i.word,
                    rejectReason: t.length > 0 ? t.join('\n') : void 0,
                  }
                : {
                    range: v.e.fromPositions(this.position),
                    text: '',
                    rejectReason: t.length > 0 ? t.join('\n') : void 0,
                  };
            });
          }
          provideRenameEdits(e, t) {
            return R(this, void 0, void 0, function* () {
              return this._provideRenameEdits(
                e,
                this._providerRenameIdx,
                [],
                t
              );
            });
          }
          _provideRenameEdits(e, t, i, r) {
            return R(this, void 0, void 0, function* () {
              const s = this._providers[t];
              if (!s) return { edits: [], rejectReason: i.join('\n') };
              const o = yield s.provideRenameEdits(
                this.model,
                this.position,
                e,
                r
              );
              return o
                ? o.rejectReason
                  ? this._provideRenameEdits(
                      e,
                      t + 1,
                      i.concat(o.rejectReason),
                      r
                    )
                  : o
                : this._provideRenameEdits(
                    e,
                    t + 1,
                    i.concat(n.N('no result', 'No result.')),
                    r
                  );
            });
          }
        }
        function F(e, t, i) {
          return R(this, void 0, void 0, function* () {
            const n = new P(e, t),
              r = yield n.resolveRenameLocation(L.T.None);
            return (null == r ? void 0 : r.rejectReason)
              ? { edits: [], rejectReason: r.rejectReason }
              : n.provideRenameEdits(i, L.T.None);
          });
        }
        let B = class e {
          constructor(e, t, i, n, r, s, o) {
            (this.editor = e),
              (this._instaService = t),
              (this._notificationService = i),
              (this._bulkEditService = n),
              (this._progressService = r),
              (this._logService = s),
              (this._configService = o),
              (this._dispoableStore = new c.SL()),
              (this._cts = new L.A()),
              (this._renameInputField = this._dispoableStore.add(
                new M.Ue(() =>
                  this._dispoableStore.add(
                    this._instaService.createInstance(m, this.editor, [
                      'acceptRenameInput',
                      'acceptRenameInputWithPreview',
                    ])
                  )
                )
              ));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this._dispoableStore.dispose(), this._cts.dispose(!0);
          }
          run() {
            return R(this, void 0, void 0, function* () {
              if ((this._cts.dispose(!0), !this.editor.hasModel())) return;
              const e = this.editor.getPosition(),
                t = new P(this.editor.getModel(), e);
              if (!t.hasProvider()) return;
              let i;
              this._cts = new w.Dl(this.editor, 5);
              try {
                const e = t.resolveRenameLocation(this._cts.token);
                this._progressService.showWhile(e, 250), (i = yield e);
              } catch (t) {
                return void y.O.get(this.editor).showMessage(
                  t ||
                    n.N(
                      'resolveRenameLocationFailed',
                      'An unknown error occurred while resolving rename location'
                    ),
                  e
                );
              }
              if (!i) return;
              if (i.rejectReason)
                return void y.O.get(this.editor).showMessage(i.rejectReason, e);
              if (this._cts.token.isCancellationRequested) return;
              this._cts.dispose(),
                (this._cts = new w.Dl(this.editor, 5, i.range));
              let r = this.editor.getSelection(),
                s = 0,
                o = i.text.length;
              v.e.isEmpty(r) ||
                v.e.spansMultipleLines(r) ||
                !v.e.containsRange(i.range, r) ||
                ((s = Math.max(0, r.startColumn - i.range.startColumn)),
                (o =
                  Math.min(i.range.endColumn, r.endColumn) -
                  i.range.startColumn));
              const a =
                  this._bulkEditService.hasPreviewHandler() &&
                  this._configService.getValue(
                    this.editor.getModel().uri,
                    'editor.rename.enablePreview'
                  ),
                l = yield this._renameInputField.value.getInput(
                  i.range,
                  i.text,
                  s,
                  o,
                  a,
                  this._cts.token
                );
              if ('boolean' == typeof l) return void (l && this.editor.focus());
              this.editor.focus();
              const c = (0, M.eP)(
                t.provideRenameEdits(l.newName, this._cts.token),
                this._cts.token
              ).then(
                (e) =>
                  R(this, void 0, void 0, function* () {
                    e &&
                      this.editor.hasModel() &&
                      (e.rejectReason
                        ? this._notificationService.info(e.rejectReason)
                        : this._bulkEditService
                            .apply(S.fo.convert(e), {
                              editor: this.editor,
                              showPreview: l.wantsPreview,
                              label: n.N(
                                'label',
                                "Renaming '{0}'",
                                null == i ? void 0 : i.text
                              ),
                              quotableLabel: n.N(
                                'quotableLabel',
                                'Renaming {0}',
                                null == i ? void 0 : i.text
                              ),
                            })
                            .then((e) => {
                              e.ariaSummary &&
                                (0, b.Z9)(
                                  n.N(
                                    'aria',
                                    "Successfully renamed '{0}' to '{1}'. Summary: {2}",
                                    i.text,
                                    l.newName,
                                    e.ariaSummary
                                  )
                                );
                            })
                            .catch((e) => {
                              this._notificationService.error(
                                n.N(
                                  'rename.failedApply',
                                  'Rename failed to apply edits'
                                )
                              ),
                                this._logService.error(e);
                            }));
                  }),
                (e) => {
                  this._notificationService.error(
                    n.N('rename.failed', 'Rename failed to compute edits')
                  ),
                    this._logService.error(e);
                }
              );
              return this._progressService.showWhile(c, 250), c;
            });
          }
          acceptRenameInput(e) {
            this._renameInputField.value.acceptInput(e);
          }
          cancelRenameInput() {
            this._renameInputField.value.cancelInput(!0);
          }
        };
        (B.ID = 'editor.contrib.renameController'),
          (B = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              A(1, N.TG),
              A(2, C.lT),
              A(3, S.vu),
              A(4, o.e),
              A(5, D.VZ),
              A(6, I.V),
            ],
            B
          ));
        class W extends a.R6 {
          constructor() {
            super({
              id: 'editor.action.rename',
              label: n.N('rename.label', 'Rename Symbol'),
              alias: 'Rename Symbol',
              precondition: s.Ao.and(l.u.writable, l.u.hasRenameProvider),
              kbOpts: { kbExpr: l.u.editorTextFocus, primary: 60, weight: 100 },
              contextMenuOpts: { group: '1_modification', order: 1.1 },
            });
          }
          runCommand(e, t) {
            const i = e.get(x.$),
              [n, s] = (Array.isArray(t) && t) || [void 0, void 0];
            return k.o.isUri(n) && d.L.isIPosition(s)
              ? i
                  .openCodeEditor({ resource: n }, i.getActiveCodeEditor())
                  .then((e) => {
                    e &&
                      (e.setPosition(s),
                      e.invokeWithinContext(
                        (t) => (this.reportTelemetry(t, e), this.run(t, e))
                      ));
                  }, r.dL)
              : super.runCommand(e, t);
          }
          run(e, t) {
            const i = B.get(t);
            return i ? i.run() : Promise.resolve();
          }
        }
        (0, a._K)(B.ID, B), (0, a.Qr)(W);
        const Y = a._l.bindToContribution(B.get);
        (0, a.fK)(
          new Y({
            id: 'acceptRenameInput',
            precondition: p,
            handler: (e) => e.acceptRenameInput(!1),
            kbOpts: { weight: 199, kbExpr: l.u.focus, primary: 3 },
          })
        ),
          (0, a.fK)(
            new Y({
              id: 'acceptRenameInputWithPreview',
              precondition: s.Ao.and(
                p,
                s.Ao.has('config.editor.rename.enablePreview')
              ),
              handler: (e) => e.acceptRenameInput(!0),
              kbOpts: { weight: 199, kbExpr: l.u.focus, primary: 1027 },
            })
          ),
          (0, a.fK)(
            new Y({
              id: 'cancelRenameInput',
              precondition: p,
              handler: (e) => e.cancelRenameInput(),
              kbOpts: {
                weight: 199,
                kbExpr: l.u.focus,
                primary: 9,
                secondary: [1033],
              },
            })
          ),
          (0, a.sb)('_executeDocumentRenameProvider', function (e, t, ...i) {
            const [n] = i;
            return (0, O.p_)('string' == typeof n), F(e, t, n);
          }),
          E.B.as(T.IP.Configuration).registerConfiguration({
            id: 'editor',
            properties: {
              'editor.rename.enablePreview': {
                scope: 5,
                description: n.N(
                  'enablePreview',
                  'Enable/disable the ability to preview changes before renaming'
                ),
                default: !0,
                type: 'boolean',
              },
            },
          });
      },
      80689: (e, t, i) => {
        'use strict';
        i.d(t, { x: () => o });
        var n = i(50187),
          r = i(24314),
          s = i(91741);
        class o {
          provideSelectionRanges(e, t) {
            return (
              (i = this),
              (n = void 0),
              (s = function* () {
                const i = [];
                for (const n of t) {
                  const t = [];
                  i.push(t);
                  const r = new Map();
                  yield new Promise((t) =>
                    o._bracketsRightYield(t, 0, e, n, r)
                  ),
                    yield new Promise((i) =>
                      o._bracketsLeftYield(i, 0, e, n, r, t)
                    );
                }
                return i;
              }),
              new ((r = void 0) || (r = Promise))(function (e, t) {
                function o(e) {
                  try {
                    l(s.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function a(e) {
                  try {
                    l(s.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof r
                        ? i
                        : new r(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((s = s.apply(i, n || [])).next());
              })
            );
            var i, n, r, s;
          }
          static _bracketsRightYield(e, t, i, n, r) {
            const a = new Map(),
              l = Date.now();
            for (;;) {
              if (t >= o._maxRounds) {
                e();
                break;
              }
              if (!n) {
                e();
                break;
              }
              let c = i.findNextBracket(n);
              if (!c) {
                e();
                break;
              }
              if (Date.now() - l > o._maxDuration) {
                setTimeout(() => o._bracketsRightYield(e, t + 1, i, n, r));
                break;
              }
              const d = c.close[0];
              if (c.isOpen) {
                let e = a.has(d) ? a.get(d) : 0;
                a.set(d, e + 1);
              } else {
                let e = a.has(d) ? a.get(d) : 0;
                if (((e -= 1), a.set(d, Math.max(0, e)), e < 0)) {
                  let e = r.get(d);
                  e || ((e = new s.S()), r.set(d, e)), e.push(c.range);
                }
              }
              n = c.range.getEndPosition();
            }
          }
          static _bracketsLeftYield(e, t, i, n, s, a) {
            const l = new Map(),
              c = Date.now();
            for (;;) {
              if (t >= o._maxRounds && 0 === s.size) {
                e();
                break;
              }
              if (!n) {
                e();
                break;
              }
              let d = i.findPrevBracket(n);
              if (!d) {
                e();
                break;
              }
              if (Date.now() - c > o._maxDuration) {
                setTimeout(() => o._bracketsLeftYield(e, t + 1, i, n, s, a));
                break;
              }
              const h = d.close[0];
              if (d.isOpen) {
                let e = l.has(h) ? l.get(h) : 0;
                if (((e -= 1), l.set(h, Math.max(0, e)), e < 0)) {
                  let e = s.get(h);
                  if (e) {
                    let t = e.shift();
                    0 === e.size && s.delete(h);
                    const n = r.e.fromPositions(
                        d.range.getEndPosition(),
                        t.getStartPosition()
                      ),
                      l = r.e.fromPositions(
                        d.range.getStartPosition(),
                        t.getEndPosition()
                      );
                    a.push({ range: n }),
                      a.push({ range: l }),
                      o._addBracketLeading(i, l, a);
                  }
                }
              } else {
                let e = l.has(h) ? l.get(h) : 0;
                l.set(h, e + 1);
              }
              n = d.range.getStartPosition();
            }
          }
          static _addBracketLeading(e, t, i) {
            if (t.startLineNumber === t.endLineNumber) return;
            const s = t.startLineNumber,
              o = e.getLineFirstNonWhitespaceColumn(s);
            0 !== o &&
              o !== t.startColumn &&
              (i.push({
                range: r.e.fromPositions(new n.L(s, o), t.getEndPosition()),
              }),
              i.push({
                range: r.e.fromPositions(new n.L(s, 1), t.getEndPosition()),
              }));
            const a = s - 1;
            if (a > 0) {
              const s = e.getLineFirstNonWhitespaceColumn(a);
              s === t.startColumn &&
                s !== e.getLineLastNonWhitespaceColumn(a) &&
                (i.push({
                  range: r.e.fromPositions(new n.L(a, s), t.getEndPosition()),
                }),
                i.push({
                  range: r.e.fromPositions(new n.L(a, 1), t.getEndPosition()),
                }));
            }
          }
        }
        (o._maxDuration = 30), (o._maxRounds = 2);
      },
      81955: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { provideSelectionRanges: () => w });
        var n = i(9488),
          r = i(71050),
          s = i(16830),
          o = i(50187),
          a = i(24314),
          l = i(3860),
          c = i(29102),
          d = i(43775),
          h = i(63580),
          u = i(84144),
          g = i(5976),
          f = i(97295),
          p = i(80689),
          m = i(94565),
          _ = i(17301);
        class b {
          constructor(e, t) {
            (this.index = e), (this.ranges = t);
          }
          mov(e) {
            let t = this.index + (e ? 1 : -1);
            if (t < 0 || t >= this.ranges.length) return this;
            const i = new b(t, this.ranges);
            return i.ranges[t].equalsRange(this.ranges[this.index])
              ? i.mov(e)
              : i;
          }
        }
        class v {
          constructor(e) {
            (this._ignoreSelection = !1), (this._editor = e);
          }
          static get(e) {
            return e.getContribution(v.ID);
          }
          dispose() {
            (0, g.B9)(this._selectionListener);
          }
          run(e) {
            if (!this._editor.hasModel()) return;
            const t = this._editor.getSelections(),
              i = this._editor.getModel();
            if (!d.AC.has(i)) return;
            let s = Promise.resolve(void 0);
            return (
              this._state ||
                (s = w(
                  i,
                  t.map((e) => e.getPosition()),
                  r.T.None
                ).then((e) => {
                  if (
                    n.Of(e) &&
                    e.length === t.length &&
                    this._editor.hasModel() &&
                    n.fS(this._editor.getSelections(), t, (e, t) =>
                      e.equalsSelection(t)
                    )
                  ) {
                    for (let i = 0; i < e.length; i++)
                      (e[i] = e[i].filter(
                        (e) =>
                          e.containsPosition(t[i].getStartPosition()) &&
                          e.containsPosition(t[i].getEndPosition())
                      )),
                        e[i].unshift(t[i]);
                    (this._state = e.map((e) => new b(0, e))),
                      (0, g.B9)(this._selectionListener),
                      (this._selectionListener = this._editor.onDidChangeCursorPosition(
                        () => {
                          this._ignoreSelection ||
                            ((0, g.B9)(this._selectionListener),
                            (this._state = void 0));
                        }
                      ));
                  }
                })),
              s.then(() => {
                if (!this._state) return;
                this._state = this._state.map((t) => t.mov(e));
                const t = this._state.map((e) =>
                  l.Y.fromPositions(
                    e.ranges[e.index].getStartPosition(),
                    e.ranges[e.index].getEndPosition()
                  )
                );
                this._ignoreSelection = !0;
                try {
                  this._editor.setSelections(t);
                } finally {
                  this._ignoreSelection = !1;
                }
              })
            );
          }
        }
        v.ID = 'editor.contrib.smartSelectController';
        class y extends s.R6 {
          constructor(e, t) {
            super(t), (this._forward = e);
          }
          run(e, t) {
            return (
              (i = this),
              (n = void 0),
              (s = function* () {
                let e = v.get(t);
                e && (yield e.run(this._forward));
              }),
              new ((r = void 0) || (r = Promise))(function (e, t) {
                function o(e) {
                  try {
                    l(s.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function a(e) {
                  try {
                    l(s.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof r
                        ? i
                        : new r(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((s = s.apply(i, n || [])).next());
              })
            );
            var i, n, r, s;
          }
        }
        function w(e, t, i) {
          const r = d.AC.all(e);
          1 === r.length && r.unshift(new p.x());
          let s = [],
            l = [];
          for (const o of r)
            s.push(
              Promise.resolve(o.provideSelectionRanges(e, t, i)).then((e) => {
                if (n.Of(e) && e.length === t.length)
                  for (let i = 0; i < t.length; i++) {
                    l[i] || (l[i] = []);
                    for (const n of e[i])
                      a.e.isIRange(n.range) &&
                        a.e.containsPosition(n.range, t[i]) &&
                        l[i].push(a.e.lift(n.range));
                  }
              }, _.Cp)
            );
          return Promise.all(s).then(() =>
            l.map((t) => {
              if (0 === t.length) return [];
              t.sort((e, t) =>
                o.L.isBefore(e.getStartPosition(), t.getStartPosition())
                  ? 1
                  : o.L.isBefore(t.getStartPosition(), e.getStartPosition()) ||
                    o.L.isBefore(e.getEndPosition(), t.getEndPosition())
                  ? -1
                  : o.L.isBefore(t.getEndPosition(), e.getEndPosition())
                  ? 1
                  : 0
              );
              let i,
                n = [];
              for (const e of t)
                (!i || (a.e.containsRange(e, i) && !a.e.equalsRange(e, i))) &&
                  (n.push(e), (i = e));
              let r = [n[0]];
              for (let t = 1; t < n.length; t++) {
                const i = n[t - 1],
                  s = n[t];
                if (
                  s.startLineNumber !== i.startLineNumber ||
                  s.endLineNumber !== i.endLineNumber
                ) {
                  const t = new a.e(
                    i.startLineNumber,
                    e.getLineFirstNonWhitespaceColumn(i.startLineNumber),
                    i.endLineNumber,
                    e.getLineLastNonWhitespaceColumn(i.endLineNumber)
                  );
                  t.containsRange(i) &&
                    !t.equalsRange(i) &&
                    s.containsRange(t) &&
                    !s.equalsRange(t) &&
                    r.push(t);
                  const n = new a.e(
                    i.startLineNumber,
                    1,
                    i.endLineNumber,
                    e.getLineMaxColumn(i.endLineNumber)
                  );
                  n.containsRange(i) &&
                    !n.equalsRange(t) &&
                    s.containsRange(n) &&
                    !s.equalsRange(n) &&
                    r.push(n);
                }
                r.push(s);
              }
              return r;
            })
          );
        }
        m.P.registerCommandAlias(
          'editor.action.smartSelect.grow',
          'editor.action.smartSelect.expand'
        ),
          (0, s._K)(v.ID, v),
          (0, s.Qr)(
            class extends y {
              constructor() {
                super(!0, {
                  id: 'editor.action.smartSelect.expand',
                  label: h.N('smartSelect.expand', 'Expand Selection'),
                  alias: 'Expand Selection',
                  precondition: void 0,
                  kbOpts: {
                    kbExpr: c.u.editorTextFocus,
                    primary: 1553,
                    mac: { primary: 3345, secondary: [1297] },
                    weight: 100,
                  },
                  menuOpts: {
                    menuId: u.eH.MenubarSelectionMenu,
                    group: '1_basic',
                    title: h.N(
                      {
                        key: 'miSmartSelectGrow',
                        comment: ['&& denotes a mnemonic'],
                      },
                      '&&Expand Selection'
                    ),
                    order: 2,
                  },
                });
              }
            }
          ),
          (0, s.Qr)(
            class extends y {
              constructor() {
                super(!1, {
                  id: 'editor.action.smartSelect.shrink',
                  label: h.N('smartSelect.shrink', 'Shrink Selection'),
                  alias: 'Shrink Selection',
                  precondition: void 0,
                  kbOpts: {
                    kbExpr: c.u.editorTextFocus,
                    primary: 1551,
                    mac: { primary: 3343, secondary: [1295] },
                    weight: 100,
                  },
                  menuOpts: {
                    menuId: u.eH.MenubarSelectionMenu,
                    group: '1_basic',
                    title: h.N(
                      {
                        key: 'miSmartSelectShrink',
                        comment: ['&& denotes a mnemonic'],
                      },
                      '&&Shrink Selection'
                    ),
                    order: 3,
                  },
                });
              }
            }
          ),
          d.AC.register(
            '*',
            new (class {
              provideSelectionRanges(e, t) {
                const i = [];
                for (const n of t) {
                  const t = [];
                  i.push(t),
                    this._addInWordRanges(t, e, n),
                    this._addWordRanges(t, e, n),
                    this._addWhitespaceLine(t, e, n),
                    t.push({ range: e.getFullModelRange() });
                }
                return i;
              }
              _addInWordRanges(e, t, i) {
                const n = t.getWordAtPosition(i);
                if (!n) return;
                let { word: r, startColumn: s } = n,
                  o = i.column - s,
                  l = o,
                  c = o,
                  d = 0;
                for (; l >= 0; l--) {
                  let e = r.charCodeAt(l);
                  if (l !== o && (95 === e || 45 === e)) break;
                  if ((0, f.mK)(e) && (0, f.df)(d)) break;
                  d = e;
                }
                for (l += 1; c < r.length; c++) {
                  let e = r.charCodeAt(c);
                  if ((0, f.df)(e) && (0, f.mK)(d)) break;
                  if (95 === e || 45 === e) break;
                  d = e;
                }
                l < c &&
                  e.push({
                    range: new a.e(i.lineNumber, s + l, i.lineNumber, s + c),
                  });
              }
              _addWordRanges(e, t, i) {
                const n = t.getWordAtPosition(i);
                n &&
                  e.push({
                    range: new a.e(
                      i.lineNumber,
                      n.startColumn,
                      i.lineNumber,
                      n.endColumn
                    ),
                  });
              }
              _addWhitespaceLine(e, t, i) {
                t.getLineLength(i.lineNumber) > 0 &&
                  0 === t.getLineFirstNonWhitespaceColumn(i.lineNumber) &&
                  0 === t.getLineLastNonWhitespaceColumn(i.lineNumber) &&
                  e.push({
                    range: new a.e(
                      i.lineNumber,
                      1,
                      i.lineNumber,
                      t.getLineMaxColumn(i.lineNumber)
                    ),
                  });
              }
            })()
          ),
          (0, s.f)('_executeSelectionRangeProvider', function (e, ...t) {
            const [i] = t;
            return w(e, i, r.T.None);
          });
      },
      78694: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { SnippetController2: () => j });
        var n = i(5976),
          r = i(16830),
          s = i(24314),
          o = i(3860),
          a = i(29102),
          l = i(79599),
          c = i(38819),
          d = i(43557),
          h = i(9488),
          u = i(97295),
          g = i(69386),
          f = i(3411),
          p = i(40382),
          m = i(72065),
          _ = i(63472),
          b = i(63580),
          v = i(88721),
          y = i(95935),
          w = i(83831),
          C = i(70666);
        const S = 'code-workspace';
        function k(e) {
          return e instanceof C.o;
        }
        var x = i(68843);
        class L {
          constructor(e) {
            this._delegates = e;
          }
          resolve(e) {
            for (const t of this._delegates) {
              let i = t.resolve(e);
              if (void 0 !== i) return i;
            }
          }
        }
        class M {
          constructor(e, t, i, n) {
            (this._model = e),
              (this._selection = t),
              (this._selectionIdx = i),
              (this._overtypingCapturer = n);
          }
          resolve(e) {
            const { name: t } = e;
            if ('SELECTION' === t || 'TM_SELECTED_TEXT' === t) {
              let t = this._model.getValueInRange(this._selection) || void 0,
                i =
                  this._selection.startLineNumber !==
                  this._selection.endLineNumber;
              if (!t && this._overtypingCapturer) {
                const e = this._overtypingCapturer.getLastOvertypedInfo(
                  this._selectionIdx
                );
                e && ((t = e.value), (i = e.multiline));
              }
              if (t && i && e.snippet) {
                const i = this._model.getLineContent(
                    this._selection.startLineNumber
                  ),
                  n = (0, u.V8)(i, 0, this._selection.startColumn - 1);
                let r = n;
                e.snippet.walk(
                  (t) =>
                    t !== e &&
                    (t instanceof _.xv &&
                      (r = (0, u.V8)(t.value.split(/\r\n|\r|\n/).pop())),
                    !0)
                );
                const s = (0, u.Mh)(r, n);
                t = t.replace(
                  /(\r\n|\r|\n)(.*)/g,
                  (e, t, i) => `${t}${r.substr(s)}${i}`
                );
              }
              return t;
            }
            if ('TM_CURRENT_LINE' === t)
              return this._model.getLineContent(
                this._selection.positionLineNumber
              );
            if ('TM_CURRENT_WORD' === t) {
              const e = this._model.getWordAtPosition({
                lineNumber: this._selection.positionLineNumber,
                column: this._selection.positionColumn,
              });
              return (e && e.word) || void 0;
            }
            return 'TM_LINE_INDEX' === t
              ? String(this._selection.positionLineNumber - 1)
              : 'TM_LINE_NUMBER' === t
              ? String(this._selection.positionLineNumber)
              : void 0;
          }
        }
        class D {
          constructor(e, t) {
            (this._labelService = e), (this._model = t);
          }
          resolve(e) {
            const { name: t } = e;
            if ('TM_FILENAME' === t) return v.EZ(this._model.uri.fsPath);
            if ('TM_FILENAME_BASE' === t) {
              const e = v.EZ(this._model.uri.fsPath),
                t = e.lastIndexOf('.');
              return t <= 0 ? e : e.slice(0, t);
            }
            return 'TM_DIRECTORY' === t && this._labelService
              ? '.' === v.XX(this._model.uri.fsPath)
                ? ''
                : this._labelService.getUriLabel((0, y.XX)(this._model.uri))
              : 'TM_FILEPATH' === t && this._labelService
              ? this._labelService.getUriLabel(this._model.uri)
              : void 0;
          }
        }
        class N {
          constructor(e, t, i, n) {
            (this._readClipboardText = e),
              (this._selectionIdx = t),
              (this._selectionCount = i),
              (this._spread = n);
          }
          resolve(e) {
            if ('CLIPBOARD' !== e.name) return;
            const t = this._readClipboardText();
            if (t) {
              if (this._spread) {
                const e = t.split(/\r\n|\n|\r/).filter((e) => !(0, u.m5)(e));
                if (e.length === this._selectionCount)
                  return e[this._selectionIdx];
              }
              return t;
            }
          }
        }
        class E {
          constructor(e, t) {
            (this._model = e), (this._selection = t);
          }
          resolve(e) {
            const { name: t } = e,
              i = this._model.getLanguageIdAtPosition(
                this._selection.selectionStartLineNumber,
                this._selection.selectionStartColumn
              ),
              n = w.zu.getComments(i);
            if (n)
              return 'LINE_COMMENT' === t
                ? n.lineCommentToken || void 0
                : 'BLOCK_COMMENT_START' === t
                ? n.blockCommentStartToken || void 0
                : ('BLOCK_COMMENT_END' === t && n.blockCommentEndToken) ||
                  void 0;
          }
        }
        class T {
          resolve(e) {
            const { name: t } = e;
            return 'CURRENT_YEAR' === t
              ? String(new Date().getFullYear())
              : 'CURRENT_YEAR_SHORT' === t
              ? String(new Date().getFullYear()).slice(-2)
              : 'CURRENT_MONTH' === t
              ? String(new Date().getMonth().valueOf() + 1).padStart(2, '0')
              : 'CURRENT_DATE' === t
              ? String(new Date().getDate().valueOf()).padStart(2, '0')
              : 'CURRENT_HOUR' === t
              ? String(new Date().getHours().valueOf()).padStart(2, '0')
              : 'CURRENT_MINUTE' === t
              ? String(new Date().getMinutes().valueOf()).padStart(2, '0')
              : 'CURRENT_SECOND' === t
              ? String(new Date().getSeconds().valueOf()).padStart(2, '0')
              : 'CURRENT_DAY_NAME' === t
              ? T.dayNames[new Date().getDay()]
              : 'CURRENT_DAY_NAME_SHORT' === t
              ? T.dayNamesShort[new Date().getDay()]
              : 'CURRENT_MONTH_NAME' === t
              ? T.monthNames[new Date().getMonth()]
              : 'CURRENT_MONTH_NAME_SHORT' === t
              ? T.monthNamesShort[new Date().getMonth()]
              : 'CURRENT_SECONDS_UNIX' === t
              ? String(Math.floor(Date.now() / 1e3))
              : void 0;
          }
        }
        (T.dayNames = [
          b.N('Sunday', 'Sunday'),
          b.N('Monday', 'Monday'),
          b.N('Tuesday', 'Tuesday'),
          b.N('Wednesday', 'Wednesday'),
          b.N('Thursday', 'Thursday'),
          b.N('Friday', 'Friday'),
          b.N('Saturday', 'Saturday'),
        ]),
          (T.dayNamesShort = [
            b.N('SundayShort', 'Sun'),
            b.N('MondayShort', 'Mon'),
            b.N('TuesdayShort', 'Tue'),
            b.N('WednesdayShort', 'Wed'),
            b.N('ThursdayShort', 'Thu'),
            b.N('FridayShort', 'Fri'),
            b.N('SaturdayShort', 'Sat'),
          ]),
          (T.monthNames = [
            b.N('January', 'January'),
            b.N('February', 'February'),
            b.N('March', 'March'),
            b.N('April', 'April'),
            b.N('May', 'May'),
            b.N('June', 'June'),
            b.N('July', 'July'),
            b.N('August', 'August'),
            b.N('September', 'September'),
            b.N('October', 'October'),
            b.N('November', 'November'),
            b.N('December', 'December'),
          ]),
          (T.monthNamesShort = [
            b.N('JanuaryShort', 'Jan'),
            b.N('FebruaryShort', 'Feb'),
            b.N('MarchShort', 'Mar'),
            b.N('AprilShort', 'Apr'),
            b.N('MayShort', 'May'),
            b.N('JuneShort', 'Jun'),
            b.N('JulyShort', 'Jul'),
            b.N('AugustShort', 'Aug'),
            b.N('SeptemberShort', 'Sep'),
            b.N('OctoberShort', 'Oct'),
            b.N('NovemberShort', 'Nov'),
            b.N('DecemberShort', 'Dec'),
          ]);
        class I {
          constructor(e) {
            this._workspaceService = e;
          }
          resolve(e) {
            if (!this._workspaceService) return;
            const t = (function (e) {
              return e.configuration
                ? { configPath: e.configuration, id: e.id }
                : 1 === e.folders.length
                ? e.folders[0].uri
                : void 0;
            })(this._workspaceService.getWorkspace());
            return t
              ? 'WORKSPACE_NAME' === e.name
                ? this._resolveWorkspaceName(t)
                : 'WORKSPACE_FOLDER' === e.name
                ? this._resoveWorkspacePath(t)
                : void 0
              : void 0;
          }
          _resolveWorkspaceName(e) {
            if (k(e)) return v.EZ(e.path);
            let t = v.EZ(e.configPath.path);
            return (
              t.endsWith(S) && (t = t.substr(0, t.length - S.length - 1)), t
            );
          }
          _resoveWorkspacePath(e) {
            if (k(e)) return (0, x.DT)(e.fsPath);
            let t = v.EZ(e.configPath.path),
              i = e.configPath.fsPath;
            return (
              i.endsWith(t) && (i = i.substr(0, i.length - t.length - 1)),
              i ? (0, x.DT)(i) : '/'
            );
          }
        }
        class O {
          resolve(e) {
            const { name: t } = e;
            return 'RANDOM' === t
              ? Math.random().toString().slice(-6)
              : 'RANDOM_HEX' === t
              ? Math.random().toString(16).slice(-6)
              : void 0;
          }
        }
        var A = i(97781),
          R = i(73910),
          P = i(44349);
        (0, A.Ic)((e, t) => {
          function i(t) {
            const i = e.getColor(t);
            return i ? i.toString() : 'transparent';
          }
          t.addRule(
            `.monaco-editor .snippet-placeholder { background-color: ${i(
              R.u2
            )}; outline-color: ${i(R.Pk)}; }`
          ),
            t.addRule(
              `.monaco-editor .finish-snippet-placeholder { background-color: ${i(
                R.I1
              )}; outline-color: ${i(R.U6)}; }`
            );
        });
        class F {
          constructor(e, t, i) {
            (this._nestingLevel = 1),
              (this._editor = e),
              (this._snippet = t),
              (this._offset = i),
              (this._placeholderGroups = (0, h.vM)(
                t.placeholders,
                _.Vm.compareByIndex
              )),
              (this._placeholderGroupsIdx = -1);
          }
          dispose() {
            this._placeholderDecorations &&
              this._editor.deltaDecorations(
                [...this._placeholderDecorations.values()],
                []
              ),
              (this._placeholderGroups.length = 0);
          }
          _initDecorations() {
            if (this._placeholderDecorations) return;
            this._placeholderDecorations = new Map();
            const e = this._editor.getModel();
            this._editor.changeDecorations((t) => {
              for (const i of this._snippet.placeholders) {
                const n = this._snippet.offset(i),
                  r = this._snippet.fullLen(i),
                  o = s.e.fromPositions(
                    e.getPositionAt(this._offset + n),
                    e.getPositionAt(this._offset + n + r)
                  ),
                  a = i.isFinalTabstop
                    ? F._decor.inactiveFinal
                    : F._decor.inactive,
                  l = t.addDecoration(o, a);
                this._placeholderDecorations.set(i, l);
              }
            });
          }
          move(e) {
            if (!this._editor.hasModel()) return [];
            if ((this._initDecorations(), this._placeholderGroupsIdx >= 0)) {
              let e = [];
              for (const t of this._placeholderGroups[
                this._placeholderGroupsIdx
              ])
                if (t.transform) {
                  const i = this._placeholderDecorations.get(t),
                    n = this._editor.getModel().getDecorationRange(i),
                    r = this._editor.getModel().getValueInRange(n);
                  e.push(g.h.replaceMove(n, t.transform.resolve(r)));
                }
              e.length > 0 &&
                this._editor.executeEdits('snippet.placeholderTransform', e);
            }
            let t = !1;
            !0 === e &&
            this._placeholderGroupsIdx < this._placeholderGroups.length - 1
              ? ((this._placeholderGroupsIdx += 1), (t = !0))
              : !1 === e &&
                this._placeholderGroupsIdx > 0 &&
                ((this._placeholderGroupsIdx -= 1), (t = !0));
            const i = this._editor.getModel().changeDecorations((e) => {
              const i = new Set(),
                n = [];
              for (const r of this._placeholderGroups[
                this._placeholderGroupsIdx
              ]) {
                const s = this._placeholderDecorations.get(r),
                  a = this._editor.getModel().getDecorationRange(s);
                n.push(
                  new o.Y(
                    a.startLineNumber,
                    a.startColumn,
                    a.endLineNumber,
                    a.endColumn
                  )
                ),
                  (t = t && this._hasPlaceholderBeenCollapsed(r)),
                  e.changeDecorationOptions(
                    s,
                    r.isFinalTabstop ? F._decor.activeFinal : F._decor.active
                  ),
                  i.add(r);
                for (const t of this._snippet.enclosingPlaceholders(r)) {
                  const n = this._placeholderDecorations.get(t);
                  e.changeDecorationOptions(
                    n,
                    t.isFinalTabstop ? F._decor.activeFinal : F._decor.active
                  ),
                    i.add(t);
                }
              }
              for (const [t, n] of this._placeholderDecorations)
                i.has(t) ||
                  e.changeDecorationOptions(
                    n,
                    t.isFinalTabstop
                      ? F._decor.inactiveFinal
                      : F._decor.inactive
                  );
              return n;
            });
            return t ? this.move(e) : null != i ? i : [];
          }
          _hasPlaceholderBeenCollapsed(e) {
            let t = e;
            for (; t; ) {
              if (t instanceof _.Vm) {
                const e = this._placeholderDecorations.get(t);
                if (
                  this._editor.getModel().getDecorationRange(e).isEmpty() &&
                  t.toString().length > 0
                )
                  return !0;
              }
              t = t.parent;
            }
            return !1;
          }
          get isAtFirstPlaceholder() {
            return (
              this._placeholderGroupsIdx <= 0 ||
              0 === this._placeholderGroups.length
            );
          }
          get isAtLastPlaceholder() {
            return (
              this._placeholderGroupsIdx === this._placeholderGroups.length - 1
            );
          }
          get hasPlaceholder() {
            return this._snippet.placeholders.length > 0;
          }
          computePossibleSelections() {
            const e = new Map();
            for (const t of this._placeholderGroups) {
              let i;
              for (const n of t) {
                if (n.isFinalTabstop) break;
                i || ((i = []), e.set(n.index, i));
                const t = this._placeholderDecorations.get(n),
                  r = this._editor.getModel().getDecorationRange(t);
                if (!r) {
                  e.delete(n.index);
                  break;
                }
                i.push(r);
              }
            }
            return e;
          }
          get choice() {
            return this._placeholderGroups[this._placeholderGroupsIdx][0]
              .choice;
          }
          merge(e) {
            const t = this._editor.getModel();
            (this._nestingLevel *= 10),
              this._editor.changeDecorations((i) => {
                for (const n of this._placeholderGroups[
                  this._placeholderGroupsIdx
                ]) {
                  const r = e.shift();
                  console.assert(!r._placeholderDecorations);
                  const o = r._snippet.placeholderInfo.last.index;
                  for (const e of r._snippet.placeholderInfo.all)
                    e.isFinalTabstop
                      ? (e.index = n.index + (o + 1) / this._nestingLevel)
                      : (e.index = n.index + e.index / this._nestingLevel);
                  this._snippet.replace(n, r._snippet.children);
                  const a = this._placeholderDecorations.get(n);
                  i.removeDecoration(a), this._placeholderDecorations.delete(n);
                  for (const e of r._snippet.placeholders) {
                    const n = r._snippet.offset(e),
                      o = r._snippet.fullLen(e),
                      a = s.e.fromPositions(
                        t.getPositionAt(r._offset + n),
                        t.getPositionAt(r._offset + n + o)
                      ),
                      l = i.addDecoration(a, F._decor.inactive);
                    this._placeholderDecorations.set(e, l);
                  }
                }
                this._placeholderGroups = (0, h.vM)(
                  this._snippet.placeholders,
                  _.Vm.compareByIndex
                );
              });
          }
        }
        F._decor = {
          active: f.qx.register({
            stickiness: 0,
            className: 'snippet-placeholder',
          }),
          inactive: f.qx.register({
            stickiness: 1,
            className: 'snippet-placeholder',
          }),
          activeFinal: f.qx.register({
            stickiness: 1,
            className: 'finish-snippet-placeholder',
          }),
          inactiveFinal: f.qx.register({
            stickiness: 1,
            className: 'finish-snippet-placeholder',
          }),
        };
        const B = {
          overwriteBefore: 0,
          overwriteAfter: 0,
          adjustWhitespace: !0,
          clipboardText: void 0,
          overtypingCapturer: void 0,
        };
        class W {
          constructor(e, t, i = B) {
            (this._templateMerges = []),
              (this._snippets = []),
              (this._editor = e),
              (this._template = t),
              (this._options = i);
          }
          static adjustWhitespace(e, t, i, n, r) {
            const s = e.getLineContent(t.lineNumber),
              o = (0, u.V8)(s, 0, t.column - 1);
            i.walk((t) => {
              if (t instanceof _.xv && !(t.parent instanceof _.Lv)) {
                const i = t.value.split(/\r\n|\r|\n/);
                if (n)
                  for (let t = 1; t < i.length; t++) {
                    let n = (0, u.V8)(i[t]);
                    i[t] =
                      e.normalizeIndentation(o + n) + i[t].substr(n.length);
                  }
                if (r) {
                  const n = i.join(e.getEOL());
                  n !== t.value && t.parent.replace(t, [new _.xv(n)]);
                }
              }
              return !0;
            });
          }
          static adjustSelection(e, t, i, n) {
            if (0 !== i || 0 !== n) {
              const { positionLineNumber: r, positionColumn: s } = t,
                a = s - i,
                l = s + n,
                c = e.validateRange({
                  startLineNumber: r,
                  startColumn: a,
                  endLineNumber: r,
                  endColumn: l,
                });
              t = o.Y.createWithDirection(
                c.startLineNumber,
                c.startColumn,
                c.endLineNumber,
                c.endColumn,
                t.getDirection()
              );
            }
            return t;
          }
          static createEditsAndSnippets(e, t, i, n, r, o, a, l) {
            const c = [],
              d = [];
            if (!e.hasModel()) return { edits: c, snippets: d };
            const h = e.getModel(),
              u = e.invokeWithinContext((e) => e.get(p.ec, m.jt)),
              f = e.invokeWithinContext((e) => new D(e.get(P.e, m.jt), h)),
              b = () => a;
            let v = 0,
              y = h.getValueInRange(
                W.adjustSelection(h, e.getSelection(), i, 0)
              ),
              w = h.getValueInRange(
                W.adjustSelection(h, e.getSelection(), 0, n)
              ),
              C = h.getLineFirstNonWhitespaceColumn(
                e.getSelection().positionLineNumber
              );
            const S = e
              .getSelections()
              .map((e, t) => ({ selection: e, idx: t }))
              .sort((e, t) =>
                s.e.compareRangesUsingStarts(e.selection, t.selection)
              );
            for (const { selection: s, idx: a } of S) {
              let p = W.adjustSelection(h, s, i, 0),
                m = W.adjustSelection(h, s, 0, n);
              y !== h.getValueInRange(p) && (p = s),
                w !== h.getValueInRange(m) && (m = s);
              const k = s
                  .setStartPosition(p.startLineNumber, p.startColumn)
                  .setEndPosition(m.endLineNumber, m.endColumn),
                x = new _.Yj().parse(t, !0, r),
                D = k.getStartPosition();
              W.adjustWhitespace(
                h,
                D,
                x,
                o ||
                  (a > 0 &&
                    C !==
                      h.getLineFirstNonWhitespaceColumn(s.positionLineNumber)),
                !0
              ),
                x.resolveVariables(
                  new L([
                    f,
                    new N(b, a, S.length, 'spread' === e.getOption(62)),
                    new M(h, s, a, l),
                    new E(h, s),
                    new T(),
                    new I(u),
                    new O(),
                  ])
                );
              const A = h.getOffsetAt(D) + v;
              (v += x.toString().length - h.getValueLengthInRange(k)),
                (c[a] = g.h.replace(k, x.toString())),
                (c[a].identifier = { major: a, minor: 0 }),
                (d[a] = new F(e, x, A));
            }
            return { edits: c, snippets: d };
          }
          dispose() {
            (0, n.B9)(this._snippets);
          }
          _logInfo() {
            return `template="${
              this._template
            }", merged_templates="${this._templateMerges.join(' -> ')}"`;
          }
          insert() {
            if (!this._editor.hasModel()) return;
            const { edits: e, snippets: t } = W.createEditsAndSnippets(
              this._editor,
              this._template,
              this._options.overwriteBefore,
              this._options.overwriteAfter,
              !1,
              this._options.adjustWhitespace,
              this._options.clipboardText,
              this._options.overtypingCapturer
            );
            (this._snippets = t),
              this._editor.executeEdits('snippet', e, (e) =>
                this._snippets[0].hasPlaceholder
                  ? this._move(!0)
                  : e
                      .filter((e) => !!e.identifier)
                      .map((e) => o.Y.fromPositions(e.range.getEndPosition()))
              ),
              this._editor.revealRange(this._editor.getSelections()[0]);
          }
          merge(e, t = B) {
            if (!this._editor.hasModel()) return;
            this._templateMerges.push([
              this._snippets[0]._nestingLevel,
              this._snippets[0]._placeholderGroupsIdx,
              e,
            ]);
            const { edits: i, snippets: n } = W.createEditsAndSnippets(
              this._editor,
              e,
              t.overwriteBefore,
              t.overwriteAfter,
              !0,
              t.adjustWhitespace,
              t.clipboardText,
              t.overtypingCapturer
            );
            this._editor.executeEdits('snippet', i, (e) => {
              for (const e of this._snippets) e.merge(n);
              return (
                console.assert(0 === n.length),
                this._snippets[0].hasPlaceholder
                  ? this._move(void 0)
                  : e
                      .filter((e) => !!e.identifier)
                      .map((e) => o.Y.fromPositions(e.range.getEndPosition()))
              );
            });
          }
          next() {
            const e = this._move(!0);
            this._editor.setSelections(e),
              this._editor.revealPositionInCenterIfOutsideViewport(
                e[0].getPosition()
              );
          }
          prev() {
            const e = this._move(!1);
            this._editor.setSelections(e),
              this._editor.revealPositionInCenterIfOutsideViewport(
                e[0].getPosition()
              );
          }
          _move(e) {
            const t = [];
            for (const i of this._snippets) {
              const n = i.move(e);
              t.push(...n);
            }
            return t;
          }
          get isAtFirstPlaceholder() {
            return this._snippets[0].isAtFirstPlaceholder;
          }
          get isAtLastPlaceholder() {
            return this._snippets[0].isAtLastPlaceholder;
          }
          get hasPlaceholder() {
            return this._snippets[0].hasPlaceholder;
          }
          get choice() {
            return this._snippets[0].choice;
          }
          isSelectionWithinPlaceholders() {
            if (!this.hasPlaceholder) return !1;
            const e = this._editor.getSelections();
            if (e.length < this._snippets.length) return !1;
            let t = new Map();
            for (const i of this._snippets) {
              const n = i.computePossibleSelections();
              if (0 === t.size)
                for (const [i, r] of n) {
                  r.sort(s.e.compareRangesUsingStarts);
                  for (const n of e)
                    if (r[0].containsRange(n)) {
                      t.set(i, []);
                      break;
                    }
                }
              if (0 === t.size) return !1;
              t.forEach((e, t) => {
                e.push(...n.get(t));
              });
            }
            e.sort(s.e.compareRangesUsingStarts);
            for (let [i, n] of t)
              if (n.length === e.length) {
                n.sort(s.e.compareRangesUsingStarts);
                for (let r = 0; r < n.length; r++)
                  n[r].containsRange(e[r]) || t.delete(i);
              } else t.delete(i);
            return t.size > 0;
          }
        }
        var Y = function (e, t) {
          return function (i, n) {
            t(i, n, e);
          };
        };
        const H = {
          overwriteBefore: 0,
          overwriteAfter: 0,
          undoStopBefore: !0,
          undoStopAfter: !0,
          adjustWhitespace: !0,
          clipboardText: void 0,
          overtypingCapturer: void 0,
        };
        let j = class e {
          constructor(t, i, r) {
            (this._editor = t),
              (this._logService = i),
              (this._snippetListener = new n.SL()),
              (this._modelVersionId = -1),
              (this._inSnippet = e.InSnippetMode.bindTo(r)),
              (this._hasNextTabstop = e.HasNextTabstop.bindTo(r)),
              (this._hasPrevTabstop = e.HasPrevTabstop.bindTo(r));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this._inSnippet.reset(),
              this._hasPrevTabstop.reset(),
              this._hasNextTabstop.reset(),
              (0, n.B9)(this._session),
              this._snippetListener.dispose();
          }
          insert(e, t) {
            try {
              this._doInsert(
                e,
                void 0 === t ? H : Object.assign(Object.assign({}, H), t)
              );
            } catch (t) {
              this.cancel(),
                this._logService.error(t),
                this._logService.error('snippet_error'),
                this._logService.error('insert_template=', e),
                this._logService.error(
                  'existing_template=',
                  this._session ? this._session._logInfo() : '<no_session>'
                );
            }
          }
          _doInsert(e, t) {
            this._editor.hasModel() &&
              (this._snippetListener.clear(),
              t.undoStopBefore && this._editor.getModel().pushStackElement(),
              this._session
                ? this._session.merge(e, t)
                : ((this._modelVersionId = this._editor
                    .getModel()
                    .getAlternativeVersionId()),
                  (this._session = new W(this._editor, e, t)),
                  this._session.insert()),
              t.undoStopAfter && this._editor.getModel().pushStackElement(),
              this._updateState(),
              this._snippetListener.add(
                this._editor.onDidChangeModelContent(
                  (e) => e.isFlush && this.cancel()
                )
              ),
              this._snippetListener.add(
                this._editor.onDidChangeModel(() => this.cancel())
              ),
              this._snippetListener.add(
                this._editor.onDidChangeCursorSelection(() =>
                  this._updateState()
                )
              ));
          }
          _updateState() {
            if (this._session && this._editor.hasModel()) {
              if (
                this._modelVersionId ===
                this._editor.getModel().getAlternativeVersionId()
              )
                return this.cancel();
              if (!this._session.hasPlaceholder) return this.cancel();
              if (
                this._session.isAtLastPlaceholder ||
                !this._session.isSelectionWithinPlaceholders()
              )
                return this.cancel();
              this._inSnippet.set(!0),
                this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),
                this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),
                this._handleChoice();
            }
          }
          _handleChoice() {
            if (!this._session || !this._editor.hasModel())
              return void (this._currentChoice = void 0);
            const { choice: e } = this._session;
            if (e) {
              if (this._currentChoice !== e) {
                (this._currentChoice = e),
                  this._editor.setSelections(
                    this._editor
                      .getSelections()
                      .map((e) => o.Y.fromPositions(e.getStartPosition()))
                  );
                const [t] = e.options;
                (0, l.i5)(
                  this._editor,
                  e.options.map((e, i) => ({
                    kind: 13,
                    label: e.value,
                    insertText: e.value,
                    sortText: 'a'.repeat(i + 1),
                    range: s.e.fromPositions(
                      this._editor.getPosition(),
                      this._editor.getPosition().delta(0, t.value.length)
                    ),
                  }))
                );
              }
            } else this._currentChoice = void 0;
          }
          finish() {
            for (; this._inSnippet.get(); ) this.next();
          }
          cancel(e = !1) {
            this._inSnippet.reset(),
              this._hasPrevTabstop.reset(),
              this._hasNextTabstop.reset(),
              this._snippetListener.clear(),
              (0, n.B9)(this._session),
              (this._session = void 0),
              (this._modelVersionId = -1),
              e && this._editor.setSelections([this._editor.getSelection()]);
          }
          prev() {
            this._session && this._session.prev(), this._updateState();
          }
          next() {
            this._session && this._session.next(), this._updateState();
          }
          isInSnippet() {
            return Boolean(this._inSnippet.get());
          }
        };
        (j.ID = 'snippetController2'),
          (j.InSnippetMode = new c.uy('inSnippetMode', !1)),
          (j.HasNextTabstop = new c.uy('hasNextTabstop', !1)),
          (j.HasPrevTabstop = new c.uy('hasPrevTabstop', !1)),
          (j = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([Y(1, d.VZ), Y(2, c.i6)], j)),
          (0, r._K)(j.ID, j);
        const V = r._l.bindToContribution(j.get);
        (0, r.fK)(
          new V({
            id: 'jumpToNextSnippetPlaceholder',
            precondition: c.Ao.and(j.InSnippetMode, j.HasNextTabstop),
            handler: (e) => e.next(),
            kbOpts: { weight: 130, kbExpr: a.u.editorTextFocus, primary: 2 },
          })
        ),
          (0, r.fK)(
            new V({
              id: 'jumpToPrevSnippetPlaceholder',
              precondition: c.Ao.and(j.InSnippetMode, j.HasPrevTabstop),
              handler: (e) => e.prev(),
              kbOpts: {
                weight: 130,
                kbExpr: a.u.editorTextFocus,
                primary: 1026,
              },
            })
          ),
          (0, r.fK)(
            new V({
              id: 'leaveSnippet',
              precondition: j.InSnippetMode,
              handler: (e) => e.cancel(!0),
              kbOpts: {
                weight: 130,
                kbExpr: a.u.editorTextFocus,
                primary: 9,
                secondary: [1033],
              },
            })
          ),
          (0, r.fK)(
            new V({
              id: 'acceptSnippet',
              precondition: j.InSnippetMode,
              handler: (e) => e.finish(),
            })
          );
      },
      63472: (e, t, i) => {
        'use strict';
        i.d(t, { xv: () => s, Vm: () => a, Lv: () => l, Yj: () => f });
        class n {
          constructor() {
            (this.value = ''), (this.pos = 0);
          }
          static isDigitCharacter(e) {
            return e >= 48 && e <= 57;
          }
          static isVariableCharacter(e) {
            return 95 === e || (e >= 97 && e <= 122) || (e >= 65 && e <= 90);
          }
          text(e) {
            (this.value = e), (this.pos = 0);
          }
          tokenText(e) {
            return this.value.substr(e.pos, e.len);
          }
          next() {
            if (this.pos >= this.value.length)
              return { type: 14, pos: this.pos, len: 0 };
            let e,
              t = this.pos,
              i = 0,
              r = this.value.charCodeAt(t);
            if (((e = n._table[r]), 'number' == typeof e))
              return (this.pos += 1), { type: e, pos: t, len: 1 };
            if (n.isDigitCharacter(r)) {
              e = 8;
              do {
                (i += 1), (r = this.value.charCodeAt(t + i));
              } while (n.isDigitCharacter(r));
              return (this.pos += i), { type: e, pos: t, len: i };
            }
            if (n.isVariableCharacter(r)) {
              e = 9;
              do {
                r = this.value.charCodeAt(t + ++i);
              } while (n.isVariableCharacter(r) || n.isDigitCharacter(r));
              return (this.pos += i), { type: e, pos: t, len: i };
            }
            e = 10;
            do {
              (i += 1), (r = this.value.charCodeAt(t + i));
            } while (
              !isNaN(r) &&
              void 0 === n._table[r] &&
              !n.isDigitCharacter(r) &&
              !n.isVariableCharacter(r)
            );
            return (this.pos += i), { type: e, pos: t, len: i };
          }
        }
        n._table = {
          36: 0,
          58: 1,
          44: 2,
          123: 3,
          125: 4,
          92: 5,
          47: 6,
          124: 7,
          43: 11,
          45: 12,
          63: 13,
        };
        class r {
          constructor() {
            this._children = [];
          }
          appendChild(e) {
            return (
              e instanceof s &&
              this._children[this._children.length - 1] instanceof s
                ? (this._children[this._children.length - 1].value += e.value)
                : ((e.parent = this), this._children.push(e)),
              this
            );
          }
          replace(e, t) {
            const { parent: i } = e,
              n = i.children.indexOf(e),
              r = i.children.slice(0);
            r.splice(n, 1, ...t),
              (i._children = r),
              (function e(t, i) {
                for (const n of t) (n.parent = i), e(n.children, n);
              })(t, i);
          }
          get children() {
            return this._children;
          }
          get snippet() {
            let e = this;
            for (;;) {
              if (!e) return;
              if (e instanceof g) return e;
              e = e.parent;
            }
          }
          toString() {
            return this.children.reduce((e, t) => e + t.toString(), '');
          }
          len() {
            return 0;
          }
        }
        class s extends r {
          constructor(e) {
            super(), (this.value = e);
          }
          toString() {
            return this.value;
          }
          len() {
            return this.value.length;
          }
          clone() {
            return new s(this.value);
          }
        }
        class o extends r {}
        class a extends o {
          constructor(e) {
            super(), (this.index = e);
          }
          static compareByIndex(e, t) {
            return e.index === t.index
              ? 0
              : e.isFinalTabstop
              ? 1
              : t.isFinalTabstop || e.index < t.index
              ? -1
              : e.index > t.index
              ? 1
              : 0;
          }
          get isFinalTabstop() {
            return 0 === this.index;
          }
          get choice() {
            return 1 === this._children.length && this._children[0] instanceof l
              ? this._children[0]
              : void 0;
          }
          clone() {
            let e = new a(this.index);
            return (
              this.transform && (e.transform = this.transform.clone()),
              (e._children = this.children.map((e) => e.clone())),
              e
            );
          }
        }
        class l extends r {
          constructor() {
            super(...arguments), (this.options = []);
          }
          appendChild(e) {
            return (
              e instanceof s && ((e.parent = this), this.options.push(e)), this
            );
          }
          toString() {
            return this.options[0].value;
          }
          len() {
            return this.options[0].len();
          }
          clone() {
            let e = new l();
            return this.options.forEach(e.appendChild, e), e;
          }
        }
        class c extends r {
          constructor() {
            super(...arguments), (this.regexp = new RegExp(''));
          }
          resolve(e) {
            const t = this;
            let i = !1,
              n = e.replace(this.regexp, function () {
                return (
                  (i = !0),
                  t._replace(Array.prototype.slice.call(arguments, 0, -2))
                );
              });
            return (
              !i &&
                this._children.some(
                  (e) => e instanceof d && Boolean(e.elseValue)
                ) &&
                (n = this._replace([])),
              n
            );
          }
          _replace(e) {
            let t = '';
            for (const i of this._children)
              if (i instanceof d) {
                let n = e[i.index] || '';
                (n = i.resolve(n)), (t += n);
              } else t += i.toString();
            return t;
          }
          toString() {
            return '';
          }
          clone() {
            let e = new c();
            return (
              (e.regexp = new RegExp(
                this.regexp.source,
                (this.regexp.ignoreCase ? 'i' : '') +
                  (this.regexp.global ? 'g' : '')
              )),
              (e._children = this.children.map((e) => e.clone())),
              e
            );
          }
        }
        class d extends r {
          constructor(e, t, i, n) {
            super(),
              (this.index = e),
              (this.shorthandName = t),
              (this.ifValue = i),
              (this.elseValue = n);
          }
          resolve(e) {
            return 'upcase' === this.shorthandName
              ? e
                ? e.toLocaleUpperCase()
                : ''
              : 'downcase' === this.shorthandName
              ? e
                ? e.toLocaleLowerCase()
                : ''
              : 'capitalize' === this.shorthandName
              ? e
                ? e[0].toLocaleUpperCase() + e.substr(1)
                : ''
              : 'pascalcase' === this.shorthandName
              ? e
                ? this._toPascalCase(e)
                : ''
              : Boolean(e) && 'string' == typeof this.ifValue
              ? this.ifValue
              : Boolean(e) || 'string' != typeof this.elseValue
              ? e || ''
              : this.elseValue;
          }
          _toPascalCase(e) {
            const t = e.match(/[a-z]+/gi);
            return t
              ? t
                  .map(function (e) {
                    return (
                      e.charAt(0).toUpperCase() + e.substr(1).toLowerCase()
                    );
                  })
                  .join('')
              : e;
          }
          clone() {
            return new d(
              this.index,
              this.shorthandName,
              this.ifValue,
              this.elseValue
            );
          }
        }
        class h extends o {
          constructor(e) {
            super(), (this.name = e);
          }
          resolve(e) {
            let t = e.resolve(this);
            return (
              this.transform && (t = this.transform.resolve(t || '')),
              void 0 !== t && ((this._children = [new s(t)]), !0)
            );
          }
          clone() {
            const e = new h(this.name);
            return (
              this.transform && (e.transform = this.transform.clone()),
              (e._children = this.children.map((e) => e.clone())),
              e
            );
          }
        }
        function u(e, t) {
          const i = [...e];
          for (; i.length > 0; ) {
            const e = i.shift();
            if (!t(e)) break;
            i.unshift(...e.children);
          }
        }
        class g extends r {
          get placeholderInfo() {
            if (!this._placeholders) {
              let e,
                t = [];
              this.walk(function (i) {
                return (
                  i instanceof a &&
                    (t.push(i), (e = !e || e.index < i.index ? i : e)),
                  !0
                );
              }),
                (this._placeholders = { all: t, last: e });
            }
            return this._placeholders;
          }
          get placeholders() {
            const { all: e } = this.placeholderInfo;
            return e;
          }
          offset(e) {
            let t = 0,
              i = !1;
            return (
              this.walk((n) =>
                n === e ? ((i = !0), !1) : ((t += n.len()), !0)
              ),
              i ? t : -1
            );
          }
          fullLen(e) {
            let t = 0;
            return u([e], (e) => ((t += e.len()), !0)), t;
          }
          enclosingPlaceholders(e) {
            let t = [],
              { parent: i } = e;
            for (; i; ) i instanceof a && t.push(i), (i = i.parent);
            return t;
          }
          resolveVariables(e) {
            return (
              this.walk(
                (t) => (
                  t instanceof h &&
                    t.resolve(e) &&
                    (this._placeholders = void 0),
                  !0
                )
              ),
              this
            );
          }
          appendChild(e) {
            return (this._placeholders = void 0), super.appendChild(e);
          }
          replace(e, t) {
            return (this._placeholders = void 0), super.replace(e, t);
          }
          clone() {
            let e = new g();
            return (this._children = this.children.map((e) => e.clone())), e;
          }
          walk(e) {
            u(this.children, e);
          }
        }
        class f {
          constructor() {
            (this._scanner = new n()),
              (this._token = { type: 14, pos: 0, len: 0 });
          }
          static escape(e) {
            return e.replace(/\$|}|\\/g, '\\$&');
          }
          static guessNeedsClipboard(e) {
            return /\${?CLIPBOARD/.test(e);
          }
          parse(e, t, i) {
            this._scanner.text(e), (this._token = this._scanner.next());
            const n = new g();
            for (; this._parse(n); );
            const r = new Map(),
              s = [];
            let o = 0;
            n.walk(
              (e) => (
                e instanceof a &&
                  ((o += 1),
                  e.isFinalTabstop
                    ? r.set(0, void 0)
                    : !r.has(e.index) && e.children.length > 0
                    ? r.set(e.index, e.children)
                    : s.push(e)),
                !0
              )
            );
            for (const e of s) {
              const t = r.get(e.index);
              if (t) {
                const i = new a(e.index);
                i.transform = e.transform;
                for (const e of t) i.appendChild(e.clone());
                n.replace(e, [i]);
              }
            }
            return (
              i || (i = o > 0 && t),
              !r.has(0) && i && n.appendChild(new a(0)),
              n
            );
          }
          _accept(e, t) {
            if (void 0 === e || this._token.type === e) {
              let e = !t || this._scanner.tokenText(this._token);
              return (this._token = this._scanner.next()), e;
            }
            return !1;
          }
          _backTo(e) {
            return (this._scanner.pos = e.pos + e.len), (this._token = e), !1;
          }
          _until(e) {
            const t = this._token;
            for (; this._token.type !== e; ) {
              if (14 === this._token.type) return !1;
              if (5 === this._token.type) {
                const e = this._scanner.next();
                if (0 !== e.type && 4 !== e.type && 5 !== e.type) return !1;
              }
              this._token = this._scanner.next();
            }
            const i = this._scanner.value
              .substring(t.pos, this._token.pos)
              .replace(/\\(\$|}|\\)/g, '$1');
            return (this._token = this._scanner.next()), i;
          }
          _parse(e) {
            return (
              this._parseEscaped(e) ||
              this._parseTabstopOrVariableName(e) ||
              this._parseComplexPlaceholder(e) ||
              this._parseComplexVariable(e) ||
              this._parseAnything(e)
            );
          }
          _parseEscaped(e) {
            let t;
            return (
              !!(t = this._accept(5, !0)) &&
              ((t =
                this._accept(0, !0) ||
                this._accept(4, !0) ||
                this._accept(5, !0) ||
                t),
              e.appendChild(new s(t)),
              !0)
            );
          }
          _parseTabstopOrVariableName(e) {
            let t;
            const i = this._token;
            return this._accept(0) &&
              (t = this._accept(9, !0) || this._accept(8, !0))
              ? (e.appendChild(/^\d+$/.test(t) ? new a(Number(t)) : new h(t)),
                !0)
              : this._backTo(i);
          }
          _parseComplexPlaceholder(e) {
            let t;
            const i = this._token;
            if (
              !(this._accept(0) && this._accept(3) && (t = this._accept(8, !0)))
            )
              return this._backTo(i);
            const n = new a(Number(t));
            if (this._accept(1))
              for (;;) {
                if (this._accept(4)) return e.appendChild(n), !0;
                if (!this._parse(n))
                  return (
                    e.appendChild(new s('${' + t + ':')),
                    n.children.forEach(e.appendChild, e),
                    !0
                  );
              }
            else {
              if (!(n.index > 0 && this._accept(7)))
                return this._accept(6)
                  ? this._parseTransform(n)
                    ? (e.appendChild(n), !0)
                    : (this._backTo(i), !1)
                  : this._accept(4)
                  ? (e.appendChild(n), !0)
                  : this._backTo(i);
              {
                const t = new l();
                for (;;) {
                  if (this._parseChoiceElement(t)) {
                    if (this._accept(2)) continue;
                    if (this._accept(7) && (n.appendChild(t), this._accept(4)))
                      return e.appendChild(n), !0;
                  }
                  return this._backTo(i), !1;
                }
              }
            }
          }
          _parseChoiceElement(e) {
            const t = this._token,
              i = [];
            for (; 2 !== this._token.type && 7 !== this._token.type; ) {
              let e;
              if (
                ((e = (e = this._accept(5, !0))
                  ? this._accept(2, !0) ||
                    this._accept(7, !0) ||
                    this._accept(5, !0) ||
                    e
                  : this._accept(void 0, !0)),
                !e)
              )
                return this._backTo(t), !1;
              i.push(e);
            }
            return 0 === i.length
              ? (this._backTo(t), !1)
              : (e.appendChild(new s(i.join(''))), !0);
          }
          _parseComplexVariable(e) {
            let t;
            const i = this._token;
            if (
              !(this._accept(0) && this._accept(3) && (t = this._accept(9, !0)))
            )
              return this._backTo(i);
            const n = new h(t);
            if (!this._accept(1))
              return this._accept(6)
                ? this._parseTransform(n)
                  ? (e.appendChild(n), !0)
                  : (this._backTo(i), !1)
                : this._accept(4)
                ? (e.appendChild(n), !0)
                : this._backTo(i);
            for (;;) {
              if (this._accept(4)) return e.appendChild(n), !0;
              if (!this._parse(n))
                return (
                  e.appendChild(new s('${' + t + ':')),
                  n.children.forEach(e.appendChild, e),
                  !0
                );
            }
          }
          _parseTransform(e) {
            let t = new c(),
              i = '',
              n = '';
            for (; !this._accept(6); ) {
              let e;
              if ((e = this._accept(5, !0)))
                (e = this._accept(6, !0) || e), (i += e);
              else {
                if (14 === this._token.type) return !1;
                i += this._accept(void 0, !0);
              }
            }
            for (; !this._accept(6); ) {
              let e;
              if ((e = this._accept(5, !0)))
                (e = this._accept(5, !0) || this._accept(6, !0) || e),
                  t.appendChild(new s(e));
              else if (!this._parseFormatString(t) && !this._parseAnything(t))
                return !1;
            }
            for (; !this._accept(4); ) {
              if (14 === this._token.type) return !1;
              n += this._accept(void 0, !0);
            }
            try {
              t.regexp = new RegExp(i, n);
            } catch (e) {
              return !1;
            }
            return (e.transform = t), !0;
          }
          _parseFormatString(e) {
            const t = this._token;
            if (!this._accept(0)) return !1;
            let i = !1;
            this._accept(3) && (i = !0);
            let n = this._accept(8, !0);
            if (!n) return this._backTo(t), !1;
            if (!i) return e.appendChild(new d(Number(n))), !0;
            if (this._accept(4)) return e.appendChild(new d(Number(n))), !0;
            if (!this._accept(1)) return this._backTo(t), !1;
            if (this._accept(6)) {
              let i = this._accept(9, !0);
              return i && this._accept(4)
                ? (e.appendChild(new d(Number(n), i)), !0)
                : (this._backTo(t), !1);
            }
            if (this._accept(11)) {
              let t = this._until(4);
              if (t)
                return e.appendChild(new d(Number(n), void 0, t, void 0)), !0;
            } else if (this._accept(12)) {
              let t = this._until(4);
              if (t)
                return e.appendChild(new d(Number(n), void 0, void 0, t)), !0;
            } else if (this._accept(13)) {
              let t = this._until(1);
              if (t) {
                let i = this._until(4);
                if (i) return e.appendChild(new d(Number(n), void 0, t, i)), !0;
              }
            } else {
              let t = this._until(4);
              if (t)
                return e.appendChild(new d(Number(n), void 0, void 0, t)), !0;
            }
            return this._backTo(t), !1;
          }
          _parseAnything(e) {
            return (
              14 !== this._token.type &&
              (e.appendChild(new s(this._scanner.tokenText(this._token))),
              this._accept(void 0),
              !0)
            );
          }
        }
      },
      79599: (e, t, i) => {
        'use strict';
        i.d(t, {
          _y: () => p,
          GI: () => m,
          A9: () => b,
          ZJ: () => v,
          kL: () => w,
          wg: () => k,
          i5: () => L,
        });
        var n = i(17301),
          r = i(16830),
          s = i(43775),
          o = i(50187),
          a = i(38819),
          l = i(71050),
          c = i(24314),
          d = i(75392),
          h = i(5976),
          u = i(84144),
          g = i(63472),
          f = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        const p = {
            Visible: new a.uy('suggestWidgetVisible', !1),
            DetailsVisible: new a.uy('suggestWidgetDetailsVisible', !1),
            MultipleSuggestions: new a.uy(
              'suggestWidgetMultipleSuggestions',
              !1
            ),
            MakesTextEdit: new a.uy('suggestionMakesTextEdit', !0),
            AcceptSuggestionsOnEnter: new a.uy('acceptSuggestionOnEnter', !0),
            HasInsertAndReplaceRange: new a.uy(
              'suggestionHasInsertAndReplaceRange',
              !1
            ),
            CanResolve: new a.uy('suggestionCanResolve', !1),
          },
          m = new u.eH('suggestWidgetStatusBar');
        class _ {
          constructor(e, t, i, n) {
            (this.position = e),
              (this.completion = t),
              (this.container = i),
              (this.provider = n),
              (this.isInvalid = !1),
              (this.score = d.CL.Default),
              (this.distance = 0),
              (this.textLabel =
                'string' == typeof t.label ? t.label : t.label.name),
              (this.labelLow = this.textLabel.toLowerCase()),
              (this.isInvalid = !this.textLabel),
              (this.sortTextLow = t.sortText && t.sortText.toLowerCase()),
              (this.filterTextLow = t.filterText && t.filterText.toLowerCase()),
              c.e.isIRange(t.range)
                ? ((this.editStart = new o.L(
                    t.range.startLineNumber,
                    t.range.startColumn
                  )),
                  (this.editInsertEnd = new o.L(
                    t.range.endLineNumber,
                    t.range.endColumn
                  )),
                  (this.editReplaceEnd = new o.L(
                    t.range.endLineNumber,
                    t.range.endColumn
                  )),
                  (this.isInvalid =
                    this.isInvalid ||
                    c.e.spansMultipleLines(t.range) ||
                    t.range.startLineNumber !== e.lineNumber))
                : ((this.editStart = new o.L(
                    t.range.insert.startLineNumber,
                    t.range.insert.startColumn
                  )),
                  (this.editInsertEnd = new o.L(
                    t.range.insert.endLineNumber,
                    t.range.insert.endColumn
                  )),
                  (this.editReplaceEnd = new o.L(
                    t.range.replace.endLineNumber,
                    t.range.replace.endColumn
                  )),
                  (this.isInvalid =
                    this.isInvalid ||
                    c.e.spansMultipleLines(t.range.insert) ||
                    c.e.spansMultipleLines(t.range.replace) ||
                    t.range.insert.startLineNumber !== e.lineNumber ||
                    t.range.replace.startLineNumber !== e.lineNumber ||
                    t.range.insert.startColumn !==
                      t.range.replace.startColumn)),
              'function' != typeof n.resolveCompletionItem &&
                ((this._resolveCache = Promise.resolve()),
                (this._isResolved = !0));
          }
          get isResolved() {
            return !!this._isResolved;
          }
          resolve(e) {
            return f(this, void 0, void 0, function* () {
              if (!this._resolveCache) {
                const t = e.onCancellationRequested(() => {
                  (this._resolveCache = void 0), (this._isResolved = !1);
                });
                this._resolveCache = Promise.resolve(
                  this.provider.resolveCompletionItem(this.completion, e)
                ).then(
                  (e) => {
                    Object.assign(this.completion, e),
                      (this._isResolved = !0),
                      t.dispose();
                  },
                  (e) => {
                    (0, n.VV)(e) &&
                      ((this._resolveCache = void 0), (this._isResolved = !1));
                  }
                );
              }
              return this._resolveCache;
            });
          }
        }
        class b {
          constructor(e = 2, t = new Set(), i = new Set()) {
            (this.snippetSortOrder = e),
              (this.kindFilter = t),
              (this.providerFilter = i);
          }
        }
        function v() {}
        b.default = new b();
        class y {
          constructor(e, t, i) {
            (this.items = e), (this.needsClipboard = t), (this.dispoables = i);
          }
        }
        function w(e, t, i = b.default, r = { triggerKind: 0 }, o = l.T.None) {
          return f(this, void 0, void 0, function* () {
            t = t.clone();
            const a = e.getWordAtPosition(t),
              l = a
                ? new c.e(
                    t.lineNumber,
                    a.startColumn,
                    t.lineNumber,
                    a.endColumn
                  )
                : c.e.fromPositions(t),
              d = {
                replace: l,
                insert: l.setEndPosition(t.lineNumber, t.column),
              },
              u = [],
              p = new h.SL();
            let m = !1;
            const b = (e, n) => {
                if (n) {
                  for (let r of n.suggestions)
                    i.kindFilter.has(r.kind) ||
                      (r.range || (r.range = d),
                      r.sortText ||
                        (r.sortText =
                          'string' == typeof r.label ? r.label : r.label.name),
                      !m &&
                        r.insertTextRules &&
                        4 & r.insertTextRules &&
                        (m = g.Yj.guessNeedsClipboard(r.insertText)),
                      u.push(new _(t, r, n, e)));
                  (0, h.Wf)(n) && p.add(n);
                }
              },
              v = (() => f(this, void 0, void 0, function* () {}))();
            for (let a of s.KZ.orderedGroups(e)) {
              let s = u.length;
              if (
                (yield Promise.all(
                  a.map((s) =>
                    f(this, void 0, void 0, function* () {
                      if (
                        !(i.providerFilter.size > 0) ||
                        i.providerFilter.has(s)
                      )
                        try {
                          const i = yield s.provideCompletionItems(e, t, r, o);
                          b(s, i);
                        } catch (e) {
                          (0, n.Cp)(e);
                        }
                    })
                  )
                ),
                s !== u.length || o.isCancellationRequested)
              )
                break;
            }
            return (
              yield v,
              o.isCancellationRequested
                ? (p.dispose(), Promise.reject((0, n.F0)()))
                : new y(u.sort(k(i.snippetSortOrder)), m, p)
            );
          });
        }
        function C(e, t) {
          if (e.sortTextLow && t.sortTextLow) {
            if (e.sortTextLow < t.sortTextLow) return -1;
            if (e.sortTextLow > t.sortTextLow) return 1;
          }
          return e.completion.label < t.completion.label
            ? -1
            : e.completion.label > t.completion.label
            ? 1
            : e.completion.kind - t.completion.kind;
        }
        const S = new Map();
        function k(e) {
          return S.get(e);
        }
        S.set(0, function (e, t) {
          if (e.completion.kind !== t.completion.kind) {
            if (27 === e.completion.kind) return -1;
            if (27 === t.completion.kind) return 1;
          }
          return C(e, t);
        }),
          S.set(2, function (e, t) {
            if (e.completion.kind !== t.completion.kind) {
              if (27 === e.completion.kind) return 1;
              if (27 === t.completion.kind) return -1;
            }
            return C(e, t);
          }),
          S.set(1, C),
          (0, r.kT)('_executeCompletionItemProvider', (e, t, i) =>
            f(void 0, void 0, void 0, function* () {
              const n = { incomplete: !1, suggestions: [] },
                r = [],
                s = i.maxItemsToResolve || 0,
                o = yield w(e, t);
              for (const e of o.items)
                r.length < s && r.push(e.resolve(l.T.None)),
                  (n.incomplete = n.incomplete || e.container.incomplete),
                  n.suggestions.push(e.completion);
              try {
                return yield Promise.all(r), n;
              } finally {
                setTimeout(() => o.dispoables.dispose(), 100);
              }
            })
          );
        const x = new (class {
          constructor() {
            this.onlyOnceSuggestions = [];
          }
          provideCompletionItems() {
            let e = { suggestions: this.onlyOnceSuggestions.slice(0) };
            return (this.onlyOnceSuggestions.length = 0), e;
          }
        })();
        function L(e, t) {
          setTimeout(() => {
            x.onlyOnceSuggestions.push(...t),
              e
                .getContribution('editor.contrib.suggestController')
                .triggerSuggest(new Set().add(x));
          }, 0);
        }
        s.KZ.register('*', x);
      },
      24993: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            SuggestController: () => Ct,
            TriggerSuggestAction: () => St,
          });
        var n = i(85152),
          r = i(9488),
          s = i(17301),
          o = i(22258),
          a = i(5976),
          l = i(39925),
          c = i(16830),
          d = i(69386),
          h = i(24314),
          u = i(29102),
          g = i(78694),
          f = i(63472),
          p = i(43702),
          m = i(52365),
          _ = i(43775),
          b = i(15393),
          v = i(72065),
          y = i(33108),
          w = i(65026),
          C = i(71531),
          S = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class k {
          constructor(e) {
            this.name = e;
          }
          select(e, t, i) {
            if (0 === i.length) return 0;
            let n = i[0].score[0];
            for (let e = 0; e < i.length; e++) {
              const { score: t, completion: r } = i[e];
              if (t[0] !== n) break;
              if (r.preselect) return e;
            }
            return 0;
          }
        }
        class x extends k {
          constructor() {
            super('first');
          }
          memorize(e, t, i) {}
          toJSON() {}
          fromJSON() {}
        }
        let L = class e {
          constructor(e, t, i) {
            (this._storageService = e),
              (this._modeService = t),
              (this._configService = i),
              (this._disposables = new a.SL()),
              (this._persistSoon = new b.pY(() => this._saveState(), 500)),
              this._disposables.add(
                e.onWillSaveState((e) => {
                  e.reason === m.fk.SHUTDOWN && this._saveState();
                })
              );
          }
          dispose() {
            this._disposables.dispose(), this._persistSoon.dispose();
          }
          memorize(e, t, i) {
            this._withStrategy(e, t).memorize(e, t, i),
              this._persistSoon.schedule();
          }
          select(e, t, i) {
            return this._withStrategy(e, t).select(e, t, i);
          }
          _withStrategy(t, i) {
            var n, r;
            const s = this._configService.getValue('editor.suggestSelection', {
              overrideIdentifier:
                null ===
                  (n = this._modeService.getLanguageIdentifier(
                    t.getLanguageIdAtPosition(i.lineNumber, i.column)
                  )) || void 0 === n
                  ? void 0
                  : n.language,
              resource: t.uri,
            });
            if (
              (null === (r = this._strategy) || void 0 === r
                ? void 0
                : r.name) !== s
            ) {
              this._saveState();
              const t = e._strategyCtors.get(s) || x;
              this._strategy = new t();
              try {
                const t = this._configService.getValue(
                    'editor.suggest.shareSuggestSelections'
                  )
                    ? 0
                    : 1,
                  i = this._storageService.get(`${e._storagePrefix}/${s}`, t);
                i && this._strategy.fromJSON(JSON.parse(i));
              } catch (e) {}
            }
            return this._strategy;
          }
          _saveState() {
            if (this._strategy) {
              const t = this._configService.getValue(
                  'editor.suggest.shareSuggestSelections'
                )
                  ? 0
                  : 1,
                i = JSON.stringify(this._strategy);
              this._storageService.store(
                `${e._storagePrefix}/${this._strategy.name}`,
                i,
                t
              );
            }
          }
        };
        (L._strategyCtors = new Map([
          [
            'recentlyUsedByPrefix',
            class extends k {
              constructor() {
                super('recentlyUsedByPrefix'),
                  (this._trie = p.Id.forStrings()),
                  (this._seq = 0);
              }
              memorize(e, t, i) {
                const { word: n } = e.getWordUntilPosition(t),
                  r = `${e.getLanguageIdentifier().language}/${n}`;
                this._trie.set(r, {
                  type: i.completion.kind,
                  insertText: i.completion.insertText,
                  touch: this._seq++,
                });
              }
              select(e, t, i) {
                let { word: n } = e.getWordUntilPosition(t);
                if (!n) return super.select(e, t, i);
                let r = `${e.getLanguageIdentifier().language}/${n}`,
                  s = this._trie.get(r);
                if ((s || (s = this._trie.findSubstr(r)), s))
                  for (let e = 0; e < i.length; e++) {
                    let { kind: t, insertText: n } = i[e].completion;
                    if (t === s.type && n === s.insertText) return e;
                  }
                return super.select(e, t, i);
              }
              toJSON() {
                let e = [];
                return (
                  this._trie.forEach((t, i) => e.push([i, t])),
                  e
                    .sort((e, t) => -(e[1].touch - t[1].touch))
                    .forEach((e, t) => (e[1].touch = t)),
                  e.slice(0, 200)
                );
              }
              fromJSON(e) {
                if ((this._trie.clear(), e.length > 0)) {
                  this._seq = e[0][1].touch + 1;
                  for (const [t, i] of e)
                    (i.type =
                      'number' == typeof i.type ? i.type : (0, _.jr)(i.type)),
                      this._trie.set(t, i);
                }
              }
            },
          ],
          [
            'recentlyUsed',
            class extends k {
              constructor() {
                super('recentlyUsed'),
                  (this._cache = new p.z6(300, 0.66)),
                  (this._seq = 0);
              }
              memorize(e, t, i) {
                const { label: n } = i.completion,
                  r = `${e.getLanguageIdentifier().language}/${n}`;
                this._cache.set(r, {
                  touch: this._seq++,
                  type: i.completion.kind,
                  insertText: i.completion.insertText,
                });
              }
              select(e, t, i) {
                if (0 === i.length) return 0;
                const n = e
                  .getLineContent(t.lineNumber)
                  .substr(t.column - 10, t.column - 1);
                if (/\s$/.test(n)) return super.select(e, t, i);
                let r = i[0].score[0],
                  s = -1,
                  o = -1;
                for (let t = 0; t < i.length && i[t].score[0] === r; t++) {
                  const n = `${e.getLanguageIdentifier().language}/${
                      i[t].completion.label
                    }`,
                    r = this._cache.peek(n);
                  if (
                    (r &&
                      r.touch > o &&
                      r.type === i[t].completion.kind &&
                      r.insertText === i[t].completion.insertText &&
                      ((o = r.touch), (s = t)),
                    i[t].completion.preselect)
                  )
                    return t;
                }
                return -1 !== s ? s : 0;
              }
              toJSON() {
                return this._cache.toJSON();
              }
              fromJSON(e) {
                this._cache.clear();
                for (const [t, i] of e)
                  (i.touch = 0),
                    (i.type =
                      'number' == typeof i.type ? i.type : (0, _.jr)(i.type)),
                    this._cache.set(t, i);
                this._seq = this._cache.size;
              }
            },
          ],
          ['first', x],
        ])),
          (L._storagePrefix = 'suggest/memories'),
          (L = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([S(0, m.Uy), S(1, C.h), S(2, y.Ui)], L));
        const M = (0, v.yh)('ISuggestMemories');
        (0, w.z)(M, L, !0);
        var D = i(63580),
          N = i(94565),
          E = i(38819),
          T = i(49989),
          I = i(79599);
        let O = class e {
          constructor(t, i) {
            (this._editor = t),
              (this._index = 0),
              (this._ckOtherSuggestions = e.OtherSuggestions.bindTo(i));
          }
          dispose() {
            this.reset();
          }
          reset() {
            this._ckOtherSuggestions.reset(),
              (0, a.B9)(this._listener),
              (this._model = void 0),
              (this._acceptNext = void 0),
              (this._ignore = !1);
          }
          set({ model: t, index: i }, n) {
            0 !== t.items.length && e._moveIndex(!0, t, i) !== i
              ? ((this._acceptNext = n),
                (this._model = t),
                (this._index = i),
                (this._listener = this._editor.onDidChangeCursorPosition(() => {
                  this._ignore || this.reset();
                })),
                this._ckOtherSuggestions.set(!0))
              : this.reset();
          }
          static _moveIndex(e, t, i) {
            let n = i;
            for (
              ;
              (n = (n + t.items.length + (e ? 1 : -1)) % t.items.length),
                n !== i && t.items[n].completion.additionalTextEdits;

            );
            return n;
          }
          next() {
            this._move(!0);
          }
          prev() {
            this._move(!1);
          }
          _move(t) {
            if (this._model)
              try {
                (this._ignore = !0),
                  (this._index = e._moveIndex(t, this._model, this._index)),
                  this._acceptNext({
                    index: this._index,
                    item: this._model.items[this._index],
                    model: this._model,
                  });
              } finally {
                this._ignore = !1;
              }
          }
        };
        var A, R;
        (O.OtherSuggestions = new E.uy('hasOtherSuggestions', !1)),
          (O = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((A = 1),
              (R = E.i6),
              function (e, t) {
                R(e, t, A);
              }),
            ],
            O
          ));
        var P = i(4669),
          F = i(3860),
          B = i(75392),
          W = i(97295);
        class Y {
          constructor(e, t, i, n, r, s, o) {
            (this.clipboardText = o),
              (this._snippetCompareFn = Y._compareCompletionItems),
              (this._items = e),
              (this._column = t),
              (this._wordDistance = n),
              (this._options = r),
              (this._refilterKind = 1),
              (this._lineContext = i),
              'top' === s
                ? (this._snippetCompareFn = Y._compareCompletionItemsSnippetsUp)
                : 'bottom' === s &&
                  (this._snippetCompareFn =
                    Y._compareCompletionItemsSnippetsDown);
          }
          get lineContext() {
            return this._lineContext;
          }
          set lineContext(e) {
            (this._lineContext.leadingLineContent === e.leadingLineContent &&
              this._lineContext.characterCountDelta ===
                e.characterCountDelta) ||
              ((this._refilterKind =
                this._lineContext.characterCountDelta < e.characterCountDelta &&
                this._filteredItems
                  ? 2
                  : 1),
              (this._lineContext = e));
          }
          get items() {
            return this._ensureCachedState(), this._filteredItems;
          }
          get allProvider() {
            return this._ensureCachedState(), this._allProvider;
          }
          get incomplete() {
            return this._ensureCachedState(), this._isIncomplete;
          }
          adopt(e) {
            let t = [];
            for (let i = 0; i < this._items.length; )
              e.has(this._items[i].provider)
                ? i++
                : (t.push(this._items[i]),
                  (this._items[i] = this._items[this._items.length - 1]),
                  this._items.pop());
            return (this._refilterKind = 1), t;
          }
          get stats() {
            return this._ensureCachedState(), this._stats;
          }
          _ensureCachedState() {
            0 !== this._refilterKind && this._createCachedState();
          }
          _createCachedState() {
            (this._isIncomplete = new Set()),
              (this._allProvider = new Set()),
              (this._stats = {
                suggestionCount: 0,
                snippetCount: 0,
                textCount: 0,
              });
            const {
              leadingLineContent: e,
              characterCountDelta: t,
            } = this._lineContext;
            let i = '',
              n = '';
            const r =
                1 === this._refilterKind ? this._items : this._filteredItems,
              s = [],
              o = !this._options.filterGraceful || r.length > 2e3 ? B.EW : B.l7;
            for (let a = 0; a < r.length; a++) {
              const l = r[a];
              if (l.isInvalid) continue;
              l.container.incomplete && this._isIncomplete.add(l.provider),
                this._allProvider.add(l.provider);
              const c = l.position.column - l.editStart.column,
                d = c + t - (l.position.column - this._column);
              if (
                (i.length !== d &&
                  ((i = 0 === d ? '' : e.slice(-d)), (n = i.toLowerCase())),
                (l.word = i),
                0 === d)
              )
                l.score = B.CL.Default;
              else {
                let e = 0;
                for (; e < c; ) {
                  const t = i.charCodeAt(e);
                  if (32 !== t && 9 !== t) break;
                  e += 1;
                }
                const t =
                  'string' == typeof l.completion.label
                    ? l.completion.label
                    : l.completion.label.name;
                if (e >= d) l.score = B.CL.Default;
                else if ('string' == typeof l.completion.filterText) {
                  let r = o(
                    i,
                    n,
                    e,
                    l.completion.filterText,
                    l.filterTextLow,
                    0,
                    !1
                  );
                  if (!r) continue;
                  0 === (0, W.zY)(l.completion.filterText, t)
                    ? (l.score = r)
                    : ((l.score = (0, B.jB)(i, n, e, t, l.labelLow, 0)),
                      (l.score[0] = r[0]));
                } else {
                  let r = o(i, n, e, t, l.labelLow, 0, !1);
                  if (!r) continue;
                  l.score = r;
                }
              }
              switch (
                ((l.idx = a),
                (l.distance = this._wordDistance.distance(
                  l.position,
                  l.completion
                )),
                s.push(l),
                this._stats.suggestionCount++,
                l.completion.kind)
              ) {
                case 27:
                  this._stats.snippetCount++;
                  break;
                case 18:
                  this._stats.textCount++;
              }
            }
            (this._filteredItems = s.sort(this._snippetCompareFn)),
              (this._refilterKind = 0);
          }
          static _compareCompletionItems(e, t) {
            return e.score[0] > t.score[0]
              ? -1
              : e.score[0] < t.score[0]
              ? 1
              : e.distance < t.distance
              ? -1
              : e.distance > t.distance
              ? 1
              : e.idx < t.idx
              ? -1
              : e.idx > t.idx
              ? 1
              : 0;
          }
          static _compareCompletionItemsSnippetsDown(e, t) {
            if (e.completion.kind !== t.completion.kind) {
              if (27 === e.completion.kind) return 1;
              if (27 === t.completion.kind) return -1;
            }
            return Y._compareCompletionItems(e, t);
          }
          static _compareCompletionItemsSnippetsUp(e, t) {
            if (e.completion.kind !== t.completion.kind) {
              if (27 === e.completion.kind) return -1;
              if (27 === t.completion.kind) return 1;
            }
            return Y._compareCompletionItems(e, t);
          }
        }
        var H = i(71050),
          j = i(80689);
        class V {
          static create(e, t) {
            return (
              (i = this),
              (n = void 0),
              (o = function* () {
                if (!t.getOption(96).localityBonus) return V.None;
                if (!t.hasModel()) return V.None;
                const i = t.getModel(),
                  n = t.getPosition();
                if (!e.canComputeWordRanges(i.uri)) return V.None;
                const [s] = yield new j.x().provideSelectionRanges(i, [n]);
                if (0 === s.length) return V.None;
                const o = yield e.computeWordRanges(i.uri, s[0].range);
                if (!o) return V.None;
                const a = i.getWordUntilPosition(n);
                return (
                  delete o[a.word],
                  new (class extends V {
                    distance(e, i) {
                      if (!n.equals(t.getPosition())) return 0;
                      if (17 === i.kind) return 2 << 20;
                      let a =
                          'string' == typeof i.label ? i.label : i.label.name,
                        l = o[a];
                      if ((0, r.XY)(l)) return 2 << 20;
                      let c = (0, r.ry)(
                          l,
                          h.e.fromPositions(e),
                          h.e.compareRangesUsingStarts
                        ),
                        d = c >= 0 ? l[c] : l[Math.max(0, ~c - 1)],
                        u = s.length;
                      for (const e of s) {
                        if (!h.e.containsRange(e.range, d)) break;
                        u -= 1;
                      }
                      return u;
                    }
                  })()
                );
              }),
              new ((s = void 0) || (s = Promise))(function (e, t) {
                function r(e) {
                  try {
                    l(o.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function a(e) {
                  try {
                    l(o.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof s
                        ? i
                        : new s(function (e) {
                            e(i);
                          })).then(r, a);
                }
                l((o = o.apply(i, n || [])).next());
              })
            );
            var i, n, s, o;
          }
        }
        V.None = new (class extends V {
          distance() {
            return 0;
          }
        })();
        class z {
          constructor(e, t, i, n) {
            (this.leadingLineContent = e
              .getLineContent(t.lineNumber)
              .substr(0, t.column - 1)),
              (this.leadingWord = e.getWordUntilPosition(t)),
              (this.lineNumber = t.lineNumber),
              (this.column = t.column),
              (this.auto = i),
              (this.shy = n);
          }
          static shouldAutoTrigger(e) {
            if (!e.hasModel()) return !1;
            const t = e.getModel(),
              i = e.getPosition();
            t.tokenizeIfCheap(i.lineNumber);
            const n = t.getWordAtPosition(i);
            return !!n && n.endColumn === i.column && !!isNaN(Number(n.word));
          }
        }
        class U {
          constructor(e, t, i) {
            (this._editor = e),
              (this._editorWorkerService = t),
              (this._clipboardService = i),
              (this._toDispose = new a.SL()),
              (this._quickSuggestDelay = 10),
              (this._triggerCharacterListener = new a.SL()),
              (this._triggerQuickSuggest = new b._F()),
              (this._state = 0),
              (this._completionDisposables = new a.SL()),
              (this._onDidCancel = new P.Q5()),
              (this._onDidTrigger = new P.Q5()),
              (this._onDidSuggest = new P.Q5()),
              (this.onDidCancel = this._onDidCancel.event),
              (this.onDidTrigger = this._onDidTrigger.event),
              (this.onDidSuggest = this._onDidSuggest.event),
              (this._currentSelection =
                this._editor.getSelection() || new F.Y(1, 1, 1, 1)),
              this._toDispose.add(
                this._editor.onDidChangeModel(() => {
                  this._updateTriggerCharacters(), this.cancel();
                })
              ),
              this._toDispose.add(
                this._editor.onDidChangeModelLanguage(() => {
                  this._updateTriggerCharacters(), this.cancel();
                })
              ),
              this._toDispose.add(
                this._editor.onDidChangeConfiguration(() => {
                  this._updateTriggerCharacters(), this._updateQuickSuggest();
                })
              ),
              this._toDispose.add(
                _.KZ.onDidChange(() => {
                  this._updateTriggerCharacters(),
                    this._updateActiveSuggestSession();
                })
              ),
              this._toDispose.add(
                this._editor.onDidChangeCursorSelection((e) => {
                  this._onCursorChange(e);
                })
              );
            let n = !1;
            this._toDispose.add(
              this._editor.onDidCompositionStart(() => {
                n = !0;
              })
            ),
              this._toDispose.add(
                this._editor.onDidCompositionEnd(() => {
                  (n = !1), this._refilterCompletionItems();
                })
              ),
              this._toDispose.add(
                this._editor.onDidChangeModelContent(() => {
                  n || this._refilterCompletionItems();
                })
              ),
              this._updateTriggerCharacters(),
              this._updateQuickSuggest();
          }
          dispose() {
            (0, a.B9)(this._triggerCharacterListener),
              (0, a.B9)([
                this._onDidCancel,
                this._onDidSuggest,
                this._onDidTrigger,
                this._triggerQuickSuggest,
              ]),
              this._toDispose.dispose(),
              this._completionDisposables.dispose(),
              this.cancel();
          }
          _updateQuickSuggest() {
            (this._quickSuggestDelay = this._editor.getOption(71)),
              (isNaN(this._quickSuggestDelay) ||
                (!this._quickSuggestDelay && 0 !== this._quickSuggestDelay) ||
                this._quickSuggestDelay < 0) &&
                (this._quickSuggestDelay = 10);
          }
          _updateTriggerCharacters() {
            if (
              (this._triggerCharacterListener.clear(),
              this._editor.getOption(72) ||
                !this._editor.hasModel() ||
                !this._editor.getOption(99))
            )
              return;
            const e = new Map();
            for (const t of _.KZ.all(this._editor.getModel()))
              for (const i of t.triggerCharacters || []) {
                let n = e.get(i);
                n || ((n = new Set()), n.add((0, I.ZJ)()), e.set(i, n)),
                  n.add(t);
              }
            const t = (t) => {
              if (!t) {
                const e = this._editor.getPosition();
                t = this._editor
                  .getModel()
                  .getLineContent(e.lineNumber)
                  .substr(0, e.column - 1);
              }
              let i = '';
              (0, W.YK)(t.charCodeAt(t.length - 1))
                ? (0, W.ZG)(t.charCodeAt(t.length - 2)) &&
                  (i = t.substr(t.length - 2))
                : (i = t.charAt(t.length - 1));
              const n = e.get(i);
              if (n) {
                const e = this._completionModel
                  ? {
                      items: this._completionModel.adopt(n),
                      clipboardText: this._completionModel.clipboardText,
                    }
                  : void 0;
                this.trigger(
                  { auto: !0, shy: !1, triggerCharacter: i },
                  Boolean(this._completionModel),
                  n,
                  e
                );
              }
            };
            this._triggerCharacterListener.add(this._editor.onDidType(t)),
              this._triggerCharacterListener.add(
                this._editor.onDidCompositionEnd(t)
              );
          }
          get state() {
            return this._state;
          }
          cancel(e = !1) {
            0 !== this._state &&
              (this._triggerQuickSuggest.cancel(),
              this._requestToken &&
                (this._requestToken.cancel(), (this._requestToken = void 0)),
              (this._state = 0),
              (this._completionModel = void 0),
              (this._context = void 0),
              this._onDidCancel.fire({ retrigger: e }));
          }
          clear() {
            this._completionDisposables.clear();
          }
          _updateActiveSuggestSession() {
            0 !== this._state &&
              (this._editor.hasModel() && _.KZ.has(this._editor.getModel())
                ? this.trigger({ auto: 2 === this._state, shy: !1 }, !0)
                : this.cancel());
          }
          _onCursorChange(e) {
            if (!this._editor.hasModel()) return;
            const t = this._editor.getModel(),
              i = this._currentSelection;
            if (
              ((this._currentSelection = this._editor.getSelection()),
              !e.selection.isEmpty() ||
                0 !== e.reason ||
                ('keyboard' !== e.source && 'deleteLeft' !== e.source))
            )
              this.cancel();
            else if (_.KZ.has(t) && 0 === this._state) {
              if (!1 === this._editor.getOption(70)) return;
              if (
                !i.containsRange(this._currentSelection) &&
                !i
                  .getEndPosition()
                  .isBeforeOrEqual(this._currentSelection.getPosition())
              )
                return;
              if (
                this._editor.getOption(96).snippetsPreventQuickSuggestions &&
                g.SnippetController2.get(this._editor).isInSnippet()
              )
                return;
              this.cancel(),
                this._triggerQuickSuggest.cancelAndSet(() => {
                  if (0 !== this._state) return;
                  if (!z.shouldAutoTrigger(this._editor)) return;
                  if (!this._editor.hasModel()) return;
                  const e = this._editor.getModel(),
                    t = this._editor.getPosition(),
                    i = this._editor.getOption(70);
                  if (!1 !== i) {
                    if (!0 === i);
                    else {
                      e.tokenizeIfCheap(t.lineNumber);
                      const n = e.getLineTokens(t.lineNumber),
                        r = n.getStandardTokenType(
                          n.findTokenIndexAtOffset(
                            Math.max(t.column - 1 - 1, 0)
                          )
                        );
                      if (
                        !(
                          (i.other && 0 === r) ||
                          (i.comments && 1 === r) ||
                          (i.strings && 2 === r)
                        )
                      )
                        return;
                    }
                    this.trigger({ auto: !0, shy: !1 });
                  }
                }, this._quickSuggestDelay);
            }
          }
          _refilterCompletionItems() {
            Promise.resolve().then(() => {
              if (0 === this._state) return;
              if (!this._editor.hasModel()) return;
              const e = this._editor.getModel(),
                t = this._editor.getPosition(),
                i = new z(e, t, 2 === this._state, !1);
              this._onNewContext(i);
            });
          }
          trigger(e, t = !1, i, n) {
            var r;
            if (!this._editor.hasModel()) return;
            const o = this._editor.getModel(),
              l = e.auto,
              c = new z(o, this._editor.getPosition(), l, e.shy);
            this.cancel(t),
              (this._state = l ? 2 : 1),
              this._onDidTrigger.fire({
                auto: l,
                shy: e.shy,
                position: this._editor.getPosition(),
              }),
              (this._context = c);
            let d = {
              triggerKind: null !== (r = e.triggerKind) && void 0 !== r ? r : 0,
            };
            e.triggerCharacter &&
              (d = { triggerKind: 1, triggerCharacter: e.triggerCharacter }),
              (this._requestToken = new H.A());
            const h = this._editor.getOption(93);
            let u = 1;
            switch (h) {
              case 'top':
                u = 0;
                break;
              case 'bottom':
                u = 2;
            }
            let g = U._createItemKindFilter(this._editor),
              f = V.create(this._editorWorkerService, this._editor),
              p = (0, I.kL)(
                o,
                this._editor.getPosition(),
                new I.A9(u, g, i),
                d,
                this._requestToken.token
              );
            Promise.all([p, f])
              .then(([t, i]) => {
                return (
                  (r = this),
                  (s = void 0),
                  (c = function* () {
                    if (((0, a.B9)(this._requestToken), 0 === this._state))
                      return;
                    if (!this._editor.hasModel()) return;
                    let r = null == n ? void 0 : n.clipboardText;
                    !r &&
                      t.needsClipboard &&
                      (r = yield this._clipboardService.readText());
                    const s = this._editor.getModel();
                    let o = t.items;
                    if (n) {
                      const e = (0, I.wg)(u);
                      o = o.concat(n.items).sort(e);
                    }
                    const c = new z(s, this._editor.getPosition(), l, e.shy);
                    (this._completionModel = new Y(
                      o,
                      this._context.column,
                      {
                        leadingLineContent: c.leadingLineContent,
                        characterCountDelta: c.column - this._context.column,
                      },
                      i,
                      this._editor.getOption(96),
                      this._editor.getOption(93),
                      r
                    )),
                      this._completionDisposables.add(t.dispoables),
                      this._onNewContext(c);
                  }),
                  new ((o = void 0) || (o = Promise))(function (e, t) {
                    function i(e) {
                      try {
                        a(c.next(e));
                      } catch (e) {
                        t(e);
                      }
                    }
                    function n(e) {
                      try {
                        a(c.throw(e));
                      } catch (e) {
                        t(e);
                      }
                    }
                    function a(t) {
                      var r;
                      t.done
                        ? e(t.value)
                        : ((r = t.value),
                          r instanceof o
                            ? r
                            : new o(function (e) {
                                e(r);
                              })).then(i, n);
                    }
                    a((c = c.apply(r, s || [])).next());
                  })
                );
                var r, s, o, c;
              })
              .catch(s.dL);
          }
          static _createItemKindFilter(e) {
            const t = new Set();
            'none' === e.getOption(93) && t.add(27);
            const i = e.getOption(96);
            return (
              i.showMethods || t.add(0),
              i.showFunctions || t.add(1),
              i.showConstructors || t.add(2),
              i.showFields || t.add(3),
              i.showVariables || t.add(4),
              i.showClasses || t.add(5),
              i.showStructs || t.add(6),
              i.showInterfaces || t.add(7),
              i.showModules || t.add(8),
              i.showProperties || t.add(9),
              i.showEvents || t.add(10),
              i.showOperators || t.add(11),
              i.showUnits || t.add(12),
              i.showValues || t.add(13),
              i.showConstants || t.add(14),
              i.showEnums || t.add(15),
              i.showEnumMembers || t.add(16),
              i.showKeywords || t.add(17),
              i.showWords || t.add(18),
              i.showColors || t.add(19),
              i.showFiles || t.add(20),
              i.showReferences || t.add(21),
              i.showColors || t.add(22),
              i.showFolders || t.add(23),
              i.showTypeParameters || t.add(24),
              i.showSnippets || t.add(27),
              i.showUsers || t.add(25),
              i.showIssues || t.add(26),
              t
            );
          }
          _onNewContext(e) {
            if (this._context)
              if (e.lineNumber === this._context.lineNumber) {
                if (
                  e.leadingWord.startColumn <
                  this._context.leadingWord.startColumn
                )
                  this.cancel();
                else if (e.column < this._context.column)
                  e.leadingWord.word
                    ? this.trigger({ auto: this._context.auto, shy: !1 }, !0)
                    : this.cancel();
                else if (this._completionModel)
                  if (
                    0 !== e.leadingWord.word.length &&
                    e.leadingWord.startColumn >
                      this._context.leadingWord.startColumn
                  ) {
                    const e = new Set(_.KZ.all(this._editor.getModel()));
                    this._completionModel.allProvider.forEach((t) =>
                      e.delete(t)
                    );
                    const t = this._completionModel.adopt(new Set());
                    this.trigger({ auto: this._context.auto, shy: !1 }, !0, e, {
                      items: t,
                      clipboardText: this._completionModel.clipboardText,
                    });
                  } else if (
                    e.column > this._context.column &&
                    this._completionModel.incomplete.size > 0 &&
                    0 !== e.leadingWord.word.length
                  ) {
                    const { incomplete: e } = this._completionModel,
                      t = this._completionModel.adopt(e);
                    this.trigger(
                      { auto: 2 === this._state, shy: !1, triggerKind: 2 },
                      !0,
                      e,
                      {
                        items: t,
                        clipboardText: this._completionModel.clipboardText,
                      }
                    );
                  } else {
                    let t = this._completionModel.lineContext,
                      i = !1;
                    if (
                      ((this._completionModel.lineContext = {
                        leadingLineContent: e.leadingLineContent,
                        characterCountDelta: e.column - this._context.column,
                      }),
                      0 === this._completionModel.items.length)
                    ) {
                      if (
                        z.shouldAutoTrigger(this._editor) &&
                        this._context.leadingWord.endColumn <
                          e.leadingWord.startColumn
                      )
                        return void this.trigger(
                          { auto: this._context.auto, shy: !1 },
                          !0
                        );
                      if (this._context.auto) return void this.cancel();
                      if (
                        ((this._completionModel.lineContext = t),
                        (i = this._completionModel.items.length > 0),
                        i && 0 === e.leadingWord.word.length)
                      )
                        return void this.cancel();
                    }
                    this._onDidSuggest.fire({
                      completionModel: this._completionModel,
                      auto: this._context.auto,
                      shy: this._context.shy,
                      isFrozen: i,
                    });
                  }
              } else this.cancel();
          }
        }
        i(28609);
        var $ = i(97781),
          K = i(73910),
          q = i(73046);
        const G = (0, K.P6)(
            'symbolIcon.arrayForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.arrayForeground',
              'The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          Z = (0, K.P6)(
            'symbolIcon.booleanForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.booleanForeground',
              'The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          J = (0, K.P6)(
            'symbolIcon.classForeground',
            { dark: '#EE9D28', light: '#D67E00', hc: '#EE9D28' },
            (0, D.N)(
              'symbolIcon.classForeground',
              'The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          Q = (0, K.P6)(
            'symbolIcon.colorForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.colorForeground',
              'The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          X = (0, K.P6)(
            'symbolIcon.constantForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.constantForeground',
              'The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ee = (0, K.P6)(
            'symbolIcon.constructorForeground',
            { dark: '#B180D7', light: '#652D90', hc: '#B180D7' },
            (0, D.N)(
              'symbolIcon.constructorForeground',
              'The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          te = (0, K.P6)(
            'symbolIcon.enumeratorForeground',
            { dark: '#EE9D28', light: '#D67E00', hc: '#EE9D28' },
            (0, D.N)(
              'symbolIcon.enumeratorForeground',
              'The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ie = (0, K.P6)(
            'symbolIcon.enumeratorMemberForeground',
            { dark: '#75BEFF', light: '#007ACC', hc: '#75BEFF' },
            (0, D.N)(
              'symbolIcon.enumeratorMemberForeground',
              'The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ne = (0, K.P6)(
            'symbolIcon.eventForeground',
            { dark: '#EE9D28', light: '#D67E00', hc: '#EE9D28' },
            (0, D.N)(
              'symbolIcon.eventForeground',
              'The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          re = (0, K.P6)(
            'symbolIcon.fieldForeground',
            { dark: '#75BEFF', light: '#007ACC', hc: '#75BEFF' },
            (0, D.N)(
              'symbolIcon.fieldForeground',
              'The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          se = (0, K.P6)(
            'symbolIcon.fileForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.fileForeground',
              'The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          oe = (0, K.P6)(
            'symbolIcon.folderForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.folderForeground',
              'The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ae = (0, K.P6)(
            'symbolIcon.functionForeground',
            { dark: '#B180D7', light: '#652D90', hc: '#B180D7' },
            (0, D.N)(
              'symbolIcon.functionForeground',
              'The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          le = (0, K.P6)(
            'symbolIcon.interfaceForeground',
            { dark: '#75BEFF', light: '#007ACC', hc: '#75BEFF' },
            (0, D.N)(
              'symbolIcon.interfaceForeground',
              'The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ce = (0, K.P6)(
            'symbolIcon.keyForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.keyForeground',
              'The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          de = (0, K.P6)(
            'symbolIcon.keywordForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.keywordForeground',
              'The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          he = (0, K.P6)(
            'symbolIcon.methodForeground',
            { dark: '#B180D7', light: '#652D90', hc: '#B180D7' },
            (0, D.N)(
              'symbolIcon.methodForeground',
              'The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ue = (0, K.P6)(
            'symbolIcon.moduleForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.moduleForeground',
              'The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ge = (0, K.P6)(
            'symbolIcon.namespaceForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.namespaceForeground',
              'The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          fe = (0, K.P6)(
            'symbolIcon.nullForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.nullForeground',
              'The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          pe = (0, K.P6)(
            'symbolIcon.numberForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.numberForeground',
              'The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          me = (0, K.P6)(
            'symbolIcon.objectForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.objectForeground',
              'The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          _e = (0, K.P6)(
            'symbolIcon.operatorForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.operatorForeground',
              'The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          be = (0, K.P6)(
            'symbolIcon.packageForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.packageForeground',
              'The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ve = (0, K.P6)(
            'symbolIcon.propertyForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.propertyForeground',
              'The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ye = (0, K.P6)(
            'symbolIcon.referenceForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.referenceForeground',
              'The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          we = (0, K.P6)(
            'symbolIcon.snippetForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.snippetForeground',
              'The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          Ce = (0, K.P6)(
            'symbolIcon.stringForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.stringForeground',
              'The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          Se = (0, K.P6)(
            'symbolIcon.structForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.structForeground',
              'The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          ke = (0, K.P6)(
            'symbolIcon.textForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.textForeground',
              'The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          xe = (0, K.P6)(
            'symbolIcon.typeParameterForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.typeParameterForeground',
              'The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          Le = (0, K.P6)(
            'symbolIcon.unitForeground',
            { dark: K.dR, light: K.dR, hc: K.dR },
            (0, D.N)(
              'symbolIcon.unitForeground',
              'The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          ),
          Me = (0, K.P6)(
            'symbolIcon.variableForeground',
            { dark: '#75BEFF', light: '#007ACC', hc: '#75BEFF' },
            (0, D.N)(
              'symbolIcon.variableForeground',
              'The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.'
            )
          );
        (0, $.Ic)((e, t) => {
          const i = e.getColor(G);
          i && t.addRule(`${q.lA.symbolArray.cssSelector} { color: ${i}; }`);
          const n = e.getColor(Z);
          n && t.addRule(`${q.lA.symbolBoolean.cssSelector} { color: ${n}; }`);
          const r = e.getColor(J);
          r && t.addRule(`${q.lA.symbolClass.cssSelector} { color: ${r}; }`);
          const s = e.getColor(he);
          s && t.addRule(`${q.lA.symbolMethod.cssSelector} { color: ${s}; }`);
          const o = e.getColor(Q);
          o && t.addRule(`${q.lA.symbolColor.cssSelector} { color: ${o}; }`);
          const a = e.getColor(X);
          a && t.addRule(`${q.lA.symbolConstant.cssSelector} { color: ${a}; }`);
          const l = e.getColor(ee);
          l &&
            t.addRule(`${q.lA.symbolConstructor.cssSelector} { color: ${l}; }`);
          const c = e.getColor(te);
          c &&
            t.addRule(
              `\n\t\t\t${q.lA.symbolValue.cssSelector},${q.lA.symbolEnum.cssSelector} { color: ${c}; }`
            );
          const d = e.getColor(ie);
          d &&
            t.addRule(`${q.lA.symbolEnumMember.cssSelector} { color: ${d}; }`);
          const h = e.getColor(ne);
          h && t.addRule(`${q.lA.symbolEvent.cssSelector} { color: ${h}; }`);
          const u = e.getColor(re);
          u && t.addRule(`${q.lA.symbolField.cssSelector} { color: ${u}; }`);
          const g = e.getColor(se);
          g && t.addRule(`${q.lA.symbolFile.cssSelector} { color: ${g}; }`);
          const f = e.getColor(oe);
          f && t.addRule(`${q.lA.symbolFolder.cssSelector} { color: ${f}; }`);
          const p = e.getColor(ae);
          p && t.addRule(`${q.lA.symbolFunction.cssSelector} { color: ${p}; }`);
          const m = e.getColor(le);
          m &&
            t.addRule(`${q.lA.symbolInterface.cssSelector} { color: ${m}; }`);
          const _ = e.getColor(ce);
          _ && t.addRule(`${q.lA.symbolKey.cssSelector} { color: ${_}; }`);
          const b = e.getColor(de);
          b && t.addRule(`${q.lA.symbolKeyword.cssSelector} { color: ${b}; }`);
          const v = e.getColor(ue);
          v && t.addRule(`${q.lA.symbolModule.cssSelector} { color: ${v}; }`);
          const y = e.getColor(ge);
          y &&
            t.addRule(`${q.lA.symbolNamespace.cssSelector} { color: ${y}; }`);
          const w = e.getColor(fe);
          w && t.addRule(`${q.lA.symbolNull.cssSelector} { color: ${w}; }`);
          const C = e.getColor(pe);
          C && t.addRule(`${q.lA.symbolNumber.cssSelector} { color: ${C}; }`);
          const S = e.getColor(me);
          S && t.addRule(`${q.lA.symbolObject.cssSelector} { color: ${S}; }`);
          const k = e.getColor(_e);
          k && t.addRule(`${q.lA.symbolOperator.cssSelector} { color: ${k}; }`);
          const x = e.getColor(be);
          x && t.addRule(`${q.lA.symbolPackage.cssSelector} { color: ${x}; }`);
          const L = e.getColor(ve);
          L && t.addRule(`${q.lA.symbolProperty.cssSelector} { color: ${L}; }`);
          const M = e.getColor(ye);
          M &&
            t.addRule(`${q.lA.symbolReference.cssSelector} { color: ${M}; }`);
          const D = e.getColor(we);
          D && t.addRule(`${q.lA.symbolSnippet.cssSelector} { color: ${D}; }`);
          const N = e.getColor(Ce);
          N && t.addRule(`${q.lA.symbolString.cssSelector} { color: ${N}; }`);
          const E = e.getColor(Se);
          E && t.addRule(`${q.lA.symbolStruct.cssSelector} { color: ${E}; }`);
          const T = e.getColor(ke);
          T && t.addRule(`${q.lA.symbolText.cssSelector} { color: ${T}; }`);
          const I = e.getColor(xe);
          I &&
            t.addRule(
              `${q.lA.symbolTypeParameter.cssSelector} { color: ${I}; }`
            );
          const O = e.getColor(Le);
          O && t.addRule(`${q.lA.symbolUnit.cssSelector} { color: ${O}; }`);
          const A = e.getColor(Me);
          A && t.addRule(`${q.lA.symbolVariable.cssSelector} { color: ${A}; }`);
        });
        var De,
          Ne = i(65321),
          Ee = i(43799),
          Te = i(9802),
          Ie = i(91847),
          Oe = i(10829),
          Ae = i(88810),
          Re = i(53335),
          Pe = i(50988),
          Fe = i(59834),
          Be = i(66663),
          We = i(95935),
          Ye = i(71144);
        function He(e, t, i, n) {
          const r =
            n === De.ROOT_FOLDER
              ? ['rootfolder-icon']
              : n === De.FOLDER
              ? ['folder-icon']
              : ['file-icon'];
          if (i) {
            let s;
            if (
              ((s =
                i.scheme === Be.l.data
                  ? We.Vb.parseMetaData(i).get(We.Vb.META_DATA_LABEL)
                  : je((0, We.Hx)(i).toLowerCase())),
              n === De.FOLDER)
            )
              r.push(`${s}-name-folder-icon`);
            else {
              if (s) {
                r.push(`${s}-name-file-icon`);
                const e = s.split('.');
                for (let t = 1; t < e.length; t++)
                  r.push(`${e.slice(t).join('.')}-ext-file-icon`);
                r.push('ext-file-icon');
              }
              const n = (function (e, t, i) {
                if (!i) return null;
                let n = null;
                if (i.scheme === Be.l.data) {
                  const e = We.Vb.parseMetaData(i).get(We.Vb.META_DATA_MIME);
                  e && (n = t.getModeId(e));
                } else {
                  const t = e.getModel(i);
                  t && (n = t.getModeId());
                }
                return n && n !== Ye.XT
                  ? n
                  : t.getModeIdByFilepathOrFirstLine(i);
              })(e, t, i);
              n && r.push(`${je(n)}-lang-file-icon`);
            }
          }
          return r;
        }
        function je(e) {
          return e.replace(/\s/g, '\\$&');
        }
        !(function (e) {
          (e[(e.FILE = 0)] = 'FILE'),
            (e[(e.FOLDER = 1)] = 'FOLDER'),
            (e[(e.ROOT_FOLDER = 2)] = 'ROOT_FOLDER');
        })(De || (De = {}));
        var Ve = i(51200),
          ze = i(70666),
          Ue = i(59365),
          $e = i(84144),
          Ke = i(90317),
          qe = i(76033),
          Ge = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          Ze = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const Je = (0, q.q5)('suggest-more-info', q.lA.chevronRight),
          Qe = (0, K.P6)(
            'editorSuggestWidget.background',
            { dark: K.D0, light: K.D0, hc: K.D0 },
            D.N(
              'editorSuggestWidgetBackground',
              'Background color of the suggest widget.'
            )
          ),
          Xe = (0, K.P6)(
            'editorSuggestWidget.border',
            { dark: K.D1, light: K.D1, hc: K.D1 },
            D.N(
              'editorSuggestWidgetBorder',
              'Border color of the suggest widget.'
            )
          ),
          et = (0, K.P6)(
            'editorSuggestWidget.foreground',
            { dark: K.NO, light: K.NO, hc: K.NO },
            D.N(
              'editorSuggestWidgetForeground',
              'Foreground color of the suggest widget.'
            )
          ),
          tt = (0, K.P6)(
            'editorSuggestWidget.selectedBackground',
            { dark: K._b, light: K._b, hc: K._b },
            D.N(
              'editorSuggestWidgetSelectedBackground',
              'Background color of the selected entry in the suggest widget.'
            )
          ),
          it = (0, K.P6)(
            'editorSuggestWidget.highlightForeground',
            { dark: K.Gw, light: K.Gw, hc: K.Gw },
            D.N(
              'editorSuggestWidgetHighlightForeground',
              'Color of the match highlights in the suggest widget.'
            )
          ),
          nt = /^(#([\da-f]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))$/i;
        function rt(e) {
          if (!e) return !1;
          const t = e.completion;
          return !!t.documentation || (t.detail && t.detail !== t.label);
        }
        function st(e) {
          return `suggest-aria-id:${e}`;
        }
        let ot = class {
          constructor(e, t, i, n, r, s) {
            (this.widget = e),
              (this.editor = t),
              (this.triggerKeybindingLabel = i),
              (this._modelService = n),
              (this._modeService = r),
              (this._themeService = s);
          }
          get templateId() {
            return 'suggestion';
          }
          renderTemplate(e) {
            const t = Object.create(null);
            (t.disposables = new a.SL()),
              (t.root = e),
              t.root.classList.add('show-file-icons'),
              (t.icon = (0, Ne.R3)(e, (0, Ne.$)('.icon'))),
              (t.colorspan = (0, Ne.R3)(t.icon, (0, Ne.$)('span.colorspan')));
            const i = (0, Ne.R3)(e, (0, Ne.$)('.contents')),
              n = (0, Ne.R3)(i, (0, Ne.$)('.main'));
            (t.iconContainer = (0, Ne.R3)(n, (0, Ne.$)('.icon-label.codicon'))),
              (t.left = (0, Ne.R3)(n, (0, Ne.$)('span.left'))),
              (t.right = (0, Ne.R3)(n, (0, Ne.$)('span.right'))),
              (t.iconLabel = new Fe.g(t.left, {
                supportHighlights: !0,
                supportCodicons: !0,
              })),
              t.disposables.add(t.iconLabel),
              (t.parametersLabel = (0, Ne.R3)(
                t.left,
                (0, Ne.$)('span.signature-label')
              )),
              (t.qualifierLabel = (0, Ne.R3)(
                t.left,
                (0, Ne.$)('span.qualifier-label')
              )),
              (t.detailsLabel = (0, Ne.R3)(
                t.right,
                (0, Ne.$)('span.details-label')
              )),
              (t.readMore = (0, Ne.R3)(
                t.right,
                (0, Ne.$)('span.readMore' + Je.cssSelector)
              )),
              (t.readMore.title = D.N(
                'readMore',
                'Read More ({0})',
                this.triggerKeybindingLabel
              ));
            const r = () => {
              const e = this.editor.getOptions(),
                i = e.get(36),
                r = i.fontFamily,
                s = i.fontFeatureSettings,
                o = e.get(97) || i.fontSize,
                a = e.get(98) || i.lineHeight,
                l = i.fontWeight,
                c = `${o}px`,
                d = `${a}px`;
              (t.root.style.fontSize = c),
                (t.root.style.fontWeight = l),
                (n.style.fontFamily = r),
                (n.style.fontFeatureSettings = s),
                (n.style.lineHeight = d),
                (t.icon.style.height = d),
                (t.icon.style.width = d),
                (t.readMore.style.height = d),
                (t.readMore.style.width = d);
            };
            return (
              r(),
              t.disposables.add(
                P.ju
                  .chain(this.editor.onDidChangeConfiguration.bind(this.editor))
                  .filter(
                    (e) =>
                      e.hasChanged(36) || e.hasChanged(97) || e.hasChanged(98)
                  )
                  .on(r, null)
              ),
              t
            );
          }
          renderElement(e, t, i) {
            const n = i,
              s = e.completion,
              o = 'string' == typeof s.label ? s.label : s.label.name;
            (n.root.id = st(t)), (n.colorspan.style.backgroundColor = '');
            const a = { labelEscapeNewLines: !0, matches: (0, B.mB)(e.score) };
            let l = [];
            if (
              19 === s.kind &&
              (function (e, t) {
                const i =
                  'string' == typeof e.completion.label
                    ? e.completion.label
                    : e.completion.label.name;
                return i.match(nt)
                  ? ((t[0] = i), !0)
                  : !(
                      'string' != typeof e.completion.documentation ||
                      !e.completion.documentation.match(nt) ||
                      ((t[0] = e.completion.documentation), 0)
                    );
              })(e, l)
            )
              (n.icon.className = 'icon customcolor'),
                (n.iconContainer.className = 'icon hide'),
                (n.colorspan.style.backgroundColor = l[0]);
            else if (
              20 === s.kind &&
              this._themeService.getFileIconTheme().hasFileIcons
            ) {
              (n.icon.className = 'icon hide'),
                (n.iconContainer.className = 'icon hide');
              const e = He(
                  this._modelService,
                  this._modeService,
                  ze.o.from({ scheme: 'fake', path: o }),
                  De.FILE
                ),
                t = He(
                  this._modelService,
                  this._modeService,
                  ze.o.from({ scheme: 'fake', path: s.detail }),
                  De.FILE
                );
              a.extraClasses = e.length > t.length ? e : t;
            } else
              23 === s.kind &&
              this._themeService.getFileIconTheme().hasFolderIcons
                ? ((n.icon.className = 'icon hide'),
                  (n.iconContainer.className = 'icon hide'),
                  (a.extraClasses = (0, r.xH)([
                    He(
                      this._modelService,
                      this._modeService,
                      ze.o.from({ scheme: 'fake', path: o }),
                      De.FOLDER
                    ),
                    He(
                      this._modelService,
                      this._modeService,
                      ze.o.from({ scheme: 'fake', path: s.detail }),
                      De.FOLDER
                    ),
                  ])))
                : ((n.icon.className = 'icon hide'),
                  (n.iconContainer.className = ''),
                  (0, Ne.PT)(
                    n.iconContainer,
                    `suggest-icon ${(0, _.Sy)(s.kind)}`
                  ));
            s.tags &&
              s.tags.indexOf(1) >= 0 &&
              ((a.extraClasses = (a.extraClasses || []).concat(['deprecated'])),
              (a.matches = [])),
              n.iconLabel.setLabel(o, void 0, a),
              'string' == typeof s.label
                ? ((n.parametersLabel.textContent = ''),
                  (n.qualifierLabel.textContent = ''),
                  (n.detailsLabel.textContent = (s.detail || '').replace(
                    /\n.*$/m,
                    ''
                  )),
                  n.root.classList.add('string-label'))
                : ((n.parametersLabel.textContent = (
                    s.label.parameters || ''
                  ).replace(/\n.*$/m, '')),
                  (n.qualifierLabel.textContent = (
                    s.label.qualifier || ''
                  ).replace(/\n.*$/m, '')),
                  (n.detailsLabel.textContent = (s.label.type || '').replace(
                    /\n.*$/m,
                    ''
                  )),
                  n.root.classList.remove('string-label')),
              rt(e)
                ? (n.right.classList.add('can-expand-details'),
                  (0, Ne.$Z)(n.readMore),
                  (n.readMore.onmousedown = (e) => {
                    e.stopPropagation(), e.preventDefault();
                  }),
                  (n.readMore.onclick = (e) => {
                    e.stopPropagation(),
                      e.preventDefault(),
                      this.widget.toggleDetails();
                  }))
                : (n.right.classList.remove('can-expand-details'),
                  (0, Ne.Cp)(n.readMore),
                  (n.readMore.onmousedown = null),
                  (n.readMore.onclick = null));
          }
          disposeTemplate(e) {
            e.disposables.dispose();
          }
        };
        ot = Ge([Ze(3, Ve.q), Ze(4, C.h), Ze(5, $.XE)], ot);
        class at {
          constructor(e, t, i, n, r) {
            (this.widget = t),
              (this.editor = i),
              (this.markdownRenderer = n),
              (this.kbToggleDetails = r),
              (this.borderWidth = 1),
              (this.disposables = new a.SL()),
              (this.el = (0, Ne.R3)(e, (0, Ne.$)('.details'))),
              this.disposables.add((0, a.OF)(() => e.removeChild(this.el))),
              (this.body = (0, Ne.$)('.body')),
              (this.scrollbar = new Te.s$(this.body, {})),
              (0, Ne.R3)(this.el, this.scrollbar.getDomNode()),
              this.disposables.add(this.scrollbar),
              (this.header = (0, Ne.R3)(this.body, (0, Ne.$)('.header'))),
              (this.close = (0, Ne.R3)(
                this.header,
                (0, Ne.$)('span' + q.lA.close.cssSelector)
              )),
              (this.close.title = D.N(
                'readLess',
                'Read Less ({0})',
                this.kbToggleDetails
              )),
              (this.type = (0, Ne.R3)(this.header, (0, Ne.$)('p.type'))),
              (this.docs = (0, Ne.R3)(this.body, (0, Ne.$)('p.docs'))),
              this.configureFont(),
              P.ju
                .chain(this.editor.onDidChangeConfiguration.bind(this.editor))
                .filter((e) => e.hasChanged(36))
                .on(this.configureFont, this, this.disposables),
              n.onDidRenderCodeBlock(
                () => this.scrollbar.scanDomNode(),
                this,
                this.disposables
              );
          }
          get element() {
            return this.el;
          }
          renderLoading() {
            (this.type.textContent = D.N('loading', 'Loading...')),
              (this.docs.textContent = '');
          }
          renderItem(e, t) {
            (0, a.B9)(this.renderDisposeable),
              (this.renderDisposeable = void 0);
            let { documentation: i, detail: n } = e.completion;
            if (t) {
              let t = '';
              (t += `score: ${e.score[0]}${
                e.word
                  ? `, compared '${
                      (e.completion.filterText &&
                        e.completion.filterText + ' (filterText)') ||
                      e.completion.label
                    }' with '${e.word}'`
                  : ' (no prefix)'
              }\n`),
                (t += `distance: ${e.distance}, see localityBonus-setting\n`),
                (t += `index: ${e.idx}, based on ${
                  (e.completion.sortText &&
                    `sortText: "${e.completion.sortText}"`) ||
                  'label'
                }\n`),
                (i = new Ue.W5().appendCodeblock('empty', t)),
                (n = `Provider: ${e.provider._debugDisplayName}`);
            }
            if (!t && !rt(e))
              return (
                (this.type.textContent = ''),
                (this.docs.textContent = ''),
                void this.el.classList.add('no-docs')
              );
            if ((this.el.classList.remove('no-docs'), 'string' == typeof i))
              this.docs.classList.remove('markdown-docs'),
                (this.docs.textContent = i);
            else {
              this.docs.classList.add('markdown-docs'),
                (this.docs.innerText = '');
              const e = this.markdownRenderer.render(i);
              (this.renderDisposeable = e), this.docs.appendChild(e.element);
            }
            n
              ? ((this.type.innerText =
                  n.length > 1e5 ? `${n.substr(0, 1e5)}…` : n),
                (0, Ne.$Z)(this.type))
              : ((this.type.innerText = ''), (0, Ne.Cp)(this.type)),
              (this.el.style.height =
                this.header.offsetHeight +
                this.docs.offsetHeight +
                2 * this.borderWidth +
                'px'),
              (this.el.style.userSelect = 'text'),
              (this.el.tabIndex = -1),
              (this.close.onmousedown = (e) => {
                e.preventDefault(), e.stopPropagation();
              }),
              (this.close.onclick = (e) => {
                e.preventDefault(),
                  e.stopPropagation(),
                  this.widget.toggleDetails();
              }),
              (this.body.scrollTop = 0),
              this.scrollbar.scanDomNode();
          }
          scrollDown(e = 8) {
            this.body.scrollTop += e;
          }
          scrollUp(e = 8) {
            this.body.scrollTop -= e;
          }
          scrollTop() {
            this.body.scrollTop = 0;
          }
          scrollBottom() {
            this.body.scrollTop = this.body.scrollHeight;
          }
          pageDown() {
            this.scrollDown(80);
          }
          pageUp() {
            this.scrollUp(80);
          }
          setBorderWidth(e) {
            this.borderWidth = e;
          }
          configureFont() {
            const e = this.editor.getOptions(),
              t = e.get(36),
              i = t.fontFamily,
              n = e.get(97) || t.fontSize,
              r = e.get(98) || t.lineHeight,
              s = t.fontWeight,
              o = `${n}px`,
              a = `${r}px`;
            (this.el.style.fontSize = o),
              (this.el.style.fontWeight = s),
              (this.el.style.fontFeatureSettings = t.fontFeatureSettings),
              (this.type.style.fontFamily = i),
              (this.close.style.height = a),
              (this.close.style.width = a);
          }
          dispose() {
            this.disposables.dispose(),
              (0, a.B9)(this.renderDisposeable),
              (this.renderDisposeable = void 0);
          }
        }
        let lt = class e {
          constructor(e, t, i, n, s, o, l, c, d, h) {
            var u, g;
            (this.editor = e),
              (this.telemetryService = t),
              (this.allowEditorOverflow = !0),
              (this.suppressMouseDown = !1),
              (this.state = 0),
              (this.isAddedAsContentWidget = !1),
              (this.isAuto = !1),
              (this.loadingTimeout = a.JT.None),
              (this.currentSuggestionDetails = null),
              (this.ignoreFocusEvents = !1),
              (this.completionModel = null),
              (this.showTimeout = new b._F()),
              (this.toDispose = new a.SL()),
              (this.onDidSelectEmitter = new P.Q5()),
              (this.onDidFocusEmitter = new P.Q5()),
              (this.onDidHideEmitter = new P.Q5()),
              (this.onDidShowEmitter = new P.Q5()),
              (this.onDidSelect = this.onDidSelectEmitter.event),
              (this.onDidFocus = this.onDidFocusEmitter.event),
              (this.onDidHide = this.onDidHideEmitter.event),
              (this.onDidShow = this.onDidShowEmitter.event),
              (this.maxWidgetWidth = 660),
              (this.listWidth = 330),
              (this.firstFocusInCurrentList = !1),
              (this.preferDocPositionTop = !1),
              (this.docsPositionPreviousWidgetY = null),
              (this.explainMode = !1),
              (this._onDetailsKeydown = new P.Q5()),
              (this.onDetailsKeyDown = this._onDetailsKeydown.event);
            const f = this.toDispose.add(new Re.$(e, l, c)),
              p =
                null !==
                  (g =
                    null ===
                      (u = i.lookupKeybinding('toggleSuggestionDetails')) ||
                    void 0 === u
                      ? void 0
                      : u.getLabel()) && void 0 !== g
                  ? g
                  : '';
            (this.isAuto = !1),
              (this.focusedItem = null),
              (this.storageService = o),
              (this.element = (0, Ne.$)('.editor-widget.suggest-widget')),
              this.toDispose.add(
                (0, Ne.nm)(this.element, 'click', (e) => {
                  e.target === this.element && this.hideWidget();
                })
              ),
              (this.messageElement = (0, Ne.R3)(
                this.element,
                (0, Ne.$)('.message')
              )),
              (this.listElement = (0, Ne.R3)(this.element, (0, Ne.$)('.tree')));
            const m = () =>
              this.element.classList.toggle(
                'with-status-bar',
                this.editor.getOption(96).statusBar.visible
              );
            m(),
              (this.statusBarElement = (0, Ne.R3)(
                this.element,
                (0, Ne.$)('.suggest-status-bar')
              ));
            const _ = (e) => {
                const t = i.lookupKeybindings(e.id);
                return new (class extends qe.g {
                  constructor() {
                    super(void 0, e, { label: !0, icon: !1 });
                  }
                  updateLabel() {
                    if ((0, r.XY)(t) || !this.label) return super.updateLabel();
                    const { label: e } = this.getAction();
                    this.label.textContent = /{\d}/.test(e)
                      ? W.WU(this.getAction().label, t[0].getLabel())
                      : `${this.getAction().label} (${t[0].getLabel()})`;
                  }
                })();
              },
              v = new Ke.o(this.statusBarElement, {
                actionViewItemProvider: _,
              }),
              y = new Ke.o(this.statusBarElement, {
                actionViewItemProvider: _,
              }),
              w = d.createMenu(I.GI, n);
            this.toDispose.add(
              w.onDidChange(() =>
                (() => {
                  const e = [],
                    t = [];
                  for (let [i, n] of w.getActions())
                    'left' === i ? e.push(...n) : t.push(...n);
                  v.clear(), v.push(e), y.clear(), y.push(t);
                })()
              )
            ),
              this.toDispose.add(w),
              (this.details = h.createInstance(
                at,
                this.element,
                this,
                this.editor,
                f,
                p
              ));
            const C = () =>
              this.element.classList.toggle(
                'no-icons',
                !this.editor.getOption(96).showIcons
              );
            C();
            let S = h.createInstance(ot, this, this.editor, p);
            (this.list = new Ee.aV(
              'SuggestWidget',
              this.listElement,
              this,
              [S],
              {
                useShadows: !1,
                mouseSupport: !1,
                accessibilityProvider: {
                  getRole: () => 'option',
                  getAriaLabel: (e) => {
                    const t =
                      'string' == typeof e.completion.label
                        ? e.completion.label
                        : e.completion.label.name;
                    if (e.isResolved && this.expandDocsSettingFromStorage()) {
                      const { documentation: i, detail: n } = e.completion,
                        r = W.WU(
                          '{0}{1}',
                          n || '',
                          i ? ('string' == typeof i ? i : i.value) : ''
                        );
                      return D.N(
                        'ariaCurrenttSuggestionReadDetails',
                        '{0}, docs: {1}',
                        t,
                        r
                      );
                    }
                    return t;
                  },
                  getWidgetAriaLabel: () => D.N('suggest', 'Suggest'),
                  getWidgetRole: () => 'listbox',
                },
              }
            )),
              this.toDispose.add(
                (0, Ae.Jl)(this.list, s, {
                  listInactiveFocusBackground: tt,
                  listInactiveFocusOutline: K.xL,
                })
              ),
              this.toDispose.add(
                s.onDidColorThemeChange((e) => this.onThemeChange(e))
              ),
              this.toDispose.add(
                e.onDidLayoutChange(() => this.onEditorLayoutChange())
              ),
              this.toDispose.add(
                this.list.onMouseDown((e) => this.onListMouseDownOrTap(e))
              ),
              this.toDispose.add(
                this.list.onTap((e) => this.onListMouseDownOrTap(e))
              ),
              this.toDispose.add(
                this.list.onDidChangeSelection((e) => this.onListSelection(e))
              ),
              this.toDispose.add(
                this.list.onDidChangeFocus((e) => this.onListFocus(e))
              ),
              this.toDispose.add(
                this.editor.onDidChangeCursorSelection(() =>
                  this.onCursorSelectionChanged()
                )
              ),
              this.toDispose.add(
                this.editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(96) && (m(), C());
                })
              ),
              (this.ctxSuggestWidgetVisible = I._y.Visible.bindTo(n)),
              (this.ctxSuggestWidgetDetailsVisible = I._y.DetailsVisible.bindTo(
                n
              )),
              (this.ctxSuggestWidgetMultipleSuggestions = I._y.MultipleSuggestions.bindTo(
                n
              )),
              this.onThemeChange(s.getColorTheme()),
              this.toDispose.add(
                (0, Ne.mu)(this.details.element, 'keydown', (e) => {
                  this._onDetailsKeydown.fire(e);
                })
              ),
              this.toDispose.add(
                this.editor.onMouseDown((e) => this.onEditorMouseDown(e))
              );
          }
          onEditorMouseDown(e) {
            this.details.element.contains(e.target.element)
              ? this.details.element.focus()
              : this.element.contains(e.target.element) && this.editor.focus();
          }
          onCursorSelectionChanged() {
            0 !== this.state && this.editor.layoutContentWidget(this);
          }
          onEditorLayoutChange() {
            (3 !== this.state && 5 !== this.state) ||
              !this.expandDocsSettingFromStorage() ||
              this.expandSideOrBelow();
          }
          onListMouseDownOrTap(e) {
            void 0 !== e.element &&
              void 0 !== e.index &&
              (e.browserEvent.preventDefault(),
              e.browserEvent.stopPropagation(),
              this.select(e.element, e.index));
          }
          onListSelection(e) {
            e.elements.length && this.select(e.elements[0], e.indexes[0]);
          }
          select(e, t) {
            const i = this.completionModel;
            i &&
              (this.onDidSelectEmitter.fire({ item: e, index: t, model: i }),
              this.editor.focus());
          }
          onThemeChange(e) {
            const t = e.getColor(Qe);
            t &&
              ((this.listElement.style.backgroundColor = t.toString()),
              (this.statusBarElement.style.backgroundColor = t.toString()),
              (this.details.element.style.backgroundColor = t.toString()),
              (this.messageElement.style.backgroundColor = t.toString()));
            const i = e.getColor(Xe);
            i &&
              ((this.listElement.style.borderColor = i.toString()),
              (this.statusBarElement.style.borderColor = i.toString()),
              (this.details.element.style.borderColor = i.toString()),
              (this.messageElement.style.borderColor = i.toString()),
              (this.detailsBorderColor = i.toString()));
            const n = e.getColor(K.R8);
            n && (this.detailsFocusBorderColor = n.toString()),
              this.details.setBorderWidth('hc' === e.type ? 2 : 1);
          }
          onListFocus(e) {
            if (this.ignoreFocusEvents) return;
            if (!e.elements.length)
              return (
                this.currentSuggestionDetails &&
                  (this.currentSuggestionDetails.cancel(),
                  (this.currentSuggestionDetails = null),
                  (this.focusedItem = null)),
                void this.editor.setAriaOptions({ activeDescendant: void 0 })
              );
            if (!this.completionModel) return;
            const t = e.elements[0],
              i = e.indexes[0];
            (this.firstFocusInCurrentList = !this.focusedItem),
              t !== this.focusedItem &&
                (this.currentSuggestionDetails &&
                  (this.currentSuggestionDetails.cancel(),
                  (this.currentSuggestionDetails = null)),
                (this.focusedItem = t),
                this.list.reveal(i),
                (this.currentSuggestionDetails = (0, b.PG)((e) => {
                  return (
                    (i = this),
                    (n = void 0),
                    (s = function* () {
                      const i = (0, b.Vg)(() => this.showDetails(!0), 250);
                      e.onCancellationRequested(() => i.dispose());
                      const n = yield t.resolve(e);
                      return i.dispose(), n;
                    }),
                    new ((r = void 0) || (r = Promise))(function (e, t) {
                      function o(e) {
                        try {
                          l(s.next(e));
                        } catch (e) {
                          t(e);
                        }
                      }
                      function a(e) {
                        try {
                          l(s.throw(e));
                        } catch (e) {
                          t(e);
                        }
                      }
                      function l(t) {
                        var i;
                        t.done
                          ? e(t.value)
                          : ((i = t.value),
                            i instanceof r
                              ? i
                              : new r(function (e) {
                                  e(i);
                                })).then(o, a);
                      }
                      l((s = s.apply(i, n || [])).next());
                    })
                  );
                  var i, n, r, s;
                })),
                this.currentSuggestionDetails
                  .then(() => {
                    i >= this.list.length ||
                      t !== this.list.element(i) ||
                      ((this.ignoreFocusEvents = !0),
                      this.list.splice(i, 1, [t]),
                      this.list.setFocus([i]),
                      (this.ignoreFocusEvents = !1),
                      this.expandDocsSettingFromStorage()
                        ? this.showDetails(!1)
                        : this.element.classList.remove('docs-side'),
                      this.editor.setAriaOptions({ activeDescendant: st(i) }));
                  })
                  .catch(s.dL)),
              this.onDidFocusEmitter.fire({
                item: t,
                index: i,
                model: this.completionModel,
              });
          }
          setState(t) {
            if (!this.element) return;
            this.isAddedAsContentWidget ||
              0 === t ||
              ((this.isAddedAsContentWidget = !0),
              this.editor.addContentWidget(this));
            const i = this.state !== t;
            switch (
              ((this.state = t),
              this.element.classList.toggle('frozen', 4 === t),
              t)
            ) {
              case 0:
                (0, Ne.Cp)(
                  this.messageElement,
                  this.details.element,
                  this.listElement,
                  this.statusBarElement
                ),
                  this.hide(),
                  (this.listHeight = 0),
                  i && this.list.splice(0, this.list.length),
                  (this.focusedItem = null);
                break;
              case 1:
                (this.messageElement.textContent = e.LOADING_MESSAGE),
                  (0, Ne.Cp)(
                    this.listElement,
                    this.details.element,
                    this.statusBarElement
                  ),
                  (0, Ne.$Z)(this.messageElement),
                  this.element.classList.remove('docs-side'),
                  this.show(),
                  (this.focusedItem = null);
                break;
              case 2:
                (this.messageElement.textContent = e.NO_SUGGESTIONS_MESSAGE),
                  (0, Ne.Cp)(
                    this.listElement,
                    this.details.element,
                    this.statusBarElement
                  ),
                  (0, Ne.$Z)(this.messageElement),
                  this.element.classList.remove('docs-side'),
                  this.show(),
                  (this.focusedItem = null);
                break;
              case 3:
                (0, Ne.Cp)(this.messageElement),
                  (0, Ne.$Z)(this.listElement, this.statusBarElement),
                  this.show();
                break;
              case 4:
                (0, Ne.Cp)(this.messageElement),
                  (0, Ne.$Z)(this.listElement),
                  this.show();
                break;
              case 5:
                (0, Ne.Cp)(this.messageElement),
                  (0, Ne.$Z)(
                    this.details.element,
                    this.listElement,
                    this.statusBarElement
                  ),
                  this.show();
            }
          }
          showTriggered(e, t) {
            0 === this.state &&
              ((this.isAuto = !!e),
              this.isAuto ||
                (this.loadingTimeout = (0, b.Vg)(() => this.setState(1), t)));
          }
          showSuggestions(e, t, i, n) {
            if (
              ((this.preferDocPositionTop = !1),
              (this.docsPositionPreviousWidgetY = null),
              this.loadingTimeout.dispose(),
              this.currentSuggestionDetails &&
                (this.currentSuggestionDetails.cancel(),
                (this.currentSuggestionDetails = null)),
              this.completionModel !== e && (this.completionModel = e),
              i && 2 !== this.state && 0 !== this.state)
            )
              return void this.setState(4);
            let r = this.completionModel.items.length;
            const s = 0 === r;
            if ((this.ctxSuggestWidgetMultipleSuggestions.set(r > 1), s))
              n ? this.setState(0) : this.setState(2),
                (this.completionModel = null);
            else {
              if (3 !== this.state) {
                const { stats: e } = this.completionModel;
                (e.wasAutomaticallyTriggered = !!n),
                  this.telemetryService.publicLog(
                    'suggestWidget',
                    Object.assign({}, e)
                  );
              }
              (this.focusedItem = null),
                this.list.splice(
                  0,
                  this.list.length,
                  this.completionModel.items
                ),
                i ? this.setState(4) : this.setState(3),
                this.list.reveal(t, 0),
                this.list.setFocus([t]),
                this.detailsBorderColor &&
                  (this.details.element.style.borderColor = this.detailsBorderColor);
            }
          }
          selectNextPage() {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.pageDown(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusNextPage(), !0;
            }
          }
          selectNext() {
            switch (this.state) {
              case 0:
                return !1;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusNext(1, !0), !0;
            }
          }
          selectLast() {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.scrollBottom(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusLast(), !0;
            }
          }
          selectPreviousPage() {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.pageUp(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusPreviousPage(), !0;
            }
          }
          selectPrevious() {
            switch (this.state) {
              case 0:
                return !1;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusPrevious(1, !0), !1;
            }
          }
          selectFirst() {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.scrollTop(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusFirst(), !0;
            }
          }
          getFocusedItem() {
            if (
              0 !== this.state &&
              2 !== this.state &&
              1 !== this.state &&
              this.completionModel
            )
              return {
                item: this.list.getFocusedElements()[0],
                index: this.list.getFocus()[0],
                model: this.completionModel,
              };
          }
          toggleDetailsFocus() {
            5 === this.state
              ? (this.setState(3),
                this.detailsBorderColor &&
                  (this.details.element.style.borderColor = this.detailsBorderColor))
              : 3 === this.state &&
                this.expandDocsSettingFromStorage() &&
                (this.setState(5),
                this.detailsFocusBorderColor &&
                  (this.details.element.style.borderColor = this.detailsFocusBorderColor)),
              this.telemetryService.publicLog2(
                'suggestWidget:toggleDetailsFocus'
              );
          }
          toggleDetails() {
            if (rt(this.list.getFocusedElements()[0]))
              if (this.expandDocsSettingFromStorage())
                this.ctxSuggestWidgetDetailsVisible.set(!1),
                  this.updateExpandDocsSetting(!1),
                  (0, Ne.Cp)(this.details.element),
                  this.element.classList.remove('docs-side', 'doc-below'),
                  this.editor.layoutContentWidget(this),
                  this.telemetryService.publicLog2(
                    'suggestWidget:collapseDetails'
                  );
              else {
                if (3 !== this.state && 5 !== this.state && 4 !== this.state)
                  return;
                this.ctxSuggestWidgetDetailsVisible.set(!0),
                  this.updateExpandDocsSetting(!0),
                  this.showDetails(!1),
                  this.telemetryService.publicLog2(
                    'suggestWidget:expandDetails'
                  );
              }
          }
          showDetails(e) {
            e || this.expandSideOrBelow(),
              (0, Ne.$Z)(this.details.element),
              (this.details.element.style.maxHeight =
                this.maxWidgetHeight + 'px'),
              e
                ? this.details.renderLoading()
                : this.details.renderItem(
                    this.list.getFocusedElements()[0],
                    this.explainMode
                  ),
              (this.listElement.style.marginTop = '0px'),
              this.editor.layoutContentWidget(this),
              this.adjustDocsPosition(),
              this.editor.focus();
          }
          toggleExplainMode() {
            this.list.getFocusedElements()[0] &&
              this.expandDocsSettingFromStorage() &&
              ((this.explainMode = !this.explainMode), this.showDetails(!1));
          }
          show() {
            const e = this.updateListHeight();
            e !== this.listHeight &&
              (this.editor.layoutContentWidget(this), (this.listHeight = e)),
              this.ctxSuggestWidgetVisible.set(!0),
              this.showTimeout.cancelAndSet(() => {
                this.element.classList.add('visible'),
                  this.onDidShowEmitter.fire(this);
              }, 100);
          }
          hide() {
            this.editor.layoutContentWidget(this),
              this.ctxSuggestWidgetVisible.reset(),
              this.ctxSuggestWidgetMultipleSuggestions.reset(),
              this.element.classList.remove('visible');
          }
          hideWidget() {
            this.loadingTimeout.dispose(),
              this.setState(0),
              this.onDidHideEmitter.fire(this);
          }
          getPosition() {
            if (0 === this.state) return null;
            let e = [2, 1];
            return (
              this.preferDocPositionTop && (e = [1]),
              { position: this.editor.getPosition(), preference: e }
            );
          }
          getDomNode() {
            return this.element;
          }
          getId() {
            return e.ID;
          }
          isFrozen() {
            return 4 === this.state;
          }
          updateListHeight() {
            let e = 0;
            if (2 === this.state || 1 === this.state) e = this.unfocusedHeight;
            else {
              const t = this.list.contentHeight / this.unfocusedHeight,
                { maxVisibleSuggestions: i } = this.editor.getOption(96);
              e = Math.min(t, i) * this.unfocusedHeight;
            }
            return (
              (this.element.style.lineHeight = `${this.unfocusedHeight}px`),
              (this.listElement.style.height = `${e}px`),
              (this.statusBarElement.style.top = `${e}px`),
              this.list.layout(e),
              e
            );
          }
          adjustDocsPosition() {
            if (!this.editor.hasModel()) return;
            const e = this.editor.getOption(51),
              t = this.editor.getScrolledVisiblePosition(
                this.editor.getPosition()
              ),
              i = (0, Ne.i)(this.editor.getDomNode()),
              n = i.left + t.left,
              r = i.top + t.top + t.height,
              s = (0, Ne.i)(this.element),
              o = s.left,
              a = s.top;
            if (
              this.docsPositionPreviousWidgetY &&
              this.docsPositionPreviousWidgetY < a &&
              !this.preferDocPositionTop
            )
              return (
                (this.preferDocPositionTop = !0), void this.adjustDocsPosition()
              );
            (this.docsPositionPreviousWidgetY = a),
              o < n - this.listWidth
                ? this.element.classList.add('list-right')
                : this.element.classList.remove('list-right'),
              this.element.classList.contains('docs-side') &&
                r - e > a &&
                this.details.element.offsetHeight >
                  this.listElement.offsetHeight &&
                (this.listElement.style.marginTop =
                  this.details.element.offsetHeight -
                  this.listElement.offsetHeight +
                  'px');
          }
          expandSideOrBelow() {
            if (!rt(this.focusedItem) && this.firstFocusInCurrentList)
              return void this.element.classList.remove(
                'docs-side',
                'docs-below'
              );
            let e = this.element.style.maxWidth.match(/(\d+)px/);
            !e || Number(e[1]) < this.maxWidgetWidth
              ? (this.element.classList.add('docs-below'),
                this.element.classList.remove('docs-side'))
              : rt(this.focusedItem) &&
                (this.element.classList.add('docs-side'),
                this.element.classList.remove('docs-below'));
          }
          get maxWidgetHeight() {
            return (
              this.unfocusedHeight *
              this.editor.getOption(96).maxVisibleSuggestions
            );
          }
          get unfocusedHeight() {
            const e = this.editor.getOptions();
            return e.get(98) || e.get(36).lineHeight;
          }
          getHeight(e) {
            return this.unfocusedHeight;
          }
          getTemplateId(e) {
            return 'suggestion';
          }
          expandDocsSettingFromStorage() {
            return this.storageService.getBoolean(
              'expandSuggestionDocs',
              0,
              !1
            );
          }
          updateExpandDocsSetting(e) {
            this.storageService.store('expandSuggestionDocs', e, 0);
          }
          dispose() {
            this.details.dispose(),
              this.list.dispose(),
              this.toDispose.dispose(),
              this.loadingTimeout.dispose(),
              this.showTimeout.dispose(),
              this.editor.removeContentWidget(this);
          }
        };
        (lt.ID = 'editor.widget.suggestWidget'),
          (lt.LOADING_MESSAGE = D.N('suggestWidget.loading', 'Loading...')),
          (lt.NO_SUGGESTIONS_MESSAGE = D.N(
            'suggestWidget.noSuggestions',
            'No suggestions.'
          )),
          (lt = Ge(
            [
              Ze(1, Oe.b),
              Ze(2, Ie.d),
              Ze(3, E.i6),
              Ze(4, $.XE),
              Ze(5, m.Uy),
              Ze(6, C.h),
              Ze(7, Pe.v4),
              Ze(8, $e.co),
              Ze(9, v.TG),
            ],
            lt
          )),
          (0, $.Ic)((e, t) => {
            const i = e.getColor(it);
            i &&
              t.addRule(
                `.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ${i}; }`
              );
            const n = e.getColor(et);
            n && t.addRule(`.monaco-editor .suggest-widget { color: ${n}; }`);
            const r = e.getColor(K.ur);
            r && t.addRule(`.monaco-editor .suggest-widget a { color: ${r}; }`);
            const s = e.getColor(K.Sw);
            s &&
              t.addRule(
                `.monaco-editor .suggest-widget code { background-color: ${s}; }`
              );
          });
        let ct = class e extends a.JT {
          constructor(t, i) {
            super(),
              (this._editor = t),
              (this._enabled = !1),
              (this._ckAtEnd = e.AtEnd.bindTo(i)),
              this._register(
                this._editor.onDidChangeConfiguration(
                  (e) => e.hasChanged(101) && this._update()
                )
              ),
              this._update();
          }
          dispose() {
            super.dispose(),
              (0, a.B9)(this._selectionListener),
              this._ckAtEnd.reset();
          }
          _update() {
            const e = 'on' === this._editor.getOption(101);
            if (this._enabled !== e)
              if (((this._enabled = e), this._enabled)) {
                const e = () => {
                  if (!this._editor.hasModel())
                    return void this._ckAtEnd.set(!1);
                  const e = this._editor.getModel(),
                    t = this._editor.getSelection(),
                    i = e.getWordAtPosition(t.getStartPosition());
                  i
                    ? this._ckAtEnd.set(
                        i.endColumn === t.getStartPosition().column
                      )
                    : this._ckAtEnd.set(!1);
                };
                (this._selectionListener = this._editor.onDidChangeCursorSelection(
                  e
                )),
                  e();
              } else
                this._selectionListener &&
                  (this._ckAtEnd.reset(),
                  this._selectionListener.dispose(),
                  (this._selectionListener = void 0));
          }
        };
        (ct.AtEnd = new E.uy('atEndOfWord', !1)),
          (ct = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              (function (e, t) {
                return function (i, n) {
                  t(i, n, e);
                };
              })(1, E.i6),
            ],
            ct
          ));
        var dt = i(90469),
          ht = i(98401),
          ut = i(44906);
        class gt {
          constructor(e, t, i) {
            (this._disposables = new a.SL()),
              this._disposables.add(
                t.onDidShow(() => this._onItem(t.getFocusedItem()))
              ),
              this._disposables.add(t.onDidFocus(this._onItem, this)),
              this._disposables.add(t.onDidHide(this.reset, this)),
              this._disposables.add(
                e.onWillType((n) => {
                  if (this._active && !t.isFrozen()) {
                    const t = n.charCodeAt(n.length - 1);
                    this._active.acceptCharacters.has(t) &&
                      e.getOption(0) &&
                      i(this._active.item);
                  }
                })
              );
          }
          _onItem(e) {
            if (!e || !(0, r.Of)(e.item.completion.commitCharacters))
              return void this.reset();
            if (this._active && this._active.item.item === e.item) return;
            const t = new ut.q();
            for (const i of e.item.completion.commitCharacters)
              i.length > 0 && t.add(i.charCodeAt(0));
            this._active = { acceptCharacters: t, item: e };
          }
          reset() {
            this._active = void 0;
          }
          dispose() {
            this._disposables.dispose();
          }
        }
        class ft {
          constructor(e, t) {
            (this._disposables = new a.SL()),
              (this._lastOvertyped = []),
              (this._empty = !0),
              this._disposables.add(
                e.onWillType(() => {
                  if (!this._empty) return;
                  if (!e.hasModel()) return;
                  const t = e.getSelections(),
                    i = t.length;
                  let n = !1;
                  for (let e = 0; e < i; e++)
                    if (!t[e].isEmpty()) {
                      n = !0;
                      break;
                    }
                  if (!n) return;
                  this._lastOvertyped = [];
                  const r = e.getModel();
                  for (let e = 0; e < i; e++) {
                    const i = t[e];
                    if (r.getValueLengthInRange(i) > ft._maxSelectionLength)
                      return;
                    this._lastOvertyped[e] = {
                      value: r.getValueInRange(i),
                      multiline: i.startLineNumber !== i.endLineNumber,
                    };
                  }
                  this._empty = !1;
                })
              ),
              this._disposables.add(
                t.onDidCancel((e) => {
                  this._empty || (this._empty = !0);
                })
              );
          }
          getLastOvertypedInfo(e) {
            if (!this._empty && e >= 0 && e < this._lastOvertyped.length)
              return this._lastOvertyped[e];
          }
          dispose() {
            this._disposables.dispose();
          }
        }
        ft._maxSelectionLength = 51200;
        var pt = i(50187),
          mt = i(1432),
          _t = i(43557),
          bt = i(84013),
          vt = i(84972),
          yt = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class wt {
          constructor(e, t) {
            if (
              ((this._model = e),
              (this._position = t),
              e.getLineMaxColumn(t.lineNumber) !== t.column)
            ) {
              const i = e.getOffsetAt(t),
                n = e.getPositionAt(i + 1);
              this._marker = e.deltaDecorations(
                [],
                [{ range: h.e.fromPositions(t, n), options: { stickiness: 1 } }]
              );
            }
          }
          dispose() {
            this._marker &&
              !this._model.isDisposed() &&
              this._model.deltaDecorations(this._marker, []);
          }
          delta(e) {
            if (
              this._model.isDisposed() ||
              this._position.lineNumber !== e.lineNumber
            )
              return 0;
            if (this._marker) {
              const t = this._model.getDecorationRange(this._marker[0]);
              return (
                this._model.getOffsetAt(t.getStartPosition()) -
                this._model.getOffsetAt(e)
              );
            }
            return this._model.getLineMaxColumn(e.lineNumber) - e.column;
          }
        }
        let Ct = class e {
          constructor(e, t, i, n, r, s, l, c) {
            (this._memoryService = i),
              (this._commandService = n),
              (this._contextKeyService = r),
              (this._instantiationService = s),
              (this._logService = l),
              (this._lineSuffix = new a.XK()),
              (this._toDispose = new a.SL()),
              (this.editor = e),
              (this.model = new U(this.editor, t, c)),
              (this.widget = this._toDispose.add(
                new b.Ue(() => {
                  const e = this._instantiationService.createInstance(
                    lt,
                    this.editor
                  );
                  this._toDispose.add(e),
                    this._toDispose.add(
                      e.onDidSelect((e) => this._insertSuggestion(e, 0), this)
                    );
                  const t = new gt(this.editor, e, (e) =>
                    this._insertSuggestion(e, 2)
                  );
                  this._toDispose.add(t),
                    this._toDispose.add(
                      this.model.onDidSuggest((e) => {
                        0 === e.completionModel.items.length && t.reset();
                      })
                    );
                  const i = I._y.MakesTextEdit.bindTo(this._contextKeyService),
                    n = I._y.HasInsertAndReplaceRange.bindTo(
                      this._contextKeyService
                    ),
                    r = I._y.CanResolve.bindTo(this._contextKeyService);
                  return (
                    this._toDispose.add(
                      (0, a.OF)(() => {
                        i.reset(), n.reset(), r.reset();
                      })
                    ),
                    this._toDispose.add(
                      e.onDidFocus(({ item: e }) => {
                        const t = this.editor.getPosition(),
                          s = e.editStart.column,
                          o = t.column;
                        let a = !0;
                        'smart' !== this.editor.getOption(1) ||
                          2 !== this.model.state ||
                          e.completion.command ||
                          e.completion.additionalTextEdits ||
                          4 & e.completion.insertTextRules ||
                          o - s !== e.completion.insertText.length ||
                          (a =
                            this.editor
                              .getModel()
                              .getValueInRange({
                                startLineNumber: t.lineNumber,
                                startColumn: s,
                                endLineNumber: t.lineNumber,
                                endColumn: o,
                              }) !== e.completion.insertText),
                          i.set(a),
                          n.set(
                            !pt.L.equals(e.editInsertEnd, e.editReplaceEnd)
                          ),
                          r.set(
                            Boolean(e.provider.resolveCompletionItem) ||
                              Boolean(e.completion.documentation) ||
                              e.completion.detail !== e.completion.label
                          );
                      })
                    ),
                    this._toDispose.add(
                      e.onDetailsKeyDown((e) => {
                        e.toKeybinding().equals(new o.QC(!0, !1, !1, !1, 33)) ||
                        (mt.dz &&
                          e.toKeybinding().equals(new o.QC(!1, !1, !1, !0, 33)))
                          ? e.stopPropagation()
                          : e.toKeybinding().isModifierKey() ||
                            this.editor.focus();
                      })
                    ),
                    e
                  );
                })
              )),
              (this._overtypingCapturer = this._toDispose.add(
                new b.Ue(() =>
                  this._toDispose.add(new ft(this.editor, this.model))
                )
              )),
              (this._alternatives = this._toDispose.add(
                new b.Ue(() =>
                  this._toDispose.add(
                    new O(this.editor, this._contextKeyService)
                  )
                )
              )),
              this._toDispose.add(s.createInstance(ct, e)),
              this._toDispose.add(
                this.model.onDidTrigger((e) => {
                  this.widget.value.showTriggered(e.auto, e.shy ? 250 : 50),
                    (this._lineSuffix.value = new wt(
                      this.editor.getModel(),
                      e.position
                    ));
                })
              ),
              this._toDispose.add(
                this.model.onDidSuggest((e) => {
                  if (!e.shy) {
                    let t = this._memoryService.select(
                      this.editor.getModel(),
                      this.editor.getPosition(),
                      e.completionModel.items
                    );
                    this.widget.value.showSuggestions(
                      e.completionModel,
                      t,
                      e.isFrozen,
                      e.auto
                    );
                  }
                })
              ),
              this._toDispose.add(
                this.model.onDidCancel((e) => {
                  e.retrigger || this.widget.value.hideWidget();
                })
              ),
              this._toDispose.add(
                this.editor.onDidBlurEditorWidget(() => {
                  this.model.cancel(), this.model.clear();
                })
              );
            let d = I._y.AcceptSuggestionsOnEnter.bindTo(r),
              h = () => {
                const e = this.editor.getOption(1);
                d.set('on' === e || 'smart' === e);
              };
            this._toDispose.add(
              this.editor.onDidChangeConfiguration(() => h())
            ),
              h();
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this._alternatives.dispose(),
              this._toDispose.dispose(),
              this.widget.dispose(),
              this.model.dispose(),
              this._lineSuffix.dispose();
          }
          _insertSuggestion(e, t) {
            if (!e || !e.item)
              return (
                this._alternatives.value.reset(),
                this.model.cancel(),
                void this.model.clear()
              );
            if (!this.editor.hasModel()) return;
            const i = this.editor.getModel(),
              n = i.getAlternativeVersionId(),
              { item: r } = e,
              o = [],
              a = new H.A();
            1 & t || this.editor.pushUndoStop();
            const c = this.getOverwriteInfo(r, Boolean(8 & t));
            if (
              (this._memoryService.memorize(i, this.editor.getPosition(), r),
              Array.isArray(r.completion.additionalTextEdits))
            ) {
              const e = l.ZF.capture(this.editor);
              this.editor.executeEdits(
                'suggestController.additionalTextEdits.sync',
                r.completion.additionalTextEdits.map((e) =>
                  d.h.replace(h.e.lift(e.range), e.text)
                )
              ),
                e.restoreRelativeVerticalPositionOfCursor(this.editor);
            } else if (!r.isResolved) {
              const e = new bt.G(!0);
              let n;
              const s = i.onDidChangeContent((e) => {
                if (e.isFlush) return a.cancel(), void s.dispose();
                for (let t of e.changes) {
                  const e = h.e.getEndPosition(t.range);
                  (n && !pt.L.isBefore(e, n)) || (n = e);
                }
              });
              let c = t;
              t |= 2;
              let u = !1,
                g = this.editor.onWillType(() => {
                  g.dispose(), (u = !0), 2 & c || this.editor.pushUndoStop();
                });
              o.push(
                r
                  .resolve(a.token)
                  .then(() => {
                    if (
                      !r.completion.additionalTextEdits ||
                      a.token.isCancellationRequested
                    )
                      return !1;
                    if (
                      n &&
                      r.completion.additionalTextEdits.some((e) =>
                        pt.L.isBefore(n, h.e.getStartPosition(e.range))
                      )
                    )
                      return !1;
                    u && this.editor.pushUndoStop();
                    const e = l.ZF.capture(this.editor);
                    return (
                      this.editor.executeEdits(
                        'suggestController.additionalTextEdits.async',
                        r.completion.additionalTextEdits.map((e) =>
                          d.h.replace(h.e.lift(e.range), e.text)
                        )
                      ),
                      e.restoreRelativeVerticalPositionOfCursor(this.editor),
                      (!u && 2 & c) || this.editor.pushUndoStop(),
                      !0
                    );
                  })
                  .then((t) => {
                    this._logService.trace(
                      '[suggest] async resolving of edits DONE (ms, applied?)',
                      e.elapsed(),
                      t
                    ),
                      s.dispose(),
                      g.dispose();
                  })
              );
            }
            let { insertText: u } = r.completion;
            4 & r.completion.insertTextRules || (u = f.Yj.escape(u)),
              g.SnippetController2.get(this.editor).insert(u, {
                overwriteBefore: c.overwriteBefore,
                overwriteAfter: c.overwriteAfter,
                undoStopBefore: !1,
                undoStopAfter: !1,
                adjustWhitespace: !(1 & r.completion.insertTextRules),
                clipboardText: e.model.clipboardText,
                overtypingCapturer: this._overtypingCapturer.value,
              }),
              2 & t || this.editor.pushUndoStop(),
              r.completion.command
                ? r.completion.command.id === St.id
                  ? this.model.trigger({ auto: !0, shy: !1 }, !0)
                  : (o.push(
                      this._commandService
                        .executeCommand(
                          r.completion.command.id,
                          ...(r.completion.command.arguments
                            ? [...r.completion.command.arguments]
                            : [])
                        )
                        .catch(s.dL)
                    ),
                    this.model.cancel())
                : this.model.cancel(),
              4 & t &&
                this._alternatives.value.set(e, (e) => {
                  for (a.cancel(); i.canUndo(); ) {
                    n !== i.getAlternativeVersionId() && i.undo(),
                      this._insertSuggestion(e, 3 | (8 & t ? 8 : 0));
                    break;
                  }
                }),
              this._alertCompletionItem(r),
              Promise.all(o).finally(() => {
                this.model.clear(), a.dispose();
              });
          }
          getOverwriteInfo(e, t) {
            (0, ht.p_)(this.editor.hasModel());
            let i = 'replace' === this.editor.getOption(96).insertMode;
            t && (i = !i);
            const n = e.position.column - e.editStart.column,
              r =
                (i ? e.editReplaceEnd.column : e.editInsertEnd.column) -
                e.position.column;
            return {
              overwriteBefore:
                n + (this.editor.getPosition().column - e.position.column),
              overwriteAfter:
                r +
                (this._lineSuffix.value
                  ? this._lineSuffix.value.delta(this.editor.getPosition())
                  : 0),
            };
          }
          _alertCompletionItem({ completion: e }) {
            const t = 'string' == typeof e.label ? e.label : e.label.name;
            if ((0, r.Of)(e.additionalTextEdits)) {
              let i = D.N(
                'arai.alert.snippet',
                "Accepting '{0}' made {1} additional edits",
                t,
                e.additionalTextEdits.length
              );
              (0, n.Z9)(i);
            }
          }
          triggerSuggest(e) {
            this.editor.hasModel() &&
              (this.model.trigger({ auto: !1, shy: !1 }, !1, e),
              this.editor.revealLine(this.editor.getPosition().lineNumber, 0),
              this.editor.focus());
          }
          triggerSuggestAndAcceptBest(e) {
            if (!this.editor.hasModel()) return;
            const t = this.editor.getPosition(),
              i = () => {
                t.equals(this.editor.getPosition()) &&
                  this._commandService.executeCommand(e.fallback);
              },
              n = (e) => {
                if (
                  4 & e.completion.insertTextRules ||
                  e.completion.additionalTextEdits
                )
                  return !0;
                const t = this.editor.getPosition(),
                  i = e.editStart.column,
                  n = t.column;
                return (
                  n - i !== e.completion.insertText.length ||
                  this.editor
                    .getModel()
                    .getValueInRange({
                      startLineNumber: t.lineNumber,
                      startColumn: i,
                      endLineNumber: t.lineNumber,
                      endColumn: n,
                    }) !== e.completion.insertText
                );
              };
            P.ju.once(this.model.onDidTrigger)((e) => {
              let t = [];
              P.ju.any(this.model.onDidTrigger, this.model.onDidCancel)(
                () => {
                  (0, a.B9)(t), i();
                },
                void 0,
                t
              ),
                this.model.onDidSuggest(
                  ({ completionModel: e }) => {
                    if (((0, a.B9)(t), 0 === e.items.length)) return void i();
                    const r = this._memoryService.select(
                        this.editor.getModel(),
                        this.editor.getPosition(),
                        e.items
                      ),
                      s = e.items[r];
                    n(s)
                      ? (this.editor.pushUndoStop(),
                        this._insertSuggestion(
                          { index: r, item: s, model: e },
                          7
                        ))
                      : i();
                  },
                  void 0,
                  t
                );
            }),
              this.model.trigger({ auto: !1, shy: !0 }),
              this.editor.revealLine(t.lineNumber, 0),
              this.editor.focus();
          }
          acceptSelectedSuggestion(e, t) {
            const i = this.widget.value.getFocusedItem();
            let n = 0;
            e && (n |= 4), t && (n |= 8), this._insertSuggestion(i, n);
          }
          acceptNextSuggestion() {
            this._alternatives.value.next();
          }
          acceptPrevSuggestion() {
            this._alternatives.value.prev();
          }
          cancelSuggestWidget() {
            this.model.cancel(),
              this.model.clear(),
              this.widget.value.hideWidget();
          }
          selectNextSuggestion() {
            this.widget.value.selectNext();
          }
          selectNextPageSuggestion() {
            this.widget.value.selectNextPage();
          }
          selectLastSuggestion() {
            this.widget.value.selectLast();
          }
          selectPrevSuggestion() {
            this.widget.value.selectPrevious();
          }
          selectPrevPageSuggestion() {
            this.widget.value.selectPreviousPage();
          }
          selectFirstSuggestion() {
            this.widget.value.selectFirst();
          }
          toggleSuggestionDetails() {
            this.widget.value.toggleDetails();
          }
          toggleExplainMode() {
            this.widget.value.toggleExplainMode();
          }
          toggleSuggestionFocus() {
            this.widget.value.toggleDetailsFocus();
          }
        };
        (Ct.ID = 'editor.contrib.suggestController'),
          (Ct = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              yt(1, dt.p),
              yt(2, M),
              yt(3, N.H),
              yt(4, E.i6),
              yt(5, v.TG),
              yt(6, _t.VZ),
              yt(7, vt.p),
            ],
            Ct
          ));
        class St extends c.R6 {
          constructor() {
            super({
              id: St.id,
              label: D.N('suggest.trigger.label', 'Trigger Suggest'),
              alias: 'Trigger Suggest',
              precondition: E.Ao.and(
                u.u.writable,
                u.u.hasCompletionItemProvider
              ),
              kbOpts: {
                kbExpr: u.u.textInputFocus,
                primary: 2058,
                mac: { primary: 266, secondary: [521] },
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = Ct.get(t);
            i && i.triggerSuggest();
          }
        }
        (St.id = 'editor.action.triggerSuggest'),
          (0, c._K)(Ct.ID, Ct),
          (0, c.Qr)(St);
        const kt = 190,
          xt = c._l.bindToContribution(Ct.get);
        (0, c.fK)(
          new xt({
            id: 'acceptSelectedSuggestion',
            precondition: I._y.Visible,
            handler(e) {
              e.acceptSelectedSuggestion(!0, !1);
            },
          })
        ),
          T.W.registerKeybindingRule({
            id: 'acceptSelectedSuggestion',
            when: E.Ao.and(I._y.Visible, u.u.textInputFocus),
            primary: 2,
            weight: kt,
          }),
          T.W.registerKeybindingRule({
            id: 'acceptSelectedSuggestion',
            when: E.Ao.and(
              I._y.Visible,
              u.u.textInputFocus,
              I._y.AcceptSuggestionsOnEnter,
              I._y.MakesTextEdit
            ),
            primary: 3,
            weight: kt,
          }),
          $e.BH.appendMenuItem(I.GI, {
            command: {
              id: 'acceptSelectedSuggestion',
              title: D.N(
                {
                  key: 'accept.accept',
                  comment: ['{0} will be a keybinding, e.g "Enter to insert"'],
                },
                '{0} to insert'
              ),
            },
            group: 'left',
            order: 1,
            when: I._y.HasInsertAndReplaceRange.toNegated(),
          }),
          $e.BH.appendMenuItem(I.GI, {
            command: {
              id: 'acceptSelectedSuggestion',
              title: D.N(
                {
                  key: 'accept.insert',
                  comment: ['{0} will be a keybinding, e.g "Enter to insert"'],
                },
                '{0} to insert'
              ),
            },
            group: 'left',
            order: 1,
            when: E.Ao.and(
              I._y.HasInsertAndReplaceRange,
              E.Ao.equals('config.editor.suggest.insertMode', 'insert')
            ),
          }),
          $e.BH.appendMenuItem(I.GI, {
            command: {
              id: 'acceptSelectedSuggestion',
              title: D.N(
                {
                  key: 'accept.replace',
                  comment: ['{0} will be a keybinding, e.g "Enter to replace"'],
                },
                '{0} to replace'
              ),
            },
            group: 'left',
            order: 1,
            when: E.Ao.and(
              I._y.HasInsertAndReplaceRange,
              E.Ao.equals('config.editor.suggest.insertMode', 'replace')
            ),
          }),
          (0, c.fK)(
            new xt({
              id: 'acceptAlternativeSelectedSuggestion',
              precondition: E.Ao.and(I._y.Visible, u.u.textInputFocus),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 1027,
                secondary: [1026],
              },
              handler(e) {
                e.acceptSelectedSuggestion(!1, !0);
              },
              menuOpts: [
                {
                  menuId: I.GI,
                  group: 'left',
                  order: 2,
                  when: E.Ao.and(
                    I._y.HasInsertAndReplaceRange,
                    E.Ao.equals('config.editor.suggest.insertMode', 'insert')
                  ),
                  title: D.N(
                    {
                      key: 'accept.replace',
                      comment: [
                        '{0} will be a keybinding, e.g "Enter to replace"',
                      ],
                    },
                    '{0} to replace'
                  ),
                },
                {
                  menuId: I.GI,
                  group: 'left',
                  order: 2,
                  when: E.Ao.and(
                    I._y.HasInsertAndReplaceRange,
                    E.Ao.equals('config.editor.suggest.insertMode', 'replace')
                  ),
                  title: D.N(
                    {
                      key: 'accept.insert',
                      comment: [
                        '{0} will be a keybinding, e.g "Enter to insert"',
                      ],
                    },
                    '{0} to insert'
                  ),
                },
              ],
            })
          ),
          N.P.registerCommandAlias(
            'acceptSelectedSuggestionOnEnter',
            'acceptSelectedSuggestion'
          ),
          (0, c.fK)(
            new xt({
              id: 'hideSuggestWidget',
              precondition: I._y.Visible,
              handler: (e) => e.cancelSuggestWidget(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 9,
                secondary: [1033],
              },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'selectNextSuggestion',
              precondition: E.Ao.and(I._y.Visible, I._y.MultipleSuggestions),
              handler: (e) => e.selectNextSuggestion(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 18,
                secondary: [2066],
                mac: { primary: 18, secondary: [2066, 300] },
              },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'selectNextPageSuggestion',
              precondition: E.Ao.and(I._y.Visible, I._y.MultipleSuggestions),
              handler: (e) => e.selectNextPageSuggestion(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 12,
                secondary: [2060],
              },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'selectLastSuggestion',
              precondition: E.Ao.and(I._y.Visible, I._y.MultipleSuggestions),
              handler: (e) => e.selectLastSuggestion(),
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'selectPrevSuggestion',
              precondition: E.Ao.and(I._y.Visible, I._y.MultipleSuggestions),
              handler: (e) => e.selectPrevSuggestion(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 16,
                secondary: [2064],
                mac: { primary: 16, secondary: [2064, 302] },
              },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'selectPrevPageSuggestion',
              precondition: E.Ao.and(I._y.Visible, I._y.MultipleSuggestions),
              handler: (e) => e.selectPrevPageSuggestion(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 11,
                secondary: [2059],
              },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'selectFirstSuggestion',
              precondition: E.Ao.and(I._y.Visible, I._y.MultipleSuggestions),
              handler: (e) => e.selectFirstSuggestion(),
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'toggleSuggestionDetails',
              precondition: I._y.Visible,
              handler: (e) => e.toggleSuggestionDetails(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 2058,
                mac: { primary: 266 },
              },
              menuOpts: [
                {
                  menuId: I.GI,
                  group: 'right',
                  order: 1,
                  when: E.Ao.and(I._y.DetailsVisible, I._y.CanResolve),
                  title: D.N('detail.more', 'show less'),
                },
                {
                  menuId: I.GI,
                  group: 'right',
                  order: 1,
                  when: E.Ao.and(
                    I._y.DetailsVisible.toNegated(),
                    I._y.CanResolve
                  ),
                  title: D.N('detail.less', 'show more'),
                },
              ],
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'toggleExplainMode',
              precondition: I._y.Visible,
              handler: (e) => e.toggleExplainMode(),
              kbOpts: { weight: 100, primary: 2133 },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'toggleSuggestionFocus',
              precondition: I._y.Visible,
              handler: (e) => e.toggleSuggestionFocus(),
              kbOpts: {
                weight: kt,
                kbExpr: u.u.textInputFocus,
                primary: 2570,
                mac: { primary: 778 },
              },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'insertBestCompletion',
              precondition: E.Ao.and(
                u.u.textInputFocus,
                E.Ao.equals('config.editor.tabCompletion', 'on'),
                ct.AtEnd,
                I._y.Visible.toNegated(),
                O.OtherSuggestions.toNegated(),
                g.SnippetController2.InSnippetMode.toNegated()
              ),
              handler: (e, t) => {
                e.triggerSuggestAndAcceptBest(
                  (0, ht.Kn)(t)
                    ? Object.assign({ fallback: 'tab' }, t)
                    : { fallback: 'tab' }
                );
              },
              kbOpts: { weight: kt, primary: 2 },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'insertNextSuggestion',
              precondition: E.Ao.and(
                u.u.textInputFocus,
                E.Ao.equals('config.editor.tabCompletion', 'on'),
                O.OtherSuggestions,
                I._y.Visible.toNegated(),
                g.SnippetController2.InSnippetMode.toNegated()
              ),
              handler: (e) => e.acceptNextSuggestion(),
              kbOpts: { weight: kt, kbExpr: u.u.textInputFocus, primary: 2 },
            })
          ),
          (0, c.fK)(
            new xt({
              id: 'insertPrevSuggestion',
              precondition: E.Ao.and(
                u.u.textInputFocus,
                E.Ao.equals('config.editor.tabCompletion', 'on'),
                O.OtherSuggestions,
                I._y.Visible.toNegated(),
                g.SnippetController2.InSnippetMode.toNegated()
              ),
              handler: (e) => e.acceptPrevSuggestion(),
              kbOpts: { weight: kt, kbExpr: u.u.textInputFocus, primary: 1026 },
            })
          );
      },
      19720: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { ToggleTabFocusModeAction: () => a });
        var n = i(63580),
          r = i(85152),
          s = i(16830),
          o = i(56345);
        class a extends s.R6 {
          constructor() {
            super({
              id: a.ID,
              label: n.N(
                {
                  key: 'toggle.tabMovesFocus',
                  comment: [
                    'Turn on/off use of tab key for moving focus around VS Code',
                  ],
                },
                'Toggle Tab Key Moves Focus'
              ),
              alias: 'Toggle Tab Key Moves Focus',
              precondition: void 0,
              kbOpts: {
                kbExpr: null,
                primary: 2091,
                mac: { primary: 1323 },
                weight: 100,
              },
            });
          }
          run(e, t) {
            const i = !o.nG.getTabFocusMode();
            o.nG.setTabFocusMode(i),
              i
                ? (0, r.Z9)(
                    n.N(
                      'toggle.tabMovesFocus.on',
                      'Pressing Tab will now move focus to the next focusable element'
                    )
                  )
                : (0, r.Z9)(
                    n.N(
                      'toggle.tabMovesFocus.off',
                      'Pressing Tab will now insert the tab character'
                    )
                  );
          }
        }
        (a.ID = 'editor.action.toggleTabFocusMode'), (0, s.Qr)(a);
      },
      31725: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(63580),
          r = i(5976),
          s = i(16830),
          o = i(11640),
          a = i(28820),
          l = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const c = 'ignoreUnusualLineTerminators';
        let d = class extends r.JT {
          constructor(e, t, i) {
            super(),
              (this._editor = e),
              (this._dialogService = t),
              (this._codeEditorService = i),
              (this._config = this._editor.getOption(103)),
              this._register(
                this._editor.onDidChangeConfiguration((e) => {
                  e.hasChanged(103) &&
                    ((this._config = this._editor.getOption(103)),
                    this._checkForUnusualLineTerminators());
                })
              ),
              this._register(
                this._editor.onDidChangeModel(() => {
                  this._checkForUnusualLineTerminators();
                })
              ),
              this._register(
                this._editor.onDidChangeModelContent((e) => {
                  e.isUndoing || this._checkForUnusualLineTerminators();
                })
              );
          }
          _checkForUnusualLineTerminators() {
            return (
              (e = this),
              (t = void 0),
              (r = function* () {
                if ('off' === this._config) return;
                if (!this._editor.hasModel()) return;
                const e = this._editor.getModel();
                e.mightContainUnusualLineTerminators() &&
                  !0 !==
                    (function (e, t) {
                      return e.getModelProperty(t.uri, c);
                    })(this._codeEditorService, e) &&
                  (this._editor.getOption(72) ||
                    ('auto' !== this._config
                      ? (yield this._dialogService.confirm({
                          title: n.N(
                            'unusualLineTerminators.title',
                            'Unusual Line Terminators'
                          ),
                          message: n.N(
                            'unusualLineTerminators.message',
                            'Detected unusual line terminators'
                          ),
                          detail: n.N(
                            'unusualLineTerminators.detail',
                            'This file contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.'
                          ),
                          primaryButton: n.N(
                            'unusualLineTerminators.fix',
                            'Fix this file'
                          ),
                          secondaryButton: n.N(
                            'unusualLineTerminators.ignore',
                            'Ignore problem for this file'
                          ),
                        })).confirmed
                        ? e.removeUnusualLineTerminators(
                            this._editor.getSelections()
                          )
                        : (function (e, t, i) {
                            e.setModelProperty(t.uri, c, !0);
                          })(this._codeEditorService, e)
                      : e.removeUnusualLineTerminators(
                          this._editor.getSelections()
                        )));
              }),
              new ((i = void 0) || (i = Promise))(function (n, s) {
                function o(e) {
                  try {
                    l(r.next(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function a(e) {
                  try {
                    l(r.throw(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function l(e) {
                  var t;
                  e.done
                    ? n(e.value)
                    : ((t = e.value),
                      t instanceof i
                        ? t
                        : new i(function (e) {
                            e(t);
                          })).then(o, a);
                }
                l((r = r.apply(e, t || [])).next());
              })
            );
            var e, t, i, r;
          }
        };
        (d.ID = 'editor.contrib.unusualLineTerminatorsDetector'),
          (d = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([l(1, a.S), l(2, o.$)], d)),
          (0, s._K)(d.ID, d);
      },
      70185: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(15393),
          r = i(5976),
          s = i(16830),
          o = i(43775),
          a = i(51200),
          l = i(65072),
          c = i(97781),
          d = i(33108),
          h = i(32334),
          u = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let g = class e extends r.JT {
          constructor(e, t, i, r) {
            super(),
              (this._modelService = t),
              (this._themeService = i),
              (this._configurationService = r),
              (this._editor = e),
              (this._tokenizeViewport = new n.pY(
                () => this._tokenizeViewportNow(),
                100
              )),
              (this._outstandingRequests = []),
              this._register(
                this._editor.onDidScrollChange(() => {
                  this._tokenizeViewport.schedule();
                })
              ),
              this._register(
                this._editor.onDidChangeModel(() => {
                  this._cancelAll(), this._tokenizeViewport.schedule();
                })
              ),
              this._register(
                this._editor.onDidChangeModelContent((e) => {
                  this._cancelAll(), this._tokenizeViewport.schedule();
                })
              ),
              this._register(
                o.K7.onDidChange(() => {
                  this._cancelAll(), this._tokenizeViewport.schedule();
                })
              ),
              this._register(
                this._configurationService.onDidChangeConfiguration((e) => {
                  e.affectsConfiguration(h.e3) &&
                    (this._cancelAll(), this._tokenizeViewport.schedule());
                })
              ),
              this._register(
                this._themeService.onDidColorThemeChange(() => {
                  this._cancelAll(), this._tokenizeViewport.schedule();
                })
              );
          }
          static _getSemanticColoringProvider(e) {
            const t = o.K7.ordered(e);
            return t.length > 0 ? t[0] : null;
          }
          _cancelAll() {
            for (const e of this._outstandingRequests) e.cancel();
            this._outstandingRequests = [];
          }
          _removeOutstandingRequest(e) {
            for (let t = 0, i = this._outstandingRequests.length; t < i; t++)
              if (this._outstandingRequests[t] === e)
                return void this._outstandingRequests.splice(t, 1);
          }
          _tokenizeViewportNow() {
            if (!this._editor.hasModel()) return;
            const t = this._editor.getModel();
            if (t.hasSemanticTokens()) return;
            if (!(0, h.tw)(t, this._themeService, this._configurationService))
              return;
            const i = e._getSemanticColoringProvider(t);
            if (!i) return;
            const n = this._modelService.getSemanticTokensProviderStyling(i),
              r = this._editor.getVisibleRangesPlusViewportAboveBelow();
            this._outstandingRequests = this._outstandingRequests.concat(
              r.map((e) => this._requestRange(t, e, i, n))
            );
          }
          _requestRange(e, t, i, r) {
            const s = e.getVersionId(),
              o = (0, n.PG)((n) =>
                Promise.resolve(i.provideDocumentRangeSemanticTokens(e, t, n))
              );
            return (
              o
                .then((i) => {
                  i &&
                    !e.isDisposed() &&
                    e.getVersionId() === s &&
                    e.setPartialSemanticTokens(
                      t,
                      (0, l.h)(i, r, e.getLanguageIdentifier())
                    );
                })
                .then(
                  () => this._removeOutstandingRequest(o),
                  () => this._removeOutstandingRequest(o)
                ),
              o
            );
          }
        };
        (g.ID = 'editor.contrib.viewportSemanticTokens'),
          (g = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([u(1, a.q), u(2, c.XE), u(3, d.Ui)], g)),
          (0, s._K)(g.ID, g);
      },
      43497: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { getOccurrencesAtPosition: () => L });
        var n = i(63580),
          r = i(9488),
          s = i(15393),
          o = i(71050),
          a = i(17301),
          l = i(5976),
          c = i(16830),
          d = i(24314),
          h = i(29102),
          u = i(84973),
          g = i(3411),
          f = i(43775),
          p = i(38819),
          m = i(73910),
          _ = i(97781),
          b = i(85152);
        const v = (0, m.P6)(
            'editor.wordHighlightBackground',
            { dark: '#575757B8', light: '#57575740', hc: null },
            n.N(
              'wordHighlight',
              'Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          y = (0, m.P6)(
            'editor.wordHighlightStrongBackground',
            { dark: '#004972B8', light: '#0e639c40', hc: null },
            n.N(
              'wordHighlightStrong',
              'Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          w = (0, m.P6)(
            'editor.wordHighlightBorder',
            { light: null, dark: null, hc: m.xL },
            n.N(
              'wordHighlightBorder',
              'Border color of a symbol during read-access, like reading a variable.'
            )
          ),
          C = (0, m.P6)(
            'editor.wordHighlightStrongBorder',
            { light: null, dark: null, hc: m.xL },
            n.N(
              'wordHighlightStrongBorder',
              'Border color of a symbol during write-access, like writing to a variable.'
            )
          ),
          S = (0, m.P6)(
            'editorOverviewRuler.wordHighlightForeground',
            { dark: '#A0A0A0CC', light: '#A0A0A0CC', hc: '#A0A0A0CC' },
            n.N(
              'overviewRulerWordHighlightForeground',
              'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          k = (0, m.P6)(
            'editorOverviewRuler.wordHighlightStrongForeground',
            { dark: '#C0A0C0CC', light: '#C0A0C0CC', hc: '#C0A0C0CC' },
            n.N(
              'overviewRulerWordHighlightStrongForeground',
              'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          x = new p.uy('hasWordHighlights', !1);
        function L(e, t, i) {
          const n = f.vH.ordered(e);
          return (0, s.Ps)(
            n.map((n) => () =>
              Promise.resolve(n.provideDocumentHighlights(e, t, i)).then(
                void 0,
                a.Cp
              )
            ),
            r.Of
          );
        }
        class M {
          constructor(e, t, i) {
            (this._wordRange = this._getCurrentWordRange(e, t)),
              (this.result = (0, s.PG)((n) => this._compute(e, t, i, n)));
          }
          _getCurrentWordRange(e, t) {
            const i = e.getWordAtPosition(t.getPosition());
            return i
              ? new d.e(
                  t.startLineNumber,
                  i.startColumn,
                  t.startLineNumber,
                  i.endColumn
                )
              : null;
          }
          isValid(e, t, i) {
            const n = t.startLineNumber,
              r = t.startColumn,
              s = t.endColumn,
              o = this._getCurrentWordRange(e, t);
            let a = Boolean(this._wordRange && this._wordRange.equalsRange(o));
            for (let t = 0, o = i.length; !a && t < o; t++) {
              let o = e.getDecorationRange(i[t]);
              o &&
                o.startLineNumber === n &&
                o.startColumn <= r &&
                o.endColumn >= s &&
                (a = !0);
            }
            return a;
          }
          cancel() {
            this.result.cancel();
          }
        }
        class D extends M {
          _compute(e, t, i, n) {
            return L(e, t.getPosition(), n).then((e) => e || []);
          }
        }
        class N extends M {
          constructor(e, t, i) {
            super(e, t, i), (this._selectionIsEmpty = t.isEmpty());
          }
          _compute(e, t, i, n) {
            return (0, s.Vs)(250, n).then(() => {
              if (!t.isEmpty()) return [];
              const n = e.getWordAtPosition(t.getPosition());
              return !n || n.word.length > 1e3
                ? []
                : e
                    .findMatches(n.word, !0, !1, !0, i, !1)
                    .map((e) => ({ range: e.range, kind: f.MY.Text }));
            });
          }
          isValid(e, t, i) {
            const n = t.isEmpty();
            return this._selectionIsEmpty === n && super.isValid(e, t, i);
          }
        }
        (0, c.sb)('_executeDocumentHighlights', (e, t) => L(e, t, o.T.None));
        class E {
          constructor(e, t) {
            (this.toUnhook = new l.SL()),
              (this.workerRequestTokenId = 0),
              (this.workerRequestCompleted = !1),
              (this.workerRequestValue = []),
              (this.lastCursorPositionChangeTime = 0),
              (this.renderDecorationsTimer = -1),
              (this.editor = e),
              (this._hasWordHighlights = x.bindTo(t)),
              (this._ignorePositionChangeEvent = !1),
              (this.occurrencesHighlight = this.editor.getOption(63)),
              (this.model = this.editor.getModel()),
              this.toUnhook.add(
                e.onDidChangeCursorPosition((e) => {
                  this._ignorePositionChangeEvent ||
                    (this.occurrencesHighlight && this._onPositionChanged(e));
                })
              ),
              this.toUnhook.add(
                e.onDidChangeModelContent((e) => {
                  this._stopAll();
                })
              ),
              this.toUnhook.add(
                e.onDidChangeConfiguration((e) => {
                  let t = this.editor.getOption(63);
                  this.occurrencesHighlight !== t &&
                    ((this.occurrencesHighlight = t), this._stopAll());
                })
              ),
              (this._decorationIds = []),
              (this.workerRequestTokenId = 0),
              (this.workerRequest = null),
              (this.workerRequestCompleted = !1),
              (this.lastCursorPositionChangeTime = 0),
              (this.renderDecorationsTimer = -1);
          }
          hasDecorations() {
            return this._decorationIds.length > 0;
          }
          restore() {
            this.occurrencesHighlight && this._run();
          }
          _getSortedHighlights() {
            return r.kX(
              this._decorationIds
                .map((e) => this.model.getDecorationRange(e))
                .sort(d.e.compareRangesUsingStarts)
            );
          }
          moveNext() {
            let e = this._getSortedHighlights(),
              t =
                (r.Zr(e, (e) => e.containsPosition(this.editor.getPosition())) +
                  1) %
                e.length,
              i = e[t];
            try {
              (this._ignorePositionChangeEvent = !0),
                this.editor.setPosition(i.getStartPosition()),
                this.editor.revealRangeInCenterIfOutsideViewport(i);
              const n = this._getWord();
              if (n) {
                const r = this.editor
                  .getModel()
                  .getLineContent(i.startLineNumber);
                (0, b.Z9)(`${r}, ${t + 1} of ${e.length} for '${n.word}'`);
              }
            } finally {
              this._ignorePositionChangeEvent = !1;
            }
          }
          moveBack() {
            let e = this._getSortedHighlights(),
              t =
                (r.Zr(e, (e) => e.containsPosition(this.editor.getPosition())) -
                  1 +
                  e.length) %
                e.length,
              i = e[t];
            try {
              (this._ignorePositionChangeEvent = !0),
                this.editor.setPosition(i.getStartPosition()),
                this.editor.revealRangeInCenterIfOutsideViewport(i);
              const n = this._getWord();
              if (n) {
                const r = this.editor
                  .getModel()
                  .getLineContent(i.startLineNumber);
                (0, b.Z9)(`${r}, ${t + 1} of ${e.length} for '${n.word}'`);
              }
            } finally {
              this._ignorePositionChangeEvent = !1;
            }
          }
          _removeDecorations() {
            this._decorationIds.length > 0 &&
              ((this._decorationIds = this.editor.deltaDecorations(
                this._decorationIds,
                []
              )),
              this._hasWordHighlights.set(!1));
          }
          _stopAll() {
            this._removeDecorations(),
              -1 !== this.renderDecorationsTimer &&
                (clearTimeout(this.renderDecorationsTimer),
                (this.renderDecorationsTimer = -1)),
              null !== this.workerRequest &&
                (this.workerRequest.cancel(), (this.workerRequest = null)),
              this.workerRequestCompleted ||
                (this.workerRequestTokenId++,
                (this.workerRequestCompleted = !0));
          }
          _onPositionChanged(e) {
            this.occurrencesHighlight && 3 === e.reason
              ? this._run()
              : this._stopAll();
          }
          _getWord() {
            let e = this.editor.getSelection(),
              t = e.startLineNumber,
              i = e.startColumn;
            return this.model.getWordAtPosition({ lineNumber: t, column: i });
          }
          _run() {
            let e = this.editor.getSelection();
            if (e.startLineNumber !== e.endLineNumber)
              return void this._stopAll();
            let t = e.startColumn,
              i = e.endColumn;
            const n = this._getWord();
            if (!n || n.startColumn > t || n.endColumn < i)
              return void this._stopAll();
            const r =
              this.workerRequest &&
              this.workerRequest.isValid(this.model, e, this._decorationIds);
            if (((this.lastCursorPositionChangeTime = new Date().getTime()), r))
              this.workerRequestCompleted &&
                -1 !== this.renderDecorationsTimer &&
                (clearTimeout(this.renderDecorationsTimer),
                (this.renderDecorationsTimer = -1),
                this._beginRenderDecorations());
            else {
              this._stopAll();
              let e = ++this.workerRequestTokenId;
              (this.workerRequestCompleted = !1),
                (this.workerRequest =
                  ((s = this.model),
                  (o = this.editor.getSelection()),
                  (l = this.editor.getOption(105)),
                  f.vH.has(s) ? new D(s, o, l) : new N(s, o, l))),
                this.workerRequest.result.then((t) => {
                  e === this.workerRequestTokenId &&
                    ((this.workerRequestCompleted = !0),
                    (this.workerRequestValue = t || []),
                    this._beginRenderDecorations());
                }, a.dL);
            }
            var s, o, l;
          }
          _beginRenderDecorations() {
            let e = new Date().getTime(),
              t = this.lastCursorPositionChangeTime + 250;
            e >= t
              ? ((this.renderDecorationsTimer = -1), this.renderDecorations())
              : (this.renderDecorationsTimer = setTimeout(() => {
                  this.renderDecorations();
                }, t - e));
          }
          renderDecorations() {
            this.renderDecorationsTimer = -1;
            let e = [];
            for (const t of this.workerRequestValue)
              t.range &&
                e.push({
                  range: t.range,
                  options: E._getDecorationOptions(t.kind),
                });
            (this._decorationIds = this.editor.deltaDecorations(
              this._decorationIds,
              e
            )),
              this._hasWordHighlights.set(this.hasDecorations());
          }
          static _getDecorationOptions(e) {
            return e === f.MY.Write
              ? this._WRITE_OPTIONS
              : e === f.MY.Text
              ? this._TEXT_OPTIONS
              : this._REGULAR_OPTIONS;
          }
          dispose() {
            this._stopAll(), this.toUnhook.dispose();
          }
        }
        (E._WRITE_OPTIONS = g.qx.register({
          stickiness: 1,
          className: 'wordHighlightStrong',
          overviewRuler: { color: (0, _.EN)(k), position: u.sh.Center },
        })),
          (E._TEXT_OPTIONS = g.qx.register({
            stickiness: 1,
            className: 'selectionHighlight',
            overviewRuler: { color: (0, _.EN)(m.SP), position: u.sh.Center },
          })),
          (E._REGULAR_OPTIONS = g.qx.register({
            stickiness: 1,
            className: 'wordHighlight',
            overviewRuler: { color: (0, _.EN)(S), position: u.sh.Center },
          }));
        let T = class e extends l.JT {
          constructor(e, t) {
            super(), (this.wordHighlighter = null);
            const i = () => {
              e.hasModel() && (this.wordHighlighter = new E(e, t));
            };
            this._register(
              e.onDidChangeModel((e) => {
                this.wordHighlighter &&
                  (this.wordHighlighter.dispose(),
                  (this.wordHighlighter = null)),
                  i();
              })
            ),
              i();
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          saveViewState() {
            return !(
              !this.wordHighlighter || !this.wordHighlighter.hasDecorations()
            );
          }
          moveNext() {
            this.wordHighlighter && this.wordHighlighter.moveNext();
          }
          moveBack() {
            this.wordHighlighter && this.wordHighlighter.moveBack();
          }
          restoreViewState(e) {
            this.wordHighlighter && e && this.wordHighlighter.restore();
          }
          dispose() {
            this.wordHighlighter &&
              (this.wordHighlighter.dispose(), (this.wordHighlighter = null)),
              super.dispose();
          }
        };
        var I, O;
        (T.ID = 'editor.contrib.wordHighlighter'),
          (T = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((I = 1),
              (O = p.i6),
              function (e, t) {
                O(e, t, I);
              }),
            ],
            T
          ));
        class A extends c.R6 {
          constructor(e, t) {
            super(t), (this._isNext = e);
          }
          run(e, t) {
            const i = T.get(t);
            i && (this._isNext ? i.moveNext() : i.moveBack());
          }
        }
        class R extends c.R6 {
          constructor() {
            super({
              id: 'editor.action.wordHighlight.trigger',
              label: n.N(
                'wordHighlight.trigger.label',
                'Trigger Symbol Highlight'
              ),
              alias: 'Trigger Symbol Highlight',
              precondition: x.toNegated(),
              kbOpts: { kbExpr: h.u.editorTextFocus, primary: 0, weight: 100 },
            });
          }
          run(e, t, i) {
            const n = T.get(t);
            n && n.restoreViewState(!0);
          }
        }
        (0, c._K)(T.ID, T),
          (0, c.Qr)(
            class extends A {
              constructor() {
                super(!0, {
                  id: 'editor.action.wordHighlight.next',
                  label: n.N(
                    'wordHighlight.next.label',
                    'Go to Next Symbol Highlight'
                  ),
                  alias: 'Go to Next Symbol Highlight',
                  precondition: x,
                  kbOpts: {
                    kbExpr: h.u.editorTextFocus,
                    primary: 65,
                    weight: 100,
                  },
                });
              }
            }
          ),
          (0, c.Qr)(
            class extends A {
              constructor() {
                super(!1, {
                  id: 'editor.action.wordHighlight.prev',
                  label: n.N(
                    'wordHighlight.previous.label',
                    'Go to Previous Symbol Highlight'
                  ),
                  alias: 'Go to Previous Symbol Highlight',
                  precondition: x,
                  kbOpts: {
                    kbExpr: h.u.editorTextFocus,
                    primary: 1089,
                    weight: 100,
                  },
                });
              }
            }
          ),
          (0, c.Qr)(R),
          (0, _.Ic)((e, t) => {
            const i = e.getColor(m.Rz);
            i &&
              (t.addRule(
                `.monaco-editor .focused .selectionHighlight { background-color: ${i}; }`
              ),
              t.addRule(
                `.monaco-editor .selectionHighlight { background-color: ${i.transparent(
                  0.5
                )}; }`
              ));
            const n = e.getColor(v);
            n &&
              t.addRule(
                `.monaco-editor .wordHighlight { background-color: ${n}; }`
              );
            const r = e.getColor(y);
            r &&
              t.addRule(
                `.monaco-editor .wordHighlightStrong { background-color: ${r}; }`
              );
            const s = e.getColor(m.g_);
            s &&
              t.addRule(
                `.monaco-editor .selectionHighlight { border: 1px ${
                  'hc' === e.type ? 'dotted' : 'solid'
                } ${s}; box-sizing: border-box; }`
              );
            const o = e.getColor(w);
            o &&
              t.addRule(
                `.monaco-editor .wordHighlight { border: 1px ${
                  'hc' === e.type ? 'dashed' : 'solid'
                } ${o}; box-sizing: border-box; }`
              );
            const a = e.getColor(C);
            a &&
              t.addRule(
                `.monaco-editor .wordHighlightStrong { border: 1px ${
                  'hc' === e.type ? 'dashed' : 'solid'
                } ${a}; box-sizing: border-box; }`
              );
          });
      },
      99453: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            MoveWordCommand: () => p,
            WordLeftCommand: () => m,
            WordRightCommand: () => _,
            CursorWordStartLeft: () => b,
            CursorWordEndLeft: () => v,
            CursorWordLeft: () => y,
            CursorWordStartLeftSelect: () => w,
            CursorWordEndLeftSelect: () => C,
            CursorWordLeftSelect: () => S,
            CursorWordAccessibilityLeft: () => k,
            CursorWordAccessibilityLeftSelect: () => x,
            CursorWordStartRight: () => L,
            CursorWordEndRight: () => M,
            CursorWordRight: () => D,
            CursorWordStartRightSelect: () => N,
            CursorWordEndRightSelect: () => E,
            CursorWordRightSelect: () => T,
            CursorWordAccessibilityRight: () => I,
            CursorWordAccessibilityRightSelect: () => O,
            DeleteWordCommand: () => A,
            DeleteWordLeftCommand: () => R,
            DeleteWordRightCommand: () => P,
            DeleteWordStartLeft: () => F,
            DeleteWordEndLeft: () => B,
            DeleteWordLeft: () => W,
            DeleteWordStartRight: () => Y,
            DeleteWordEndRight: () => H,
            DeleteWordRight: () => j,
          });
        var n = i(16830),
          r = i(61329),
          s = i(33181),
          o = i(5795),
          a = i(59410),
          l = i(50187),
          c = i(24314),
          d = i(3860),
          h = i(29102),
          u = i(31106),
          g = i(38819),
          f = i(64141);
        class p extends n._l {
          constructor(e) {
            super(e),
              (this._inSelectionMode = e.inSelectionMode),
              (this._wordNavigationType = e.wordNavigationType);
          }
          runEditorCommand(e, t, i) {
            if (!t.hasModel()) return;
            const n = (0, a.u)(t.getOption(105)),
              r = t.getModel(),
              o = t.getSelections().map((e) => {
                const t = new l.L(e.positionLineNumber, e.positionColumn),
                  i = this._move(n, r, t, this._wordNavigationType);
                return this._moveTo(e, i, this._inSelectionMode);
              });
            if (
              (r.pushStackElement(),
              t._getViewModel().setCursorStates(
                'moveWordCommand',
                0,
                o.map((e) => s.Vi.fromModelSelection(e))
              ),
              1 === o.length)
            ) {
              const e = new l.L(o[0].positionLineNumber, o[0].positionColumn);
              t.revealPosition(e, 0);
            }
          }
          _moveTo(e, t, i) {
            return i
              ? new d.Y(
                  e.selectionStartLineNumber,
                  e.selectionStartColumn,
                  t.lineNumber,
                  t.column
                )
              : new d.Y(t.lineNumber, t.column, t.lineNumber, t.column);
          }
        }
        class m extends p {
          _move(e, t, i, n) {
            return o.w.moveWordLeft(e, t, i, n);
          }
        }
        class _ extends p {
          _move(e, t, i, n) {
            return o.w.moveWordRight(e, t, i, n);
          }
        }
        class b extends m {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 0,
              id: 'cursorWordStartLeft',
              precondition: void 0,
            });
          }
        }
        class v extends m {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 2,
              id: 'cursorWordEndLeft',
              precondition: void 0,
            });
          }
        }
        class y extends m {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 1,
              id: 'cursorWordLeft',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.textInputFocus,
                primary: 2063,
                mac: { primary: 527 },
                weight: 100,
              },
            });
          }
        }
        class w extends m {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 0,
              id: 'cursorWordStartLeftSelect',
              precondition: void 0,
            });
          }
        }
        class C extends m {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 2,
              id: 'cursorWordEndLeftSelect',
              precondition: void 0,
            });
          }
        }
        class S extends m {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 1,
              id: 'cursorWordLeftSelect',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.textInputFocus,
                primary: 3087,
                mac: { primary: 1551 },
                weight: 100,
              },
            });
          }
        }
        class k extends m {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 3,
              id: 'cursorWordAccessibilityLeft',
              precondition: void 0,
              kbOpts: {
                kbExpr: g.Ao.and(h.u.textInputFocus, u.U),
                win: { primary: 2063 },
                weight: 101,
              },
            });
          }
          _move(e, t, i, n) {
            return super._move(
              (0, a.u)(f.BH.wordSeparators.defaultValue),
              t,
              i,
              n
            );
          }
        }
        class x extends m {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 3,
              id: 'cursorWordAccessibilityLeftSelect',
              precondition: void 0,
              kbOpts: {
                kbExpr: g.Ao.and(h.u.textInputFocus, u.U),
                win: { primary: 3087 },
                weight: 101,
              },
            });
          }
          _move(e, t, i, n) {
            return super._move(
              (0, a.u)(f.BH.wordSeparators.defaultValue),
              t,
              i,
              n
            );
          }
        }
        class L extends _ {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 0,
              id: 'cursorWordStartRight',
              precondition: void 0,
            });
          }
        }
        class M extends _ {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 2,
              id: 'cursorWordEndRight',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.textInputFocus,
                primary: 2065,
                mac: { primary: 529 },
                weight: 100,
              },
            });
          }
        }
        class D extends _ {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 2,
              id: 'cursorWordRight',
              precondition: void 0,
            });
          }
        }
        class N extends _ {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 0,
              id: 'cursorWordStartRightSelect',
              precondition: void 0,
            });
          }
        }
        class E extends _ {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 2,
              id: 'cursorWordEndRightSelect',
              precondition: void 0,
              kbOpts: {
                kbExpr: h.u.textInputFocus,
                primary: 3089,
                mac: { primary: 1553 },
                weight: 100,
              },
            });
          }
        }
        class T extends _ {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 2,
              id: 'cursorWordRightSelect',
              precondition: void 0,
            });
          }
        }
        class I extends _ {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 3,
              id: 'cursorWordAccessibilityRight',
              precondition: void 0,
              kbOpts: {
                kbExpr: g.Ao.and(h.u.textInputFocus, u.U),
                win: { primary: 2065 },
                weight: 101,
              },
            });
          }
          _move(e, t, i, n) {
            return super._move(
              (0, a.u)(f.BH.wordSeparators.defaultValue),
              t,
              i,
              n
            );
          }
        }
        class O extends _ {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 3,
              id: 'cursorWordAccessibilityRightSelect',
              precondition: void 0,
              kbOpts: {
                kbExpr: g.Ao.and(h.u.textInputFocus, u.U),
                win: { primary: 3089 },
                weight: 101,
              },
            });
          }
          _move(e, t, i, n) {
            return super._move(
              (0, a.u)(f.BH.wordSeparators.defaultValue),
              t,
              i,
              n
            );
          }
        }
        class A extends n._l {
          constructor(e) {
            super(e),
              (this._whitespaceHeuristics = e.whitespaceHeuristics),
              (this._wordNavigationType = e.wordNavigationType);
          }
          runEditorCommand(e, t, i) {
            if (!t.hasModel()) return;
            const n = (0, a.u)(t.getOption(105)),
              s = t.getModel(),
              o = t.getSelections().map((e) => {
                const t = this._delete(
                  n,
                  s,
                  e,
                  this._whitespaceHeuristics,
                  this._wordNavigationType
                );
                return new r.T4(t, '');
              });
            t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop();
          }
        }
        class R extends A {
          _delete(e, t, i, n, r) {
            return o.w.deleteWordLeft(e, t, i, n, r) || new c.e(1, 1, 1, 1);
          }
        }
        class P extends A {
          _delete(e, t, i, n, r) {
            let s = o.w.deleteWordRight(e, t, i, n, r);
            if (s) return s;
            const a = t.getLineCount(),
              l = t.getLineMaxColumn(a);
            return new c.e(a, l, a, l);
          }
        }
        class F extends R {
          constructor() {
            super({
              whitespaceHeuristics: !1,
              wordNavigationType: 0,
              id: 'deleteWordStartLeft',
              precondition: h.u.writable,
            });
          }
        }
        class B extends R {
          constructor() {
            super({
              whitespaceHeuristics: !1,
              wordNavigationType: 2,
              id: 'deleteWordEndLeft',
              precondition: h.u.writable,
            });
          }
        }
        class W extends R {
          constructor() {
            super({
              whitespaceHeuristics: !0,
              wordNavigationType: 0,
              id: 'deleteWordLeft',
              precondition: h.u.writable,
              kbOpts: {
                kbExpr: h.u.textInputFocus,
                primary: 2049,
                mac: { primary: 513 },
                weight: 100,
              },
            });
          }
        }
        class Y extends P {
          constructor() {
            super({
              whitespaceHeuristics: !1,
              wordNavigationType: 0,
              id: 'deleteWordStartRight',
              precondition: h.u.writable,
            });
          }
        }
        class H extends P {
          constructor() {
            super({
              whitespaceHeuristics: !1,
              wordNavigationType: 2,
              id: 'deleteWordEndRight',
              precondition: h.u.writable,
            });
          }
        }
        class j extends P {
          constructor() {
            super({
              whitespaceHeuristics: !0,
              wordNavigationType: 2,
              id: 'deleteWordRight',
              precondition: h.u.writable,
              kbOpts: {
                kbExpr: h.u.textInputFocus,
                primary: 2068,
                mac: { primary: 532 },
                weight: 100,
              },
            });
          }
        }
        (0, n.fK)(new b()),
          (0, n.fK)(new v()),
          (0, n.fK)(new y()),
          (0, n.fK)(new w()),
          (0, n.fK)(new C()),
          (0, n.fK)(new S()),
          (0, n.fK)(new L()),
          (0, n.fK)(new M()),
          (0, n.fK)(new D()),
          (0, n.fK)(new N()),
          (0, n.fK)(new E()),
          (0, n.fK)(new T()),
          (0, n.fK)(new k()),
          (0, n.fK)(new x()),
          (0, n.fK)(new I()),
          (0, n.fK)(new O()),
          (0, n.fK)(new F()),
          (0, n.fK)(new B()),
          (0, n.fK)(new W()),
          (0, n.fK)(new Y()),
          (0, n.fK)(new H()),
          (0, n.fK)(new j());
      },
      60661: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            DeleteWordPartLeft: () => c,
            DeleteWordPartRight: () => d,
            WordPartLeftCommand: () => h,
            CursorWordPartLeft: () => u,
            CursorWordPartLeftSelect: () => g,
            WordPartRightCommand: () => f,
            CursorWordPartRight: () => p,
            CursorWordPartRightSelect: () => m,
          });
        var n = i(16830),
          r = i(5795),
          s = i(24314),
          o = i(29102),
          a = i(99453),
          l = i(94565);
        class c extends a.DeleteWordCommand {
          constructor() {
            super({
              whitespaceHeuristics: !0,
              wordNavigationType: 0,
              id: 'deleteWordPartLeft',
              precondition: o.u.writable,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 0,
                mac: { primary: 769 },
                weight: 100,
              },
            });
          }
          _delete(e, t, i, n, o) {
            return r.L.deleteWordPartLeft(e, t, i, n) || new s.e(1, 1, 1, 1);
          }
        }
        class d extends a.DeleteWordCommand {
          constructor() {
            super({
              whitespaceHeuristics: !0,
              wordNavigationType: 2,
              id: 'deleteWordPartRight',
              precondition: o.u.writable,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 0,
                mac: { primary: 788 },
                weight: 100,
              },
            });
          }
          _delete(e, t, i, n, o) {
            let a = r.L.deleteWordPartRight(e, t, i, n);
            if (a) return a;
            const l = t.getLineCount(),
              c = t.getLineMaxColumn(l);
            return new s.e(l, c, l, c);
          }
        }
        class h extends a.MoveWordCommand {
          _move(e, t, i, n) {
            return r.L.moveWordPartLeft(e, t, i);
          }
        }
        class u extends h {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 0,
              id: 'cursorWordPartLeft',
              precondition: void 0,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 0,
                mac: { primary: 783 },
                weight: 100,
              },
            });
          }
        }
        l.P.registerCommandAlias(
          'cursorWordPartStartLeft',
          'cursorWordPartLeft'
        );
        class g extends h {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 0,
              id: 'cursorWordPartLeftSelect',
              precondition: void 0,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 0,
                mac: { primary: 1807 },
                weight: 100,
              },
            });
          }
        }
        l.P.registerCommandAlias(
          'cursorWordPartStartLeftSelect',
          'cursorWordPartLeftSelect'
        );
        class f extends a.MoveWordCommand {
          _move(e, t, i, n) {
            return r.L.moveWordPartRight(e, t, i);
          }
        }
        class p extends f {
          constructor() {
            super({
              inSelectionMode: !1,
              wordNavigationType: 2,
              id: 'cursorWordPartRight',
              precondition: void 0,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 0,
                mac: { primary: 785 },
                weight: 100,
              },
            });
          }
        }
        class m extends f {
          constructor() {
            super({
              inSelectionMode: !0,
              wordNavigationType: 2,
              id: 'cursorWordPartRightSelect',
              precondition: void 0,
              kbOpts: {
                kbExpr: o.u.textInputFocus,
                primary: 0,
                mac: { primary: 1809 },
                weight: 100,
              },
            });
          }
        }
        (0, n.fK)(new c()),
          (0, n.fK)(new d()),
          (0, n.fK)(new u()),
          (0, n.fK)(new g()),
          (0, n.fK)(new p()),
          (0, n.fK)(new m());
      },
      34935: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CancellationTokenSource: () => ea,
            Emitter: () => ta,
            KeyCode: () => ia,
            KeyMod: () => na,
            MarkerSeverity: () => la,
            MarkerTag: () => ca,
            Position: () => ra,
            Range: () => sa,
            Selection: () => oa,
            SelectionDirection: () => aa,
            Token: () => ha,
            Uri: () => da,
            editor: () => ua,
            languages: () => ga,
          });
        var n,
          r,
          s,
          o,
          a,
          l,
          c,
          d,
          h,
          u,
          g,
          f,
          p,
          m,
          _,
          b,
          v,
          y,
          w,
          C,
          S,
          k,
          x,
          L,
          M,
          D,
          N,
          E,
          T,
          I,
          O,
          A,
          R,
          P = i(64141),
          F = i(71050),
          B = i(4669),
          W = i(22258),
          Y = i(70666),
          H = i(50187),
          j = i(24314),
          V = i(3860),
          z = i(85600);
        !(function (e) {
          (e[(e.Unknown = 0)] = 'Unknown'),
            (e[(e.Disabled = 1)] = 'Disabled'),
            (e[(e.Enabled = 2)] = 'Enabled');
        })(n || (n = {})),
          (function (e) {
            (e[(e.KeepWhitespace = 1)] = 'KeepWhitespace'),
              (e[(e.InsertAsSnippet = 4)] = 'InsertAsSnippet');
          })(r || (r = {})),
          (function (e) {
            (e[(e.Method = 0)] = 'Method'),
              (e[(e.Function = 1)] = 'Function'),
              (e[(e.Constructor = 2)] = 'Constructor'),
              (e[(e.Field = 3)] = 'Field'),
              (e[(e.Variable = 4)] = 'Variable'),
              (e[(e.Class = 5)] = 'Class'),
              (e[(e.Struct = 6)] = 'Struct'),
              (e[(e.Interface = 7)] = 'Interface'),
              (e[(e.Module = 8)] = 'Module'),
              (e[(e.Property = 9)] = 'Property'),
              (e[(e.Event = 10)] = 'Event'),
              (e[(e.Operator = 11)] = 'Operator'),
              (e[(e.Unit = 12)] = 'Unit'),
              (e[(e.Value = 13)] = 'Value'),
              (e[(e.Constant = 14)] = 'Constant'),
              (e[(e.Enum = 15)] = 'Enum'),
              (e[(e.EnumMember = 16)] = 'EnumMember'),
              (e[(e.Keyword = 17)] = 'Keyword'),
              (e[(e.Text = 18)] = 'Text'),
              (e[(e.Color = 19)] = 'Color'),
              (e[(e.File = 20)] = 'File'),
              (e[(e.Reference = 21)] = 'Reference'),
              (e[(e.Customcolor = 22)] = 'Customcolor'),
              (e[(e.Folder = 23)] = 'Folder'),
              (e[(e.TypeParameter = 24)] = 'TypeParameter'),
              (e[(e.User = 25)] = 'User'),
              (e[(e.Issue = 26)] = 'Issue'),
              (e[(e.Snippet = 27)] = 'Snippet');
          })(s || (s = {})),
          (function (e) {
            e[(e.Deprecated = 1)] = 'Deprecated';
          })(o || (o = {})),
          (function (e) {
            (e[(e.Invoke = 0)] = 'Invoke'),
              (e[(e.TriggerCharacter = 1)] = 'TriggerCharacter'),
              (e[(e.TriggerForIncompleteCompletions = 2)] =
                'TriggerForIncompleteCompletions');
          })(a || (a = {})),
          (function (e) {
            (e[(e.EXACT = 0)] = 'EXACT'),
              (e[(e.ABOVE = 1)] = 'ABOVE'),
              (e[(e.BELOW = 2)] = 'BELOW');
          })(l || (l = {})),
          (function (e) {
            (e[(e.NotSet = 0)] = 'NotSet'),
              (e[(e.ContentFlush = 1)] = 'ContentFlush'),
              (e[(e.RecoverFromMarkers = 2)] = 'RecoverFromMarkers'),
              (e[(e.Explicit = 3)] = 'Explicit'),
              (e[(e.Paste = 4)] = 'Paste'),
              (e[(e.Undo = 5)] = 'Undo'),
              (e[(e.Redo = 6)] = 'Redo');
          })(c || (c = {})),
          (function (e) {
            (e[(e.LF = 1)] = 'LF'), (e[(e.CRLF = 2)] = 'CRLF');
          })(d || (d = {})),
          (function (e) {
            (e[(e.Text = 0)] = 'Text'),
              (e[(e.Read = 1)] = 'Read'),
              (e[(e.Write = 2)] = 'Write');
          })(h || (h = {})),
          (function (e) {
            (e[(e.None = 0)] = 'None'),
              (e[(e.Keep = 1)] = 'Keep'),
              (e[(e.Brackets = 2)] = 'Brackets'),
              (e[(e.Advanced = 3)] = 'Advanced'),
              (e[(e.Full = 4)] = 'Full');
          })(u || (u = {})),
          (function (e) {
            (e[(e.acceptSuggestionOnCommitCharacter = 0)] =
              'acceptSuggestionOnCommitCharacter'),
              (e[(e.acceptSuggestionOnEnter = 1)] = 'acceptSuggestionOnEnter'),
              (e[(e.accessibilitySupport = 2)] = 'accessibilitySupport'),
              (e[(e.accessibilityPageSize = 3)] = 'accessibilityPageSize'),
              (e[(e.ariaLabel = 4)] = 'ariaLabel'),
              (e[(e.autoClosingBrackets = 5)] = 'autoClosingBrackets'),
              (e[(e.autoClosingOvertype = 6)] = 'autoClosingOvertype'),
              (e[(e.autoClosingQuotes = 7)] = 'autoClosingQuotes'),
              (e[(e.autoIndent = 8)] = 'autoIndent'),
              (e[(e.automaticLayout = 9)] = 'automaticLayout'),
              (e[(e.autoSurround = 10)] = 'autoSurround'),
              (e[(e.codeLens = 11)] = 'codeLens'),
              (e[(e.colorDecorators = 12)] = 'colorDecorators'),
              (e[(e.columnSelection = 13)] = 'columnSelection'),
              (e[(e.comments = 14)] = 'comments'),
              (e[(e.contextmenu = 15)] = 'contextmenu'),
              (e[(e.copyWithSyntaxHighlighting = 16)] =
                'copyWithSyntaxHighlighting'),
              (e[(e.cursorBlinking = 17)] = 'cursorBlinking'),
              (e[(e.cursorSmoothCaretAnimation = 18)] =
                'cursorSmoothCaretAnimation'),
              (e[(e.cursorStyle = 19)] = 'cursorStyle'),
              (e[(e.cursorSurroundingLines = 20)] = 'cursorSurroundingLines'),
              (e[(e.cursorSurroundingLinesStyle = 21)] =
                'cursorSurroundingLinesStyle'),
              (e[(e.cursorWidth = 22)] = 'cursorWidth'),
              (e[(e.disableLayerHinting = 23)] = 'disableLayerHinting'),
              (e[(e.disableMonospaceOptimizations = 24)] =
                'disableMonospaceOptimizations'),
              (e[(e.dragAndDrop = 25)] = 'dragAndDrop'),
              (e[(e.emptySelectionClipboard = 26)] = 'emptySelectionClipboard'),
              (e[(e.extraEditorClassName = 27)] = 'extraEditorClassName'),
              (e[(e.fastScrollSensitivity = 28)] = 'fastScrollSensitivity'),
              (e[(e.find = 29)] = 'find'),
              (e[(e.fixedOverflowWidgets = 30)] = 'fixedOverflowWidgets'),
              (e[(e.folding = 31)] = 'folding'),
              (e[(e.foldingStrategy = 32)] = 'foldingStrategy'),
              (e[(e.foldingHighlight = 33)] = 'foldingHighlight'),
              (e[(e.unfoldOnClickAfterEndOfLine = 34)] =
                'unfoldOnClickAfterEndOfLine'),
              (e[(e.fontFamily = 35)] = 'fontFamily'),
              (e[(e.fontInfo = 36)] = 'fontInfo'),
              (e[(e.fontLigatures = 37)] = 'fontLigatures'),
              (e[(e.fontSize = 38)] = 'fontSize'),
              (e[(e.fontWeight = 39)] = 'fontWeight'),
              (e[(e.formatOnPaste = 40)] = 'formatOnPaste'),
              (e[(e.formatOnType = 41)] = 'formatOnType'),
              (e[(e.glyphMargin = 42)] = 'glyphMargin'),
              (e[(e.gotoLocation = 43)] = 'gotoLocation'),
              (e[(e.hideCursorInOverviewRuler = 44)] =
                'hideCursorInOverviewRuler'),
              (e[(e.highlightActiveIndentGuide = 45)] =
                'highlightActiveIndentGuide'),
              (e[(e.hover = 46)] = 'hover'),
              (e[(e.inDiffEditor = 47)] = 'inDiffEditor'),
              (e[(e.letterSpacing = 48)] = 'letterSpacing'),
              (e[(e.lightbulb = 49)] = 'lightbulb'),
              (e[(e.lineDecorationsWidth = 50)] = 'lineDecorationsWidth'),
              (e[(e.lineHeight = 51)] = 'lineHeight'),
              (e[(e.lineNumbers = 52)] = 'lineNumbers'),
              (e[(e.lineNumbersMinChars = 53)] = 'lineNumbersMinChars'),
              (e[(e.links = 54)] = 'links'),
              (e[(e.matchBrackets = 55)] = 'matchBrackets'),
              (e[(e.minimap = 56)] = 'minimap'),
              (e[(e.mouseStyle = 57)] = 'mouseStyle'),
              (e[(e.mouseWheelScrollSensitivity = 58)] =
                'mouseWheelScrollSensitivity'),
              (e[(e.mouseWheelZoom = 59)] = 'mouseWheelZoom'),
              (e[(e.multiCursorMergeOverlapping = 60)] =
                'multiCursorMergeOverlapping'),
              (e[(e.multiCursorModifier = 61)] = 'multiCursorModifier'),
              (e[(e.multiCursorPaste = 62)] = 'multiCursorPaste'),
              (e[(e.occurrencesHighlight = 63)] = 'occurrencesHighlight'),
              (e[(e.overviewRulerBorder = 64)] = 'overviewRulerBorder'),
              (e[(e.overviewRulerLanes = 65)] = 'overviewRulerLanes'),
              (e[(e.padding = 66)] = 'padding'),
              (e[(e.parameterHints = 67)] = 'parameterHints'),
              (e[(e.peekWidgetDefaultFocus = 68)] = 'peekWidgetDefaultFocus'),
              (e[(e.definitionLinkOpensInPeek = 69)] =
                'definitionLinkOpensInPeek'),
              (e[(e.quickSuggestions = 70)] = 'quickSuggestions'),
              (e[(e.quickSuggestionsDelay = 71)] = 'quickSuggestionsDelay'),
              (e[(e.readOnly = 72)] = 'readOnly'),
              (e[(e.renameOnType = 73)] = 'renameOnType'),
              (e[(e.renderControlCharacters = 74)] = 'renderControlCharacters'),
              (e[(e.renderIndentGuides = 75)] = 'renderIndentGuides'),
              (e[(e.renderFinalNewline = 76)] = 'renderFinalNewline'),
              (e[(e.renderLineHighlight = 77)] = 'renderLineHighlight'),
              (e[(e.renderLineHighlightOnlyWhenFocus = 78)] =
                'renderLineHighlightOnlyWhenFocus'),
              (e[(e.renderValidationDecorations = 79)] =
                'renderValidationDecorations'),
              (e[(e.renderWhitespace = 80)] = 'renderWhitespace'),
              (e[(e.revealHorizontalRightPadding = 81)] =
                'revealHorizontalRightPadding'),
              (e[(e.roundedSelection = 82)] = 'roundedSelection'),
              (e[(e.rulers = 83)] = 'rulers'),
              (e[(e.scrollbar = 84)] = 'scrollbar'),
              (e[(e.scrollBeyondLastColumn = 85)] = 'scrollBeyondLastColumn'),
              (e[(e.scrollBeyondLastLine = 86)] = 'scrollBeyondLastLine'),
              (e[(e.scrollPredominantAxis = 87)] = 'scrollPredominantAxis'),
              (e[(e.selectionClipboard = 88)] = 'selectionClipboard'),
              (e[(e.selectionHighlight = 89)] = 'selectionHighlight'),
              (e[(e.selectOnLineNumbers = 90)] = 'selectOnLineNumbers'),
              (e[(e.showFoldingControls = 91)] = 'showFoldingControls'),
              (e[(e.showUnused = 92)] = 'showUnused'),
              (e[(e.snippetSuggestions = 93)] = 'snippetSuggestions'),
              (e[(e.smoothScrolling = 94)] = 'smoothScrolling'),
              (e[(e.stopRenderingLineAfter = 95)] = 'stopRenderingLineAfter'),
              (e[(e.suggest = 96)] = 'suggest'),
              (e[(e.suggestFontSize = 97)] = 'suggestFontSize'),
              (e[(e.suggestLineHeight = 98)] = 'suggestLineHeight'),
              (e[(e.suggestOnTriggerCharacters = 99)] =
                'suggestOnTriggerCharacters'),
              (e[(e.suggestSelection = 100)] = 'suggestSelection'),
              (e[(e.tabCompletion = 101)] = 'tabCompletion'),
              (e[(e.tabIndex = 102)] = 'tabIndex'),
              (e[(e.unusualLineTerminators = 103)] = 'unusualLineTerminators'),
              (e[(e.useTabStops = 104)] = 'useTabStops'),
              (e[(e.wordSeparators = 105)] = 'wordSeparators'),
              (e[(e.wordWrap = 106)] = 'wordWrap'),
              (e[(e.wordWrapBreakAfterCharacters = 107)] =
                'wordWrapBreakAfterCharacters'),
              (e[(e.wordWrapBreakBeforeCharacters = 108)] =
                'wordWrapBreakBeforeCharacters'),
              (e[(e.wordWrapColumn = 109)] = 'wordWrapColumn'),
              (e[(e.wordWrapMinified = 110)] = 'wordWrapMinified'),
              (e[(e.wrappingIndent = 111)] = 'wrappingIndent'),
              (e[(e.wrappingStrategy = 112)] = 'wrappingStrategy'),
              (e[(e.showDeprecated = 113)] = 'showDeprecated'),
              (e[(e.editorClassName = 114)] = 'editorClassName'),
              (e[(e.pixelRatio = 115)] = 'pixelRatio'),
              (e[(e.tabFocusMode = 116)] = 'tabFocusMode'),
              (e[(e.layoutInfo = 117)] = 'layoutInfo'),
              (e[(e.wrappingInfo = 118)] = 'wrappingInfo');
          })(g || (g = {})),
          (function (e) {
            (e[(e.TextDefined = 0)] = 'TextDefined'),
              (e[(e.LF = 1)] = 'LF'),
              (e[(e.CRLF = 2)] = 'CRLF');
          })(f || (f = {})),
          (function (e) {
            (e[(e.LF = 0)] = 'LF'), (e[(e.CRLF = 1)] = 'CRLF');
          })(p || (p = {})),
          (function (e) {
            (e[(e.None = 0)] = 'None'),
              (e[(e.Indent = 1)] = 'Indent'),
              (e[(e.IndentOutdent = 2)] = 'IndentOutdent'),
              (e[(e.Outdent = 3)] = 'Outdent');
          })(m || (m = {})),
          (function (e) {
            (e[(e.Unknown = 0)] = 'Unknown'),
              (e[(e.Backspace = 1)] = 'Backspace'),
              (e[(e.Tab = 2)] = 'Tab'),
              (e[(e.Enter = 3)] = 'Enter'),
              (e[(e.Shift = 4)] = 'Shift'),
              (e[(e.Ctrl = 5)] = 'Ctrl'),
              (e[(e.Alt = 6)] = 'Alt'),
              (e[(e.PauseBreak = 7)] = 'PauseBreak'),
              (e[(e.CapsLock = 8)] = 'CapsLock'),
              (e[(e.Escape = 9)] = 'Escape'),
              (e[(e.Space = 10)] = 'Space'),
              (e[(e.PageUp = 11)] = 'PageUp'),
              (e[(e.PageDown = 12)] = 'PageDown'),
              (e[(e.End = 13)] = 'End'),
              (e[(e.Home = 14)] = 'Home'),
              (e[(e.LeftArrow = 15)] = 'LeftArrow'),
              (e[(e.UpArrow = 16)] = 'UpArrow'),
              (e[(e.RightArrow = 17)] = 'RightArrow'),
              (e[(e.DownArrow = 18)] = 'DownArrow'),
              (e[(e.Insert = 19)] = 'Insert'),
              (e[(e.Delete = 20)] = 'Delete'),
              (e[(e.KEY_0 = 21)] = 'KEY_0'),
              (e[(e.KEY_1 = 22)] = 'KEY_1'),
              (e[(e.KEY_2 = 23)] = 'KEY_2'),
              (e[(e.KEY_3 = 24)] = 'KEY_3'),
              (e[(e.KEY_4 = 25)] = 'KEY_4'),
              (e[(e.KEY_5 = 26)] = 'KEY_5'),
              (e[(e.KEY_6 = 27)] = 'KEY_6'),
              (e[(e.KEY_7 = 28)] = 'KEY_7'),
              (e[(e.KEY_8 = 29)] = 'KEY_8'),
              (e[(e.KEY_9 = 30)] = 'KEY_9'),
              (e[(e.KEY_A = 31)] = 'KEY_A'),
              (e[(e.KEY_B = 32)] = 'KEY_B'),
              (e[(e.KEY_C = 33)] = 'KEY_C'),
              (e[(e.KEY_D = 34)] = 'KEY_D'),
              (e[(e.KEY_E = 35)] = 'KEY_E'),
              (e[(e.KEY_F = 36)] = 'KEY_F'),
              (e[(e.KEY_G = 37)] = 'KEY_G'),
              (e[(e.KEY_H = 38)] = 'KEY_H'),
              (e[(e.KEY_I = 39)] = 'KEY_I'),
              (e[(e.KEY_J = 40)] = 'KEY_J'),
              (e[(e.KEY_K = 41)] = 'KEY_K'),
              (e[(e.KEY_L = 42)] = 'KEY_L'),
              (e[(e.KEY_M = 43)] = 'KEY_M'),
              (e[(e.KEY_N = 44)] = 'KEY_N'),
              (e[(e.KEY_O = 45)] = 'KEY_O'),
              (e[(e.KEY_P = 46)] = 'KEY_P'),
              (e[(e.KEY_Q = 47)] = 'KEY_Q'),
              (e[(e.KEY_R = 48)] = 'KEY_R'),
              (e[(e.KEY_S = 49)] = 'KEY_S'),
              (e[(e.KEY_T = 50)] = 'KEY_T'),
              (e[(e.KEY_U = 51)] = 'KEY_U'),
              (e[(e.KEY_V = 52)] = 'KEY_V'),
              (e[(e.KEY_W = 53)] = 'KEY_W'),
              (e[(e.KEY_X = 54)] = 'KEY_X'),
              (e[(e.KEY_Y = 55)] = 'KEY_Y'),
              (e[(e.KEY_Z = 56)] = 'KEY_Z'),
              (e[(e.Meta = 57)] = 'Meta'),
              (e[(e.ContextMenu = 58)] = 'ContextMenu'),
              (e[(e.F1 = 59)] = 'F1'),
              (e[(e.F2 = 60)] = 'F2'),
              (e[(e.F3 = 61)] = 'F3'),
              (e[(e.F4 = 62)] = 'F4'),
              (e[(e.F5 = 63)] = 'F5'),
              (e[(e.F6 = 64)] = 'F6'),
              (e[(e.F7 = 65)] = 'F7'),
              (e[(e.F8 = 66)] = 'F8'),
              (e[(e.F9 = 67)] = 'F9'),
              (e[(e.F10 = 68)] = 'F10'),
              (e[(e.F11 = 69)] = 'F11'),
              (e[(e.F12 = 70)] = 'F12'),
              (e[(e.F13 = 71)] = 'F13'),
              (e[(e.F14 = 72)] = 'F14'),
              (e[(e.F15 = 73)] = 'F15'),
              (e[(e.F16 = 74)] = 'F16'),
              (e[(e.F17 = 75)] = 'F17'),
              (e[(e.F18 = 76)] = 'F18'),
              (e[(e.F19 = 77)] = 'F19'),
              (e[(e.NumLock = 78)] = 'NumLock'),
              (e[(e.ScrollLock = 79)] = 'ScrollLock'),
              (e[(e.US_SEMICOLON = 80)] = 'US_SEMICOLON'),
              (e[(e.US_EQUAL = 81)] = 'US_EQUAL'),
              (e[(e.US_COMMA = 82)] = 'US_COMMA'),
              (e[(e.US_MINUS = 83)] = 'US_MINUS'),
              (e[(e.US_DOT = 84)] = 'US_DOT'),
              (e[(e.US_SLASH = 85)] = 'US_SLASH'),
              (e[(e.US_BACKTICK = 86)] = 'US_BACKTICK'),
              (e[(e.US_OPEN_SQUARE_BRACKET = 87)] = 'US_OPEN_SQUARE_BRACKET'),
              (e[(e.US_BACKSLASH = 88)] = 'US_BACKSLASH'),
              (e[(e.US_CLOSE_SQUARE_BRACKET = 89)] = 'US_CLOSE_SQUARE_BRACKET'),
              (e[(e.US_QUOTE = 90)] = 'US_QUOTE'),
              (e[(e.OEM_8 = 91)] = 'OEM_8'),
              (e[(e.OEM_102 = 92)] = 'OEM_102'),
              (e[(e.NUMPAD_0 = 93)] = 'NUMPAD_0'),
              (e[(e.NUMPAD_1 = 94)] = 'NUMPAD_1'),
              (e[(e.NUMPAD_2 = 95)] = 'NUMPAD_2'),
              (e[(e.NUMPAD_3 = 96)] = 'NUMPAD_3'),
              (e[(e.NUMPAD_4 = 97)] = 'NUMPAD_4'),
              (e[(e.NUMPAD_5 = 98)] = 'NUMPAD_5'),
              (e[(e.NUMPAD_6 = 99)] = 'NUMPAD_6'),
              (e[(e.NUMPAD_7 = 100)] = 'NUMPAD_7'),
              (e[(e.NUMPAD_8 = 101)] = 'NUMPAD_8'),
              (e[(e.NUMPAD_9 = 102)] = 'NUMPAD_9'),
              (e[(e.NUMPAD_MULTIPLY = 103)] = 'NUMPAD_MULTIPLY'),
              (e[(e.NUMPAD_ADD = 104)] = 'NUMPAD_ADD'),
              (e[(e.NUMPAD_SEPARATOR = 105)] = 'NUMPAD_SEPARATOR'),
              (e[(e.NUMPAD_SUBTRACT = 106)] = 'NUMPAD_SUBTRACT'),
              (e[(e.NUMPAD_DECIMAL = 107)] = 'NUMPAD_DECIMAL'),
              (e[(e.NUMPAD_DIVIDE = 108)] = 'NUMPAD_DIVIDE'),
              (e[(e.KEY_IN_COMPOSITION = 109)] = 'KEY_IN_COMPOSITION'),
              (e[(e.ABNT_C1 = 110)] = 'ABNT_C1'),
              (e[(e.ABNT_C2 = 111)] = 'ABNT_C2'),
              (e[(e.MAX_VALUE = 112)] = 'MAX_VALUE');
          })(_ || (_ = {})),
          (function (e) {
            (e[(e.Hint = 1)] = 'Hint'),
              (e[(e.Info = 2)] = 'Info'),
              (e[(e.Warning = 4)] = 'Warning'),
              (e[(e.Error = 8)] = 'Error');
          })(b || (b = {})),
          (function (e) {
            (e[(e.Unnecessary = 1)] = 'Unnecessary'),
              (e[(e.Deprecated = 2)] = 'Deprecated');
          })(v || (v = {})),
          (function (e) {
            (e[(e.Inline = 1)] = 'Inline'), (e[(e.Gutter = 2)] = 'Gutter');
          })(y || (y = {})),
          (function (e) {
            (e[(e.UNKNOWN = 0)] = 'UNKNOWN'),
              (e[(e.TEXTAREA = 1)] = 'TEXTAREA'),
              (e[(e.GUTTER_GLYPH_MARGIN = 2)] = 'GUTTER_GLYPH_MARGIN'),
              (e[(e.GUTTER_LINE_NUMBERS = 3)] = 'GUTTER_LINE_NUMBERS'),
              (e[(e.GUTTER_LINE_DECORATIONS = 4)] = 'GUTTER_LINE_DECORATIONS'),
              (e[(e.GUTTER_VIEW_ZONE = 5)] = 'GUTTER_VIEW_ZONE'),
              (e[(e.CONTENT_TEXT = 6)] = 'CONTENT_TEXT'),
              (e[(e.CONTENT_EMPTY = 7)] = 'CONTENT_EMPTY'),
              (e[(e.CONTENT_VIEW_ZONE = 8)] = 'CONTENT_VIEW_ZONE'),
              (e[(e.CONTENT_WIDGET = 9)] = 'CONTENT_WIDGET'),
              (e[(e.OVERVIEW_RULER = 10)] = 'OVERVIEW_RULER'),
              (e[(e.SCROLLBAR = 11)] = 'SCROLLBAR'),
              (e[(e.OVERLAY_WIDGET = 12)] = 'OVERLAY_WIDGET'),
              (e[(e.OUTSIDE_EDITOR = 13)] = 'OUTSIDE_EDITOR');
          })(w || (w = {})),
          (function (e) {
            (e[(e.TOP_RIGHT_CORNER = 0)] = 'TOP_RIGHT_CORNER'),
              (e[(e.BOTTOM_RIGHT_CORNER = 1)] = 'BOTTOM_RIGHT_CORNER'),
              (e[(e.TOP_CENTER = 2)] = 'TOP_CENTER');
          })(C || (C = {})),
          (function (e) {
            (e[(e.Left = 1)] = 'Left'),
              (e[(e.Center = 2)] = 'Center'),
              (e[(e.Right = 4)] = 'Right'),
              (e[(e.Full = 7)] = 'Full');
          })(S || (S = {})),
          (function (e) {
            (e[(e.Off = 0)] = 'Off'),
              (e[(e.On = 1)] = 'On'),
              (e[(e.Relative = 2)] = 'Relative'),
              (e[(e.Interval = 3)] = 'Interval'),
              (e[(e.Custom = 4)] = 'Custom');
          })(k || (k = {})),
          (function (e) {
            (e[(e.None = 0)] = 'None'),
              (e[(e.Text = 1)] = 'Text'),
              (e[(e.Blocks = 2)] = 'Blocks');
          })(x || (x = {})),
          (function (e) {
            (e[(e.Smooth = 0)] = 'Smooth'),
              (e[(e.Immediate = 1)] = 'Immediate');
          })(L || (L = {})),
          (function (e) {
            (e[(e.Auto = 1)] = 'Auto'),
              (e[(e.Hidden = 2)] = 'Hidden'),
              (e[(e.Visible = 3)] = 'Visible');
          })(M || (M = {})),
          (function (e) {
            (e[(e.LTR = 0)] = 'LTR'), (e[(e.RTL = 1)] = 'RTL');
          })(D || (D = {})),
          (function (e) {
            (e[(e.Invoke = 1)] = 'Invoke'),
              (e[(e.TriggerCharacter = 2)] = 'TriggerCharacter'),
              (e[(e.ContentChange = 3)] = 'ContentChange');
          })(N || (N = {})),
          (function (e) {
            (e[(e.File = 0)] = 'File'),
              (e[(e.Module = 1)] = 'Module'),
              (e[(e.Namespace = 2)] = 'Namespace'),
              (e[(e.Package = 3)] = 'Package'),
              (e[(e.Class = 4)] = 'Class'),
              (e[(e.Method = 5)] = 'Method'),
              (e[(e.Property = 6)] = 'Property'),
              (e[(e.Field = 7)] = 'Field'),
              (e[(e.Constructor = 8)] = 'Constructor'),
              (e[(e.Enum = 9)] = 'Enum'),
              (e[(e.Interface = 10)] = 'Interface'),
              (e[(e.Function = 11)] = 'Function'),
              (e[(e.Variable = 12)] = 'Variable'),
              (e[(e.Constant = 13)] = 'Constant'),
              (e[(e.String = 14)] = 'String'),
              (e[(e.Number = 15)] = 'Number'),
              (e[(e.Boolean = 16)] = 'Boolean'),
              (e[(e.Array = 17)] = 'Array'),
              (e[(e.Object = 18)] = 'Object'),
              (e[(e.Key = 19)] = 'Key'),
              (e[(e.Null = 20)] = 'Null'),
              (e[(e.EnumMember = 21)] = 'EnumMember'),
              (e[(e.Struct = 22)] = 'Struct'),
              (e[(e.Event = 23)] = 'Event'),
              (e[(e.Operator = 24)] = 'Operator'),
              (e[(e.TypeParameter = 25)] = 'TypeParameter');
          })(E || (E = {})),
          (function (e) {
            e[(e.Deprecated = 1)] = 'Deprecated';
          })(T || (T = {})),
          (function (e) {
            (e[(e.Hidden = 0)] = 'Hidden'),
              (e[(e.Blink = 1)] = 'Blink'),
              (e[(e.Smooth = 2)] = 'Smooth'),
              (e[(e.Phase = 3)] = 'Phase'),
              (e[(e.Expand = 4)] = 'Expand'),
              (e[(e.Solid = 5)] = 'Solid');
          })(I || (I = {})),
          (function (e) {
            (e[(e.Line = 1)] = 'Line'),
              (e[(e.Block = 2)] = 'Block'),
              (e[(e.Underline = 3)] = 'Underline'),
              (e[(e.LineThin = 4)] = 'LineThin'),
              (e[(e.BlockOutline = 5)] = 'BlockOutline'),
              (e[(e.UnderlineThin = 6)] = 'UnderlineThin');
          })(O || (O = {})),
          (function (e) {
            (e[(e.AlwaysGrowsWhenTypingAtEdges = 0)] =
              'AlwaysGrowsWhenTypingAtEdges'),
              (e[(e.NeverGrowsWhenTypingAtEdges = 1)] =
                'NeverGrowsWhenTypingAtEdges'),
              (e[(e.GrowsOnlyWhenTypingBefore = 2)] =
                'GrowsOnlyWhenTypingBefore'),
              (e[(e.GrowsOnlyWhenTypingAfter = 3)] =
                'GrowsOnlyWhenTypingAfter');
          })(A || (A = {})),
          (function (e) {
            (e[(e.None = 0)] = 'None'),
              (e[(e.Same = 1)] = 'Same'),
              (e[(e.Indent = 2)] = 'Indent'),
              (e[(e.DeepIndent = 3)] = 'DeepIndent');
          })(R || (R = {}));
        class U {
          static chord(e, t) {
            return (0, W.gx)(e, t);
          }
        }
        function $() {
          return {
            editor: void 0,
            languages: void 0,
            CancellationTokenSource: F.A,
            Emitter: B.Q5,
            KeyCode: _,
            KeyMod: U,
            Position: H.L,
            Range: j.e,
            Selection: V.Y,
            SelectionDirection: D,
            MarkerSeverity: b,
            MarkerTag: v,
            Uri: Y.o,
            Token: z.WU,
          };
        }
        (U.CtrlCmd = 2048), (U.Shift = 1024), (U.Alt = 512), (U.WinCtrl = 256);
        var K,
          q = i(11640),
          G = i(65321),
          Z = i(91741),
          J = i(23897),
          Q = i(66663),
          X = i(95935),
          ee = i(94565),
          te = i(50988);
        !(function (e) {
          (e[(e.API = 0)] = 'API'), (e[(e.USER = 1)] = 'USER');
        })(K || (K = {}));
        var ie = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          ne = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          re = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        let se = class {
          constructor(e) {
            this._commandService = e;
          }
          open(e) {
            return re(this, void 0, void 0, function* () {
              if (!(0, te.xn)(e, Q.l.command)) return !1;
              'string' == typeof e && (e = Y.o.parse(e));
              let t = [];
              try {
                t = (0, J.Q)(decodeURIComponent(e.query));
              } catch (i) {
                try {
                  t = (0, J.Q)(e.query);
                } catch (e) {}
              }
              return (
                Array.isArray(t) || (t = [t]),
                yield this._commandService.executeCommand(e.path, ...t),
                !0
              );
            });
          }
        };
        se = ie([ne(0, ee.H)], se);
        let oe = class {
          constructor(e) {
            this._editorService = e;
          }
          open(e, t) {
            return re(this, void 0, void 0, function* () {
              let i;
              'string' == typeof e && (e = Y.o.parse(e));
              const n = /^L?(\d+)(?:,(\d+))?/.exec(e.fragment);
              return (
                n &&
                  ((i = {
                    startLineNumber: parseInt(n[1]),
                    startColumn: n[2] ? parseInt(n[2]) : 1,
                  }),
                  (e = e.with({ fragment: '' }))),
                e.scheme === Q.l.file && (e = (0, X.AH)(e)),
                yield this._editorService.openCodeEditor(
                  {
                    resource: e,
                    options: {
                      selection: i,
                      context: (null == t ? void 0 : t.fromUserGesture)
                        ? K.USER
                        : K.API,
                    },
                  },
                  this._editorService.getFocusedCodeEditor(),
                  null == t ? void 0 : t.openToSide
                ),
                !0
              );
            });
          }
        };
        oe = ie([ne(0, q.$)], oe);
        let ae = class {
          constructor(e, t) {
            (this._openers = new Z.S()),
              (this._validators = new Z.S()),
              (this._resolvers = new Z.S()),
              (this._externalOpener = {
                openExternal: (e) => (
                  (0, te.xn)(e, Q.l.http) || (0, te.xn)(e, Q.l.https)
                    ? G.V3(e)
                    : (window.location.href = e),
                  Promise.resolve(!0)
                ),
              }),
              this._openers.push({
                open: (e, t) =>
                  re(this, void 0, void 0, function* () {
                    return (
                      !!(
                        (null == t ? void 0 : t.openExternal) ||
                        (0, te.xn)(e, Q.l.mailto) ||
                        (0, te.xn)(e, Q.l.http) ||
                        (0, te.xn)(e, Q.l.https)
                      ) && (yield this._doOpenExternal(e, t), !0)
                    );
                  }),
              }),
              this._openers.push(new se(t)),
              this._openers.push(new oe(e));
          }
          open(e, t) {
            return re(this, void 0, void 0, function* () {
              for (const t of this._validators.toArray())
                if (!(yield t.shouldOpen(e))) return !1;
              for (const i of this._openers.toArray())
                if (yield i.open(e, t)) return !0;
              return !1;
            });
          }
          resolveExternalUri(e, t) {
            return re(this, void 0, void 0, function* () {
              for (const i of this._resolvers.toArray()) {
                const n = yield i.resolveExternalUri(e, t);
                if (n) return n;
              }
              return { resolved: e, dispose: () => {} };
            });
          }
          _doOpenExternal(e, t) {
            return re(this, void 0, void 0, function* () {
              const i = 'string' == typeof e ? Y.o.parse(e) : e,
                { resolved: n } = yield this.resolveExternalUri(i, t);
              return 'string' == typeof e && i.toString() === n.toString()
                ? this._externalOpener.openExternal(e)
                : this._externalOpener.openExternal(encodeURI(n.toString(!0)));
            });
          }
          dispose() {
            this._validators.clear();
          }
        };
        ae = ie([ne(0, q.$), ne(1, ee.H)], ae);
        var le = i(75623),
          ce = i(27374),
          de = i(96518),
          he = i(84973),
          ue = i(43775),
          ge = i(28111),
          fe = i(90469),
          pe = i(88216),
          me = i(15393),
          _e = i(5976),
          be = i(17301),
          ve = i(1432),
          ye = i(98401);
        let we = !1;
        function Ce(e) {
          ve.$L &&
            (we ||
              ((we = !0),
              console.warn(
                'Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq'
              )),
            console.warn(e.message));
        }
        class Se {
          constructor(e) {
            (this._workerId = -1),
              (this._handler = e),
              (this._lastSentReq = 0),
              (this._pendingReplies = Object.create(null));
          }
          setWorkerId(e) {
            this._workerId = e;
          }
          sendMessage(e, t) {
            let i = String(++this._lastSentReq);
            return new Promise((n, r) => {
              (this._pendingReplies[i] = { resolve: n, reject: r }),
                this._send({
                  vsWorker: this._workerId,
                  req: i,
                  method: e,
                  args: t,
                });
            });
          }
          handleMessage(e) {
            e &&
              e.vsWorker &&
              ((-1 !== this._workerId && e.vsWorker !== this._workerId) ||
                this._handleMessage(e));
          }
          _handleMessage(e) {
            if (e.seq) {
              let t = e;
              if (!this._pendingReplies[t.seq])
                return void console.warn('Got reply to unknown seq');
              let i = this._pendingReplies[t.seq];
              if ((delete this._pendingReplies[t.seq], t.err)) {
                let e = t.err;
                return (
                  t.err.$isError &&
                    ((e = new Error()),
                    (e.name = t.err.name),
                    (e.message = t.err.message),
                    (e.stack = t.err.stack)),
                  void i.reject(e)
                );
              }
              return void i.resolve(t.res);
            }
            let t = e,
              i = t.req;
            this._handler.handleMessage(t.method, t.args).then(
              (e) => {
                this._send({
                  vsWorker: this._workerId,
                  seq: i,
                  res: e,
                  err: void 0,
                });
              },
              (e) => {
                e.detail instanceof Error && (e.detail = (0, be.ri)(e.detail)),
                  this._send({
                    vsWorker: this._workerId,
                    seq: i,
                    res: void 0,
                    err: (0, be.ri)(e),
                  });
              }
            );
          }
          _send(e) {
            let t = [];
            if (e.req) {
              const i = e;
              for (let e = 0; e < i.args.length; e++)
                i.args[e] instanceof ArrayBuffer && t.push(i.args[e]);
            } else {
              const i = e;
              i.res instanceof ArrayBuffer && t.push(i.res);
            }
            this._handler.sendMessage(e, t);
          }
        }
        class ke extends _e.JT {
          constructor(e, t, i) {
            super();
            let n = null;
            (this._worker = this._register(
              e.create(
                'vs/base/common/worker/simpleWorker',
                (e) => {
                  this._protocol.handleMessage(e);
                },
                (e) => {
                  n && n(e);
                }
              )
            )),
              (this._protocol = new Se({
                sendMessage: (e, t) => {
                  this._worker.postMessage(e, t);
                },
                handleMessage: (e, t) => {
                  if ('function' != typeof i[e])
                    return Promise.reject(
                      new Error('Missing method ' + e + ' on main thread host.')
                    );
                  try {
                    return Promise.resolve(i[e].apply(i, t));
                  } catch (e) {
                    return Promise.reject(e);
                  }
                },
              })),
              this._protocol.setWorkerId(this._worker.getId());
            let r = null;
            void 0 !== self.require &&
            'function' == typeof self.require.getConfig
              ? (r = self.require.getConfig())
              : void 0 !== self.requirejs &&
                (r = self.requirejs.s.contexts._.config);
            const s = ye.$E(i);
            this._onModuleLoaded = this._protocol.sendMessage('$initialize', [
              this._worker.getId(),
              JSON.parse(JSON.stringify(r)),
              t,
              s,
            ]);
            const o = (e, t) => this._request(e, t);
            this._lazyProxy = new Promise((e, i) => {
              (n = i),
                this._onModuleLoaded.then(
                  (t) => {
                    e(ye.IU(t, o));
                  },
                  (e) => {
                    i(e), this._onError('Worker failed to load ' + t, e);
                  }
                );
            });
          }
          getProxyObject() {
            return this._lazyProxy;
          }
          _request(e, t) {
            return new Promise((i, n) => {
              this._onModuleLoaded.then(() => {
                this._protocol.sendMessage(e, t).then(i, n);
              }, n);
            });
          }
          _onError(e, t) {
            console.error(e), console.info(t);
          }
        }
        class xe {
          constructor(e, t, i, n, r) {
            this.id = t;
            const s = (function (e, t) {
              if (ve.li.MonacoEnvironment) {
                if ('function' == typeof ve.li.MonacoEnvironment.getWorker)
                  return ve.li.MonacoEnvironment.getWorker(e, t);
                if ('function' == typeof ve.li.MonacoEnvironment.getWorkerUrl)
                  return new Worker(ve.li.MonacoEnvironment.getWorkerUrl(e, t));
              }
              throw new Error(
                'You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker'
              );
            })('workerMain.js', i);
            'function' == typeof s.then
              ? (this.worker = s)
              : (this.worker = Promise.resolve(s)),
              this.postMessage(e, []),
              this.worker.then((e) => {
                (e.onmessage = function (e) {
                  n(e.data);
                }),
                  (e.onmessageerror = r),
                  'function' == typeof e.addEventListener &&
                    e.addEventListener('error', r);
              });
          }
          getId() {
            return this.id;
          }
          postMessage(e, t) {
            this.worker && this.worker.then((i) => i.postMessage(e, t));
          }
          dispose() {
            this.worker && this.worker.then((e) => e.terminate()),
              (this.worker = null);
          }
        }
        class Le {
          constructor(e) {
            (this._label = e), (this._webWorkerFailedBeforeError = !1);
          }
          create(e, t, i) {
            let n = ++Le.LAST_WORKER_ID;
            if (this._webWorkerFailedBeforeError)
              throw this._webWorkerFailedBeforeError;
            return new xe(e, n, this._label || 'anonymous' + n, t, (e) => {
              Ce(e), (this._webWorkerFailedBeforeError = e), i(e);
            });
          }
        }
        Le.LAST_WORKER_ID = 0;
        var Me = i(83831),
          De = i(9488);
        class Ne {
          constructor(e, t, i, n) {
            (this.originalStart = e),
              (this.originalLength = t),
              (this.modifiedStart = i),
              (this.modifiedLength = n);
          }
          getOriginalEnd() {
            return this.originalStart + this.originalLength;
          }
          getModifiedEnd() {
            return this.modifiedStart + this.modifiedLength;
          }
        }
        var Ee = i(89954);
        class Te {
          constructor(e) {
            this.source = e;
          }
          getElements() {
            const e = this.source,
              t = new Int32Array(e.length);
            for (let i = 0, n = e.length; i < n; i++) t[i] = e.charCodeAt(i);
            return t;
          }
        }
        function Ie(e, t, i) {
          return new Pe(new Te(e), new Te(t)).ComputeDiff(i).changes;
        }
        class Oe {
          static Assert(e, t) {
            if (!e) throw new Error(t);
          }
        }
        class Ae {
          static Copy(e, t, i, n, r) {
            for (let s = 0; s < r; s++) i[n + s] = e[t + s];
          }
          static Copy2(e, t, i, n, r) {
            for (let s = 0; s < r; s++) i[n + s] = e[t + s];
          }
        }
        class Re {
          constructor() {
            (this.m_changes = []),
              (this.m_originalStart = 1073741824),
              (this.m_modifiedStart = 1073741824),
              (this.m_originalCount = 0),
              (this.m_modifiedCount = 0);
          }
          MarkNextChange() {
            (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
              this.m_changes.push(
                new Ne(
                  this.m_originalStart,
                  this.m_originalCount,
                  this.m_modifiedStart,
                  this.m_modifiedCount
                )
              ),
              (this.m_originalCount = 0),
              (this.m_modifiedCount = 0),
              (this.m_originalStart = 1073741824),
              (this.m_modifiedStart = 1073741824);
          }
          AddOriginalElement(e, t) {
            (this.m_originalStart = Math.min(this.m_originalStart, e)),
              (this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
              this.m_originalCount++;
          }
          AddModifiedElement(e, t) {
            (this.m_originalStart = Math.min(this.m_originalStart, e)),
              (this.m_modifiedStart = Math.min(this.m_modifiedStart, t)),
              this.m_modifiedCount++;
          }
          getChanges() {
            return (
              (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
                this.MarkNextChange(),
              this.m_changes
            );
          }
          getReverseChanges() {
            return (
              (this.m_originalCount > 0 || this.m_modifiedCount > 0) &&
                this.MarkNextChange(),
              this.m_changes.reverse(),
              this.m_changes
            );
          }
        }
        class Pe {
          constructor(e, t, i = null) {
            this.ContinueProcessingPredicate = i;
            const [n, r, s] = Pe._getElements(e),
              [o, a, l] = Pe._getElements(t);
            (this._hasStrings = s && l),
              (this._originalStringElements = n),
              (this._originalElementsOrHash = r),
              (this._modifiedStringElements = o),
              (this._modifiedElementsOrHash = a),
              (this.m_forwardHistory = []),
              (this.m_reverseHistory = []);
          }
          static _isStringArray(e) {
            return e.length > 0 && 'string' == typeof e[0];
          }
          static _getElements(e) {
            const t = e.getElements();
            if (Pe._isStringArray(t)) {
              const e = new Int32Array(t.length);
              for (let i = 0, n = t.length; i < n; i++)
                e[i] = (0, Ee.Cv)(t[i], 0);
              return [t, e, !0];
            }
            return t instanceof Int32Array
              ? [[], t, !1]
              : [[], new Int32Array(t), !1];
          }
          ElementsAreEqual(e, t) {
            return (
              this._originalElementsOrHash[e] ===
                this._modifiedElementsOrHash[t] &&
              (!this._hasStrings ||
                this._originalStringElements[e] ===
                  this._modifiedStringElements[t])
            );
          }
          OriginalElementsAreEqual(e, t) {
            return (
              this._originalElementsOrHash[e] ===
                this._originalElementsOrHash[t] &&
              (!this._hasStrings ||
                this._originalStringElements[e] ===
                  this._originalStringElements[t])
            );
          }
          ModifiedElementsAreEqual(e, t) {
            return (
              this._modifiedElementsOrHash[e] ===
                this._modifiedElementsOrHash[t] &&
              (!this._hasStrings ||
                this._modifiedStringElements[e] ===
                  this._modifiedStringElements[t])
            );
          }
          ComputeDiff(e) {
            return this._ComputeDiff(
              0,
              this._originalElementsOrHash.length - 1,
              0,
              this._modifiedElementsOrHash.length - 1,
              e
            );
          }
          _ComputeDiff(e, t, i, n, r) {
            const s = [!1];
            let o = this.ComputeDiffRecursive(e, t, i, n, s);
            return (
              r && (o = this.PrettifyChanges(o)),
              { quitEarly: s[0], changes: o }
            );
          }
          ComputeDiffRecursive(e, t, i, n, r) {
            for (r[0] = !1; e <= t && i <= n && this.ElementsAreEqual(e, i); )
              e++, i++;
            for (; t >= e && n >= i && this.ElementsAreEqual(t, n); ) t--, n--;
            if (e > t || i > n) {
              let r;
              return (
                i <= n
                  ? (Oe.Assert(
                      e === t + 1,
                      'originalStart should only be one more than originalEnd'
                    ),
                    (r = [new Ne(e, 0, i, n - i + 1)]))
                  : e <= t
                  ? (Oe.Assert(
                      i === n + 1,
                      'modifiedStart should only be one more than modifiedEnd'
                    ),
                    (r = [new Ne(e, t - e + 1, i, 0)]))
                  : (Oe.Assert(
                      e === t + 1,
                      'originalStart should only be one more than originalEnd'
                    ),
                    Oe.Assert(
                      i === n + 1,
                      'modifiedStart should only be one more than modifiedEnd'
                    ),
                    (r = [])),
                r
              );
            }
            const s = [0],
              o = [0],
              a = this.ComputeRecursionPoint(e, t, i, n, s, o, r),
              l = s[0],
              c = o[0];
            if (null !== a) return a;
            if (!r[0]) {
              const s = this.ComputeDiffRecursive(e, l, i, c, r);
              let o = [];
              return (
                (o = r[0]
                  ? [new Ne(l + 1, t - (l + 1) + 1, c + 1, n - (c + 1) + 1)]
                  : this.ComputeDiffRecursive(l + 1, t, c + 1, n, r)),
                this.ConcatenateChanges(s, o)
              );
            }
            return [new Ne(e, t - e + 1, i, n - i + 1)];
          }
          WALKTRACE(e, t, i, n, r, s, o, a, l, c, d, h, u, g, f, p, m, _) {
            let b = null,
              v = null,
              y = new Re(),
              w = t,
              C = i,
              S = u[0] - p[0] - n,
              k = -1073741824,
              x = this.m_forwardHistory.length - 1;
            do {
              const t = S + e;
              t === w || (t < C && l[t - 1] < l[t + 1])
                ? ((g = (d = l[t + 1]) - S - n),
                  d < k && y.MarkNextChange(),
                  (k = d),
                  y.AddModifiedElement(d + 1, g),
                  (S = t + 1 - e))
                : ((g = (d = l[t - 1] + 1) - S - n),
                  d < k && y.MarkNextChange(),
                  (k = d - 1),
                  y.AddOriginalElement(d, g + 1),
                  (S = t - 1 - e)),
                x >= 0 &&
                  ((e = (l = this.m_forwardHistory[x])[0]),
                  (w = 1),
                  (C = l.length - 1));
            } while (--x >= -1);
            if (((b = y.getReverseChanges()), _[0])) {
              let e = u[0] + 1,
                t = p[0] + 1;
              if (null !== b && b.length > 0) {
                const i = b[b.length - 1];
                (e = Math.max(e, i.getOriginalEnd())),
                  (t = Math.max(t, i.getModifiedEnd()));
              }
              v = [new Ne(e, h - e + 1, t, f - t + 1)];
            } else {
              (y = new Re()),
                (w = s),
                (C = o),
                (S = u[0] - p[0] - a),
                (k = 1073741824),
                (x = m
                  ? this.m_reverseHistory.length - 1
                  : this.m_reverseHistory.length - 2);
              do {
                const e = S + r;
                e === w || (e < C && c[e - 1] >= c[e + 1])
                  ? ((g = (d = c[e + 1] - 1) - S - a),
                    d > k && y.MarkNextChange(),
                    (k = d + 1),
                    y.AddOriginalElement(d + 1, g + 1),
                    (S = e + 1 - r))
                  : ((g = (d = c[e - 1]) - S - a),
                    d > k && y.MarkNextChange(),
                    (k = d),
                    y.AddModifiedElement(d + 1, g + 1),
                    (S = e - 1 - r)),
                  x >= 0 &&
                    ((r = (c = this.m_reverseHistory[x])[0]),
                    (w = 1),
                    (C = c.length - 1));
              } while (--x >= -1);
              v = y.getChanges();
            }
            return this.ConcatenateChanges(b, v);
          }
          ComputeRecursionPoint(e, t, i, n, r, s, o) {
            let a = 0,
              l = 0,
              c = 0,
              d = 0,
              h = 0,
              u = 0;
            e--,
              i--,
              (r[0] = 0),
              (s[0] = 0),
              (this.m_forwardHistory = []),
              (this.m_reverseHistory = []);
            const g = t - e + (n - i),
              f = g + 1,
              p = new Int32Array(f),
              m = new Int32Array(f),
              _ = n - i,
              b = t - e,
              v = e - i,
              y = t - n,
              w = (b - _) % 2 == 0;
            (p[_] = e), (m[b] = t), (o[0] = !1);
            for (let C = 1; C <= g / 2 + 1; C++) {
              let g = 0,
                S = 0;
              (c = this.ClipDiagonalBound(_ - C, C, _, f)),
                (d = this.ClipDiagonalBound(_ + C, C, _, f));
              for (let e = c; e <= d; e += 2) {
                (a =
                  e === c || (e < d && p[e - 1] < p[e + 1])
                    ? p[e + 1]
                    : p[e - 1] + 1),
                  (l = a - (e - _) - v);
                const i = a;
                for (; a < t && l < n && this.ElementsAreEqual(a + 1, l + 1); )
                  a++, l++;
                if (
                  ((p[e] = a),
                  a + l > g + S && ((g = a), (S = l)),
                  !w && Math.abs(e - b) <= C - 1 && a >= m[e])
                )
                  return (
                    (r[0] = a),
                    (s[0] = l),
                    i <= m[e] && C <= 1448
                      ? this.WALKTRACE(
                          _,
                          c,
                          d,
                          v,
                          b,
                          h,
                          u,
                          y,
                          p,
                          m,
                          a,
                          t,
                          r,
                          l,
                          n,
                          s,
                          w,
                          o
                        )
                      : null
                  );
              }
              const k = (g - e + (S - i) - C) / 2;
              if (
                null !== this.ContinueProcessingPredicate &&
                !this.ContinueProcessingPredicate(g, k)
              )
                return (
                  (o[0] = !0),
                  (r[0] = g),
                  (s[0] = S),
                  k > 0 && C <= 1448
                    ? this.WALKTRACE(
                        _,
                        c,
                        d,
                        v,
                        b,
                        h,
                        u,
                        y,
                        p,
                        m,
                        a,
                        t,
                        r,
                        l,
                        n,
                        s,
                        w,
                        o
                      )
                    : (e++, i++, [new Ne(e, t - e + 1, i, n - i + 1)])
                );
              (h = this.ClipDiagonalBound(b - C, C, b, f)),
                (u = this.ClipDiagonalBound(b + C, C, b, f));
              for (let g = h; g <= u; g += 2) {
                (a =
                  g === h || (g < u && m[g - 1] >= m[g + 1])
                    ? m[g + 1] - 1
                    : m[g - 1]),
                  (l = a - (g - b) - y);
                const f = a;
                for (; a > e && l > i && this.ElementsAreEqual(a, l); )
                  a--, l--;
                if (((m[g] = a), w && Math.abs(g - _) <= C && a <= p[g]))
                  return (
                    (r[0] = a),
                    (s[0] = l),
                    f >= p[g] && C <= 1448
                      ? this.WALKTRACE(
                          _,
                          c,
                          d,
                          v,
                          b,
                          h,
                          u,
                          y,
                          p,
                          m,
                          a,
                          t,
                          r,
                          l,
                          n,
                          s,
                          w,
                          o
                        )
                      : null
                  );
              }
              if (C <= 1447) {
                let e = new Int32Array(d - c + 2);
                (e[0] = _ - c + 1),
                  Ae.Copy2(p, c, e, 1, d - c + 1),
                  this.m_forwardHistory.push(e),
                  (e = new Int32Array(u - h + 2)),
                  (e[0] = b - h + 1),
                  Ae.Copy2(m, h, e, 1, u - h + 1),
                  this.m_reverseHistory.push(e);
              }
            }
            return this.WALKTRACE(
              _,
              c,
              d,
              v,
              b,
              h,
              u,
              y,
              p,
              m,
              a,
              t,
              r,
              l,
              n,
              s,
              w,
              o
            );
          }
          PrettifyChanges(e) {
            for (let t = 0; t < e.length; t++) {
              const i = e[t],
                n =
                  t < e.length - 1
                    ? e[t + 1].originalStart
                    : this._originalElementsOrHash.length,
                r =
                  t < e.length - 1
                    ? e[t + 1].modifiedStart
                    : this._modifiedElementsOrHash.length,
                s = i.originalLength > 0,
                o = i.modifiedLength > 0;
              for (
                ;
                i.originalStart + i.originalLength < n &&
                i.modifiedStart + i.modifiedLength < r &&
                (!s ||
                  this.OriginalElementsAreEqual(
                    i.originalStart,
                    i.originalStart + i.originalLength
                  )) &&
                (!o ||
                  this.ModifiedElementsAreEqual(
                    i.modifiedStart,
                    i.modifiedStart + i.modifiedLength
                  ));

              )
                i.originalStart++, i.modifiedStart++;
              let a = [null];
              t < e.length - 1 &&
                this.ChangesOverlap(e[t], e[t + 1], a) &&
                ((e[t] = a[0]), e.splice(t + 1, 1), t--);
            }
            for (let t = e.length - 1; t >= 0; t--) {
              const i = e[t];
              let n = 0,
                r = 0;
              if (t > 0) {
                const i = e[t - 1];
                i.originalLength > 0 &&
                  (n = i.originalStart + i.originalLength),
                  i.modifiedLength > 0 &&
                    (r = i.modifiedStart + i.modifiedLength);
              }
              const s = i.originalLength > 0,
                o = i.modifiedLength > 0;
              let a = 0,
                l = this._boundaryScore(
                  i.originalStart,
                  i.originalLength,
                  i.modifiedStart,
                  i.modifiedLength
                );
              for (let e = 1; ; e++) {
                const t = i.originalStart - e,
                  c = i.modifiedStart - e;
                if (t < n || c < r) break;
                if (
                  s &&
                  !this.OriginalElementsAreEqual(t, t + i.originalLength)
                )
                  break;
                if (
                  o &&
                  !this.ModifiedElementsAreEqual(c, c + i.modifiedLength)
                )
                  break;
                const d = this._boundaryScore(
                  t,
                  i.originalLength,
                  c,
                  i.modifiedLength
                );
                d > l && ((l = d), (a = e));
              }
              (i.originalStart -= a), (i.modifiedStart -= a);
            }
            return e;
          }
          _OriginalIsBoundary(e) {
            return (
              e <= 0 ||
              e >= this._originalElementsOrHash.length - 1 ||
              (this._hasStrings &&
                /^\s*$/.test(this._originalStringElements[e]))
            );
          }
          _OriginalRegionIsBoundary(e, t) {
            if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1))
              return !0;
            if (t > 0) {
              const i = e + t;
              if (
                this._OriginalIsBoundary(i - 1) ||
                this._OriginalIsBoundary(i)
              )
                return !0;
            }
            return !1;
          }
          _ModifiedIsBoundary(e) {
            return (
              e <= 0 ||
              e >= this._modifiedElementsOrHash.length - 1 ||
              (this._hasStrings &&
                /^\s*$/.test(this._modifiedStringElements[e]))
            );
          }
          _ModifiedRegionIsBoundary(e, t) {
            if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1))
              return !0;
            if (t > 0) {
              const i = e + t;
              if (
                this._ModifiedIsBoundary(i - 1) ||
                this._ModifiedIsBoundary(i)
              )
                return !0;
            }
            return !1;
          }
          _boundaryScore(e, t, i, n) {
            return (
              (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) +
              (this._ModifiedRegionIsBoundary(i, n) ? 1 : 0)
            );
          }
          ConcatenateChanges(e, t) {
            let i = [];
            if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e;
            if (this.ChangesOverlap(e[e.length - 1], t[0], i)) {
              const n = new Array(e.length + t.length - 1);
              return (
                Ae.Copy(e, 0, n, 0, e.length - 1),
                (n[e.length - 1] = i[0]),
                Ae.Copy(t, 1, n, e.length, t.length - 1),
                n
              );
            }
            {
              const i = new Array(e.length + t.length);
              return (
                Ae.Copy(e, 0, i, 0, e.length),
                Ae.Copy(t, 0, i, e.length, t.length),
                i
              );
            }
          }
          ChangesOverlap(e, t, i) {
            if (
              (Oe.Assert(
                e.originalStart <= t.originalStart,
                'Left change is not less than or equal to right change'
              ),
              Oe.Assert(
                e.modifiedStart <= t.modifiedStart,
                'Left change is not less than or equal to right change'
              ),
              e.originalStart + e.originalLength >= t.originalStart ||
                e.modifiedStart + e.modifiedLength >= t.modifiedStart)
            ) {
              const n = e.originalStart;
              let r = e.originalLength;
              const s = e.modifiedStart;
              let o = e.modifiedLength;
              return (
                e.originalStart + e.originalLength >= t.originalStart &&
                  (r = t.originalStart + t.originalLength - e.originalStart),
                e.modifiedStart + e.modifiedLength >= t.modifiedStart &&
                  (o = t.modifiedStart + t.modifiedLength - e.modifiedStart),
                (i[0] = new Ne(n, r, s, o)),
                !0
              );
            }
            return (i[0] = null), !1;
          }
          ClipDiagonalBound(e, t, i, n) {
            if (e >= 0 && e < n) return e;
            const r = t % 2 == 0;
            return e < 0
              ? r === (i % 2 == 0)
                ? 0
                : 1
              : r === ((n - i - 1) % 2 == 0)
              ? n - 1
              : n - 2;
          }
        }
        var Fe = i(97295);
        function Be(e, t, i, n) {
          return new Pe(e, t, i).ComputeDiff(n);
        }
        class We {
          constructor(e) {
            const t = [],
              i = [];
            for (let n = 0, r = e.length; n < r; n++)
              (t[n] = ze(e[n], 1)), (i[n] = Ue(e[n], 1));
            (this.lines = e), (this._startColumns = t), (this._endColumns = i);
          }
          getElements() {
            const e = [];
            for (let t = 0, i = this.lines.length; t < i; t++)
              e[t] = this.lines[t].substring(
                this._startColumns[t] - 1,
                this._endColumns[t] - 1
              );
            return e;
          }
          getStartLineNumber(e) {
            return e + 1;
          }
          getEndLineNumber(e) {
            return e + 1;
          }
          createCharSequence(e, t, i) {
            const n = [],
              r = [],
              s = [];
            let o = 0;
            for (let a = t; a <= i; a++) {
              const t = this.lines[a],
                i = e ? this._startColumns[a] : 1,
                l = e ? this._endColumns[a] : t.length + 1;
              for (let e = i; e < l; e++)
                (n[o] = t.charCodeAt(e - 1)), (r[o] = a + 1), (s[o] = e), o++;
            }
            return new Ye(n, r, s);
          }
        }
        class Ye {
          constructor(e, t, i) {
            (this._charCodes = e), (this._lineNumbers = t), (this._columns = i);
          }
          getElements() {
            return this._charCodes;
          }
          getStartLineNumber(e) {
            return this._lineNumbers[e];
          }
          getStartColumn(e) {
            return this._columns[e];
          }
          getEndLineNumber(e) {
            return this._lineNumbers[e];
          }
          getEndColumn(e) {
            return this._columns[e] + 1;
          }
        }
        class He {
          constructor(e, t, i, n, r, s, o, a) {
            (this.originalStartLineNumber = e),
              (this.originalStartColumn = t),
              (this.originalEndLineNumber = i),
              (this.originalEndColumn = n),
              (this.modifiedStartLineNumber = r),
              (this.modifiedStartColumn = s),
              (this.modifiedEndLineNumber = o),
              (this.modifiedEndColumn = a);
          }
          static createFromDiffChange(e, t, i) {
            let n, r, s, o, a, l, c, d;
            return (
              0 === e.originalLength
                ? ((n = 0), (r = 0), (s = 0), (o = 0))
                : ((n = t.getStartLineNumber(e.originalStart)),
                  (r = t.getStartColumn(e.originalStart)),
                  (s = t.getEndLineNumber(
                    e.originalStart + e.originalLength - 1
                  )),
                  (o = t.getEndColumn(e.originalStart + e.originalLength - 1))),
              0 === e.modifiedLength
                ? ((a = 0), (l = 0), (c = 0), (d = 0))
                : ((a = i.getStartLineNumber(e.modifiedStart)),
                  (l = i.getStartColumn(e.modifiedStart)),
                  (c = i.getEndLineNumber(
                    e.modifiedStart + e.modifiedLength - 1
                  )),
                  (d = i.getEndColumn(e.modifiedStart + e.modifiedLength - 1))),
              new He(n, r, s, o, a, l, c, d)
            );
          }
        }
        class je {
          constructor(e, t, i, n, r) {
            (this.originalStartLineNumber = e),
              (this.originalEndLineNumber = t),
              (this.modifiedStartLineNumber = i),
              (this.modifiedEndLineNumber = n),
              (this.charChanges = r);
          }
          static createFromDiffResult(e, t, i, n, r, s, o) {
            let a, l, c, d, h;
            if (
              (0 === t.originalLength
                ? ((a = i.getStartLineNumber(t.originalStart) - 1), (l = 0))
                : ((a = i.getStartLineNumber(t.originalStart)),
                  (l = i.getEndLineNumber(
                    t.originalStart + t.originalLength - 1
                  ))),
              0 === t.modifiedLength
                ? ((c = n.getStartLineNumber(t.modifiedStart) - 1), (d = 0))
                : ((c = n.getStartLineNumber(t.modifiedStart)),
                  (d = n.getEndLineNumber(
                    t.modifiedStart + t.modifiedLength - 1
                  ))),
              s &&
                t.originalLength > 0 &&
                t.originalLength < 20 &&
                t.modifiedLength > 0 &&
                t.modifiedLength < 20 &&
                r())
            ) {
              const s = i.createCharSequence(
                  e,
                  t.originalStart,
                  t.originalStart + t.originalLength - 1
                ),
                a = n.createCharSequence(
                  e,
                  t.modifiedStart,
                  t.modifiedStart + t.modifiedLength - 1
                );
              let l = Be(s, a, r, !0).changes;
              o &&
                (l = (function (e) {
                  if (e.length <= 1) return e;
                  const t = [e[0]];
                  let i = t[0];
                  for (let n = 1, r = e.length; n < r; n++) {
                    const r = e[n],
                      s =
                        r.originalStart - (i.originalStart + i.originalLength),
                      o =
                        r.modifiedStart - (i.modifiedStart + i.modifiedLength);
                    Math.min(s, o) < 3
                      ? ((i.originalLength =
                          r.originalStart + r.originalLength - i.originalStart),
                        (i.modifiedLength =
                          r.modifiedStart + r.modifiedLength - i.modifiedStart))
                      : (t.push(r), (i = r));
                  }
                  return t;
                })(l)),
                (h = []);
              for (let e = 0, t = l.length; e < t; e++)
                h.push(He.createFromDiffChange(l[e], s, a));
            }
            return new je(a, l, c, d, h);
          }
        }
        class Ve {
          constructor(e, t, i) {
            (this.shouldComputeCharChanges = i.shouldComputeCharChanges),
              (this.shouldPostProcessCharChanges =
                i.shouldPostProcessCharChanges),
              (this.shouldIgnoreTrimWhitespace = i.shouldIgnoreTrimWhitespace),
              (this.shouldMakePrettyDiff = i.shouldMakePrettyDiff),
              (this.originalLines = e),
              (this.modifiedLines = t),
              (this.original = new We(e)),
              (this.modified = new We(t)),
              (this.continueLineDiff = $e(i.maxComputationTime)),
              (this.continueCharDiff = $e(
                0 === i.maxComputationTime
                  ? 0
                  : Math.min(i.maxComputationTime, 5e3)
              ));
          }
          computeDiff() {
            if (
              1 === this.original.lines.length &&
              0 === this.original.lines[0].length
            )
              return {
                quitEarly: !1,
                changes: [
                  {
                    originalStartLineNumber: 1,
                    originalEndLineNumber: 1,
                    modifiedStartLineNumber: 1,
                    modifiedEndLineNumber: this.modified.lines.length,
                    charChanges: [
                      {
                        modifiedEndColumn: 0,
                        modifiedEndLineNumber: 0,
                        modifiedStartColumn: 0,
                        modifiedStartLineNumber: 0,
                        originalEndColumn: 0,
                        originalEndLineNumber: 0,
                        originalStartColumn: 0,
                        originalStartLineNumber: 0,
                      },
                    ],
                  },
                ],
              };
            if (
              1 === this.modified.lines.length &&
              0 === this.modified.lines[0].length
            )
              return {
                quitEarly: !1,
                changes: [
                  {
                    originalStartLineNumber: 1,
                    originalEndLineNumber: this.original.lines.length,
                    modifiedStartLineNumber: 1,
                    modifiedEndLineNumber: 1,
                    charChanges: [
                      {
                        modifiedEndColumn: 0,
                        modifiedEndLineNumber: 0,
                        modifiedStartColumn: 0,
                        modifiedStartLineNumber: 0,
                        originalEndColumn: 0,
                        originalEndLineNumber: 0,
                        originalStartColumn: 0,
                        originalStartLineNumber: 0,
                      },
                    ],
                  },
                ],
              };
            const e = Be(
                this.original,
                this.modified,
                this.continueLineDiff,
                this.shouldMakePrettyDiff
              ),
              t = e.changes,
              i = e.quitEarly;
            if (this.shouldIgnoreTrimWhitespace) {
              const e = [];
              for (let i = 0, n = t.length; i < n; i++)
                e.push(
                  je.createFromDiffResult(
                    this.shouldIgnoreTrimWhitespace,
                    t[i],
                    this.original,
                    this.modified,
                    this.continueCharDiff,
                    this.shouldComputeCharChanges,
                    this.shouldPostProcessCharChanges
                  )
                );
              return { quitEarly: i, changes: e };
            }
            const n = [];
            let r = 0,
              s = 0;
            for (let e = -1, i = t.length; e < i; e++) {
              const o = e + 1 < i ? t[e + 1] : null,
                a = o ? o.originalStart : this.originalLines.length,
                l = o ? o.modifiedStart : this.modifiedLines.length;
              for (; r < a && s < l; ) {
                const e = this.originalLines[r],
                  t = this.modifiedLines[s];
                if (e !== t) {
                  {
                    let i = ze(e, 1),
                      o = ze(t, 1);
                    for (
                      ;
                      i > 1 &&
                      o > 1 &&
                      e.charCodeAt(i - 2) === t.charCodeAt(o - 2);

                    )
                      i--, o--;
                    (i > 1 || o > 1) &&
                      this._pushTrimWhitespaceCharChange(
                        n,
                        r + 1,
                        1,
                        i,
                        s + 1,
                        1,
                        o
                      );
                  }
                  {
                    let i = Ue(e, 1),
                      o = Ue(t, 1);
                    const a = e.length + 1,
                      l = t.length + 1;
                    for (
                      ;
                      i < a &&
                      o < l &&
                      e.charCodeAt(i - 1) === e.charCodeAt(o - 1);

                    )
                      i++, o++;
                    (i < a || o < l) &&
                      this._pushTrimWhitespaceCharChange(
                        n,
                        r + 1,
                        i,
                        a,
                        s + 1,
                        o,
                        l
                      );
                  }
                }
                r++, s++;
              }
              o &&
                (n.push(
                  je.createFromDiffResult(
                    this.shouldIgnoreTrimWhitespace,
                    o,
                    this.original,
                    this.modified,
                    this.continueCharDiff,
                    this.shouldComputeCharChanges,
                    this.shouldPostProcessCharChanges
                  )
                ),
                (r += o.originalLength),
                (s += o.modifiedLength));
            }
            return { quitEarly: i, changes: n };
          }
          _pushTrimWhitespaceCharChange(e, t, i, n, r, s, o) {
            if (this._mergeTrimWhitespaceCharChange(e, t, i, n, r, s, o))
              return;
            let a;
            this.shouldComputeCharChanges &&
              (a = [new He(t, i, t, n, r, s, r, o)]),
              e.push(new je(t, t, r, r, a));
          }
          _mergeTrimWhitespaceCharChange(e, t, i, n, r, s, o) {
            const a = e.length;
            if (0 === a) return !1;
            const l = e[a - 1];
            return (
              0 !== l.originalEndLineNumber &&
              0 !== l.modifiedEndLineNumber &&
              l.originalEndLineNumber + 1 === t &&
              l.modifiedEndLineNumber + 1 === r &&
              ((l.originalEndLineNumber = t),
              (l.modifiedEndLineNumber = r),
              this.shouldComputeCharChanges &&
                l.charChanges &&
                l.charChanges.push(new He(t, i, t, n, r, s, r, o)),
              !0)
            );
          }
        }
        function ze(e, t) {
          const i = Fe.LC(e);
          return -1 === i ? t : i + 1;
        }
        function Ue(e, t) {
          const i = Fe.ow(e);
          return -1 === i ? t : i + 2;
        }
        function $e(e) {
          if (0 === e) return () => !0;
          const t = Date.now();
          return () => Date.now() - t < e;
        }
        var Ke = i(3544),
          qe = i(97461),
          Ge = i(44906);
        class Ze {
          constructor(e, t, i) {
            const n = new Uint8Array(e * t);
            for (let r = 0, s = e * t; r < s; r++) n[r] = i;
            (this._data = n), (this.rows = e), (this.cols = t);
          }
          get(e, t) {
            return this._data[e * this.cols + t];
          }
          set(e, t, i) {
            this._data[e * this.cols + t] = i;
          }
        }
        class Je {
          constructor(e) {
            let t = 0,
              i = 0;
            for (let n = 0, r = e.length; n < r; n++) {
              let [r, s, o] = e[n];
              s > t && (t = s), r > i && (i = r), o > i && (i = o);
            }
            t++, i++;
            let n = new Ze(i, t, 0);
            for (let t = 0, i = e.length; t < i; t++) {
              let [i, r, s] = e[t];
              n.set(i, r, s);
            }
            (this._states = n), (this._maxCharCode = t);
          }
          nextState(e, t) {
            return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t);
          }
        }
        let Qe = null,
          Xe = null;
        class et {
          static _createLink(e, t, i, n, r) {
            let s = r - 1;
            do {
              const i = t.charCodeAt(s);
              if (2 !== e.get(i)) break;
              s--;
            } while (s > n);
            if (n > 0) {
              const e = t.charCodeAt(n - 1),
                i = t.charCodeAt(s);
              ((40 === e && 41 === i) ||
                (91 === e && 93 === i) ||
                (123 === e && 125 === i)) &&
                s--;
            }
            return {
              range: {
                startLineNumber: i,
                startColumn: n + 1,
                endLineNumber: i,
                endColumn: s + 2,
              },
              url: t.substring(n, s + 1),
            };
          }
          static computeLinks(
            e,
            t = (function () {
              return (
                null === Qe &&
                  (Qe = new Je([
                    [1, 104, 2],
                    [1, 72, 2],
                    [1, 102, 6],
                    [1, 70, 6],
                    [2, 116, 3],
                    [2, 84, 3],
                    [3, 116, 4],
                    [3, 84, 4],
                    [4, 112, 5],
                    [4, 80, 5],
                    [5, 115, 9],
                    [5, 83, 9],
                    [5, 58, 10],
                    [6, 105, 7],
                    [6, 73, 7],
                    [7, 108, 8],
                    [7, 76, 8],
                    [8, 101, 9],
                    [8, 69, 9],
                    [9, 58, 10],
                    [10, 47, 11],
                    [11, 47, 12],
                  ])),
                Qe
              );
            })()
          ) {
            const i = (function () {
              if (null === Xe) {
                Xe = new Ge.N(0);
                const e =
                  ' \t<>\'"、。｡､，．：；‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…';
                for (let t = 0; t < e.length; t++) Xe.set(e.charCodeAt(t), 1);
                const t = '.,;';
                for (let e = 0; e < t.length; e++) Xe.set(t.charCodeAt(e), 2);
              }
              return Xe;
            })();
            let n = [];
            for (let r = 1, s = e.getLineCount(); r <= s; r++) {
              const s = e.getLineContent(r),
                o = s.length;
              let a = 0,
                l = 0,
                c = 0,
                d = 1,
                h = !1,
                u = !1,
                g = !1,
                f = !1;
              for (; a < o; ) {
                let e = !1;
                const o = s.charCodeAt(a);
                if (13 === d) {
                  let t;
                  switch (o) {
                    case 40:
                      (h = !0), (t = 0);
                      break;
                    case 41:
                      t = h ? 0 : 1;
                      break;
                    case 91:
                      (g = !0), (u = !0), (t = 0);
                      break;
                    case 93:
                      (g = !1), (t = u ? 0 : 1);
                      break;
                    case 123:
                      (f = !0), (t = 0);
                      break;
                    case 125:
                      t = f ? 0 : 1;
                      break;
                    case 39:
                      t = 34 === c || 96 === c ? 0 : 1;
                      break;
                    case 34:
                      t = 39 === c || 96 === c ? 0 : 1;
                      break;
                    case 96:
                      t = 39 === c || 34 === c ? 0 : 1;
                      break;
                    case 42:
                      t = 42 === c ? 1 : 0;
                      break;
                    case 124:
                      t = 124 === c ? 1 : 0;
                      break;
                    case 32:
                      t = g ? 0 : 1;
                      break;
                    default:
                      t = i.get(o);
                  }
                  1 === t && (n.push(et._createLink(i, s, r, l, a)), (e = !0));
                } else if (12 === d) {
                  let t;
                  91 === o ? ((u = !0), (t = 0)) : (t = i.get(o)),
                    1 === t ? (e = !0) : (d = 13);
                } else (d = t.nextState(d, o)), 0 === d && (e = !0);
                e &&
                  ((d = 1), (h = !1), (u = !1), (f = !1), (l = a + 1), (c = o)),
                  a++;
              }
              13 === d && n.push(et._createLink(i, s, r, l, o));
            }
            return n;
          }
        }
        class tt {
          constructor() {
            this._defaultValueSet = [
              ['true', 'false'],
              ['True', 'False'],
              [
                'Private',
                'Public',
                'Friend',
                'ReadOnly',
                'Partial',
                'Protected',
                'WriteOnly',
              ],
              ['public', 'protected', 'private'],
            ];
          }
          navigateValueSet(e, t, i, n, r) {
            if (e && t) {
              let i = this.doNavigateValueSet(t, r);
              if (i) return { range: e, value: i };
            }
            if (i && n) {
              let e = this.doNavigateValueSet(n, r);
              if (e) return { range: i, value: e };
            }
            return null;
          }
          doNavigateValueSet(e, t) {
            let i = this.numberReplace(e, t);
            return null !== i ? i : this.textReplace(e, t);
          }
          numberReplace(e, t) {
            let i = Math.pow(10, e.length - (e.lastIndexOf('.') + 1)),
              n = Number(e),
              r = parseFloat(e);
            return isNaN(n) || isNaN(r) || n !== r
              ? null
              : 0 !== n || t
              ? ((n = Math.floor(n * i)), (n += t ? i : -i), String(n / i))
              : null;
          }
          textReplace(e, t) {
            return this.valueSetsReplace(this._defaultValueSet, e, t);
          }
          valueSetsReplace(e, t, i) {
            let n = null;
            for (let r = 0, s = e.length; null === n && r < s; r++)
              n = this.valueSetReplace(e[r], t, i);
            return n;
          }
          valueSetReplace(e, t, i) {
            let n = e.indexOf(t);
            return n >= 0
              ? ((n += i ? 1 : -1),
                n < 0 ? (n = e.length - 1) : (n %= e.length),
                e[n])
              : null;
          }
        }
        tt.INSTANCE = new tt();
        var it = function (e, t, i, n) {
          return new (i || (i = Promise))(function (r, s) {
            function o(e) {
              try {
                l(n.next(e));
              } catch (e) {
                s(e);
              }
            }
            function a(e) {
              try {
                l(n.throw(e));
              } catch (e) {
                s(e);
              }
            }
            function l(e) {
              var t;
              e.done
                ? r(e.value)
                : ((t = e.value),
                  t instanceof i
                    ? t
                    : new i(function (e) {
                        e(t);
                      })).then(o, a);
            }
            l((n = n.apply(e, t || [])).next());
          });
        };
        class nt extends class {
          constructor(e, t, i, n) {
            (this._uri = e),
              (this._lines = t),
              (this._eol = i),
              (this._versionId = n),
              (this._lineStarts = null),
              (this._cachedTextValue = null);
          }
          dispose() {
            this._lines.length = 0;
          }
          getText() {
            return (
              null === this._cachedTextValue &&
                (this._cachedTextValue = this._lines.join(this._eol)),
              this._cachedTextValue
            );
          }
          onEvents(e) {
            e.eol &&
              e.eol !== this._eol &&
              ((this._eol = e.eol), (this._lineStarts = null));
            const t = e.changes;
            for (const e of t)
              this._acceptDeleteRange(e.range),
                this._acceptInsertText(
                  new H.L(e.range.startLineNumber, e.range.startColumn),
                  e.text
                );
            (this._versionId = e.versionId), (this._cachedTextValue = null);
          }
          _ensureLineStarts() {
            if (!this._lineStarts) {
              const e = this._eol.length,
                t = this._lines.length,
                i = new Uint32Array(t);
              for (let n = 0; n < t; n++) i[n] = this._lines[n].length + e;
              this._lineStarts = new Ke.o(i);
            }
          }
          _setLineText(e, t) {
            (this._lines[e] = t),
              this._lineStarts &&
                this._lineStarts.changeValue(
                  e,
                  this._lines[e].length + this._eol.length
                );
          }
          _acceptDeleteRange(e) {
            if (e.startLineNumber !== e.endLineNumber)
              this._setLineText(
                e.startLineNumber - 1,
                this._lines[e.startLineNumber - 1].substring(
                  0,
                  e.startColumn - 1
                ) + this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)
              ),
                this._lines.splice(
                  e.startLineNumber,
                  e.endLineNumber - e.startLineNumber
                ),
                this._lineStarts &&
                  this._lineStarts.removeValues(
                    e.startLineNumber,
                    e.endLineNumber - e.startLineNumber
                  );
            else {
              if (e.startColumn === e.endColumn) return;
              this._setLineText(
                e.startLineNumber - 1,
                this._lines[e.startLineNumber - 1].substring(
                  0,
                  e.startColumn - 1
                ) +
                  this._lines[e.startLineNumber - 1].substring(e.endColumn - 1)
              );
            }
          }
          _acceptInsertText(e, t) {
            if (0 === t.length) return;
            let i = t.split(/\r\n|\r|\n/);
            if (1 === i.length)
              return void this._setLineText(
                e.lineNumber - 1,
                this._lines[e.lineNumber - 1].substring(0, e.column - 1) +
                  i[0] +
                  this._lines[e.lineNumber - 1].substring(e.column - 1)
              );
            (i[i.length - 1] += this._lines[e.lineNumber - 1].substring(
              e.column - 1
            )),
              this._setLineText(
                e.lineNumber - 1,
                this._lines[e.lineNumber - 1].substring(0, e.column - 1) + i[0]
              );
            let n = new Uint32Array(i.length - 1);
            for (let t = 1; t < i.length; t++)
              this._lines.splice(e.lineNumber + t - 1, 0, i[t]),
                (n[t - 1] = i[t].length + this._eol.length);
            this._lineStarts && this._lineStarts.insertValues(e.lineNumber, n);
          }
        } {
          get uri() {
            return this._uri;
          }
          get version() {
            return this._versionId;
          }
          get eol() {
            return this._eol;
          }
          getValue() {
            return this.getText();
          }
          getLinesContent() {
            return this._lines.slice(0);
          }
          getLineCount() {
            return this._lines.length;
          }
          getLineContent(e) {
            return this._lines[e - 1];
          }
          getWordAtPosition(e, t) {
            let i = (0, qe.t2)(
              e.column,
              (0, qe.eq)(t),
              this._lines[e.lineNumber - 1],
              0
            );
            return i
              ? new j.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn)
              : null;
          }
          words(e) {
            const t = this._lines,
              i = this._wordenize.bind(this);
            let n = 0,
              r = '',
              s = 0,
              o = [];
            return {
              *[Symbol.iterator]() {
                for (;;)
                  if (s < o.length) {
                    const e = r.substring(o[s].start, o[s].end);
                    (s += 1), yield e;
                  } else {
                    if (!(n < t.length)) break;
                    (r = t[n]), (o = i(r, e)), (s = 0), (n += 1);
                  }
              },
            };
          }
          getLineWords(e, t) {
            let i = this._lines[e - 1],
              n = this._wordenize(i, t),
              r = [];
            for (const e of n)
              r.push({
                word: i.substring(e.start, e.end),
                startColumn: e.start + 1,
                endColumn: e.end + 1,
              });
            return r;
          }
          _wordenize(e, t) {
            const i = [];
            let n;
            for (t.lastIndex = 0; (n = t.exec(e)) && 0 !== n[0].length; )
              i.push({ start: n.index, end: n.index + n[0].length });
            return i;
          }
          getValueInRange(e) {
            if (
              (e = this._validateRange(e)).startLineNumber === e.endLineNumber
            )
              return this._lines[e.startLineNumber - 1].substring(
                e.startColumn - 1,
                e.endColumn - 1
              );
            let t = this._eol,
              i = e.startLineNumber - 1,
              n = e.endLineNumber - 1,
              r = [];
            r.push(this._lines[i].substring(e.startColumn - 1));
            for (let e = i + 1; e < n; e++) r.push(this._lines[e]);
            return (
              r.push(this._lines[n].substring(0, e.endColumn - 1)), r.join(t)
            );
          }
          offsetAt(e) {
            return (
              (e = this._validatePosition(e)),
              this._ensureLineStarts(),
              this._lineStarts.getAccumulatedValue(e.lineNumber - 2) +
                (e.column - 1)
            );
          }
          positionAt(e) {
            (e = Math.floor(e)), (e = Math.max(0, e)), this._ensureLineStarts();
            let t = this._lineStarts.getIndexOf(e),
              i = this._lines[t.index].length;
            return {
              lineNumber: 1 + t.index,
              column: 1 + Math.min(t.remainder, i),
            };
          }
          _validateRange(e) {
            const t = this._validatePosition({
                lineNumber: e.startLineNumber,
                column: e.startColumn,
              }),
              i = this._validatePosition({
                lineNumber: e.endLineNumber,
                column: e.endColumn,
              });
            return t.lineNumber !== e.startLineNumber ||
              t.column !== e.startColumn ||
              i.lineNumber !== e.endLineNumber ||
              i.column !== e.endColumn
              ? {
                  startLineNumber: t.lineNumber,
                  startColumn: t.column,
                  endLineNumber: i.lineNumber,
                  endColumn: i.column,
                }
              : e;
          }
          _validatePosition(e) {
            if (!H.L.isIPosition(e)) throw new Error('bad position');
            let { lineNumber: t, column: i } = e,
              n = !1;
            if (t < 1) (t = 1), (i = 1), (n = !0);
            else if (t > this._lines.length)
              (t = this._lines.length),
                (i = this._lines[t - 1].length + 1),
                (n = !0);
            else {
              let e = this._lines[t - 1].length + 1;
              i < 1 ? ((i = 1), (n = !0)) : i > e && ((i = e), (n = !0));
            }
            return n ? { lineNumber: t, column: i } : e;
          }
        }
        class rt {
          constructor(e, t) {
            (this._host = e),
              (this._models = Object.create(null)),
              (this._foreignModuleFactory = t),
              (this._foreignModule = null);
          }
          dispose() {
            this._models = Object.create(null);
          }
          _getModel(e) {
            return this._models[e];
          }
          _getModels() {
            let e = [];
            return (
              Object.keys(this._models).forEach((t) => e.push(this._models[t])),
              e
            );
          }
          acceptNewModel(e) {
            this._models[e.url] = new nt(
              Y.o.parse(e.url),
              e.lines,
              e.EOL,
              e.versionId
            );
          }
          acceptModelChanged(e, t) {
            this._models[e] && this._models[e].onEvents(t);
          }
          acceptRemovedModel(e) {
            this._models[e] && delete this._models[e];
          }
          computeDiff(e, t, i, n) {
            return it(this, void 0, void 0, function* () {
              const r = this._getModel(e),
                s = this._getModel(t);
              if (!r || !s) return null;
              const o = r.getLinesContent(),
                a = s.getLinesContent(),
                l = new Ve(o, a, {
                  shouldComputeCharChanges: !0,
                  shouldPostProcessCharChanges: !0,
                  shouldIgnoreTrimWhitespace: i,
                  shouldMakePrettyDiff: !0,
                  maxComputationTime: n,
                }).computeDiff(),
                c = !(l.changes.length > 0) && this._modelsAreIdentical(r, s);
              return {
                quitEarly: l.quitEarly,
                identical: c,
                changes: l.changes,
              };
            });
          }
          _modelsAreIdentical(e, t) {
            const i = e.getLineCount();
            if (i !== t.getLineCount()) return !1;
            for (let n = 1; n <= i; n++)
              if (e.getLineContent(n) !== t.getLineContent(n)) return !1;
            return !0;
          }
          computeMoreMinimalEdits(e, t) {
            return it(this, void 0, void 0, function* () {
              const i = this._getModel(e);
              if (!i) return t;
              const n = [];
              let r;
              t = (0, De.qt)(t, (e, t) =>
                e.range && t.range
                  ? j.e.compareRangesUsingStarts(e.range, t.range)
                  : (e.range ? 0 : 1) - (t.range ? 0 : 1)
              );
              for (let { range: e, text: s, eol: o } of t) {
                if (('number' == typeof o && (r = o), j.e.isEmpty(e) && !s))
                  continue;
                const t = i.getValueInRange(e);
                if (((s = s.replace(/\r\n|\n|\r/g, i.eol)), t === s)) continue;
                if (Math.max(s.length, t.length) > rt._diffLimit) {
                  n.push({ range: e, text: s });
                  continue;
                }
                const a = Ie(t, s, !1),
                  l = i.offsetAt(j.e.lift(e).getStartPosition());
                for (const e of a) {
                  const t = i.positionAt(l + e.originalStart),
                    r = i.positionAt(l + e.originalStart + e.originalLength),
                    o = {
                      text: s.substr(e.modifiedStart, e.modifiedLength),
                      range: {
                        startLineNumber: t.lineNumber,
                        startColumn: t.column,
                        endLineNumber: r.lineNumber,
                        endColumn: r.column,
                      },
                    };
                  i.getValueInRange(o.range) !== o.text && n.push(o);
                }
              }
              return (
                'number' == typeof r &&
                  n.push({
                    eol: r,
                    text: '',
                    range: {
                      startLineNumber: 0,
                      startColumn: 0,
                      endLineNumber: 0,
                      endColumn: 0,
                    },
                  }),
                n
              );
            });
          }
          computeLinks(e) {
            return it(this, void 0, void 0, function* () {
              let t = this._getModel(e);
              return t
                ? (function (e) {
                    return e &&
                      'function' == typeof e.getLineCount &&
                      'function' == typeof e.getLineContent
                      ? et.computeLinks(e)
                      : [];
                  })(t)
                : null;
            });
          }
          textualSuggest(e, t, i, n) {
            return it(this, void 0, void 0, function* () {
              const r = this._getModel(e);
              if (!r) return null;
              const s = [],
                o = new Set(),
                a = new RegExp(i, n),
                l = r.getWordAtPosition(t, a);
              l && o.add(r.getValueInRange(l));
              for (let e of r.words(a))
                if (
                  !o.has(e) &&
                  (o.add(e),
                  isNaN(Number(e)) &&
                    (s.push(e), o.size > rt._suggestionsLimit))
                )
                  break;
              return s;
            });
          }
          computeWordRanges(e, t, i, n) {
            return it(this, void 0, void 0, function* () {
              let r = this._getModel(e);
              if (!r) return Object.create(null);
              const s = new RegExp(i, n),
                o = Object.create(null);
              for (let e = t.startLineNumber; e < t.endLineNumber; e++) {
                let t = r.getLineWords(e, s);
                for (const i of t) {
                  if (!isNaN(Number(i.word))) continue;
                  let t = o[i.word];
                  t || ((t = []), (o[i.word] = t)),
                    t.push({
                      startLineNumber: e,
                      startColumn: i.startColumn,
                      endLineNumber: e,
                      endColumn: i.endColumn,
                    });
                }
              }
              return o;
            });
          }
          navigateValueSet(e, t, i, n, r) {
            return it(this, void 0, void 0, function* () {
              let s = this._getModel(e);
              if (!s) return null;
              let o = new RegExp(n, r);
              t.startColumn === t.endColumn &&
                (t = {
                  startLineNumber: t.startLineNumber,
                  startColumn: t.startColumn,
                  endLineNumber: t.endLineNumber,
                  endColumn: t.endColumn + 1,
                });
              let a = s.getValueInRange(t),
                l = s.getWordAtPosition(
                  { lineNumber: t.startLineNumber, column: t.startColumn },
                  o
                );
              if (!l) return null;
              let c = s.getValueInRange(l);
              return tt.INSTANCE.navigateValueSet(t, a, l, c, i);
            });
          }
          loadForeignModule(e, t, i) {
            let n = {
              host: ye.IU(i, (e, t) => this._host.fhr(e, t)),
              getMirrorModels: () => this._getModels(),
            };
            return this._foreignModuleFactory
              ? ((this._foreignModule = this._foreignModuleFactory(n, t)),
                Promise.resolve(ye.$E(this._foreignModule)))
              : Promise.reject(new Error('Unexpected usage'));
          }
          fmr(e, t) {
            if (
              !this._foreignModule ||
              'function' != typeof this._foreignModule[e]
            )
              return Promise.reject(
                new Error('Missing requestHandler or method: ' + e)
              );
            try {
              return Promise.resolve(
                this._foreignModule[e].apply(this._foreignModule, t)
              );
            } catch (e) {
              return Promise.reject(e);
            }
          }
        }
        (rt._diffLimit = 1e5),
          (rt._suggestionsLimit = 1e4),
          'function' == typeof importScripts && (ve.li.monaco = $());
        var st = i(51200),
          ot = i(33187),
          at = i(43557),
          lt = i(84013),
          ct = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        function dt(e, t) {
          let i = e.getModel(t);
          return !!i && !i.isTooLargeForSyncing();
        }
        let ht = class extends _e.JT {
          constructor(e, t, i) {
            super(),
              (this._modelService = e),
              (this._workerManager = this._register(
                new gt(this._modelService)
              )),
              (this._logService = i),
              this._register(
                ue.pM.register('*', {
                  provideLinks: (e, t) =>
                    dt(this._modelService, e.uri)
                      ? this._workerManager
                          .withWorker()
                          .then((t) => t.computeLinks(e.uri))
                          .then((e) => e && { links: e })
                      : Promise.resolve({ links: [] }),
                })
              ),
              this._register(
                ue.KZ.register(
                  '*',
                  new ut(this._workerManager, t, this._modelService)
                )
              );
          }
          dispose() {
            super.dispose();
          }
          canComputeDiff(e, t) {
            return dt(this._modelService, e) && dt(this._modelService, t);
          }
          computeDiff(e, t, i, n) {
            return this._workerManager
              .withWorker()
              .then((r) => r.computeDiff(e, t, i, n));
          }
          computeMoreMinimalEdits(e, t) {
            if ((0, De.Of)(t)) {
              if (!dt(this._modelService, e)) return Promise.resolve(t);
              const i = lt.G.create(!0),
                n = this._workerManager
                  .withWorker()
                  .then((i) => i.computeMoreMinimalEdits(e, t));
              return (
                n.finally(() =>
                  this._logService.trace(
                    'FORMAT#computeMoreMinimalEdits',
                    e.toString(!0),
                    i.elapsed()
                  )
                ),
                n
              );
            }
            return Promise.resolve(void 0);
          }
          canNavigateValueSet(e) {
            return dt(this._modelService, e);
          }
          navigateValueSet(e, t, i) {
            return this._workerManager
              .withWorker()
              .then((n) => n.navigateValueSet(e, t, i));
          }
          canComputeWordRanges(e) {
            return dt(this._modelService, e);
          }
          computeWordRanges(e, t) {
            return this._workerManager
              .withWorker()
              .then((i) => i.computeWordRanges(e, t));
          }
        };
        ht = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([ct(0, st.q), ct(1, ot.V), ct(2, at.VZ)], ht);
        class ut {
          constructor(e, t, i) {
            (this._debugDisplayName = 'wordbasedCompletions'),
              (this._workerManager = e),
              (this._configurationService = t),
              (this._modelService = i);
          }
          provideCompletionItems(e, t) {
            return (
              (i = this),
              (n = void 0),
              (s = function* () {
                const {
                  wordBasedSuggestions: i,
                } = this._configurationService.getValue(e.uri, t, 'editor');
                if (!i) return;
                if (!dt(this._modelService, e.uri)) return;
                const n = e.getWordAtPosition(t),
                  r = n
                    ? new j.e(
                        t.lineNumber,
                        n.startColumn,
                        t.lineNumber,
                        n.endColumn
                      )
                    : j.e.fromPositions(t),
                  s = r.setEndPosition(t.lineNumber, t.column),
                  o = yield this._workerManager.withWorker(),
                  a = yield o.textualSuggest(e.uri, t);
                return a
                  ? {
                      suggestions: a.map((e) => ({
                        kind: 18,
                        label: e,
                        insertText: e,
                        range: { insert: s, replace: r },
                      })),
                    }
                  : void 0;
              }),
              new ((r = void 0) || (r = Promise))(function (e, t) {
                function o(e) {
                  try {
                    l(s.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function a(e) {
                  try {
                    l(s.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof r
                        ? i
                        : new r(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((s = s.apply(i, n || [])).next());
              })
            );
            var i, n, r, s;
          }
        }
        class gt extends _e.JT {
          constructor(e) {
            super(),
              (this._modelService = e),
              (this._editorWorkerClient = null),
              (this._lastWorkerUsedTime = new Date().getTime()),
              this._register(new me.zh()).cancelAndSet(
                () => this._checkStopIdleWorker(),
                Math.round(15e4)
              ),
              this._register(
                this._modelService.onModelRemoved((e) =>
                  this._checkStopEmptyWorker()
                )
              );
          }
          dispose() {
            this._editorWorkerClient &&
              (this._editorWorkerClient.dispose(),
              (this._editorWorkerClient = null)),
              super.dispose();
          }
          _checkStopEmptyWorker() {
            this._editorWorkerClient &&
              0 === this._modelService.getModels().length &&
              (this._editorWorkerClient.dispose(),
              (this._editorWorkerClient = null));
          }
          _checkStopIdleWorker() {
            this._editorWorkerClient &&
              new Date().getTime() - this._lastWorkerUsedTime > 3e5 &&
              (this._editorWorkerClient.dispose(),
              (this._editorWorkerClient = null));
          }
          withWorker() {
            return (
              (this._lastWorkerUsedTime = new Date().getTime()),
              this._editorWorkerClient ||
                (this._editorWorkerClient = new _t(
                  this._modelService,
                  !1,
                  'editorWorkerService'
                )),
              Promise.resolve(this._editorWorkerClient)
            );
          }
        }
        class ft extends _e.JT {
          constructor(e, t, i) {
            if (
              (super(),
              (this._syncedModels = Object.create(null)),
              (this._syncedModelsLastUsedTime = Object.create(null)),
              (this._proxy = e),
              (this._modelService = t),
              !i)
            ) {
              let e = new me.zh();
              e.cancelAndSet(() => this._checkStopModelSync(), Math.round(3e4)),
                this._register(e);
            }
          }
          dispose() {
            for (let e in this._syncedModels) (0, _e.B9)(this._syncedModels[e]);
            (this._syncedModels = Object.create(null)),
              (this._syncedModelsLastUsedTime = Object.create(null)),
              super.dispose();
          }
          ensureSyncedResources(e) {
            for (const t of e) {
              let e = t.toString();
              this._syncedModels[e] || this._beginModelSync(t),
                this._syncedModels[e] &&
                  (this._syncedModelsLastUsedTime[e] = new Date().getTime());
            }
          }
          _checkStopModelSync() {
            let e = new Date().getTime(),
              t = [];
            for (let i in this._syncedModelsLastUsedTime)
              e - this._syncedModelsLastUsedTime[i] > 6e4 && t.push(i);
            for (const e of t) this._stopModelSync(e);
          }
          _beginModelSync(e) {
            let t = this._modelService.getModel(e);
            if (!t) return;
            if (t.isTooLargeForSyncing()) return;
            let i = e.toString();
            this._proxy.acceptNewModel({
              url: t.uri.toString(),
              lines: t.getLinesContent(),
              EOL: t.getEOL(),
              versionId: t.getVersionId(),
            });
            const n = new _e.SL();
            n.add(
              t.onDidChangeContent((e) => {
                this._proxy.acceptModelChanged(i.toString(), e);
              })
            ),
              n.add(
                t.onWillDispose(() => {
                  this._stopModelSync(i);
                })
              ),
              n.add(
                (0, _e.OF)(() => {
                  this._proxy.acceptRemovedModel(i);
                })
              ),
              (this._syncedModels[i] = n);
          }
          _stopModelSync(e) {
            let t = this._syncedModels[e];
            delete this._syncedModels[e],
              delete this._syncedModelsLastUsedTime[e],
              (0, _e.B9)(t);
          }
        }
        class pt {
          constructor(e) {
            (this._instance = e),
              (this._proxyObj = Promise.resolve(this._instance));
          }
          dispose() {
            this._instance.dispose();
          }
          getProxyObject() {
            return this._proxyObj;
          }
        }
        class mt {
          constructor(e) {
            this._workerClient = e;
          }
          fhr(e, t) {
            return this._workerClient.fhr(e, t);
          }
        }
        class _t extends _e.JT {
          constructor(e, t, i) {
            super(),
              (this._disposed = !1),
              (this._modelService = e),
              (this._keepIdleModels = t),
              (this._workerFactory = new Le(i)),
              (this._worker = null),
              (this._modelManager = null);
          }
          fhr(e, t) {
            throw new Error('Not implemented!');
          }
          _getOrCreateWorker() {
            if (!this._worker)
              try {
                this._worker = this._register(
                  new ke(
                    this._workerFactory,
                    'vs/editor/common/services/editorSimpleWorker',
                    new mt(this)
                  )
                );
              } catch (e) {
                Ce(e), (this._worker = new pt(new rt(new mt(this), null)));
              }
            return this._worker;
          }
          _getProxy() {
            return this._getOrCreateWorker()
              .getProxyObject()
              .then(
                void 0,
                (e) => (
                  Ce(e),
                  (this._worker = new pt(new rt(new mt(this), null))),
                  this._getOrCreateWorker().getProxyObject()
                )
              );
          }
          _getOrCreateModelManager(e) {
            return (
              this._modelManager ||
                (this._modelManager = this._register(
                  new ft(e, this._modelService, this._keepIdleModels)
                )),
              this._modelManager
            );
          }
          _withSyncedResources(e) {
            return this._disposed
              ? Promise.reject((0, be.F0)())
              : this._getProxy().then(
                  (t) => (
                    this._getOrCreateModelManager(t).ensureSyncedResources(e), t
                  )
                );
          }
          computeDiff(e, t, i, n) {
            return this._withSyncedResources([e, t]).then((r) =>
              r.computeDiff(e.toString(), t.toString(), i, n)
            );
          }
          computeMoreMinimalEdits(e, t) {
            return this._withSyncedResources([e]).then((i) =>
              i.computeMoreMinimalEdits(e.toString(), t)
            );
          }
          computeLinks(e) {
            return this._withSyncedResources([e]).then((t) =>
              t.computeLinks(e.toString())
            );
          }
          textualSuggest(e, t) {
            return this._withSyncedResources([e]).then((i) => {
              let n = this._modelService.getModel(e);
              if (!n) return null;
              let r = Me.zu.getWordDefinition(n.getLanguageIdentifier().id),
                s = r.source,
                o = (0, Fe.mr)(r);
              return i.textualSuggest(e.toString(), t, s, o);
            });
          }
          computeWordRanges(e, t) {
            return this._withSyncedResources([e]).then((i) => {
              let n = this._modelService.getModel(e);
              if (!n) return Promise.resolve(null);
              let r = Me.zu.getWordDefinition(n.getLanguageIdentifier().id),
                s = r.source,
                o = (0, Fe.mr)(r);
              return i.computeWordRanges(e.toString(), t, s, o);
            });
          }
          navigateValueSet(e, t, i) {
            return this._withSyncedResources([e]).then((n) => {
              let r = this._modelService.getModel(e);
              if (!r) return null;
              let s = Me.zu.getWordDefinition(r.getLanguageIdentifier().id),
                o = s.source,
                a = (0, Fe.mr)(s);
              return n.navigateValueSet(e.toString(), t, i, o, a);
            });
          }
          dispose() {
            super.dispose(), (this._disposed = !0);
          }
        }
        class bt extends _t {
          constructor(e, t) {
            super(e, t.keepIdleModels || !1, t.label),
              (this._foreignModuleId = t.moduleId),
              (this._foreignModuleCreateData = t.createData || null),
              (this._foreignModuleHost = t.host || null),
              (this._foreignProxy = null);
          }
          fhr(e, t) {
            if (
              !this._foreignModuleHost ||
              'function' != typeof this._foreignModuleHost[e]
            )
              return Promise.reject(
                new Error(
                  'Missing method ' +
                    e +
                    ' or missing main thread foreign host.'
                )
              );
            try {
              return Promise.resolve(
                this._foreignModuleHost[e].apply(this._foreignModuleHost, t)
              );
            } catch (e) {
              return Promise.reject(e);
            }
          }
          _getForeignProxy() {
            return (
              this._foreignProxy ||
                (this._foreignProxy = this._getProxy().then((e) => {
                  const t = this._foreignModuleHost
                    ? ye.$E(this._foreignModuleHost)
                    : [];
                  return e
                    .loadForeignModule(
                      this._foreignModuleId,
                      this._foreignModuleCreateData,
                      t
                    )
                    .then((t) => {
                      this._foreignModuleCreateData = null;
                      const i = (t, i) => e.fmr(t, i),
                        n = (e, t) =>
                          function () {
                            const i = Array.prototype.slice.call(arguments, 0);
                            return t(e, i);
                          };
                      let r = {};
                      for (const e of t) r[e] = n(e, i);
                      return r;
                    });
                })),
              this._foreignProxy
            );
          }
          getProxy() {
            return this._getForeignProxy();
          }
          withSyncedResources(e) {
            return this._withSyncedResources(e).then((e) => this.getProxy());
          }
        }
        var vt = i(78411),
          yt = i(77736),
          wt = i(13824);
        function Ct(e) {
          return 'string' == typeof e;
        }
        function St(e) {
          return !Ct(e);
        }
        function kt(e) {
          return !e;
        }
        function xt(e, t) {
          return e.ignoreCase && t ? t.toLowerCase() : t;
        }
        function Lt(e) {
          return e.replace(/[&<>'"_]/g, '-');
        }
        function Mt(e, t) {
          return new Error(`${e.languageId}: ${t}`);
        }
        function Dt(e, t, i, n, r) {
          let s = null;
          return t.replace(
            /\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,
            function (t, o, a, l, c, d, h, u, g) {
              return kt(a)
                ? kt(l)
                  ? !kt(c) && c < n.length
                    ? xt(e, n[c])
                    : !kt(h) && e && 'string' == typeof e[h]
                    ? e[h]
                    : (null === s && ((s = r.split('.')), s.unshift(r)),
                      !kt(d) && d < s.length ? xt(e, s[d]) : '')
                  : xt(e, i)
                : '$';
            }
          );
        }
        function Nt(e, t) {
          let i = t;
          for (; i && i.length > 0; ) {
            const t = e.tokenizer[i];
            if (t) return t;
            const n = i.lastIndexOf('.');
            i = n < 0 ? null : i.substr(0, n);
          }
          return null;
        }
        class Et {
          constructor(e) {
            (this._maxCacheDepth = e), (this._entries = Object.create(null));
          }
          static create(e, t) {
            return this._INSTANCE.create(e, t);
          }
          create(e, t) {
            if (null !== e && e.depth >= this._maxCacheDepth)
              return new Tt(e, t);
            let i = Tt.getStackElementId(e);
            i.length > 0 && (i += '|'), (i += t);
            let n = this._entries[i];
            return n || ((n = new Tt(e, t)), (this._entries[i] = n), n);
          }
        }
        Et._INSTANCE = new Et(5);
        class Tt {
          constructor(e, t) {
            (this.parent = e),
              (this.state = t),
              (this.depth = (this.parent ? this.parent.depth : 0) + 1);
          }
          static getStackElementId(e) {
            let t = '';
            for (; null !== e; )
              t.length > 0 && (t += '|'), (t += e.state), (e = e.parent);
            return t;
          }
          static _equals(e, t) {
            for (; null !== e && null !== t; ) {
              if (e === t) return !0;
              if (e.state !== t.state) return !1;
              (e = e.parent), (t = t.parent);
            }
            return null === e && null === t;
          }
          equals(e) {
            return Tt._equals(this, e);
          }
          push(e) {
            return Et.create(this, e);
          }
          pop() {
            return this.parent;
          }
          popall() {
            let e = this;
            for (; e.parent; ) e = e.parent;
            return e;
          }
          switchTo(e) {
            return Et.create(this.parent, e);
          }
        }
        class It {
          constructor(e, t) {
            (this.modeId = e), (this.state = t);
          }
          equals(e) {
            return this.modeId === e.modeId && this.state.equals(e.state);
          }
          clone() {
            return this.state.clone() === this.state
              ? this
              : new It(this.modeId, this.state);
          }
        }
        class Ot {
          constructor(e) {
            (this._maxCacheDepth = e), (this._entries = Object.create(null));
          }
          static create(e, t) {
            return this._INSTANCE.create(e, t);
          }
          create(e, t) {
            if (null !== t) return new At(e, t);
            if (null !== e && e.depth >= this._maxCacheDepth)
              return new At(e, t);
            let i = Tt.getStackElementId(e),
              n = this._entries[i];
            return n || ((n = new At(e, null)), (this._entries[i] = n), n);
          }
        }
        Ot._INSTANCE = new Ot(5);
        class At {
          constructor(e, t) {
            (this.stack = e), (this.embeddedModeData = t);
          }
          clone() {
            return (this.embeddedModeData
              ? this.embeddedModeData.clone()
              : null) === this.embeddedModeData
              ? this
              : Ot.create(this.stack, this.embeddedModeData);
          }
          equals(e) {
            return (
              e instanceof At &&
              !!this.stack.equals(e.stack) &&
              ((null === this.embeddedModeData &&
                null === e.embeddedModeData) ||
                (null !== this.embeddedModeData &&
                  null !== e.embeddedModeData &&
                  this.embeddedModeData.equals(e.embeddedModeData)))
            );
          }
        }
        class Rt {
          constructor() {
            (this._tokens = []),
              (this._language = null),
              (this._lastTokenType = null),
              (this._lastTokenLanguage = null);
          }
          enterMode(e, t) {
            this._language = t;
          }
          emit(e, t) {
            (this._lastTokenType === t &&
              this._lastTokenLanguage === this._language) ||
              ((this._lastTokenType = t),
              (this._lastTokenLanguage = this._language),
              this._tokens.push(new z.WU(e, t, this._language)));
          }
          nestedModeTokenize(e, t, i) {
            const n = t.modeId,
              r = t.state,
              s = ue.RW.get(n);
            if (!s) return this.enterMode(i, n), this.emit(i, ''), r;
            let o = s.tokenize(e, r, i);
            return (
              (this._tokens = this._tokens.concat(o.tokens)),
              (this._lastTokenType = null),
              (this._lastTokenLanguage = null),
              (this._language = null),
              o.endState
            );
          }
          finalize(e) {
            return new z.hG(this._tokens, e);
          }
        }
        class Pt {
          constructor(e, t) {
            (this._modeService = e),
              (this._theme = t),
              (this._prependTokens = null),
              (this._tokens = []),
              (this._currentLanguageId = 0),
              (this._lastTokenMetadata = 0);
          }
          enterMode(e, t) {
            this._currentLanguageId = this._modeService.getLanguageIdentifier(
              t
            ).id;
          }
          emit(e, t) {
            let i = this._theme.match(this._currentLanguageId, t);
            this._lastTokenMetadata !== i &&
              ((this._lastTokenMetadata = i),
              this._tokens.push(e),
              this._tokens.push(i));
          }
          static _merge(e, t, i) {
            let n = null !== e ? e.length : 0,
              r = t.length,
              s = null !== i ? i.length : 0;
            if (0 === n && 0 === r && 0 === s) return new Uint32Array(0);
            if (0 === n && 0 === r) return i;
            if (0 === r && 0 === s) return e;
            let o = new Uint32Array(n + r + s);
            null !== e && o.set(e);
            for (let e = 0; e < r; e++) o[n + e] = t[e];
            return null !== i && o.set(i, n + r), o;
          }
          nestedModeTokenize(e, t, i) {
            const n = t.modeId,
              r = t.state,
              s = ue.RW.get(n);
            if (!s) return this.enterMode(i, n), this.emit(i, ''), r;
            let o = s.tokenize2(e, r, i);
            return (
              (this._prependTokens = Pt._merge(
                this._prependTokens,
                this._tokens,
                o.tokens
              )),
              (this._tokens = []),
              (this._currentLanguageId = 0),
              (this._lastTokenMetadata = 0),
              o.endState
            );
          }
          finalize(e) {
            return new z.Hi(
              Pt._merge(this._prependTokens, this._tokens, null),
              e
            );
          }
        }
        class Ft {
          constructor(e, t, i, n) {
            (this._modeService = e),
              (this._standaloneThemeService = t),
              (this._modeId = i),
              (this._lexer = n),
              (this._embeddedModes = Object.create(null)),
              (this.embeddedLoaded = Promise.resolve(void 0));
            let r = !1;
            this._tokenizationRegistryListener = ue.RW.onDidChange((e) => {
              if (r) return;
              let t = !1;
              for (let i = 0, n = e.changedLanguages.length; i < n; i++) {
                let n = e.changedLanguages[i];
                if (this._embeddedModes[n]) {
                  t = !0;
                  break;
                }
              }
              t && ((r = !0), ue.RW.fire([this._modeId]), (r = !1));
            });
          }
          dispose() {
            this._tokenizationRegistryListener.dispose();
          }
          getLoadStatus() {
            let e = [];
            for (let t in this._embeddedModes) {
              const i = ue.RW.get(t);
              if (i) {
                if (i instanceof Ft) {
                  const t = i.getLoadStatus();
                  !1 === t.loaded && e.push(t.promise);
                }
                continue;
              }
              const n = ue.RW.getPromise(t);
              n && e.push(n);
            }
            return 0 === e.length
              ? { loaded: !0 }
              : { loaded: !1, promise: Promise.all(e).then((e) => {}) };
          }
          getInitialState() {
            let e = Et.create(null, this._lexer.start);
            return Ot.create(e, null);
          }
          tokenize(e, t, i) {
            let n = new Rt(),
              r = this._tokenize(e, t, i, n);
            return n.finalize(r);
          }
          tokenize2(e, t, i) {
            let n = new Pt(
                this._modeService,
                this._standaloneThemeService.getColorTheme().tokenTheme
              ),
              r = this._tokenize(e, t, i, n);
            return n.finalize(r);
          }
          _tokenize(e, t, i, n) {
            return t.embeddedModeData
              ? this._nestedTokenize(e, t, i, n)
              : this._myTokenize(e, t, i, n);
          }
          _findLeavingNestedModeOffset(e, t) {
            let i = this._lexer.tokenizer[t.stack.state];
            if (!i && ((i = Nt(this._lexer, t.stack.state)), !i))
              throw Mt(
                this._lexer,
                'tokenizer state is not defined: ' + t.stack.state
              );
            let n = -1,
              r = !1;
            for (const t of i) {
              if (!St(t.action) || '@pop' !== t.action.nextEmbedded) continue;
              r = !0;
              let i = t.regex,
                s = t.regex.source;
              if (
                '^(?:' === s.substr(0, 4) &&
                ')' === s.substr(s.length - 1, 1)
              ) {
                let e = (i.ignoreCase ? 'i' : '') + (i.unicode ? 'u' : '');
                i = new RegExp(s.substr(4, s.length - 5), e);
              }
              let o = e.search(i);
              -1 === o ||
                (0 !== o && t.matchOnlyAtLineStart) ||
                ((-1 === n || o < n) && (n = o));
            }
            if (!r)
              throw Mt(
                this._lexer,
                'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: ' +
                  t.stack.state
              );
            return n;
          }
          _nestedTokenize(e, t, i, n) {
            let r = this._findLeavingNestedModeOffset(e, t);
            if (-1 === r) {
              let r = n.nestedModeTokenize(e, t.embeddedModeData, i);
              return Ot.create(t.stack, new It(t.embeddedModeData.modeId, r));
            }
            let s = e.substring(0, r);
            s.length > 0 && n.nestedModeTokenize(s, t.embeddedModeData, i);
            let o = e.substring(r);
            return this._myTokenize(o, t, i + r, n);
          }
          _safeRuleName(e) {
            return e ? e.name : '(unknown)';
          }
          _myTokenize(e, t, i, n) {
            n.enterMode(i, this._modeId);
            const r = e.length;
            let s = t.embeddedModeData,
              o = t.stack,
              a = 0,
              l = null,
              c = !0;
            for (; c || a < r; ) {
              const t = a,
                u = o.depth,
                g = l ? l.groups.length : 0,
                f = o.state;
              let p = null,
                m = null,
                _ = null,
                b = null,
                v = null;
              if (l) {
                p = l.matches;
                const e = l.groups.shift();
                (m = e.matched),
                  (_ = e.action),
                  (b = l.rule),
                  0 === l.groups.length && (l = null);
              } else {
                if (!c && a >= r) break;
                c = !1;
                let t = this._lexer.tokenizer[f];
                if (!t && ((t = Nt(this._lexer, f)), !t))
                  throw Mt(this._lexer, 'tokenizer state is not defined: ' + f);
                let i = e.substr(a);
                for (const e of t)
                  if (
                    (0 === a || !e.matchOnlyAtLineStart) &&
                    ((p = i.match(e.regex)), p)
                  ) {
                    (m = p[0]), (_ = e.action);
                    break;
                  }
              }
              if (
                (p || ((p = ['']), (m = '')),
                _ ||
                  (a < r && ((p = [e.charAt(a)]), (m = p[0])),
                  (_ = this._lexer.defaultToken)),
                null === m)
              )
                break;
              for (
                a += m.length;
                !(function (e) {
                  return Array.isArray(e);
                })(_) &&
                St(_) &&
                _.test;

              )
                _ = _.test(m, p, f, a === r);
              let y = null;
              if ('string' == typeof _ || Array.isArray(_)) y = _;
              else if (_.group) y = _.group;
              else if (null !== _.token && void 0 !== _.token) {
                if (
                  ((y = _.tokenSubst
                    ? Dt(this._lexer, _.token, m, p, f)
                    : _.token),
                  _.nextEmbedded)
                )
                  if ('@pop' === _.nextEmbedded) {
                    if (!s)
                      throw Mt(
                        this._lexer,
                        'cannot pop embedded mode if not inside one'
                      );
                    s = null;
                  } else {
                    if (s)
                      throw Mt(
                        this._lexer,
                        'cannot enter embedded mode from within an embedded mode'
                      );
                    v = Dt(this._lexer, _.nextEmbedded, m, p, f);
                  }
                if (
                  (_.goBack && (a = Math.max(0, a - _.goBack)),
                  _.switchTo && 'string' == typeof _.switchTo)
                ) {
                  let e = Dt(this._lexer, _.switchTo, m, p, f);
                  if (('@' === e[0] && (e = e.substr(1)), !Nt(this._lexer, e)))
                    throw Mt(
                      this._lexer,
                      "trying to switch to a state '" +
                        e +
                        "' that is undefined in rule: " +
                        this._safeRuleName(b)
                    );
                  o = o.switchTo(e);
                } else {
                  if (_.transform && 'function' == typeof _.transform)
                    throw Mt(this._lexer, 'action.transform not supported');
                  if (_.next)
                    if ('@push' === _.next) {
                      if (o.depth >= this._lexer.maxStack)
                        throw Mt(
                          this._lexer,
                          'maximum tokenizer stack size reached: [' +
                            o.state +
                            ',' +
                            o.parent.state +
                            ',...]'
                        );
                      o = o.push(f);
                    } else if ('@pop' === _.next) {
                      if (o.depth <= 1)
                        throw Mt(
                          this._lexer,
                          'trying to pop an empty stack in rule: ' +
                            this._safeRuleName(b)
                        );
                      o = o.pop();
                    } else if ('@popall' === _.next) o = o.popall();
                    else {
                      let e = Dt(this._lexer, _.next, m, p, f);
                      if (
                        ('@' === e[0] && (e = e.substr(1)), !Nt(this._lexer, e))
                      )
                        throw Mt(
                          this._lexer,
                          "trying to set a next state '" +
                            e +
                            "' that is undefined in rule: " +
                            this._safeRuleName(b)
                        );
                      o = o.push(e);
                    }
                }
                _.log &&
                  'string' == typeof _.log &&
                  ((d = this._lexer),
                  (h =
                    this._lexer.languageId +
                    ': ' +
                    Dt(this._lexer, _.log, m, p, f)),
                  console.log(`${d.languageId}: ${h}`));
              }
              if (null === y)
                throw Mt(
                  this._lexer,
                  'lexer rule has no well-defined action in rule: ' +
                    this._safeRuleName(b)
                );
              const w = (t) => {
                let s = this._modeService.getModeIdForLanguageName(t);
                s && (t = s);
                const l = this._getNestedEmbeddedModeData(t);
                if (a < r) {
                  const t = e.substr(a);
                  return this._nestedTokenize(t, Ot.create(o, l), i + a, n);
                }
                return Ot.create(o, l);
              };
              if (Array.isArray(y)) {
                if (l && l.groups.length > 0)
                  throw Mt(
                    this._lexer,
                    'groups cannot be nested: ' + this._safeRuleName(b)
                  );
                if (p.length !== y.length + 1)
                  throw Mt(
                    this._lexer,
                    'matched number of groups does not match the number of actions in rule: ' +
                      this._safeRuleName(b)
                  );
                let e = 0;
                for (let t = 1; t < p.length; t++) e += p[t].length;
                if (e !== m.length)
                  throw Mt(
                    this._lexer,
                    'with groups, all characters should be matched in consecutive groups in rule: ' +
                      this._safeRuleName(b)
                  );
                l = { rule: b, matches: p, groups: [] };
                for (let e = 0; e < y.length; e++)
                  l.groups[e] = { action: y[e], matched: p[e + 1] };
                a -= m.length;
              } else {
                {
                  if (
                    '@rematch' === y &&
                    ((a -= m.length),
                    (m = ''),
                    (p = null),
                    (y = ''),
                    null !== v)
                  )
                    return w(v);
                  if (0 === m.length) {
                    if (
                      0 === r ||
                      u !== o.depth ||
                      f !== o.state ||
                      (l ? l.groups.length : 0) !== g
                    )
                      continue;
                    throw Mt(
                      this._lexer,
                      'no progress in tokenizer in rule: ' +
                        this._safeRuleName(b)
                    );
                  }
                  let e = null;
                  if (Ct(y) && 0 === y.indexOf('@brackets')) {
                    let t = y.substr('@brackets'.length),
                      i = Bt(this._lexer, m);
                    if (!i)
                      throw Mt(
                        this._lexer,
                        '@brackets token returned but no bracket defined as: ' +
                          m
                      );
                    e = Lt(i.token + t);
                  } else e = Lt('' === y ? '' : y + this._lexer.tokenPostfix);
                  n.emit(t + i, e);
                }
                if (null !== v) return w(v);
              }
            }
            var d, h;
            return Ot.create(o, s);
          }
          _getNestedEmbeddedModeData(e) {
            let t = this._locateMode(e);
            if (t) {
              let e = ue.RW.get(t);
              if (e) return new It(t, e.getInitialState());
            }
            return new It(t || ge.TG, ge.nO);
          }
          _locateMode(e) {
            if (!e || !this._modeService.isRegisteredMode(e)) return null;
            if (e === this._modeId) return e;
            let t = this._modeService.getModeId(e);
            return (
              t &&
                (this._modeService.triggerMode(t),
                (this._embeddedModes[t] = !0)),
              t
            );
          }
        }
        function Bt(e, t) {
          if (!t) return null;
          t = xt(e, t);
          let i = e.brackets;
          for (const e of i) {
            if (e.open === t) return { token: e.token, bracketType: 1 };
            if (e.close === t) return { token: e.token, bracketType: -1 };
          }
          return null;
        }
        class Wt {
          static colorizeElement(e, t, i, n) {
            let r = (n = n || {}).theme || 'vs',
              s =
                n.mimeType ||
                i.getAttribute('lang') ||
                i.getAttribute('data-lang');
            if (!s)
              return console.error('Mode not detected'), Promise.resolve();
            e.setTheme(r);
            let o = i.firstChild ? i.firstChild.nodeValue : '';
            return (
              (i.className += ' ' + r),
              this.colorize(t, o || '', s, n).then(
                (e) => {
                  i.innerHTML = e;
                },
                (e) => console.error(e)
              )
            );
          }
          static colorize(e, t, i, n) {
            let r = 4;
            n && 'number' == typeof n.tabSize && (r = n.tabSize),
              Fe.uS(t) && (t = t.substr(1));
            let s = t.split(/\r\n|\r|\n/),
              o = e.getModeId(i);
            if (!o) return Promise.resolve(Ht(s, r));
            e.triggerMode(o);
            const a = ue.RW.get(o);
            if (a) return Yt(s, r, a);
            const l = ue.RW.getPromise(o);
            return new Promise(
              l
                ? (e, t) => {
                    l.then((i) => {
                      Yt(s, r, i).then(e, t);
                    }, t);
                  }
                : (e, t) => {
                    let i = null,
                      n = null;
                    const a = () => {
                      i && (i.dispose(), (i = null)),
                        n && (n.dispose(), (n = null));
                      const a = ue.RW.get(o);
                      a ? Yt(s, r, a).then(e, t) : e(Ht(s, r));
                    };
                    (n = new me._F()),
                      n.cancelAndSet(a, 500),
                      (i = ue.RW.onDidChange((e) => {
                        e.changedLanguages.indexOf(o) >= 0 && a();
                      }));
                  }
            );
          }
          static colorizeLine(e, t, i, n, r = 4) {
            const s = wt.wA.isBasicASCII(e, t),
              o = wt.wA.containsRTL(e, s, i);
            return (0, yt.tF)(
              new yt.IJ(
                !1,
                !0,
                e,
                !1,
                s,
                o,
                0,
                n,
                [],
                r,
                0,
                0,
                0,
                0,
                -1,
                'none',
                !1,
                !1,
                null
              )
            ).html;
          }
          static colorizeModelLine(e, t, i = 4) {
            let n = e.getLineContent(t);
            e.forceTokenization(t);
            let r = e.getLineTokens(t).inflate();
            return this.colorizeLine(
              n,
              e.mightContainNonBasicASCII(),
              e.mightContainRTL(),
              r,
              i
            );
          }
        }
        function Yt(e, t, i) {
          return new Promise((n, r) => {
            const s = () => {
              const o = (function (e, t, i) {
                let n = [],
                  r = i.getInitialState();
                for (let s = 0, o = e.length; s < o; s++) {
                  let o = e[s],
                    a = i.tokenize2(o, r, 0);
                  vt.A.convertToEndOffset(a.tokens, o.length);
                  let l = new vt.A(a.tokens, o);
                  const c = wt.wA.isBasicASCII(o, !0),
                    d = wt.wA.containsRTL(o, c, !0);
                  let h = (0, yt.tF)(
                    new yt.IJ(
                      !1,
                      !0,
                      o,
                      !1,
                      c,
                      d,
                      0,
                      l.inflate(),
                      [],
                      t,
                      0,
                      0,
                      0,
                      0,
                      -1,
                      'none',
                      !1,
                      !1,
                      null
                    )
                  );
                  (n = n.concat(h.html)), n.push('<br/>'), (r = a.endState);
                }
                return n.join('');
              })(e, t, i);
              if (i instanceof Ft) {
                const e = i.getLoadStatus();
                if (!1 === e.loaded) return void e.promise.then(s, r);
              }
              n(o);
            };
            s();
          });
        }
        function Ht(e, t) {
          let i = [];
          const n = new Uint32Array(2);
          (n[0] = 0), (n[1] = 16793600);
          for (let r = 0, s = e.length; r < s; r++) {
            let s = e[r];
            n[0] = s.length;
            const o = new vt.A(n, s),
              a = wt.wA.isBasicASCII(s, !0),
              l = wt.wA.containsRTL(s, a, !0);
            let c = (0, yt.tF)(
              new yt.IJ(
                !1,
                !0,
                s,
                !1,
                a,
                l,
                0,
                o,
                [],
                t,
                0,
                0,
                0,
                0,
                -1,
                'none',
                !1,
                !1,
                null
              )
            );
            (i = i.concat(c.html)), i.push('<br/>');
          }
          return i.join('');
        }
        var jt = i(59069),
          Vt = i(14603),
          zt = i(65520),
          Ut = i(66007),
          $t = i(56345),
          Kt = i(69386),
          qt = i(33108),
          Gt = i(43702),
          Zt = i(36248),
          Jt = i(23193);
        class Qt {
          constructor(e = {}, t = [], i = []) {
            (this._contents = e),
              (this._keys = t),
              (this._overrides = i),
              (this.isFrozen = !1);
          }
          get contents() {
            return this.checkAndFreeze(this._contents);
          }
          get overrides() {
            return this.checkAndFreeze(this._overrides);
          }
          get keys() {
            return this.checkAndFreeze(this._keys);
          }
          isEmpty() {
            return (
              0 === this._keys.length &&
              0 === Object.keys(this._contents).length &&
              0 === this._overrides.length
            );
          }
          getValue(e) {
            return e ? (0, qt.Mt)(this.contents, e) : this.contents;
          }
          override(e) {
            const t = this.getContentsForOverrideIdentifer(e);
            if (!t || 'object' != typeof t || !Object.keys(t).length)
              return this;
            let i = {};
            for (const e of De.EB([
              ...Object.keys(this.contents),
              ...Object.keys(t),
            ])) {
              let n = this.contents[e],
                r = t[e];
              r &&
                ('object' == typeof n && 'object' == typeof r
                  ? ((n = Zt.I8(n)), this.mergeContents(n, r))
                  : (n = r)),
                (i[e] = n);
            }
            return new Qt(i, this.keys, this.overrides);
          }
          merge(...e) {
            const t = Zt.I8(this.contents),
              i = Zt.I8(this.overrides),
              n = [...this.keys];
            for (const r of e) {
              this.mergeContents(t, r.contents);
              for (const e of r.overrides) {
                const [t] = i.filter((t) =>
                  De.fS(t.identifiers, e.identifiers)
                );
                t
                  ? this.mergeContents(t.contents, e.contents)
                  : i.push(Zt.I8(e));
              }
              for (const e of r.keys) -1 === n.indexOf(e) && n.push(e);
            }
            return new Qt(t, n, i);
          }
          freeze() {
            return (this.isFrozen = !0), this;
          }
          mergeContents(e, t) {
            for (const i of Object.keys(t))
              i in e && ye.Kn(e[i]) && ye.Kn(t[i])
                ? this.mergeContents(e[i], t[i])
                : (e[i] = Zt.I8(t[i]));
          }
          checkAndFreeze(e) {
            return this.isFrozen && !Object.isFrozen(e) ? Zt._A(e) : e;
          }
          getContentsForOverrideIdentifer(e) {
            for (const t of this.overrides)
              if (-1 !== t.identifiers.indexOf(e)) return t.contents;
            return null;
          }
          toJSON() {
            return {
              contents: this.contents,
              overrides: this.overrides,
              keys: this.keys,
            };
          }
          setValue(e, t) {
            this.addKey(e),
              (0, qt.KV)(this.contents, e, t, (e) => {
                throw new Error(e);
              });
          }
          removeValue(e) {
            this.removeKey(e) && (0, qt.xL)(this.contents, e);
          }
          addKey(e) {
            let t = this.keys.length;
            for (let i = 0; i < t; i++)
              0 === e.indexOf(this.keys[i]) && (t = i);
            this.keys.splice(t, 1, e);
          }
          removeKey(e) {
            let t = this.keys.indexOf(e);
            return -1 !== t && (this.keys.splice(t, 1), !0);
          }
        }
        class Xt extends Qt {
          constructor() {
            const e = (0, qt.O4)(),
              t = (0, qt.MR)(),
              i = [];
            for (const t of Object.keys(e))
              Jt.G1.test(t) &&
                i.push({
                  identifiers: [(0, Jt.Uh)(t).trim()],
                  keys: Object.keys(e[t]),
                  contents: (0, qt.Od)(e[t], (e) =>
                    console.error(`Conflict in default settings file: ${e}`)
                  ),
                });
            super(e, t, i);
          }
        }
        class ei {
          constructor(
            e,
            t,
            i = new Qt(),
            n = new Qt(),
            r = new Gt.Y9(),
            s = new Qt(),
            o = new Gt.Y9(),
            a = !0
          ) {
            (this._defaultConfiguration = e),
              (this._localUserConfiguration = t),
              (this._remoteUserConfiguration = i),
              (this._workspaceConfiguration = n),
              (this._folderConfigurations = r),
              (this._memoryConfiguration = s),
              (this._memoryConfigurationByResource = o),
              (this._freeze = a),
              (this._workspaceConsolidatedConfiguration = null),
              (this._foldersConsolidatedConfigurations = new Gt.Y9()),
              (this._userConfiguration = null);
          }
          getValue(e, t, i) {
            return this.getConsolidateConfigurationModel(t, i).getValue(e);
          }
          updateValue(e, t, i = {}) {
            let n;
            i.resource
              ? ((n = this._memoryConfigurationByResource.get(i.resource)),
                n ||
                  ((n = new Qt()),
                  this._memoryConfigurationByResource.set(i.resource, n)))
              : (n = this._memoryConfiguration),
              void 0 === t ? n.removeValue(e) : n.setValue(e, t),
              i.resource || (this._workspaceConsolidatedConfiguration = null);
          }
          get userConfiguration() {
            return (
              this._userConfiguration ||
                ((this._userConfiguration = this._remoteUserConfiguration.isEmpty()
                  ? this._localUserConfiguration
                  : this._localUserConfiguration.merge(
                      this._remoteUserConfiguration
                    )),
                this._freeze && this._userConfiguration.freeze()),
              this._userConfiguration
            );
          }
          getConsolidateConfigurationModel(e, t) {
            let i = this.getConsolidatedConfigurationModelForResource(e, t);
            return e.overrideIdentifier ? i.override(e.overrideIdentifier) : i;
          }
          getConsolidatedConfigurationModelForResource({ resource: e }, t) {
            let i = this.getWorkspaceConsolidatedConfiguration();
            if (t && e) {
              const n = t.getFolder(e);
              n && (i = this.getFolderConsolidatedConfiguration(n.uri) || i);
              const r = this._memoryConfigurationByResource.get(e);
              r && (i = i.merge(r));
            }
            return i;
          }
          getWorkspaceConsolidatedConfiguration() {
            return (
              this._workspaceConsolidatedConfiguration ||
                ((this._workspaceConsolidatedConfiguration = this._defaultConfiguration.merge(
                  this.userConfiguration,
                  this._workspaceConfiguration,
                  this._memoryConfiguration
                )),
                this._freeze &&
                  (this._workspaceConfiguration = this._workspaceConfiguration.freeze())),
              this._workspaceConsolidatedConfiguration
            );
          }
          getFolderConsolidatedConfiguration(e) {
            let t = this._foldersConsolidatedConfigurations.get(e);
            if (!t) {
              const i = this.getWorkspaceConsolidatedConfiguration(),
                n = this._folderConfigurations.get(e);
              n
                ? ((t = i.merge(n)),
                  this._freeze && (t = t.freeze()),
                  this._foldersConsolidatedConfigurations.set(e, t))
                : (t = i);
            }
            return t;
          }
          toData() {
            return {
              defaults: {
                contents: this._defaultConfiguration.contents,
                overrides: this._defaultConfiguration.overrides,
                keys: this._defaultConfiguration.keys,
              },
              user: {
                contents: this.userConfiguration.contents,
                overrides: this.userConfiguration.overrides,
                keys: this.userConfiguration.keys,
              },
              workspace: {
                contents: this._workspaceConfiguration.contents,
                overrides: this._workspaceConfiguration.overrides,
                keys: this._workspaceConfiguration.keys,
              },
              folders: [...this._folderConfigurations.keys()].reduce((e, t) => {
                const {
                  contents: i,
                  overrides: n,
                  keys: r,
                } = this._folderConfigurations.get(t);
                return e.push([t, { contents: i, overrides: n, keys: r }]), e;
              }, []),
            };
          }
          static parse(e) {
            const t = this.parseConfigurationModel(e.defaults),
              i = this.parseConfigurationModel(e.user),
              n = this.parseConfigurationModel(e.workspace),
              r = e.folders.reduce(
                (e, t) => (
                  e.set(Y.o.revive(t[0]), this.parseConfigurationModel(t[1])), e
                ),
                new Gt.Y9()
              );
            return new ei(t, i, new Qt(), n, r, new Qt(), new Gt.Y9(), !1);
          }
          static parseConfigurationModel(e) {
            return new Qt(e.contents, e.keys, e.overrides).freeze();
          }
        }
        class ti {
          constructor(e, t, i, n) {
            (this.change = e),
              (this.previous = t),
              (this.currentConfiguraiton = i),
              (this.currentWorkspace = n),
              (this._previousConfiguration = void 0);
            const r = new Set();
            e.keys.forEach((e) => r.add(e)),
              e.overrides.forEach(([, e]) => e.forEach((e) => r.add(e))),
              (this.affectedKeys = [...r.values()]);
            const s = new Qt();
            this.affectedKeys.forEach((e) => s.setValue(e, {})),
              (this.affectedKeysTree = s.contents);
          }
          get previousConfiguration() {
            return (
              !this._previousConfiguration &&
                this.previous &&
                (this._previousConfiguration = ei.parse(this.previous.data)),
              this._previousConfiguration
            );
          }
          affectsConfiguration(e, t) {
            var i;
            if (this.doesAffectedKeysTreeContains(this.affectedKeysTree, e)) {
              if (t) {
                const n = this.previousConfiguration
                    ? this.previousConfiguration.getValue(
                        e,
                        t,
                        null === (i = this.previous) || void 0 === i
                          ? void 0
                          : i.workspace
                      )
                    : void 0,
                  r = this.currentConfiguraiton.getValue(
                    e,
                    t,
                    this.currentWorkspace
                  );
                return !Zt.fS(n, r);
              }
              return !0;
            }
            return !1;
          }
          doesAffectedKeysTreeContains(e, t) {
            let i,
              n = (0, qt.Od)({ [t]: !0 }, () => {});
            for (; 'object' == typeof n && (i = Object.keys(n)[0]); ) {
              if (!(e = e[i])) return !1;
              n = n[i];
            }
            return !0;
          }
        }
        var ii = i(63580);
        class ni extends _e.JT {
          constructor(e, t, i, n, r) {
            super(),
              (this._contextKeyService = e),
              (this._commandService = t),
              (this._telemetryService = i),
              (this._notificationService = n),
              (this._logService = r),
              (this._onDidUpdateKeybindings = this._register(new B.Q5())),
              (this._currentChord = null),
              (this._currentChordChecker = new me.zh()),
              (this._currentChordStatusMessage = null),
              (this._logging = !1);
          }
          get onDidUpdateKeybindings() {
            return this._onDidUpdateKeybindings
              ? this._onDidUpdateKeybindings.event
              : B.ju.None;
          }
          dispose() {
            super.dispose();
          }
          _log(e) {
            this._logging && this._logService.info(`[KeybindingService]: ${e}`);
          }
          getKeybindings() {
            return this._getResolver().getKeybindings();
          }
          lookupKeybindings(e) {
            return De.kX(
              this._getResolver()
                .lookupKeybindings(e)
                .map((e) => e.resolvedKeybinding)
            );
          }
          lookupKeybinding(e) {
            const t = this._getResolver().lookupPrimaryKeybinding(e);
            if (t) return t.resolvedKeybinding;
          }
          dispatchEvent(e, t) {
            return this._dispatch(e, t);
          }
          softDispatch(e, t) {
            const i = this.resolveKeyboardEvent(e);
            if (i.isChord())
              return (
                console.warn('Unexpected keyboard event mapped to a chord'),
                null
              );
            const [n] = i.getDispatchParts();
            if (null === n) return null;
            const r = this._contextKeyService.getContext(t),
              s = this._currentChord ? this._currentChord.keypress : null;
            return this._getResolver().resolve(r, s, n);
          }
          _enterChordMode(e, t) {
            (this._currentChord = { keypress: e, label: t }),
              (this._currentChordStatusMessage = this._notificationService.status(
                ii.N(
                  'first.chord',
                  '({0}) was pressed. Waiting for second key of chord...',
                  t
                )
              ));
            const i = Date.now();
            this._currentChordChecker.cancelAndSet(() => {
              this._documentHasFocus()
                ? Date.now() - i > 5e3 && this._leaveChordMode()
                : this._leaveChordMode();
            }, 500);
          }
          _leaveChordMode() {
            this._currentChordStatusMessage &&
              (this._currentChordStatusMessage.dispose(),
              (this._currentChordStatusMessage = null)),
              this._currentChordChecker.cancel(),
              (this._currentChord = null);
          }
          _dispatch(e, t) {
            return this._doDispatch(this.resolveKeyboardEvent(e), t);
          }
          _doDispatch(e, t) {
            let i = !1;
            if (e.isChord())
              return (
                console.warn('Unexpected keyboard event mapped to a chord'), !1
              );
            const [n] = e.getDispatchParts();
            if (null === n)
              return this._log('\\ Keyboard event cannot be dispatched.'), i;
            const r = this._contextKeyService.getContext(t),
              s = this._currentChord ? this._currentChord.keypress : null,
              o = e.getLabel(),
              a = this._getResolver().resolve(r, s, n);
            return (
              this._logService.trace(
                'KeybindingService#dispatch',
                o,
                null == a ? void 0 : a.commandId
              ),
              a && a.enterChord
                ? ((i = !0), this._enterChordMode(n, o), i)
                : (this._currentChord &&
                    ((a && a.commandId) ||
                      (this._notificationService.status(
                        ii.N(
                          'missing.chord',
                          'The key combination ({0}, {1}) is not a command.',
                          this._currentChord.label,
                          o
                        ),
                        { hideAfter: 1e4 }
                      ),
                      (i = !0))),
                  this._leaveChordMode(),
                  a &&
                    a.commandId &&
                    (a.bubble || (i = !0),
                    void 0 === a.commandArgs
                      ? this._commandService
                          .executeCommand(a.commandId)
                          .then(void 0, (e) =>
                            this._notificationService.warn(e)
                          )
                      : this._commandService
                          .executeCommand(a.commandId, a.commandArgs)
                          .then(void 0, (e) =>
                            this._notificationService.warn(e)
                          ),
                    this._telemetryService.publicLog2(
                      'workbenchActionExecuted',
                      { id: a.commandId, from: 'keybinding' }
                    )),
                  i)
            );
          }
          mightProducePrintableCharacter(e) {
            return (
              !e.ctrlKey &&
              !e.metaKey &&
              ((e.keyCode >= 31 && e.keyCode <= 56) ||
                (e.keyCode >= 21 && e.keyCode <= 30))
            );
          }
        }
        class ri {
          constructor(e, t, i) {
            (this._log = i),
              (this._defaultKeybindings = e),
              (this._defaultBoundCommands = new Map());
            for (let t = 0, i = e.length; t < i; t++) {
              const i = e[t].command;
              i && this._defaultBoundCommands.set(i, !0);
            }
            (this._map = new Map()),
              (this._lookupMap = new Map()),
              (this._keybindings = ri.combine(e, t));
            for (let e = 0, t = this._keybindings.length; e < t; e++) {
              let t = this._keybindings[e];
              0 !== t.keypressParts.length &&
                ((t.when && 0 === t.when.type) ||
                  this._addKeyPress(t.keypressParts[0], t));
            }
          }
          static _isTargetedForRemoval(e, t, i, n, r) {
            if (e.command !== n) return !1;
            if (t && e.keypressParts[0] !== t) return !1;
            if (i && e.keypressParts[1] !== i) return !1;
            if (r) {
              if (!e.when) return !1;
              if (!r.equals(e.when)) return !1;
            }
            return !0;
          }
          static combine(e, t) {
            e = e.slice(0);
            let i = [];
            for (const n of t) {
              if (
                !n.command ||
                0 === n.command.length ||
                '-' !== n.command.charAt(0)
              ) {
                i.push(n);
                continue;
              }
              const t = n.command.substr(1),
                r = n.keypressParts[0],
                s = n.keypressParts[1],
                o = n.when;
              for (let i = e.length - 1; i >= 0; i--)
                this._isTargetedForRemoval(e[i], r, s, t, o) && e.splice(i, 1);
            }
            return e.concat(i);
          }
          _addKeyPress(e, t) {
            const i = this._map.get(e);
            if (void 0 === i)
              return this._map.set(e, [t]), void this._addToLookupMap(t);
            for (let e = i.length - 1; e >= 0; e--) {
              let n = i[e];
              if (n.command === t.command) continue;
              const r = n.keypressParts.length > 1,
                s = t.keypressParts.length > 1;
              (r && s && n.keypressParts[1] !== t.keypressParts[1]) ||
                (ri.whenIsEntirelyIncluded(n.when, t.when) &&
                  this._removeFromLookupMap(n));
            }
            i.push(t), this._addToLookupMap(t);
          }
          _addToLookupMap(e) {
            if (!e.command) return;
            let t = this._lookupMap.get(e.command);
            void 0 === t
              ? ((t = [e]), this._lookupMap.set(e.command, t))
              : t.push(e);
          }
          _removeFromLookupMap(e) {
            if (!e.command) return;
            let t = this._lookupMap.get(e.command);
            if (void 0 !== t)
              for (let i = 0, n = t.length; i < n; i++)
                if (t[i] === e) return void t.splice(i, 1);
          }
          static whenIsEntirelyIncluded(e, t) {
            return !t || (!!e && this._implies(e, t));
          }
          static _implies(e, t) {
            const i = (e) => (9 === e.type ? e.expr : [e]);
            let n = i(e.negate()).concat(i(t));
            for (let e = 0; e < n.length; e++) {
              const t = n[e].negate();
              for (let i = e + 1; i < n.length; i++) {
                const e = n[i];
                if (t.equals(e)) return !0;
              }
            }
            return !1;
          }
          getKeybindings() {
            return this._keybindings;
          }
          lookupKeybindings(e) {
            let t = this._lookupMap.get(e);
            if (void 0 === t || 0 === t.length) return [];
            let i = [],
              n = 0;
            for (let e = t.length - 1; e >= 0; e--) i[n++] = t[e];
            return i;
          }
          lookupPrimaryKeybinding(e) {
            let t = this._lookupMap.get(e);
            return void 0 === t || 0 === t.length ? null : t[t.length - 1];
          }
          resolve(e, t, i) {
            this._log(`| Resolving ${i}${t ? ` chorded from ${t}` : ''}`);
            let n = null;
            if (null !== t) {
              const e = this._map.get(t);
              if (void 0 === e)
                return this._log('\\ No keybinding entries.'), null;
              n = [];
              for (let t = 0, r = e.length; t < r; t++) {
                let r = e[t];
                r.keypressParts[1] === i && n.push(r);
              }
            } else {
              const e = this._map.get(i);
              if (void 0 === e)
                return this._log('\\ No keybinding entries.'), null;
              n = e;
            }
            let r = this._findCommand(e, n);
            return r
              ? null === t &&
                r.keypressParts.length > 1 &&
                null !== r.keypressParts[1]
                ? (this._log(
                    `\\ From ${
                      n.length
                    } keybinding entries, matched chord, when: ${si(
                      r.when
                    )}, source: ${oi(r)}.`
                  ),
                  {
                    enterChord: !0,
                    leaveChord: !1,
                    commandId: null,
                    commandArgs: null,
                    bubble: !1,
                  })
                : (this._log(
                    `\\ From ${n.length} keybinding entries, matched ${
                      r.command
                    }, when: ${si(r.when)}, source: ${oi(r)}.`
                  ),
                  {
                    enterChord: !1,
                    leaveChord: r.keypressParts.length > 1,
                    commandId: r.command,
                    commandArgs: r.commandArgs,
                    bubble: r.bubble,
                  })
              : (this._log(
                  `\\ From ${n.length} keybinding entries, no when clauses matched the context.`
                ),
                null);
          }
          _findCommand(e, t) {
            for (let i = t.length - 1; i >= 0; i--) {
              let n = t[i];
              if (ri.contextMatchesRules(e, n.when)) return n;
            }
            return null;
          }
          static contextMatchesRules(e, t) {
            return !t || t.evaluate(e);
          }
        }
        function si(e) {
          return e ? `${e.serialize()}` : 'no when condition';
        }
        function oi(e) {
          return e.isDefault
            ? e.extensionId
              ? `built-in extension ${e.extensionId}`
              : 'built-in'
            : e.extensionId
            ? `user extension ${e.extensionId}`
            : 'user';
        }
        var ai = i(49989);
        class li {
          constructor(e, t, i, n, r, s) {
            (this.resolvedKeybinding = e),
              (this.keypressParts = e
                ? (function (e) {
                    let t = [];
                    for (let i = 0, n = e.length; i < n; i++) {
                      const n = e[i];
                      if (!n) return t;
                      t.push(n);
                    }
                    return t;
                  })(e.getDispatchParts())
                : []),
              (this.bubble = !!t && 94 === t.charCodeAt(0)),
              (this.command = this.bubble ? t.substr(1) : t),
              (this.commandArgs = i),
              (this.when = n),
              (this.isDefault = r),
              (this.extensionId = s);
          }
        }
        class ci {
          constructor(e, t, i = t) {
            (this.modifierLabels = [null]),
              (this.modifierLabels[2] = e),
              (this.modifierLabels[1] = t),
              (this.modifierLabels[3] = i);
          }
          toLabel(e, t, i) {
            if (0 === t.length) return null;
            const n = [];
            for (let r = 0, s = t.length; r < s; r++) {
              const s = t[r],
                o = i(s);
              if (null === o) return null;
              n[r] = ui(s, o, this.modifierLabels[e]);
            }
            return n.join(' ');
          }
        }
        const di = new ci(
            {
              ctrlKey: '⌃',
              shiftKey: '⇧',
              altKey: '⌥',
              metaKey: '⌘',
              separator: '',
            },
            {
              ctrlKey: ii.N(
                {
                  key: 'ctrlKey',
                  comment: [
                    'This is the short form for the Control key on the keyboard',
                  ],
                },
                'Ctrl'
              ),
              shiftKey: ii.N(
                {
                  key: 'shiftKey',
                  comment: [
                    'This is the short form for the Shift key on the keyboard',
                  ],
                },
                'Shift'
              ),
              altKey: ii.N(
                {
                  key: 'altKey',
                  comment: [
                    'This is the short form for the Alt key on the keyboard',
                  ],
                },
                'Alt'
              ),
              metaKey: ii.N(
                {
                  key: 'windowsKey',
                  comment: [
                    'This is the short form for the Windows key on the keyboard',
                  ],
                },
                'Windows'
              ),
              separator: '+',
            },
            {
              ctrlKey: ii.N(
                {
                  key: 'ctrlKey',
                  comment: [
                    'This is the short form for the Control key on the keyboard',
                  ],
                },
                'Ctrl'
              ),
              shiftKey: ii.N(
                {
                  key: 'shiftKey',
                  comment: [
                    'This is the short form for the Shift key on the keyboard',
                  ],
                },
                'Shift'
              ),
              altKey: ii.N(
                {
                  key: 'altKey',
                  comment: [
                    'This is the short form for the Alt key on the keyboard',
                  ],
                },
                'Alt'
              ),
              metaKey: ii.N(
                {
                  key: 'superKey',
                  comment: [
                    'This is the short form for the Super key on the keyboard',
                  ],
                },
                'Super'
              ),
              separator: '+',
            }
          ),
          hi = new ci(
            {
              ctrlKey: ii.N(
                {
                  key: 'ctrlKey.long',
                  comment: [
                    'This is the long form for the Control key on the keyboard',
                  ],
                },
                'Control'
              ),
              shiftKey: ii.N(
                {
                  key: 'shiftKey.long',
                  comment: [
                    'This is the long form for the Shift key on the keyboard',
                  ],
                },
                'Shift'
              ),
              altKey: ii.N(
                {
                  key: 'altKey.long',
                  comment: [
                    'This is the long form for the Alt key on the keyboard',
                  ],
                },
                'Alt'
              ),
              metaKey: ii.N(
                {
                  key: 'cmdKey.long',
                  comment: [
                    'This is the long form for the Command key on the keyboard',
                  ],
                },
                'Command'
              ),
              separator: '+',
            },
            {
              ctrlKey: ii.N(
                {
                  key: 'ctrlKey.long',
                  comment: [
                    'This is the long form for the Control key on the keyboard',
                  ],
                },
                'Control'
              ),
              shiftKey: ii.N(
                {
                  key: 'shiftKey.long',
                  comment: [
                    'This is the long form for the Shift key on the keyboard',
                  ],
                },
                'Shift'
              ),
              altKey: ii.N(
                {
                  key: 'altKey.long',
                  comment: [
                    'This is the long form for the Alt key on the keyboard',
                  ],
                },
                'Alt'
              ),
              metaKey: ii.N(
                {
                  key: 'windowsKey.long',
                  comment: [
                    'This is the long form for the Windows key on the keyboard',
                  ],
                },
                'Windows'
              ),
              separator: '+',
            },
            {
              ctrlKey: ii.N(
                {
                  key: 'ctrlKey.long',
                  comment: [
                    'This is the long form for the Control key on the keyboard',
                  ],
                },
                'Control'
              ),
              shiftKey: ii.N(
                {
                  key: 'shiftKey.long',
                  comment: [
                    'This is the long form for the Shift key on the keyboard',
                  ],
                },
                'Shift'
              ),
              altKey: ii.N(
                {
                  key: 'altKey.long',
                  comment: [
                    'This is the long form for the Alt key on the keyboard',
                  ],
                },
                'Alt'
              ),
              metaKey: ii.N(
                {
                  key: 'superKey.long',
                  comment: [
                    'This is the long form for the Super key on the keyboard',
                  ],
                },
                'Super'
              ),
              separator: '+',
            }
          );
        function ui(e, t, i) {
          if (null === t) return '';
          const n = [];
          return (
            e.ctrlKey && n.push(i.ctrlKey),
            e.shiftKey && n.push(i.shiftKey),
            e.altKey && n.push(i.altKey),
            e.metaKey && n.push(i.metaKey),
            '' !== t && n.push(t),
            n.join(i.separator)
          );
        }
        class gi extends W.f1 {
          constructor(e, t) {
            if ((super(), 0 === t.length)) throw (0, be.b1)('parts');
            (this._os = e), (this._parts = t);
          }
          getLabel() {
            return di.toLabel(this._os, this._parts, (e) => this._getLabel(e));
          }
          getAriaLabel() {
            return hi.toLabel(this._os, this._parts, (e) =>
              this._getAriaLabel(e)
            );
          }
          isChord() {
            return this._parts.length > 1;
          }
          getParts() {
            return this._parts.map((e) => this._getPart(e));
          }
          _getPart(e) {
            return new W.BQ(
              e.ctrlKey,
              e.shiftKey,
              e.altKey,
              e.metaKey,
              this._getLabel(e),
              this._getAriaLabel(e)
            );
          }
          getDispatchParts() {
            return this._parts.map((e) => this._getDispatchPart(e));
          }
        }
        class fi extends gi {
          constructor(e, t) {
            super(t, e.parts);
          }
          _keyCodeToUILabel(e) {
            if (2 === this._os)
              switch (e) {
                case 15:
                  return '←';
                case 16:
                  return '↑';
                case 17:
                  return '→';
                case 18:
                  return '↓';
              }
            return W.kL.toString(e);
          }
          _getLabel(e) {
            return e.isDuplicateModifierCase()
              ? ''
              : this._keyCodeToUILabel(e.keyCode);
          }
          _getAriaLabel(e) {
            return e.isDuplicateModifierCase() ? '' : W.kL.toString(e.keyCode);
          }
          _getDispatchPart(e) {
            return fi.getDispatchStr(e);
          }
          static getDispatchStr(e) {
            if (e.isModifierKey()) return null;
            let t = '';
            return (
              e.ctrlKey && (t += 'ctrl+'),
              e.shiftKey && (t += 'shift+'),
              e.altKey && (t += 'alt+'),
              e.metaKey && (t += 'meta+'),
              (t += W.kL.toString(e.keyCode)),
              t
            );
          }
        }
        var pi = i(59422),
          mi = i(40382),
          _i = i(20913),
          bi = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          vi = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class yi {
          constructor(e) {
            (this.disposed = !1),
              (this.model = e),
              (this._onDispose = new B.Q5());
          }
          get textEditorModel() {
            return this.model;
          }
          dispose() {
            (this.disposed = !0), this._onDispose.fire();
          }
        }
        let wi = class {
          constructor(e) {
            this.modelService = e;
          }
          setEditor(e) {
            this.editor = e;
          }
          createModelReference(e) {
            let t = null;
            var i, n, r;
            return (
              this.editor &&
                ((i = this.editor),
                (n = (t) => this.findModel(t, e)),
                (r = (t) =>
                  this.findModel(t.getOriginalEditor(), e) ||
                  this.findModel(t.getModifiedEditor(), e)),
                (t = (0, zt.CL)(i) ? n(i) : r(i))),
              t
                ? Promise.resolve(new _e.Jz(new yi(t)))
                : Promise.reject(new Error('Model not found'))
            );
          }
          findModel(e, t) {
            let i = this.modelService.getModel(t);
            return i && i.uri.toString() !== t.toString() ? null : i;
          }
        };
        wi = bi([vi(0, st.q)], wi);
        class Ci {
          show() {
            return Ci.NULL_PROGRESS_RUNNER;
          }
          showWhile(e, t) {
            return Promise.resolve(void 0);
          }
        }
        Ci.NULL_PROGRESS_RUNNER = {
          done: () => {},
          total: () => {},
          worked: () => {},
        };
        class Si {
          confirm(e) {
            return this.doConfirm(e).then((e) => ({
              confirmed: e,
              checkboxChecked: !1,
            }));
          }
          doConfirm(e) {
            let t = e.message;
            return (
              e.detail && (t = t + '\n\n' + e.detail),
              Promise.resolve(window.confirm(t))
            );
          }
          show(e, t, i, n) {
            return Promise.resolve({ choice: 0 });
          }
        }
        class ki {
          info(e) {
            return this.notify({ severity: Vt.Z.Info, message: e });
          }
          warn(e) {
            return this.notify({ severity: Vt.Z.Warning, message: e });
          }
          error(e) {
            return this.notify({ severity: Vt.Z.Error, message: e });
          }
          notify(e) {
            switch (e.severity) {
              case Vt.Z.Error:
                console.error(e.message);
                break;
              case Vt.Z.Warning:
                console.warn(e.message);
                break;
              default:
                console.log(e.message);
            }
            return ki.NO_OP;
          }
          status(e, t) {
            return _e.JT.None;
          }
        }
        ki.NO_OP = new pi.EO();
        class xi {
          constructor(e) {
            (this._onWillExecuteCommand = new B.Q5()),
              (this._onDidExecuteCommand = new B.Q5()),
              (this._instantiationService = e);
          }
          executeCommand(e, ...t) {
            const i = ee.P.getCommand(e);
            if (!i)
              return Promise.reject(new Error(`command '${e}' not found`));
            try {
              this._onWillExecuteCommand.fire({ commandId: e, args: t });
              const n = this._instantiationService.invokeFunction.apply(
                this._instantiationService,
                [i.handler, ...t]
              );
              return (
                this._onDidExecuteCommand.fire({ commandId: e, args: t }),
                Promise.resolve(n)
              );
            } catch (e) {
              return Promise.reject(e);
            }
          }
        }
        class Li extends ni {
          constructor(e, t, i, n, r, s) {
            super(e, t, i, n, r),
              (this._cachedResolver = null),
              (this._dynamicKeybindings = []),
              this._register(
                G.nm(s, G.tw.KEY_DOWN, (e) => {
                  let t = new jt.y(e);
                  this._dispatch(t, t.target) &&
                    (t.preventDefault(), t.stopPropagation());
                })
              );
          }
          addDynamicKeybinding(e, t, i, n) {
            const r = (0, W.gm)(t, ve.OS),
              s = new _e.SL();
            return (
              r &&
                (this._dynamicKeybindings.push({
                  keybinding: r,
                  command: e,
                  when: n,
                  weight1: 1e3,
                  weight2: 0,
                  extensionId: null,
                }),
                s.add(
                  (0, _e.OF)(() => {
                    for (let t = 0; t < this._dynamicKeybindings.length; t++)
                      if (this._dynamicKeybindings[t].command === e)
                        return (
                          this._dynamicKeybindings.splice(t, 1),
                          void this.updateResolver({ source: 1 })
                        );
                  })
                )),
              s.add(ee.P.registerCommand(e, i)),
              this.updateResolver({ source: 1 }),
              s
            );
          }
          updateResolver(e) {
            (this._cachedResolver = null), this._onDidUpdateKeybindings.fire(e);
          }
          _getResolver() {
            if (!this._cachedResolver) {
              const e = this._toNormalizedKeybindingItems(
                  ai.W.getDefaultKeybindings(),
                  !0
                ),
                t = this._toNormalizedKeybindingItems(
                  this._dynamicKeybindings,
                  !1
                );
              this._cachedResolver = new ri(e, t, (e) => this._log(e));
            }
            return this._cachedResolver;
          }
          _documentHasFocus() {
            return document.hasFocus();
          }
          _toNormalizedKeybindingItems(e, t) {
            let i = [],
              n = 0;
            for (const r of e) {
              const e = r.when || void 0,
                s = r.keybinding;
              if (s) {
                const o = this.resolveKeybinding(s);
                for (const s of o)
                  i[n++] = new li(s, r.command, r.commandArgs, e, t, null);
              } else
                i[n++] = new li(void 0, r.command, r.commandArgs, e, t, null);
            }
            return i;
          }
          resolveKeybinding(e) {
            return [new fi(e, ve.OS)];
          }
          resolveKeyboardEvent(e) {
            let t = new W.QC(
              e.ctrlKey,
              e.shiftKey,
              e.altKey,
              e.metaKey,
              e.keyCode
            ).toChord();
            return new fi(t, ve.OS);
          }
        }
        function Mi(e) {
          return (
            e &&
            'object' == typeof e &&
            (!e.overrideIdentifier ||
              'string' == typeof e.overrideIdentifier) &&
            (!e.resource || e.resource instanceof Y.o)
          );
        }
        class Di {
          constructor() {
            (this._onDidChangeConfiguration = new B.Q5()),
              (this.onDidChangeConfiguration = this._onDidChangeConfiguration.event),
              (this._configuration = new ei(new Xt(), new Qt()));
          }
          getValue(e, t) {
            const i = 'string' == typeof e ? e : void 0,
              n = Mi(e) ? e : Mi(t) ? t : {};
            return this._configuration.getValue(i, n, void 0);
          }
          updateValues(e) {
            const t = { data: this._configuration.toData() };
            let i = [];
            for (const t of e) {
              const [e, n] = t;
              this.getValue(e) !== n &&
                (this._configuration.updateValue(e, n), i.push(e));
            }
            if (i.length > 0) {
              const e = new ti(
                { keys: i, overrides: [] },
                t,
                this._configuration
              );
              (e.source = 7),
                (e.sourceConfig = null),
                this._onDidChangeConfiguration.fire(e);
            }
            return Promise.resolve();
          }
        }
        class Ni {
          constructor(e) {
            (this.configurationService = e),
              (this._onDidChangeConfiguration = new B.Q5()),
              this.configurationService.onDidChangeConfiguration((e) => {
                this._onDidChangeConfiguration.fire({
                  affectedKeys: e.affectedKeys,
                  affectsConfiguration: (t, i) => e.affectsConfiguration(i),
                });
              });
          }
          getValue(e, t, i) {
            const n =
              H.L.isIPosition(t) && t
                ? 'string' == typeof i
                  ? i
                  : void 0
                : 'string' == typeof t
                ? t
                : void 0;
            return void 0 === n
              ? this.configurationService.getValue()
              : this.configurationService.getValue(n);
          }
        }
        let Ei = class {
          constructor(e) {
            this.configurationService = e;
          }
          getEOL(e, t) {
            const i = this.configurationService.getValue('files.eol', {
              overrideIdentifier: t,
              resource: e,
            });
            return i && 'auto' !== i ? i : ve.IJ || ve.dz ? '\n' : '\r\n';
          }
        };
        Ei = bi([vi(0, qt.Ui)], Ei);
        class Ti {
          publicLog(e, t) {
            return Promise.resolve(void 0);
          }
          publicLog2(e, t) {
            return this.publicLog(e, t);
          }
        }
        class Ii {
          constructor() {
            const e = Y.o.from({
              scheme: Ii.SCHEME,
              authority: 'model',
              path: '/',
            });
            this.workspace = {
              id: '4064f6ec-cb38-4ad0-af64-ee6467e63c82',
              folders: [new mi.md({ uri: e, name: '', index: 0 })],
            };
          }
          getWorkspace() {
            return this.workspace;
          }
          getWorkspaceFolder(e) {
            return e && e.scheme === Ii.SCHEME
              ? this.workspace.folders[0]
              : null;
          }
        }
        function Oi(e, t, i) {
          if (!t) return;
          if (!(e instanceof Di)) return;
          let n = [];
          Object.keys(t).forEach((e) => {
            (0, $t.ei)(e) && n.push([`editor.${e}`, t[e]]),
              i && (0, $t.Pe)(e) && n.push([`diffEditor.${e}`, t[e]]);
          }),
            n.length > 0 && e.updateValues(n);
        }
        Ii.SCHEME = 'inmemory';
        class Ai {
          constructor(e) {
            this._modelService = e;
          }
          hasPreviewHandler() {
            return !1;
          }
          apply(e, t) {
            return (
              (i = this),
              (n = void 0),
              (s = function* () {
                const t = new Map();
                for (let i of e) {
                  if (!(i instanceof Ut.Gl))
                    throw new Error('bad edit - only text edits are supported');
                  const e = this._modelService.getModel(i.resource);
                  if (!e) throw new Error('bad edit - model not found');
                  if (
                    'number' == typeof i.versionId &&
                    e.getVersionId() !== i.versionId
                  )
                    throw new Error(
                      'bad state - model changed in the meantime'
                    );
                  let n = t.get(e);
                  n || ((n = []), t.set(e, n)),
                    n.push(
                      Kt.h.replaceMove(
                        j.e.lift(i.textEdit.range),
                        i.textEdit.text
                      )
                    );
                }
                let i = 0,
                  n = 0;
                for (const [e, r] of t)
                  e.pushStackElement(),
                    e.pushEditOperations([], r, () => []),
                    e.pushStackElement(),
                    (n += 1),
                    (i += r.length);
                return {
                  ariaSummary: Fe.WU(_i.UL.bulkEditServiceSummary, i, n),
                };
              }),
              new ((r = void 0) || (r = Promise))(function (e, t) {
                function o(e) {
                  try {
                    l(s.next(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function a(e) {
                  try {
                    l(s.throw(e));
                  } catch (e) {
                    t(e);
                  }
                }
                function l(t) {
                  var i;
                  t.done
                    ? e(t.value)
                    : ((i = t.value),
                      i instanceof r
                        ? i
                        : new r(function (e) {
                            e(i);
                          })).then(o, a);
                }
                l((s = s.apply(i, n || [])).next());
              })
            );
            var i, n, r, s;
          }
        }
        class Ri {
          getUriLabel(e, t) {
            return 'file' === e.scheme ? e.fsPath : e.path;
          }
        }
        class Pi {
          constructor(e, t) {
            (this._codeEditorService = e),
              (this._container = t),
              (this.onLayout = B.ju.None);
          }
          get dimension() {
            return (
              this._dimension || (this._dimension = G.D6(window.document.body)),
              this._dimension
            );
          }
          get container() {
            return this._container;
          }
          focus() {
            var e;
            null === (e = this._codeEditorService.getFocusedCodeEditor()) ||
              void 0 === e ||
              e.focus();
          }
        }
        var Fi = i(85152),
          Bi = i(95190),
          Wi = i(68143),
          Yi = i(30653),
          Hi = i(12095),
          ji = i(84144),
          Vi = i(38819),
          zi = i(5606),
          Ui = i(72065),
          $i = i(91847),
          Ki = i(97781),
          qi = i(31106),
          Gi = i(84972),
          Zi = i(90535),
          Ji = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          Qi = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let Xi = 0,
          en = !1,
          tn = class extends Bi.Gm {
            constructor(e, t, i, n, r, s, o, a, l, c) {
              ((t = t || {}).ariaLabel =
                t.ariaLabel || _i.B8.editorViewAccessibleLabel),
                (t.ariaLabel =
                  t.ariaLabel + ';' + _i.B8.accessibilityHelpMessage),
                super(e, t, {}, i, n, r, s, a, l, c),
                (this._standaloneKeybindingService =
                  o instanceof Li ? o : null),
                en || ((en = !0), Fi.wW(document.body));
            }
            addCommand(e, t, i) {
              if (!this._standaloneKeybindingService)
                return (
                  console.warn(
                    'Cannot add command because the editor is configured with an unrecognized KeybindingService'
                  ),
                  null
                );
              let n = 'DYNAMIC_' + ++Xi,
                r = Vi.Ao.deserialize(i);
              return (
                this._standaloneKeybindingService.addDynamicKeybinding(
                  n,
                  e,
                  t,
                  r
                ),
                n
              );
            }
            createContextKey(e, t) {
              return this._contextKeyService.createKey(e, t);
            }
            addAction(e) {
              if (
                'string' != typeof e.id ||
                'string' != typeof e.label ||
                'function' != typeof e.run
              )
                throw new Error(
                  'Invalid action descriptor, `id`, `label` and `run` are required properties!'
                );
              if (!this._standaloneKeybindingService)
                return (
                  console.warn(
                    'Cannot add keybinding because the editor is configured with an unrecognized KeybindingService'
                  ),
                  _e.JT.None
                );
              const t = e.id,
                i = e.label,
                n = Vi.Ao.and(
                  Vi.Ao.equals('editorId', this.getId()),
                  Vi.Ao.deserialize(e.precondition)
                ),
                r = e.keybindings,
                s = Vi.Ao.and(n, Vi.Ao.deserialize(e.keybindingContext)),
                o = e.contextMenuGroupId || null,
                a = e.contextMenuOrder || 0,
                l = (t, ...i) => Promise.resolve(e.run(this, ...i)),
                c = new _e.SL(),
                d = this.getId() + ':' + t;
              if ((c.add(ee.P.registerCommand(d, l)), o)) {
                let e = {
                  command: { id: d, title: i },
                  when: n,
                  group: o,
                  order: a,
                };
                c.add(ji.BH.appendMenuItem(ji.eH.EditorContext, e));
              }
              if (Array.isArray(r))
                for (const e of r)
                  c.add(
                    this._standaloneKeybindingService.addDynamicKeybinding(
                      d,
                      e,
                      l,
                      s
                    )
                  );
              let h = new Yi.p(d, i, i, n, l, this._contextKeyService);
              return (
                (this._actions[t] = h),
                c.add(
                  (0, _e.OF)(() => {
                    delete this._actions[t];
                  })
                ),
                c
              );
            }
          };
        tn = Ji(
          [
            Qi(2, Ui.TG),
            Qi(3, q.$),
            Qi(4, ee.H),
            Qi(5, Vi.i6),
            Qi(6, $i.d),
            Qi(7, Ki.XE),
            Qi(8, pi.lT),
            Qi(9, qi.F),
          ],
          tn
        );
        let nn = class extends tn {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h, u) {
            Oi(h, t, !1);
            const g = c.registerEditorContainer(e);
            'string' == typeof (t = t || {}).theme && c.setTheme(t.theme);
            let f,
              p = t.model;
            if (
              (delete t.model,
              super(e, t, n, r, s, o, a, c, d, u),
              (this._contextViewService = l),
              (this._configurationService = h),
              (this._standaloneThemeService = c),
              this._register(i),
              this._register(g),
              void 0 === p
                ? ((f = self.monaco.editor.createModel(
                    t.value || '',
                    t.language || 'text/plain'
                  )),
                  (this._ownsModel = !0))
                : ((f = p), (this._ownsModel = !1)),
              this._attachModel(f),
              f)
            ) {
              let e = { oldModelUrl: null, newModelUrl: f.uri };
              this._onDidChangeModel.fire(e);
            }
          }
          dispose() {
            super.dispose();
          }
          updateOptions(e) {
            Oi(this._configurationService, e, !1),
              'string' == typeof e.theme &&
                this._standaloneThemeService.setTheme(e.theme),
              super.updateOptions(e);
          }
          _attachModel(e) {
            super._attachModel(e),
              this._modelData &&
                this._contextViewService.setContainer(
                  this._modelData.view.domNode.domNode
                );
          }
          _postDetachModelCleanup(e) {
            super._postDetachModelCleanup(e),
              e && this._ownsModel && (e.dispose(), (this._ownsModel = !1));
          }
        };
        nn = Ji(
          [
            Qi(3, Ui.TG),
            Qi(4, q.$),
            Qi(5, ee.H),
            Qi(6, Vi.i6),
            Qi(7, $i.d),
            Qi(8, zi.u),
            Qi(9, Hi.Z),
            Qi(10, pi.lT),
            Qi(11, qt.Ui),
            Qi(12, qi.F),
          ],
          nn
        );
        let rn = class extends Wi.pL {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h, u, g, f) {
            Oi(h, t, !0);
            const p = c.registerEditorContainer(e);
            'string' == typeof (t = t || {}).theme &&
              (t.theme = c.setTheme(t.theme)),
              super(e, t, f, a, r, n, l, c, d, u, g),
              (this._contextViewService = o),
              (this._configurationService = h),
              (this._standaloneThemeService = c),
              this._register(i),
              this._register(p),
              this._contextViewService.setContainer(this._containerDomElement);
          }
          dispose() {
            super.dispose();
          }
          updateOptions(e) {
            Oi(this._configurationService, e, !0),
              'string' == typeof e.theme &&
                this._standaloneThemeService.setTheme(e.theme),
              super.updateOptions(e);
          }
          _createInnerEditor(e, t, i) {
            return e.createInstance(tn, t, i);
          }
          getOriginalEditor() {
            return super.getOriginalEditor();
          }
          getModifiedEditor() {
            return super.getModifiedEditor();
          }
          addCommand(e, t, i) {
            return this.getModifiedEditor().addCommand(e, t, i);
          }
          createContextKey(e, t) {
            return this.getModifiedEditor().createContextKey(e, t);
          }
          addAction(e) {
            return this.getModifiedEditor().addAction(e);
          }
        };
        rn = Ji(
          [
            Qi(3, Ui.TG),
            Qi(4, Vi.i6),
            Qi(5, $i.d),
            Qi(6, zi.u),
            Qi(7, fe.p),
            Qi(8, q.$),
            Qi(9, Hi.Z),
            Qi(10, pi.lT),
            Qi(11, qt.Ui),
            Qi(12, zi.i),
            Qi(13, Zi.e),
            Qi(14, Gi.p),
          ],
          rn
        );
        var sn = i(71531);
        class on {
          constructor(e) {
            this._languageIdentifier = e;
          }
          getId() {
            return this._languageIdentifier.language;
          }
        }
        var an = i(88721),
          ln = i(14118);
        const cn = 'text/plain',
          dn = 'application/unknown';
        let hn = [],
          un = [],
          gn = [];
        function fn(e, t = !1) {
          const i = (function (e) {
            return {
              id: e.id,
              mime: e.mime,
              filename: e.filename,
              extension: e.extension,
              filepattern: e.filepattern,
              firstline: e.firstline,
              userConfigured: e.userConfigured,
              filenameLowercase: e.filename ? e.filename.toLowerCase() : void 0,
              extensionLowercase: e.extension
                ? e.extension.toLowerCase()
                : void 0,
              filepatternLowercase: e.filepattern
                ? e.filepattern.toLowerCase()
                : void 0,
              filepatternOnPath:
                !!e.filepattern && e.filepattern.indexOf(an.KR.sep) >= 0,
            };
          })(e);
          hn.push(i),
            i.userConfigured ? gn.push(i) : un.push(i),
            t &&
              !i.userConfigured &&
              hn.forEach((e) => {
                e.mime === i.mime ||
                  e.userConfigured ||
                  (i.extension &&
                    e.extension === i.extension &&
                    console.warn(
                      `Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`
                    ),
                  i.filename &&
                    e.filename === i.filename &&
                    console.warn(
                      `Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`
                    ),
                  i.filepattern &&
                    e.filepattern === i.filepattern &&
                    console.warn(
                      `Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`
                    ),
                  i.firstline &&
                    e.firstline === i.firstline &&
                    console.warn(
                      `Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`
                    ));
              });
        }
        function pn(e, t, i) {
          let n = null,
            r = null,
            s = null;
          for (let o = i.length - 1; o >= 0; o--) {
            const a = i[o];
            if (t === a.filenameLowercase) {
              n = a;
              break;
            }
            if (
              a.filepattern &&
              (!r || a.filepattern.length > r.filepattern.length)
            ) {
              const i = a.filepatternOnPath ? e : t;
              (0, ln.EQ)(a.filepatternLowercase, i) && (r = a);
            }
            a.extension &&
              (!s || a.extension.length > s.extension.length) &&
              t.endsWith(a.extensionLowercase) &&
              (s = a);
          }
          return n ? n.mime : r ? r.mime : s ? s.mime : null;
        }
        var mn = i(71144),
          _n = i(89872);
        const bn = Object.prototype.hasOwnProperty;
        class vn extends _e.JT {
          constructor(e = !0, t = !1) {
            super(),
              (this._onDidChange = this._register(new B.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._warnOnOverwrite = t),
              (this._nextLanguageId2 = 1),
              (this._languageIdToLanguage = []),
              (this._languageToLanguageId = Object.create(null)),
              (this._languages = {}),
              (this._mimeTypesMap = {}),
              (this._nameMap = {}),
              (this._lowercaseNameMap = {}),
              e &&
                (this._initializeFromRegistry(),
                this._register(
                  mn.dQ.onDidChangeLanguages((e) =>
                    this._initializeFromRegistry()
                  )
                ));
          }
          _initializeFromRegistry() {
            (this._languages = {}),
              (this._mimeTypesMap = {}),
              (this._nameMap = {}),
              (this._lowercaseNameMap = {});
            const e = mn.dQ.getLanguages();
            this._registerLanguages(e);
          }
          _registerLanguages(e) {
            for (const t of e) this._registerLanguage(t);
            (this._mimeTypesMap = {}),
              (this._nameMap = {}),
              (this._lowercaseNameMap = {}),
              Object.keys(this._languages).forEach((e) => {
                let t = this._languages[e];
                t.name && (this._nameMap[t.name] = t.identifier),
                  t.aliases.forEach((e) => {
                    this._lowercaseNameMap[e.toLowerCase()] = t.identifier;
                  }),
                  t.mimetypes.forEach((e) => {
                    this._mimeTypesMap[e] = t.identifier;
                  });
              }),
              _n.B.as(Jt.IP.Configuration).registerOverrideIdentifiers(
                mn.dQ.getLanguages().map((e) => e.id)
              ),
              this._onDidChange.fire();
          }
          _getLanguageId(e) {
            if (this._languageToLanguageId[e])
              return this._languageToLanguageId[e];
            const t = this._nextLanguageId2++;
            return (
              (this._languageIdToLanguage[t] = e),
              (this._languageToLanguageId[e] = t),
              t
            );
          }
          _registerLanguage(e) {
            const t = e.id;
            let i;
            if (bn.call(this._languages, t)) i = this._languages[t];
            else {
              const e = this._getLanguageId(t);
              (i = {
                identifier: new ue.rl(t, e),
                name: null,
                mimetypes: [],
                aliases: [],
                extensions: [],
                filenames: [],
                configurationFiles: [],
              }),
                (this._languages[t] = i);
            }
            this._mergeLanguage(i, e);
          }
          _mergeLanguage(e, t) {
            const i = t.id;
            let n = null;
            if (
              (Array.isArray(t.mimetypes) &&
                t.mimetypes.length > 0 &&
                (e.mimetypes.push(...t.mimetypes), (n = t.mimetypes[0])),
              n || ((n = `text/x-${i}`), e.mimetypes.push(n)),
              Array.isArray(t.extensions))
            ) {
              t.configuration
                ? (e.extensions = t.extensions.concat(e.extensions))
                : (e.extensions = e.extensions.concat(t.extensions));
              for (let e of t.extensions)
                fn({ id: i, mime: n, extension: e }, this._warnOnOverwrite);
            }
            if (Array.isArray(t.filenames))
              for (let r of t.filenames)
                fn({ id: i, mime: n, filename: r }, this._warnOnOverwrite),
                  e.filenames.push(r);
            if (Array.isArray(t.filenamePatterns))
              for (let e of t.filenamePatterns)
                fn({ id: i, mime: n, filepattern: e }, this._warnOnOverwrite);
            if ('string' == typeof t.firstLine && t.firstLine.length > 0) {
              let e = t.firstLine;
              '^' !== e.charAt(0) && (e = '^' + e);
              try {
                let t = new RegExp(e);
                Fe.IO(t) ||
                  fn({ id: i, mime: n, firstline: t }, this._warnOnOverwrite);
              } catch (e) {
                (0, be.dL)(e);
              }
            }
            e.aliases.push(i);
            let r = null;
            if (
              (void 0 !== t.aliases &&
                Array.isArray(t.aliases) &&
                (r = 0 === t.aliases.length ? [null] : t.aliases),
              null !== r)
            )
              for (const t of r) t && 0 !== t.length && e.aliases.push(t);
            let s = null !== r && r.length > 0;
            if (s && null === r[0]);
            else {
              let t = (s ? r[0] : null) || i;
              (!s && e.name) || (e.name = t);
            }
            t.configuration && e.configurationFiles.push(t.configuration);
          }
          isRegisteredMode(e) {
            return (
              !!bn.call(this._mimeTypesMap, e) || bn.call(this._languages, e)
            );
          }
          getModeIdForLanguageNameLowercase(e) {
            return bn.call(this._lowercaseNameMap, e)
              ? this._lowercaseNameMap[e].language
              : null;
          }
          extractModeIds(e) {
            return e
              ? e
                  .split(',')
                  .map((e) => e.trim())
                  .map((e) =>
                    bn.call(this._mimeTypesMap, e)
                      ? this._mimeTypesMap[e].language
                      : e
                  )
                  .filter((e) => bn.call(this._languages, e))
              : [];
          }
          getLanguageIdentifier(e) {
            if (e === ge.TG || 0 === e) return ge.pA;
            let t;
            if ('string' == typeof e) t = e;
            else if (((t = this._languageIdToLanguage[e]), !t)) return null;
            return bn.call(this._languages, t)
              ? this._languages[t].identifier
              : null;
          }
          getModeIdsFromFilepathOrFirstLine(e, t) {
            if (!e && !t) return [];
            let i = (function (e, t) {
              let i;
              if (e)
                switch (e.scheme) {
                  case Q.l.file:
                    i = e.fsPath;
                    break;
                  case Q.l.data:
                    i = X.Vb.parseMetaData(e).get(X.Vb.META_DATA_LABEL);
                    break;
                  default:
                    i = e.path;
                }
              if (!i) return [dn];
              i = i.toLowerCase();
              const n = (0, an.EZ)(i),
                r = pn(i, n, gn);
              if (r) return [r, cn];
              const s = pn(i, n, un);
              if (s) return [s, cn];
              if (t) {
                const e = (function (e) {
                  if (((0, Fe.uS)(e) && (e = e.substr(1)), e.length > 0))
                    for (let t = hn.length - 1; t >= 0; t--) {
                      const i = hn[t];
                      if (!i.firstline) continue;
                      const n = e.match(i.firstline);
                      if (n && n.length > 0) return i.mime;
                    }
                  return null;
                })(t);
                if (e) return [e, cn];
              }
              return [dn];
            })(e, t);
            return this.extractModeIds(i.join(','));
          }
        }
        class yn extends _e.JT {
          constructor(e, t) {
            super(),
              (this._onDidChange = this._register(new B.Q5())),
              (this.onDidChange = this._onDidChange.event),
              (this._selector = t),
              (this.languageIdentifier = this._selector()),
              this._register(e(() => this._evaluate()));
          }
          _evaluate() {
            let e = this._selector();
            e.id !== this.languageIdentifier.id &&
              ((this.languageIdentifier = e),
              this._onDidChange.fire(this.languageIdentifier));
          }
        }
        class wn {
          constructor(e = !1) {
            (this._onDidCreateMode = new B.Q5()),
              (this.onDidCreateMode = this._onDidCreateMode.event),
              (this._onLanguagesMaybeChanged = new B.Q5()),
              (this.onLanguagesMaybeChanged = this._onLanguagesMaybeChanged.event),
              (this._instantiatedModes = {}),
              (this._registry = new vn(!0, e)),
              this._registry.onDidChange(() =>
                this._onLanguagesMaybeChanged.fire()
              );
          }
          isRegisteredMode(e) {
            return this._registry.isRegisteredMode(e);
          }
          getModeIdForLanguageName(e) {
            return this._registry.getModeIdForLanguageNameLowercase(e);
          }
          getModeIdByFilepathOrFirstLine(e, t) {
            const i = this._registry.getModeIdsFromFilepathOrFirstLine(e, t);
            return (0, De.Xh)(i, null);
          }
          getModeId(e) {
            const t = this._registry.extractModeIds(e);
            return (0, De.Xh)(t, null);
          }
          getLanguageIdentifier(e) {
            return this._registry.getLanguageIdentifier(e);
          }
          create(e) {
            return new yn(this.onLanguagesMaybeChanged, () => {
              const t = this.getModeId(e);
              return this._createModeAndGetLanguageIdentifier(t);
            });
          }
          createByFilepathOrFirstLine(e, t) {
            return new yn(this.onLanguagesMaybeChanged, () => {
              const i = this.getModeIdByFilepathOrFirstLine(e, t);
              return this._createModeAndGetLanguageIdentifier(i);
            });
          }
          _createModeAndGetLanguageIdentifier(e) {
            const t = this.getLanguageIdentifier(e || 'plaintext') || ge.pA;
            return this._getOrCreateMode(t.language), t;
          }
          triggerMode(e) {
            const t = this.getModeId(e);
            this._getOrCreateMode(t || 'plaintext');
          }
          _getOrCreateMode(e) {
            if (!this._instantiatedModes.hasOwnProperty(e)) {
              let t = this.getLanguageIdentifier(e) || ge.pA;
              (this._instantiatedModes[e] = new on(t)),
                this._onDidCreateMode.fire(this._instantiatedModes[e]);
            }
            return this._instantiatedModes[e];
          }
        }
        var Cn = i(32334);
        class Sn extends _e.JT {
          constructor() {
            super(),
              (this._onCodeEditorAdd = this._register(new B.Q5())),
              (this.onCodeEditorAdd = this._onCodeEditorAdd.event),
              (this._onCodeEditorRemove = this._register(new B.Q5())),
              (this.onCodeEditorRemove = this._onCodeEditorRemove.event),
              (this._onDiffEditorAdd = this._register(new B.Q5())),
              (this._onDiffEditorRemove = this._register(new B.Q5())),
              (this._modelProperties = new Map()),
              (this._codeEditors = Object.create(null)),
              (this._diffEditors = Object.create(null));
          }
          addCodeEditor(e) {
            (this._codeEditors[e.getId()] = e), this._onCodeEditorAdd.fire(e);
          }
          removeCodeEditor(e) {
            delete this._codeEditors[e.getId()] &&
              this._onCodeEditorRemove.fire(e);
          }
          listCodeEditors() {
            return Object.keys(this._codeEditors).map(
              (e) => this._codeEditors[e]
            );
          }
          addDiffEditor(e) {
            (this._diffEditors[e.getId()] = e), this._onDiffEditorAdd.fire(e);
          }
          removeDiffEditor(e) {
            delete this._diffEditors[e.getId()] &&
              this._onDiffEditorRemove.fire(e);
          }
          listDiffEditors() {
            return Object.keys(this._diffEditors).map(
              (e) => this._diffEditors[e]
            );
          }
          getFocusedCodeEditor() {
            let e = null;
            const t = this.listCodeEditors();
            for (const i of t) {
              if (i.hasTextFocus()) return i;
              i.hasWidgetFocus() && (e = i);
            }
            return e;
          }
          setModelProperty(e, t, i) {
            const n = e.toString();
            let r;
            this._modelProperties.has(n)
              ? (r = this._modelProperties.get(n))
              : ((r = new Map()), this._modelProperties.set(n, r)),
              r.set(t, i);
          }
          getModelProperty(e, t) {
            const i = e.toString();
            if (this._modelProperties.has(i))
              return this._modelProperties.get(i).get(t);
          }
        }
        class kn {
          constructor(e, t, i) {
            (this._parent = e),
              (this._editorId = t),
              (this._styleSheet = i),
              (this._refCount = 0);
          }
          ref() {
            this._refCount++;
          }
          unref() {
            var e;
            this._refCount--,
              0 === this._refCount &&
                (null === (e = this._styleSheet.parentNode) ||
                  void 0 === e ||
                  e.removeChild(this._styleSheet),
                this._parent._removeEditorStyleSheets(this._editorId));
          }
          insertRule(e, t) {
            this._styleSheet.sheet.insertRule(e, t);
          }
          removeRulesContainingSelector(e) {
            G.uN(e, this._styleSheet);
          }
        }
        class xn {
          constructor(e) {
            this._styleSheet = e;
          }
          ref() {}
          unref() {}
          insertRule(e, t) {
            this._styleSheet.sheet.insertRule(e, t);
          }
          removeRulesContainingSelector(e) {
            G.uN(e, this._styleSheet);
          }
        }
        let Ln = class extends Sn {
          constructor(e, t = null) {
            super(),
              (this._decorationOptionProviders = new Map()),
              (this._editorStyleSheets = new Map()),
              (this._globalStyleSheet = t || null),
              (this._themeService = e);
          }
          _getOrCreateGlobalStyleSheet() {
            return (
              this._globalStyleSheet ||
                (this._globalStyleSheet = new xn(G.dS())),
              this._globalStyleSheet
            );
          }
          _getOrCreateStyleSheet(e) {
            if (!e) return this._getOrCreateGlobalStyleSheet();
            const t = e.getContainerDomNode();
            if (!G.OO(t)) return this._getOrCreateGlobalStyleSheet();
            const i = e.getId();
            if (!this._editorStyleSheets.has(i)) {
              const e = new kn(this, i, G.dS(t));
              this._editorStyleSheets.set(i, e);
            }
            return this._editorStyleSheets.get(i);
          }
          _removeEditorStyleSheets(e) {
            this._editorStyleSheets.delete(e);
          }
          registerDecorationType(e, t, i, n) {
            let r = this._decorationOptionProviders.get(e);
            if (!r) {
              const s = this._getOrCreateStyleSheet(n),
                o = {
                  styleSheet: s,
                  key: e,
                  parentTypeKey: i,
                  options: t || Object.create(null),
                };
              (r = i
                ? new Nn(this._themeService, s, o)
                : new En(this._themeService, s, o)),
                this._decorationOptionProviders.set(e, r);
            }
            r.refCount++;
          }
          removeDecorationType(e) {
            const t = this._decorationOptionProviders.get(e);
            t &&
              (t.refCount--,
              t.refCount <= 0 &&
                (this._decorationOptionProviders.delete(e),
                t.dispose(),
                this.listCodeEditors().forEach((t) => t.removeDecorations(e))));
          }
          resolveDecorationOptions(e, t) {
            const i = this._decorationOptionProviders.get(e);
            if (!i) throw new Error('Unknown decoration type key: ' + e);
            return i.getOptions(this, t);
          }
        };
        var Mn, Dn;
        Ln = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            ((Mn = 0),
            (Dn = Ki.XE),
            function (e, t) {
              Dn(e, t, Mn);
            }),
          ],
          Ln
        );
        class Nn {
          constructor(e, t, i) {
            (this._styleSheet = t),
              this._styleSheet.ref(),
              (this._parentTypeKey = i.parentTypeKey),
              (this.refCount = 0),
              (this._beforeContentRules = new In(3, i, e)),
              (this._afterContentRules = new In(4, i, e));
          }
          getOptions(e, t) {
            const i = e.resolveDecorationOptions(this._parentTypeKey, !0);
            return (
              this._beforeContentRules &&
                (i.beforeContentClassName = this._beforeContentRules.className),
              this._afterContentRules &&
                (i.afterContentClassName = this._afterContentRules.className),
              i
            );
          }
          dispose() {
            this._beforeContentRules &&
              (this._beforeContentRules.dispose(),
              (this._beforeContentRules = null)),
              this._afterContentRules &&
                (this._afterContentRules.dispose(),
                (this._afterContentRules = null)),
              this._styleSheet.unref();
          }
        }
        class En {
          constructor(e, t, i) {
            (this._disposables = new _e.SL()),
              (this._styleSheet = t),
              this._styleSheet.ref(),
              (this.refCount = 0);
            const n = (t) => {
              const n = new In(t, i, e);
              if ((this._disposables.add(n), n.hasContent)) return n.className;
            };
            this.className = n(0);
            const r = ((t) => {
              const n = new In(1, i, e);
              return (
                this._disposables.add(n),
                n.hasContent
                  ? {
                      className: n.className,
                      hasLetterSpacing: n.hasLetterSpacing,
                    }
                  : null
              );
            })();
            r &&
              ((this.inlineClassName = r.className),
              (this.inlineClassNameAffectsLetterSpacing = r.hasLetterSpacing)),
              (this.beforeContentClassName = n(3)),
              (this.afterContentClassName = n(4)),
              (this.glyphMarginClassName = n(2));
            const s = i.options;
            (this.isWholeLine = Boolean(s.isWholeLine)),
              (this.stickiness = s.rangeBehavior);
            const o =
                (s.light && s.light.overviewRulerColor) || s.overviewRulerColor,
              a = (s.dark && s.dark.overviewRulerColor) || s.overviewRulerColor;
            (void 0 === o && void 0 === a) ||
              (this.overviewRuler = {
                color: o || a,
                darkColor: a || o,
                position: s.overviewRulerLane || he.sh.Center,
              });
          }
          getOptions(e, t) {
            return t
              ? {
                  inlineClassName: this.inlineClassName,
                  beforeContentClassName: this.beforeContentClassName,
                  afterContentClassName: this.afterContentClassName,
                  className: this.className,
                  glyphMarginClassName: this.glyphMarginClassName,
                  isWholeLine: this.isWholeLine,
                  overviewRuler: this.overviewRuler,
                  stickiness: this.stickiness,
                }
              : this;
          }
          dispose() {
            this._disposables.dispose(), this._styleSheet.unref();
          }
        }
        const Tn = {
          color: 'color:{0} !important;',
          opacity: 'opacity:{0};',
          backgroundColor: 'background-color:{0};',
          outline: 'outline:{0};',
          outlineColor: 'outline-color:{0};',
          outlineStyle: 'outline-style:{0};',
          outlineWidth: 'outline-width:{0};',
          border: 'border:{0};',
          borderColor: 'border-color:{0};',
          borderRadius: 'border-radius:{0};',
          borderSpacing: 'border-spacing:{0};',
          borderStyle: 'border-style:{0};',
          borderWidth: 'border-width:{0};',
          fontStyle: 'font-style:{0};',
          fontWeight: 'font-weight:{0};',
          textDecoration: 'text-decoration:{0};',
          cursor: 'cursor:{0};',
          letterSpacing: 'letter-spacing:{0};',
          gutterIconPath: 'background:{0} center center no-repeat;',
          gutterIconSize: 'background-size:{0};',
          contentText: "content:'{0}';",
          contentIconPath: 'content:{0};',
          margin: 'margin:{0};',
          width: 'width:{0};',
          height: 'height:{0};',
        };
        class In {
          constructor(e, t, i) {
            (this._theme = i.getColorTheme()),
              (this._ruleType = e),
              (this._providerArgs = t),
              (this._usesThemeColors = !1),
              (this._hasContent = !1),
              (this._hasLetterSpacing = !1);
            let n = On.getClassName(this._providerArgs.key, e);
            this._providerArgs.parentTypeKey &&
              (n =
                n + ' ' + On.getClassName(this._providerArgs.parentTypeKey, e)),
              (this._className = n),
              (this._unThemedSelector = On.getSelector(
                this._providerArgs.key,
                this._providerArgs.parentTypeKey,
                e
              )),
              this._buildCSS(),
              this._usesThemeColors
                ? (this._themeListener = i.onDidColorThemeChange((e) => {
                    (this._theme = i.getColorTheme()),
                      this._removeCSS(),
                      this._buildCSS();
                  }))
                : (this._themeListener = null);
          }
          dispose() {
            this._hasContent && (this._removeCSS(), (this._hasContent = !1)),
              this._themeListener &&
                (this._themeListener.dispose(), (this._themeListener = null));
          }
          get hasContent() {
            return this._hasContent;
          }
          get hasLetterSpacing() {
            return this._hasLetterSpacing;
          }
          get className() {
            return this._className;
          }
          _buildCSS() {
            const e = this._providerArgs.options;
            let t, i, n;
            switch (this._ruleType) {
              case 0:
                (t = this.getCSSTextForModelDecorationClassName(e)),
                  (i = this.getCSSTextForModelDecorationClassName(e.light)),
                  (n = this.getCSSTextForModelDecorationClassName(e.dark));
                break;
              case 1:
                (t = this.getCSSTextForModelDecorationInlineClassName(e)),
                  (i = this.getCSSTextForModelDecorationInlineClassName(
                    e.light
                  )),
                  (n = this.getCSSTextForModelDecorationInlineClassName(
                    e.dark
                  ));
                break;
              case 2:
                (t = this.getCSSTextForModelDecorationGlyphMarginClassName(e)),
                  (i = this.getCSSTextForModelDecorationGlyphMarginClassName(
                    e.light
                  )),
                  (n = this.getCSSTextForModelDecorationGlyphMarginClassName(
                    e.dark
                  ));
                break;
              case 3:
                (t = this.getCSSTextForModelDecorationContentClassName(
                  e.before
                )),
                  (i = this.getCSSTextForModelDecorationContentClassName(
                    e.light && e.light.before
                  )),
                  (n = this.getCSSTextForModelDecorationContentClassName(
                    e.dark && e.dark.before
                  ));
                break;
              case 4:
                (t = this.getCSSTextForModelDecorationContentClassName(
                  e.after
                )),
                  (i = this.getCSSTextForModelDecorationContentClassName(
                    e.light && e.light.after
                  )),
                  (n = this.getCSSTextForModelDecorationContentClassName(
                    e.dark && e.dark.after
                  ));
                break;
              default:
                throw new Error('Unknown rule type: ' + this._ruleType);
            }
            const r = this._providerArgs.styleSheet;
            let s = !1;
            t.length > 0 &&
              (r.insertRule(`${this._unThemedSelector} {${t}}`, 0), (s = !0)),
              i.length > 0 &&
                (r.insertRule(`.vs${this._unThemedSelector} {${i}}`, 0),
                (s = !0)),
              n.length > 0 &&
                (r.insertRule(
                  `.vs-dark${this._unThemedSelector}, .hc-black${this._unThemedSelector} {${n}}`,
                  0
                ),
                (s = !0)),
              (this._hasContent = s);
          }
          _removeCSS() {
            this._providerArgs.styleSheet.removeRulesContainingSelector(
              this._unThemedSelector
            );
          }
          getCSSTextForModelDecorationClassName(e) {
            if (!e) return '';
            const t = [];
            return (
              this.collectCSSText(e, ['backgroundColor'], t),
              this.collectCSSText(
                e,
                ['outline', 'outlineColor', 'outlineStyle', 'outlineWidth'],
                t
              ),
              this.collectBorderSettingsCSSText(e, t),
              t.join('')
            );
          }
          getCSSTextForModelDecorationInlineClassName(e) {
            if (!e) return '';
            const t = [];
            return (
              this.collectCSSText(
                e,
                [
                  'fontStyle',
                  'fontWeight',
                  'textDecoration',
                  'cursor',
                  'color',
                  'opacity',
                  'letterSpacing',
                ],
                t
              ),
              e.letterSpacing && (this._hasLetterSpacing = !0),
              t.join('')
            );
          }
          getCSSTextForModelDecorationContentClassName(e) {
            if (!e) return '';
            const t = [];
            if (void 0 !== e) {
              if (
                (this.collectBorderSettingsCSSText(e, t),
                void 0 !== e.contentIconPath &&
                  t.push(
                    Fe.WU(
                      Tn.contentIconPath,
                      G.wY(Y.o.revive(e.contentIconPath))
                    )
                  ),
                'string' == typeof e.contentText)
              ) {
                const i = e.contentText
                  .match(/^.*$/m)[0]
                  .replace(/['\\]/g, '\\$&');
                t.push(Fe.WU(Tn.contentText, i));
              }
              this.collectCSSText(
                e,
                [
                  'fontStyle',
                  'fontWeight',
                  'textDecoration',
                  'color',
                  'opacity',
                  'backgroundColor',
                  'margin',
                ],
                t
              ),
                this.collectCSSText(e, ['width', 'height'], t) &&
                  t.push('display:inline-block;');
            }
            return t.join('');
          }
          getCSSTextForModelDecorationGlyphMarginClassName(e) {
            if (!e) return '';
            const t = [];
            return (
              void 0 !== e.gutterIconPath &&
                (t.push(
                  Fe.WU(Tn.gutterIconPath, G.wY(Y.o.revive(e.gutterIconPath)))
                ),
                void 0 !== e.gutterIconSize &&
                  t.push(Fe.WU(Tn.gutterIconSize, e.gutterIconSize))),
              t.join('')
            );
          }
          collectBorderSettingsCSSText(e, t) {
            return (
              !!this.collectCSSText(
                e,
                [
                  'border',
                  'borderColor',
                  'borderRadius',
                  'borderSpacing',
                  'borderStyle',
                  'borderWidth',
                ],
                t
              ) && (t.push(Fe.WU('box-sizing: border-box;')), !0)
            );
          }
          collectCSSText(e, t, i) {
            const n = i.length;
            for (let n of t) {
              const t = this.resolveValue(e[n]);
              'string' == typeof t && i.push(Fe.WU(Tn[n], t));
            }
            return i.length !== n;
          }
          resolveValue(e) {
            if ((0, de.I)(e)) {
              this._usesThemeColors = !0;
              const t = this._theme.getColor(e.id);
              return t ? t.toString() : 'transparent';
            }
            return e;
          }
        }
        class On {
          static getClassName(e, t) {
            return 'ced-' + e + '-' + t;
          }
          static getSelector(e, t, i) {
            let n = '.monaco-editor .' + this.getClassName(e, i);
            return (
              t && (n = n + '.' + this.getClassName(t, i)),
              3 === i ? (n += '::before') : 4 === i && (n += '::after'),
              n
            );
          }
        }
        class An extends Ln {
          getActiveCodeEditor() {
            return null;
          }
          openCodeEditor(e, t, i) {
            return t
              ? Promise.resolve(this.doOpenEditor(t, e))
              : Promise.resolve(null);
          }
          doOpenEditor(e, t) {
            if (!this.findModel(e, t.resource)) {
              if (t.resource) {
                const i = t.resource.scheme;
                if (i === Q.l.http || i === Q.l.https)
                  return (0, G.V3)(t.resource.toString()), e;
              }
              return null;
            }
            const i = t.options ? t.options.selection : null;
            if (i)
              if (
                'number' == typeof i.endLineNumber &&
                'number' == typeof i.endColumn
              )
                e.setSelection(i), e.revealRangeInCenter(i, 1);
              else {
                const t = {
                  lineNumber: i.startLineNumber,
                  column: i.startColumn,
                };
                e.setPosition(t), e.revealPositionInCenter(t, 1);
              }
            return e;
          }
          findModel(e, t) {
            const i = e.getModel();
            return i && i.uri.toString() !== t.toString() ? null : i;
          }
        }
        var Rn = i(41264);
        class Pn {
          constructor(e, t, i, n, r) {
            (this.token = e),
              (this.index = t),
              (this.fontStyle = i),
              (this.foreground = n),
              (this.background = r);
          }
        }
        const Fn = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;
        class Bn {
          constructor() {
            (this._lastColorId = 0),
              (this._id2color = []),
              (this._color2id = new Map());
          }
          getId(e) {
            if (null === e) return 0;
            const t = e.match(Fn);
            if (!t) throw new Error('Illegal value for token color: ' + e);
            e = t[1].toUpperCase();
            let i = this._color2id.get(e);
            return (
              i ||
              ((i = ++this._lastColorId),
              this._color2id.set(e, i),
              (this._id2color[i] = Rn.Il.fromHex('#' + e)),
              i)
            );
          }
          getColorMap() {
            return this._id2color.slice(0);
          }
        }
        class Wn {
          constructor(e, t) {
            (this._colorMap = e), (this._root = t), (this._cache = new Map());
          }
          static createFromRawTokenTheme(e, t) {
            return this.createFromParsedTokenTheme(
              (function (e) {
                if (!e || !Array.isArray(e)) return [];
                let t = [],
                  i = 0;
                for (let n = 0, r = e.length; n < r; n++) {
                  let r = e[n],
                    s = -1;
                  if ('string' == typeof r.fontStyle) {
                    s = 0;
                    let e = r.fontStyle.split(' ');
                    for (let t = 0, i = e.length; t < i; t++)
                      switch (e[t]) {
                        case 'italic':
                          s |= 1;
                          break;
                        case 'bold':
                          s |= 2;
                          break;
                        case 'underline':
                          s |= 4;
                      }
                  }
                  let o = null;
                  'string' == typeof r.foreground && (o = r.foreground);
                  let a = null;
                  'string' == typeof r.background && (a = r.background),
                    (t[i++] = new Pn(r.token || '', n, s, o, a));
                }
                return t;
              })(e),
              t
            );
          }
          static createFromParsedTokenTheme(e, t) {
            return (function (e, t) {
              e.sort((e, t) => {
                let i = (function (e, t) {
                  return e < t ? -1 : e > t ? 1 : 0;
                })(e.token, t.token);
                return 0 !== i ? i : e.index - t.index;
              });
              let i = 0,
                n = '000000',
                r = 'ffffff';
              for (; e.length >= 1 && '' === e[0].token; ) {
                let t = e.shift();
                -1 !== t.fontStyle && (i = t.fontStyle),
                  null !== t.foreground && (n = t.foreground),
                  null !== t.background && (r = t.background);
              }
              let s = new Bn();
              for (let e of t) s.getId(e);
              let o = s.getId(n),
                a = s.getId(r),
                l = new Hn(i, o, a),
                c = new jn(l);
              for (let t = 0, i = e.length; t < i; t++) {
                let i = e[t];
                c.insert(
                  i.token,
                  i.fontStyle,
                  s.getId(i.foreground),
                  s.getId(i.background)
                );
              }
              return new Wn(s, c);
            })(e, t);
          }
          getColorMap() {
            return this._colorMap.getColorMap();
          }
          _match(e) {
            return this._root.match(e);
          }
          match(e, t) {
            let i = this._cache.get(t);
            if (void 0 === i) {
              let e = this._match(t),
                n = (function (e) {
                  let t = e.match(Yn);
                  if (!t) return 0;
                  switch (t[1]) {
                    case 'comment':
                      return 1;
                    case 'string':
                      return 2;
                    case 'regex':
                    case 'regexp':
                      return 4;
                  }
                  throw new Error('Unexpected match for standard token type!');
                })(t);
              (i = (e.metadata | (n << 8)) >>> 0), this._cache.set(t, i);
            }
            return (i | (e << 0)) >>> 0;
          }
        }
        const Yn = /\b(comment|string|regex|regexp)\b/;
        class Hn {
          constructor(e, t, i) {
            (this._fontStyle = e),
              (this._foreground = t),
              (this._background = i),
              (this.metadata =
                ((this._fontStyle << 11) |
                  (this._foreground << 14) |
                  (this._background << 23)) >>>
                0);
          }
          clone() {
            return new Hn(this._fontStyle, this._foreground, this._background);
          }
          acceptOverwrite(e, t, i) {
            -1 !== e && (this._fontStyle = e),
              0 !== t && (this._foreground = t),
              0 !== i && (this._background = i),
              (this.metadata =
                ((this._fontStyle << 11) |
                  (this._foreground << 14) |
                  (this._background << 23)) >>>
                0);
          }
        }
        class jn {
          constructor(e) {
            (this._mainRule = e), (this._children = new Map());
          }
          match(e) {
            if ('' === e) return this._mainRule;
            let t,
              i,
              n = e.indexOf('.');
            -1 === n
              ? ((t = e), (i = ''))
              : ((t = e.substring(0, n)), (i = e.substring(n + 1)));
            let r = this._children.get(t);
            return void 0 !== r ? r.match(i) : this._mainRule;
          }
          insert(e, t, i, n) {
            if ('' === e) return void this._mainRule.acceptOverwrite(t, i, n);
            let r,
              s,
              o = e.indexOf('.');
            -1 === o
              ? ((r = e), (s = ''))
              : ((r = e.substring(0, o)), (s = e.substring(o + 1)));
            let a = this._children.get(r);
            void 0 === a &&
              ((a = new jn(this._mainRule.clone())), this._children.set(r, a)),
              a.insert(s, t, i, n);
          }
        }
        var Vn = i(27869),
          zn = i(73910);
        const Un = {
            base: 'vs',
            inherit: !1,
            rules: [
              { token: '', foreground: '000000', background: 'fffffe' },
              { token: 'invalid', foreground: 'cd3131' },
              { token: 'emphasis', fontStyle: 'italic' },
              { token: 'strong', fontStyle: 'bold' },
              { token: 'variable', foreground: '001188' },
              { token: 'variable.predefined', foreground: '4864AA' },
              { token: 'constant', foreground: 'dd0000' },
              { token: 'comment', foreground: '008000' },
              { token: 'number', foreground: '098658' },
              { token: 'number.hex', foreground: '3030c0' },
              { token: 'regexp', foreground: '800000' },
              { token: 'annotation', foreground: '808080' },
              { token: 'type', foreground: '008080' },
              { token: 'delimiter', foreground: '000000' },
              { token: 'delimiter.html', foreground: '383838' },
              { token: 'delimiter.xml', foreground: '0000FF' },
              { token: 'tag', foreground: '800000' },
              { token: 'tag.id.pug', foreground: '4F76AC' },
              { token: 'tag.class.pug', foreground: '4F76AC' },
              { token: 'meta.scss', foreground: '800000' },
              { token: 'metatag', foreground: 'e00000' },
              { token: 'metatag.content.html', foreground: 'FF0000' },
              { token: 'metatag.html', foreground: '808080' },
              { token: 'metatag.xml', foreground: '808080' },
              { token: 'metatag.php', fontStyle: 'bold' },
              { token: 'key', foreground: '863B00' },
              { token: 'string.key.json', foreground: 'A31515' },
              { token: 'string.value.json', foreground: '0451A5' },
              { token: 'attribute.name', foreground: 'FF0000' },
              { token: 'attribute.value', foreground: '0451A5' },
              { token: 'attribute.value.number', foreground: '098658' },
              { token: 'attribute.value.unit', foreground: '098658' },
              { token: 'attribute.value.html', foreground: '0000FF' },
              { token: 'attribute.value.xml', foreground: '0000FF' },
              { token: 'string', foreground: 'A31515' },
              { token: 'string.html', foreground: '0000FF' },
              { token: 'string.sql', foreground: 'FF0000' },
              { token: 'string.yaml', foreground: '0451A5' },
              { token: 'keyword', foreground: '0000FF' },
              { token: 'keyword.json', foreground: '0451A5' },
              { token: 'keyword.flow', foreground: 'AF00DB' },
              { token: 'keyword.flow.scss', foreground: '0000FF' },
              { token: 'operator.scss', foreground: '666666' },
              { token: 'operator.sql', foreground: '778899' },
              { token: 'operator.swift', foreground: '666666' },
              { token: 'predefined.sql', foreground: 'FF00FF' },
            ],
            colors: {
              [zn.cv]: '#FFFFFE',
              [zn.NO]: '#000000',
              [zn.ES]: '#E5EBF1',
              [Vn.tR]: '#D3D3D3',
              [Vn.Ym]: '#939393',
              [zn.Rz]: '#ADD6FF4D',
            },
          },
          $n = {
            base: 'vs-dark',
            inherit: !1,
            rules: [
              { token: '', foreground: 'D4D4D4', background: '1E1E1E' },
              { token: 'invalid', foreground: 'f44747' },
              { token: 'emphasis', fontStyle: 'italic' },
              { token: 'strong', fontStyle: 'bold' },
              { token: 'variable', foreground: '74B0DF' },
              { token: 'variable.predefined', foreground: '4864AA' },
              { token: 'variable.parameter', foreground: '9CDCFE' },
              { token: 'constant', foreground: '569CD6' },
              { token: 'comment', foreground: '608B4E' },
              { token: 'number', foreground: 'B5CEA8' },
              { token: 'number.hex', foreground: '5BB498' },
              { token: 'regexp', foreground: 'B46695' },
              { token: 'annotation', foreground: 'cc6666' },
              { token: 'type', foreground: '3DC9B0' },
              { token: 'delimiter', foreground: 'DCDCDC' },
              { token: 'delimiter.html', foreground: '808080' },
              { token: 'delimiter.xml', foreground: '808080' },
              { token: 'tag', foreground: '569CD6' },
              { token: 'tag.id.pug', foreground: '4F76AC' },
              { token: 'tag.class.pug', foreground: '4F76AC' },
              { token: 'meta.scss', foreground: 'A79873' },
              { token: 'meta.tag', foreground: 'CE9178' },
              { token: 'metatag', foreground: 'DD6A6F' },
              { token: 'metatag.content.html', foreground: '9CDCFE' },
              { token: 'metatag.html', foreground: '569CD6' },
              { token: 'metatag.xml', foreground: '569CD6' },
              { token: 'metatag.php', fontStyle: 'bold' },
              { token: 'key', foreground: '9CDCFE' },
              { token: 'string.key.json', foreground: '9CDCFE' },
              { token: 'string.value.json', foreground: 'CE9178' },
              { token: 'attribute.name', foreground: '9CDCFE' },
              { token: 'attribute.value', foreground: 'CE9178' },
              { token: 'attribute.value.number.css', foreground: 'B5CEA8' },
              { token: 'attribute.value.unit.css', foreground: 'B5CEA8' },
              { token: 'attribute.value.hex.css', foreground: 'D4D4D4' },
              { token: 'string', foreground: 'CE9178' },
              { token: 'string.sql', foreground: 'FF0000' },
              { token: 'keyword', foreground: '569CD6' },
              { token: 'keyword.flow', foreground: 'C586C0' },
              { token: 'keyword.json', foreground: 'CE9178' },
              { token: 'keyword.flow.scss', foreground: '569CD6' },
              { token: 'operator.scss', foreground: '909090' },
              { token: 'operator.sql', foreground: '778899' },
              { token: 'operator.swift', foreground: '909090' },
              { token: 'predefined.sql', foreground: 'FF00FF' },
            ],
            colors: {
              [zn.cv]: '#1E1E1E',
              [zn.NO]: '#D4D4D4',
              [zn.ES]: '#3A3D41',
              [Vn.tR]: '#404040',
              [Vn.Ym]: '#707070',
              [zn.Rz]: '#ADD6FF26',
            },
          },
          Kn = {
            base: 'hc-black',
            inherit: !1,
            rules: [
              { token: '', foreground: 'FFFFFF', background: '000000' },
              { token: 'invalid', foreground: 'f44747' },
              { token: 'emphasis', fontStyle: 'italic' },
              { token: 'strong', fontStyle: 'bold' },
              { token: 'variable', foreground: '1AEBFF' },
              { token: 'variable.parameter', foreground: '9CDCFE' },
              { token: 'constant', foreground: '569CD6' },
              { token: 'comment', foreground: '608B4E' },
              { token: 'number', foreground: 'FFFFFF' },
              { token: 'regexp', foreground: 'C0C0C0' },
              { token: 'annotation', foreground: '569CD6' },
              { token: 'type', foreground: '3DC9B0' },
              { token: 'delimiter', foreground: 'FFFF00' },
              { token: 'delimiter.html', foreground: 'FFFF00' },
              { token: 'tag', foreground: '569CD6' },
              { token: 'tag.id.pug', foreground: '4F76AC' },
              { token: 'tag.class.pug', foreground: '4F76AC' },
              { token: 'meta', foreground: 'D4D4D4' },
              { token: 'meta.tag', foreground: 'CE9178' },
              { token: 'metatag', foreground: '569CD6' },
              { token: 'metatag.content.html', foreground: '1AEBFF' },
              { token: 'metatag.html', foreground: '569CD6' },
              { token: 'metatag.xml', foreground: '569CD6' },
              { token: 'metatag.php', fontStyle: 'bold' },
              { token: 'key', foreground: '9CDCFE' },
              { token: 'string.key', foreground: '9CDCFE' },
              { token: 'string.value', foreground: 'CE9178' },
              { token: 'attribute.name', foreground: '569CD6' },
              { token: 'attribute.value', foreground: '3FF23F' },
              { token: 'string', foreground: 'CE9178' },
              { token: 'string.sql', foreground: 'FF0000' },
              { token: 'keyword', foreground: '569CD6' },
              { token: 'keyword.flow', foreground: 'C586C0' },
              { token: 'operator.sql', foreground: '778899' },
              { token: 'operator.swift', foreground: '909090' },
              { token: 'predefined.sql', foreground: 'FF00FF' },
            ],
            colors: {
              [zn.cv]: '#000000',
              [zn.NO]: '#FFFFFF',
              [Vn.tR]: '#FFFFFF',
              [Vn.Ym]: '#FFFFFF',
            },
          };
        var qn = i(28609);
        const Gn = 'vs',
          Zn = 'vs-dark',
          Jn = 'hc-black',
          Qn = _n.B.as(zn.IP.ColorContribution),
          Xn = _n.B.as(Ki.IP.ThemingContribution);
        class er {
          constructor(e, t) {
            (this.semanticHighlighting = !1), (this.themeData = t);
            let i = t.base;
            e.length > 0
              ? ((this.id = i + ' ' + e), (this.themeName = e))
              : ((this.id = i), (this.themeName = i)),
              (this.colors = null),
              (this.defaultColors = Object.create(null)),
              (this._tokenTheme = null);
          }
          get base() {
            return this.themeData.base;
          }
          notifyBaseUpdated() {
            this.themeData.inherit &&
              ((this.colors = null), (this._tokenTheme = null));
          }
          getColors() {
            if (!this.colors) {
              const e = new Map();
              for (let t in this.themeData.colors)
                e.set(t, Rn.Il.fromHex(this.themeData.colors[t]));
              if (this.themeData.inherit) {
                let t = ir(this.themeData.base);
                for (let i in t.colors)
                  e.has(i) || e.set(i, Rn.Il.fromHex(t.colors[i]));
              }
              this.colors = e;
            }
            return this.colors;
          }
          getColor(e, t) {
            return (
              this.getColors().get(e) ||
              (!1 !== t ? this.getDefault(e) : void 0)
            );
          }
          getDefault(e) {
            let t = this.defaultColors[e];
            return (
              t ||
              ((t = Qn.resolveDefaultColor(e, this)),
              (this.defaultColors[e] = t),
              t)
            );
          }
          defines(e) {
            return Object.prototype.hasOwnProperty.call(this.getColors(), e);
          }
          get type() {
            switch (this.base) {
              case Gn:
                return 'light';
              case Jn:
                return 'hc';
              default:
                return 'dark';
            }
          }
          get tokenTheme() {
            if (!this._tokenTheme) {
              let e = [],
                t = [];
              if (this.themeData.inherit) {
                let i = ir(this.themeData.base);
                (e = i.rules),
                  i.encodedTokensColors && (t = i.encodedTokensColors);
              }
              (e = e.concat(this.themeData.rules)),
                this.themeData.encodedTokensColors &&
                  (t = this.themeData.encodedTokensColors),
                (this._tokenTheme = Wn.createFromRawTokenTheme(e, t));
            }
            return this._tokenTheme;
          }
          getTokenStyleMetadata(e, t, i) {
            const n = this.tokenTheme._match([e].concat(t).join('.')).metadata,
              r = ue.NX.getForeground(n),
              s = ue.NX.getFontStyle(n);
            return {
              foreground: r,
              italic: Boolean(1 & s),
              bold: Boolean(2 & s),
              underline: Boolean(4 & s),
            };
          }
        }
        function tr(e) {
          return e === Gn || e === Zn || e === Jn;
        }
        function ir(e) {
          switch (e) {
            case Gn:
              return Un;
            case Zn:
              return $n;
            case Jn:
              return Kn;
          }
        }
        function nr(e) {
          let t = ir(e);
          return new er(e, t);
        }
        class rr extends _e.JT {
          constructor() {
            super(),
              (this._onColorThemeChange = this._register(new B.Q5())),
              (this.onDidColorThemeChange = this._onColorThemeChange.event),
              (this._environment = Object.create(null)),
              (this._knownThemes = new Map()),
              this._knownThemes.set(Gn, nr(Gn)),
              this._knownThemes.set(Zn, nr(Zn)),
              this._knownThemes.set(Jn, nr(Jn)),
              (this._codiconCSS = qn.D.getCSS()),
              (this._themeCSS = ''),
              (this._allCSS = `${this._codiconCSS}\n${this._themeCSS}`),
              (this._globalStyleElement = null),
              (this._styleElements = []),
              this.setTheme(Gn),
              qn.D.onDidChange(() => {
                (this._codiconCSS = qn.D.getCSS()), this._updateCSS();
              });
          }
          registerEditorContainer(e) {
            return G.OO(e)
              ? this._registerShadowDomContainer(e)
              : this._registerRegularEditorContainer();
          }
          _registerRegularEditorContainer() {
            return (
              this._globalStyleElement ||
                ((this._globalStyleElement = G.dS()),
                (this._globalStyleElement.className = 'monaco-colors'),
                (this._globalStyleElement.innerHTML = this._allCSS),
                this._styleElements.push(this._globalStyleElement)),
              _e.JT.None
            );
          }
          _registerShadowDomContainer(e) {
            const t = G.dS(e);
            return (
              (t.className = 'monaco-colors'),
              (t.innerHTML = this._allCSS),
              this._styleElements.push(t),
              {
                dispose: () => {
                  for (let e = 0; e < this._styleElements.length; e++)
                    if (this._styleElements[e] === t)
                      return void this._styleElements.splice(e, 1);
                },
              }
            );
          }
          defineTheme(e, t) {
            if (!/^[a-z0-9\-]+$/i.test(e))
              throw new Error('Illegal theme name!');
            if (!tr(t.base) && !tr(e)) throw new Error('Illegal theme base!');
            this._knownThemes.set(e, new er(e, t)),
              tr(e) &&
                this._knownThemes.forEach((t) => {
                  t.base === e && t.notifyBaseUpdated();
                }),
              this._theme && this._theme.themeName === e && this.setTheme(e);
          }
          getColorTheme() {
            return this._theme;
          }
          setTheme(e) {
            let t;
            if (
              ((t = this._knownThemes.has(e)
                ? this._knownThemes.get(e)
                : this._knownThemes.get(Gn)),
              this._theme === t)
            )
              return t.id;
            this._theme = t;
            let i = [],
              n = {},
              r = {
                addRule: (e) => {
                  n[e] || (i.push(e), (n[e] = !0));
                },
              };
            Xn.getThemingParticipants().forEach((e) =>
              e(t, r, this._environment)
            );
            let s = t.tokenTheme.getColorMap();
            return (
              r.addRule(
                (function (e) {
                  let t = [];
                  for (let i = 1, n = e.length; i < n; i++) {
                    let n = e[i];
                    t[i] = `.mtk${i} { color: ${n}; }`;
                  }
                  return (
                    t.push('.mtki { font-style: italic; }'),
                    t.push('.mtkb { font-weight: bold; }'),
                    t.push(
                      '.mtku { text-decoration: underline; text-underline-position: under; }'
                    ),
                    t.join('\n')
                  );
                })(s)
              ),
              (this._themeCSS = i.join('\n')),
              this._updateCSS(),
              ue.RW.setColorMap(s),
              this._onColorThemeChange.fire(t),
              t.id
            );
          }
          _updateCSS() {
            (this._allCSS = `${this._codiconCSS}\n${this._themeCSS}`),
              this._styleElements.forEach((e) => (e.innerHTML = this._allCSS));
          }
          getFileIconTheme() {
            return {
              hasFileIcons: !1,
              hasFolderIcons: !1,
              hidesExplorerArrows: !1,
            };
          }
        }
        const sr = 'data-keybinding-context';
        class or {
          constructor(e, t) {
            (this._id = e),
              (this._parent = t),
              (this._value = Object.create(null)),
              (this._value._contextId = e);
          }
          setValue(e, t) {
            return this._value[e] !== t && ((this._value[e] = t), !0);
          }
          removeValue(e) {
            return e in this._value && (delete this._value[e], !0);
          }
          getValue(e) {
            const t = this._value[e];
            return void 0 === t && this._parent ? this._parent.getValue(e) : t;
          }
        }
        class ar extends or {
          constructor() {
            super(-1, null);
          }
          setValue(e, t) {
            return !1;
          }
          removeValue(e) {
            return !1;
          }
          getValue(e) {}
        }
        ar.INSTANCE = new ar();
        class lr extends or {
          constructor(e, t, i) {
            super(e, null),
              (this._configurationService = t),
              (this._values = new Map()),
              (this._listener = this._configurationService.onDidChangeConfiguration(
                (e) => {
                  if (6 === e.source) {
                    const e = Array.from(this._values.keys());
                    this._values.clear(), i.fire(new hr(e));
                  } else {
                    const t = [];
                    for (const i of e.affectedKeys) {
                      const e = `config.${i}`;
                      this._values.has(e) &&
                        (this._values.delete(e), t.push(e));
                    }
                    i.fire(new hr(t));
                  }
                }
              ));
          }
          dispose() {
            this._listener.dispose();
          }
          getValue(e) {
            if (0 !== e.indexOf(lr._keyPrefix)) return super.getValue(e);
            if (this._values.has(e)) return this._values.get(e);
            const t = e.substr(lr._keyPrefix.length),
              i = this._configurationService.getValue(t);
            let n;
            switch (typeof i) {
              case 'number':
              case 'boolean':
              case 'string':
                n = i;
                break;
              default:
                Array.isArray(i) && (n = JSON.stringify(i));
            }
            return this._values.set(e, n), n;
          }
          setValue(e, t) {
            return super.setValue(e, t);
          }
          removeValue(e) {
            return super.removeValue(e);
          }
        }
        lr._keyPrefix = 'config.';
        class cr {
          constructor(e, t, i) {
            (this._service = e),
              (this._key = t),
              (this._defaultValue = i),
              this.reset();
          }
          set(e) {
            this._service.setContext(this._key, e);
          }
          reset() {
            void 0 === this._defaultValue
              ? this._service.removeContext(this._key)
              : this._service.setContext(this._key, this._defaultValue);
          }
          get() {
            return this._service.getContextKeyValue(this._key);
          }
        }
        class dr {
          constructor(e) {
            this.key = e;
          }
          affectsSome(e) {
            return e.has(this.key);
          }
        }
        class hr {
          constructor(e) {
            this.keys = e;
          }
          affectsSome(e) {
            for (const t of this.keys) if (e.has(t)) return !0;
            return !1;
          }
        }
        class ur {
          constructor(e) {
            this.events = e;
          }
          affectsSome(e) {
            for (const t of this.events) if (t.affectsSome(e)) return !0;
            return !1;
          }
        }
        class gr {
          constructor(e) {
            (this._onDidChangeContext = new B.K3({ merge: (e) => new ur(e) })),
              (this._isDisposed = !1),
              (this._myContextId = e);
          }
          createKey(e, t) {
            if (this._isDisposed)
              throw new Error('AbstractContextKeyService has been disposed');
            return new cr(this, e, t);
          }
          get onDidChangeContext() {
            return this._onDidChangeContext.event;
          }
          bufferChangeEvents(e) {
            this._onDidChangeContext.pause();
            try {
              e();
            } finally {
              this._onDidChangeContext.resume();
            }
          }
          createScoped(e) {
            if (this._isDisposed)
              throw new Error('AbstractContextKeyService has been disposed');
            return new pr(this, e);
          }
          contextMatchesRules(e) {
            if (this._isDisposed)
              throw new Error('AbstractContextKeyService has been disposed');
            const t = this.getContextValuesContainer(this._myContextId);
            return ri.contextMatchesRules(t, e);
          }
          getContextKeyValue(e) {
            if (!this._isDisposed)
              return this.getContextValuesContainer(this._myContextId).getValue(
                e
              );
          }
          setContext(e, t) {
            if (this._isDisposed) return;
            const i = this.getContextValuesContainer(this._myContextId);
            i && i.setValue(e, t) && this._onDidChangeContext.fire(new dr(e));
          }
          removeContext(e) {
            this._isDisposed ||
              (this.getContextValuesContainer(this._myContextId).removeValue(
                e
              ) &&
                this._onDidChangeContext.fire(new dr(e)));
          }
          getContext(e) {
            return this._isDisposed
              ? ar.INSTANCE
              : this.getContextValuesContainer(
                  (function (e) {
                    for (; e; ) {
                      if (e.hasAttribute(sr)) {
                        const t = e.getAttribute(sr);
                        return t ? parseInt(t, 10) : NaN;
                      }
                      e = e.parentElement;
                    }
                    return 0;
                  })(e)
                );
          }
        }
        let fr = class extends gr {
          constructor(e) {
            super(0),
              (this._contexts = new Map()),
              (this._toDispose = new _e.SL()),
              (this._lastContextId = 0);
            const t = new lr(this._myContextId, e, this._onDidChangeContext);
            this._contexts.set(this._myContextId, t), this._toDispose.add(t);
          }
          dispose() {
            (this._isDisposed = !0), this._toDispose.dispose();
          }
          getContextValuesContainer(e) {
            return this._isDisposed
              ? ar.INSTANCE
              : this._contexts.get(e) || ar.INSTANCE;
          }
          createChildContext(e = this._myContextId) {
            if (this._isDisposed)
              throw new Error('ContextKeyService has been disposed');
            let t = ++this._lastContextId;
            return (
              this._contexts.set(
                t,
                new or(t, this.getContextValuesContainer(e))
              ),
              t
            );
          }
          disposeContext(e) {
            this._isDisposed || this._contexts.delete(e);
          }
        };
        fr = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            (function (e, t) {
              return function (i, n) {
                t(i, n, e);
              };
            })(0, qt.Ui),
          ],
          fr
        );
        class pr extends gr {
          constructor(e, t) {
            super(e.createChildContext()),
              (this._parent = e),
              t &&
                ((this._domNode = t),
                this._domNode.setAttribute(sr, String(this._myContextId)));
          }
          dispose() {
            (this._isDisposed = !0),
              this._parent.disposeContext(this._myContextId),
              this._domNode &&
                (this._domNode.removeAttribute(sr), (this._domNode = void 0));
          }
          get onDidChangeContext() {
            return B.ju.any(
              this._parent.onDidChangeContext,
              this._onDidChangeContext.event
            );
          }
          getContextValuesContainer(e) {
            return this._isDisposed
              ? ar.INSTANCE
              : this._parent.getContextValuesContainer(e);
          }
          createChildContext(e = this._myContextId) {
            if (this._isDisposed)
              throw new Error('ScopedContextKeyService has been disposed');
            return this._parent.createChildContext(e);
          }
          disposeContext(e) {
            this._isDisposed || this._parent.disposeContext(e);
          }
        }
        ee.P.registerCommand(Vi.Eq, function (e, t, i) {
          e.get(Vi.i6).createKey(String(t), i);
        });
        var mr = i(74741),
          _r = i(90317),
          br = i(9802),
          vr = i(61134),
          yr = i(10161);
        function wr(e, t, i) {
          const n = i.offset + i.size;
          return 0 === i.position
            ? t <= e - n
              ? n
              : t <= i.offset
              ? i.offset - t
              : Math.max(e - t, 0)
            : t <= i.offset
            ? i.offset - t
            : t <= e - n
            ? n
            : 0;
        }
        class Cr extends _e.JT {
          constructor(e, t) {
            super(),
              (this.container = null),
              (this.delegate = null),
              (this.toDisposeOnClean = _e.JT.None),
              (this.toDisposeOnSetContainer = _e.JT.None),
              (this.shadowRoot = null),
              (this.shadowRootHostElement = null),
              (this.view = G.$('.context-view')),
              (this.useFixedPosition = !1),
              (this.useShadowDOM = !1),
              G.Cp(this.view),
              this.setContainer(e, t),
              this._register((0, _e.OF)(() => this.setContainer(null, 1)));
          }
          setContainer(e, t) {
            if (
              (this.container &&
                (this.toDisposeOnSetContainer.dispose(),
                this.shadowRoot
                  ? (this.shadowRoot.removeChild(this.view),
                    (this.shadowRoot = null),
                    G.ZF(this.shadowRootHostElement),
                    (this.shadowRootHostElement = null))
                  : this.container.removeChild(this.view),
                (this.container = null)),
              e)
            ) {
              (this.container = e),
                (this.useFixedPosition = 1 !== t),
                (this.useShadowDOM = 3 === t),
                this.useShadowDOM
                  ? ((this.shadowRootHostElement = G.$('.shadow-root-host')),
                    this.container.appendChild(this.shadowRootHostElement),
                    (this.shadowRoot = this.shadowRootHostElement.attachShadow({
                      mode: 'open',
                    })),
                    (this.shadowRoot.innerHTML = `\n\t\t\t\t\t<style>\n\t\t\t\t\t\t${Sr}\n\t\t\t\t\t</style>\n\t\t\t\t`),
                    this.shadowRoot.appendChild(this.view),
                    this.shadowRoot.appendChild(G.$('slot')))
                  : this.container.appendChild(this.view);
              const i = new _e.SL();
              Cr.BUBBLE_UP_EVENTS.forEach((e) => {
                i.add(
                  G.mu(this.container, e, (e) => {
                    this.onDOMEvent(e, !1);
                  })
                );
              }),
                Cr.BUBBLE_DOWN_EVENTS.forEach((e) => {
                  i.add(
                    G.mu(
                      this.container,
                      e,
                      (e) => {
                        this.onDOMEvent(e, !0);
                      },
                      !0
                    )
                  );
                }),
                (this.toDisposeOnSetContainer = i);
            }
          }
          show(e) {
            this.isVisible() && this.hide(),
              G.PO(this.view),
              (this.view.className = 'context-view'),
              (this.view.style.top = '0px'),
              (this.view.style.left = '0px'),
              (this.view.style.zIndex = '2500'),
              (this.view.style.position = this.useFixedPosition
                ? 'fixed'
                : 'absolute'),
              G.$Z(this.view),
              (this.toDisposeOnClean = e.render(this.view) || _e.JT.None),
              (this.delegate = e),
              this.doLayout(),
              this.delegate.focus && this.delegate.focus();
          }
          getViewElement() {
            return this.view;
          }
          layout() {
            this.isVisible() &&
              (!1 !== this.delegate.canRelayout || (ve.gn && yr.D.pointerEvents)
                ? (this.delegate.layout && this.delegate.layout(),
                  this.doLayout())
                : this.hide());
          }
          doLayout() {
            if (!this.isVisible()) return;
            let e,
              t = this.delegate.getAnchor();
            if (G.Re(t)) {
              let i = G.i(t);
              e = {
                top: i.top,
                left: i.left,
                width: i.width,
                height: i.height,
              };
            } else
              e = {
                top: t.y,
                left: t.x,
                width: t.width || 1,
                height: t.height || 2,
              };
            const i = G.w(this.view),
              n = G.wn(this.view),
              r = this.delegate.anchorPosition || 0,
              s = this.delegate.anchorAlignment || 0,
              o = {
                offset: e.top - window.pageYOffset,
                size: e.height,
                position: 0 === r ? 0 : 1,
              };
            let a;
            a =
              0 === s
                ? { offset: e.left, size: 0, position: 0 }
                : { offset: e.left + e.width, size: 0, position: 1 };
            const l = wr(window.innerHeight, n, o) + window.pageYOffset;
            vr.e.intersects(
              { start: l, end: l + n },
              { start: o.offset, end: o.offset + o.size }
            ) && ((a.size = e.width), 1 === s && (a.offset = e.left));
            const c = wr(window.innerWidth, i, a);
            G.GK(this.view, 'top', 'bottom', 'left', 'right'),
              G.cn(this.view, 0 === r ? 'bottom' : 'top'),
              G.cn(this.view, 0 === s ? 'left' : 'right'),
              G.og(this.view, 'fixed', this.useFixedPosition);
            const d = G.i(this.container);
            (this.view.style.top =
              l - (this.useFixedPosition ? G.i(this.view).top : d.top) + 'px'),
              (this.view.style.left =
                c -
                (this.useFixedPosition ? G.i(this.view).left : d.left) +
                'px'),
              (this.view.style.width = 'initial');
          }
          hide(e) {
            const t = this.delegate;
            (this.delegate = null),
              (null == t ? void 0 : t.onHide) && t.onHide(e),
              this.toDisposeOnClean.dispose(),
              G.Cp(this.view);
          }
          isVisible() {
            return !!this.delegate;
          }
          onDOMEvent(e, t) {
            this.delegate &&
              (this.delegate.onDOMEvent
                ? this.delegate.onDOMEvent(e, document.activeElement)
                : t && !G.jg(e.target, this.container) && this.hide());
          }
          dispose() {
            this.hide(), super.dispose();
          }
        }
        (Cr.BUBBLE_UP_EVENTS = ['click', 'keydown', 'focus', 'blur']),
          (Cr.BUBBLE_DOWN_EVENTS = ['click']);
        let Sr =
          '\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t@font-face {\n\t\tfont-family: "codicon";\n\t\tsrc: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype");\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n';
        var kr = i(73046),
          xr = i(76033),
          Lr = i(16268),
          Mr = i(23938);
        const Dr = /\(&([^\s&])\)|(^|[^&])&([^\s&])/,
          Nr = /(&amp;)?(&amp;)([^\s&])/g,
          Er = (0, kr.q5)('menu-selection', kr.lA.check),
          Tr = (0, kr.q5)('menu-submenu', kr.lA.chevronRight);
        var Ir;
        !(function (e) {
          (e[(e.Right = 0)] = 'Right'), (e[(e.Left = 1)] = 'Left');
        })(Ir || (Ir = {}));
        class Or extends _r.o {
          constructor(e, t, i = {}) {
            (0, G.cn)(e, 'monaco-menu-container'),
              e.setAttribute('role', 'presentation');
            const n = document.createElement('div');
            (0, G.cn)(n, 'monaco-menu'),
              n.setAttribute('role', 'presentation'),
              super(n, {
                orientation: 2,
                actionViewItemProvider: (e) =>
                  this.doGetActionViewItem(e, i, r),
                context: i.context,
                actionRunner: i.actionRunner,
                ariaLabel: i.ariaLabel,
                triggerKeys: {
                  keys: [3, ...(ve.dz || ve.IJ ? [10] : [])],
                  keyDown: !0,
                },
              }),
              (this.menuElement = n),
              this.actionsList.setAttribute('role', 'menu'),
              (this.actionsList.tabIndex = 0),
              (this.menuDisposables = this._register(new _e.SL())),
              this.initializeStyleSheet(e),
              (0, G.nm)(n, G.tw.KEY_DOWN, (e) => {
                new jt.y(e).equals(2) && e.preventDefault();
              }),
              i.enableMnemonics &&
                this.menuDisposables.add(
                  (0, G.nm)(n, G.tw.KEY_DOWN, (e) => {
                    const t = e.key.toLocaleLowerCase();
                    if (this.mnemonics.has(t)) {
                      G.zB.stop(e, !0);
                      const i = this.mnemonics.get(t);
                      if (
                        (1 === i.length &&
                          (i[0] instanceof Rr &&
                            i[0].container &&
                            this.focusItemByElement(i[0].container),
                          i[0].onClick(e)),
                        i.length > 1)
                      ) {
                        const e = i.shift();
                        e &&
                          e.container &&
                          (this.focusItemByElement(e.container), i.push(e)),
                          this.mnemonics.set(t, i);
                      }
                    }
                  })
                ),
              ve.IJ &&
                this._register(
                  (0, G.nm)(n, G.tw.KEY_DOWN, (e) => {
                    const t = new jt.y(e);
                    t.equals(14) || t.equals(11)
                      ? ((this.focusedItem = this.viewItems.length - 1),
                        this.focusNext(),
                        G.zB.stop(e, !0))
                      : (t.equals(13) || t.equals(12)) &&
                        ((this.focusedItem = 0),
                        this.focusPrevious(),
                        G.zB.stop(e, !0));
                  })
                ),
              this._register(
                (0, G.nm)(this.domNode, G.tw.MOUSE_OUT, (e) => {
                  let t = e.relatedTarget;
                  (0, G.jg)(t, this.domNode) ||
                    ((this.focusedItem = void 0),
                    this.updateFocus(),
                    e.stopPropagation());
                })
              ),
              this._register(
                (0, G.nm)(this.actionsList, G.tw.MOUSE_OVER, (e) => {
                  let t = e.target;
                  if (
                    t &&
                    (0, G.jg)(t, this.actionsList) &&
                    t !== this.actionsList
                  ) {
                    for (
                      ;
                      t.parentElement !== this.actionsList &&
                      null !== t.parentElement;

                    )
                      t = t.parentElement;
                    if ((0, G.pv)(t, 'action-item')) {
                      const e = this.focusedItem;
                      this.setFocusedItem(t),
                        e !== this.focusedItem && this.updateFocus();
                    }
                  }
                })
              );
            let r = { parent: this };
            (this.mnemonics = new Map()),
              (this.scrollableElement = this._register(
                new br.s$(n, {
                  alwaysConsumeMouseWheel: !0,
                  horizontal: 2,
                  vertical: 3,
                  verticalScrollbarSize: 7,
                  handleMouseWheel: !0,
                  useShadows: !0,
                })
              ));
            const s = this.scrollableElement.getDomNode();
            (s.style.position = ''),
              this._register(
                (0, G.nm)(s, G.tw.MOUSE_UP, (e) => {
                  e.preventDefault();
                })
              ),
              (n.style.maxHeight = `${Math.max(
                10,
                window.innerHeight - e.getBoundingClientRect().top - 35
              )}px`),
              (t = t.filter((e) => {
                var t;
                return (
                  !(null === (t = i.submenuIds) || void 0 === t
                    ? void 0
                    : t.has(e.id)) ||
                  (console.warn(`Found submenu cycle: ${e.id}`), !1)
                );
              })),
              this.push(t, { icon: !0, label: !0, isMenu: !0 }),
              e.appendChild(this.scrollableElement.getDomNode()),
              this.scrollableElement.scanDomNode(),
              this.viewItems
                .filter((e) => !(e instanceof Pr))
                .forEach((e, t, i) => {
                  e.updatePositionInSet(t + 1, i.length);
                });
          }
          initializeStyleSheet(e) {
            (0, G.OO)(e)
              ? ((this.styleSheet = (0, G.dS)(e)),
                (this.styleSheet.innerHTML = Fr))
              : (Or.globalStyleSheet ||
                  ((Or.globalStyleSheet = (0, G.dS)()),
                  (Or.globalStyleSheet.innerHTML = Fr)),
                (this.styleSheet = Or.globalStyleSheet));
          }
          style(e) {
            const t = this.getContainer(),
              i = e.foregroundColor ? `${e.foregroundColor}` : '',
              n = e.backgroundColor ? `${e.backgroundColor}` : '',
              r = e.borderColor ? `1px solid ${e.borderColor}` : '',
              s = e.shadowColor ? `0 2px 4px ${e.shadowColor}` : '';
            (t.style.border = r),
              (this.domNode.style.color = i),
              (this.domNode.style.backgroundColor = n),
              (t.style.boxShadow = s),
              this.viewItems &&
                this.viewItems.forEach((t) => {
                  (t instanceof Ar || t instanceof Pr) && t.style(e);
                });
          }
          getContainer() {
            return this.scrollableElement.getDomNode();
          }
          get onScroll() {
            return this.scrollableElement.onScroll;
          }
          focusItemByElement(e) {
            const t = this.focusedItem;
            this.setFocusedItem(e),
              t !== this.focusedItem && this.updateFocus();
          }
          setFocusedItem(e) {
            for (let t = 0; t < this.actionsList.children.length; t++)
              if (e === this.actionsList.children[t]) {
                this.focusedItem = t;
                break;
              }
          }
          updateFocus(e) {
            super.updateFocus(e, !0),
              void 0 !== this.focusedItem &&
                this.scrollableElement.setScrollPosition({
                  scrollTop: Math.round(this.menuElement.scrollTop),
                });
          }
          doGetActionViewItem(e, t, i) {
            if (e instanceof mr.Z0) return new Pr(t.context, e, { icon: !0 });
            if (e instanceof mr.wY) {
              const n = new Rr(
                e,
                e.actions,
                i,
                Object.assign(Object.assign({}, t), {
                  submenuIds: new Set([...(t.submenuIds || []), e.id]),
                })
              );
              if (t.enableMnemonics) {
                const e = n.getMnemonic();
                if (e && n.isEnabled()) {
                  let t = [];
                  this.mnemonics.has(e) && (t = this.mnemonics.get(e)),
                    t.push(n),
                    this.mnemonics.set(e, t);
                }
              }
              return n;
            }
            {
              const i = {
                enableMnemonics: t.enableMnemonics,
                useEventAsContext: t.useEventAsContext,
              };
              if (t.getKeyBinding) {
                const n = t.getKeyBinding(e);
                if (n) {
                  const e = n.getLabel();
                  e && (i.keybinding = e);
                }
              }
              const n = new Ar(t.context, e, i);
              if (t.enableMnemonics) {
                const e = n.getMnemonic();
                if (e && n.isEnabled()) {
                  let t = [];
                  this.mnemonics.has(e) && (t = this.mnemonics.get(e)),
                    t.push(n),
                    this.mnemonics.set(e, t);
                }
              }
              return n;
            }
          }
        }
        class Ar extends xr.Y {
          constructor(e, t, i = {}) {
            if (
              ((i.isMenu = !0),
              super(t, t, i),
              (this.options = i),
              (this.options.icon = void 0 !== i.icon && i.icon),
              (this.options.label = void 0 === i.label || i.label),
              (this.cssClass = ''),
              this.options.label && i.enableMnemonics)
            ) {
              let e = this.getAction().label;
              if (e) {
                let t = Dr.exec(e);
                t && (this.mnemonic = (t[1] ? t[1] : t[3]).toLocaleLowerCase());
              }
            }
            (this.runOnceToEnableMouseUp = new me.pY(() => {
              this.element &&
                (this._register(
                  (0, G.nm)(this.element, G.tw.MOUSE_UP, (e) => {
                    if ((G.zB.stop(e, !0), Lr.vU)) {
                      if (new Mr.n(e).rightButton) return;
                      this.onClick(e);
                    }
                    setTimeout(() => {
                      this.onClick(e);
                    }, 0);
                  })
                ),
                this._register(
                  (0, G.nm)(this.element, G.tw.CONTEXT_MENU, (e) => {
                    G.zB.stop(e, !0);
                  })
                ));
            }, 100)),
              this._register(this.runOnceToEnableMouseUp);
          }
          render(e) {
            super.render(e),
              this.element &&
                ((this.container = e),
                (this.item = (0, G.R3)(
                  this.element,
                  (0, G.$)('a.action-menu-item')
                )),
                this._action.id === mr.Z0.ID
                  ? this.item.setAttribute('role', 'presentation')
                  : (this.item.setAttribute('role', 'menuitem'),
                    this.mnemonic &&
                      this.item.setAttribute(
                        'aria-keyshortcuts',
                        `${this.mnemonic}`
                      )),
                (this.check = (0, G.R3)(
                  this.item,
                  (0, G.$)('span.menu-item-check' + Er.cssSelector)
                )),
                this.check.setAttribute('role', 'none'),
                (this.label = (0, G.R3)(
                  this.item,
                  (0, G.$)('span.action-label')
                )),
                this.options.label &&
                  this.options.keybinding &&
                  ((0, G.R3)(
                    this.item,
                    (0, G.$)('span.keybinding')
                  ).textContent = this.options.keybinding),
                this.runOnceToEnableMouseUp.schedule(),
                this.updateClass(),
                this.updateLabel(),
                this.updateTooltip(),
                this.updateEnabled(),
                this.updateChecked());
          }
          blur() {
            super.blur(), this.applyStyle();
          }
          focus() {
            super.focus(), this.item && this.item.focus(), this.applyStyle();
          }
          updatePositionInSet(e, t) {
            this.item &&
              (this.item.setAttribute('aria-posinset', `${e}`),
              this.item.setAttribute('aria-setsize', `${t}`));
          }
          updateLabel() {
            if (this.label && this.options.label) {
              (0, G.PO)(this.label);
              let e = (0, kr.QF)(this.getAction().label);
              if (e) {
                const t = (function (e) {
                  const t = Dr,
                    i = t.exec(e);
                  if (!i) return e;
                  const n = !i[1];
                  return e.replace(t, n ? '$2$3' : '').trim();
                })(e);
                this.options.enableMnemonics || (e = t),
                  this.label.setAttribute('aria-label', t.replace(/&&/g, '&'));
                const i = Dr.exec(e);
                if (i) {
                  (e = Fe.YU(e)), (Nr.lastIndex = 0);
                  let t = Nr.exec(e);
                  for (; t && t[1]; ) t = Nr.exec(e);
                  const n = (e) => e.replace(/&amp;&amp;/g, '&amp;');
                  t
                    ? this.label.append(
                        Fe.j3(n(e.substr(0, t.index)), ' '),
                        (0, G.$)('u', { 'aria-hidden': 'true' }, t[3]),
                        Fe.oL(n(e.substr(t.index + t[0].length)), ' ')
                      )
                    : (this.label.innerText = n(e).trim()),
                    this.item &&
                      this.item.setAttribute(
                        'aria-keyshortcuts',
                        (i[1] ? i[1] : i[3]).toLocaleLowerCase()
                      );
                } else this.label.innerText = e.replace(/&&/g, '&').trim();
              }
            }
          }
          updateTooltip() {
            let e = null;
            this.getAction().tooltip
              ? (e = this.getAction().tooltip)
              : !this.options.label &&
                this.getAction().label &&
                this.options.icon &&
                ((e = this.getAction().label),
                this.options.keybinding &&
                  (e = ii.N(
                    {
                      key: 'titleLabel',
                      comment: ['action title', 'action keybinding'],
                    },
                    '{0} ({1})',
                    e,
                    this.options.keybinding
                  ))),
              e && this.item && (this.item.title = e);
          }
          updateClass() {
            this.cssClass && this.item && (0, G.GK)(this.item, this.cssClass),
              this.options.icon && this.label
                ? ((this.cssClass = this.getAction().class || ''),
                  (0, G.cn)(this.label, 'icon'),
                  this.cssClass && (0, G.PT)(this.label, this.cssClass),
                  this.updateEnabled())
                : this.label && (0, G.IV)(this.label, 'icon');
          }
          updateEnabled() {
            this.getAction().enabled
              ? (this.element && (0, G.IV)(this.element, 'disabled'),
                this.item &&
                  ((0, G.IV)(this.item, 'disabled'), (this.item.tabIndex = 0)))
              : (this.element && (0, G.cn)(this.element, 'disabled'),
                this.item &&
                  ((0, G.cn)(this.item, 'disabled'), (0, G.eJ)(this.item)));
          }
          updateChecked() {
            this.item &&
              (this.getAction().checked
                ? ((0, G.cn)(this.item, 'checked'),
                  this.item.setAttribute('role', 'menuitemcheckbox'),
                  this.item.setAttribute('aria-checked', 'true'))
                : ((0, G.IV)(this.item, 'checked'),
                  this.item.setAttribute('role', 'menuitem'),
                  this.item.setAttribute('aria-checked', 'false')));
          }
          getMnemonic() {
            return this.mnemonic;
          }
          applyStyle() {
            if (!this.menuStyle) return;
            const e = this.element && (0, G.pv)(this.element, 'focused'),
              t =
                e && this.menuStyle.selectionForegroundColor
                  ? this.menuStyle.selectionForegroundColor
                  : this.menuStyle.foregroundColor,
              i =
                e && this.menuStyle.selectionBackgroundColor
                  ? this.menuStyle.selectionBackgroundColor
                  : void 0,
              n =
                e && this.menuStyle.selectionBorderColor
                  ? `thin solid ${this.menuStyle.selectionBorderColor}`
                  : '';
            this.item &&
              ((this.item.style.color = t ? t.toString() : ''),
              (this.item.style.backgroundColor = i ? i.toString() : '')),
              this.check && (this.check.style.color = t ? t.toString() : ''),
              this.container && (this.container.style.border = n);
          }
          style(e) {
            (this.menuStyle = e), this.applyStyle();
          }
        }
        class Rr extends Ar {
          constructor(e, t, i, n) {
            super(e, e, n),
              (this.submenuActions = t),
              (this.parentData = i),
              (this.submenuOptions = n),
              (this.mysubmenu = null),
              (this.submenuDisposables = this._register(new _e.SL())),
              (this.mouseOver = !1),
              (this.expandDirection =
                n && void 0 !== n.expandDirection
                  ? n.expandDirection
                  : Ir.Right),
              (this.showScheduler = new me.pY(() => {
                this.mouseOver &&
                  (this.cleanupExistingSubmenu(!1), this.createSubmenu(!1));
              }, 250)),
              (this.hideScheduler = new me.pY(() => {
                this.element &&
                  !(0, G.jg)((0, G.vY)(), this.element) &&
                  this.parentData.submenu === this.mysubmenu &&
                  (this.parentData.parent.focus(!1),
                  this.cleanupExistingSubmenu(!0));
              }, 750));
          }
          render(e) {
            super.render(e),
              this.element &&
                (this.item &&
                  ((0, G.cn)(this.item, 'monaco-submenu-item'),
                  this.item.setAttribute('aria-haspopup', 'true'),
                  this.updateAriaExpanded('false'),
                  (this.submenuIndicator = (0, G.R3)(
                    this.item,
                    (0, G.$)('span.submenu-indicator' + Tr.cssSelector)
                  )),
                  this.submenuIndicator.setAttribute('aria-hidden', 'true')),
                this._register(
                  (0, G.nm)(this.element, G.tw.KEY_UP, (e) => {
                    let t = new jt.y(e);
                    (t.equals(17) || t.equals(3)) &&
                      (G.zB.stop(e, !0), this.createSubmenu(!0));
                  })
                ),
                this._register(
                  (0, G.nm)(this.element, G.tw.KEY_DOWN, (e) => {
                    let t = new jt.y(e);
                    (0, G.vY)() === this.item &&
                      (t.equals(17) || t.equals(3)) &&
                      G.zB.stop(e, !0);
                  })
                ),
                this._register(
                  (0, G.nm)(this.element, G.tw.MOUSE_OVER, (e) => {
                    this.mouseOver ||
                      ((this.mouseOver = !0), this.showScheduler.schedule());
                  })
                ),
                this._register(
                  (0, G.nm)(this.element, G.tw.MOUSE_LEAVE, (e) => {
                    this.mouseOver = !1;
                  })
                ),
                this._register(
                  (0, G.nm)(this.element, G.tw.FOCUS_OUT, (e) => {
                    this.element &&
                      !(0, G.jg)((0, G.vY)(), this.element) &&
                      this.hideScheduler.schedule();
                  })
                ),
                this._register(
                  this.parentData.parent.onScroll(() => {
                    this.parentData.parent.focus(!1),
                      this.cleanupExistingSubmenu(!1);
                  })
                ));
          }
          onClick(e) {
            G.zB.stop(e, !0),
              this.cleanupExistingSubmenu(!1),
              this.createSubmenu(!0);
          }
          cleanupExistingSubmenu(e) {
            if (
              this.parentData.submenu &&
              (e || this.parentData.submenu !== this.mysubmenu)
            ) {
              try {
                this.parentData.submenu.dispose();
              } catch (e) {}
              (this.parentData.submenu = void 0),
                this.updateAriaExpanded('false'),
                this.submenuContainer &&
                  (this.submenuDisposables.clear(),
                  (this.submenuContainer = void 0));
            }
          }
          calculateSubmenuMenuLayout(e, t, i, n) {
            const r = { top: 0, left: 0 };
            return (
              (r.left = wr(e.width, t.width, {
                position: n === Ir.Right ? 0 : 1,
                offset: i.left,
                size: i.width,
              })),
              r.left >= i.left &&
                r.left < i.left + i.width &&
                (i.left + 10 + t.width <= e.width && (r.left = i.left + 10),
                (i.top += 10),
                (i.height = 0)),
              (r.top = wr(e.height, t.height, {
                position: 0,
                offset: i.top,
                size: 0,
              })),
              r.top + t.height === i.top &&
                r.top + i.height + t.height <= e.height &&
                (r.top += i.height),
              r
            );
          }
          createSubmenu(e = !0) {
            if (this.element)
              if (this.parentData.submenu) this.parentData.submenu.focus(!1);
              else {
                this.updateAriaExpanded('true'),
                  (this.submenuContainer = (0, G.R3)(
                    this.element,
                    (0, G.$)('div.monaco-submenu')
                  )),
                  (0, G.PT)(
                    this.submenuContainer,
                    'menubar-menu-items-holder',
                    'context-view'
                  );
                const t = getComputedStyle(this.parentData.parent.domNode),
                  i = parseFloat(t.paddingTop || '0') || 0;
                (this.submenuContainer.style.zIndex = '1'),
                  (this.submenuContainer.style.position = 'fixed'),
                  (this.submenuContainer.style.top = '0'),
                  (this.submenuContainer.style.left = '0'),
                  (this.parentData.submenu = new Or(
                    this.submenuContainer,
                    this.submenuActions,
                    this.submenuOptions
                  )),
                  this.menuStyle &&
                    this.parentData.submenu.style(this.menuStyle);
                const n = this.element.getBoundingClientRect(),
                  r = {
                    top: n.top - i,
                    left: n.left,
                    height: n.height + 2 * i,
                    width: n.width,
                  },
                  s = this.submenuContainer.getBoundingClientRect(),
                  { top: o, left: a } = this.calculateSubmenuMenuLayout(
                    { height: window.innerHeight, width: window.innerWidth },
                    s,
                    r,
                    this.expandDirection
                  );
                (this.submenuContainer.style.left = `${a}px`),
                  (this.submenuContainer.style.top = `${o}px`),
                  this.submenuDisposables.add(
                    (0, G.nm)(this.submenuContainer, G.tw.KEY_UP, (e) => {
                      new jt.y(e).equals(15) &&
                        (G.zB.stop(e, !0),
                        this.parentData.parent.focus(),
                        this.cleanupExistingSubmenu(!0));
                    })
                  ),
                  this.submenuDisposables.add(
                    (0, G.nm)(this.submenuContainer, G.tw.KEY_DOWN, (e) => {
                      new jt.y(e).equals(15) && G.zB.stop(e, !0);
                    })
                  ),
                  this.submenuDisposables.add(
                    this.parentData.submenu.onDidCancel(() => {
                      this.parentData.parent.focus(),
                        this.cleanupExistingSubmenu(!0);
                    })
                  ),
                  this.parentData.submenu.focus(e),
                  (this.mysubmenu = this.parentData.submenu);
              }
          }
          updateAriaExpanded(e) {
            var t;
            this.item &&
              (null === (t = this.item) ||
                void 0 === t ||
                t.setAttribute('aria-expanded', e));
          }
          applyStyle() {
            if ((super.applyStyle(), !this.menuStyle)) return;
            const e =
              this.element &&
              (0, G.pv)(this.element, 'focused') &&
              this.menuStyle.selectionForegroundColor
                ? this.menuStyle.selectionForegroundColor
                : this.menuStyle.foregroundColor;
            this.submenuIndicator &&
              (this.submenuIndicator.style.color = e ? `${e}` : ''),
              this.parentData.submenu &&
                this.parentData.submenu.style(this.menuStyle);
          }
          dispose() {
            super.dispose(),
              this.hideScheduler.dispose(),
              this.mysubmenu &&
                (this.mysubmenu.dispose(), (this.mysubmenu = null)),
              this.submenuContainer && (this.submenuContainer = void 0);
          }
        }
        class Pr extends xr.g {
          style(e) {
            this.label &&
              (this.label.style.borderBottomColor = e.separatorColor
                ? `${e.separatorColor}`
                : '');
          }
        }
        let Fr = `\n.monaco-menu {\n\tfont-size: 13px;\n\n}\n\n${(0, qn.a)(
          Er
        )}\n${(0, qn.a)(
          Tr
        )}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\topacity: 0.4;\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tpadding: 0.5em 0 0 0;\n\tmargin-bottom: 0.5em;\n\twidth: 100%;\n\theight: 0px !important;\n\tmargin-left: .8em !important;\n\tmargin-right: .8em !important;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\n}\n\n\n/* High Contrast Theming */\n:host-context(.hc-black) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: .5em 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 1.8em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tpadding: 0.2em 0 0 0;\n\tmargin-bottom: 0.2em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .scra {\n\tcursor: pointer;\n\tfont-size: 11px !important;\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\ttransition: opacity 100ms linear;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\n}\n\n/* ---------- Default Style ---------- */\n\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(100, 100, 100, .4);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(121, 121, 121, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(111, 195, 223, .6);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(100, 100, 100, .7);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(111, 195, 223, .8);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(0, 0, 0, .6);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(191, 191, 191, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(111, 195, 223, 1);\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: #000 6px 0 6px -6px inset;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: #000 6px 6px 6px -6px inset;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: none;\n}\n`;
        var Br = i(88810),
          Wr = i(4850);
        class Yr {
          constructor(e, t, i, n, r) {
            (this.contextViewService = e),
              (this.telemetryService = t),
              (this.notificationService = i),
              (this.keybindingService = n),
              (this.themeService = r),
              (this.focusToReturn = null),
              (this.block = null),
              (this.options = { blockMouse: !0 });
          }
          configure(e) {
            this.options = e;
          }
          showContextMenu(e) {
            const t = e.getActions();
            if (!t.length) return;
            let i;
            this.focusToReturn = document.activeElement;
            let n = (0, G.Re)(e.domForShadowRoot) ? e.domForShadowRoot : void 0;
            this.contextViewService.showContextView(
              {
                getAnchor: () => e.getAnchor(),
                canRelayout: !1,
                anchorAlignment: e.anchorAlignment,
                render: (n) => {
                  let r = e.getMenuClassName ? e.getMenuClassName() : '';
                  r && (n.className += ' ' + r),
                    this.options.blockMouse &&
                      ((this.block = n.appendChild(
                        (0, G.$)('.context-view-block')
                      )),
                      (this.block.style.position = 'fixed'),
                      (this.block.style.cursor = 'initial'),
                      (this.block.style.left = '0'),
                      (this.block.style.top = '0'),
                      (this.block.style.width = '100%'),
                      (this.block.style.height = '100%'),
                      (this.block.style.zIndex = '-1'),
                      (0, Wr.j)(
                        this.block,
                        G.tw.MOUSE_DOWN
                      )((e) => e.stopPropagation()));
                  const s = new _e.SL(),
                    o = e.actionRunner || new mr.Wi();
                  return (
                    o.onDidBeforeRun(this.onActionRun, this, s),
                    o.onDidRun(this.onDidActionRun, this, s),
                    (i = new Or(n, t, {
                      actionViewItemProvider: e.getActionViewItem,
                      context: e.getActionsContext
                        ? e.getActionsContext()
                        : null,
                      actionRunner: o,
                      getKeyBinding: e.getKeyBinding
                        ? e.getKeyBinding
                        : (e) => this.keybindingService.lookupKeybinding(e.id),
                    })),
                    s.add((0, Br.tj)(i, this.themeService)),
                    i.onDidCancel(
                      () => this.contextViewService.hideContextView(!0),
                      null,
                      s
                    ),
                    i.onDidBlur(
                      () => this.contextViewService.hideContextView(!0),
                      null,
                      s
                    ),
                    (0, Wr.j)(window, G.tw.BLUR)(
                      () => {
                        this.contextViewService.hideContextView(!0);
                      },
                      null,
                      s
                    ),
                    (0, Wr.j)(window, G.tw.MOUSE_DOWN)(
                      (e) => {
                        if (e.defaultPrevented) return;
                        let t = new Mr.n(e),
                          i = t.target;
                        if (!t.rightButton) {
                          for (; i; ) {
                            if (i === n) return;
                            i = i.parentElement;
                          }
                          this.contextViewService.hideContextView(!0);
                        }
                      },
                      null,
                      s
                    ),
                    (0, _e.F8)(s, i)
                  );
                },
                focus: () => {
                  i && i.focus(!!e.autoSelectFirstItem);
                },
                onHide: (t) => {
                  e.onHide && e.onHide(!!t),
                    this.block && ((0, G.ZF)(this.block), (this.block = null)),
                    this.focusToReturn && this.focusToReturn.focus();
                },
              },
              n,
              !!n
            );
          }
          onActionRun(e) {
            this.telemetryService &&
              this.telemetryService.publicLog2('workbenchActionExecuted', {
                id: e.action.id,
                from: 'contextMenu',
              }),
              this.contextViewService.hideContextView(!1),
              this.focusToReturn && this.focusToReturn.focus();
          }
          onDidActionRun(e) {
            e.error &&
              this.notificationService &&
              this.notificationService.error(e.error);
          }
        }
        var Hr = i(10829),
          jr = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let Vr = class extends _e.JT {
          constructor(e, t, i, n, r) {
            super(),
              (this._onDidContextMenu = this._register(new B.Q5())),
              (this.onDidContextMenu = this._onDidContextMenu.event),
              (this.contextMenuHandler = new Yr(i, e, t, n, r));
          }
          configure(e) {
            this.contextMenuHandler.configure(e);
          }
          showContextMenu(e) {
            this.contextMenuHandler.showContextMenu(e),
              this._onDidContextMenu.fire();
          }
        };
        Vr = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [jr(0, Hr.b), jr(1, pi.lT), jr(2, zi.u), jr(3, $i.d), jr(4, Ki.XE)],
          Vr
        );
        const zr = (0, Ui.yh)('layoutService');
        let Ur = class extends _e.JT {
          constructor(e) {
            super(),
              (this.layoutService = e),
              (this.currentViewDisposable = _e.JT.None),
              (this.container = e.container),
              (this.contextView = this._register(new Cr(this.container, 1))),
              this.layout(),
              this._register(e.onLayout(() => this.layout()));
          }
          setContainer(e, t) {
            this.contextView.setContainer(e, t || 1);
          }
          showContextView(e, t, i) {
            t
              ? t !== this.container &&
                ((this.container = t), this.setContainer(t, i ? 3 : 2))
              : this.container !== this.layoutService.container &&
                ((this.container = this.layoutService.container),
                this.setContainer(this.container, 1)),
              this.contextView.show(e);
            const n = (0, _e.OF)(() => {
              this.currentViewDisposable === n && this.hideContextView();
            });
            return (this.currentViewDisposable = n), n;
          }
          getContextViewElement() {
            return this.contextView.getViewElement();
          }
          layout() {
            this.contextView.layout();
          }
          hideContextView(e) {
            this.contextView.hide(e);
          }
        };
        Ur = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            (function (e, t) {
              return function (i, n) {
                t(i, n, e);
              };
            })(0, zr),
          ],
          Ur
        );
        var $r = i(28820);
        class Kr {
          constructor(e) {
            (this.incoming = new Map()),
              (this.outgoing = new Map()),
              (this.data = e);
          }
        }
        class qr {
          constructor(e) {
            (this._hashFn = e), (this._nodes = new Map());
          }
          roots() {
            const e = [];
            for (let t of this._nodes.values())
              0 === t.outgoing.size && e.push(t);
            return e;
          }
          insertEdge(e, t) {
            const i = this.lookupOrInsertNode(e),
              n = this.lookupOrInsertNode(t);
            i.outgoing.set(this._hashFn(t), n),
              n.incoming.set(this._hashFn(e), i);
          }
          removeNode(e) {
            const t = this._hashFn(e);
            this._nodes.delete(t);
            for (let e of this._nodes.values())
              e.outgoing.delete(t), e.incoming.delete(t);
          }
          lookupOrInsertNode(e) {
            const t = this._hashFn(e);
            let i = this._nodes.get(t);
            return i || ((i = new Kr(e)), this._nodes.set(t, i)), i;
          }
          isEmpty() {
            return 0 === this._nodes.size;
          }
          toString() {
            let e = [];
            for (let [t, i] of this._nodes)
              e.push(
                `${t}, (incoming)[${[...i.incoming.keys()].join(
                  ', '
                )}], (outgoing)[${[...i.outgoing.keys()].join(',')}]`
              );
            return e.join('\n');
          }
        }
        var Gr = i(97108),
          Zr = i(60972);
        class Jr extends Error {
          constructor(e) {
            super('cyclic dependency between services'),
              (this.message = e.toString());
          }
        }
        class Qr {
          constructor(e = new Zr.y(), t = !1, i) {
            (this._services = e),
              (this._strict = t),
              (this._parent = i),
              this._services.set(Ui.TG, this);
          }
          createChild(e) {
            return new Qr(e, this._strict, this);
          }
          invokeFunction(e, ...t) {
            let i = Xr.traceInvocation(e),
              n = !1;
            try {
              return e(
                {
                  get: (e, t) => {
                    if (n)
                      throw (0, be.L6)(
                        'service accessor is only valid during the invocation of its target method'
                      );
                    const r = this._getOrCreateServiceInstance(e, i);
                    if (!r && t !== Ui.jt)
                      throw new Error(
                        `[invokeFunction] unknown service '${e}'`
                      );
                    return r;
                  },
                },
                ...t
              );
            } finally {
              (n = !0), i.stop();
            }
          }
          createInstance(e, ...t) {
            let i, n;
            return (
              e instanceof Gr.M
                ? ((i = Xr.traceCreation(e.ctor)),
                  (n = this._createInstance(
                    e.ctor,
                    e.staticArguments.concat(t),
                    i
                  )))
                : ((i = Xr.traceCreation(e)),
                  (n = this._createInstance(e, t, i))),
              i.stop(),
              n
            );
          }
          _createInstance(e, t = [], i) {
            let n = Ui.I8.getServiceDependencies(e).sort(
                (e, t) => e.index - t.index
              ),
              r = [];
            for (const t of n) {
              let n = this._getOrCreateServiceInstance(t.id, i);
              if (!n && this._strict && !t.optional)
                throw new Error(
                  `[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`
                );
              r.push(n);
            }
            let s = n.length > 0 ? n[0].index : t.length;
            if (t.length !== s) {
              console.warn(
                `[createInstance] First service dependency of ${
                  e.name
                } at position ${s + 1} conflicts with ${
                  t.length
                } static arguments`
              );
              let i = s - t.length;
              t = i > 0 ? t.concat(new Array(i)) : t.slice(0, s);
            }
            return new e(...[...t, ...r]);
          }
          _setServiceInstance(e, t) {
            if (this._services.get(e) instanceof Gr.M) this._services.set(e, t);
            else {
              if (!this._parent)
                throw new Error(
                  'illegalState - setting UNKNOWN service instance'
                );
              this._parent._setServiceInstance(e, t);
            }
          }
          _getServiceInstanceOrDescriptor(e) {
            let t = this._services.get(e);
            return !t && this._parent
              ? this._parent._getServiceInstanceOrDescriptor(e)
              : t;
          }
          _getOrCreateServiceInstance(e, t) {
            let i = this._getServiceInstanceOrDescriptor(e);
            return i instanceof Gr.M
              ? this._createAndCacheServiceInstance(e, i, t.branch(e, !0))
              : (t.branch(e, !1), i);
          }
          _createAndCacheServiceInstance(e, t, i) {
            const n = new qr((e) => e.id.toString());
            let r = 0;
            const s = [{ id: e, desc: t, _trace: i }];
            for (; s.length; ) {
              const t = s.pop();
              if ((n.lookupOrInsertNode(t), r++ > 1e3)) throw new Jr(n);
              for (let i of Ui.I8.getServiceDependencies(t.desc.ctor)) {
                let r = this._getServiceInstanceOrDescriptor(i.id);
                if (
                  (r ||
                    i.optional ||
                    console.warn(
                      `[createInstance] ${e} depends on ${i.id} which is NOT registered.`
                    ),
                  r instanceof Gr.M)
                ) {
                  const e = {
                    id: i.id,
                    desc: r,
                    _trace: t._trace.branch(i.id, !0),
                  };
                  n.insertEdge(t, e), s.push(e);
                }
              }
            }
            for (;;) {
              const e = n.roots();
              if (0 === e.length) {
                if (!n.isEmpty()) throw new Jr(n);
                break;
              }
              for (const { data: t } of e) {
                const e = this._createServiceInstanceWithOwner(
                  t.id,
                  t.desc.ctor,
                  t.desc.staticArguments,
                  t.desc.supportsDelayedInstantiation,
                  t._trace
                );
                this._setServiceInstance(t.id, e), n.removeNode(t);
              }
            }
            return this._getServiceInstanceOrDescriptor(e);
          }
          _createServiceInstanceWithOwner(e, t, i = [], n, r) {
            if (this._services.get(e) instanceof Gr.M)
              return this._createServiceInstance(t, i, n, r);
            if (this._parent)
              return this._parent._createServiceInstanceWithOwner(
                e,
                t,
                i,
                n,
                r
              );
            throw new Error(
              `illegalState - creating UNKNOWN service instance ${t.name}`
            );
          }
          _createServiceInstance(e, t = [], i, n) {
            if (i) {
              const i = new me.Ue(() => this._createInstance(e, t, n));
              return new Proxy(Object.create(null), {
                get(e, t) {
                  if (t in e) return e[t];
                  let n = i.value,
                    r = n[t];
                  return (
                    'function' != typeof r || ((r = r.bind(n)), (e[t] = r)), r
                  );
                },
                set: (e, t, n) => ((i.value[t] = n), !0),
              });
            }
            return this._createInstance(e, t, n);
          }
        }
        class Xr {
          constructor(e, t) {
            (this.type = e),
              (this.name = t),
              (this._start = Date.now()),
              (this._dep = []);
          }
          static traceInvocation(e) {
            return Xr._None;
          }
          static traceCreation(e) {
            return Xr._None;
          }
          branch(e, t) {
            let i = new Xr(2, e.toString());
            return this._dep.push([e, t, i]), i;
          }
          stop() {
            let e = Date.now() - this._start;
            Xr._totals += e;
            let t = !1,
              i = [
                `${0 === this.type ? 'CREATE' : 'CALL'} ${this.name}`,
                `${(function e(i, n) {
                  let r = [],
                    s = new Array(i + 1).join('\t');
                  for (const [o, a, l] of n._dep)
                    if (a && l) {
                      (t = !0), r.push(`${s}CREATES -> ${o}`);
                      let n = e(i + 1, l);
                      n && r.push(n);
                    } else r.push(`${s}uses -> ${o}`);
                  return r.join('\n');
                })(1, this)}`,
                `DONE, took ${e.toFixed(2)}ms (grand total ${Xr._totals.toFixed(
                  2
                )}ms)`,
              ];
            (e > 2 || t) && console.log(i.join('\n'));
          }
        }
        (Xr._None = new (class extends Xr {
          constructor() {
            super(-1, null);
          }
          stop() {}
          branch() {
            return this;
          }
        })()),
          (Xr._totals = 0);
        var es = i(44349),
          ts = i(58664),
          is = i(98674),
          ns = i(53725);
        class rs {
          constructor() {
            (this._byResource = new Gt.Y9()), (this._byOwner = new Map());
          }
          set(e, t, i) {
            let n = this._byResource.get(e);
            n || ((n = new Map()), this._byResource.set(e, n)), n.set(t, i);
            let r = this._byOwner.get(t);
            r || ((r = new Gt.Y9()), this._byOwner.set(t, r)), r.set(e, i);
          }
          get(e, t) {
            let i = this._byResource.get(e);
            return null == i ? void 0 : i.get(t);
          }
          delete(e, t) {
            let i = !1,
              n = !1,
              r = this._byResource.get(e);
            r && (i = r.delete(t));
            let s = this._byOwner.get(t);
            if ((s && (n = s.delete(e)), i !== n))
              throw new Error('illegal state');
            return i && n;
          }
          values(e) {
            var t, i, n, r;
            return 'string' == typeof e
              ? null !==
                  (i =
                    null === (t = this._byOwner.get(e)) || void 0 === t
                      ? void 0
                      : t.values()) && void 0 !== i
                ? i
                : ns.$.empty()
              : Y.o.isUri(e)
              ? null !==
                  (r =
                    null === (n = this._byResource.get(e)) || void 0 === n
                      ? void 0
                      : n.values()) && void 0 !== r
                ? r
                : ns.$.empty()
              : ns.$.map(ns.$.concat(...this._byOwner.values()), (e) => e[1]);
          }
        }
        class ss {
          constructor(e) {
            (this.errors = 0),
              (this.infos = 0),
              (this.warnings = 0),
              (this.unknowns = 0),
              (this._data = new Gt.Y9()),
              (this._service = e),
              (this._subscription = e.onMarkerChanged(this._update, this));
          }
          dispose() {
            this._subscription.dispose();
          }
          _update(e) {
            for (const t of e) {
              const e = this._data.get(t);
              e && this._substract(e);
              const i = this._resourceStats(t);
              this._add(i), this._data.set(t, i);
            }
          }
          _resourceStats(e) {
            const t = { errors: 0, warnings: 0, infos: 0, unknowns: 0 };
            if (
              e.scheme === Q.l.inMemory ||
              e.scheme === Q.l.walkThrough ||
              e.scheme === Q.l.walkThroughSnippet
            )
              return t;
            for (const { severity: i } of this._service.read({ resource: e }))
              i === is.ZL.Error
                ? (t.errors += 1)
                : i === is.ZL.Warning
                ? (t.warnings += 1)
                : i === is.ZL.Info
                ? (t.infos += 1)
                : (t.unknowns += 1);
            return t;
          }
          _substract(e) {
            (this.errors -= e.errors),
              (this.warnings -= e.warnings),
              (this.infos -= e.infos),
              (this.unknowns -= e.unknowns);
          }
          _add(e) {
            (this.errors += e.errors),
              (this.warnings += e.warnings),
              (this.infos += e.infos),
              (this.unknowns += e.unknowns);
          }
        }
        class os {
          constructor() {
            (this._onMarkerChanged = new B.Q5()),
              (this.onMarkerChanged = B.ju.debounce(
                this._onMarkerChanged.event,
                os._debouncer,
                0
              )),
              (this._data = new rs()),
              (this._stats = new ss(this));
          }
          dispose() {
            this._stats.dispose();
          }
          remove(e, t) {
            for (const i of t || []) this.changeOne(e, i, []);
          }
          changeOne(e, t, i) {
            if ((0, De.XY)(i))
              this._data.delete(t, e) && this._onMarkerChanged.fire([t]);
            else {
              const n = [];
              for (const r of i) {
                const i = os._toMarker(e, t, r);
                i && n.push(i);
              }
              this._data.set(t, e, n), this._onMarkerChanged.fire([t]);
            }
          }
          static _toMarker(e, t, i) {
            let {
              code: n,
              severity: r,
              message: s,
              source: o,
              startLineNumber: a,
              startColumn: l,
              endLineNumber: c,
              endColumn: d,
              relatedInformation: h,
              tags: u,
            } = i;
            if (s)
              return (
                (a = a > 0 ? a : 1),
                (l = l > 0 ? l : 1),
                (c = c >= a ? c : a),
                (d = d > 0 ? d : l),
                {
                  resource: t,
                  owner: e,
                  code: n,
                  severity: r,
                  message: s,
                  source: o,
                  startLineNumber: a,
                  startColumn: l,
                  endLineNumber: c,
                  endColumn: d,
                  relatedInformation: h,
                  tags: u,
                }
              );
          }
          read(e = Object.create(null)) {
            let { owner: t, resource: i, severities: n, take: r } = e;
            if (((!r || r < 0) && (r = -1), t && i)) {
              const e = this._data.get(i, t);
              if (e) {
                const t = [];
                for (const i of e)
                  if (os._accept(i, n)) {
                    const e = t.push(i);
                    if (r > 0 && e === r) break;
                  }
                return t;
              }
              return [];
            }
            if (t || i) {
              const e = this._data.values(null != i ? i : t),
                s = [];
              for (const t of e)
                for (const e of t)
                  if (os._accept(e, n)) {
                    const t = s.push(e);
                    if (r > 0 && t === r) return s;
                  }
              return s;
            }
            {
              const e = [];
              for (let t of this._data.values())
                for (let i of t)
                  if (os._accept(i, n)) {
                    const t = e.push(i);
                    if (r > 0 && t === r) return e;
                  }
              return e;
            }
          }
          static _accept(e, t) {
            return void 0 === t || (t & e.severity) === e.severity;
          }
          static _debouncer(e, t) {
            e || ((os._dedupeMap = new Gt.Y9()), (e = []));
            for (const i of t)
              os._dedupeMap.has(i) || (os._dedupeMap.set(i, !0), e.push(i));
            return e;
          }
        }
        var as = i(52365),
          ls = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          cs = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let ds = class {
          constructor(e) {
            this._commandService = e;
          }
          createMenu(e, t) {
            return new hs(e, this._commandService, t, this);
          }
        };
        ds = ls([cs(0, ee.H)], ds);
        let hs = class e {
          constructor(e, t, i, n) {
            (this._id = e),
              (this._commandService = t),
              (this._contextKeyService = i),
              (this._menuService = n),
              (this._onDidChange = new B.Q5()),
              (this._dispoables = new _e.SL()),
              (this._menuGroups = []),
              (this._contextKeys = new Set()),
              this._build(),
              this._dispoables.add(
                B.ju.debounce(
                  B.ju.filter(ji.BH.onDidChangeMenu, (e) => e.has(this._id)),
                  () => {},
                  50
                )(this._build, this)
              ),
              this._dispoables.add(
                B.ju.debounce(
                  this._contextKeyService.onDidChangeContext,
                  (e, t) => e || t.affectsSome(this._contextKeys),
                  50
                )((e) => e && this._onDidChange.fire(void 0), this)
              );
          }
          dispose() {
            this._dispoables.dispose(), this._onDidChange.dispose();
          }
          _build() {
            (this._menuGroups.length = 0), this._contextKeys.clear();
            const t = ji.BH.getMenuItems(this._id);
            let i;
            t.sort(e._compareMenuItems);
            for (let n of t) {
              const t = n.group || '';
              if (
                ((i && i[0] === t) || ((i = [t, []]), this._menuGroups.push(i)),
                i[1].push(n),
                e._fillInKbExprKeys(n.when, this._contextKeys),
                (0, ji.vr)(n) &&
                  n.command.precondition &&
                  e._fillInKbExprKeys(
                    n.command.precondition,
                    this._contextKeys
                  ),
                (0, ji.vr)(n) && n.command.toggled)
              ) {
                const t = n.command.toggled.condition || n.command.toggled;
                e._fillInKbExprKeys(t, this._contextKeys);
              }
            }
            this._onDidChange.fire(this);
          }
          get onDidChange() {
            return this._onDidChange.event;
          }
          getActions(e) {
            const t = [];
            for (let i of this._menuGroups) {
              const [n, r] = i,
                s = [];
              for (const t of r)
                if (this._contextKeyService.contextMatchesRules(t.when)) {
                  const i = (0, ji.vr)(t)
                    ? new ji.U8(
                        t.command,
                        t.alt,
                        e,
                        this._contextKeyService,
                        this._commandService
                      )
                    : new ji.NZ(
                        t,
                        this._menuService,
                        this._contextKeyService,
                        e
                      );
                  s.push(i);
                }
              s.length > 0 && t.push([n, s]);
            }
            return t;
          }
          static _fillInKbExprKeys(e, t) {
            if (e) for (let i of e.keys()) t.add(i);
          }
          static _compareMenuItems(t, i) {
            let n = t.group,
              r = i.group;
            if (n !== r) {
              if (!n) return 1;
              if (!r) return -1;
              if ('navigation' === n) return -1;
              if ('navigation' === r) return 1;
              let e = n.localeCompare(r);
              if (0 !== e) return e;
            }
            let s = t.order || 0,
              o = i.order || 0;
            return s < o
              ? -1
              : s > o
              ? 1
              : e._compareTitles(
                  (0, ji.vr)(t) ? t.command.title : t.title,
                  (0, ji.vr)(i) ? i.command.title : i.title
                );
          }
          static _compareTitles(e, t) {
            const i = 'string' == typeof e ? e : e.value,
              n = 'string' == typeof t ? t : t.value;
            return i.localeCompare(n);
          }
        };
        hs = ls([cs(1, ee.H), cs(2, Vi.i6), cs(3, ji.co)], hs);
        var us = i(26479),
          gs = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        function fs(e) {
          return e.toString();
        }
        class ps extends _e.JT {
          constructor(e) {
            super(),
              (this.model = e),
              (this._markersData = new Map()),
              this._register(
                (0, _e.OF)(() => {
                  this.model.deltaDecorations(
                    [...this._markersData.keys()],
                    []
                  ),
                    this._markersData.clear();
                })
              );
          }
          update(e, t) {
            const i = [...this._markersData.keys()];
            this._markersData.clear();
            const n = this.model.deltaDecorations(i, t);
            for (let t = 0; t < n.length; t++)
              this._markersData.set(n[t], e[t]);
            return 0 !== i.length || 0 !== n.length;
          }
          getMarker(e) {
            return this._markersData.get(e.id);
          }
        }
        let ms = class extends _e.JT {
          constructor(e, t) {
            super(),
              (this._markerService = t),
              (this._onDidChangeMarker = this._register(new B.Q5())),
              (this._markerDecorations = new Map()),
              e.getModels().forEach((e) => this._onModelAdded(e)),
              this._register(e.onModelAdded(this._onModelAdded, this)),
              this._register(e.onModelRemoved(this._onModelRemoved, this)),
              this._register(
                this._markerService.onMarkerChanged(
                  this._handleMarkerChange,
                  this
                )
              );
          }
          dispose() {
            super.dispose(),
              this._markerDecorations.forEach((e) => e.dispose()),
              this._markerDecorations.clear();
          }
          getMarker(e, t) {
            const i = this._markerDecorations.get(fs(e.uri));
            return (i && i.getMarker(t)) || null;
          }
          _handleMarkerChange(e) {
            e.forEach((e) => {
              const t = this._markerDecorations.get(fs(e));
              t && this._updateDecorations(t);
            });
          }
          _onModelAdded(e) {
            const t = new ps(e);
            this._markerDecorations.set(fs(e.uri), t),
              this._updateDecorations(t);
          }
          _onModelRemoved(e) {
            const t = this._markerDecorations.get(fs(e.uri));
            t && (t.dispose(), this._markerDecorations.delete(fs(e.uri))),
              (e.uri.scheme !== Q.l.inMemory &&
                e.uri.scheme !== Q.l.internal &&
                e.uri.scheme !== Q.l.vscode) ||
                (this._markerService &&
                  this._markerService
                    .read({ resource: e.uri })
                    .map((e) => e.owner)
                    .forEach((t) => this._markerService.remove(t, [e.uri])));
          }
          _updateDecorations(e) {
            const t = this._markerService.read({
              resource: e.model.uri,
              take: 500,
            });
            let i = t.map((t) => ({
              range: this._createDecorationRange(e.model, t),
              options: this._createDecorationOption(t),
            }));
            e.update(t, i) && this._onDidChangeMarker.fire(e.model);
          }
          _createDecorationRange(e, t) {
            let i = j.e.lift(t);
            if (
              (t.severity !== is.ZL.Hint ||
                this._hasMarkerTag(t, 1) ||
                this._hasMarkerTag(t, 2) ||
                (i = i.setEndPosition(i.startLineNumber, i.startColumn + 2)),
              (i = e.validateRange(i)),
              i.isEmpty())
            ) {
              let t = e.getWordAtPosition(i.getStartPosition());
              if (t)
                i = new j.e(
                  i.startLineNumber,
                  t.startColumn,
                  i.endLineNumber,
                  t.endColumn
                );
              else {
                let t =
                  e.getLineLastNonWhitespaceColumn(i.startLineNumber) ||
                  e.getLineMaxColumn(i.startLineNumber);
                1 === t ||
                  (i =
                    i.endColumn >= t
                      ? new j.e(i.startLineNumber, t - 1, i.endLineNumber, t)
                      : new j.e(
                          i.startLineNumber,
                          i.startColumn,
                          i.endLineNumber,
                          i.endColumn + 1
                        ));
              }
            } else if (
              t.endColumn === Number.MAX_VALUE &&
              1 === t.startColumn &&
              i.startLineNumber === i.endLineNumber
            ) {
              let n = e.getLineFirstNonWhitespaceColumn(t.startLineNumber);
              n < i.endColumn &&
                ((i = new j.e(
                  i.startLineNumber,
                  n,
                  i.endLineNumber,
                  i.endColumn
                )),
                (t.startColumn = n));
            }
            return i;
          }
          _createDecorationOption(e) {
            let t, i, n, r, s;
            switch (e.severity) {
              case is.ZL.Hint:
                (t = this._hasMarkerTag(e, 2)
                  ? void 0
                  : this._hasMarkerTag(e, 1)
                  ? 'squiggly-unnecessary'
                  : 'squiggly-hint'),
                  (n = 0);
                break;
              case is.ZL.Warning:
                (t = 'squiggly-warning'),
                  (i = (0, Ki.EN)(Vn.Re)),
                  (n = 20),
                  (s = { color: (0, Ki.EN)(zn.Iv), position: he.F5.Inline });
                break;
              case is.ZL.Info:
                (t = 'squiggly-info'), (i = (0, Ki.EN)(Vn.eS)), (n = 10);
                break;
              case is.ZL.Error:
              default:
                (t = 'squiggly-error'),
                  (i = (0, Ki.EN)(Vn.lK)),
                  (n = 30),
                  (s = { color: (0, Ki.EN)(zn.Gj), position: he.F5.Inline });
            }
            return (
              e.tags &&
                (-1 !== e.tags.indexOf(1) &&
                  (r = 'squiggly-inline-unnecessary'),
                -1 !== e.tags.indexOf(2) && (r = 'squiggly-inline-deprecated')),
              {
                stickiness: 1,
                className: t,
                showIfCollapsed: !0,
                overviewRuler: { color: i, position: he.sh.Right },
                minimap: s,
                zIndex: n,
                inlineClassName: r,
              }
            );
          }
          _hasMarkerTag(e, t) {
            return !!e.tags && e.tags.indexOf(t) >= 0;
          }
        };
        ms = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([gs(0, st.q), gs(1, is.lT)], ms);
        var _s = i(65026),
          bs = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let vs = class extends _e.JT {
          constructor(e, t) {
            super(),
              (this._contextKeyService = e),
              (this._configurationService = t),
              (this._accessibilitySupport = 0),
              (this._onDidChangeScreenReaderOptimized = new B.Q5()),
              (this._accessibilityModeEnabledContext = qi.U.bindTo(
                this._contextKeyService
              ));
            const i = () =>
              this._accessibilityModeEnabledContext.set(
                this.isScreenReaderOptimized()
              );
            this._register(
              this._configurationService.onDidChangeConfiguration((e) => {
                e.affectsConfiguration('editor.accessibilitySupport') &&
                  (i(), this._onDidChangeScreenReaderOptimized.fire());
              })
            ),
              i(),
              this.onDidChangeScreenReaderOptimized(() => i());
          }
          get onDidChangeScreenReaderOptimized() {
            return this._onDidChangeScreenReaderOptimized.event;
          }
          isScreenReaderOptimized() {
            const e = this._configurationService.getValue(
              'editor.accessibilitySupport'
            );
            return (
              'on' === e || ('auto' === e && 2 === this._accessibilitySupport)
            );
          }
          getAccessibilitySupport() {
            return this._accessibilitySupport;
          }
        };
        vs = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([bs(0, Vi.i6), bs(1, qt.Ui)], vs);
        var ys = function (e, t, i, n) {
          return new (i || (i = Promise))(function (r, s) {
            function o(e) {
              try {
                l(n.next(e));
              } catch (e) {
                s(e);
              }
            }
            function a(e) {
              try {
                l(n.throw(e));
              } catch (e) {
                s(e);
              }
            }
            function l(e) {
              var t;
              e.done
                ? r(e.value)
                : ((t = e.value),
                  t instanceof i
                    ? t
                    : new i(function (e) {
                        e(t);
                      })).then(o, a);
            }
            l((n = n.apply(e, t || [])).next());
          });
        };
        class ws {
          constructor() {
            (this.mapTextToType = new Map()), (this.findText = '');
          }
          writeText(e, t) {
            return ys(this, void 0, void 0, function* () {
              if (t) return void this.mapTextToType.set(t, e);
              try {
                return yield navigator.clipboard.writeText(e);
              } catch (e) {
                console.error(e);
              }
              const i = document.activeElement,
                n = document.body.appendChild(
                  (0, G.$)('textarea', { 'aria-hidden': !0 })
                );
              (n.style.height = '1px'),
                (n.style.width = '1px'),
                (n.style.position = 'absolute'),
                (n.value = e),
                n.focus(),
                n.select(),
                document.execCommand('copy'),
                i instanceof HTMLElement && i.focus(),
                document.body.removeChild(n);
            });
          }
          readText(e) {
            return ys(this, void 0, void 0, function* () {
              if (e) return this.mapTextToType.get(e) || '';
              try {
                return yield navigator.clipboard.readText();
              } catch (e) {
                return console.error(e), '';
              }
            });
          }
          readFindText() {
            return ys(this, void 0, void 0, function* () {
              return this.findText;
            });
          }
          writeFindText(e) {
            return ys(this, void 0, void 0, function* () {
              this.findText = e;
            });
          }
        }
        var Cs = i(64862),
          Ss = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          ks = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function xs(e) {
          return e.scheme === Q.l.file ? e.fsPath : e.path;
        }
        let Ls = 0;
        class Ms {
          constructor(e, t, i) {
            (this.id = ++Ls),
              (this.type = 0),
              (this.actual = e),
              (this.label = e.label),
              (this.resourceLabel = t),
              (this.strResource = i),
              (this.resourceLabels = [this.resourceLabel]),
              (this.strResources = [this.strResource]),
              (this.isValid = !0);
          }
          setValid(e) {
            this.isValid = e;
          }
          toString() {
            return `[${this.id}] [${this.isValid ? 'VALID' : 'INVALID'}] ${
              this.actual
            }`;
          }
        }
        class Ds {
          constructor(e, t) {
            (this.resourceLabel = e), (this.reason = t);
          }
        }
        class Ns {
          constructor() {
            this.elements = new Map();
          }
          createMessage() {
            const e = [],
              t = [];
            for (const [, i] of this.elements)
              (0 === i.reason ? e : t).push(i.resourceLabel);
            let i = [];
            return (
              e.length > 0 &&
                i.push(
                  ii.N(
                    {
                      key: 'externalRemoval',
                      comment: ['{0} is a list of filenames'],
                    },
                    'The following files have been closed and modified on disk: {0}.',
                    e.join(', ')
                  )
                ),
              t.length > 0 &&
                i.push(
                  ii.N(
                    {
                      key: 'noParallelUniverses',
                      comment: ['{0} is a list of filenames'],
                    },
                    'The following files have been modified in an incompatible way: {0}.',
                    t.join(', ')
                  )
                ),
              i.join('\n')
            );
          }
          get size() {
            return this.elements.size;
          }
          has(e) {
            return this.elements.has(e);
          }
          set(e, t) {
            this.elements.set(e, t);
          }
          delete(e) {
            return this.elements.delete(e);
          }
        }
        class Es {
          constructor(e, t, i) {
            (this.id = ++Ls),
              (this.type = 1),
              (this.actual = e),
              (this.label = e.label),
              (this.resourceLabels = t),
              (this.strResources = i),
              (this.removedResources = null),
              (this.invalidatedResources = null);
          }
          canSplit() {
            return 'function' == typeof this.actual.split;
          }
          removeResource(e, t, i) {
            this.removedResources || (this.removedResources = new Ns()),
              this.removedResources.has(t) ||
                this.removedResources.set(t, new Ds(e, i));
          }
          setValid(e, t, i) {
            i
              ? this.invalidatedResources &&
                (this.invalidatedResources.delete(t),
                0 === this.invalidatedResources.size &&
                  (this.invalidatedResources = null))
              : (this.invalidatedResources ||
                  (this.invalidatedResources = new Ns()),
                this.invalidatedResources.has(t) ||
                  this.invalidatedResources.set(t, new Ds(e, 0)));
          }
          toString() {
            return `[${this.id}] [${
              this.invalidatedResources ? 'INVALID' : 'VALID'
            }] ${this.actual}`;
          }
        }
        class Ts {
          constructor(e, t) {
            (this.resourceLabel = e),
              (this.strResource = t),
              (this._past = []),
              (this._future = []),
              (this.locked = !1),
              (this.versionId = 1);
          }
          dispose() {
            for (const e of this._past)
              1 === e.type &&
                e.removeResource(this.resourceLabel, this.strResource, 0);
            for (const e of this._future)
              1 === e.type &&
                e.removeResource(this.resourceLabel, this.strResource, 0);
            this.versionId++;
          }
          toString() {
            let e = [];
            e.push(`* ${this.strResource}:`);
            for (let t = 0; t < this._past.length; t++)
              e.push(`   * [UNDO] ${this._past[t]}`);
            for (let t = this._future.length - 1; t >= 0; t--)
              e.push(`   * [REDO] ${this._future[t]}`);
            return e.join('\n');
          }
          flushAllElements() {
            (this._past = []), (this._future = []), this.versionId++;
          }
          _setElementValidFlag(e, t) {
            1 === e.type
              ? e.setValid(this.resourceLabel, this.strResource, t)
              : e.setValid(t);
          }
          setElementsValidFlag(e, t) {
            for (const i of this._past)
              t(i.actual) && this._setElementValidFlag(i, e);
            for (const i of this._future)
              t(i.actual) && this._setElementValidFlag(i, e);
          }
          pushElement(e) {
            for (const e of this._future)
              1 === e.type &&
                e.removeResource(this.resourceLabel, this.strResource, 1);
            if (((this._future = []), this._past.length > 0)) {
              const e = this._past[this._past.length - 1];
              0 !== e.type || e.isValid || (this._past = []);
            }
            this._past.push(e), this.versionId++;
          }
          createSnapshot(e) {
            const t = [];
            for (let e = 0, i = this._past.length; e < i; e++)
              t.push(this._past[e].id);
            for (let e = this._future.length - 1; e >= 0; e--)
              t.push(this._future[e].id);
            return new Cs.Y(e, t);
          }
          restoreSnapshot(e) {
            const t = e.elements.length;
            let i = !0,
              n = 0,
              r = -1;
            for (let s = 0, o = this._past.length; s < o; s++, n++) {
              const o = this._past[s];
              i && (n >= t || o.id !== e.elements[n]) && ((i = !1), (r = 0)),
                i ||
                  1 !== o.type ||
                  o.removeResource(this.resourceLabel, this.strResource, 0);
            }
            let s = -1;
            for (let r = this._future.length - 1; r >= 0; r--, n++) {
              const o = this._future[r];
              i && (n >= t || o.id !== e.elements[n]) && ((i = !1), (s = r)),
                i ||
                  1 !== o.type ||
                  o.removeResource(this.resourceLabel, this.strResource, 0);
            }
            -1 !== r && (this._past = this._past.slice(0, r)),
              -1 !== s && (this._future = this._future.slice(s + 1)),
              this.versionId++;
          }
          getElements() {
            const e = [],
              t = [];
            for (const t of this._past) e.push(t.actual);
            for (const e of this._future) t.push(e.actual);
            return { past: e, future: t };
          }
          getClosestPastElement() {
            return 0 === this._past.length
              ? null
              : this._past[this._past.length - 1];
          }
          getClosestFutureElement() {
            return 0 === this._future.length
              ? null
              : this._future[this._future.length - 1];
          }
          hasPastElements() {
            return this._past.length > 0;
          }
          hasFutureElements() {
            return this._future.length > 0;
          }
          splitPastWorkspaceElement(e, t) {
            for (let i = this._past.length - 1; i >= 0; i--)
              if (this._past[i] === e) {
                t.has(this.strResource)
                  ? (this._past[i] = t.get(this.strResource))
                  : this._past.splice(i, 1);
                break;
              }
            this.versionId++;
          }
          splitFutureWorkspaceElement(e, t) {
            for (let i = this._future.length - 1; i >= 0; i--)
              if (this._future[i] === e) {
                t.has(this.strResource)
                  ? (this._future[i] = t.get(this.strResource))
                  : this._future.splice(i, 1);
                break;
              }
            this.versionId++;
          }
          moveBackward(e) {
            this._past.pop(), this._future.push(e), this.versionId++;
          }
          moveForward(e) {
            this._future.pop(), this._past.push(e), this.versionId++;
          }
        }
        class Is {
          constructor(e) {
            (this.editStacks = e), (this._versionIds = []);
            for (let e = 0, t = this.editStacks.length; e < t; e++)
              this._versionIds[e] = this.editStacks[e].versionId;
          }
          isValid() {
            for (let e = 0, t = this.editStacks.length; e < t; e++)
              if (this._versionIds[e] !== this.editStacks[e].versionId)
                return !1;
            return !0;
          }
        }
        const Os = new Ts('', '');
        Os.locked = !0;
        let As = class {
          constructor(e, t) {
            (this._dialogService = e),
              (this._notificationService = t),
              (this._editStacks = new Map()),
              (this._uriComparisonKeyComputers = []);
          }
          getUriComparisonKey(e) {
            for (const t of this._uriComparisonKeyComputers)
              if (t[0] === e.scheme) return t[1].getComparisonKey(e);
            return e.toString();
          }
          _print(e) {
            console.log('------------------------------------'),
              console.log(`AFTER ${e}: `);
            let t = [];
            for (const e of this._editStacks) t.push(e[1].toString());
            console.log(t.join('\n'));
          }
          pushElement(e) {
            if (0 === e.type) {
              const t = xs(e.resource),
                i = this.getUriComparisonKey(e.resource);
              this._pushElement(new Ms(e, t, i));
            } else {
              const t = new Set(),
                i = [],
                n = [];
              for (const r of e.resources) {
                const e = xs(r),
                  s = this.getUriComparisonKey(r);
                t.has(s) || (t.add(s), i.push(e), n.push(s));
              }
              1 === i.length
                ? this._pushElement(new Ms(e, i[0], n[0]))
                : this._pushElement(new Es(e, i, n));
            }
          }
          _pushElement(e) {
            for (let t = 0, i = e.strResources.length; t < i; t++) {
              const i = e.resourceLabels[t],
                n = e.strResources[t];
              let r;
              this._editStacks.has(n)
                ? (r = this._editStacks.get(n))
                : ((r = new Ts(i, n)), this._editStacks.set(n, r)),
                r.pushElement(e);
            }
          }
          getLastElement(e) {
            const t = this.getUriComparisonKey(e);
            if (this._editStacks.has(t)) {
              const e = this._editStacks.get(t);
              if (e.hasFutureElements()) return null;
              const i = e.getClosestPastElement();
              return i ? i.actual : null;
            }
            return null;
          }
          _splitPastWorkspaceElement(e, t) {
            const i = e.actual.split(),
              n = new Map();
            for (const e of i) {
              const t = xs(e.resource),
                i = this.getUriComparisonKey(e.resource),
                r = new Ms(e, t, i);
              n.set(r.strResource, r);
            }
            for (const i of e.strResources)
              (t && t.has(i)) ||
                this._editStacks.get(i).splitPastWorkspaceElement(e, n);
          }
          _splitFutureWorkspaceElement(e, t) {
            const i = e.actual.split(),
              n = new Map();
            for (const e of i) {
              const t = xs(e.resource),
                i = this.getUriComparisonKey(e.resource),
                r = new Ms(e, t, i);
              n.set(r.strResource, r);
            }
            for (const i of e.strResources)
              (t && t.has(i)) ||
                this._editStacks.get(i).splitFutureWorkspaceElement(e, n);
          }
          removeElements(e) {
            const t = 'string' == typeof e ? e : this.getUriComparisonKey(e);
            this._editStacks.has(t) &&
              (this._editStacks.get(t).dispose(), this._editStacks.delete(t));
          }
          setElementsValidFlag(e, t, i) {
            const n = this.getUriComparisonKey(e);
            this._editStacks.has(n) &&
              this._editStacks.get(n).setElementsValidFlag(t, i);
          }
          createSnapshot(e) {
            const t = this.getUriComparisonKey(e);
            return this._editStacks.has(t)
              ? this._editStacks.get(t).createSnapshot(e)
              : new Cs.Y(e, []);
          }
          restoreSnapshot(e) {
            const t = this.getUriComparisonKey(e.resource);
            if (this._editStacks.has(t)) {
              const i = this._editStacks.get(t);
              i.restoreSnapshot(e),
                i.hasPastElements() ||
                  i.hasFutureElements() ||
                  (i.dispose(), this._editStacks.delete(t));
            }
          }
          getElements(e) {
            const t = this.getUriComparisonKey(e);
            return this._editStacks.has(t)
              ? this._editStacks.get(t).getElements()
              : { past: [], future: [] };
          }
          canUndo(e) {
            const t = this.getUriComparisonKey(e);
            return (
              !!this._editStacks.has(t) &&
              this._editStacks.get(t).hasPastElements()
            );
          }
          _onError(e, t) {
            (0, be.dL)(e);
            for (const e of t.strResources) this.removeElements(e);
            this._notificationService.error(e);
          }
          _acquireLocks(e) {
            for (const t of e.editStacks)
              if (t.locked) throw new Error('Cannot acquire edit stack lock');
            for (const t of e.editStacks) t.locked = !0;
            return () => {
              for (const t of e.editStacks) t.locked = !1;
            };
          }
          _safeInvokeWithLocks(e, t, i, n = _e.JT.None) {
            const r = this._acquireLocks(i);
            let s;
            try {
              s = t();
            } catch (t) {
              return r(), n.dispose(), this._onError(t, e);
            }
            if (s)
              return s.then(
                () => {
                  r(), n.dispose();
                },
                (t) => (r(), n.dispose(), this._onError(t, e))
              );
            r(), n.dispose();
          }
          _invokeWorkspacePrepare(e) {
            return ks(this, void 0, void 0, function* () {
              if (void 0 === e.actual.prepareUndoRedo) return _e.JT.None;
              const t = e.actual.prepareUndoRedo();
              return void 0 === t ? _e.JT.None : t;
            });
          }
          _invokeResourcePrepare(e, t) {
            if (1 !== e.actual.type || void 0 === e.actual.prepareUndoRedo)
              return void t(_e.JT.None);
            const i = e.actual.prepareUndoRedo();
            if (i) {
              if (!(0, _e.Wf)(i))
                return i.then((e) => {
                  t(e);
                });
              t(i);
            } else t(_e.JT.None);
          }
          _getAffectedEditStacks(e) {
            const t = [];
            for (const i of e.strResources)
              t.push(this._editStacks.get(i) || Os);
            return new Is(t);
          }
          _tryToSplitAndUndo(e, t, i, n) {
            if (t.canSplit())
              return (
                this._splitPastWorkspaceElement(t, i),
                this._notificationService.info(n),
                new Rs(this.undo(e))
              );
            for (const e of t.strResources) this.removeElements(e);
            return this._notificationService.info(n), new Rs();
          }
          _checkWorkspaceUndo(e, t, i, n) {
            if (t.removedResources)
              return this._tryToSplitAndUndo(
                e,
                t,
                t.removedResources,
                ii.N(
                  {
                    key: 'cannotWorkspaceUndo',
                    comment: [
                      '{0} is a label for an operation. {1} is another message.',
                    ],
                  },
                  "Could not undo '{0}' across all files. {1}",
                  t.label,
                  t.removedResources.createMessage()
                )
              );
            if (n && t.invalidatedResources)
              return this._tryToSplitAndUndo(
                e,
                t,
                t.invalidatedResources,
                ii.N(
                  {
                    key: 'cannotWorkspaceUndo',
                    comment: [
                      '{0} is a label for an operation. {1} is another message.',
                    ],
                  },
                  "Could not undo '{0}' across all files. {1}",
                  t.label,
                  t.invalidatedResources.createMessage()
                )
              );
            const r = [];
            for (const e of i.editStacks)
              e.getClosestPastElement() !== t && r.push(e.resourceLabel);
            if (r.length > 0)
              return this._tryToSplitAndUndo(
                e,
                t,
                null,
                ii.N(
                  {
                    key: 'cannotWorkspaceUndoDueToChanges',
                    comment: [
                      '{0} is a label for an operation. {1} is a list of filenames.',
                    ],
                  },
                  "Could not undo '{0}' across all files because changes were made to {1}",
                  t.label,
                  r.join(', ')
                )
              );
            const s = [];
            for (const e of i.editStacks) e.locked && s.push(e.resourceLabel);
            return s.length > 0
              ? this._tryToSplitAndUndo(
                  e,
                  t,
                  null,
                  ii.N(
                    {
                      key: 'cannotWorkspaceUndoDueToInProgressUndoRedo',
                      comment: [
                        '{0} is a label for an operation. {1} is a list of filenames.',
                      ],
                    },
                    "Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",
                    t.label,
                    s.join(', ')
                  )
                )
              : i.isValid()
              ? null
              : this._tryToSplitAndUndo(
                  e,
                  t,
                  null,
                  ii.N(
                    {
                      key: 'cannotWorkspaceUndoDueToInMeantimeUndoRedo',
                      comment: [
                        '{0} is a label for an operation. {1} is a list of filenames.',
                      ],
                    },
                    "Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",
                    t.label
                  )
                );
          }
          _workspaceUndo(e, t) {
            const i = this._getAffectedEditStacks(t),
              n = this._checkWorkspaceUndo(e, t, i, !1);
            return n
              ? n.returnValue
              : this._confirmAndExecuteWorkspaceUndo(e, t, i);
          }
          _confirmAndExecuteWorkspaceUndo(e, t, i) {
            return ks(this, void 0, void 0, function* () {
              if (t.canSplit()) {
                const n = yield this._dialogService.show(
                  Vt.Z.Info,
                  ii.N(
                    'confirmWorkspace',
                    "Would you like to undo '{0}' across all files?",
                    t.label
                  ),
                  [
                    ii.N(
                      {
                        key: 'ok',
                        comment: ['{0} denotes a number that is > 1'],
                      },
                      'Undo in {0} Files',
                      i.editStacks.length
                    ),
                    ii.N('nok', 'Undo this File'),
                    ii.N('cancel', 'Cancel'),
                  ],
                  { cancelId: 2 }
                );
                if (2 === n.choice) return;
                if (1 === n.choice)
                  return this._splitPastWorkspaceElement(t, null), this.undo(e);
                const r = this._checkWorkspaceUndo(e, t, i, !1);
                if (r) return r.returnValue;
              }
              let n;
              try {
                n = yield this._invokeWorkspacePrepare(t);
              } catch (e) {
                return this._onError(e, t);
              }
              const r = this._checkWorkspaceUndo(e, t, i, !0);
              if (r) return n.dispose(), r.returnValue;
              for (const e of i.editStacks) e.moveBackward(t);
              return this._safeInvokeWithLocks(t, () => t.actual.undo(), i, n);
            });
          }
          _resourceUndo(e, t) {
            if (t.isValid) {
              if (!e.locked)
                return this._invokeResourcePrepare(
                  t,
                  (i) => (
                    e.moveBackward(t),
                    this._safeInvokeWithLocks(
                      t,
                      () => t.actual.undo(),
                      new Is([e]),
                      i
                    )
                  )
                );
              {
                const e = ii.N(
                  {
                    key: 'cannotResourceUndoDueToInProgressUndoRedo',
                    comment: ['{0} is a label for an operation.'],
                  },
                  "Could not undo '{0}' because there is already an undo or redo operation running.",
                  t.label
                );
                this._notificationService.info(e);
              }
            } else e.flushAllElements();
          }
          undo(e) {
            const t = 'string' == typeof e ? e : this.getUriComparisonKey(e);
            if (!this._editStacks.has(t)) return;
            const i = this._editStacks.get(t),
              n = i.getClosestPastElement();
            if (n)
              try {
                return 1 === n.type
                  ? this._workspaceUndo(t, n)
                  : this._resourceUndo(i, n);
              } finally {
              }
          }
          canRedo(e) {
            const t = this.getUriComparisonKey(e);
            return (
              !!this._editStacks.has(t) &&
              this._editStacks.get(t).hasFutureElements()
            );
          }
          _tryToSplitAndRedo(e, t, i, n) {
            if (t.canSplit())
              return (
                this._splitFutureWorkspaceElement(t, i),
                this._notificationService.info(n),
                new Rs(this.redo(e))
              );
            for (const e of t.strResources) this.removeElements(e);
            return this._notificationService.info(n), new Rs();
          }
          _checkWorkspaceRedo(e, t, i, n) {
            if (t.removedResources)
              return this._tryToSplitAndRedo(
                e,
                t,
                t.removedResources,
                ii.N(
                  {
                    key: 'cannotWorkspaceRedo',
                    comment: [
                      '{0} is a label for an operation. {1} is another message.',
                    ],
                  },
                  "Could not redo '{0}' across all files. {1}",
                  t.label,
                  t.removedResources.createMessage()
                )
              );
            if (n && t.invalidatedResources)
              return this._tryToSplitAndRedo(
                e,
                t,
                t.invalidatedResources,
                ii.N(
                  {
                    key: 'cannotWorkspaceRedo',
                    comment: [
                      '{0} is a label for an operation. {1} is another message.',
                    ],
                  },
                  "Could not redo '{0}' across all files. {1}",
                  t.label,
                  t.invalidatedResources.createMessage()
                )
              );
            const r = [];
            for (const e of i.editStacks)
              e.getClosestFutureElement() !== t && r.push(e.resourceLabel);
            if (r.length > 0)
              return this._tryToSplitAndRedo(
                e,
                t,
                null,
                ii.N(
                  {
                    key: 'cannotWorkspaceRedoDueToChanges',
                    comment: [
                      '{0} is a label for an operation. {1} is a list of filenames.',
                    ],
                  },
                  "Could not redo '{0}' across all files because changes were made to {1}",
                  t.label,
                  r.join(', ')
                )
              );
            const s = [];
            for (const e of i.editStacks) e.locked && s.push(e.resourceLabel);
            return s.length > 0
              ? this._tryToSplitAndRedo(
                  e,
                  t,
                  null,
                  ii.N(
                    {
                      key: 'cannotWorkspaceRedoDueToInProgressUndoRedo',
                      comment: [
                        '{0} is a label for an operation. {1} is a list of filenames.',
                      ],
                    },
                    "Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",
                    t.label,
                    s.join(', ')
                  )
                )
              : i.isValid()
              ? null
              : this._tryToSplitAndRedo(
                  e,
                  t,
                  null,
                  ii.N(
                    {
                      key: 'cannotWorkspaceRedoDueToInMeantimeUndoRedo',
                      comment: [
                        '{0} is a label for an operation. {1} is a list of filenames.',
                      ],
                    },
                    "Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",
                    t.label
                  )
                );
          }
          _workspaceRedo(e, t) {
            const i = this._getAffectedEditStacks(t),
              n = this._checkWorkspaceRedo(e, t, i, !1);
            return n ? n.returnValue : this._executeWorkspaceRedo(e, t, i);
          }
          _executeWorkspaceRedo(e, t, i) {
            return ks(this, void 0, void 0, function* () {
              let n;
              try {
                n = yield this._invokeWorkspacePrepare(t);
              } catch (e) {
                return this._onError(e, t);
              }
              const r = this._checkWorkspaceRedo(e, t, i, !0);
              if (r) return n.dispose(), r.returnValue;
              for (const e of i.editStacks) e.moveForward(t);
              return this._safeInvokeWithLocks(t, () => t.actual.redo(), i, n);
            });
          }
          _resourceRedo(e, t) {
            if (t.isValid) {
              if (!e.locked)
                return this._invokeResourcePrepare(
                  t,
                  (i) => (
                    e.moveForward(t),
                    this._safeInvokeWithLocks(
                      t,
                      () => t.actual.redo(),
                      new Is([e]),
                      i
                    )
                  )
                );
              {
                const e = ii.N(
                  {
                    key: 'cannotResourceRedoDueToInProgressUndoRedo',
                    comment: ['{0} is a label for an operation.'],
                  },
                  "Could not redo '{0}' because there is already an undo or redo operation running.",
                  t.label
                );
                this._notificationService.info(e);
              }
            } else e.flushAllElements();
          }
          redo(e) {
            const t = 'string' == typeof e ? e : this.getUriComparisonKey(e);
            if (!this._editStacks.has(t)) return;
            const i = this._editStacks.get(t),
              n = i.getClosestFutureElement();
            if (n)
              try {
                return 1 === n.type
                  ? this._workspaceRedo(t, n)
                  : this._resourceRedo(i, n);
              } finally {
              }
          }
        };
        As = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([Ss(0, $r.S), Ss(1, pi.lT)], As);
        class Rs {
          constructor(e) {
            this.returnValue = e;
          }
        }
        (0, _s.z)(Cs.t, As);
        var Ps = i(16830),
          Fs = i(67746),
          Bs = i(60703);
        const Ws = new me.Ue(() => {
          const e = new Intl.Collator(void 0, {
            numeric: !0,
            sensitivity: 'base',
          });
          return {
            collator: e,
            collatorIsNumeric: e.resolvedOptions().numeric,
          };
        });
        var Ys = i(59834),
          Hs = i(34650),
          js = i(49898),
          Vs = i(44742);
        const zs = {},
          Us = new Vs.R('quick-input-button-icon-');
        function $s(e) {
          if (!e) return;
          let t;
          const i = e.dark.toString();
          return (
            zs[i]
              ? (t = zs[i])
              : ((t = Us.nextId()),
                G.fk(`.${t}`, `background-image: ${G.wY(e.light || e.dark)}`),
                G.fk(
                  `.vs-dark .${t}, .hc-black .${t}`,
                  `background-image: ${G.wY(e.dark)}`
                ),
                (zs[i] = t)),
            t
          );
        }
        const Ks = G.$;
        class qs {
          constructor(e, t, i) {
            (this.os = t),
              (this.options = i),
              (this.domNode = G.R3(e, Ks('.monaco-keybinding'))),
              (this.didEverRender = !1),
              e.appendChild(this.domNode);
          }
          set(e, t) {
            (this.didEverRender &&
              this.keybinding === e &&
              qs.areSame(this.matches, t)) ||
              ((this.keybinding = e), (this.matches = t), this.render());
          }
          render() {
            if ((G.PO(this.domNode), this.keybinding)) {
              let [e, t] = this.keybinding.getParts();
              e &&
                this.renderPart(
                  this.domNode,
                  e,
                  this.matches ? this.matches.firstPart : null
                ),
                t &&
                  (G.R3(
                    this.domNode,
                    Ks(
                      'span.monaco-keybinding-key-chord-separator',
                      void 0,
                      ' '
                    )
                  ),
                  this.renderPart(
                    this.domNode,
                    t,
                    this.matches ? this.matches.chordPart : null
                  )),
                (this.domNode.title = this.keybinding.getAriaLabel() || '');
            } else
              this.options &&
                this.options.renderUnboundKeybindings &&
                this.renderUnbound(this.domNode);
            this.didEverRender = !0;
          }
          renderPart(e, t, i) {
            const n = di.modifierLabels[this.os];
            t.ctrlKey &&
              this.renderKey(
                e,
                n.ctrlKey,
                Boolean(null == i ? void 0 : i.ctrlKey),
                n.separator
              ),
              t.shiftKey &&
                this.renderKey(
                  e,
                  n.shiftKey,
                  Boolean(null == i ? void 0 : i.shiftKey),
                  n.separator
                ),
              t.altKey &&
                this.renderKey(
                  e,
                  n.altKey,
                  Boolean(null == i ? void 0 : i.altKey),
                  n.separator
                ),
              t.metaKey &&
                this.renderKey(
                  e,
                  n.metaKey,
                  Boolean(null == i ? void 0 : i.metaKey),
                  n.separator
                );
            const r = t.keyLabel;
            r &&
              this.renderKey(e, r, Boolean(null == i ? void 0 : i.keyCode), '');
          }
          renderKey(e, t, i, n) {
            G.R3(
              e,
              Ks(
                'span.monaco-keybinding-key' + (i ? '.highlight' : ''),
                void 0,
                t
              )
            ),
              n &&
                G.R3(e, Ks('span.monaco-keybinding-key-separator', void 0, n));
          }
          renderUnbound(e) {
            G.R3(
              e,
              Ks(
                'span.monaco-keybinding-key',
                void 0,
                (0, ii.N)('unbound', 'Unbound')
              )
            );
          }
          static areSame(e, t) {
            return (
              e === t ||
              (!e && !t) ||
              (!!e &&
                !!t &&
                (0, Zt.fS)(e.firstPart, t.firstPart) &&
                (0, Zt.fS)(e.chordPart, t.chordPart))
            );
          }
        }
        var Gs = function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        };
        const Zs = G.$;
        class Js {
          constructor(e) {
            (this.hidden = !1),
              (this._onChecked = new B.Q5()),
              (this.onChecked = this._onChecked.event),
              (0, Zt.f0)(this, e);
          }
          get checked() {
            return !!this._checked;
          }
          set checked(e) {
            e !== this._checked &&
              ((this._checked = e), this._onChecked.fire(e));
          }
          dispose() {
            this._onChecked.dispose();
          }
        }
        class Qs {
          get templateId() {
            return Qs.ID;
          }
          renderTemplate(e) {
            const t = Object.create(null);
            (t.toDisposeElement = []),
              (t.toDisposeTemplate = []),
              (t.entry = G.R3(e, Zs('.quick-input-list-entry')));
            const i = G.R3(t.entry, Zs('label.quick-input-list-label'));
            t.toDisposeTemplate.push(
              G.mu(i, G.tw.CLICK, (e) => {
                t.checkbox.offsetParent || e.preventDefault();
              })
            ),
              (t.checkbox = G.R3(i, Zs('input.quick-input-list-checkbox'))),
              (t.checkbox.type = 'checkbox'),
              t.toDisposeTemplate.push(
                G.mu(t.checkbox, G.tw.CHANGE, (e) => {
                  t.element.checked = t.checkbox.checked;
                })
              );
            const n = G.R3(i, Zs('.quick-input-list-rows')),
              r = G.R3(n, Zs('.quick-input-list-row')),
              s = G.R3(n, Zs('.quick-input-list-row'));
            t.label = new Ys.g(r, {
              supportHighlights: !0,
              supportDescriptionHighlights: !0,
              supportCodicons: !0,
            });
            const o = G.R3(r, Zs('.quick-input-list-entry-keybinding'));
            t.keybinding = new qs(o, ve.OS);
            const a = G.R3(s, Zs('.quick-input-list-label-meta'));
            return (
              (t.detail = new Hs.q(a, !0)),
              (t.separator = G.R3(t.entry, Zs('.quick-input-list-separator'))),
              (t.actionBar = new _r.o(t.entry)),
              t.actionBar.domNode.classList.add(
                'quick-input-list-entry-action-bar'
              ),
              t.toDisposeTemplate.push(t.actionBar),
              t
            );
          }
          renderElement(e, t, i) {
            (i.toDisposeElement = (0, _e.B9)(i.toDisposeElement)),
              (i.element = e),
              (i.checkbox.checked = e.checked),
              i.toDisposeElement.push(
                e.onChecked((e) => (i.checkbox.checked = e))
              );
            const {
                labelHighlights: n,
                descriptionHighlights: r,
                detailHighlights: s,
              } = e,
              o = Object.create(null);
            (o.matches = n || []),
              (o.descriptionTitle = e.saneDescription),
              (o.descriptionMatches = r || []),
              (o.extraClasses = e.item.iconClasses),
              (o.italic = e.item.italic),
              (o.strikethrough = e.item.strikethrough),
              i.label.setLabel(e.saneLabel, e.saneDescription, o),
              i.keybinding.set(e.item.keybinding),
              i.detail.set(e.saneDetail, s),
              e.separator && e.separator.label
                ? ((i.separator.textContent = e.separator.label),
                  (i.separator.style.display = ''))
                : (i.separator.style.display = 'none'),
              e.separator
                ? G.cn(i.entry, 'quick-input-list-separator-border')
                : G.IV(i.entry, 'quick-input-list-separator-border'),
              i.actionBar.clear();
            const a = e.item.buttons;
            a && a.length
              ? (i.actionBar.push(
                  a.map((t, i) => {
                    let n =
                      t.iconClass || (t.iconPath ? $s(t.iconPath) : void 0);
                    t.alwaysVisible &&
                      (n = n ? `${n} always-visible` : 'always-visible');
                    const r = new mr.aU(
                      `id-${i}`,
                      '',
                      n,
                      !0,
                      () => (
                        e.fireButtonTriggered({ button: t, item: e.item }),
                        Promise.resolve()
                      )
                    );
                    return (r.tooltip = t.tooltip || ''), r;
                  }),
                  { icon: !0, label: !1 }
                ),
                G.cn(i.entry, 'has-actions'))
              : G.IV(i.entry, 'has-actions');
          }
          disposeElement(e, t, i) {
            i.toDisposeElement = (0, _e.B9)(i.toDisposeElement);
          }
          disposeTemplate(e) {
            (e.toDisposeElement = (0, _e.B9)(e.toDisposeElement)),
              (e.toDisposeTemplate = (0, _e.B9)(e.toDisposeTemplate));
          }
        }
        Qs.ID = 'listelement';
        class Xs {
          getHeight(e) {
            return e.saneDetail ? 44 : 22;
          }
          getTemplateId(e) {
            return Qs.ID;
          }
        }
        var eo;
        !(function (e) {
          (e[(e.First = 1)] = 'First'),
            (e[(e.Second = 2)] = 'Second'),
            (e[(e.Last = 3)] = 'Last'),
            (e[(e.Next = 4)] = 'Next'),
            (e[(e.Previous = 5)] = 'Previous'),
            (e[(e.NextPage = 6)] = 'NextPage'),
            (e[(e.PreviousPage = 7)] = 'PreviousPage');
        })(eo || (eo = {}));
        class to {
          constructor(e, t, i) {
            (this.parent = e),
              (this.inputElements = []),
              (this.elements = []),
              (this.elementsToIndexes = new Map()),
              (this.matchOnDescription = !1),
              (this.matchOnDetail = !1),
              (this.matchOnLabel = !0),
              (this.sortByLabel = !0),
              (this._onChangedAllVisibleChecked = new B.Q5()),
              (this.onChangedAllVisibleChecked = this._onChangedAllVisibleChecked.event),
              (this._onChangedCheckedCount = new B.Q5()),
              (this.onChangedCheckedCount = this._onChangedCheckedCount.event),
              (this._onChangedVisibleCount = new B.Q5()),
              (this.onChangedVisibleCount = this._onChangedVisibleCount.event),
              (this._onChangedCheckedElements = new B.Q5()),
              (this.onChangedCheckedElements = this._onChangedCheckedElements.event),
              (this._onButtonTriggered = new B.Q5()),
              (this.onButtonTriggered = this._onButtonTriggered.event),
              (this._onKeyDown = new B.Q5()),
              (this.onKeyDown = this._onKeyDown.event),
              (this._onLeave = new B.Q5()),
              (this.onLeave = this._onLeave.event),
              (this._fireCheckedEvents = !0),
              (this.elementDisposables = []),
              (this.disposables = []),
              (this.id = t),
              (this.container = G.R3(this.parent, Zs('.quick-input-list')));
            const n = new Xs(),
              r = new io();
            (this.list = i.createList(
              'QuickInput',
              this.container,
              n,
              [new Qs()],
              {
                identityProvider: { getId: (e) => e.saneLabel },
                setRowLineHeight: !1,
                multipleSelectionSupport: !1,
                horizontalScrolling: !1,
                accessibilityProvider: r,
              }
            )),
              (this.list.getHTMLElement().id = t),
              this.disposables.push(this.list),
              this.disposables.push(
                this.list.onKeyDown((e) => {
                  const t = new jt.y(e);
                  switch (t.keyCode) {
                    case 10:
                      this.toggleCheckbox();
                      break;
                    case 31:
                      (ve.dz ? e.metaKey : e.ctrlKey) &&
                        this.list.setFocus((0, De.w6)(this.list.length));
                      break;
                    case 16:
                      const t = this.list.getFocus();
                      1 === t.length && 0 === t[0] && this._onLeave.fire();
                      break;
                    case 18:
                      const i = this.list.getFocus();
                      1 === i.length &&
                        i[0] === this.list.length - 1 &&
                        this._onLeave.fire();
                  }
                  this._onKeyDown.fire(t);
                })
              ),
              this.disposables.push(
                this.list.onMouseDown((e) => {
                  2 !== e.browserEvent.button &&
                    e.browserEvent.preventDefault();
                })
              ),
              this.disposables.push(
                G.nm(this.container, G.tw.CLICK, (e) => {
                  (e.x || e.y) && this._onLeave.fire();
                })
              ),
              this.disposables.push(
                this.list.onMouseMiddleClick((e) => {
                  this._onLeave.fire();
                })
              ),
              this.disposables.push(
                this.list.onContextMenu((e) => {
                  'number' == typeof e.index &&
                    (e.browserEvent.preventDefault(),
                    this.list.setSelection([e.index]));
                })
              ),
              this.disposables.push(
                this._onChangedAllVisibleChecked,
                this._onChangedCheckedCount,
                this._onChangedVisibleCount,
                this._onChangedCheckedElements,
                this._onButtonTriggered,
                this._onLeave,
                this._onKeyDown
              );
          }
          get onDidChangeFocus() {
            return B.ju.map(this.list.onDidChangeFocus, (e) =>
              e.elements.map((e) => e.item)
            );
          }
          get onDidChangeSelection() {
            return B.ju.map(this.list.onDidChangeSelection, (e) => ({
              items: e.elements.map((e) => e.item),
              event: e.browserEvent,
            }));
          }
          getAllVisibleChecked() {
            return this.allVisibleChecked(this.elements, !1);
          }
          allVisibleChecked(e, t = !0) {
            for (let i = 0, n = e.length; i < n; i++) {
              const n = e[i];
              if (!n.hidden) {
                if (!n.checked) return !1;
                t = !0;
              }
            }
            return t;
          }
          getCheckedCount() {
            let e = 0;
            const t = this.elements;
            for (let i = 0, n = t.length; i < n; i++) t[i].checked && e++;
            return e;
          }
          getVisibleCount() {
            let e = 0;
            const t = this.elements;
            for (let i = 0, n = t.length; i < n; i++) t[i].hidden || e++;
            return e;
          }
          setAllVisibleChecked(e) {
            try {
              (this._fireCheckedEvents = !1),
                this.elements.forEach((t) => {
                  t.hidden || (t.checked = e);
                });
            } finally {
              (this._fireCheckedEvents = !0), this.fireCheckedEvents();
            }
          }
          setElements(e) {
            this.elementDisposables = (0, _e.B9)(this.elementDisposables);
            const t = (e) => this.fireButtonTriggered(e);
            (this.inputElements = e),
              (this.elements = e.reduce((i, n, r) => {
                var s, o, a;
                if ('separator' !== n.type) {
                  const l = r && e[r - 1],
                    c = n.label && n.label.replace(/\r?\n/g, ' '),
                    d = n.description && n.description.replace(/\r?\n/g, ' '),
                    h = n.detail && n.detail.replace(/\r?\n/g, ' '),
                    u =
                      n.ariaLabel ||
                      [c, d, h]
                        .map((e) => e && (0, Bs.fe)(e).text)
                        .filter((e) => !!e)
                        .join(', ');
                  i.push(
                    new Js({
                      index: r,
                      item: n,
                      saneLabel: c,
                      saneAriaLabel: u,
                      saneDescription: d,
                      saneDetail: h,
                      labelHighlights:
                        null === (s = n.highlights) || void 0 === s
                          ? void 0
                          : s.label,
                      descriptionHighlights:
                        null === (o = n.highlights) || void 0 === o
                          ? void 0
                          : o.description,
                      detailHighlights:
                        null === (a = n.highlights) || void 0 === a
                          ? void 0
                          : a.detail,
                      checked: !1,
                      separator: l && 'separator' === l.type ? l : void 0,
                      fireButtonTriggered: t,
                    })
                  );
                }
                return i;
              }, [])),
              this.elementDisposables.push(...this.elements),
              this.elementDisposables.push(
                ...this.elements.map((e) =>
                  e.onChecked(() => this.fireCheckedEvents())
                )
              ),
              (this.elementsToIndexes = this.elements.reduce(
                (e, t, i) => (e.set(t.item, i), e),
                new Map()
              )),
              this.list.splice(0, this.list.length),
              this.list.splice(0, this.list.length, this.elements),
              this._onChangedVisibleCount.fire(this.elements.length);
          }
          getFocusedElements() {
            return this.list.getFocusedElements().map((e) => e.item);
          }
          setFocusedElements(e) {
            if (
              (this.list.setFocus(
                e
                  .filter((e) => this.elementsToIndexes.has(e))
                  .map((e) => this.elementsToIndexes.get(e))
              ),
              e.length > 0)
            ) {
              const e = this.list.getFocus()[0];
              'number' == typeof e && this.list.reveal(e);
            }
          }
          getActiveDescendant() {
            return this.list
              .getHTMLElement()
              .getAttribute('aria-activedescendant');
          }
          setSelectedElements(e) {
            this.list.setSelection(
              e
                .filter((e) => this.elementsToIndexes.has(e))
                .map((e) => this.elementsToIndexes.get(e))
            );
          }
          getCheckedElements() {
            return this.elements.filter((e) => e.checked).map((e) => e.item);
          }
          setCheckedElements(e) {
            try {
              this._fireCheckedEvents = !1;
              const t = new Set();
              for (const i of e) t.add(i);
              for (const e of this.elements) e.checked = t.has(e.item);
            } finally {
              (this._fireCheckedEvents = !0), this.fireCheckedEvents();
            }
          }
          set enabled(e) {
            this.list.getHTMLElement().style.pointerEvents = e ? '' : 'none';
          }
          focus(e) {
            if (!this.list.length) return;
            switch (
              (e === eo.Next &&
                this.list.getFocus()[0] === this.list.length - 1 &&
                (e = eo.First),
              e === eo.Previous &&
                0 === this.list.getFocus()[0] &&
                (e = eo.Last),
              e === eo.Second && this.list.length < 2 && (e = eo.First),
              e)
            ) {
              case eo.First:
                this.list.focusFirst();
                break;
              case eo.Second:
                this.list.focusNth(1);
                break;
              case eo.Last:
                this.list.focusLast();
                break;
              case eo.Next:
                this.list.focusNext();
                break;
              case eo.Previous:
                this.list.focusPrevious();
                break;
              case eo.NextPage:
                this.list.focusNextPage();
                break;
              case eo.PreviousPage:
                this.list.focusPreviousPage();
            }
            const t = this.list.getFocus()[0];
            'number' == typeof t && this.list.reveal(t);
          }
          clearFocus() {
            this.list.setFocus([]);
          }
          domFocus() {
            this.list.domFocus();
          }
          layout(e) {
            (this.list.getHTMLElement().style.maxHeight = e
              ? `calc(${44 * Math.floor(e / 44)}px)`
              : ''),
              this.list.layout();
          }
          filter(e) {
            if (
              !(
                this.sortByLabel ||
                this.matchOnLabel ||
                this.matchOnDescription ||
                this.matchOnDetail
              )
            )
              return this.list.layout(), !1;
            (e = e.trim()) &&
            (this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)
              ? this.elements.forEach((t) => {
                  const i = this.matchOnLabel
                      ? (0, ye.f6)((0, Bs.YU)(e, (0, Bs.fe)(t.saneLabel)))
                      : void 0,
                    n = this.matchOnDescription
                      ? (0, ye.f6)(
                          (0, Bs.YU)(e, (0, Bs.fe)(t.saneDescription || ''))
                        )
                      : void 0,
                    r = this.matchOnDetail
                      ? (0, ye.f6)(
                          (0, Bs.YU)(e, (0, Bs.fe)(t.saneDetail || ''))
                        )
                      : void 0;
                  i || n || r
                    ? ((t.labelHighlights = i),
                      (t.descriptionHighlights = n),
                      (t.detailHighlights = r),
                      (t.hidden = !1))
                    : ((t.labelHighlights = void 0),
                      (t.descriptionHighlights = void 0),
                      (t.detailHighlights = void 0),
                      (t.hidden = !t.item.alwaysShow)),
                    (t.separator = void 0);
                })
              : this.elements.forEach((e) => {
                  (e.labelHighlights = void 0),
                    (e.descriptionHighlights = void 0),
                    (e.detailHighlights = void 0),
                    (e.hidden = !1);
                  const t = e.index && this.inputElements[e.index - 1];
                  e.separator = t && 'separator' === t.type ? t : void 0;
                });
            const t = this.elements.filter((e) => !e.hidden);
            if (this.sortByLabel && e) {
              const i = e.toLowerCase();
              t.sort((e, t) =>
                (function (e, t, i) {
                  const n = e.labelHighlights || [],
                    r = t.labelHighlights || [];
                  return n.length && !r.length
                    ? -1
                    : !n.length && r.length
                    ? 1
                    : 0 === n.length && 0 === r.length
                    ? 0
                    : (function (e, t, i) {
                        const n = e.toLowerCase(),
                          r = t.toLowerCase(),
                          s = (function (e, t, i) {
                            const n = e.toLowerCase(),
                              r = t.toLowerCase(),
                              s = n.startsWith(i),
                              o = r.startsWith(i);
                            if (s !== o) return s ? -1 : 1;
                            if (s && o) {
                              if (n.length < r.length) return -1;
                              if (n.length > r.length) return 1;
                            }
                            return 0;
                          })(e, t, i);
                        if (s) return s;
                        const o = n.endsWith(i);
                        if (o !== r.endsWith(i)) return o ? -1 : 1;
                        const a = (function (e, t, i = !1) {
                          const n = e || '',
                            r = t || '',
                            s = Ws.value.collator.compare(n, r);
                          return Ws.value.collatorIsNumeric &&
                            0 === s &&
                            n !== r
                            ? n < r
                              ? -1
                              : 1
                            : s;
                        })(n, r);
                        return 0 !== a ? a : n.localeCompare(r);
                      })(e.saneLabel, t.saneLabel, i);
                })(e, t, i)
              );
            }
            return (
              (this.elementsToIndexes = t.reduce(
                (e, t, i) => (e.set(t.item, i), e),
                new Map()
              )),
              this.list.splice(0, this.list.length, t),
              this.list.setFocus([]),
              this.list.layout(),
              this._onChangedAllVisibleChecked.fire(
                this.getAllVisibleChecked()
              ),
              this._onChangedVisibleCount.fire(t.length),
              !0
            );
          }
          toggleCheckbox() {
            try {
              this._fireCheckedEvents = !1;
              const e = this.list.getFocusedElements(),
                t = this.allVisibleChecked(e);
              for (const i of e) i.checked = !t;
            } finally {
              (this._fireCheckedEvents = !0), this.fireCheckedEvents();
            }
          }
          display(e) {
            this.container.style.display = e ? '' : 'none';
          }
          isDisplayed() {
            return 'none' !== this.container.style.display;
          }
          dispose() {
            (this.elementDisposables = (0, _e.B9)(this.elementDisposables)),
              (this.disposables = (0, _e.B9)(this.disposables));
          }
          fireCheckedEvents() {
            this._fireCheckedEvents &&
              (this._onChangedAllVisibleChecked.fire(
                this.getAllVisibleChecked()
              ),
              this._onChangedCheckedCount.fire(this.getCheckedCount()),
              this._onChangedCheckedElements.fire(this.getCheckedElements()));
          }
          fireButtonTriggered(e) {
            this._onButtonTriggered.fire(e);
          }
          style(e) {
            this.list.style(e);
          }
        }
        Gs([js.H], to.prototype, 'onDidChangeFocus', null),
          Gs([js.H], to.prototype, 'onDidChangeSelection', null);
        class io {
          getWidgetAriaLabel() {
            return (0, ii.N)('quickInput', 'Quick Input');
          }
          getAriaLabel(e) {
            return e.saneAriaLabel;
          }
          getWidgetRole() {
            return 'listbox';
          }
          getRole() {
            return 'option';
          }
        }
        var no = i(77927);
        const ro = G.$;
        class so extends _e.JT {
          constructor(e) {
            super(),
              (this.parent = e),
              (this.onKeyDown = (e) =>
                G.nm(this.inputBox.inputElement, G.tw.KEY_DOWN, (t) => {
                  e(new jt.y(t));
                })),
              (this.onMouseDown = (e) =>
                G.nm(this.inputBox.inputElement, G.tw.MOUSE_DOWN, (t) => {
                  e(new Mr.n(t));
                })),
              (this.onDidChange = (e) => this.inputBox.onDidChange(e)),
              (this.container = G.R3(this.parent, ro('.quick-input-box'))),
              (this.inputBox = this._register(
                new no.W(this.container, void 0)
              ));
          }
          get value() {
            return this.inputBox.value;
          }
          set value(e) {
            this.inputBox.value = e;
          }
          select(e = null) {
            this.inputBox.select(e);
          }
          isSelectionAtEnd() {
            return this.inputBox.isSelectionAtEnd();
          }
          get placeholder() {
            return this.inputBox.inputElement.getAttribute('placeholder') || '';
          }
          set placeholder(e) {
            this.inputBox.setPlaceHolder(e);
          }
          get ariaLabel() {
            return this.inputBox.getAriaLabel();
          }
          set ariaLabel(e) {
            this.inputBox.setAriaLabel(e);
          }
          get password() {
            return 'password' === this.inputBox.inputElement.type;
          }
          set password(e) {
            this.inputBox.inputElement.type = e ? 'password' : 'text';
          }
          setAttribute(e, t) {
            this.inputBox.inputElement.setAttribute(e, t);
          }
          removeAttribute(e) {
            this.inputBox.inputElement.removeAttribute(e);
          }
          showDecoration(e) {
            e === Vt.Z.Ignore
              ? this.inputBox.hideMessage()
              : this.inputBox.showMessage({
                  type: e === Vt.Z.Info ? 1 : e === Vt.Z.Warning ? 2 : 3,
                  content: '',
                });
          }
          stylesForType(e) {
            return this.inputBox.stylesForType(
              e === Vt.Z.Info ? 1 : e === Vt.Z.Warning ? 2 : 3
            );
          }
          setFocus() {
            this.inputBox.focus();
          }
          layout() {
            this.inputBox.layout();
          }
          style(e) {
            this.inputBox.style(e);
          }
        }
        var oo = i(67488);
        const ao = 'done',
          lo = 'active',
          co = 'infinite',
          ho = 'discrete',
          uo = { progressBarBackground: Rn.Il.fromHex('#0E70C0') };
        class go extends _e.JT {
          constructor(e, t) {
            super(),
              (this.options = t || Object.create(null)),
              (0, Zt.jB)(this.options, uo, !1),
              (this.workedVal = 0),
              (this.progressBarBackground = this.options.progressBarBackground),
              this._register(
                (this.showDelayedScheduler = new me.pY(
                  () => (0, G.$Z)(this.element),
                  0
                ))
              ),
              this.create(e);
          }
          create(e) {
            (this.element = document.createElement('div')),
              (0, G.cn)(this.element, 'monaco-progress-container'),
              e.appendChild(this.element),
              (this.bit = document.createElement('div')),
              (0, G.cn)(this.bit, 'progress-bit'),
              this.element.appendChild(this.bit),
              this.applyStyles();
          }
          off() {
            (this.bit.style.width = 'inherit'),
              (this.bit.style.opacity = '1'),
              (0, G.GK)(this.element, lo, co, ho),
              (this.workedVal = 0),
              (this.totalWork = void 0);
          }
          stop() {
            return this.doDone(!1);
          }
          doDone(e) {
            return (
              (0, G.cn)(this.element, ao),
              (0, G.pv)(this.element, co)
                ? ((this.bit.style.opacity = '0'),
                  e ? setTimeout(() => this.off(), 200) : this.off())
                : ((this.bit.style.width = 'inherit'),
                  e ? setTimeout(() => this.off(), 200) : this.off()),
              this
            );
          }
          infinite() {
            return (
              (this.bit.style.width = '2%'),
              (this.bit.style.opacity = '1'),
              (0, G.GK)(this.element, ho, ao),
              (0, G.PT)(this.element, lo, co),
              this
            );
          }
          getContainer() {
            return this.element;
          }
          style(e) {
            (this.progressBarBackground = e.progressBarBackground),
              this.applyStyles();
          }
          applyStyles() {
            if (this.bit) {
              const e = this.progressBarBackground
                ? this.progressBarBackground.toString()
                : '';
              this.bit.style.backgroundColor = e;
            }
          }
        }
        var fo = i(10553);
        const po = {
          buttonBackground: Rn.Il.fromHex('#0E639C'),
          buttonHoverBackground: Rn.Il.fromHex('#006BB3'),
          buttonForeground: Rn.Il.white,
        };
        class mo extends _e.JT {
          constructor(e, t) {
            super(),
              (this._onDidClick = this._register(new B.Q5())),
              (this.options = t || Object.create(null)),
              (0, Zt.jB)(this.options, po, !1),
              (this.buttonForeground = this.options.buttonForeground),
              (this.buttonBackground = this.options.buttonBackground),
              (this.buttonHoverBackground = this.options.buttonHoverBackground),
              (this.buttonSecondaryForeground = this.options.buttonSecondaryForeground),
              (this.buttonSecondaryBackground = this.options.buttonSecondaryBackground),
              (this.buttonSecondaryHoverBackground = this.options.buttonSecondaryHoverBackground),
              (this.buttonBorder = this.options.buttonBorder),
              (this._element = document.createElement('a')),
              G.cn(this._element, 'monaco-button'),
              (this._element.tabIndex = 0),
              this._element.setAttribute('role', 'button'),
              e.appendChild(this._element),
              this._register(fo.o.addTarget(this._element)),
              [G.tw.CLICK, fo.t.Tap].forEach((e) => {
                this._register(
                  G.nm(this._element, e, (e) => {
                    this.enabled ? this._onDidClick.fire(e) : G.zB.stop(e);
                  })
                );
              }),
              this._register(
                G.nm(this._element, G.tw.KEY_DOWN, (e) => {
                  const t = new jt.y(e);
                  let i = !1;
                  this.enabled && (t.equals(3) || t.equals(10))
                    ? (this._onDidClick.fire(e), (i = !0))
                    : t.equals(9) && (this._element.blur(), (i = !0)),
                    i && G.zB.stop(t, !0);
                })
              ),
              this._register(
                G.nm(this._element, G.tw.MOUSE_OVER, (e) => {
                  G.pv(this._element, 'disabled') || this.setHoverBackground();
                })
              ),
              this._register(
                G.nm(this._element, G.tw.MOUSE_OUT, (e) => {
                  this.applyStyles();
                })
              ),
              (this.focusTracker = this._register(G.go(this._element))),
              this._register(
                this.focusTracker.onDidFocus(() => this.setHoverBackground())
              ),
              this._register(
                this.focusTracker.onDidBlur(() => this.applyStyles())
              ),
              this.applyStyles();
          }
          get onDidClick() {
            return this._onDidClick.event;
          }
          setHoverBackground() {
            let e;
            (e = this.options.secondary
              ? this.buttonSecondaryHoverBackground
                ? this.buttonSecondaryHoverBackground.toString()
                : null
              : this.buttonHoverBackground
              ? this.buttonHoverBackground.toString()
              : null),
              e && (this._element.style.backgroundColor = e);
          }
          style(e) {
            (this.buttonForeground = e.buttonForeground),
              (this.buttonBackground = e.buttonBackground),
              (this.buttonHoverBackground = e.buttonHoverBackground),
              (this.buttonSecondaryForeground = e.buttonSecondaryForeground),
              (this.buttonSecondaryBackground = e.buttonSecondaryBackground),
              (this.buttonSecondaryHoverBackground =
                e.buttonSecondaryHoverBackground),
              (this.buttonBorder = e.buttonBorder),
              this.applyStyles();
          }
          applyStyles() {
            if (this._element) {
              let e, t;
              this.options.secondary
                ? ((t = this.buttonSecondaryForeground
                    ? this.buttonSecondaryForeground.toString()
                    : ''),
                  (e = this.buttonSecondaryBackground
                    ? this.buttonSecondaryBackground.toString()
                    : ''))
                : ((t = this.buttonForeground
                    ? this.buttonForeground.toString()
                    : ''),
                  (e = this.buttonBackground
                    ? this.buttonBackground.toString()
                    : ''));
              const i = this.buttonBorder ? this.buttonBorder.toString() : '';
              (this._element.style.color = t),
                (this._element.style.backgroundColor = e),
                (this._element.style.borderWidth = i ? '1px' : ''),
                (this._element.style.borderStyle = i ? 'solid' : ''),
                (this._element.style.borderColor = i);
            }
          }
          get element() {
            return this._element;
          }
          set label(e) {
            G.pv(this._element, 'monaco-text-button') ||
              G.cn(this._element, 'monaco-text-button'),
              this.options.supportCodicons
                ? G.mc(
                    this._element,
                    ...(function (e) {
                      const t = new Array();
                      let i,
                        n = 0,
                        r = 0;
                      for (; null !== (i = kr.b3.exec(e)); ) {
                        (r = i.index || 0),
                          t.push(e.substring(n, r)),
                          (n = (i.index || 0) + i[0].length);
                        const [, s, o, a, l] = i;
                        t.push(
                          s
                            ? `$(${o})`
                            : G.$(
                                `span.codicon.codicon-${a}${
                                  l ? `.codicon-animation-${l}` : ''
                                }`
                              )
                        );
                      }
                      return n < e.length && t.push(e.substring(n)), t;
                    })(e)
                  )
                : (this._element.textContent = e),
              'string' == typeof this.options.title
                ? (this._element.title = this.options.title)
                : this.options.title && (this._element.title = e);
          }
          set enabled(e) {
            e
              ? (G.IV(this._element, 'disabled'),
                this._element.setAttribute('aria-disabled', String(!1)),
                (this._element.tabIndex = 0))
              : (G.cn(this._element, 'disabled'),
                this._element.setAttribute('aria-disabled', String(!0)),
                G.eJ(this._element));
          }
          get enabled() {
            return !G.pv(this._element, 'disabled');
          }
        }
        var _o = function (e, t, i, n) {
          return new (i || (i = Promise))(function (r, s) {
            function o(e) {
              try {
                l(n.next(e));
              } catch (e) {
                s(e);
              }
            }
            function a(e) {
              try {
                l(n.throw(e));
              } catch (e) {
                s(e);
              }
            }
            function l(e) {
              var t;
              e.done
                ? r(e.value)
                : ((t = e.value),
                  t instanceof i
                    ? t
                    : new i(function (e) {
                        e(t);
                      })).then(o, a);
            }
            l((n = n.apply(e, t || [])).next());
          });
        };
        const bo = G.$,
          vo = {
            iconClass: (0, kr.q5)('quick-input-back', kr.lA.arrowLeft)
              .classNames,
            tooltip: (0, ii.N)('quickInput.back', 'Back'),
            handle: -1,
          };
        class yo extends _e.JT {
          constructor(e) {
            super(),
              (this.ui = e),
              (this.visible = !1),
              (this._enabled = !0),
              (this._busy = !1),
              (this._ignoreFocusOut = !1),
              (this._buttons = []),
              (this.buttonsUpdated = !1),
              (this.onDidTriggerButtonEmitter = this._register(new B.Q5())),
              (this.onDidHideEmitter = this._register(new B.Q5())),
              (this.onDisposeEmitter = this._register(new B.Q5())),
              (this.visibleDisposables = this._register(new _e.SL())),
              (this.onDidHide = this.onDidHideEmitter.event);
          }
          get title() {
            return this._title;
          }
          set title(e) {
            (this._title = e), this.update();
          }
          get description() {
            return this._description;
          }
          set description(e) {
            (this._description = e), this.update();
          }
          get step() {
            return this._steps;
          }
          set step(e) {
            (this._steps = e), this.update();
          }
          get totalSteps() {
            return this._totalSteps;
          }
          set totalSteps(e) {
            (this._totalSteps = e), this.update();
          }
          get enabled() {
            return this._enabled;
          }
          set enabled(e) {
            (this._enabled = e), this.update();
          }
          get contextKey() {
            return this._contextKey;
          }
          set contextKey(e) {
            (this._contextKey = e), this.update();
          }
          get busy() {
            return this._busy;
          }
          set busy(e) {
            (this._busy = e), this.update();
          }
          get ignoreFocusOut() {
            return this._ignoreFocusOut;
          }
          set ignoreFocusOut(e) {
            (this._ignoreFocusOut = e), this.update();
          }
          get buttons() {
            return this._buttons;
          }
          set buttons(e) {
            (this._buttons = e), (this.buttonsUpdated = !0), this.update();
          }
          show() {
            this.visible ||
              (this.visibleDisposables.add(
                this.ui.onDidTriggerButton((e) => {
                  -1 !== this.buttons.indexOf(e) &&
                    this.onDidTriggerButtonEmitter.fire(e);
                })
              ),
              this.ui.show(this),
              (this.visible = !0),
              this.update());
          }
          hide() {
            this.visible && this.ui.hide();
          }
          didHide() {
            (this.visible = !1),
              this.visibleDisposables.clear(),
              this.onDidHideEmitter.fire();
          }
          update() {
            if (!this.visible) return;
            const e = this.getTitle();
            e && this.ui.title.textContent !== e
              ? (this.ui.title.textContent = e)
              : e ||
                '&nbsp;' === this.ui.title.innerHTML ||
                (this.ui.title.innerText = ' ;');
            const t = this.getDescription();
            if (
              (this.ui.description.textContent !== t &&
                (this.ui.description.textContent = t),
              this.busy &&
                !this.busyDelay &&
                ((this.busyDelay = new me._F()),
                this.busyDelay.setIfNotSet(() => {
                  this.visible && this.ui.progressBar.infinite();
                }, 800)),
              !this.busy &&
                this.busyDelay &&
                (this.ui.progressBar.stop(),
                this.busyDelay.cancel(),
                (this.busyDelay = void 0)),
              this.buttonsUpdated)
            ) {
              (this.buttonsUpdated = !1), this.ui.leftActionBar.clear();
              const e = this.buttons.filter((e) => e === vo);
              this.ui.leftActionBar.push(
                e.map((e, t) => {
                  const i = new mr.aU(
                    `id-${t}`,
                    '',
                    e.iconClass || $s(e.iconPath),
                    !0,
                    () =>
                      _o(this, void 0, void 0, function* () {
                        this.onDidTriggerButtonEmitter.fire(e);
                      })
                  );
                  return (i.tooltip = e.tooltip || ''), i;
                }),
                { icon: !0, label: !1 }
              ),
                this.ui.rightActionBar.clear();
              const t = this.buttons.filter((e) => e !== vo);
              this.ui.rightActionBar.push(
                t.map((e, t) => {
                  const i = new mr.aU(
                    `id-${t}`,
                    '',
                    e.iconClass || $s(e.iconPath),
                    !0,
                    () =>
                      _o(this, void 0, void 0, function* () {
                        this.onDidTriggerButtonEmitter.fire(e);
                      })
                  );
                  return (i.tooltip = e.tooltip || ''), i;
                }),
                { icon: !0, label: !1 }
              );
            }
            (this.ui.ignoreFocusOut = this.ignoreFocusOut),
              this.ui.setEnabled(this.enabled),
              this.ui.setContextKey(this.contextKey);
          }
          getTitle() {
            return this.title && this.step
              ? `${this.title} (${this.getSteps()})`
              : this.title
              ? this.title
              : this.step
              ? this.getSteps()
              : '';
          }
          getDescription() {
            return this.description || '';
          }
          getSteps() {
            return this.step && this.totalSteps
              ? (0, ii.N)(
                  'quickInput.steps',
                  '{0}/{1}',
                  this.step,
                  this.totalSteps
                )
              : this.step
              ? String(this.step)
              : '';
          }
          showMessageDecoration(e) {
            if ((this.ui.inputBox.showDecoration(e), e === Vt.Z.Error)) {
              const t = this.ui.inputBox.stylesForType(e);
              (this.ui.message.style.color = t.foreground
                ? `${t.foreground}`
                : ''),
                (this.ui.message.style.backgroundColor = t.background
                  ? `${t.background}`
                  : ''),
                (this.ui.message.style.border = t.border
                  ? `1px solid ${t.border}`
                  : ''),
                (this.ui.message.style.paddingBottom = '4px');
            } else
              (this.ui.message.style.color = ''),
                (this.ui.message.style.backgroundColor = ''),
                (this.ui.message.style.border = ''),
                (this.ui.message.style.paddingBottom = '');
          }
          dispose() {
            this.hide(), this.onDisposeEmitter.fire(), super.dispose();
          }
        }
        class wo extends yo {
          constructor() {
            super(...arguments),
              (this._value = ''),
              (this.onDidChangeValueEmitter = this._register(new B.Q5())),
              (this.onDidAcceptEmitter = this._register(new B.Q5())),
              (this.onDidCustomEmitter = this._register(new B.Q5())),
              (this._items = []),
              (this.itemsUpdated = !1),
              (this._canSelectMany = !1),
              (this._canAcceptInBackground = !1),
              (this._matchOnDescription = !1),
              (this._matchOnDetail = !1),
              (this._matchOnLabel = !0),
              (this._sortByLabel = !0),
              (this._autoFocusOnList = !0),
              (this._itemActivation = this.ui.isScreenReaderOptimized()
                ? Fs.j.NONE
                : Fs.j.FIRST),
              (this._activeItems = []),
              (this.activeItemsUpdated = !1),
              (this.activeItemsToConfirm = []),
              (this.onDidChangeActiveEmitter = this._register(new B.Q5())),
              (this._selectedItems = []),
              (this.selectedItemsUpdated = !1),
              (this.selectedItemsToConfirm = []),
              (this.onDidChangeSelectionEmitter = this._register(new B.Q5())),
              (this.onDidTriggerItemButtonEmitter = this._register(new B.Q5())),
              (this.valueSelectionUpdated = !0),
              (this._ok = 'default'),
              (this._customButton = !1),
              (this.filterValue = (e) => e),
              (this.onDidChangeValue = this.onDidChangeValueEmitter.event),
              (this.onDidAccept = this.onDidAcceptEmitter.event),
              (this.onDidChangeActive = this.onDidChangeActiveEmitter.event),
              (this.onDidChangeSelection = this.onDidChangeSelectionEmitter.event),
              (this.onDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event);
          }
          get quickNavigate() {
            return this._quickNavigate;
          }
          set quickNavigate(e) {
            (this._quickNavigate = e), this.update();
          }
          get value() {
            return this._value;
          }
          set value(e) {
            (this._value = e || ''), this.update();
          }
          set ariaLabel(e) {
            (this._ariaLabel = e), this.update();
          }
          get ariaLabel() {
            return this._ariaLabel;
          }
          get placeholder() {
            return this._placeholder;
          }
          set placeholder(e) {
            (this._placeholder = e), this.update();
          }
          get items() {
            return this._items;
          }
          set items(e) {
            (this._items = e), (this.itemsUpdated = !0), this.update();
          }
          get canSelectMany() {
            return this._canSelectMany;
          }
          set canSelectMany(e) {
            (this._canSelectMany = e), this.update();
          }
          get canAcceptInBackground() {
            return this._canAcceptInBackground;
          }
          set canAcceptInBackground(e) {
            this._canAcceptInBackground = e;
          }
          get matchOnDescription() {
            return this._matchOnDescription;
          }
          set matchOnDescription(e) {
            (this._matchOnDescription = e), this.update();
          }
          get matchOnDetail() {
            return this._matchOnDetail;
          }
          set matchOnDetail(e) {
            (this._matchOnDetail = e), this.update();
          }
          get matchOnLabel() {
            return this._matchOnLabel;
          }
          set matchOnLabel(e) {
            (this._matchOnLabel = e), this.update();
          }
          get sortByLabel() {
            return this._sortByLabel;
          }
          set sortByLabel(e) {
            (this._sortByLabel = e), this.update();
          }
          get autoFocusOnList() {
            return this._autoFocusOnList;
          }
          set autoFocusOnList(e) {
            (this._autoFocusOnList = e), this.update();
          }
          get itemActivation() {
            return this._itemActivation;
          }
          set itemActivation(e) {
            this._itemActivation = e;
          }
          get activeItems() {
            return this._activeItems;
          }
          set activeItems(e) {
            (this._activeItems = e),
              (this.activeItemsUpdated = !0),
              this.update();
          }
          get selectedItems() {
            return this._selectedItems;
          }
          set selectedItems(e) {
            (this._selectedItems = e),
              (this.selectedItemsUpdated = !0),
              this.update();
          }
          get keyMods() {
            return this._quickNavigate ? Fs.X : this.ui.keyMods;
          }
          set valueSelection(e) {
            (this._valueSelection = e),
              (this.valueSelectionUpdated = !0),
              this.update();
          }
          get validationMessage() {
            return this._validationMessage;
          }
          set validationMessage(e) {
            (this._validationMessage = e), this.update();
          }
          get customButton() {
            return this._customButton;
          }
          set customButton(e) {
            (this._customButton = e), this.update();
          }
          get customLabel() {
            return this._customButtonLabel;
          }
          set customLabel(e) {
            (this._customButtonLabel = e), this.update();
          }
          get customHover() {
            return this._customButtonHover;
          }
          set customHover(e) {
            (this._customButtonHover = e), this.update();
          }
          get ok() {
            return this._ok;
          }
          set ok(e) {
            (this._ok = e), this.update();
          }
          get hideInput() {
            return !!this._hideInput;
          }
          set hideInput(e) {
            (this._hideInput = e), this.update();
          }
          trySelectFirst() {
            this.autoFocusOnList &&
              (this.canSelectMany || this.ui.list.focus(eo.First));
          }
          show() {
            this.visible ||
              (this.visibleDisposables.add(
                this.ui.inputBox.onDidChange((e) => {
                  e !== this.value &&
                    ((this._value = e),
                    this.ui.list.filter(
                      this.filterValue(this.ui.inputBox.value)
                    ) && this.trySelectFirst(),
                    this.onDidChangeValueEmitter.fire(e));
                })
              ),
              this.visibleDisposables.add(
                this.ui.inputBox.onMouseDown((e) => {
                  this.autoFocusOnList || this.ui.list.clearFocus();
                })
              ),
              this.visibleDisposables.add(
                (this._hideInput ? this.ui.list : this.ui.inputBox).onKeyDown(
                  (e) => {
                    switch (e.keyCode) {
                      case 18:
                        this.ui.list.focus(eo.Next),
                          this.canSelectMany && this.ui.list.domFocus(),
                          G.zB.stop(e, !0);
                        break;
                      case 16:
                        this.ui.list.getFocusedElements().length
                          ? this.ui.list.focus(eo.Previous)
                          : this.ui.list.focus(eo.Last),
                          this.canSelectMany && this.ui.list.domFocus(),
                          G.zB.stop(e, !0);
                        break;
                      case 12:
                        this.ui.list.focus(eo.NextPage),
                          this.canSelectMany && this.ui.list.domFocus(),
                          G.zB.stop(e, !0);
                        break;
                      case 11:
                        this.ui.list.focus(eo.PreviousPage),
                          this.canSelectMany && this.ui.list.domFocus(),
                          G.zB.stop(e, !0);
                        break;
                      case 17:
                        if (!this._canAcceptInBackground) return;
                        if (!this.ui.inputBox.isSelectionAtEnd()) return;
                        this.activeItems[0] &&
                          ((this._selectedItems = [this.activeItems[0]]),
                          this.onDidChangeSelectionEmitter.fire(
                            this.selectedItems
                          ),
                          this.onDidAcceptEmitter.fire({ inBackground: !0 }));
                        break;
                      case 14:
                        (!e.ctrlKey && !e.metaKey) ||
                          e.shiftKey ||
                          e.altKey ||
                          (this.ui.list.focus(eo.First), G.zB.stop(e, !0));
                        break;
                      case 13:
                        (!e.ctrlKey && !e.metaKey) ||
                          e.shiftKey ||
                          e.altKey ||
                          (this.ui.list.focus(eo.Last), G.zB.stop(e, !0));
                    }
                  }
                )
              ),
              this.visibleDisposables.add(
                this.ui.onDidAccept(() => {
                  !this.canSelectMany &&
                    this.activeItems[0] &&
                    ((this._selectedItems = [this.activeItems[0]]),
                    this.onDidChangeSelectionEmitter.fire(this.selectedItems)),
                    this.onDidAcceptEmitter.fire({ inBackground: !1 });
                })
              ),
              this.visibleDisposables.add(
                this.ui.onDidCustom(() => {
                  this.onDidCustomEmitter.fire();
                })
              ),
              this.visibleDisposables.add(
                this.ui.list.onDidChangeFocus((e) => {
                  this.activeItemsUpdated ||
                    (this.activeItemsToConfirm !== this._activeItems &&
                      (0, De.fS)(e, this._activeItems, (e, t) => e === t)) ||
                    ((this._activeItems = e),
                    this.onDidChangeActiveEmitter.fire(e));
                })
              ),
              this.visibleDisposables.add(
                this.ui.list.onDidChangeSelection(({ items: e, event: t }) => {
                  this.canSelectMany
                    ? e.length && this.ui.list.setSelectedElements([])
                    : (this.selectedItemsToConfirm !== this._selectedItems &&
                        (0, De.fS)(
                          e,
                          this._selectedItems,
                          (e, t) => e === t
                        )) ||
                      ((this._selectedItems = e),
                      this.onDidChangeSelectionEmitter.fire(e),
                      e.length &&
                        this.onDidAcceptEmitter.fire({
                          inBackground:
                            t instanceof MouseEvent && 1 === t.button,
                        }));
                })
              ),
              this.visibleDisposables.add(
                this.ui.list.onChangedCheckedElements((e) => {
                  this.canSelectMany &&
                    ((this.selectedItemsToConfirm !== this._selectedItems &&
                      (0, De.fS)(e, this._selectedItems, (e, t) => e === t)) ||
                      ((this._selectedItems = e),
                      this.onDidChangeSelectionEmitter.fire(e)));
                })
              ),
              this.visibleDisposables.add(
                this.ui.list.onButtonTriggered((e) =>
                  this.onDidTriggerItemButtonEmitter.fire(e)
                )
              ),
              this.visibleDisposables.add(this.registerQuickNavigation()),
              (this.valueSelectionUpdated = !0)),
              super.show();
          }
          registerQuickNavigation() {
            return G.nm(this.ui.container, G.tw.KEY_UP, (e) => {
              if (this.canSelectMany || !this._quickNavigate) return;
              const t = new jt.y(e),
                i = t.keyCode;
              this._quickNavigate.keybindings.some((e) => {
                const [n, r] = e.getParts();
                return !(
                  r ||
                  (n.shiftKey && 4 === i
                    ? t.ctrlKey || t.altKey || t.metaKey
                    : !(
                        (n.altKey && 6 === i) ||
                        (n.ctrlKey && 5 === i) ||
                        (n.metaKey && 57 === i)
                      ))
                );
              }) &&
                (this.activeItems[0] &&
                  ((this._selectedItems = [this.activeItems[0]]),
                  this.onDidChangeSelectionEmitter.fire(this.selectedItems),
                  this.onDidAcceptEmitter.fire({ inBackground: !1 })),
                (this._quickNavigate = void 0));
            });
          }
          update() {
            if (!this.visible) return;
            let e = !1,
              t = !1;
            this._hideInput &&
              this._items.length > 0 &&
              (this.ui.isScreenReaderOptimized() ? (t = !0) : (e = !0)),
              G.og(this.ui.container, 'hidden-input', e);
            const i = {
              title: !!this.title || !!this.step || !!this.buttons.length,
              description: !!this.description,
              checkAll: this.canSelectMany,
              inputBox: !e,
              progressBar: !e,
              visibleCount: !0,
              count: this.canSelectMany,
              ok: 'default' === this.ok ? this.canSelectMany : this.ok,
              list: !0,
              message: !!this.validationMessage,
              customButton: this.customButton,
            };
            if (
              (this.ui.setVisibilities(i),
              super.update(),
              this.ui.inputBox.value !== this.value &&
                (this.ui.inputBox.value = this.value),
              this.valueSelectionUpdated &&
                ((this.valueSelectionUpdated = !1),
                this.ui.inputBox.select(
                  this._valueSelection && {
                    start: this._valueSelection[0],
                    end: this._valueSelection[1],
                  }
                )),
              this.ui.inputBox.placeholder !== (this.placeholder || '') &&
                (this.ui.inputBox.placeholder = this.placeholder || ''),
              t)
            )
              this.ui.inputBox.ariaLabel = '';
            else {
              const e =
                this.ariaLabel || this.placeholder || wo.DEFAULT_ARIA_LABEL;
              this.ui.inputBox.ariaLabel !== e &&
                (this.ui.inputBox.ariaLabel = e);
            }
            if (
              ((this.ui.list.matchOnDescription = this.matchOnDescription),
              (this.ui.list.matchOnDetail = this.matchOnDetail),
              (this.ui.list.matchOnLabel = this.matchOnLabel),
              (this.ui.list.sortByLabel = this.sortByLabel),
              this.itemsUpdated)
            )
              switch (
                ((this.itemsUpdated = !1),
                this.ui.list.setElements(this.items),
                this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),
                (this.ui.checkAll.checked = this.ui.list.getAllVisibleChecked()),
                this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),
                this.ui.count.setCount(this.ui.list.getCheckedCount()),
                this._itemActivation)
              ) {
                case Fs.j.NONE:
                  this._itemActivation = Fs.j.FIRST;
                  break;
                case Fs.j.SECOND:
                  this.ui.list.focus(eo.Second),
                    (this._itemActivation = Fs.j.FIRST);
                  break;
                case Fs.j.LAST:
                  this.ui.list.focus(eo.Last),
                    (this._itemActivation = Fs.j.FIRST);
                  break;
                default:
                  this.trySelectFirst();
              }
            this.ui.container.classList.contains('show-checkboxes') !==
              !!this.canSelectMany &&
              (this.canSelectMany
                ? this.ui.list.clearFocus()
                : this.trySelectFirst()),
              this.activeItemsUpdated &&
                ((this.activeItemsUpdated = !1),
                (this.activeItemsToConfirm = this._activeItems),
                this.ui.list.setFocusedElements(this.activeItems),
                this.activeItemsToConfirm === this._activeItems &&
                  (this.activeItemsToConfirm = null)),
              this.selectedItemsUpdated &&
                ((this.selectedItemsUpdated = !1),
                (this.selectedItemsToConfirm = this._selectedItems),
                this.canSelectMany
                  ? this.ui.list.setCheckedElements(this.selectedItems)
                  : this.ui.list.setSelectedElements(this.selectedItems),
                this.selectedItemsToConfirm === this._selectedItems &&
                  (this.selectedItemsToConfirm = null)),
              this.validationMessage
                ? ((this.ui.message.textContent = this.validationMessage),
                  this.showMessageDecoration(Vt.Z.Error))
                : ((this.ui.message.textContent = null),
                  this.showMessageDecoration(Vt.Z.Ignore)),
              (this.ui.customButton.label = this.customLabel || ''),
              (this.ui.customButton.element.title = this.customHover || ''),
              this.ui.setComboboxAccessibility(!0),
              i.inputBox || this.ui.list.domFocus();
          }
        }
        wo.DEFAULT_ARIA_LABEL = (0, ii.N)(
          'quickInputBox.ariaLabel',
          'Type to narrow down results.'
        );
        class Co extends _e.JT {
          constructor(e) {
            super(),
              (this.options = e),
              (this.comboboxAccessibility = !1),
              (this.enabled = !0),
              (this.onDidAcceptEmitter = this._register(new B.Q5())),
              (this.onDidCustomEmitter = this._register(new B.Q5())),
              (this.onDidTriggerButtonEmitter = this._register(new B.Q5())),
              (this.keyMods = { ctrlCmd: !1, alt: !1 }),
              (this.controller = null),
              (this.onShowEmitter = this._register(new B.Q5())),
              (this.onShow = this.onShowEmitter.event),
              (this.onHideEmitter = this._register(new B.Q5())),
              (this.onHide = this.onHideEmitter.event),
              (this.idPrefix = e.idPrefix),
              (this.parentElement = e.container),
              (this.styles = e.styles),
              this.registerKeyModsListeners();
          }
          registerKeyModsListeners() {
            const e = (e) => {
              (this.keyMods.ctrlCmd = e.ctrlKey || e.metaKey),
                (this.keyMods.alt = e.altKey);
            };
            this._register(G.nm(window, G.tw.KEY_DOWN, e, !0)),
              this._register(G.nm(window, G.tw.KEY_UP, e, !0)),
              this._register(G.nm(window, G.tw.MOUSE_DOWN, e, !0));
          }
          getUI() {
            if (this.ui) return this.ui;
            const e = G.R3(
              this.parentElement,
              bo('.quick-input-widget.show-file-icons')
            );
            (e.tabIndex = -1), (e.style.display = 'none');
            const t = G.dS(e),
              i = G.R3(e, bo('.quick-input-titlebar')),
              n = this._register(new _r.o(i));
            n.domNode.classList.add('quick-input-left-action-bar');
            const r = G.R3(i, bo('.quick-input-title')),
              s = this._register(new _r.o(i));
            s.domNode.classList.add('quick-input-right-action-bar');
            const o = G.R3(e, bo('.quick-input-description')),
              a = G.R3(e, bo('.quick-input-header')),
              l = G.R3(a, bo('input.quick-input-check-all'));
            (l.type = 'checkbox'),
              this._register(
                G.mu(l, G.tw.CHANGE, (e) => {
                  const t = l.checked;
                  C.setAllVisibleChecked(t);
                })
              ),
              this._register(
                G.nm(l, G.tw.CLICK, (e) => {
                  (e.x || e.y) && h.setFocus();
                })
              );
            const c = G.R3(a, bo('.quick-input-and-message')),
              d = G.R3(c, bo('.quick-input-filter')),
              h = this._register(new so(d));
            h.setAttribute('aria-describedby', `${this.idPrefix}message`);
            const u = G.R3(d, bo('.quick-input-visible-count'));
            u.setAttribute('aria-live', 'polite'),
              u.setAttribute('aria-atomic', 'true');
            const g = new oo.Z(u, {
                countFormat: (0, ii.N)(
                  {
                    key: 'quickInput.visibleCount',
                    comment: [
                      'This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers.',
                    ],
                  },
                  '{0} Results'
                ),
              }),
              f = G.R3(d, bo('.quick-input-count'));
            f.setAttribute('aria-live', 'polite');
            const p = new oo.Z(f, {
                countFormat: (0, ii.N)(
                  {
                    key: 'quickInput.countSelected',
                    comment: [
                      'This tells the user how many items are selected in a list of items to select from. The items can be anything.',
                    ],
                  },
                  '{0} Selected'
                ),
              }),
              m = G.R3(a, bo('.quick-input-action')),
              _ = new mo(m);
            (_.label = (0, ii.N)('ok', 'OK')),
              this._register(
                _.onDidClick((e) => {
                  this.onDidAcceptEmitter.fire();
                })
              );
            const b = G.R3(a, bo('.quick-input-action')),
              v = new mo(b);
            (v.label = (0, ii.N)('custom', 'Custom')),
              this._register(
                v.onDidClick((e) => {
                  this.onDidCustomEmitter.fire();
                })
              );
            const y = G.R3(
                c,
                bo(`#${this.idPrefix}message.quick-input-message`)
              ),
              w = new go(e);
            G.cn(w.getContainer(), 'quick-input-progress');
            const C = this._register(
              new to(e, this.idPrefix + 'list', this.options)
            );
            this._register(
              C.onChangedAllVisibleChecked((e) => {
                l.checked = e;
              })
            ),
              this._register(
                C.onChangedVisibleCount((e) => {
                  g.setCount(e);
                })
              ),
              this._register(
                C.onChangedCheckedCount((e) => {
                  p.setCount(e);
                })
              ),
              this._register(
                C.onLeave(() => {
                  setTimeout(() => {
                    h.setFocus(),
                      this.controller instanceof wo &&
                        this.controller.canSelectMany &&
                        C.clearFocus();
                  }, 0);
                })
              ),
              this._register(
                C.onDidChangeFocus(() => {
                  this.comboboxAccessibility &&
                    this.getUI().inputBox.setAttribute(
                      'aria-activedescendant',
                      this.getUI().list.getActiveDescendant() || ''
                    );
                })
              );
            const S = G.go(e);
            return (
              this._register(S),
              this._register(
                G.nm(
                  e,
                  G.tw.FOCUS,
                  (e) => {
                    this.previousFocusElement =
                      e.relatedTarget instanceof HTMLElement
                        ? e.relatedTarget
                        : void 0;
                  },
                  !0
                )
              ),
              this._register(
                S.onDidBlur(() => {
                  this.getUI().ignoreFocusOut ||
                    this.options.ignoreFocusOut() ||
                    this.hide(),
                    (this.previousFocusElement = void 0);
                })
              ),
              this._register(
                G.nm(e, G.tw.FOCUS, (e) => {
                  h.setFocus();
                })
              ),
              this._register(
                G.nm(e, G.tw.KEY_DOWN, (t) => {
                  const i = new jt.y(t);
                  switch (i.keyCode) {
                    case 3:
                      G.zB.stop(t, !0), this.onDidAcceptEmitter.fire();
                      break;
                    case 9:
                      G.zB.stop(t, !0), this.hide();
                      break;
                    case 2:
                      if (!i.altKey && !i.ctrlKey && !i.metaKey) {
                        const n = ['.action-label.codicon'];
                        e.classList.contains('show-checkboxes')
                          ? n.push('input')
                          : n.push('input[type=text]'),
                          this.getUI().list.isDisplayed() &&
                            n.push('.monaco-list');
                        const r = e.querySelectorAll(n.join(', '));
                        i.shiftKey && i.target === r[0]
                          ? (G.zB.stop(t, !0), r[r.length - 1].focus())
                          : i.shiftKey ||
                            i.target !== r[r.length - 1] ||
                            (G.zB.stop(t, !0), r[0].focus());
                      }
                  }
                })
              ),
              (this.ui = {
                container: e,
                styleSheet: t,
                leftActionBar: n,
                titleBar: i,
                title: r,
                description: o,
                rightActionBar: s,
                checkAll: l,
                filterContainer: d,
                inputBox: h,
                visibleCountContainer: u,
                visibleCount: g,
                countContainer: f,
                count: p,
                okContainer: m,
                ok: _,
                message: y,
                customButtonContainer: b,
                customButton: v,
                progressBar: w,
                list: C,
                onDidAccept: this.onDidAcceptEmitter.event,
                onDidCustom: this.onDidCustomEmitter.event,
                onDidTriggerButton: this.onDidTriggerButtonEmitter.event,
                ignoreFocusOut: !1,
                keyMods: this.keyMods,
                isScreenReaderOptimized: () =>
                  this.options.isScreenReaderOptimized(),
                show: (e) => this.show(e),
                hide: () => this.hide(),
                setVisibilities: (e) => this.setVisibilities(e),
                setComboboxAccessibility: (e) =>
                  this.setComboboxAccessibility(e),
                setEnabled: (e) => this.setEnabled(e),
                setContextKey: (e) => this.options.setContextKey(e),
              }),
              this.updateStyles(),
              this.ui
            );
          }
          pick(e, t = {}, i = F.T.None) {
            return new Promise((n, r) => {
              let s = (e) => {
                (s = n), t.onKeyMods && t.onKeyMods(o.keyMods), n(e);
              };
              if (i.isCancellationRequested) return void s(void 0);
              const o = this.createQuickPick();
              let a;
              const l = [
                o,
                o.onDidAccept(() => {
                  if (o.canSelectMany) s(o.selectedItems.slice()), o.hide();
                  else {
                    const e = o.activeItems[0];
                    e && (s(e), o.hide());
                  }
                }),
                o.onDidChangeActive((e) => {
                  const i = e[0];
                  i && t.onDidFocus && t.onDidFocus(i);
                }),
                o.onDidChangeSelection((e) => {
                  if (!o.canSelectMany) {
                    const t = e[0];
                    t && (s(t), o.hide());
                  }
                }),
                o.onDidTriggerItemButton(
                  (e) =>
                    t.onDidTriggerItemButton &&
                    t.onDidTriggerItemButton(
                      Object.assign(Object.assign({}, e), {
                        removeItem: () => {
                          const t = o.items.indexOf(e.item);
                          if (-1 !== t) {
                            const e = o.items.slice();
                            e.splice(t, 1), (o.items = e);
                          }
                        },
                      })
                    )
                ),
                o.onDidChangeValue((e) => {
                  !a ||
                    e ||
                    (1 === o.activeItems.length && o.activeItems[0] === a) ||
                    (o.activeItems = [a]);
                }),
                i.onCancellationRequested(() => {
                  o.hide();
                }),
                o.onDidHide(() => {
                  (0, _e.B9)(l), s(void 0);
                }),
              ];
              (o.canSelectMany = !!t.canPickMany),
                (o.placeholder = t.placeHolder),
                (o.ignoreFocusOut = !!t.ignoreFocusLost),
                (o.matchOnDescription = !!t.matchOnDescription),
                (o.matchOnDetail = !!t.matchOnDetail),
                (o.matchOnLabel = void 0 === t.matchOnLabel || t.matchOnLabel),
                (o.autoFocusOnList =
                  void 0 === t.autoFocusOnList || t.autoFocusOnList),
                (o.quickNavigate = t.quickNavigate),
                (o.contextKey = t.contextKey),
                (o.busy = !0),
                Promise.all([e, t.activeItem]).then(([e, t]) => {
                  (a = t),
                    (o.busy = !1),
                    (o.items = e),
                    o.canSelectMany &&
                      (o.selectedItems = e.filter(
                        (e) => 'separator' !== e.type && e.picked
                      )),
                    a && (o.activeItems = [a]);
                }),
                o.show(),
                Promise.resolve(e).then(void 0, (e) => {
                  r(e), o.hide();
                });
            });
          }
          createQuickPick() {
            const e = this.getUI();
            return new wo(e);
          }
          show(e) {
            const t = this.getUI();
            this.onShowEmitter.fire();
            const i = this.controller;
            (this.controller = e),
              i && i.didHide(),
              this.setEnabled(!0),
              t.leftActionBar.clear(),
              (t.title.textContent = ''),
              (t.description.textContent = ''),
              t.rightActionBar.clear(),
              (t.checkAll.checked = !1),
              (t.inputBox.placeholder = ''),
              (t.inputBox.password = !1),
              t.inputBox.showDecoration(Vt.Z.Ignore),
              t.visibleCount.setCount(0),
              t.count.setCount(0),
              (t.message.textContent = ''),
              t.progressBar.stop(),
              t.list.setElements([]),
              (t.list.matchOnDescription = !1),
              (t.list.matchOnDetail = !1),
              (t.list.matchOnLabel = !0),
              (t.list.sortByLabel = !0),
              (t.ignoreFocusOut = !1),
              this.setComboboxAccessibility(!1),
              (t.inputBox.ariaLabel = '');
            const n = this.options.backKeybindingLabel();
            (vo.tooltip = n
              ? (0, ii.N)('quickInput.backWithKeybinding', 'Back ({0})', n)
              : (0, ii.N)('quickInput.back', 'Back')),
              (t.container.style.display = ''),
              this.updateLayout(),
              t.inputBox.setFocus();
          }
          setVisibilities(e) {
            const t = this.getUI();
            (t.title.style.display = e.title ? '' : 'none'),
              (t.description.style.display = e.description ? '' : 'none'),
              (t.checkAll.style.display = e.checkAll ? '' : 'none'),
              (t.filterContainer.style.display = e.inputBox ? '' : 'none'),
              (t.visibleCountContainer.style.display = e.visibleCount
                ? ''
                : 'none'),
              (t.countContainer.style.display = e.count ? '' : 'none'),
              (t.okContainer.style.display = e.ok ? '' : 'none'),
              (t.customButtonContainer.style.display = e.customButton
                ? ''
                : 'none'),
              (t.message.style.display = e.message ? '' : 'none'),
              (t.progressBar.getContainer().style.display = e.progressBar
                ? ''
                : 'none'),
              t.list.display(!!e.list),
              t.container.classList[e.checkAll ? 'add' : 'remove'](
                'show-checkboxes'
              ),
              this.updateLayout();
          }
          setComboboxAccessibility(e) {
            if (e !== this.comboboxAccessibility) {
              const t = this.getUI();
              (this.comboboxAccessibility = e),
                this.comboboxAccessibility
                  ? (t.inputBox.setAttribute('role', 'combobox'),
                    t.inputBox.setAttribute('aria-haspopup', 'true'),
                    t.inputBox.setAttribute('aria-autocomplete', 'list'),
                    t.inputBox.setAttribute(
                      'aria-activedescendant',
                      t.list.getActiveDescendant() || ''
                    ))
                  : (t.inputBox.removeAttribute('role'),
                    t.inputBox.removeAttribute('aria-haspopup'),
                    t.inputBox.removeAttribute('aria-autocomplete'),
                    t.inputBox.removeAttribute('aria-activedescendant'));
            }
          }
          setEnabled(e) {
            if (e !== this.enabled) {
              this.enabled = e;
              for (const t of this.getUI().leftActionBar.viewItems)
                t.getAction().enabled = e;
              for (const t of this.getUI().rightActionBar.viewItems)
                t.getAction().enabled = e;
              (this.getUI().checkAll.disabled = !e),
                (this.getUI().ok.enabled = e),
                (this.getUI().list.enabled = e);
            }
          }
          hide() {
            var e;
            const t = this.controller;
            if (t) {
              const i = !(null === (e = this.ui) || void 0 === e
                ? void 0
                : e.container.contains(document.activeElement));
              (this.controller = null),
                this.onHideEmitter.fire(),
                (this.getUI().container.style.display = 'none'),
                i ||
                  (this.previousFocusElement &&
                  this.previousFocusElement.offsetParent
                    ? (this.previousFocusElement.focus(),
                      (this.previousFocusElement = void 0))
                    : this.options.returnFocus()),
                t.didHide();
            }
          }
          layout(e, t) {
            (this.dimension = e),
              (this.titleBarOffset = t),
              this.updateLayout();
          }
          updateLayout() {
            if (this.ui) {
              this.ui.container.style.top = `${this.titleBarOffset}px`;
              const e = this.ui.container.style,
                t = Math.min(0.62 * this.dimension.width, Co.MAX_WIDTH);
              (e.width = t + 'px'),
                (e.marginLeft = '-' + t / 2 + 'px'),
                this.ui.inputBox.layout(),
                this.ui.list.layout(
                  this.dimension && 0.4 * this.dimension.height
                );
            }
          }
          applyStyles(e) {
            (this.styles = e), this.updateStyles();
          }
          updateStyles() {
            if (this.ui) {
              const {
                quickInputTitleBackground: e,
                quickInputBackground: t,
                quickInputForeground: i,
                contrastBorder: n,
                widgetShadow: r,
              } = this.styles.widget;
              (this.ui.titleBar.style.backgroundColor = e ? e.toString() : ''),
                (this.ui.container.style.backgroundColor = t
                  ? t.toString()
                  : ''),
                (this.ui.container.style.color = i ? i.toString() : ''),
                (this.ui.container.style.border = n ? `1px solid ${n}` : ''),
                (this.ui.container.style.boxShadow = r ? `0 5px 8px ${r}` : ''),
                this.ui.inputBox.style(this.styles.inputBox),
                this.ui.count.style(this.styles.countBadge),
                this.ui.ok.style(this.styles.button),
                this.ui.customButton.style(this.styles.button),
                this.ui.progressBar.style(this.styles.progressBar),
                this.ui.list.style(this.styles.list);
              const s = [];
              this.styles.list.listInactiveFocusForeground &&
                (s.push(
                  `.monaco-list .monaco-list-row.focused { color:  ${this.styles.list.listInactiveFocusForeground}; }`
                ),
                s.push(
                  `.monaco-list .monaco-list-row.focused:hover { color:  ${this.styles.list.listInactiveFocusForeground}; }`
                )),
                this.styles.list.pickerGroupBorder &&
                  s.push(
                    `.quick-input-list .quick-input-list-entry { border-top-color:  ${this.styles.list.pickerGroupBorder}; }`
                  ),
                this.styles.list.pickerGroupForeground &&
                  s.push(
                    `.quick-input-list .quick-input-list-separator { color:  ${this.styles.list.pickerGroupForeground}; }`
                  );
              const o = s.join('\n');
              o !== this.ui.styleSheet.innerHTML &&
                (this.ui.styleSheet.innerHTML = o);
            }
          }
        }
        Co.MAX_WIDTH = 600;
        var So = i(41157),
          ko = i(90725),
          xo = i(88289),
          Lo = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let Mo = class extends _e.JT {
          constructor(e, t) {
            super(),
              (this.quickInputService = e),
              (this.instantiationService = t),
              (this.registry = _n.B.as(ko.IP.Quickaccess)),
              (this.mapProviderToDescriptor = new Map()),
              (this.lastAcceptedPickerValues = new Map()),
              (this.visibleQuickAccess = void 0);
          }
          show(e = '', t) {
            var i;
            const [n, r] = this.getOrInstantiateProvider(e),
              s = this.visibleQuickAccess,
              o = null == s ? void 0 : s.descriptor;
            if (s && r && o === r)
              return (
                e === r.prefix ||
                  (null == t ? void 0 : t.preserveValue) ||
                  (s.picker.value = e),
                void this.adjustValueSelection(s.picker, r, t)
              );
            if (r && !(null == t ? void 0 : t.preserveValue)) {
              let t;
              if (s && o && o !== r) {
                const e = s.value.substr(o.prefix.length);
                e && (t = `${r.prefix}${e}`);
              }
              if (!t) {
                const e = null == n ? void 0 : n.defaultFilterValue;
                e === ko.Ry.LAST
                  ? (t = this.lastAcceptedPickerValues.get(r))
                  : 'string' == typeof e && (t = `${r.prefix}${e}`);
              }
              'string' == typeof t && (e = t);
            }
            const a = new _e.SL(),
              l = a.add(this.quickInputService.createQuickPick());
            (l.value = e),
              this.adjustValueSelection(l, r, t),
              (l.placeholder = null == r ? void 0 : r.placeholder),
              (l.quickNavigate =
                null == t ? void 0 : t.quickNavigateConfiguration),
              (l.hideInput = !!l.quickNavigate && !s),
              ('number' == typeof (null == t ? void 0 : t.itemActivation) ||
                (null == t ? void 0 : t.quickNavigateConfiguration)) &&
                (l.itemActivation =
                  null !== (i = null == t ? void 0 : t.itemActivation) &&
                  void 0 !== i
                    ? i
                    : So.jG.SECOND),
              (l.contextKey = null == r ? void 0 : r.contextKey),
              (l.filterValue = (e) => e.substring(r ? r.prefix.length : 0)),
              (null == r ? void 0 : r.placeholder) &&
                (l.ariaLabel = null == r ? void 0 : r.placeholder);
            const c = this.registerPickerListeners(l, n, r, e, a);
            n && a.add(n.provide(l, c)), l.show();
          }
          adjustValueSelection(e, t, i) {
            var n;
            let r;
            (r = (null == i ? void 0 : i.preserveValue)
              ? [e.value.length, e.value.length]
              : [
                  null !== (n = null == t ? void 0 : t.prefix.length) &&
                  void 0 !== n
                    ? n
                    : 0,
                  e.value.length,
                ]),
              (e.valueSelection = r);
          }
          registerPickerListeners(e, t, i, n, r) {
            const s = (this.visibleQuickAccess = {
              picker: e,
              descriptor: i,
              value: n,
            });
            r.add(
              (0, _e.OF)(() => {
                s === this.visibleQuickAccess &&
                  (this.visibleQuickAccess = void 0);
              })
            ),
              r.add(
                e.onDidChangeValue((e) => {
                  const [i] = this.getOrInstantiateProvider(e);
                  i !== t ? this.show(e, { preserveValue: !0 }) : (s.value = e);
                })
              ),
              i &&
                r.add(
                  e.onDidAccept(() => {
                    this.lastAcceptedPickerValues.set(i, e.value);
                  })
                );
            const o = r.add(new F.A());
            return (
              (0, xo.I)(e.onDidHide)(() => {
                0 === e.selectedItems.length && o.cancel(), r.dispose();
              }),
              o.token
            );
          }
          getOrInstantiateProvider(e) {
            const t = this.registry.getQuickAccessProvider(e);
            if (!t) return [void 0, void 0];
            let i = this.mapProviderToDescriptor.get(t);
            return (
              i ||
                ((i = this.instantiationService.createInstance(t.ctor)),
                this.mapProviderToDescriptor.set(t, i)),
              [i, t]
            );
          }
        };
        Mo = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })([Lo(0, So.eJ), Lo(1, Ui.TG)], Mo);
        var Do = function (e, t) {
          return function (i, n) {
            t(i, n, e);
          };
        };
        let No = class extends Ki.bB {
          constructor(e, t, i, n, r) {
            super(i),
              (this.instantiationService = e),
              (this.contextKeyService = t),
              (this.accessibilityService = n),
              (this.layoutService = r),
              (this.contexts = new Map());
          }
          get controller() {
            return (
              this._controller ||
                (this._controller = this._register(this.createController())),
              this._controller
            );
          }
          get quickAccess() {
            return (
              this._quickAccess ||
                (this._quickAccess = this._register(
                  this.instantiationService.createInstance(Mo)
                )),
              this._quickAccess
            );
          }
          createController(e = this.layoutService, t) {
            var i, n;
            const r = {
                idPrefix: 'quickInput_',
                container: e.container,
                ignoreFocusOut: () => !1,
                isScreenReaderOptimized: () =>
                  this.accessibilityService.isScreenReaderOptimized(),
                backKeybindingLabel: () => {},
                setContextKey: (e) => this.setContextKey(e),
                returnFocus: () => e.focus(),
                createList: (e, t, i, n, r) =>
                  this.instantiationService.createInstance(
                    ts.ev,
                    e,
                    t,
                    i,
                    n,
                    r
                  ),
                styles: this.computeStyles(),
              },
              s = this._register(
                new Co(Object.assign(Object.assign({}, r), t))
              );
            return (
              s.layout(
                e.dimension,
                null !==
                  (n =
                    null === (i = e.offset) || void 0 === i ? void 0 : i.top) &&
                  void 0 !== n
                  ? n
                  : 0
              ),
              this._register(
                e.onLayout((t) => {
                  var i, n;
                  return s.layout(
                    t,
                    null !==
                      (n =
                        null === (i = e.offset) || void 0 === i
                          ? void 0
                          : i.top) && void 0 !== n
                      ? n
                      : 0
                  );
                })
              ),
              this._register(s.onShow(() => this.resetContextKeys())),
              this._register(s.onHide(() => this.resetContextKeys())),
              s
            );
          }
          setContextKey(e) {
            let t;
            e &&
              ((t = this.contexts.get(e)),
              t ||
                ((t = new Vi.uy(e, !1).bindTo(this.contextKeyService)),
                this.contexts.set(e, t))),
              (t && t.get()) || (this.resetContextKeys(), t && t.set(!0));
          }
          resetContextKeys() {
            this.contexts.forEach((e) => {
              e.get() && e.reset();
            });
          }
          pick(e, t = {}, i = F.T.None) {
            return this.controller.pick(e, t, i);
          }
          createQuickPick() {
            return this.controller.createQuickPick();
          }
          updateStyles() {
            this.controller.applyStyles(this.computeStyles());
          }
          computeStyles() {
            return {
              widget: Object.assign(
                {},
                (0, Br.o)(this.theme, {
                  quickInputBackground: zn.zK,
                  quickInputForeground: zn.tZ,
                  quickInputTitleBackground: zn.lo,
                  contrastBorder: zn.lR,
                  widgetShadow: zn.rh,
                })
              ),
              inputBox: (0, Br.o)(this.theme, {
                inputForeground: zn.zJ,
                inputBackground: zn.sE,
                inputBorder: zn.dt,
                inputValidationInfoBackground: zn._l,
                inputValidationInfoForeground: zn.YI,
                inputValidationInfoBorder: zn.EP,
                inputValidationWarningBackground: zn.RV,
                inputValidationWarningForeground: zn.SU,
                inputValidationWarningBorder: zn.C3,
                inputValidationErrorBackground: zn.p,
                inputValidationErrorForeground: zn._t,
                inputValidationErrorBorder: zn.OZ,
              }),
              countBadge: (0, Br.o)(this.theme, {
                badgeBackground: zn.g8,
                badgeForeground: zn.qe,
                badgeBorder: zn.lR,
              }),
              button: (0, Br.o)(this.theme, {
                buttonForeground: zn.j5,
                buttonBackground: zn.b7,
                buttonHoverBackground: zn.GO,
                buttonBorder: zn.lR,
              }),
              progressBar: (0, Br.o)(this.theme, {
                progressBarBackground: zn.zR,
              }),
              list: (0, Br.o)(this.theme, {
                listBackground: zn.zK,
                listInactiveFocusForeground: zn._2,
                listInactiveFocusBackground: zn._b,
                listFocusOutline: zn.xL,
                listInactiveFocusOutline: zn.xL,
                pickerGroupBorder: zn.op,
                pickerGroupForeground: zn.kJ,
              }),
            };
          }
        };
        No = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [Do(0, Ui.TG), Do(1, Vi.i6), Do(2, Ki.XE), Do(3, qi.F), Do(4, zr)],
          No
        );
        var Eo = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          To = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let Io = class extends No {
          constructor(e, t, i, n, r, s) {
            super(t, i, n, r, s), (this.host = void 0);
            const o = Ao.get(e);
            this.host = {
              _serviceBrand: void 0,
              get container() {
                return o.widget.getDomNode();
              },
              get dimension() {
                return e.getLayoutInfo();
              },
              get onLayout() {
                return e.onDidLayoutChange;
              },
              focus: () => e.focus(),
            };
          }
          createController() {
            return super.createController(this.host);
          }
        };
        Io = Eo(
          [To(1, Ui.TG), To(2, Vi.i6), To(3, Ki.XE), To(4, qi.F), To(5, zr)],
          Io
        );
        let Oo = class {
          constructor(e, t) {
            (this.instantiationService = e),
              (this.codeEditorService = t),
              (this.mapEditorToService = new Map());
          }
          get activeService() {
            const e = this.codeEditorService.getFocusedCodeEditor();
            if (!e)
              throw new Error(
                'Quick input service needs a focused editor to work.'
              );
            let t = this.mapEditorToService.get(e);
            if (!t) {
              const i = (t = this.instantiationService.createInstance(Io, e));
              this.mapEditorToService.set(e, t),
                (0, xo.I)(e.onDidDispose)(() => {
                  i.dispose(), this.mapEditorToService.delete(e);
                });
            }
            return t;
          }
          get quickAccess() {
            return this.activeService.quickAccess;
          }
          pick(e, t = {}, i = F.T.None) {
            return this.activeService.pick(e, t, i);
          }
          createQuickPick() {
            return this.activeService.createQuickPick();
          }
        };
        Oo = Eo([To(0, Ui.TG), To(1, q.$)], Oo);
        class Ao {
          constructor(e) {
            (this.editor = e), (this.widget = new Ro(this.editor));
          }
          static get(e) {
            return e.getContribution(Ao.ID);
          }
          dispose() {
            this.widget.dispose();
          }
        }
        Ao.ID = 'editor.controller.quickInput';
        class Ro {
          constructor(e) {
            (this.codeEditor = e),
              (this.domNode = document.createElement('div')),
              this.codeEditor.addOverlayWidget(this);
          }
          getId() {
            return Ro.ID;
          }
          getDomNode() {
            return this.domNode;
          }
          getPosition() {
            return { preference: 2 };
          }
          dispose() {
            this.codeEditor.removeOverlayWidget(this);
          }
        }
        (Ro.ID = 'editor.contrib.quickInputWidget'), (0, Ps._K)(Ao.ID, Ao);
        var Po,
          Fo = i(37280);
        !(function (e) {
          const t = new Zr.y();
          class i {
            constructor(e, t) {
              (this._serviceId = e), (this._factory = t), (this._value = null);
            }
            get id() {
              return this._serviceId;
            }
            get(e) {
              if (!this._value) {
                if (
                  (e && (this._value = e[this._serviceId.toString()]),
                  this._value || (this._value = this._factory(e)),
                  !this._value)
                )
                  throw new Error(
                    'Service ' + this._serviceId + ' is missing!'
                  );
                t.set(this._serviceId, this._value);
              }
              return this._value;
            }
          }
          e.LazyStaticService = i;
          let n = [];
          function r(e, t) {
            let r = new i(e, t);
            return n.push(r), r;
          }
          (e.init = function (e) {
            let t = new Zr.y();
            for (const [e, i] of (0, _s.d)()) t.set(e, i);
            for (let i in e) e.hasOwnProperty(i) && t.set((0, Ui.yh)(i), e[i]);
            n.forEach((i) => t.set(i.id, i.get(e)));
            let i = new Qr(t, !0);
            return t.set(Ui.TG, i), [t, i];
          }),
            (e.instantiationService = r(Ui.TG, () => new Qr(t, !0)));
          const s = new Di();
          (e.configurationService = r(qt.Ui, () => s)),
            (e.resourceConfigurationService = r(ot.V, () => new Ni(s))),
            (e.resourcePropertiesService = r(ot.y, () => new Ei(s))),
            (e.contextService = r(mi.ec, () => new Ii())),
            (e.labelService = r(es.e, () => new Ri())),
            (e.telemetryService = r(Hr.b, () => new Ti())),
            (e.dialogService = r($r.S, () => new Si())),
            (e.notificationService = r(pi.lT, () => new ki())),
            (e.markerService = r(is.lT, () => new os())),
            (e.modeService = r(sn.h, (e) => new wn())),
            (e.standaloneThemeService = r(Hi.Z, () => new rr())),
            (e.logService = r(at.VZ, () => new at.d8())),
            (e.undoRedoService = r(
              Cs.t,
              (t) =>
                new As(e.dialogService.get(t), e.notificationService.get(t))
            )),
            (e.modelService = r(
              st.q,
              (t) =>
                new Cn.BR(
                  e.configurationService.get(t),
                  e.resourcePropertiesService.get(t),
                  e.standaloneThemeService.get(t),
                  e.logService.get(t),
                  e.undoRedoService.get(t)
                )
            )),
            (e.markerDecorationsService = r(
              us.i,
              (t) => new ms(e.modelService.get(t), e.markerService.get(t))
            )),
            (e.codeEditorService = r(
              q.$,
              (t) => new An(e.standaloneThemeService.get(t))
            )),
            (e.editorProgressService = r(Zi.e, () => new Ci())),
            (e.storageService = r(as.Uy, () => new as.vm())),
            (e.storageSyncService = r(Fo.u, () => new Fo.i())),
            (e.editorWorkerService = r(
              fe.p,
              (t) =>
                new ht(
                  e.modelService.get(t),
                  e.resourceConfigurationService.get(t),
                  e.logService.get(t)
                )
            ));
        })(Po || (Po = {}));
        class Bo extends _e.JT {
          constructor(e, t) {
            super();
            const [i, n] = Po.init(t);
            (this._serviceCollection = i), (this._instantiationService = n);
            const r = this.get(qt.Ui),
              s = this.get(pi.lT),
              o = this.get(Hr.b),
              a = this.get(Ki.XE),
              l = this.get(at.VZ);
            let c = (e, i) => {
                let n = null;
                return (
                  t && (n = t[e.toString()]),
                  n || (n = i()),
                  this._serviceCollection.set(e, n),
                  n
                );
              },
              d = c(Vi.i6, () => this._register(new fr(r)));
            c(qi.F, () => new vs(d, r)), c(ts.Lw, () => new ts.XN(a));
            let h = c(ee.H, () => new xi(this._instantiationService)),
              u = c($i.d, () => this._register(new Li(d, h, o, s, l, e))),
              g = c(zr, () => new Pi(Po.codeEditorService.get(q.$), e));
            c(So.eJ, () => new Oo(n, Po.codeEditorService.get(q.$)));
            let f = c(zi.u, () => this._register(new Ur(g)));
            c(Gi.p, () => new ws()),
              c(zi.i, () => {
                const e = new Vr(o, s, f, u, a);
                return e.configure({ blockMouse: !1 }), this._register(e);
              }),
              c(ji.co, () => new ds(h)),
              c(Ut.vu, () => new Ai(Po.modelService.get(st.q)));
          }
          get(e) {
            let t = this._serviceCollection.get(e);
            if (!t) throw new Error('Missing service ' + e);
            return t;
          }
          set(e, t) {
            this._serviceCollection.set(e, t);
          }
          has(e) {
            return this._serviceCollection.has(e);
          }
        }
        var Wo = i(89052);
        function Yo(e, t, i) {
          let n = new Bo(e, t),
            r = null;
          n.has(pe.S) || ((r = new wi(Po.modelService.get())), n.set(pe.S, r)),
            n.has(te.v4) || n.set(te.v4, new ae(n.get(q.$), n.get(ee.H)));
          let s = i(n);
          return r && r.setEditor(s), s;
        }
        function Ho(e, t, i) {
          return Po.modelService.get().createModel(e, t, i);
        }
        function jo(e, t) {
          return 'boolean' == typeof e ? e : t;
        }
        function Vo(e, t) {
          return 'string' == typeof e ? e : t;
        }
        function zo(e, t = !1) {
          t &&
            (e = e.map(function (e) {
              return e.toLowerCase();
            }));
          const i = (function (e) {
            const t = {};
            for (const i of e) t[i] = !0;
            return t;
          })(e);
          return t
            ? function (e) {
                return (
                  void 0 !== i[e.toLowerCase()] &&
                  i.hasOwnProperty(e.toLowerCase())
                );
              }
            : function (e) {
                return void 0 !== i[e] && i.hasOwnProperty(e);
              };
        }
        function Uo(e, t) {
          let i = 0;
          for (; t.indexOf('@') >= 0 && i < 5; )
            i++,
              (t = t.replace(/@(\w+)/g, function (i, n) {
                let r = '';
                if ('string' == typeof e[n]) r = e[n];
                else {
                  if (!(e[n] && e[n] instanceof RegExp))
                    throw void 0 === e[n]
                      ? Mt(
                          e,
                          "language definition does not contain attribute '" +
                            n +
                            "', used at: " +
                            t
                        )
                      : Mt(
                          e,
                          "attribute reference '" +
                            n +
                            "' must be a string, used at: " +
                            t
                        );
                  r = e[n].source;
                }
                return kt(r) ? '' : '(?:' + r + ')';
              }));
          let n = (e.ignoreCase ? 'i' : '') + (e.unicode ? 'u' : '');
          return new RegExp(t, n);
        }
        function $o(e, t, i, n) {
          let r = -1,
            s = i,
            o = i.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);
          o && (o[3] && ((r = parseInt(o[3])), o[2] && (r += 100)), (s = o[4]));
          let a,
            l = '~',
            c = s;
          if (
            (s && 0 !== s.length
              ? /^\w*$/.test(c)
                ? (l = '==')
                : ((o = s.match(/^(@|!@|~|!~|==|!=)(.*)$/)),
                  o && ((l = o[1]), (c = o[2])))
              : ((l = '!='), (c = '')),
            ('~' !== l && '!~' !== l) || !/^(\w|\|)*$/.test(c))
          )
            if ('@' === l || '!@' === l) {
              let i = e[c];
              if (!i)
                throw Mt(
                  e,
                  "the @ match target '" + c + "' is not defined, in rule: " + t
                );
              if (
                !(function (e, t) {
                  if (!t) return !1;
                  if (!Array.isArray(t)) return !1;
                  for (const e of t) if ('string' != typeof e) return !1;
                  return !0;
                })(0, i)
              )
                throw Mt(
                  e,
                  "the @ match target '" +
                    c +
                    "' must be an array of strings, in rule: " +
                    t
                );
              let n = zo(i, e.ignoreCase);
              a = function (e) {
                return '@' === l ? n(e) : !n(e);
              };
            } else if ('~' === l || '!~' === l)
              if (c.indexOf('$') < 0) {
                let t = Uo(e, '^' + c + '$');
                a = function (e) {
                  return '~' === l ? t.test(e) : !t.test(e);
                };
              } else
                a = function (t, i, n, r) {
                  return Uo(e, '^' + Dt(e, c, i, n, r) + '$').test(t);
                };
            else if (c.indexOf('$') < 0) {
              let t = xt(e, c);
              a = function (e) {
                return '==' === l ? e === t : e !== t;
              };
            } else {
              let t = xt(e, c);
              a = function (i, n, r, s, o) {
                let a = Dt(e, t, n, r, s);
                return '==' === l ? i === a : i !== a;
              };
            }
          else {
            let t = zo(c.split('|'), e.ignoreCase);
            a = function (e) {
              return '~' === l ? t(e) : !t(e);
            };
          }
          return -1 === r
            ? {
                name: i,
                value: n,
                test: function (e, t, i, n) {
                  return a(e, e, t, i, n);
                },
              }
            : {
                name: i,
                value: n,
                test: function (e, t, i, n) {
                  let s = (function (e, t, i, n) {
                    if (n < 0) return e;
                    if (n < t.length) return t[n];
                    if (n >= 100) {
                      n -= 100;
                      let e = i.split('.');
                      if ((e.unshift(i), n < e.length)) return e[n];
                    }
                    return null;
                  })(e, t, i, r);
                  return a(s || '', e, t, i, n);
                },
              };
        }
        function Ko(e, t, i) {
          if (i) {
            if ('string' == typeof i) return i;
            if (i.token || '' === i.token) {
              if ('string' != typeof i.token)
                throw Mt(
                  e,
                  "a 'token' attribute must be of type string, in rule: " + t
                );
              {
                let n = { token: i.token };
                if (
                  (i.token.indexOf('$') >= 0 && (n.tokenSubst = !0),
                  'string' == typeof i.bracket)
                )
                  if ('@open' === i.bracket) n.bracket = 1;
                  else {
                    if ('@close' !== i.bracket)
                      throw Mt(
                        e,
                        "a 'bracket' attribute must be either '@open' or '@close', in rule: " +
                          t
                      );
                    n.bracket = -1;
                  }
                if (i.next) {
                  if ('string' != typeof i.next)
                    throw Mt(
                      e,
                      'the next state must be a string value in rule: ' + t
                    );
                  {
                    let r = i.next;
                    if (
                      !/^(@pop|@push|@popall)$/.test(r) &&
                      ('@' === r[0] && (r = r.substr(1)),
                      r.indexOf('$') < 0 &&
                        !(function (e, t) {
                          let i = t;
                          for (; i && i.length > 0; ) {
                            if (e.stateNames[i]) return !0;
                            const t = i.lastIndexOf('.');
                            i = t < 0 ? null : i.substr(0, t);
                          }
                          return !1;
                        })(e, Dt(e, r, '', [], '')))
                    )
                      throw Mt(
                        e,
                        "the next state '" +
                          i.next +
                          "' is not defined in rule: " +
                          t
                      );
                    n.next = r;
                  }
                }
                return (
                  'number' == typeof i.goBack && (n.goBack = i.goBack),
                  'string' == typeof i.switchTo && (n.switchTo = i.switchTo),
                  'string' == typeof i.log && (n.log = i.log),
                  'string' == typeof i.nextEmbedded &&
                    ((n.nextEmbedded = i.nextEmbedded), (e.usesEmbedded = !0)),
                  n
                );
              }
            }
            if (Array.isArray(i)) {
              let n = [];
              for (let r = 0, s = i.length; r < s; r++) n[r] = Ko(e, t, i[r]);
              return { group: n };
            }
            if (i.cases) {
              let n = [];
              for (let r in i.cases)
                if (i.cases.hasOwnProperty(r)) {
                  const s = Ko(e, t, i.cases[r]);
                  '@default' === r || '@' === r || '' === r
                    ? n.push({ test: void 0, value: s, name: r })
                    : '@eos' === r
                    ? n.push({
                        test: function (e, t, i, n) {
                          return n;
                        },
                        value: s,
                        name: r,
                      })
                    : n.push($o(e, t, r, s));
                }
              const r = e.defaultToken;
              return {
                test: function (e, t, i, s) {
                  for (const r of n)
                    if (!r.test || r.test(e, t, i, s)) return r.value;
                  return r;
                },
              };
            }
            throw Mt(
              e,
              "an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: " +
                t
            );
          }
          return { token: '' };
        }
        class qo {
          constructor(e) {
            (this.regex = new RegExp('')),
              (this.action = { token: '' }),
              (this.matchOnlyAtLineStart = !1),
              (this.name = ''),
              (this.name = e);
          }
          setRegex(e, t) {
            let i;
            if ('string' == typeof t) i = t;
            else {
              if (!(t instanceof RegExp))
                throw Mt(
                  e,
                  'rules must start with a match string or regular expression: ' +
                    this.name
                );
              i = t.source;
            }
            (this.matchOnlyAtLineStart = i.length > 0 && '^' === i[0]),
              (this.name = this.name + ': ' + i),
              (this.regex = Uo(
                e,
                '^(?:' + (this.matchOnlyAtLineStart ? i.substr(1) : i) + ')'
              ));
          }
          setAction(e, t) {
            this.action = Ko(e, this.name, t);
          }
        }
        class Go {
          constructor(e) {
            this._actual = e;
          }
          getInitialState() {
            return this._actual.getInitialState();
          }
          tokenize(e, t, i) {
            throw new Error('Not supported!');
          }
          tokenize2(e, t) {
            let i = this._actual.tokenizeEncoded(e, t);
            return new z.Hi(i.tokens, i.endState);
          }
        }
        class Zo {
          constructor(e, t, i) {
            (this._standaloneThemeService = e),
              (this._languageIdentifier = t),
              (this._actual = i);
          }
          getInitialState() {
            return this._actual.getInitialState();
          }
          _toClassicTokens(e, t, i) {
            let n = [],
              r = 0;
            for (let s = 0, o = e.length; s < o; s++) {
              const o = e[s];
              let a = o.startIndex;
              0 === s ? (a = 0) : a < r && (a = r),
                (n[s] = new z.WU(a + i, o.scopes, t)),
                (r = a);
            }
            return n;
          }
          tokenize(e, t, i) {
            let n,
              r = this._actual.tokenize(e, t),
              s = this._toClassicTokens(
                r.tokens,
                this._languageIdentifier.language,
                i
              );
            return (n = r.endState.equals(t) ? t : r.endState), new z.hG(s, n);
          }
          _toBinaryTokens(e, t) {
            const i = this._languageIdentifier.id,
              n = this._standaloneThemeService.getColorTheme().tokenTheme;
            let r = [],
              s = 0,
              o = 0;
            for (let a = 0, l = e.length; a < l; a++) {
              const l = e[a],
                c = n.match(i, l.scopes);
              if (s > 0 && r[s - 1] === c) continue;
              let d = l.startIndex;
              0 === a ? (d = 0) : d < o && (d = o),
                (r[s++] = d + t),
                (r[s++] = c),
                (o = d);
            }
            let a = new Uint32Array(s);
            for (let e = 0; e < s; e++) a[e] = r[e];
            return a;
          }
          tokenize2(e, t, i) {
            let n,
              r = this._actual.tokenize(e, t),
              s = this._toBinaryTokens(r.tokens, i);
            return (n = r.endState.equals(t) ? t : r.endState), new z.Hi(s, n);
          }
        }
        function Jo(e) {
          return e && 'function' == typeof e.then;
        }
        const Qo = self;
        (P.BH.wrappingIndent.defaultValue = 0),
          (P.BH.glyphMargin.defaultValue = !1),
          (P.BH.autoIndent.defaultValue = 3),
          (P.BH.overviewRulerLanes.defaultValue = 2);
        const Xo = $();
        (Xo.editor = {
          create: function (e, t, i) {
            return Yo(
              e,
              i || {},
              (i) =>
                new nn(
                  e,
                  t,
                  i,
                  i.get(Ui.TG),
                  i.get(q.$),
                  i.get(ee.H),
                  i.get(Vi.i6),
                  i.get($i.d),
                  i.get(zi.u),
                  i.get(Hi.Z),
                  i.get(pi.lT),
                  i.get(qt.Ui),
                  i.get(qi.F)
                )
            );
          },
          onDidCreateEditor: function (e) {
            return Po.codeEditorService.get().onCodeEditorAdd((t) => {
              e(t);
            });
          },
          createDiffEditor: function (e, t, i) {
            return Yo(
              e,
              i || {},
              (i) =>
                new rn(
                  e,
                  t,
                  i,
                  i.get(Ui.TG),
                  i.get(Vi.i6),
                  i.get($i.d),
                  i.get(zi.u),
                  i.get(fe.p),
                  i.get(q.$),
                  i.get(Hi.Z),
                  i.get(pi.lT),
                  i.get(qt.Ui),
                  i.get(zi.i),
                  i.get(Zi.e),
                  i.get(Gi.p)
                )
            );
          },
          createDiffNavigator: function (e, t) {
            return new le.F(e, t);
          },
          createModel: function (e, t, i) {
            if (((e = e || ''), !t)) {
              let t = e.indexOf('\n'),
                n = e;
              return (
                -1 !== t && (n = e.substring(0, t)),
                Ho(
                  e,
                  Po.modeService
                    .get()
                    .createByFilepathOrFirstLine(i || null, n),
                  i
                )
              );
            }
            return Ho(e, Po.modeService.get().create(t), i);
          },
          setModelLanguage: function (e, t) {
            Po.modelService.get().setMode(e, Po.modeService.get().create(t));
          },
          setModelMarkers: function (e, t, i) {
            e && Po.markerService.get().changeOne(t, e.uri, i);
          },
          getModelMarkers: function (e) {
            return Po.markerService.get().read(e);
          },
          getModels: function () {
            return Po.modelService.get().getModels();
          },
          getModel: function (e) {
            return Po.modelService.get().getModel(e);
          },
          onDidCreateModel: function (e) {
            return Po.modelService.get().onModelAdded(e);
          },
          onWillDisposeModel: function (e) {
            return Po.modelService.get().onModelRemoved(e);
          },
          onDidChangeModelLanguage: function (e) {
            return Po.modelService.get().onModelModeChanged((t) => {
              e({ model: t.model, oldLanguage: t.oldModeId });
            });
          },
          createWebWorker: function (e) {
            return (function (e, t) {
              return new bt(e, t);
            })(Po.modelService.get(), e);
          },
          colorizeElement: function (e, t) {
            const i = Po.standaloneThemeService.get();
            return (
              i.registerEditorContainer(e),
              Wt.colorizeElement(i, Po.modeService.get(), e, t)
            );
          },
          colorize: function (e, t, i) {
            return (
              Po.standaloneThemeService
                .get()
                .registerEditorContainer(document.body),
              Wt.colorize(Po.modeService.get(), e, t, i)
            );
          },
          colorizeModelLine: function (e, t, i = 4) {
            return (
              Po.standaloneThemeService
                .get()
                .registerEditorContainer(document.body),
              Wt.colorizeModelLine(e, t, i)
            );
          },
          tokenize: function (e, t) {
            Po.modeService.get().triggerMode(t);
            let i =
              ((n = t),
              ue.RW.get(n) || {
                getInitialState: () => ge.nO,
                tokenize: (e, t, i) => (0, ge.Ri)(n, e, t, i),
              });
            var n;
            let r = e.split(/\r\n|\r|\n/),
              s = [],
              o = i.getInitialState();
            for (let e = 0, t = r.length; e < t; e++) {
              let t = r[e],
                n = i.tokenize(t, o, 0);
              (s[e] = n.tokens), (o = n.endState);
            }
            return s;
          },
          defineTheme: function (e, t) {
            Po.standaloneThemeService.get().defineTheme(e, t);
          },
          setTheme: function (e) {
            Po.standaloneThemeService.get().setTheme(e);
          },
          remeasureFonts: function () {
            (0, Wo.P)();
          },
          AccessibilitySupport: n,
          ContentWidgetPositionPreference: l,
          CursorChangeReason: c,
          DefaultEndOfLine: d,
          EditorAutoIndentStrategy: u,
          EditorOption: g,
          EndOfLinePreference: f,
          EndOfLineSequence: p,
          MinimapPosition: y,
          MouseTargetType: w,
          OverlayWidgetPositionPreference: C,
          OverviewRulerLane: S,
          RenderLineNumbersType: k,
          RenderMinimap: x,
          ScrollbarVisibility: M,
          ScrollType: L,
          TextEditorCursorBlinkingStyle: I,
          TextEditorCursorStyle: O,
          TrackedRangeStickiness: A,
          WrappingIndent: R,
          ConfigurationChangedEvent: P.Bb,
          BareFontInfo: ce.E,
          FontInfo: ce.p,
          TextModelResolvedOptions: he.dJ,
          FindMatch: he.tk,
          EditorType: de.g,
          EditorOptions: P.BH,
        }),
          (Xo.languages = {
            register: function (e) {
              mn.dQ.registerLanguage(e);
            },
            getLanguages: function () {
              let e = [];
              return (e = e.concat(mn.dQ.getLanguages())), e;
            },
            onLanguage: function (e, t) {
              let i = Po.modeService.get().onDidCreateMode((n) => {
                n.getId() === e && (i.dispose(), t());
              });
              return i;
            },
            getEncodedLanguageId: function (e) {
              let t = Po.modeService.get().getLanguageIdentifier(e);
              return t ? t.id : 0;
            },
            setLanguageConfiguration: function (e, t) {
              let i = Po.modeService.get().getLanguageIdentifier(e);
              if (!i)
                throw new Error(
                  `Cannot set configuration for unknown language ${e}`
                );
              return Me.zu.register(i, t);
            },
            setTokensProvider: function (e, t) {
              let i = Po.modeService.get().getLanguageIdentifier(e);
              if (!i)
                throw new Error(
                  `Cannot set tokens provider for unknown language ${e}`
                );
              const n = (e) =>
                (function (e) {
                  return 'tokenizeEncoded' in e;
                })(e)
                  ? new Go(e)
                  : new Zo(Po.standaloneThemeService.get(), i, e);
              return Jo(t)
                ? ue.RW.registerPromise(
                    e,
                    t.then((e) => n(e))
                  )
                : ue.RW.register(e, n(t));
            },
            setMonarchTokensProvider: function (e, t) {
              const i = (t) =>
                (function (e, t, i, n) {
                  return new Ft(e, t, i, n);
                })(
                  Po.modeService.get(),
                  Po.standaloneThemeService.get(),
                  e,
                  (function (e, t) {
                    if (!t || 'object' != typeof t)
                      throw new Error(
                        'Monarch: expecting a language definition object'
                      );
                    let i = {};
                    (i.languageId = e),
                      (i.noThrow = !1),
                      (i.maxStack = 100),
                      (i.start = 'string' == typeof t.start ? t.start : null),
                      (i.ignoreCase = jo(t.ignoreCase, !1)),
                      (i.unicode = jo(t.unicode, !1)),
                      (i.tokenPostfix = Vo(t.tokenPostfix, '.' + i.languageId)),
                      (i.defaultToken = Vo(t.defaultToken, 'source')),
                      (i.usesEmbedded = !1);
                    let n = t;
                    function r(e, s, o) {
                      for (const a of o) {
                        let o = a.include;
                        if (o) {
                          if ('string' != typeof o)
                            throw Mt(
                              i,
                              "an 'include' attribute must be a string at: " + e
                            );
                          if (
                            ('@' === o[0] && (o = o.substr(1)), !t.tokenizer[o])
                          )
                            throw Mt(
                              i,
                              "include target '" +
                                o +
                                "' is not defined at: " +
                                e
                            );
                          r(e + '.' + o, s, t.tokenizer[o]);
                        } else {
                          const t = new qo(e);
                          if (
                            Array.isArray(a) &&
                            a.length >= 1 &&
                            a.length <= 3
                          )
                            if ((t.setRegex(n, a[0]), a.length >= 3))
                              if ('string' == typeof a[1])
                                t.setAction(n, { token: a[1], next: a[2] });
                              else {
                                if ('object' != typeof a[1])
                                  throw Mt(
                                    i,
                                    'a next state as the last element of a rule can only be given if the action is either an object or a string, at: ' +
                                      e
                                  );
                                {
                                  const e = a[1];
                                  (e.next = a[2]), t.setAction(n, e);
                                }
                              }
                            else t.setAction(n, a[1]);
                          else {
                            if (!a.regex)
                              throw Mt(
                                i,
                                "a rule must either be an array, or an object with a 'regex' or 'include' field at: " +
                                  e
                              );
                            a.name &&
                              'string' == typeof a.name &&
                              (t.name = a.name),
                              a.matchOnlyAtStart &&
                                (t.matchOnlyAtLineStart = jo(
                                  a.matchOnlyAtLineStart,
                                  !1
                                )),
                              t.setRegex(n, a.regex),
                              t.setAction(n, a.action);
                          }
                          s.push(t);
                        }
                      }
                    }
                    if (
                      ((n.languageId = e),
                      (n.ignoreCase = i.ignoreCase),
                      (n.unicode = i.unicode),
                      (n.noThrow = i.noThrow),
                      (n.usesEmbedded = i.usesEmbedded),
                      (n.stateNames = t.tokenizer),
                      (n.defaultToken = i.defaultToken),
                      !t.tokenizer || 'object' != typeof t.tokenizer)
                    )
                      throw Mt(
                        i,
                        "a language definition must define the 'tokenizer' attribute as an object"
                      );
                    i.tokenizer = [];
                    for (let e in t.tokenizer)
                      if (t.tokenizer.hasOwnProperty(e)) {
                        i.start || (i.start = e);
                        const n = t.tokenizer[e];
                        (i.tokenizer[e] = new Array()),
                          r('tokenizer.' + e, i.tokenizer[e], n);
                      }
                    if (((i.usesEmbedded = n.usesEmbedded), t.brackets)) {
                      if (!Array.isArray(t.brackets))
                        throw Mt(
                          i,
                          "the 'brackets' attribute must be defined as an array"
                        );
                    } else
                      t.brackets = [
                        { open: '{', close: '}', token: 'delimiter.curly' },
                        { open: '[', close: ']', token: 'delimiter.square' },
                        {
                          open: '(',
                          close: ')',
                          token: 'delimiter.parenthesis',
                        },
                        { open: '<', close: '>', token: 'delimiter.angle' },
                      ];
                    let s = [];
                    for (let e of t.brackets) {
                      let t = e;
                      if (
                        (t &&
                          Array.isArray(t) &&
                          3 === t.length &&
                          (t = { token: t[2], open: t[0], close: t[1] }),
                        t.open === t.close)
                      )
                        throw Mt(
                          i,
                          "open and close brackets in a 'brackets' attribute must be different: " +
                            t.open +
                            "\n hint: use the 'bracket' attribute if matching on equal brackets is required."
                        );
                      if (
                        'string' != typeof t.open ||
                        'string' != typeof t.token ||
                        'string' != typeof t.close
                      )
                        throw Mt(
                          i,
                          "every element in the 'brackets' array must be a '{open,close,token}' object or array"
                        );
                      s.push({
                        token: t.token + i.tokenPostfix,
                        open: xt(i, t.open),
                        close: xt(i, t.close),
                      });
                    }
                    return (i.brackets = s), (i.noThrow = !0), i;
                  })(e, t)
                );
              return Jo(t)
                ? ue.RW.registerPromise(
                    e,
                    t.then((e) => i(e))
                  )
                : ue.RW.register(e, i(t));
            },
            registerReferenceProvider: function (e, t) {
              return ue.FL.register(e, t);
            },
            registerRenameProvider: function (e, t) {
              return ue.G0.register(e, t);
            },
            registerCompletionItemProvider: function (e, t) {
              return ue.KZ.register(e, t);
            },
            registerSignatureHelpProvider: function (e, t) {
              return ue.nD.register(e, t);
            },
            registerHoverProvider: function (e, t) {
              return ue.xp.register(e, {
                provideHover: (e, i, n) => {
                  let r = e.getWordAtPosition(i);
                  return Promise.resolve(t.provideHover(e, i, n)).then((e) => {
                    if (e)
                      return (
                        !e.range &&
                          r &&
                          (e.range = new j.e(
                            i.lineNumber,
                            r.startColumn,
                            i.lineNumber,
                            r.endColumn
                          )),
                        e.range ||
                          (e.range = new j.e(
                            i.lineNumber,
                            i.column,
                            i.lineNumber,
                            i.column
                          )),
                        e
                      );
                  });
                },
              });
            },
            registerDocumentSymbolProvider: function (e, t) {
              return ue.vJ.register(e, t);
            },
            registerDocumentHighlightProvider: function (e, t) {
              return ue.vH.register(e, t);
            },
            registerOnTypeRenameProvider: function (e, t) {
              return ue.jC.register(e, t);
            },
            registerDefinitionProvider: function (e, t) {
              return ue.Ct.register(e, t);
            },
            registerImplementationProvider: function (e, t) {
              return ue.vI.register(e, t);
            },
            registerTypeDefinitionProvider: function (e, t) {
              return ue.tA.register(e, t);
            },
            registerCodeLensProvider: function (e, t) {
              return ue.He.register(e, t);
            },
            registerCodeActionProvider: function (e, t) {
              return ue.H9.register(e, {
                provideCodeActions: (e, i, n, r) => {
                  let s = Po.markerService
                    .get()
                    .read({ resource: e.uri })
                    .filter((e) => j.e.areIntersectingOrTouching(e, i));
                  return t.provideCodeActions(
                    e,
                    i,
                    { markers: s, only: n.only },
                    r
                  );
                },
              });
            },
            registerDocumentFormattingEditProvider: function (e, t) {
              return ue.Az.register(e, t);
            },
            registerDocumentRangeFormattingEditProvider: function (e, t) {
              return ue.vN.register(e, t);
            },
            registerOnTypeFormattingEditProvider: function (e, t) {
              return ue.ln.register(e, t);
            },
            registerLinkProvider: function (e, t) {
              return ue.pM.register(e, t);
            },
            registerColorProvider: function (e, t) {
              return ue.OH.register(e, t);
            },
            registerFoldingRangeProvider: function (e, t) {
              return ue.aC.register(e, t);
            },
            registerDeclarationProvider: function (e, t) {
              return ue.RN.register(e, t);
            },
            registerSelectionRangeProvider: function (e, t) {
              return ue.AC.register(e, t);
            },
            registerDocumentSemanticTokensProvider: function (e, t) {
              return ue.wT.register(e, t);
            },
            registerDocumentRangeSemanticTokensProvider: function (e, t) {
              return ue.K7.register(e, t);
            },
            DocumentHighlightKind: h,
            CompletionItemKind: s,
            CompletionItemTag: o,
            CompletionItemInsertTextRule: r,
            SymbolKind: E,
            SymbolTag: T,
            IndentAction: m,
            CompletionTriggerKind: a,
            SignatureHelpTriggerKind: N,
            FoldingRangeKind: ue.AD,
          });
        const ea = Xo.CancellationTokenSource,
          ta = Xo.Emitter,
          ia = Xo.KeyCode,
          na = Xo.KeyMod,
          ra = Xo.Position,
          sa = Xo.Range,
          oa = Xo.Selection,
          aa = Xo.SelectionDirection,
          la = Xo.MarkerSeverity,
          ca = Xo.MarkerTag,
          da = Xo.Uri,
          ha = Xo.Token,
          ua = Xo.editor,
          ga = Xo.languages;
        (Qo.monaco = Xo),
          void 0 !== Qo.require &&
            'function' == typeof Qo.require.config &&
            Qo.require.config({
              ignoreDuplicateModules: [
                'vscode-languageserver-types',
                'vscode-languageserver-types/main',
                'vscode-languageserver-textdocument',
                'vscode-languageserver-textdocument/main',
                'vscode-nls',
                'vscode-nls/vscode-nls',
                'jsonc-parser',
                'jsonc-parser/main',
                'vscode-uri',
                'vscode-uri/index',
                'vs/basic-languages/typescript/typescript',
              ],
            });
      },
      98368: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            CancellationTokenSource: () => l.CancellationTokenSource,
            Emitter: () => l.Emitter,
            KeyCode: () => l.KeyCode,
            KeyMod: () => l.KeyMod,
            MarkerSeverity: () => l.MarkerSeverity,
            MarkerTag: () => l.MarkerTag,
            Position: () => l.Position,
            Range: () => l.Range,
            Selection: () => l.Selection,
            SelectionDirection: () => l.SelectionDirection,
            Token: () => l.Token,
            Uri: () => l.Uri,
            __esModule: () => l.__esModule,
            editor: () => l.editor,
            languages: () => l.languages,
          });
        var n,
          r,
          s,
          o,
          a,
          l = i(50158),
          c = i(91429);
        !(function (e) {
          (e[(e.None = 0)] = 'None'),
            (e[(e.CommonJS = 1)] = 'CommonJS'),
            (e[(e.AMD = 2)] = 'AMD'),
            (e[(e.UMD = 3)] = 'UMD'),
            (e[(e.System = 4)] = 'System'),
            (e[(e.ES2015 = 5)] = 'ES2015'),
            (e[(e.ESNext = 99)] = 'ESNext');
        })(n || (n = {})),
          (function (e) {
            (e[(e.None = 0)] = 'None'),
              (e[(e.Preserve = 1)] = 'Preserve'),
              (e[(e.React = 2)] = 'React'),
              (e[(e.ReactNative = 3)] = 'ReactNative');
          })(r || (r = {})),
          (function (e) {
            (e[(e.CarriageReturnLineFeed = 0)] = 'CarriageReturnLineFeed'),
              (e[(e.LineFeed = 1)] = 'LineFeed');
          })(s || (s = {})),
          (function (e) {
            (e[(e.ES3 = 0)] = 'ES3'),
              (e[(e.ES5 = 1)] = 'ES5'),
              (e[(e.ES2015 = 2)] = 'ES2015'),
              (e[(e.ES2016 = 3)] = 'ES2016'),
              (e[(e.ES2017 = 4)] = 'ES2017'),
              (e[(e.ES2018 = 5)] = 'ES2018'),
              (e[(e.ES2019 = 6)] = 'ES2019'),
              (e[(e.ES2020 = 7)] = 'ES2020'),
              (e[(e.ESNext = 99)] = 'ESNext'),
              (e[(e.JSON = 100)] = 'JSON'),
              (e[(e.Latest = 99)] = 'Latest');
          })(o || (o = {})),
          (function (e) {
            (e[(e.Classic = 1)] = 'Classic'), (e[(e.NodeJs = 2)] = 'NodeJs');
          })(a || (a = {}));
        var d = (function () {
            function e(e, t, i) {
              (this._onDidChange = new c.Q5()),
                (this._onDidExtraLibsChange = new c.Q5()),
                (this._extraLibs = Object.create(null)),
                (this._removedExtraLibs = Object.create(null)),
                (this._eagerModelSync = !1),
                this.setCompilerOptions(e),
                this.setDiagnosticsOptions(t),
                this.setWorkerOptions(i),
                (this._onDidExtraLibsChangeTimeout = -1);
            }
            return (
              Object.defineProperty(e.prototype, 'onDidChange', {
                get: function () {
                  return this._onDidChange.event;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'onDidExtraLibsChange', {
                get: function () {
                  return this._onDidExtraLibsChange.event;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'workerOptions', {
                get: function () {
                  return this._workerOptions;
                },
                enumerable: !1,
                configurable: !0,
              }),
              (e.prototype.getExtraLibs = function () {
                return this._extraLibs;
              }),
              (e.prototype.addExtraLib = function (e, t) {
                var i,
                  n = this;
                if (
                  ((i =
                    void 0 === t
                      ? 'ts:extralib-' +
                        Math.random().toString(36).substring(2, 15)
                      : t),
                  this._extraLibs[i] && this._extraLibs[i].content === e)
                )
                  return { dispose: function () {} };
                var r = 1;
                return (
                  this._removedExtraLibs[i] &&
                    (r = this._removedExtraLibs[i] + 1),
                  this._extraLibs[i] && (r = this._extraLibs[i].version + 1),
                  (this._extraLibs[i] = { content: e, version: r }),
                  this._fireOnDidExtraLibsChangeSoon(),
                  {
                    dispose: function () {
                      var e = n._extraLibs[i];
                      e &&
                        e.version === r &&
                        (delete n._extraLibs[i],
                        (n._removedExtraLibs[i] = r),
                        n._fireOnDidExtraLibsChangeSoon());
                    },
                  }
                );
              }),
              (e.prototype.setExtraLibs = function (e) {
                for (var t in this._extraLibs)
                  this._removedExtraLibs[t] = this._extraLibs[t].version;
                if (
                  ((this._extraLibs = Object.create(null)), e && e.length > 0)
                )
                  for (var i = 0, n = e; i < n.length; i++) {
                    var r = n[i],
                      s =
                        ((t =
                          r.filePath ||
                          'ts:extralib-' +
                            Math.random().toString(36).substring(2, 15)),
                        r.content),
                      o = 1;
                    this._removedExtraLibs[t] &&
                      (o = this._removedExtraLibs[t] + 1),
                      (this._extraLibs[t] = { content: s, version: o });
                  }
                this._fireOnDidExtraLibsChangeSoon();
              }),
              (e.prototype._fireOnDidExtraLibsChangeSoon = function () {
                var e = this;
                -1 === this._onDidExtraLibsChangeTimeout &&
                  (this._onDidExtraLibsChangeTimeout = setTimeout(function () {
                    (e._onDidExtraLibsChangeTimeout = -1),
                      e._onDidExtraLibsChange.fire(void 0);
                  }, 0));
              }),
              (e.prototype.getCompilerOptions = function () {
                return this._compilerOptions;
              }),
              (e.prototype.setCompilerOptions = function (e) {
                (this._compilerOptions = e || Object.create(null)),
                  this._onDidChange.fire(void 0);
              }),
              (e.prototype.getDiagnosticsOptions = function () {
                return this._diagnosticsOptions;
              }),
              (e.prototype.setDiagnosticsOptions = function (e) {
                (this._diagnosticsOptions = e || Object.create(null)),
                  this._onDidChange.fire(void 0);
              }),
              (e.prototype.setWorkerOptions = function (e) {
                (this._workerOptions = e || Object.create(null)),
                  this._onDidChange.fire(void 0);
              }),
              (e.prototype.setMaximumWorkerIdleTime = function (e) {}),
              (e.prototype.setEagerModelSync = function (e) {
                this._eagerModelSync = e;
              }),
              (e.prototype.getEagerModelSync = function () {
                return this._eagerModelSync;
              }),
              e
            );
          })(),
          h = new d(
            { allowNonTsExtensions: !0, target: o.Latest },
            { noSemanticValidation: !1, noSyntaxValidation: !1 },
            {}
          ),
          u = new d(
            { allowNonTsExtensions: !0, allowJs: !0, target: o.Latest },
            { noSemanticValidation: !0, noSyntaxValidation: !1 },
            {}
          );
        function g() {
          return i.e(8183).then(i.bind(i, 68183));
        }
        (c.Mj.typescript = {
          ModuleKind: n,
          JsxEmit: r,
          NewLineKind: s,
          ScriptTarget: o,
          ModuleResolutionKind: a,
          typescriptVersion: '4.0.3',
          typescriptDefaults: h,
          javascriptDefaults: u,
          getTypeScriptWorker: function () {
            return g().then(function (e) {
              return e.getTypeScriptWorker();
            });
          },
          getJavaScriptWorker: function () {
            return g().then(function (e) {
              return e.getJavaScriptWorker();
            });
          },
        }),
          c.Mj.onLanguage('typescript', function () {
            return g().then(function (e) {
              return e.setupTypeScript(h);
            });
          }),
          c.Mj.onLanguage('javascript', function () {
            return g().then(function (e) {
              return e.setupJavaScript(u);
            });
          });
        var f = i(61460),
          p = (function () {
            function e(e, t, i) {
              (this._onDidChange = new f.Q5()),
                (this._languageId = e),
                this.setDiagnosticsOptions(t),
                this.setModeConfiguration(i);
            }
            return (
              Object.defineProperty(e.prototype, 'onDidChange', {
                get: function () {
                  return this._onDidChange.event;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'languageId', {
                get: function () {
                  return this._languageId;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'modeConfiguration', {
                get: function () {
                  return this._modeConfiguration;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'diagnosticsOptions', {
                get: function () {
                  return this._diagnosticsOptions;
                },
                enumerable: !1,
                configurable: !0,
              }),
              (e.prototype.setDiagnosticsOptions = function (e) {
                (this._diagnosticsOptions = e || Object.create(null)),
                  this._onDidChange.fire(this);
              }),
              (e.prototype.setModeConfiguration = function (e) {
                (this._modeConfiguration = e || Object.create(null)),
                  this._onDidChange.fire(this);
              }),
              e
            );
          })(),
          m = {
            validate: !0,
            lint: {
              compatibleVendorPrefixes: 'ignore',
              vendorPrefix: 'warning',
              duplicateProperties: 'warning',
              emptyRules: 'warning',
              importStatement: 'ignore',
              boxModel: 'ignore',
              universalSelector: 'ignore',
              zeroUnits: 'ignore',
              fontFaceProperties: 'warning',
              hexColorLength: 'error',
              argumentsInColorFunction: 'error',
              unknownProperties: 'warning',
              ieHack: 'ignore',
              unknownVendorSpecificProperties: 'ignore',
              propertyIgnoredDueToDisplay: 'warning',
              important: 'ignore',
              float: 'ignore',
              idSelector: 'ignore',
            },
          },
          _ = {
            completionItems: !0,
            hovers: !0,
            documentSymbols: !0,
            definitions: !0,
            references: !0,
            documentHighlights: !0,
            rename: !0,
            colors: !0,
            foldingRanges: !0,
            diagnostics: !0,
            selectionRanges: !0,
          },
          b = new p('css', m, _),
          v = new p('scss', m, _),
          y = new p('less', m, _);
        function w() {
          return i.e(6917).then(i.bind(i, 46917));
        }
        (f.Mj.css = { cssDefaults: b, lessDefaults: y, scssDefaults: v }),
          f.Mj.onLanguage('less', function () {
            w().then(function (e) {
              return e.setupMode(y);
            });
          }),
          f.Mj.onLanguage('scss', function () {
            w().then(function (e) {
              return e.setupMode(v);
            });
          }),
          f.Mj.onLanguage('css', function () {
            w().then(function (e) {
              return e.setupMode(b);
            });
          }),
          i(72323);
        var C = i(47650),
          S = (function () {
            function e(e, t, i) {
              (this._onDidChange = new C.Q5()),
                (this._languageId = e),
                this.setOptions(t),
                this.setModeConfiguration(i);
            }
            return (
              Object.defineProperty(e.prototype, 'onDidChange', {
                get: function () {
                  return this._onDidChange.event;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'languageId', {
                get: function () {
                  return this._languageId;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'options', {
                get: function () {
                  return this._options;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'modeConfiguration', {
                get: function () {
                  return this._modeConfiguration;
                },
                enumerable: !1,
                configurable: !0,
              }),
              (e.prototype.setOptions = function (e) {
                (this._options = e || Object.create(null)),
                  this._onDidChange.fire(this);
              }),
              (e.prototype.setModeConfiguration = function (e) {
                (this._modeConfiguration = e || Object.create(null)),
                  this._onDidChange.fire(this);
              }),
              e
            );
          })(),
          k = {
            tabSize: 4,
            insertSpaces: !1,
            wrapLineLength: 120,
            unformatted:
              'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',
            contentUnformatted: 'pre',
            indentInnerHtml: !1,
            preserveNewLines: !0,
            maxPreserveNewLines: null,
            indentHandlebars: !1,
            endWithNewline: !1,
            extraLiners: 'head, body, /html',
            wrapAttributes: 'auto',
          },
          x = { format: k, suggest: { html5: !0 } },
          L = { format: k, suggest: { html5: !0, razor: !0 } };
        function M(e) {
          return {
            completionItems: !0,
            hovers: !0,
            documentSymbols: !0,
            links: !0,
            documentHighlights: !0,
            rename: !0,
            colors: !0,
            foldingRanges: !0,
            selectionRanges: !0,
            diagnostics: e === D,
            documentFormattingEdits: e === D,
            documentRangeFormattingEdits: e === D,
          };
        }
        var D = 'html',
          N = 'handlebars',
          E = 'razor',
          T = new S(
            D,
            { format: k, suggest: { html5: !0, angular1: !0, ionic: !0 } },
            M(D)
          ),
          I = new S(N, x, M(N)),
          O = new S(E, L, M(E));
        function A() {
          return i.e(5470).then(i.bind(i, 65470));
        }
        (C.Mj.html = {
          htmlDefaults: T,
          razorDefaults: O,
          handlebarDefaults: I,
        }),
          C.Mj.onLanguage(D, function () {
            A().then(function (e) {
              return e.setupMode(T);
            });
          }),
          C.Mj.onLanguage(N, function () {
            A().then(function (e) {
              return e.setupMode(I);
            });
          }),
          C.Mj.onLanguage(E, function () {
            A().then(function (e) {
              return e.setupMode(O);
            });
          });
        var R = i(89587),
          P = {},
          F = {},
          B = (function () {
            function e(e) {
              var t = this;
              (this._languageId = e),
                (this._loadingTriggered = !1),
                (this._lazyLoadPromise = new Promise(function (e, i) {
                  (t._lazyLoadPromiseResolve = e),
                    (t._lazyLoadPromiseReject = i);
                }));
            }
            return (
              (e.getOrCreate = function (t) {
                return F[t] || (F[t] = new e(t)), F[t];
              }),
              (e.prototype.whenLoaded = function () {
                return this._lazyLoadPromise;
              }),
              (e.prototype.load = function () {
                var e = this;
                return (
                  this._loadingTriggered ||
                    ((this._loadingTriggered = !0),
                    P[this._languageId].loader().then(
                      function (t) {
                        return e._lazyLoadPromiseResolve(t);
                      },
                      function (t) {
                        return e._lazyLoadPromiseReject(t);
                      }
                    )),
                  this._lazyLoadPromise
                );
              }),
              e
            );
          })();
        function W(e) {
          var t = e.id;
          (P[t] = e), R.Mj.register(e);
          var i = B.getOrCreate(t);
          R.Mj.setMonarchTokensProvider(
            t,
            i.whenLoaded().then(function (e) {
              return e.language;
            })
          ),
            R.Mj.onLanguage(t, function () {
              i.load().then(function (e) {
                R.Mj.setLanguageConfiguration(t, e.conf);
              });
            });
        }
        W({
          id: 'abap',
          extensions: ['.abap'],
          aliases: ['abap', 'ABAP'],
          loader: function () {
            return i.e(848).then(i.bind(i, 40848));
          },
        }),
          W({
            id: 'apex',
            extensions: ['.cls'],
            aliases: ['Apex', 'apex'],
            mimetypes: ['text/x-apex-source', 'text/x-apex'],
            loader: function () {
              return i.e(4386).then(i.bind(i, 54386));
            },
          }),
          W({
            id: 'azcli',
            extensions: ['.azcli'],
            aliases: ['Azure CLI', 'azcli'],
            loader: function () {
              return i.e(1471).then(i.bind(i, 31471));
            },
          }),
          W({
            id: 'bat',
            extensions: ['.bat', '.cmd'],
            aliases: ['Batch', 'bat'],
            loader: function () {
              return i.e(4129).then(i.bind(i, 84129));
            },
          }),
          W({
            id: 'cameligo',
            extensions: ['.mligo'],
            aliases: ['Cameligo'],
            loader: function () {
              return i.e(1448).then(i.bind(i, 11448));
            },
          }),
          W({
            id: 'clojure',
            extensions: ['.clj', '.cljs', '.cljc', '.edn'],
            aliases: ['clojure', 'Clojure'],
            loader: function () {
              return i.e(3036).then(i.bind(i, 33036));
            },
          }),
          W({
            id: 'coffeescript',
            extensions: ['.coffee'],
            aliases: ['CoffeeScript', 'coffeescript', 'coffee'],
            mimetypes: ['text/x-coffeescript', 'text/coffeescript'],
            loader: function () {
              return i.e(1147).then(i.bind(i, 21147));
            },
          }),
          W({
            id: 'c',
            extensions: ['.c', '.h'],
            aliases: ['C', 'c'],
            loader: function () {
              return i.e(1960).then(i.bind(i, 71960));
            },
          }),
          W({
            id: 'cpp',
            extensions: ['.cpp', '.cc', '.cxx', '.hpp', '.hh', '.hxx'],
            aliases: ['C++', 'Cpp', 'cpp'],
            loader: function () {
              return i.e(1960).then(i.bind(i, 71960));
            },
          }),
          W({
            id: 'csharp',
            extensions: ['.cs', '.csx', '.cake'],
            aliases: ['C#', 'csharp'],
            loader: function () {
              return i.e(8719).then(i.bind(i, 18719));
            },
          }),
          W({
            id: 'csp',
            extensions: [],
            aliases: ['CSP', 'csp'],
            loader: function () {
              return i.e(8946).then(i.bind(i, 68946));
            },
          }),
          W({
            id: 'css',
            extensions: ['.css'],
            aliases: ['CSS', 'css'],
            mimetypes: ['text/css'],
            loader: function () {
              return i.e(2075).then(i.bind(i, 62075));
            },
          }),
          W({
            id: 'dart',
            extensions: ['.dart'],
            aliases: ['Dart', 'dart'],
            mimetypes: ['text/x-dart-source', 'text/x-dart'],
            loader: function () {
              return i.e(9343).then(i.bind(i, 39343));
            },
          }),
          W({
            id: 'dockerfile',
            extensions: ['.dockerfile'],
            filenames: ['Dockerfile'],
            aliases: ['Dockerfile'],
            loader: function () {
              return i.e(5849).then(i.bind(i, 25849));
            },
          }),
          W({
            id: 'fsharp',
            extensions: ['.fs', '.fsi', '.ml', '.mli', '.fsx', '.fsscript'],
            aliases: ['F#', 'FSharp', 'fsharp'],
            loader: function () {
              return i.e(6241).then(i.bind(i, 96241));
            },
          }),
          W({
            id: 'go',
            extensions: ['.go'],
            aliases: ['Go'],
            loader: function () {
              return i.e(249).then(i.bind(i, 80249));
            },
          }),
          W({
            id: 'graphql',
            extensions: ['.graphql', '.gql'],
            aliases: ['GraphQL', 'graphql', 'gql'],
            mimetypes: ['application/graphql'],
            loader: function () {
              return i.e(6489).then(i.bind(i, 66489));
            },
          }),
          W({
            id: 'handlebars',
            extensions: ['.handlebars', '.hbs'],
            aliases: ['Handlebars', 'handlebars'],
            mimetypes: ['text/x-handlebars-template'],
            loader: function () {
              return i.e(5703).then(i.bind(i, 15703));
            },
          }),
          W({
            id: 'hcl',
            extensions: ['.tf', '.tfvars', '.hcl'],
            aliases: ['Terraform', 'tf', 'HCL', 'hcl'],
            loader: function () {
              return i.e(3632).then(i.bind(i, 48534));
            },
          }),
          W({
            id: 'html',
            extensions: [
              '.html',
              '.htm',
              '.shtml',
              '.xhtml',
              '.mdoc',
              '.jsp',
              '.asp',
              '.aspx',
              '.jshtm',
            ],
            aliases: ['HTML', 'htm', 'html', 'xhtml'],
            mimetypes: [
              'text/html',
              'text/x-jshtm',
              'text/template',
              'text/ng-template',
            ],
            loader: function () {
              return i.e(2571).then(i.bind(i, 2571));
            },
          }),
          W({
            id: 'ini',
            extensions: ['.ini', '.properties', '.gitconfig'],
            filenames: [
              'config',
              '.gitattributes',
              '.gitconfig',
              '.editorconfig',
            ],
            aliases: ['Ini', 'ini'],
            loader: function () {
              return i.e(2798).then(i.bind(i, 52798));
            },
          }),
          W({
            id: 'java',
            extensions: ['.java', '.jav'],
            aliases: ['Java', 'java'],
            mimetypes: ['text/x-java-source', 'text/x-java'],
            loader: function () {
              return i.e(7043).then(i.bind(i, 17043));
            },
          }),
          W({
            id: 'javascript',
            extensions: ['.js', '.es6', '.jsx', '.mjs'],
            firstLine: '^#!.*\\bnode',
            filenames: ['jakefile'],
            aliases: ['JavaScript', 'javascript', 'js'],
            mimetypes: ['text/javascript'],
            loader: function () {
              return i.e(1134).then(i.bind(i, 41134));
            },
          }),
          W({
            id: 'julia',
            extensions: ['.jl'],
            aliases: ['julia', 'Julia'],
            loader: function () {
              return i.e(4946).then(i.bind(i, 34946));
            },
          }),
          W({
            id: 'kotlin',
            extensions: ['.kt'],
            aliases: ['Kotlin', 'kotlin'],
            mimetypes: ['text/x-kotlin-source', 'text/x-kotlin'],
            loader: function () {
              return i.e(4368).then(i.bind(i, 84368));
            },
          }),
          W({
            id: 'less',
            extensions: ['.less'],
            aliases: ['Less', 'less'],
            mimetypes: ['text/x-less', 'text/less'],
            loader: function () {
              return i.e(5593).then(i.bind(i, 35593));
            },
          }),
          W({
            id: 'lexon',
            extensions: ['.lex'],
            aliases: ['Lexon'],
            loader: function () {
              return i.e(4912).then(i.bind(i, 64912));
            },
          }),
          W({
            id: 'lua',
            extensions: ['.lua'],
            aliases: ['Lua', 'lua'],
            loader: function () {
              return i.e(911).then(i.bind(i, 20911));
            },
          }),
          W({
            id: 'markdown',
            extensions: [
              '.md',
              '.markdown',
              '.mdown',
              '.mkdn',
              '.mkd',
              '.mdwn',
              '.mdtxt',
              '.mdtext',
            ],
            aliases: ['Markdown', 'markdown'],
            loader: function () {
              return i.e(2954).then(i.bind(i, 42954));
            },
          }),
          W({
            id: 'mips',
            extensions: ['.s'],
            aliases: ['MIPS', 'MIPS-V'],
            mimetypes: ['text/x-mips', 'text/mips', 'text/plaintext'],
            loader: function () {
              return i.e(854).then(i.bind(i, 60854));
            },
          }),
          W({
            id: 'msdax',
            extensions: ['.dax', '.msdax'],
            aliases: ['DAX', 'MSDAX'],
            loader: function () {
              return i.e(9398).then(i.bind(i, 79398));
            },
          }),
          W({
            id: 'mysql',
            extensions: [],
            aliases: ['MySQL', 'mysql'],
            loader: function () {
              return i.e(1961).then(i.bind(i, 31961));
            },
          }),
          W({
            id: 'objective-c',
            extensions: ['.m'],
            aliases: ['Objective-C'],
            loader: function () {
              return i.e(9537).then(i.bind(i, 79537));
            },
          }),
          W({
            id: 'pascal',
            extensions: ['.pas', '.p', '.pp'],
            aliases: ['Pascal', 'pas'],
            mimetypes: ['text/x-pascal-source', 'text/x-pascal'],
            loader: function () {
              return i.e(6082).then(i.bind(i, 86082));
            },
          }),
          W({
            id: 'pascaligo',
            extensions: ['.ligo'],
            aliases: ['Pascaligo', 'ligo'],
            loader: function () {
              return i.e(8084).then(i.bind(i, 98084));
            },
          }),
          W({
            id: 'perl',
            extensions: ['.pl'],
            aliases: ['Perl', 'pl'],
            loader: function () {
              return i.e(8070).then(i.bind(i, 8070));
            },
          }),
          W({
            id: 'pgsql',
            extensions: [],
            aliases: ['PostgreSQL', 'postgres', 'pg', 'postgre'],
            loader: function () {
              return i.e(996).then(i.bind(i, 20996));
            },
          }),
          W({
            id: 'php',
            extensions: ['.php', '.php4', '.php5', '.phtml', '.ctp'],
            aliases: ['PHP', 'php'],
            mimetypes: ['application/x-php'],
            loader: function () {
              return i.e(7835).then(i.bind(i, 47835));
            },
          }),
          W({
            id: 'postiats',
            extensions: ['.dats', '.sats', '.hats'],
            aliases: ['ATS', 'ATS/Postiats'],
            loader: function () {
              return i.e(8180).then(i.bind(i, 48180));
            },
          }),
          W({
            id: 'powerquery',
            extensions: ['.pq', '.pqm'],
            aliases: ['PQ', 'M', 'Power Query', 'Power Query M'],
            loader: function () {
              return i.e(4407).then(i.bind(i, 94407));
            },
          }),
          W({
            id: 'powershell',
            extensions: ['.ps1', '.psm1', '.psd1'],
            aliases: ['PowerShell', 'powershell', 'ps', 'ps1'],
            loader: function () {
              return i.e(7562).then(i.bind(i, 37562));
            },
          }),
          W({
            id: 'pug',
            extensions: ['.jade', '.pug'],
            aliases: ['Pug', 'Jade', 'jade'],
            loader: function () {
              return i.e(2892).then(i.bind(i, 22892));
            },
          }),
          W({
            id: 'python',
            extensions: ['.py', '.rpy', '.pyw', '.cpy', '.gyp', '.gypi'],
            aliases: ['Python', 'py'],
            firstLine: '^#!/.*\\bpython[0-9.-]*\\b',
            loader: function () {
              return i.e(7287).then(i.bind(i, 37287));
            },
          }),
          W({
            id: 'r',
            extensions: ['.r', '.rhistory', '.rmd', '.rprofile', '.rt'],
            aliases: ['R', 'r'],
            loader: function () {
              return i.e(2140).then(i.bind(i, 22140));
            },
          }),
          W({
            id: 'razor',
            extensions: ['.cshtml'],
            aliases: ['Razor', 'razor'],
            mimetypes: ['text/x-cshtml'],
            loader: function () {
              return i.e(6424).then(i.bind(i, 76424));
            },
          }),
          W({
            id: 'redis',
            extensions: ['.redis'],
            aliases: ['redis'],
            loader: function () {
              return i.e(1259).then(i.bind(i, 91259));
            },
          }),
          W({
            id: 'redshift',
            extensions: [],
            aliases: ['Redshift', 'redshift'],
            loader: function () {
              return i.e(6449).then(i.bind(i, 56449));
            },
          }),
          W({
            id: 'restructuredtext',
            extensions: ['.rst'],
            aliases: ['reStructuredText', 'restructuredtext'],
            loader: function () {
              return i.e(1065).then(i.bind(i, 71065));
            },
          }),
          W({
            id: 'ruby',
            extensions: ['.rb', '.rbx', '.rjs', '.gemspec', '.pp'],
            filenames: ['rakefile', 'Gemfile'],
            aliases: ['Ruby', 'rb'],
            loader: function () {
              return i.e(9684).then(i.bind(i, 69684));
            },
          }),
          W({
            id: 'rust',
            extensions: ['.rs', '.rlib'],
            aliases: ['Rust', 'rust'],
            loader: function () {
              return i.e(8715).then(i.bind(i, 8715));
            },
          }),
          W({
            id: 'sb',
            extensions: ['.sb'],
            aliases: ['Small Basic', 'sb'],
            loader: function () {
              return i.e(5062).then(i.bind(i, 78));
            },
          }),
          W({
            id: 'scala',
            extensions: ['.scala', '.sc', '.sbt'],
            aliases: ['Scala', 'scala', 'SBT', 'Sbt', 'sbt', 'Dotty', 'dotty'],
            mimetypes: [
              'text/x-scala-source',
              'text/x-scala',
              'text/x-sbt',
              'text/x-dotty',
            ],
            loader: function () {
              return i.e(180).then(i.bind(i, 90180));
            },
          }),
          W({
            id: 'scheme',
            extensions: ['.scm', '.ss', '.sch', '.rkt'],
            aliases: ['scheme', 'Scheme'],
            loader: function () {
              return i.e(2060).then(i.bind(i, 32060));
            },
          }),
          W({
            id: 'scss',
            extensions: ['.scss'],
            aliases: ['Sass', 'sass', 'scss'],
            mimetypes: ['text/x-scss', 'text/scss'],
            loader: function () {
              return i.e(525).then(i.bind(i, 90525));
            },
          }),
          W({
            id: 'shell',
            extensions: ['.sh', '.bash'],
            aliases: ['Shell', 'sh'],
            loader: function () {
              return i.e(8670).then(i.bind(i, 88670));
            },
          }),
          W({
            id: 'sol',
            extensions: ['.sol'],
            aliases: ['sol', 'solidity', 'Solidity'],
            loader: function () {
              return i.e(1156).then(i.bind(i, 1156));
            },
          }),
          W({
            id: 'aes',
            extensions: ['.aes'],
            aliases: ['aes', 'sophia', 'Sophia'],
            loader: function () {
              return i.e(3919).then(i.bind(i, 63919));
            },
          }),
          W({
            id: 'sql',
            extensions: ['.sql'],
            aliases: ['SQL'],
            loader: function () {
              return i.e(7778).then(i.bind(i, 27778));
            },
          }),
          W({
            id: 'st',
            extensions: ['.st', '.iecst', '.iecplc', '.lc3lib'],
            aliases: ['StructuredText', 'scl', 'stl'],
            loader: function () {
              return i.e(6587).then(i.bind(i, 75458));
            },
          }),
          W({
            id: 'swift',
            aliases: ['Swift', 'swift'],
            extensions: ['.swift'],
            mimetypes: ['text/swift'],
            loader: function () {
              return i.e(2911).then(i.bind(i, 42911));
            },
          }),
          W({
            id: 'systemverilog',
            extensions: ['.sv', '.svh'],
            aliases: ['SV', 'sv', 'SystemVerilog', 'systemverilog'],
            loader: function () {
              return i.e(1886).then(i.bind(i, 81886));
            },
          }),
          W({
            id: 'verilog',
            extensions: ['.v', '.vh'],
            aliases: ['V', 'v', 'Verilog', 'verilog'],
            loader: function () {
              return i.e(1886).then(i.bind(i, 81886));
            },
          }),
          W({
            id: 'tcl',
            extensions: ['.tcl'],
            aliases: ['tcl', 'Tcl', 'tcltk', 'TclTk', 'tcl/tk', 'Tcl/Tk'],
            loader: function () {
              return i.e(7637).then(i.bind(i, 57637));
            },
          }),
          W({
            id: 'twig',
            extensions: ['.twig'],
            aliases: ['Twig', 'twig'],
            mimetypes: ['text/x-twig'],
            loader: function () {
              return i.e(8424).then(i.bind(i, 98424));
            },
          }),
          W({
            id: 'typescript',
            extensions: ['.ts', '.tsx'],
            aliases: ['TypeScript', 'ts', 'typescript'],
            mimetypes: ['text/typescript'],
            loader: function () {
              return i.e(6717).then(i.bind(i, 96717));
            },
          }),
          W({
            id: 'vb',
            extensions: ['.vb'],
            aliases: ['Visual Basic', 'vb'],
            loader: function () {
              return i.e(9907).then(i.bind(i, 39907));
            },
          }),
          W({
            id: 'xml',
            extensions: [
              '.xml',
              '.dtd',
              '.ascx',
              '.csproj',
              '.config',
              '.wxi',
              '.wxl',
              '.wxs',
              '.xaml',
              '.svg',
              '.svgz',
              '.opf',
              '.xsl',
            ],
            firstLine: '(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)',
            aliases: ['XML', 'xml'],
            mimetypes: [
              'text/xml',
              'application/xml',
              'application/xaml+xml',
              'application/xml-dtd',
            ],
            loader: function () {
              return i.e(4902).then(i.bind(i, 4902));
            },
          }),
          W({
            id: 'yaml',
            extensions: ['.yaml', '.yml'],
            aliases: ['YAML', 'yaml', 'YML', 'yml'],
            mimetypes: ['application/x-yaml'],
            loader: function () {
              return i.e(3585).then(i.bind(i, 23585));
            },
          }),
          i(18728),
          i(95190),
          i(68143),
          i(75623),
          i(17355),
          i(17084),
          i(84594),
          i(77847),
          i(62015),
          i(9093),
          i(53832),
          i(64494),
          i(89098),
          i(76522),
          i(42834),
          i(7441),
          i(93391),
          i(62943),
          i(23111),
          i(76798);
        var Y = i(70666),
          H = i(24314),
          j = i(51200),
          V = i(71050),
          z = i(88216),
          U = i(86895),
          $ = i(94565),
          K = i(98401),
          q = i(53725),
          G = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function Z(e, t, i) {
          return G(this, void 0, void 0, function* () {
            const n = yield U.C3.create(e, i),
              r = [];
            for (const e of n.children.values())
              e instanceof U.sT
                ? r.push(e.symbol)
                : r.push(...q.$.map(e.children.values(), (e) => e.symbol));
            let s = [];
            return i.isCancellationRequested
              ? s
              : (t ? Q(s, r, '') : (s = r), s.sort(J));
          });
        }
        function J(e, t) {
          return H.e.compareRangesUsingStarts(e.range, t.range);
        }
        function Q(e, t, i) {
          for (let n of t)
            e.push({
              kind: n.kind,
              tags: n.tags,
              name: n.name,
              detail: n.detail,
              containerName: n.containerName || i,
              range: n.range,
              selectionRange: n.selectionRange,
              children: void 0,
            }),
              n.children && Q(e, n.children, n.name);
        }
        $.P.registerCommand(
          '_executeDocumentSymbolProvider',
          function (e, ...t) {
            return G(this, void 0, void 0, function* () {
              const [i] = t;
              (0, K.p_)(Y.o.isUri(i));
              const n = e.get(j.q).getModel(i);
              if (n) return Z(n, !1, V.T.None);
              const r = yield e.get(z.S).createModelReference(i);
              try {
                return yield Z(r.object.textEditorModel, !1, V.T.None);
              } finally {
                r.dispose();
              }
            });
          }
        ),
          i(92729),
          i(10365),
          i(42698),
          i(25217),
          i(80638),
          i(83554),
          i(42408),
          i(34800),
          i(38486),
          i(40517),
          i(55027),
          i(4454),
          i(81955),
          i(78694),
          i(24993);
        var X = i(63580),
          ee = i(16830),
          te = i(84013);
        class ie extends ee.R6 {
          constructor() {
            super({
              id: 'editor.action.forceRetokenize',
              label: X.N('forceRetokenize', 'Developer: Force Retokenize'),
              alias: 'Developer: Force Retokenize',
              precondition: void 0,
            });
          }
          run(e, t) {
            if (!t.hasModel()) return;
            const i = t.getModel();
            i.resetTokenization();
            const n = new te.G(!0);
            i.forceTokenization(i.getLineCount()),
              n.stop(),
              console.log(`tokenization took ${n.elapsed()}`);
          }
        }
        (0, ee.Qr)(ie),
          i(19720),
          i(31725),
          i(70185),
          i(43497),
          i(99453),
          i(60661),
          i(20913),
          i(28609),
          i(29477),
          i(19646),
          i(97830),
          i(78944),
          i(62097),
          i(98936),
          i(97720);
        var ne = i(11640),
          re = i(19192),
          se = i(33108),
          oe = i(38819),
          ae = i(72065),
          le = i(59422),
          ce = i(52365),
          de = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let he = class extends re.J {
          constructor(e, t, i, n, r, s, o) {
            super(!0, e, t, i, n, r, s, o);
          }
        };
        (he = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            de(1, oe.i6),
            de(2, ne.$),
            de(3, le.lT),
            de(4, ae.TG),
            de(5, ce.Uy),
            de(6, se.Ui),
          ],
          he
        )),
          (0, ee._K)(re.J.ID, he),
          i(15662);
      },
      29477: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(65321),
          r = i(38626),
          s = i(48764),
          o = i(85152),
          a = i(93794),
          l = i(5976),
          c = i(1432),
          d = i(97295),
          h = i(70666),
          u = i(16830),
          g = i(29102),
          f = i(19720),
          p = i(38819),
          m = i(72065),
          _ = i(91847),
          b = i(50988),
          v = i(73910),
          y = i(97781),
          w = i(20913),
          C = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          S = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const k = new p.uy('accessibilityHelpWidgetVisible', !1);
        let x = class e extends l.JT {
          constructor(e, t) {
            super(),
              (this._editor = e),
              (this._widget = this._register(
                t.createInstance(L, this._editor)
              ));
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          show() {
            this._widget.show();
          }
          hide() {
            this._widget.hide();
          }
        };
        (x.ID = 'editor.contrib.accessibilityHelpController'),
          (x = C([S(1, m.TG)], x));
        let L = class e extends a.$ {
          constructor(e, t, i, s) {
            super(),
              (this._contextKeyService = t),
              (this._keybindingService = i),
              (this._openerService = s),
              (this._editor = e),
              (this._isVisibleKey = k.bindTo(this._contextKeyService)),
              (this._domNode = (0, r.X)(document.createElement('div'))),
              this._domNode.setClassName('accessibilityHelpWidget'),
              this._domNode.setDisplay('none'),
              this._domNode.setAttribute('role', 'dialog'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              (this._contentDomNode = (0, r.X)(document.createElement('div'))),
              this._contentDomNode.setAttribute('role', 'document'),
              this._domNode.appendChild(this._contentDomNode),
              (this._isVisible = !1),
              this._register(
                this._editor.onDidLayoutChange(() => {
                  this._isVisible && this._layout();
                })
              ),
              this._register(
                n.mu(this._contentDomNode.domNode, 'keydown', (e) => {
                  if (
                    this._isVisible &&
                    (e.equals(2083) &&
                      ((0, o.Z9)(w.Oe.emergencyConfOn),
                      this._editor.updateOptions({
                        accessibilitySupport: 'on',
                      }),
                      n.PO(this._contentDomNode.domNode),
                      this._buildContent(),
                      this._contentDomNode.domNode.focus(),
                      e.preventDefault(),
                      e.stopPropagation()),
                    e.equals(2086))
                  ) {
                    (0, o.Z9)(w.Oe.openingDocs);
                    let t = this._editor.getRawOptions().accessibilityHelpUrl;
                    void 0 === t &&
                      (t = 'https://go.microsoft.com/fwlink/?linkid=852450'),
                      this._openerService.open(h.o.parse(t)),
                      e.preventDefault(),
                      e.stopPropagation();
                  }
                })
              ),
              this.onblur(this._contentDomNode.domNode, () => {
                this.hide();
              }),
              this._editor.addOverlayWidget(this);
          }
          dispose() {
            this._editor.removeOverlayWidget(this), super.dispose();
          }
          getId() {
            return e.ID;
          }
          getDomNode() {
            return this._domNode.domNode;
          }
          getPosition() {
            return { preference: null };
          }
          show() {
            this._isVisible ||
              ((this._isVisible = !0),
              this._isVisibleKey.set(!0),
              this._layout(),
              this._domNode.setDisplay('block'),
              this._domNode.setAttribute('aria-hidden', 'false'),
              (this._contentDomNode.domNode.tabIndex = 0),
              this._buildContent(),
              this._contentDomNode.domNode.focus());
          }
          _descriptionForCommand(e, t, i) {
            let n = this._keybindingService.lookupKeybinding(e);
            return n ? d.WU(t, n.getAriaLabel()) : d.WU(i, e);
          }
          _buildContent() {
            const e = this._editor.getOptions(),
              t = this._editor.getSelections();
            let i = 0;
            if (t) {
              const e = this._editor.getModel();
              e &&
                t.forEach((t) => {
                  i += e.getValueLengthInRange(t);
                });
            }
            let n = (function (e, t) {
              return e && 0 !== e.length
                ? 1 === e.length
                  ? t
                    ? d.WU(
                        w.Oe.singleSelectionRange,
                        e[0].positionLineNumber,
                        e[0].positionColumn,
                        t
                      )
                    : d.WU(
                        w.Oe.singleSelection,
                        e[0].positionLineNumber,
                        e[0].positionColumn
                      )
                  : t
                  ? d.WU(w.Oe.multiSelectionRange, e.length, t)
                  : e.length > 0
                  ? d.WU(w.Oe.multiSelection, e.length)
                  : ''
                : w.Oe.noSelection;
            })(t, i);
            e.get(47)
              ? e.get(72)
                ? (n += w.Oe.readonlyDiffEditor)
                : (n += w.Oe.editableDiffEditor)
              : e.get(72)
              ? (n += w.Oe.readonlyEditor)
              : (n += w.Oe.editableEditor);
            const r = c.dz
              ? w.Oe.changeConfigToOnMac
              : w.Oe.changeConfigToOnWinLinux;
            switch (e.get(2)) {
              case 0:
                n += '\n\n - ' + r;
                break;
              case 2:
                n += '\n\n - ' + w.Oe.auto_on;
                break;
              case 1:
                (n += '\n\n - ' + w.Oe.auto_off), (n += ' ' + r);
            }
            e.get(116)
              ? (n +=
                  '\n\n - ' +
                  this._descriptionForCommand(
                    f.ToggleTabFocusModeAction.ID,
                    w.Oe.tabFocusModeOnMsg,
                    w.Oe.tabFocusModeOnMsgNoKb
                  ))
              : (n +=
                  '\n\n - ' +
                  this._descriptionForCommand(
                    f.ToggleTabFocusModeAction.ID,
                    w.Oe.tabFocusModeOffMsg,
                    w.Oe.tabFocusModeOffMsgNoKb
                  )),
              (n +=
                '\n\n - ' + (c.dz ? w.Oe.openDocMac : w.Oe.openDocWinLinux)),
              (n += '\n\n' + w.Oe.outroMsg),
              this._contentDomNode.domNode.appendChild((0, s.BO)(n)),
              this._contentDomNode.domNode.setAttribute('aria-label', n);
          }
          hide() {
            this._isVisible &&
              ((this._isVisible = !1),
              this._isVisibleKey.reset(),
              this._domNode.setDisplay('none'),
              this._domNode.setAttribute('aria-hidden', 'true'),
              (this._contentDomNode.domNode.tabIndex = -1),
              n.PO(this._contentDomNode.domNode),
              this._editor.focus());
          }
          _layout() {
            let t = this._editor.getLayoutInfo(),
              i = Math.max(5, Math.min(e.WIDTH, t.width - 40)),
              n = Math.max(5, Math.min(e.HEIGHT, t.height - 40));
            this._domNode.setWidth(i), this._domNode.setHeight(n);
            let r = Math.round((t.height - n) / 2);
            this._domNode.setTop(r);
            let s = Math.round((t.width - i) / 2);
            this._domNode.setLeft(s);
          }
        };
        (L.ID = 'editor.contrib.accessibilityHelpWidget'),
          (L.WIDTH = 500),
          (L.HEIGHT = 300),
          (L = C([S(1, p.i6), S(2, _.d), S(3, b.v4)], L));
        class M extends u.R6 {
          constructor() {
            super({
              id: 'editor.action.showAccessibilityHelp',
              label: w.Oe.showAccessibilityHelpAction,
              alias: 'Show Accessibility Help',
              precondition: void 0,
              kbOpts: {
                kbExpr: g.u.focus,
                primary: 571,
                weight: 100,
                linux: { primary: 1595, secondary: [571] },
              },
            });
          }
          run(e, t) {
            let i = x.get(t);
            i && i.show();
          }
        }
        (0, u._K)(x.ID, x), (0, u.Qr)(M);
        const D = u._l.bindToContribution(x.get);
        (0, u.fK)(
          new D({
            id: 'closeAccessibilityHelp',
            precondition: k,
            handler: (e) => e.hide(),
            kbOpts: {
              weight: 200,
              kbExpr: g.u.focus,
              primary: 9,
              secondary: [1033],
            },
          })
        ),
          (0, y.Ic)((e, t) => {
            const i = e.getColor(v.D0);
            i &&
              t.addRule(
                `.monaco-editor .accessibilityHelpWidget { background-color: ${i}; }`
              );
            const n = e.getColor(v.Hf);
            n &&
              t.addRule(
                `.monaco-editor .accessibilityHelpWidget { color: ${n}; }`
              );
            const r = e.getColor(v.rh);
            r &&
              t.addRule(
                `.monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ${r}; }`
              );
            const s = e.getColor(v.lR);
            s &&
              t.addRule(
                `.monaco-editor .accessibilityHelpWidget { border: 2px solid ${s}; }`
              );
          });
      },
      19646: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { IPadShowKeyboard: () => a });
        var n = i(16268),
          r = i(65321),
          s = i(5976),
          o = i(16830);
        class a extends s.JT {
          constructor(e) {
            super(),
              (this.editor = e),
              (this.widget = null),
              n.zc &&
                (this._register(
                  e.onDidChangeConfiguration(() => this.update())
                ),
                this.update());
          }
          update() {
            const e = !this.editor.getOption(72);
            !this.widget && e
              ? (this.widget = new l(this.editor))
              : this.widget &&
                !e &&
                (this.widget.dispose(), (this.widget = null));
          }
          dispose() {
            super.dispose(),
              this.widget && (this.widget.dispose(), (this.widget = null));
          }
        }
        a.ID = 'editor.contrib.iPadShowKeyboard';
        class l extends s.JT {
          constructor(e) {
            super(),
              (this.editor = e),
              (this._domNode = document.createElement('textarea')),
              (this._domNode.className = 'iPadShowKeyboard'),
              this._register(
                r.nm(this._domNode, 'touchstart', (e) => {
                  this.editor.focus();
                })
              ),
              this._register(
                r.nm(this._domNode, 'focus', (e) => {
                  this.editor.focus();
                })
              ),
              this.editor.addOverlayWidget(this);
          }
          dispose() {
            this.editor.removeOverlayWidget(this), super.dispose();
          }
          getId() {
            return l.ID;
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return { preference: 1 };
          }
        }
        (l.ID = 'editor.contrib.ShowKeyboardWidget'), (0, o._K)(a.ID, a);
      },
      97830: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(65321),
          r = i(41264),
          s = i(5976),
          o = i(16830),
          a = i(43775),
          l = i(28111),
          c = i(71531),
          d = i(12095),
          h = i(73910),
          u = i(97781),
          g = i(20913),
          f = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let p = class e extends s.JT {
          constructor(e, t, i) {
            super(),
              (this._editor = e),
              (this._modeService = i),
              (this._widget = null),
              this._register(this._editor.onDidChangeModel((e) => this.stop())),
              this._register(
                this._editor.onDidChangeModelLanguage((e) => this.stop())
              ),
              this._register(a.RW.onDidChange((e) => this.stop())),
              this._register(
                this._editor.onKeyUp((e) => 9 === e.keyCode && this.stop())
              );
          }
          static get(t) {
            return t.getContribution(e.ID);
          }
          dispose() {
            this.stop(), super.dispose();
          }
          launch() {
            this._widget ||
              (this._editor.hasModel() &&
                (this._widget = new _(this._editor, this._modeService)));
          }
          stop() {
            this._widget && (this._widget.dispose(), (this._widget = null));
          }
        };
        (p.ID = 'editor.contrib.inspectTokens'),
          (p = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })([f(1, d.Z), f(2, c.h)], p));
        class m extends o.R6 {
          constructor() {
            super({
              id: 'editor.action.inspectTokens',
              label: g.ug.inspectTokensAction,
              alias: 'Developer: Inspect Tokens',
              precondition: void 0,
            });
          }
          run(e, t) {
            let i = p.get(t);
            i && i.launch();
          }
        }
        class _ extends s.JT {
          constructor(e, t) {
            var i;
            super(),
              (this.allowEditorOverflow = !0),
              (this._editor = e),
              (this._modeService = t),
              (this._model = this._editor.getModel()),
              (this._domNode = document.createElement('div')),
              (this._domNode.className = 'tokens-inspect-widget'),
              (this._tokenizationSupport =
                ((i = this._model.getLanguageIdentifier()),
                a.RW.get(i.language) || {
                  getInitialState: () => l.nO,
                  tokenize: (e, t, n) => (0, l.Ri)(i.language, e, t, n),
                  tokenize2: (e, t, n) => (0, l.mh)(i.id, e, t, n),
                })),
              this._compute(this._editor.getPosition()),
              this._register(
                this._editor.onDidChangeCursorPosition((e) =>
                  this._compute(this._editor.getPosition())
                )
              ),
              this._editor.addContentWidget(this);
          }
          dispose() {
            this._editor.removeContentWidget(this), super.dispose();
          }
          getId() {
            return _._ID;
          }
          _compute(e) {
            let t = this._getTokensAtLine(e.lineNumber),
              i = 0;
            for (let n = t.tokens1.length - 1; n >= 0; n--) {
              let r = t.tokens1[n];
              if (e.column - 1 >= r.offset) {
                i = n;
                break;
              }
            }
            let s = 0;
            for (let i = t.tokens2.length >>> 1; i >= 0; i--)
              if (e.column - 1 >= t.tokens2[i << 1]) {
                s = i;
                break;
              }
            let o = this._model.getLineContent(e.lineNumber),
              a = '';
            if (i < t.tokens1.length) {
              let e = t.tokens1[i].offset,
                n =
                  i + 1 < t.tokens1.length ? t.tokens1[i + 1].offset : o.length;
              a = o.substring(e, n);
            }
            (0, n.mc)(
              this._domNode,
              (0, n.$)(
                'h2.tm-token',
                void 0,
                (function (e) {
                  let t = '';
                  for (let i = 0, n = e.length; i < n; i++) {
                    let n = e.charCodeAt(i);
                    switch (n) {
                      case 9:
                        t += '→';
                        break;
                      case 32:
                        t += '·';
                        break;
                      default:
                        t += String.fromCharCode(n);
                    }
                  }
                  return t;
                })(a),
                (0, n.$)(
                  'span.tm-token-length',
                  void 0,
                  `${a.length} ${1 === a.length ? 'char' : 'chars'}`
                )
              )
            ),
              (0, n.R3)(
                this._domNode,
                (0, n.$)('hr.tokens-inspect-separator', { style: 'clear:both' })
              );
            const l =
              1 + (s << 1) < t.tokens2.length
                ? this._decodeMetadata(t.tokens2[1 + (s << 1)])
                : null;
            (0, n.R3)(
              this._domNode,
              (0, n.$)(
                'table.tm-metadata-table',
                void 0,
                (0, n.$)(
                  'tbody',
                  void 0,
                  (0, n.$)(
                    'tr',
                    void 0,
                    (0, n.$)('td.tm-metadata-key', void 0, 'language'),
                    (0, n.$)(
                      'td.tm-metadata-value',
                      void 0,
                      `${l ? l.languageIdentifier.language : '-?-'}`
                    )
                  ),
                  (0, n.$)(
                    'tr',
                    void 0,
                    (0, n.$)('td.tm-metadata-key', void 0, 'token type'),
                    (0, n.$)(
                      'td.tm-metadata-value',
                      void 0,
                      `${l ? this._tokenTypeToString(l.tokenType) : '-?-'}`
                    )
                  ),
                  (0, n.$)(
                    'tr',
                    void 0,
                    (0, n.$)('td.tm-metadata-key', void 0, 'font style'),
                    (0, n.$)(
                      'td.tm-metadata-value',
                      void 0,
                      `${l ? this._fontStyleToString(l.fontStyle) : '-?-'}`
                    )
                  ),
                  (0, n.$)(
                    'tr',
                    void 0,
                    (0, n.$)('td.tm-metadata-key', void 0, 'foreground'),
                    (0, n.$)(
                      'td.tm-metadata-value',
                      void 0,
                      `${l ? r.Il.Format.CSS.formatHex(l.foreground) : '-?-'}`
                    )
                  ),
                  (0, n.$)(
                    'tr',
                    void 0,
                    (0, n.$)('td.tm-metadata-key', void 0, 'background'),
                    (0, n.$)(
                      'td.tm-metadata-value',
                      void 0,
                      `${l ? r.Il.Format.CSS.formatHex(l.background) : '-?-'}`
                    )
                  )
                )
              )
            ),
              (0, n.R3)(this._domNode, (0, n.$)('hr.tokens-inspect-separator')),
              i < t.tokens1.length &&
                (0, n.R3)(
                  this._domNode,
                  (0, n.$)('span.tm-token-type', void 0, t.tokens1[i].type)
                ),
              this._editor.layoutContentWidget(this);
          }
          _decodeMetadata(e) {
            let t = a.RW.getColorMap(),
              i = a.NX.getLanguageId(e),
              n = a.NX.getTokenType(e),
              r = a.NX.getFontStyle(e),
              s = a.NX.getForeground(e),
              o = a.NX.getBackground(e);
            return {
              languageIdentifier: this._modeService.getLanguageIdentifier(i),
              tokenType: n,
              fontStyle: r,
              foreground: t[s],
              background: t[o],
            };
          }
          _tokenTypeToString(e) {
            switch (e) {
              case 0:
                return 'Other';
              case 1:
                return 'Comment';
              case 2:
                return 'String';
              case 4:
                return 'RegEx';
              default:
                return '??';
            }
          }
          _fontStyleToString(e) {
            let t = '';
            return (
              1 & e && (t += 'italic '),
              2 & e && (t += 'bold '),
              4 & e && (t += 'underline '),
              0 === t.length && (t = '---'),
              t
            );
          }
          _getTokensAtLine(e) {
            let t = this._getStateBeforeLine(e),
              i = this._tokenizationSupport.tokenize(
                this._model.getLineContent(e),
                t,
                0
              ),
              n = this._tokenizationSupport.tokenize2(
                this._model.getLineContent(e),
                t,
                0
              );
            return {
              startState: t,
              tokens1: i.tokens,
              tokens2: n.tokens,
              endState: i.endState,
            };
          }
          _getStateBeforeLine(e) {
            let t = this._tokenizationSupport.getInitialState();
            for (let i = 1; i < e; i++)
              t = this._tokenizationSupport.tokenize(
                this._model.getLineContent(i),
                t,
                0
              ).endState;
            return t;
          }
          getDomNode() {
            return this._domNode;
          }
          getPosition() {
            return { position: this._editor.getPosition(), preference: [2, 1] };
          }
        }
        (_._ID = 'editor.contrib.inspectTokensWidget'),
          (0, o._K)(p.ID, p),
          (0, o.Qr)(m),
          (0, u.Ic)((e, t) => {
            const i = e.getColor(h.CN);
            if (i) {
              let n = e.type === u.QP ? 2 : 1;
              t.addRule(
                `.monaco-editor .tokens-inspect-widget { border: ${n}px solid ${i}; }`
              ),
                t.addRule(
                  `.monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ${i}; }`
                );
            }
            const n = e.getColor(h.yJ);
            n &&
              t.addRule(
                `.monaco-editor .tokens-inspect-widget { background-color: ${n}; }`
              );
            const r = e.getColor(h.Sb);
            r &&
              t.addRule(
                `.monaco-editor .tokens-inspect-widget { color: ${r}; }`
              );
          });
      },
      97720: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            GotoLineAction: () => z,
            StandaloneCommandsQuickAccessProvider: () => V,
          });
        var n,
          r = i(89872),
          s = i(90725),
          o = i(20913),
          a = i(11640),
          l = i(63580),
          c = i(71050),
          d = i(5976),
          h = i(15393),
          u = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function g(e) {
          const t = e;
          return Array.isArray(t.items);
        }
        !(function (e) {
          (e[(e.NO_ACTION = 0)] = 'NO_ACTION'),
            (e[(e.CLOSE_PICKER = 1)] = 'CLOSE_PICKER'),
            (e[(e.REFRESH_PICKER = 2)] = 'REFRESH_PICKER'),
            (e[(e.REMOVE_ITEM = 3)] = 'REMOVE_ITEM');
        })(n || (n = {}));
        class f extends d.JT {
          constructor(e, t) {
            super(), (this.prefix = e), (this.options = t);
          }
          provide(e, t) {
            var i;
            const r = new d.SL();
            let s;
            (e.canAcceptInBackground = !!(null === (i = this.options) ||
            void 0 === i
              ? void 0
              : i.canAcceptInBackground)),
              (e.matchOnLabel = e.matchOnDescription = e.matchOnDetail = e.sortByLabel = !1);
            const o = r.add(new d.XK()),
              a = () =>
                u(this, void 0, void 0, function* () {
                  const i = (o.value = new d.SL());
                  null == s || s.dispose(!0), (e.busy = !1), (s = new c.A(t));
                  const n = s.token,
                    r = e.value.substr(this.prefix.length).trim(),
                    a = this.getPicks(r, i, n),
                    l = (t, i) => {
                      var n;
                      let s, o;
                      if (
                        (g(t) ? ((s = t.items), (o = t.active)) : (s = t),
                        0 === s.length)
                      ) {
                        if (i) return !1;
                        r.length > 0 &&
                          (null === (n = this.options) || void 0 === n
                            ? void 0
                            : n.noResultsPick) &&
                          (s = [this.options.noResultsPick]);
                      }
                      return (e.items = s), o && (e.activeItems = [o]), !0;
                    };
                  if (null === a);
                  else if (
                    (function (e) {
                      const t = e;
                      return !!t.picks && t.additionalPicks instanceof Promise;
                    })(a)
                  ) {
                    let t = !1,
                      i = !1;
                    yield Promise.all([
                      (() =>
                        u(this, void 0, void 0, function* () {
                          yield (0, h.Vs)(f.FAST_PICKS_RACE_DELAY),
                            n.isCancellationRequested ||
                              i ||
                              (t = l(a.picks, !0));
                        }))(),
                      (() =>
                        u(this, void 0, void 0, function* () {
                          e.busy = !0;
                          try {
                            const r = yield a.additionalPicks;
                            if (n.isCancellationRequested) return;
                            let s, o, c, d;
                            if (
                              (g(a.picks)
                                ? ((s = a.picks.items), (o = a.picks.active))
                                : (s = a.picks),
                              g(r) ? ((c = r.items), (d = r.active)) : (c = r),
                              c.length > 0 || !t)
                            ) {
                              let t;
                              if (!o && !d) {
                                const i = e.activeItems[0];
                                i && -1 !== s.indexOf(i) && (t = i);
                              }
                              l({ items: [...s, ...c], active: o || d || t });
                            }
                          } finally {
                            n.isCancellationRequested || (e.busy = !1),
                              (i = !0);
                          }
                        }))(),
                    ]);
                  } else if (a instanceof Promise) {
                    e.busy = !0;
                    try {
                      const t = yield a;
                      if (n.isCancellationRequested) return;
                      l(t);
                    } finally {
                      n.isCancellationRequested || (e.busy = !1);
                    }
                  } else l(a);
                });
            return (
              r.add(e.onDidChangeValue(() => a())),
              a(),
              r.add(
                e.onDidAccept((t) => {
                  const [i] = e.selectedItems;
                  'function' == typeof (null == i ? void 0 : i.accept) &&
                    (t.inBackground || e.hide(), i.accept(e.keyMods, t));
                })
              ),
              r.add(
                e.onDidTriggerItemButton(({ button: i, item: r }) =>
                  u(this, void 0, void 0, function* () {
                    var s, o;
                    if ('function' == typeof r.trigger) {
                      const l =
                        null !==
                          (o =
                            null === (s = r.buttons) || void 0 === s
                              ? void 0
                              : s.indexOf(i)) && void 0 !== o
                          ? o
                          : -1;
                      if (l >= 0) {
                        const i = r.trigger(l, e.keyMods),
                          s = 'number' == typeof i ? i : yield i;
                        if (t.isCancellationRequested) return;
                        switch (s) {
                          case n.NO_ACTION:
                            break;
                          case n.CLOSE_PICKER:
                            e.hide();
                            break;
                          case n.REFRESH_PICKER:
                            a();
                            break;
                          case n.REMOVE_ITEM:
                            const t = e.items.indexOf(r);
                            if (-1 !== t) {
                              const i = e.items.slice();
                              i.splice(t, 1), (e.items = i);
                            }
                        }
                      }
                    }
                  })
                )
              ),
              r
            );
          }
        }
        f.FAST_PICKS_RACE_DELAY = 200;
        var p = i(75392),
          m = i(98401),
          _ = i(43702),
          b = i(52365),
          v = i(33108),
          y = i(72065),
          w = i(91847),
          C = i(94565),
          S = i(10829),
          k = i(17301),
          x = i(59422),
          L = i(9488);
        function M(e, t) {
          return t && (e.stack || e.stacktrace)
            ? l.N(
                'stackTrace.format',
                '{0}: {1}',
                N(e),
                D(e.stack) || D(e.stacktrace)
              )
            : N(e);
        }
        function D(e) {
          return Array.isArray(e) ? e.join('\n') : e;
        }
        function N(e) {
          return 'string' == typeof e.code &&
            'number' == typeof e.errno &&
            'string' == typeof e.syscall
            ? l.N(
                'nodeExceptionMessage',
                'A system error occurred ({0})',
                e.message
              )
            : e.message ||
                l.N(
                  'error.defaultMessage',
                  'An unknown error occurred. Please consult the log for more details.'
                );
        }
        function E(e = null, t = !1) {
          if (!e)
            return l.N(
              'error.defaultMessage',
              'An unknown error occurred. Please consult the log for more details.'
            );
          if (Array.isArray(e)) {
            const i = L.kX(e),
              n = E(i[0], t);
            return i.length > 1
              ? l.N(
                  'error.moreErrors',
                  '{0} ({1} errors in total)',
                  n,
                  i.length
                )
              : n;
          }
          if (m.HD(e)) return e;
          if (e.detail) {
            const i = e.detail;
            if (i.error) return M(i.error, t);
            if (i.exception) return M(i.exception, t);
          }
          return e.stack
            ? M(e, t)
            : e.message
            ? e.message
            : l.N(
                'error.defaultMessage',
                'An unknown error occurred. Please consult the log for more details.'
              );
        }
        var T = i(37280),
          I = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          O = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          },
          A = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        let R = class e extends f {
          constructor(t, i, n, r, s, o) {
            super(e.PREFIX, t),
              (this.options = t),
              (this.instantiationService = i),
              (this.keybindingService = n),
              (this.commandService = r),
              (this.telemetryService = s),
              (this.notificationService = o),
              (this.commandsHistory = this._register(
                this.instantiationService.createInstance(P)
              ));
          }
          getPicks(t, i, n) {
            return A(this, void 0, void 0, function* () {
              const r = yield this.getCommandPicks(i, n);
              if (n.isCancellationRequested) return [];
              const s = [];
              for (const i of r) {
                const n = (0, m.f6)(e.WORD_FILTER(t, i.label)),
                  r = i.commandAlias
                    ? (0, m.f6)(e.WORD_FILTER(t, i.commandAlias))
                    : void 0;
                n || r
                  ? ((i.highlights = {
                      label: n,
                      detail: this.options.showAlias ? r : void 0,
                    }),
                    s.push(i))
                  : t === i.commandId && s.push(i);
              }
              const o = new Map();
              for (const e of s) {
                const t = o.get(e.label);
                t
                  ? ((e.description = e.commandId),
                    (t.description = t.commandId))
                  : o.set(e.label, e);
              }
              s.sort((e, t) => {
                const i = this.commandsHistory.peek(e.commandId),
                  n = this.commandsHistory.peek(t.commandId);
                return i && n
                  ? i > n
                    ? -1
                    : 1
                  : i
                  ? -1
                  : n
                  ? 1
                  : e.label.localeCompare(t.label);
              });
              const a = [];
              let c = !1;
              for (let e = 0; e < s.length; e++) {
                const t = s[e],
                  i = this.keybindingService.lookupKeybinding(t.commandId),
                  n = i
                    ? (0, l.N)(
                        'commandPickAriaLabelWithKeybinding',
                        '{0}, {1}',
                        t.label,
                        i.getAriaLabel()
                      )
                    : t.label;
                0 === e &&
                  this.commandsHistory.peek(t.commandId) &&
                  (a.push({
                    type: 'separator',
                    label: (0, l.N)('recentlyUsed', 'recently used'),
                  }),
                  (c = !0)),
                  0 !== e &&
                    c &&
                    !this.commandsHistory.peek(t.commandId) &&
                    (a.push({
                      type: 'separator',
                      label: (0, l.N)('morecCommands', 'other commands'),
                    }),
                    (c = !1)),
                  a.push(
                    Object.assign(Object.assign({}, t), {
                      ariaLabel: n,
                      detail:
                        this.options.showAlias && t.commandAlias !== t.label
                          ? t.commandAlias
                          : void 0,
                      keybinding: i,
                      accept: () =>
                        A(this, void 0, void 0, function* () {
                          this.commandsHistory.push(t.commandId),
                            this.telemetryService.publicLog2(
                              'workbenchActionExecuted',
                              { id: t.commandId, from: 'quick open' }
                            );
                          try {
                            yield this.commandService.executeCommand(
                              t.commandId
                            );
                          } catch (e) {
                            (0, k.VV)(e) ||
                              this.notificationService.error(
                                (0, l.N)(
                                  'canNotRun',
                                  "Command '{0}' resulted in an error ({1})",
                                  t.label,
                                  E(e)
                                )
                              );
                          }
                        }),
                    })
                  );
              }
              return a;
            });
          }
        };
        (R.PREFIX = '>'),
          (R.WORD_FILTER = (0, p.or)(p.Ji, p.KZ, p.ir)),
          (R = I([O(1, y.TG), O(2, w.d), O(3, C.H), O(4, S.b), O(5, x.lT)], R));
        let P = class e extends d.JT {
          constructor(t, i, n) {
            super(),
              (this.storageService = t),
              (this.configurationService = i),
              (this.configuredCommandsHistoryLength = 0),
              n.registerStorageKey({ key: e.PREF_KEY_CACHE, version: 1 }),
              n.registerStorageKey({ key: e.PREF_KEY_COUNTER, version: 1 }),
              this.updateConfiguration(),
              this.load(),
              this.registerListeners();
          }
          registerListeners() {
            this._register(
              this.configurationService.onDidChangeConfiguration(() =>
                this.updateConfiguration()
              )
            );
          }
          updateConfiguration() {
            (this.configuredCommandsHistoryLength = e.getConfiguredCommandHistoryLength(
              this.configurationService
            )),
              e.cache &&
                e.cache.limit !== this.configuredCommandsHistoryLength &&
                ((e.cache.limit = this.configuredCommandsHistoryLength),
                e.saveState(this.storageService));
          }
          load() {
            const t = this.storageService.get(e.PREF_KEY_CACHE, 0);
            let i;
            if (t)
              try {
                i = JSON.parse(t);
              } catch (e) {}
            const n = (e.cache = new _.z6(
              this.configuredCommandsHistoryLength,
              1
            ));
            if (i) {
              let e;
              (e = i.usesLRU
                ? i.entries
                : i.entries.sort((e, t) => e.value - t.value)),
                e.forEach((e) => n.set(e.key, e.value));
            }
            e.counter = this.storageService.getNumber(
              e.PREF_KEY_COUNTER,
              0,
              e.counter
            );
          }
          push(t) {
            e.cache &&
              (e.cache.set(t, e.counter++), e.saveState(this.storageService));
          }
          peek(t) {
            var i;
            return null === (i = e.cache) || void 0 === i ? void 0 : i.peek(t);
          }
          static saveState(t) {
            if (!e.cache) return;
            const i = { usesLRU: !0, entries: [] };
            e.cache.forEach((e, t) => i.entries.push({ key: t, value: e })),
              t.store(e.PREF_KEY_CACHE, JSON.stringify(i), 0),
              t.store(e.PREF_KEY_COUNTER, e.counter, 0);
          }
          static getConfiguredCommandHistoryLength(t) {
            var i, n;
            const r =
              null ===
                (n =
                  null === (i = t.getValue().workbench) || void 0 === i
                    ? void 0
                    : i.commandPalette) || void 0 === n
                ? void 0
                : n.history;
            return 'number' == typeof r ? r : e.DEFAULT_COMMANDS_HISTORY_LENGTH;
          }
        };
        (P.DEFAULT_COMMANDS_HISTORY_LENGTH = 50),
          (P.PREF_KEY_CACHE = 'commandPalette.mru.cache'),
          (P.PREF_KEY_COUNTER = 'commandPalette.mru.counter'),
          (P.counter = 1),
          (P = I([O(0, b.Uy), O(1, v.Ui), O(2, T.u)], P));
        var F = i(73046);
        class B extends R {
          constructor(e, t, i, n, r, s) {
            super(e, t, i, n, r, s);
          }
          getCodeEditorCommandPicks() {
            const e = this.activeTextEditorControl;
            if (!e) return [];
            const t = [];
            for (const i of e.getSupportedActions())
              t.push({
                commandId: i.id,
                commandAlias: i.alias,
                label: (0, F.QF)(i.label) || i.id,
              });
            return t;
          }
        }
        var W = i(16830),
          Y = i(29102),
          H = i(41157),
          j = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        let V = class extends B {
          constructor(e, t, i, n, r, s) {
            super({ showAlias: !1 }, e, i, n, r, s),
              (this.codeEditorService = t);
          }
          get activeTextEditorControl() {
            return (0, m.f6)(this.codeEditorService.getFocusedCodeEditor());
          }
          getCommandPicks() {
            return (
              (e = this),
              (t = void 0),
              (n = function* () {
                return this.getCodeEditorCommandPicks();
              }),
              new ((i = void 0) || (i = Promise))(function (r, s) {
                function o(e) {
                  try {
                    l(n.next(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function a(e) {
                  try {
                    l(n.throw(e));
                  } catch (e) {
                    s(e);
                  }
                }
                function l(e) {
                  var t;
                  e.done
                    ? r(e.value)
                    : ((t = e.value),
                      t instanceof i
                        ? t
                        : new i(function (e) {
                            e(t);
                          })).then(o, a);
                }
                l((n = n.apply(e, t || [])).next());
              })
            );
            var e, t, i, n;
          }
        };
        (V = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [j(0, y.TG), j(1, a.$), j(2, w.d), j(3, C.H), j(4, S.b), j(5, x.lT)],
          V
        )),
          r.B.as(s.IP.Quickaccess).registerQuickAccessProvider({
            ctor: V,
            prefix: V.PREFIX,
            helpEntries: [
              { description: o.UX.quickCommandHelp, needsEditor: !0 },
            ],
          });
        class z extends W.R6 {
          constructor() {
            super({
              id: 'editor.action.quickCommand',
              label: o.UX.quickCommandActionLabel,
              alias: 'Command Palette',
              precondition: void 0,
              kbOpts: { kbExpr: Y.u.focus, primary: 59, weight: 100 },
              contextMenuOpts: { group: 'z_commands', order: 1 },
            });
          }
          run(e) {
            e.get(H.eJ).quickAccess.show(V.PREFIX);
          }
        }
        (0, W.Qr)(z);
      },
      62097: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            GotoLineAction: () => y,
            StandaloneGotoLineQuickAccessProvider: () => _,
          });
        var n = i(63580),
          r = i(5976),
          s = i(98275),
          o = i(65520);
        class a extends s.X {
          constructor() {
            super({ canAcceptInBackground: !0 });
          }
          provideWithoutTextEditor(e) {
            const t = (0, n.N)(
              'cannotRunGotoLine',
              'Open a text editor first to go to a line.'
            );
            return (e.items = [{ label: t }]), (e.ariaLabel = t), r.JT.None;
          }
          provideWithTextEditor(e, t, i) {
            const n = new r.SL();
            n.add(
              t.onDidAccept((i) => {
                const [n] = t.selectedItems;
                if (n) {
                  if (!this.isValidLineNumber(e, n.lineNumber)) return;
                  this.gotoLocation(e, {
                    range: this.toRange(n.lineNumber, n.column),
                    keyMods: t.keyMods,
                    preserveFocus: i.inBackground,
                  }),
                    i.inBackground || t.hide();
                }
              })
            );
            const s = () => {
              const i = this.parsePosition(
                  e,
                  t.value.trim().substr(a.PREFIX.length)
                ),
                n = this.getPickLabel(e, i.lineNumber, i.column);
              if (
                ((t.items = [
                  { lineNumber: i.lineNumber, column: i.column, label: n },
                ]),
                (t.ariaLabel = n),
                !this.isValidLineNumber(e, i.lineNumber))
              )
                return void this.clearDecorations(e);
              const r = this.toRange(i.lineNumber, i.column);
              e.revealRangeInCenter(r, 0), this.addDecorations(e, r);
            };
            s(), n.add(t.onDidChangeValue(() => s()));
            const l = (0, o.Pi)(e);
            return (
              l &&
                2 === l.getOptions().get(52).renderType &&
                (l.updateOptions({ lineNumbers: 'on' }),
                n.add(
                  (0, r.OF)(() => l.updateOptions({ lineNumbers: 'relative' }))
                )),
              n
            );
          }
          toRange(e = 1, t = 1) {
            return {
              startLineNumber: e,
              startColumn: t,
              endLineNumber: e,
              endColumn: t,
            };
          }
          parsePosition(e, t) {
            const i = t
                .split(/,|:|#/)
                .map((e) => parseInt(e, 10))
                .filter((e) => !isNaN(e)),
              n = this.lineCount(e) + 1;
            return { lineNumber: i[0] > 0 ? i[0] : n + i[0], column: i[1] };
          }
          getPickLabel(e, t, i) {
            if (this.isValidLineNumber(e, t))
              return this.isValidColumn(e, t, i)
                ? (0, n.N)(
                    'gotoLineColumnLabel',
                    'Go to line {0} and column {1}.',
                    t,
                    i
                  )
                : (0, n.N)('gotoLineLabel', 'Go to line {0}.', t);
            const r = e.getPosition() || { lineNumber: 1, column: 1 },
              s = this.lineCount(e);
            return s > 1
              ? (0, n.N)(
                  'gotoLineLabelEmptyWithLimit',
                  'Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.',
                  r.lineNumber,
                  r.column,
                  s
                )
              : (0, n.N)(
                  'gotoLineLabelEmpty',
                  'Current Line: {0}, Character: {1}. Type a line number to navigate to.',
                  r.lineNumber,
                  r.column
                );
          }
          isValidLineNumber(e, t) {
            return (
              !(!t || 'number' != typeof t) && t > 0 && t <= this.lineCount(e)
            );
          }
          isValidColumn(e, t, i) {
            if (!i || 'number' != typeof i) return !1;
            const n = this.getModel(e);
            if (!n) return !1;
            const r = { lineNumber: t, column: i };
            return n.validatePosition(r).equals(r);
          }
          lineCount(e) {
            var t, i;
            return null !==
              (i =
                null === (t = this.getModel(e)) || void 0 === t
                  ? void 0
                  : t.getLineCount()) && void 0 !== i
              ? i
              : 0;
          }
        }
        a.PREFIX = ':';
        var l = i(89872),
          c = i(90725),
          d = i(11640),
          h = i(98401),
          u = i(20913),
          g = i(4669),
          f = i(16830),
          p = i(29102),
          m = i(41157);
        let _ = class extends a {
          constructor(e) {
            super(),
              (this.editorService = e),
              (this.onDidActiveTextEditorControlChange = g.ju.None);
          }
          get activeTextEditorControl() {
            return (0, h.f6)(this.editorService.getFocusedCodeEditor());
          }
        };
        var b, v;
        (_ = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            ((b = 0),
            (v = d.$),
            function (e, t) {
              v(e, t, b);
            }),
          ],
          _
        )),
          l.B.as(c.IP.Quickaccess).registerQuickAccessProvider({
            ctor: _,
            prefix: _.PREFIX,
            helpEntries: [
              { description: u.qq.gotoLineActionLabel, needsEditor: !0 },
            ],
          });
        class y extends f.R6 {
          constructor() {
            super({
              id: 'editor.action.gotoLine',
              label: u.qq.gotoLineActionLabel,
              alias: 'Go to Line/Column...',
              precondition: void 0,
              kbOpts: {
                kbExpr: p.u.focus,
                primary: 2085,
                mac: { primary: 293 },
                weight: 100,
              },
            });
          }
          run(e) {
            e.get(m.eJ).quickAccess.show(_.PREFIX);
          }
        }
        (0, f.Qr)(y);
      },
      98936: (e, t, i) => {
        'use strict';
        i.r(t),
          i.d(t, {
            GotoLineAction: () => W,
            StandaloneGotoSymbolQuickAccessProvider: () => P,
          });
        var n = i(63580),
          r = i(71050),
          s = i(5976),
          o = i(24314),
          a = i(98275),
          l = i(43775),
          c = i(86895),
          d = i(97295),
          h = i(75392),
          u = i(88721),
          g = i(1432);
        const f = [void 0, []];
        function p(e, t, i = 0, n = 0) {
          const r = t;
          return r.values && r.values.length > 1
            ? (function (e, t, i, n) {
                let r = 0;
                const s = [];
                for (const o of t) {
                  const [t, a] = m(e, o, i, n);
                  if ('number' != typeof t) return f;
                  (r += t), s.push(...a);
                }
                return [r, _(s)];
              })(e, r.values, i, n)
            : m(e, t, i, n);
        }
        function m(e, t, i, n) {
          const r = (0, h.EW)(
            t.original,
            t.originalLowercase,
            i,
            e,
            e.toLowerCase(),
            n,
            !0
          );
          return r ? [r[0], (0, h.mB)(r)] : f;
        }
        function _(e) {
          const t = e.sort((e, t) => e.start - t.start),
            i = [];
          let n;
          for (const e of t)
            !n || ((s = e), (r = n).end < s.start || s.end < r.start)
              ? ((n = e), i.push(e))
              : ((n.start = Math.min(n.start, e.start)),
                (n.end = Math.max(n.end, e.end)));
          var r, s;
          return i;
        }
        function b(e) {
          'string' != typeof e && (e = '');
          const t = e.toLowerCase(),
            { pathNormalized: i, normalized: n, normalizedLowercase: r } = v(e),
            s = i.indexOf(u.ir) >= 0;
          let o;
          const a = e.split(' ');
          if (a.length > 1)
            for (const e of a) {
              const {
                pathNormalized: t,
                normalized: i,
                normalizedLowercase: n,
              } = v(e);
              i &&
                (o || (o = []),
                o.push({
                  original: e,
                  originalLowercase: e.toLowerCase(),
                  pathNormalized: t,
                  normalized: i,
                  normalizedLowercase: n,
                }));
            }
          return {
            original: e,
            originalLowercase: t,
            pathNormalized: i,
            normalized: n,
            normalizedLowercase: r,
            values: o,
            containsPathSeparator: s,
          };
        }
        function v(e) {
          let t;
          t = g.ED ? e.replace(/\//g, u.ir) : e.replace(/\\/g, u.ir);
          const i = (0, d.R1)(t).replace(/\s/g, '');
          return {
            pathNormalized: t,
            normalized: i,
            normalizedLowercase: i.toLowerCase(),
          };
        }
        function y(e) {
          return Array.isArray(e)
            ? b(e.map((e) => e.original).join(' '))
            : b(e.original);
        }
        var w = i(53725),
          C = i(73046),
          S = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        class k extends a.X {
          constructor(e = Object.create(null)) {
            super(e), (this.options = e), (e.canAcceptInBackground = !0);
          }
          provideWithoutTextEditor(e) {
            return (
              this.provideLabelPick(
                e,
                (0, n.N)(
                  'cannotRunGotoSymbolWithoutEditor',
                  'To go to a symbol, first open a text editor with symbol information.'
                )
              ),
              s.JT.None
            );
          }
          provideWithTextEditor(e, t, i) {
            const n = this.getModel(e);
            return n
              ? l.vJ.has(n)
                ? this.doProvideWithEditorSymbols(e, n, t, i)
                : this.doProvideWithoutEditorSymbols(e, n, t, i)
              : s.JT.None;
          }
          doProvideWithoutEditorSymbols(e, t, i, r) {
            const o = new s.SL();
            return (
              this.provideLabelPick(
                i,
                (0, n.N)(
                  'cannotRunGotoSymbolWithoutSymbolProvider',
                  'The active text editor does not provide symbol information.'
                )
              ),
              (() => {
                S(this, void 0, void 0, function* () {
                  (yield this.waitForLanguageSymbolRegistry(t, o)) &&
                    !r.isCancellationRequested &&
                    o.add(this.doProvideWithEditorSymbols(e, t, i, r));
                });
              })(),
              o
            );
          }
          provideLabelPick(e, t) {
            (e.items = [{ label: t, index: 0, kind: 14 }]), (e.ariaLabel = t);
          }
          waitForLanguageSymbolRegistry(e, t) {
            return S(this, void 0, void 0, function* () {
              if (l.vJ.has(e)) return !0;
              let i;
              const n = new Promise((e) => (i = e)),
                r = t.add(
                  l.vJ.onDidChange(() => {
                    l.vJ.has(e) && (r.dispose(), i(!0));
                  })
                );
              return t.add((0, s.OF)(() => i(!1))), n;
            });
          }
          doProvideWithEditorSymbols(e, t, i, o) {
            const a = new s.SL();
            a.add(
              i.onDidAccept((t) => {
                const [n] = i.selectedItems;
                n &&
                  n.range &&
                  (this.gotoLocation(e, {
                    range: n.range.selection,
                    keyMods: i.keyMods,
                    preserveFocus: t.inBackground,
                  }),
                  t.inBackground || i.hide());
              })
            ),
              a.add(
                i.onDidTriggerItemButton(({ item: t }) => {
                  t &&
                    t.range &&
                    (this.gotoLocation(e, {
                      range: t.range.selection,
                      keyMods: i.keyMods,
                      forceSideBySide: !0,
                    }),
                    i.hide());
                })
              );
            const l = this.getDocumentSymbols(t, !0, o);
            let c;
            const d = () =>
              S(this, void 0, void 0, function* () {
                null == c || c.dispose(!0),
                  (i.busy = !1),
                  (c = new r.A(o)),
                  (i.busy = !0);
                try {
                  const e = b(i.value.substr(k.PREFIX.length).trim()),
                    t = yield this.doGetSymbolPicks(l, e, void 0, c.token);
                  if (o.isCancellationRequested) return;
                  t.length > 0
                    ? (i.items = t)
                    : e.original.length > 0
                    ? this.provideLabelPick(
                        i,
                        (0, n.N)(
                          'noMatchingSymbolResults',
                          'No matching editor symbols'
                        )
                      )
                    : this.provideLabelPick(
                        i,
                        (0, n.N)('noSymbolResults', 'No editor symbols')
                      );
                } finally {
                  o.isCancellationRequested || (i.busy = !1);
                }
              });
            a.add(i.onDidChangeValue(() => d())), d();
            let h = !0;
            return (
              a.add(
                i.onDidChangeActive(() => {
                  const [t] = i.activeItems;
                  if (t && t.range) {
                    if (h) return void (h = !1);
                    e.revealRangeInCenter(t.range.selection, 0),
                      this.addDecorations(e, t.range.decoration);
                  }
                })
              ),
              a
            );
          }
          doGetSymbolPicks(e, t, i, r) {
            return S(this, void 0, void 0, function* () {
              const s = yield e;
              if (r.isCancellationRequested) return [];
              const a = 0 === t.original.indexOf(k.SCOPE_PREFIX),
                c = a ? 1 : 0;
              let h, u;
              t.values && t.values.length > 1
                ? ((h = y(t.values[0])), (u = y(t.values.slice(1))))
                : (h = t);
              const g = [];
              for (let e = 0; e < s.length; e++) {
                const r = s[e],
                  a = (0, d.fy)(r.name),
                  f = `$(symbol-${l.uZ.toString(r.kind) || 'property'}) ${a}`,
                  m = f.length - a.length;
                let _,
                  b,
                  v,
                  y,
                  w = r.containerName;
                if (
                  ((null == i ? void 0 : i.extraContainerLabel) &&
                    (w = w
                      ? `${i.extraContainerLabel} • ${w}`
                      : i.extraContainerLabel),
                  t.original.length > c)
                ) {
                  let e = !1;
                  if (
                    (h !== t &&
                      (([_, b] = p(
                        f,
                        Object.assign(Object.assign({}, t), { values: void 0 }),
                        c,
                        m
                      )),
                      'number' == typeof _ && (e = !0)),
                    'number' != typeof _ &&
                      (([_, b] = p(f, h, c, m)), 'number' != typeof _))
                  )
                    continue;
                  if (!e && u) {
                    if (
                      (w && u.original.length > 0 && ([v, y] = p(w, u)),
                      'number' != typeof v)
                    )
                      continue;
                    'number' == typeof _ && (_ += v);
                  }
                }
                const S = r.tags && r.tags.indexOf(1) >= 0;
                g.push({
                  index: e,
                  kind: r.kind,
                  score: _,
                  label: f,
                  ariaLabel: a,
                  description: w,
                  highlights: S ? void 0 : { label: b, description: y },
                  range: {
                    selection: o.e.collapseToStart(r.selectionRange),
                    decoration: r.range,
                  },
                  strikethrough: S,
                  buttons: (() => {
                    var e, t;
                    const i = (
                      null === (e = this.options) || void 0 === e
                        ? void 0
                        : e.openSideBySideDirection
                    )
                      ? null === (t = this.options) || void 0 === t
                        ? void 0
                        : t.openSideBySideDirection()
                      : void 0;
                    if (i)
                      return [
                        {
                          iconClass:
                            'right' === i
                              ? C.lA.splitHorizontal.classNames
                              : C.lA.splitVertical.classNames,
                          tooltip:
                            'right' === i
                              ? (0, n.N)('openToSide', 'Open to the Side')
                              : (0, n.N)('openToBottom', 'Open to the Bottom'),
                        },
                      ];
                  })(),
                });
              }
              const f = g.sort((e, t) =>
                a ? this.compareByKindAndScore(e, t) : this.compareByScore(e, t)
              );
              let m = [];
              if (a) {
                let e,
                  t,
                  i = 0;
                function _() {
                  t &&
                    'number' == typeof e &&
                    i > 0 &&
                    (t.label = (0, d.WU)(L[e] || x, i));
                }
                for (const n of f)
                  e !== n.kind
                    ? (_(),
                      (e = n.kind),
                      (i = 1),
                      (t = { type: 'separator' }),
                      m.push(t))
                    : i++,
                    m.push(n);
                _();
              } else f.length > 0 && (m = [{ label: (0, n.N)('symbols', 'symbols ({0})', g.length), type: 'separator' }, ...f]);
              return m;
            });
          }
          compareByScore(e, t) {
            if ('number' != typeof e.score && 'number' == typeof t.score)
              return 1;
            if ('number' == typeof e.score && 'number' != typeof t.score)
              return -1;
            if ('number' == typeof e.score && 'number' == typeof t.score) {
              if (e.score > t.score) return -1;
              if (e.score < t.score) return 1;
            }
            return e.index < t.index ? -1 : e.index > t.index ? 1 : 0;
          }
          compareByKindAndScore(e, t) {
            const i = L[e.kind] || x,
              n = L[t.kind] || x,
              r = i.localeCompare(n);
            return 0 === r ? this.compareByScore(e, t) : r;
          }
          getDocumentSymbols(e, t, i) {
            return S(this, void 0, void 0, function* () {
              const n = yield c.C3.create(e, i);
              if (i.isCancellationRequested) return [];
              const r = [];
              for (const e of n.children.values())
                e instanceof c.sT
                  ? r.push(e.symbol)
                  : r.push(...w.$.map(e.children.values(), (e) => e.symbol));
              let s = [];
              return (
                t ? this.flattenDocumentSymbols(s, r, '') : (s = r),
                s.sort((e, t) => o.e.compareRangesUsingStarts(e.range, t.range))
              );
            });
          }
          flattenDocumentSymbols(e, t, i) {
            for (const n of t)
              e.push({
                kind: n.kind,
                tags: n.tags,
                name: n.name,
                detail: n.detail,
                containerName: n.containerName || i,
                range: n.range,
                selectionRange: n.selectionRange,
                children: void 0,
              }),
                n.children &&
                  this.flattenDocumentSymbols(e, n.children, n.name);
          }
        }
        (k.PREFIX = '@'),
          (k.SCOPE_PREFIX = ':'),
          (k.PREFIX_BY_CATEGORY = `${k.PREFIX}${k.SCOPE_PREFIX}`);
        const x = (0, n.N)('property', 'properties ({0})'),
          L = {
            5: (0, n.N)('method', 'methods ({0})'),
            11: (0, n.N)('function', 'functions ({0})'),
            8: (0, n.N)('_constructor', 'constructors ({0})'),
            12: (0, n.N)('variable', 'variables ({0})'),
            4: (0, n.N)('class', 'classes ({0})'),
            22: (0, n.N)('struct', 'structs ({0})'),
            23: (0, n.N)('event', 'events ({0})'),
            24: (0, n.N)('operator', 'operators ({0})'),
            10: (0, n.N)('interface', 'interfaces ({0})'),
            2: (0, n.N)('namespace', 'namespaces ({0})'),
            3: (0, n.N)('package', 'packages ({0})'),
            25: (0, n.N)('typeParameter', 'type parameters ({0})'),
            1: (0, n.N)('modules', 'modules ({0})'),
            6: (0, n.N)('property', 'properties ({0})'),
            9: (0, n.N)('enum', 'enumerations ({0})'),
            21: (0, n.N)('enumMember', 'enumeration members ({0})'),
            14: (0, n.N)('string', 'strings ({0})'),
            0: (0, n.N)('file', 'files ({0})'),
            17: (0, n.N)('array', 'arrays ({0})'),
            15: (0, n.N)('number', 'numbers ({0})'),
            16: (0, n.N)('boolean', 'booleans ({0})'),
            18: (0, n.N)('object', 'objects ({0})'),
            19: (0, n.N)('key', 'keys ({0})'),
            7: (0, n.N)('field', 'fields ({0})'),
            13: (0, n.N)('constant', 'constants ({0})'),
          };
        var M = i(89872),
          D = i(90725),
          N = i(11640),
          E = i(98401),
          T = i(20913),
          I = i(4669),
          O = i(16830),
          A = i(29102),
          R = i(41157);
        let P = class extends k {
          constructor(e) {
            super(),
              (this.editorService = e),
              (this.onDidActiveTextEditorControlChange = I.ju.None);
          }
          get activeTextEditorControl() {
            return (0, E.f6)(this.editorService.getFocusedCodeEditor());
          }
        };
        var F, B;
        (P = (function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          return s > 3 && o && Object.defineProperty(t, i, o), o;
        })(
          [
            ((F = 0),
            (B = N.$),
            function (e, t) {
              B(e, t, F);
            }),
          ],
          P
        )),
          M.B.as(D.IP.Quickaccess).registerQuickAccessProvider({
            ctor: P,
            prefix: k.PREFIX,
            helpEntries: [
              {
                description: T.aq.quickOutlineActionLabel,
                prefix: k.PREFIX,
                needsEditor: !0,
              },
              {
                description: T.aq.quickOutlineByCategoryActionLabel,
                prefix: k.PREFIX_BY_CATEGORY,
                needsEditor: !0,
              },
            ],
          });
        class W extends O.R6 {
          constructor() {
            super({
              id: 'editor.action.quickOutline',
              label: T.aq.quickOutlineActionLabel,
              alias: 'Go to Symbol...',
              precondition: A.u.hasDocumentSymbolProvider,
              kbOpts: { kbExpr: A.u.focus, primary: 3117, weight: 100 },
              contextMenuOpts: { group: 'navigation', order: 3 },
            });
          }
          run(e) {
            e.get(R.eJ).quickAccess.show(k.PREFIX);
          }
        }
        (0, O.Qr)(W);
      },
      78944: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(89872),
          r = i(90725),
          s = i(20913),
          o = i(41157),
          a = i(63580),
          l = i(5976);
        let c = class e {
          constructor(e) {
            (this.quickInputService = e),
              (this.registry = n.B.as(r.IP.Quickaccess));
          }
          provide(t) {
            const i = new l.SL();
            i.add(
              t.onDidAccept(() => {
                const [e] = t.selectedItems;
                e &&
                  this.quickInputService.quickAccess.show(e.prefix, {
                    preserveValue: !0,
                  });
              })
            ),
              i.add(
                t.onDidChangeValue((t) => {
                  const i = this.registry.getQuickAccessProvider(
                    t.substr(e.PREFIX.length)
                  );
                  i &&
                    i.prefix &&
                    i.prefix !== e.PREFIX &&
                    this.quickInputService.quickAccess.show(i.prefix, {
                      preserveValue: !0,
                    });
                })
              );
            const {
              editorProviders: n,
              globalProviders: r,
            } = this.getQuickAccessProviders();
            return (
              (t.items =
                0 === n.length || 0 === r.length
                  ? [...(0 === n.length ? r : n)]
                  : [
                      {
                        label: (0, a.N)('globalCommands', 'global commands'),
                        type: 'separator',
                      },
                      ...r,
                      {
                        label: (0, a.N)('editorCommands', 'editor commands'),
                        type: 'separator',
                      },
                      ...n,
                    ]),
              i
            );
          }
          getQuickAccessProviders() {
            const t = [],
              i = [];
            for (const n of this.registry
              .getQuickAccessProviders()
              .sort((e, t) => e.prefix.localeCompare(t.prefix)))
              if (n.prefix !== e.PREFIX)
                for (const e of n.helpEntries) {
                  const r = e.prefix || n.prefix,
                    s = r || '…';
                  (e.needsEditor ? i : t).push({
                    prefix: r,
                    label: s,
                    ariaLabel: (0, a.N)(
                      'helpPickAriaLabel',
                      '{0}, {1}',
                      s,
                      e.description
                    ),
                    description: e.description,
                  });
                }
            return { editorProviders: i, globalProviders: t };
          }
        };
        var d, h;
        (c.PREFIX = '?'),
          (c = (function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          })(
            [
              ((d = 0),
              (h = o.eJ),
              function (e, t) {
                h(e, t, d);
              }),
            ],
            c
          )),
          n.B.as(r.IP.Quickaccess).registerQuickAccessProvider({
            ctor: c,
            prefix: '',
            helpEntries: [
              { description: s.ld.helpQuickAccessActionLabel, needsEditor: !0 },
            ],
          });
      },
      15662: (e, t, i) => {
        'use strict';
        i.r(t);
        var n = i(16830),
          r = i(12095),
          s = i(20913);
        class o extends n.R6 {
          constructor() {
            super({
              id: 'editor.action.toggleHighContrast',
              label: s.xi.toggleHighContrast,
              alias: 'Toggle High Contrast Theme',
              precondition: void 0,
            }),
              (this._originalThemeName = null);
          }
          run(e, t) {
            const i = e.get(r.Z);
            this._originalThemeName
              ? (i.setTheme(this._originalThemeName),
                (this._originalThemeName = null))
              : ((this._originalThemeName = i.getColorTheme().themeName),
                i.setTheme('hc-black'));
          }
        }
        (0, n.Qr)(o);
      },
      12095: (e, t, i) => {
        'use strict';
        i.d(t, { Z: () => n });
        const n = (0, i(72065).yh)('themeService');
      },
      61460: (e, t, i) => {
        'use strict';
        i.d(t, {
          Q5: () => n.Emitter,
          ZL: () => n.MarkerSeverity,
          e6: () => n.Range,
          Sf: () => n.Uri,
          j6: () => n.editor,
          Mj: () => n.languages,
        });
        var n = i(50158);
      },
      47650: (e, t, i) => {
        'use strict';
        i.d(t, {
          Q5: () => n.Emitter,
          ZL: () => n.MarkerSeverity,
          e6: () => n.Range,
          Sf: () => n.Uri,
          j6: () => n.editor,
          Mj: () => n.languages,
        });
        var n = i(50158);
      },
      61174: (e, t, i) => {
        'use strict';
        i.d(t, {
          Q5: () => n.Emitter,
          ZL: () => n.MarkerSeverity,
          e6: () => n.Range,
          j6: () => n.editor,
          Mj: () => n.languages,
        });
        var n = i(50158);
      },
      72323: (e, t, i) => {
        'use strict';
        i.r(t), i.d(t, { jsonDefaults: () => r }), i(50158);
        var n = i(61174),
          r = new ((function () {
            function e(e, t, i) {
              (this._onDidChange = new n.Q5()),
                (this._languageId = e),
                this.setDiagnosticsOptions(t),
                this.setModeConfiguration(i);
            }
            return (
              Object.defineProperty(e.prototype, 'onDidChange', {
                get: function () {
                  return this._onDidChange.event;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'languageId', {
                get: function () {
                  return this._languageId;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'modeConfiguration', {
                get: function () {
                  return this._modeConfiguration;
                },
                enumerable: !1,
                configurable: !0,
              }),
              Object.defineProperty(e.prototype, 'diagnosticsOptions', {
                get: function () {
                  return this._diagnosticsOptions;
                },
                enumerable: !1,
                configurable: !0,
              }),
              (e.prototype.setDiagnosticsOptions = function (e) {
                (this._diagnosticsOptions = e || Object.create(null)),
                  this._onDidChange.fire(this);
              }),
              (e.prototype.setModeConfiguration = function (e) {
                (this._modeConfiguration = e || Object.create(null)),
                  this._onDidChange.fire(this);
              }),
              e
            );
          })())(
            'json',
            {
              validate: !0,
              allowComments: !0,
              schemas: [],
              enableSchemaRequest: !1,
            },
            {
              documentFormattingEdits: !0,
              documentRangeFormattingEdits: !0,
              completionItems: !0,
              hovers: !0,
              documentSymbols: !0,
              tokens: !0,
              colors: !0,
              foldingRanges: !0,
              diagnostics: !0,
              selectionRanges: !0,
            }
          );
        (n.Mj.json = { jsonDefaults: r }),
          n.Mj.register({
            id: 'json',
            extensions: [
              '.json',
              '.bowerrc',
              '.jshintrc',
              '.jscsrc',
              '.eslintrc',
              '.babelrc',
              '.har',
            ],
            aliases: ['JSON', 'json'],
            mimetypes: ['application/json'],
          }),
          n.Mj.onLanguage('json', function () {
            i.e(7194)
              .then(i.bind(i, 97194))
              .then(function (e) {
                return e.setupMode(r);
              });
          });
      },
      91429: (e, t, i) => {
        'use strict';
        i.d(t, {
          Q5: () => n.Emitter,
          ZL: () => n.MarkerSeverity,
          eB: () => n.MarkerTag,
          e6: () => n.Range,
          Sf: () => n.Uri,
          j6: () => n.editor,
          Mj: () => n.languages,
        });
        var n = i(50158);
      },
      63580: (e, t, i) => {
        'use strict';
        function n(e, t, ...i) {
          return (function (e, t) {
            let i;
            return (
              (i =
                0 === t.length
                  ? e
                  : e.replace(/\{(\d+)\}/g, function (e, i) {
                      const n = i[0];
                      return void 0 !== t[n] ? t[n] : e;
                    })),
              i
            );
          })(t, i);
        }
        i.d(t, { N: () => n });
      },
      31106: (e, t, i) => {
        'use strict';
        i.d(t, { F: () => s, U: () => o });
        var n = i(72065),
          r = i(38819);
        const s = (0, n.yh)('accessibilityService'),
          o = new r.uy('accessibilityModeEnabled', !1);
      },
      58335: (e, t, i) => {
        'use strict';
        i.d(t, { Mm: () => N, bi: () => E, vr: () => L });
        var n = i(65321),
          r = i(4850),
          s = i(74741),
          o = i(4669),
          a = i(44742),
          l = i(5976),
          c = i(1432),
          d = i(63580),
          h = i(84144),
          u = i(5606),
          g = i(91847),
          f = i(59422),
          p = i(97781),
          m = i(76033),
          _ = i(10553),
          b = i(59069);
        class v extends s.Wi {
          constructor(e, t) {
            super(),
              (this._onDidChangeVisibility = new o.Q5()),
              (this.onDidChangeVisibility = this._onDidChangeVisibility.event),
              (this._element = (0, n.R3)(e, (0, n.$)('.monaco-dropdown'))),
              (this._label = (0, n.R3)(
                this._element,
                (0, n.$)('.dropdown-label')
              ));
            let i = t.labelRenderer;
            i || (i = (e) => ((e.textContent = t.label || ''), null));
            for (const e of [n.tw.CLICK, n.tw.MOUSE_DOWN, _.t.Tap])
              this._register(
                (0, n.nm)(this.element, e, (e) => n.zB.stop(e, !0))
              );
            for (const e of [n.tw.MOUSE_DOWN, _.t.Tap])
              this._register(
                (0, n.nm)(this._label, e, (e) => {
                  (e instanceof MouseEvent && e.detail > 1) ||
                    (this.visible ? this.hide() : this.show());
                })
              );
            this._register(
              (0, n.nm)(this._label, n.tw.KEY_UP, (e) => {
                const t = new b.y(e);
                (t.equals(3) || t.equals(10)) &&
                  (n.zB.stop(e, !0), this.visible ? this.hide() : this.show());
              })
            );
            const r = i(this._label);
            r && this._register(r), this._register(_.o.addTarget(this._label));
          }
          get element() {
            return this._element;
          }
          show() {
            this.visible ||
              ((this.visible = !0), this._onDidChangeVisibility.fire(!0));
          }
          hide() {
            this.visible &&
              ((this.visible = !1), this._onDidChangeVisibility.fire(!1));
          }
          dispose() {
            super.dispose(),
              this.hide(),
              this.boxContainer &&
                (this.boxContainer.remove(), (this.boxContainer = void 0)),
              this.contents &&
                (this.contents.remove(), (this.contents = void 0)),
              this._label && (this._label.remove(), (this._label = void 0));
          }
        }
        class y extends v {
          constructor(e, t) {
            super(e, t),
              (this._actions = []),
              (this._contextMenuProvider = t.contextMenuProvider),
              (this.actions = t.actions || []),
              (this.actionProvider = t.actionProvider),
              (this.menuClassName = t.menuClassName || ''),
              (this.menuAsChild = !!t.menuAsChild);
          }
          set menuOptions(e) {
            this._menuOptions = e;
          }
          get menuOptions() {
            return this._menuOptions;
          }
          get actions() {
            return this.actionProvider
              ? this.actionProvider.getActions()
              : this._actions;
          }
          set actions(e) {
            this._actions = e;
          }
          show() {
            super.show(),
              (0, n.cn)(this.element, 'active'),
              this._contextMenuProvider.showContextMenu({
                getAnchor: () => this.element,
                getActions: () => this.actions,
                getActionsContext: () =>
                  this.menuOptions ? this.menuOptions.context : null,
                getActionViewItem: (e) =>
                  this.menuOptions && this.menuOptions.actionViewItemProvider
                    ? this.menuOptions.actionViewItemProvider(e)
                    : void 0,
                getKeyBinding: (e) =>
                  this.menuOptions && this.menuOptions.getKeyBinding
                    ? this.menuOptions.getKeyBinding(e)
                    : void 0,
                getMenuClassName: () => this.menuClassName,
                onHide: () => this.onHide(),
                actionRunner: this.menuOptions
                  ? this.menuOptions.actionRunner
                  : void 0,
                anchorAlignment: this.menuOptions
                  ? this.menuOptions.anchorAlignment
                  : 0,
                domForShadowRoot: this.menuAsChild ? this.element : void 0,
              });
          }
          hide() {
            super.hide();
          }
          onHide() {
            this.hide(), (0, n.IV)(this.element, 'active');
          }
        }
        var w = i(9488);
        class C extends m.Y {
          constructor(e, t, i, n = {}) {
            super(null, e, n),
              (this.options = n),
              (this._onDidChangeVisibility = this._register(new o.Q5())),
              (this.menuActionsOrProvider = t),
              (this.contextMenuProvider = i),
              this.options.actionRunner &&
                (this.actionRunner = this.options.actionRunner);
          }
          render(e) {
            const t = {
              contextMenuProvider: this.contextMenuProvider,
              labelRenderer: (e) => {
                this.element = (0, n.R3)(e, (0, n.$)('a.action-label'));
                const t = this.options.classNames
                  ? (0, w._2)(this.options.classNames)
                  : [];
                return (
                  t.find((e) => 'icon' === e) || t.push('codicon'),
                  (0, n.PT)(this.element, ...t),
                  (this.element.tabIndex = 0),
                  this.element.setAttribute('role', 'button'),
                  this.element.setAttribute('aria-haspopup', 'true'),
                  this.element.setAttribute('aria-expanded', 'false'),
                  (this.element.title = this._action.label || ''),
                  null
                );
              },
              menuAsChild: this.options.menuAsChild,
            };
            if (
              (Array.isArray(this.menuActionsOrProvider)
                ? (t.actions = this.menuActionsOrProvider)
                : (t.actionProvider = this.menuActionsOrProvider),
              (this.dropdownMenu = this._register(new y(e, t))),
              this._register(
                this.dropdownMenu.onDidChangeVisibility((e) => {
                  var t;
                  null === (t = this.element) ||
                    void 0 === t ||
                    t.setAttribute('aria-expanded', `${e}`),
                    this._onDidChangeVisibility.fire(e);
                })
              ),
              (this.dropdownMenu.menuOptions = {
                actionViewItemProvider: this.options.actionViewItemProvider,
                actionRunner: this.actionRunner,
                getKeyBinding: this.options.keybindingProvider,
                context: this._context,
              }),
              this.options.anchorAlignmentProvider)
            ) {
              const e = this;
              this.dropdownMenu.menuOptions = Object.assign(
                Object.assign({}, this.dropdownMenu.menuOptions),
                {
                  get anchorAlignment() {
                    return e.options.anchorAlignmentProvider();
                  },
                }
              );
            }
          }
          setActionContext(e) {
            super.setActionContext(e),
              this.dropdownMenu &&
                (this.dropdownMenu.menuOptions
                  ? (this.dropdownMenu.menuOptions.context = e)
                  : (this.dropdownMenu.menuOptions = { context: e }));
          }
        }
        var S = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          k = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        class x extends o.Q5 {
          constructor(e) {
            super(),
              (this._subscriptions = new l.SL()),
              (this._isPressed = !1),
              (this._suppressAltKeyUp = !1),
              this._subscriptions.add(
                (0, r.j)(
                  document.body,
                  'keydown'
                )((e) => {
                  this.isPressed = e.altKey || ((c.ED || c.IJ) && e.shiftKey);
                })
              ),
              this._subscriptions.add(
                (0, r.j)(
                  document.body,
                  'keyup'
                )((e) => {
                  this.isPressed &&
                    this._suppressAltKeyUp &&
                    e.preventDefault(),
                    (this._suppressAltKeyUp = !1),
                    (this.isPressed = !1);
                })
              ),
              this._subscriptions.add(
                (0, r.j)(
                  document.body,
                  'mouseleave'
                )((e) => (this.isPressed = !1))
              ),
              this._subscriptions.add(
                (0, r.j)(document.body, 'blur')((e) => (this.isPressed = !1))
              ),
              this._subscriptions.add(
                e.onDidContextMenu(() => (this.isPressed = !1))
              );
          }
          get isPressed() {
            return this._isPressed;
          }
          set isPressed(e) {
            (this._isPressed = e), this.fire(this._isPressed);
          }
          suppressAltKeyUp() {
            this._suppressAltKeyUp = !0;
          }
          static getInstance(e) {
            return x.instance || (x.instance = new x(e)), x.instance;
          }
          dispose() {
            super.dispose(), this._subscriptions.dispose();
          }
        }
        function L(e, t, i, n) {
          const r = e.getActions(t);
          return (
            (function (e, t, i, n = (e) => 'navigation' === e) {
              for (let r of e) {
                let [e, o] = r;
                if (
                  (i &&
                    (o = o.map((e) =>
                      e instanceof h.U8 && e.alt ? e.alt : e
                    )),
                  n(e))
                )
                  (Array.isArray(t) ? t : t.primary).unshift(...o);
                else {
                  const e = Array.isArray(t) ? t : t.secondary;
                  e.length > 0 && e.push(new s.Z0()), e.push(...o);
                }
              }
            })(r, i, !1, n),
            (function (e) {
              const t = new l.SL();
              for (const [, i] of e) for (const e of i) t.add(e);
              return t;
            })(r)
          );
        }
        const M = new a.R('menu-item-action-item-icon-'),
          D = new Map();
        let N = class extends m.g {
          constructor(e, t, i, n) {
            super(void 0, e, {
              icon: !(!e.class && !e.item.icon),
              label: !e.class && !e.item.icon,
            }),
              (this._action = e),
              (this._keybindingService = t),
              (this._notificationService = i),
              (this._wantsAltCommand = !1),
              (this._itemClassDispose = this._register(new l.XK())),
              (this._altKey = x.getInstance(n));
          }
          get _commandAction() {
            return (this._wantsAltCommand && this._action.alt) || this._action;
          }
          onClick(e) {
            e.preventDefault(),
              e.stopPropagation(),
              this._altKey.isPressed && this._altKey.suppressAltKeyUp(),
              this.actionRunner
                .run(this._commandAction, this._context)
                .then(void 0, (e) => this._notificationService.error(e));
          }
          render(e) {
            super.render(e), this._updateItemClass(this._action.item);
            let t = !1,
              i = this._altKey.isPressed;
            const n = () => {
              const e = t && i;
              e !== this._wantsAltCommand &&
                ((this._wantsAltCommand = e),
                this.updateLabel(),
                this.updateTooltip(),
                this.updateClass());
            };
            this._action.alt &&
              this._register(
                this._altKey.event((e) => {
                  (i = e), n();
                })
              ),
              this._register(
                (0, r.j)(
                  e,
                  'mouseleave'
                )((e) => {
                  (t = !1), n();
                })
              ),
              this._register(
                (0, r.j)(
                  e,
                  'mouseenter'
                )((e) => {
                  (t = !0), n();
                })
              );
          }
          updateLabel() {
            this.options.label &&
              this.label &&
              (this.label.textContent = this._commandAction.label);
          }
          updateTooltip() {
            if (this.label) {
              const e = this._keybindingService.lookupKeybinding(
                  this._commandAction.id
                ),
                t = e && e.getLabel(),
                i = this._commandAction.tooltip || this._commandAction.label;
              this.label.title = t
                ? (0, d.N)('titleAndKb', '{0} ({1})', i, t)
                : i;
            }
          }
          updateClass() {
            this.options.icon &&
              (this._commandAction !== this._action
                ? this._action.alt &&
                  this._updateItemClass(this._action.alt.item)
                : this._action.alt && this._updateItemClass(this._action.item));
          }
          _updateItemClass(e) {
            var t, i;
            this._itemClassDispose.value = void 0;
            const r =
              this._commandAction.checked &&
              (null === (t = e.toggled) || void 0 === t ? void 0 : t.icon)
                ? e.toggled.icon
                : e.icon;
            if (p.kS.isThemeIcon(r)) {
              const e = p.kS.asClassName(r);
              this.label &&
                e &&
                ((0, n.PT)(this.label, e),
                (this._itemClassDispose.value = (0, l.OF)(() => {
                  this.label && (0, n.GK)(this.label, e);
                })));
            } else if (r) {
              let e;
              if (null === (i = r.dark) || void 0 === i ? void 0 : i.scheme) {
                const t = r.dark.toString();
                D.has(t)
                  ? (e = D.get(t))
                  : ((e = M.nextId()),
                    (0, n.fk)(
                      `.icon.${e}`,
                      `background-image: ${(0, n.wY)(r.light || r.dark)}`
                    ),
                    (0, n.fk)(
                      `.vs-dark .icon.${e}, .hc-black .icon.${e}`,
                      `background-image: ${(0, n.wY)(r.dark)}`
                    ),
                    D.set(t, e)),
                  this.label &&
                    ((0, n.PT)(this.label, 'icon', e),
                    (this._itemClassDispose.value = (0, l.OF)(() => {
                      this.label && (0, n.GK)(this.label, 'icon', e);
                    })));
              }
            }
          }
        };
        N = S([k(1, g.d), k(2, f.lT), k(3, u.i)], N);
        let E = class extends C {
          constructor(e, t, i) {
            var r;
            const s = [];
            if (e.item.icon)
              if (p.kS.isThemeIcon(e.item.icon))
                s.push(p.kS.asClassName(e.item.icon));
              else if (
                null === (r = e.item.icon.dark) || void 0 === r
                  ? void 0
                  : r.scheme
              ) {
                const t = e.item.icon.dark.toString();
                if (D.has(t)) s.push('icon', D.get(t));
                else {
                  const i = M.nextId();
                  s.push('icon', i),
                    (0, n.fk)(
                      `.icon.${i}`,
                      `background-image: ${(0, n.wY)(
                        e.item.icon.light || e.item.icon.dark
                      )}`
                    ),
                    (0, n.fk)(
                      `.vs-dark .icon.${i}, .hc-black .icon.${i}`,
                      `background-image: ${(0, n.wY)(e.item.icon.dark)}`
                    ),
                    D.set(t, i);
                }
              }
            super(e, e.actions, i, { classNames: s });
          }
        };
        E = S([k(1, f.lT), k(2, u.i)], E);
      },
      84144: (e, t, i) => {
        'use strict';
        i.d(t, {
          vr: () => g,
          eH: () => f,
          co: () => p,
          BH: () => m,
          NZ: () => b,
          U8: () => v,
        });
        var n = i(74741),
          r = i(72065),
          s = i(38819),
          o = i(94565),
          a = i(5976),
          l = i(4669),
          c = i(53725),
          d = i(91741),
          h = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          u = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        function g(e) {
          return void 0 !== e.command;
        }
        class f {
          constructor(e) {
            (this.id = f._idPool++), (this._debugName = e);
          }
        }
        (f._idPool = 0),
          (f.CommandPalette = new f('CommandPalette')),
          (f.EditorContext = new f('EditorContext')),
          (f.EditorContextPeek = new f('EditorContextPeek')),
          (f.MenubarEditMenu = new f('MenubarEditMenu')),
          (f.MenubarGoMenu = new f('MenubarGoMenu')),
          (f.MenubarSelectionMenu = new f('MenubarSelectionMenu'));
        const p = (0, r.yh)('menuService'),
          m = new (class {
            constructor() {
              (this._commands = new Map()),
                (this._menuItems = new Map()),
                (this._onDidChangeMenu = new l.Q5()),
                (this.onDidChangeMenu = this._onDidChangeMenu.event),
                (this._commandPaletteChangeEvent = {
                  has: (e) => e === f.CommandPalette,
                });
            }
            addCommand(e) {
              return this.addCommands(c.$.single(e));
            }
            addCommands(e) {
              for (const t of e) this._commands.set(t.id, t);
              return (
                this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),
                (0, a.OF)(() => {
                  let t = !1;
                  for (const i of e) t = this._commands.delete(i.id) || t;
                  t &&
                    this._onDidChangeMenu.fire(this._commandPaletteChangeEvent);
                })
              );
            }
            getCommand(e) {
              return this._commands.get(e);
            }
            getCommands() {
              const e = new Map();
              return this._commands.forEach((t, i) => e.set(i, t)), e;
            }
            appendMenuItem(e, t) {
              return this.appendMenuItems(c.$.single({ id: e, item: t }));
            }
            appendMenuItems(e) {
              const t = new Set(),
                i = new d.S();
              for (const { id: n, item: r } of e) {
                let e = this._menuItems.get(n);
                e || ((e = new d.S()), this._menuItems.set(n, e)),
                  i.push(e.push(r)),
                  t.add(n);
              }
              return (
                this._onDidChangeMenu.fire(t),
                (0, a.OF)(() => {
                  if (i.size > 0) {
                    for (let e of i) e();
                    this._onDidChangeMenu.fire(t), i.clear();
                  }
                })
              );
            }
            getMenuItems(e) {
              let t;
              return (
                (t = this._menuItems.has(e) ? [...this._menuItems.get(e)] : []),
                e === f.CommandPalette && this._appendImplicitItems(t),
                t
              );
            }
            _appendImplicitItems(e) {
              const t = new Set();
              for (const i of e)
                g(i) && (t.add(i.command.id), i.alt && t.add(i.alt.id));
              this._commands.forEach((i, n) => {
                t.has(n) || e.push({ command: i });
              });
            }
          })();
        let _ = class extends n.aU {
          constructor(e, t, i) {
            super(e, t), (this._commandService = i);
          }
          run(...e) {
            return this._commandService.executeCommand(this.id, ...e);
          }
        };
        _ = h([u(2, o.H)], _);
        class b extends n.wY {
          constructor(e, t, i, r) {
            super(
              `submenuitem.${e.submenu.id}`,
              'string' == typeof e.title ? e.title : e.title.value,
              () => {
                const s = [],
                  o = t.createMenu(e.submenu, i),
                  a = o.getActions(r);
                o.dispose();
                for (let e of a) {
                  const [, t] = e;
                  t.length > 0 && (s.push(...t), s.push(new n.Z0()));
                }
                return s.length && s.pop(), s;
              },
              'submenu'
            ),
              (this.item = e);
          }
        }
        let v = class e extends _ {
          constructor(t, i, n, r, s) {
            if (
              ('string' == typeof t.title
                ? super(t.id, t.title, s)
                : super(t.id, t.title.value, s),
              (this._cssClass = void 0),
              (this._enabled =
                !t.precondition || r.contextMatchesRules(t.precondition)),
              (this._tooltip = t.tooltip
                ? 'string' == typeof t.tooltip
                  ? t.tooltip
                  : t.tooltip.value
                : void 0),
              t.toggled)
            ) {
              const e = t.toggled.condition
                ? t.toggled
                : { condition: t.toggled };
              (this._checked = r.contextMatchesRules(e.condition)),
                this._checked &&
                  e.tooltip &&
                  (this._tooltip =
                    'string' == typeof e.tooltip ? e.tooltip : e.tooltip.value);
            }
            (this._options = n || {}),
              (this.item = t),
              (this.alt = i ? new e(i, void 0, this._options, r, s) : void 0);
          }
          dispose() {
            this.alt && this.alt.dispose(), super.dispose();
          }
          run(...e) {
            let t = [];
            return (
              this._options.arg && (t = [...t, this._options.arg]),
              this._options.shouldForwardArgs && (t = [...t, ...e]),
              super.run(...t)
            );
          }
        };
        v = h([u(3, s.i6), u(4, o.H)], v);
      },
      84972: (e, t, i) => {
        'use strict';
        i.d(t, { p: () => n });
        const n = (0, i(72065).yh)('clipboardService');
      },
      94565: (e, t, i) => {
        'use strict';
        i.d(t, { H: () => c, P: () => d });
        var n = i(5976),
          r = i(98401),
          s = i(72065),
          o = i(4669),
          a = i(91741),
          l = i(53725);
        const c = (0, s.yh)('commandService'),
          d = new (class {
            constructor() {
              (this._commands = new Map()),
                (this._onDidRegisterCommand = new o.Q5()),
                (this.onDidRegisterCommand = this._onDidRegisterCommand.event);
            }
            registerCommand(e, t) {
              if (!e) throw new Error('invalid command');
              if ('string' == typeof e) {
                if (!t) throw new Error('invalid command');
                return this.registerCommand({ id: e, handler: t });
              }
              if (e.description) {
                const t = [];
                for (let i of e.description.args) t.push(i.constraint);
                const i = e.handler;
                e.handler = function (e, ...n) {
                  return (0, r.D8)(n, t), i(e, ...n);
                };
              }
              const { id: i } = e;
              let s = this._commands.get(i);
              s || ((s = new a.S()), this._commands.set(i, s));
              let o = s.unshift(e),
                l = (0, n.OF)(() => {
                  o();
                  const e = this._commands.get(i);
                  (null == e ? void 0 : e.isEmpty()) &&
                    this._commands.delete(i);
                });
              return this._onDidRegisterCommand.fire(i), l;
            }
            registerCommandAlias(e, t) {
              return d.registerCommand(e, (e, ...i) =>
                e.get(c).executeCommand(t, ...i)
              );
            }
            getCommand(e) {
              const t = this._commands.get(e);
              if (t && !t.isEmpty()) return l.$.first(t);
            }
            getCommands() {
              const e = new Map();
              for (const t of this._commands.keys()) {
                const i = this.getCommand(t);
                i && e.set(t, i);
              }
              return e;
            }
          })();
      },
      33108: (e, t, i) => {
        'use strict';
        i.d(t, {
          Ui: () => o,
          Od: () => a,
          KV: () => l,
          xL: () => c,
          Mt: () => h,
          MR: () => u,
          O4: () => g,
        });
        var n = i(89872),
          r = i(72065),
          s = i(23193);
        const o = (0, r.yh)('configurationService');
        function a(e, t) {
          const i = Object.create(null);
          for (let n in e) l(i, n, e[n], t);
          return i;
        }
        function l(e, t, i, n) {
          const r = t.split('.'),
            s = r.pop();
          let o = e;
          for (let e = 0; e < r.length; e++) {
            let i = r[e],
              s = o[i];
            switch (typeof s) {
              case 'undefined':
                s = o[i] = Object.create(null);
                break;
              case 'object':
                break;
              default:
                return void n(
                  `Ignoring ${t} as ${r
                    .slice(0, e + 1)
                    .join('.')} is ${JSON.stringify(s)}`
                );
            }
            o = s;
          }
          if ('object' == typeof o && null !== o)
            try {
              o[s] = i;
            } catch (e) {
              n(`Ignoring ${t} as ${r.join('.')} is ${JSON.stringify(o)}`);
            }
          else n(`Ignoring ${t} as ${r.join('.')} is ${JSON.stringify(o)}`);
        }
        function c(e, t) {
          d(e, t.split('.'));
        }
        function d(e, t) {
          const i = t.shift();
          if (0 !== t.length) {
            if (-1 !== Object.keys(e).indexOf(i)) {
              const n = e[i];
              'object' != typeof n ||
                Array.isArray(n) ||
                (d(n, t), 0 === Object.keys(n).length && delete e[i]);
            }
          } else delete e[i];
        }
        function h(e, t, i) {
          const n = (function (e, t) {
            let i = e;
            for (const e of t) {
              if ('object' != typeof i || null === i) return;
              i = i[e];
            }
            return i;
          })(e, t.split('.'));
          return void 0 === n ? i : n;
        }
        function u() {
          const e = n.B.as(s.IP.Configuration).getConfigurationProperties();
          return Object.keys(e);
        }
        function g() {
          const e = Object.create(null),
            t = n.B.as(s.IP.Configuration).getConfigurationProperties();
          for (let i in t)
            l(e, i, t[i].default, (e) =>
              console.error(`Conflict in default settings: ${e}`)
            );
          return e;
        }
      },
      23193: (e, t, i) => {
        'use strict';
        i.d(t, { IP: () => l, G1: () => _, Uh: () => b });
        var n = i(63580),
          r = i(4669),
          s = i(89872),
          o = i(98401),
          a = i(81294);
        const l = { Configuration: 'base.contributions.configuration' },
          c = { properties: {}, patternProperties: {} },
          d = { properties: {}, patternProperties: {} },
          h = { properties: {}, patternProperties: {} },
          u = { properties: {}, patternProperties: {} },
          g = { properties: {}, patternProperties: {} },
          f = { properties: {}, patternProperties: {} },
          p = 'vscode://schemas/settings/resourceLanguage',
          m = s.B.as(a.I.JSONContribution),
          _ = new RegExp('\\[.*\\]$');
        function b(e) {
          return e.substring(1, e.length - 1);
        }
        const v = new (class {
          constructor() {
            (this.overrideIdentifiers = new Set()),
              (this._onDidSchemaChange = new r.Q5()),
              (this._onDidUpdateConfiguration = new r.Q5()),
              (this.defaultValues = {}),
              (this.defaultLanguageConfigurationOverridesNode = {
                id: 'defaultOverrides',
                title: n.N(
                  'defaultLanguageConfigurationOverrides.title',
                  'Default Language Configuration Overrides'
                ),
                properties: {},
              }),
              (this.configurationContributors = [
                this.defaultLanguageConfigurationOverridesNode,
              ]),
              (this.resourceLanguageSettingsSchema = {
                properties: {},
                patternProperties: {},
                additionalProperties: !1,
                errorMessage: 'Unknown editor configuration setting',
                allowTrailingCommas: !0,
                allowComments: !0,
              }),
              (this.configurationProperties = {}),
              (this.excludedConfigurationProperties = {}),
              m.registerSchema(p, this.resourceLanguageSettingsSchema);
          }
          registerConfiguration(e, t = !0) {
            this.registerConfigurations([e], t);
          }
          registerConfigurations(e, t = !0) {
            const i = [];
            e.forEach((e) => {
              i.push(...this.validateAndRegisterProperties(e, t)),
                this.configurationContributors.push(e),
                this.registerJSONConfiguration(e);
            }),
              m.registerSchema(p, this.resourceLanguageSettingsSchema),
              this._onDidSchemaChange.fire(),
              this._onDidUpdateConfiguration.fire(i);
          }
          registerOverrideIdentifiers(e) {
            for (const t of e) this.overrideIdentifiers.add(t);
            this.updateOverridePropertyPatternKey();
          }
          validateAndRegisterProperties(e, t = !0, i = 3) {
            i = o.Jp(e.scope) ? i : e.scope;
            let n = [],
              r = e.properties;
            if (r)
              for (let e in r) {
                if (t && y(e)) {
                  delete r[e];
                  continue;
                }
                const s = r[e];
                this.updatePropertyDefaultValue(e, s),
                  _.test(e)
                    ? (s.scope = void 0)
                    : (s.scope = o.Jp(s.scope) ? i : s.scope),
                  !r[e].hasOwnProperty('included') || r[e].included
                    ? ((this.configurationProperties[e] = r[e]),
                      !r[e].deprecationMessage &&
                        r[e].markdownDeprecationMessage &&
                        (r[e].deprecationMessage =
                          r[e].markdownDeprecationMessage),
                      n.push(e))
                    : ((this.excludedConfigurationProperties[e] = r[e]),
                      delete r[e]);
              }
            let s = e.allOf;
            if (s)
              for (let e of s)
                n.push(...this.validateAndRegisterProperties(e, t, i));
            return n;
          }
          getConfigurationProperties() {
            return this.configurationProperties;
          }
          registerJSONConfiguration(e) {
            const t = (e) => {
              let i = e.properties;
              if (i) for (const e in i) this.updateSchema(e, i[e]);
              let n = e.allOf;
              n && n.forEach(t);
            };
            t(e);
          }
          updateSchema(e, t) {
            switch (((c.properties[e] = t), t.scope)) {
              case 1:
                d.properties[e] = t;
                break;
              case 2:
                h.properties[e] = t;
                break;
              case 6:
                u.properties[e] = t;
                break;
              case 3:
                g.properties[e] = t;
                break;
              case 4:
                f.properties[e] = t;
                break;
              case 5:
                (f.properties[e] = t),
                  (this.resourceLanguageSettingsSchema.properties[e] = t);
            }
          }
          updateOverridePropertyPatternKey() {
            for (const e of this.overrideIdentifiers.values()) {
              const t = `[${e}]`,
                i = {
                  type: 'object',
                  description: n.N(
                    'overrideSettings.defaultDescription',
                    'Configure editor settings to be overridden for a language.'
                  ),
                  errorMessage: n.N(
                    'overrideSettings.errorMessage',
                    'This setting does not support per-language configuration.'
                  ),
                  $ref: p,
                };
              this.updatePropertyDefaultValue(t, i),
                (c.properties[t] = i),
                (d.properties[t] = i),
                (h.properties[t] = i),
                (u.properties[t] = i),
                (g.properties[t] = i),
                (f.properties[t] = i);
            }
            this._onDidSchemaChange.fire();
          }
          updatePropertyDefaultValue(e, t) {
            let i = this.defaultValues[e];
            o.o8(i) && (i = t.default),
              o.o8(i) &&
                (i = (function (e) {
                  switch (Array.isArray(e) ? e[0] : e) {
                    case 'boolean':
                      return !1;
                    case 'integer':
                    case 'number':
                      return 0;
                    case 'string':
                      return '';
                    case 'array':
                      return [];
                    case 'object':
                      return {};
                    default:
                      return null;
                  }
                })(t.type)),
              (t.default = i);
          }
        })();
        function y(e) {
          return _.test(e)
            ? n.N(
                'config.property.languageDefault',
                "Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",
                e
              )
            : void 0 !== v.getConfigurationProperties()[e]
            ? n.N(
                'config.property.duplicate',
                "Cannot register '{0}'. This property is already registered.",
                e
              )
            : null;
        }
        s.B.add(l.Configuration, v);
      },
      38819: (e, t, i) => {
        'use strict';
        i.d(t, { Ao: () => l, uy: () => C, i6: () => S, Eq: () => k });
        var n = i(97295),
          r = i(72065),
          s = i(1432);
        const o = new Map();
        o.set('false', !1),
          o.set('true', !0),
          o.set('isMac', s.dz),
          o.set('isLinux', s.IJ),
          o.set('isWindows', s.ED),
          o.set('isWeb', s.$L),
          o.set('isMacNative', s.dz && !s.$L);
        const a = Object.prototype.hasOwnProperty;
        class l {
          static has(e) {
            return u.create(e);
          }
          static equals(e, t) {
            return g.create(e, t);
          }
          static regex(e, t) {
            return b.create(e, t);
          }
          static not(e) {
            return _.create(e);
          }
          static and(...e) {
            return y.create(e);
          }
          static or(...e) {
            return w.create(e);
          }
          static deserialize(e, t = !1) {
            if (e) return this._deserializeOrExpression(e, t);
          }
          static _deserializeOrExpression(e, t) {
            let i = e.split('||');
            return w.create(i.map((e) => this._deserializeAndExpression(e, t)));
          }
          static _deserializeAndExpression(e, t) {
            let i = e.split('&&');
            return y.create(i.map((e) => this._deserializeOne(e, t)));
          }
          static _deserializeOne(e, t) {
            if ((e = e.trim()).indexOf('!=') >= 0) {
              let i = e.split('!=');
              return m.create(i[0].trim(), this._deserializeValue(i[1], t));
            }
            if (e.indexOf('==') >= 0) {
              let i = e.split('==');
              return g.create(i[0].trim(), this._deserializeValue(i[1], t));
            }
            if (e.indexOf('=~') >= 0) {
              let i = e.split('=~');
              return b.create(
                i[0].trim(),
                this._deserializeRegexValue(i[1], t)
              );
            }
            if (e.indexOf(' in ') >= 0) {
              let t = e.split(' in ');
              return f.create(t[0].trim(), t[1].trim());
            }
            return /^\!\s*/.test(e)
              ? _.create(e.substr(1).trim())
              : u.create(e);
          }
          static _deserializeValue(e, t) {
            if ('true' === (e = e.trim())) return !0;
            if ('false' === e) return !1;
            let i = /^'([^']*)'$/.exec(e);
            return i ? i[1].trim() : e;
          }
          static _deserializeRegexValue(e, t) {
            if ((0, n.m5)(e)) {
              if (t) throw new Error('missing regexp-value for =~-expression');
              return (
                console.warn('missing regexp-value for =~-expression'), null
              );
            }
            let i = e.indexOf('/'),
              r = e.lastIndexOf('/');
            if (i === r || i < 0) {
              if (t)
                throw new Error(`bad regexp-value '${e}', missing /-enclosure`);
              return (
                console.warn(`bad regexp-value '${e}', missing /-enclosure`),
                null
              );
            }
            let s = e.slice(i + 1, r),
              o = 'i' === e[r + 1] ? 'i' : '';
            try {
              return new RegExp(s, o);
            } catch (i) {
              if (t)
                throw new Error(`bad regexp-value '${e}', parse error: ${i}`);
              return (
                console.warn(`bad regexp-value '${e}', parse error: ${i}`), null
              );
            }
          }
        }
        function c(e, t) {
          return e.cmp(t);
        }
        class d {
          constructor() {
            this.type = 0;
          }
          cmp(e) {
            return this.type - e.type;
          }
          equals(e) {
            return e.type === this.type;
          }
          evaluate(e) {
            return !1;
          }
          serialize() {
            return 'false';
          }
          keys() {
            return [];
          }
          negate() {
            return h.INSTANCE;
          }
        }
        d.INSTANCE = new d();
        class h {
          constructor() {
            this.type = 1;
          }
          cmp(e) {
            return this.type - e.type;
          }
          equals(e) {
            return e.type === this.type;
          }
          evaluate(e) {
            return !0;
          }
          serialize() {
            return 'true';
          }
          keys() {
            return [];
          }
          negate() {
            return d.INSTANCE;
          }
        }
        h.INSTANCE = new h();
        class u {
          constructor(e) {
            (this.key = e), (this.type = 2);
          }
          static create(e) {
            const t = o.get(e);
            return 'boolean' == typeof t
              ? t
                ? h.INSTANCE
                : d.INSTANCE
              : new u(e);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this.key < e.key
              ? -1
              : this.key > e.key
              ? 1
              : 0;
          }
          equals(e) {
            return e.type === this.type && this.key === e.key;
          }
          evaluate(e) {
            return !!e.getValue(this.key);
          }
          serialize() {
            return this.key;
          }
          keys() {
            return [this.key];
          }
          negate() {
            return _.create(this.key);
          }
        }
        class g {
          constructor(e, t) {
            (this.key = e), (this.value = t), (this.type = 4);
          }
          static create(e, t) {
            if ('boolean' == typeof t) return t ? u.create(e) : _.create(e);
            const i = o.get(e);
            return 'boolean' == typeof i
              ? t === (i ? 'true' : 'false')
                ? h.INSTANCE
                : d.INSTANCE
              : new g(e, t);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this.key < e.key
              ? -1
              : this.key > e.key
              ? 1
              : this.value < e.value
              ? -1
              : this.value > e.value
              ? 1
              : 0;
          }
          equals(e) {
            return (
              e.type === this.type &&
              this.key === e.key &&
              this.value === e.value
            );
          }
          evaluate(e) {
            return e.getValue(this.key) == this.value;
          }
          serialize() {
            return this.key + " == '" + this.value + "'";
          }
          keys() {
            return [this.key];
          }
          negate() {
            return m.create(this.key, this.value);
          }
        }
        class f {
          constructor(e, t) {
            (this.key = e), (this.valueKey = t), (this.type = 10);
          }
          static create(e, t) {
            return new f(e, t);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this.key < e.key
              ? -1
              : this.key > e.key
              ? 1
              : this.valueKey < e.valueKey
              ? -1
              : this.valueKey > e.valueKey
              ? 1
              : 0;
          }
          equals(e) {
            return (
              e.type === this.type &&
              this.key === e.key &&
              this.valueKey === e.valueKey
            );
          }
          evaluate(e) {
            const t = e.getValue(this.valueKey),
              i = e.getValue(this.key);
            return Array.isArray(t)
              ? t.indexOf(i) >= 0
              : 'string' == typeof i &&
                  'object' == typeof t &&
                  null !== t &&
                  a.call(t, i);
          }
          serialize() {
            return this.key + " in '" + this.valueKey + "'";
          }
          keys() {
            return [this.key, this.valueKey];
          }
          negate() {
            return p.create(this);
          }
        }
        class p {
          constructor(e) {
            (this._actual = e), (this.type = 11);
          }
          static create(e) {
            return new p(e);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this._actual.cmp(e._actual);
          }
          equals(e) {
            return e.type === this.type && this._actual.equals(e._actual);
          }
          evaluate(e) {
            return !this._actual.evaluate(e);
          }
          serialize() {
            throw new Error('Method not implemented.');
          }
          keys() {
            return this._actual.keys();
          }
          negate() {
            return this._actual;
          }
        }
        class m {
          constructor(e, t) {
            (this.key = e), (this.value = t), (this.type = 5);
          }
          static create(e, t) {
            if ('boolean' == typeof t) return t ? _.create(e) : u.create(e);
            const i = o.get(e);
            return 'boolean' == typeof i
              ? t === (i ? 'true' : 'false')
                ? d.INSTANCE
                : h.INSTANCE
              : new m(e, t);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this.key < e.key
              ? -1
              : this.key > e.key
              ? 1
              : this.value < e.value
              ? -1
              : this.value > e.value
              ? 1
              : 0;
          }
          equals(e) {
            return (
              e.type === this.type &&
              this.key === e.key &&
              this.value === e.value
            );
          }
          evaluate(e) {
            return e.getValue(this.key) != this.value;
          }
          serialize() {
            return this.key + " != '" + this.value + "'";
          }
          keys() {
            return [this.key];
          }
          negate() {
            return g.create(this.key, this.value);
          }
        }
        class _ {
          constructor(e) {
            (this.key = e), (this.type = 3);
          }
          static create(e) {
            const t = o.get(e);
            return 'boolean' == typeof t
              ? t
                ? d.INSTANCE
                : h.INSTANCE
              : new _(e);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this.key < e.key
              ? -1
              : this.key > e.key
              ? 1
              : 0;
          }
          equals(e) {
            return e.type === this.type && this.key === e.key;
          }
          evaluate(e) {
            return !e.getValue(this.key);
          }
          serialize() {
            return '!' + this.key;
          }
          keys() {
            return [this.key];
          }
          negate() {
            return u.create(this.key);
          }
        }
        class b {
          constructor(e, t) {
            (this.key = e), (this.regexp = t), (this.type = 7);
          }
          static create(e, t) {
            return new b(e, t);
          }
          cmp(e) {
            if (e.type !== this.type) return this.type - e.type;
            if (this.key < e.key) return -1;
            if (this.key > e.key) return 1;
            const t = this.regexp ? this.regexp.source : '',
              i = e.regexp ? e.regexp.source : '';
            return t < i ? -1 : t > i ? 1 : 0;
          }
          equals(e) {
            if (e.type === this.type) {
              const t = this.regexp ? this.regexp.source : '',
                i = e.regexp ? e.regexp.source : '';
              return this.key === e.key && t === i;
            }
            return !1;
          }
          evaluate(e) {
            let t = e.getValue(this.key);
            return !!this.regexp && this.regexp.test(t);
          }
          serialize() {
            const e = this.regexp
              ? `/${this.regexp.source}/${this.regexp.ignoreCase ? 'i' : ''}`
              : '/invalid/';
            return `${this.key} =~ ${e}`;
          }
          keys() {
            return [this.key];
          }
          negate() {
            return v.create(this);
          }
        }
        class v {
          constructor(e) {
            (this._actual = e), (this.type = 8);
          }
          static create(e) {
            return new v(e);
          }
          cmp(e) {
            return e.type !== this.type
              ? this.type - e.type
              : this._actual.cmp(e._actual);
          }
          equals(e) {
            return e.type === this.type && this._actual.equals(e._actual);
          }
          evaluate(e) {
            return !this._actual.evaluate(e);
          }
          serialize() {
            throw new Error('Method not implemented.');
          }
          keys() {
            return this._actual.keys();
          }
          negate() {
            return this._actual;
          }
        }
        class y {
          constructor(e) {
            (this.expr = e), (this.type = 6);
          }
          static create(e) {
            return y._normalizeArr(e);
          }
          cmp(e) {
            if (e.type !== this.type) return this.type - e.type;
            if (this.expr.length < e.expr.length) return -1;
            if (this.expr.length > e.expr.length) return 1;
            for (let t = 0, i = this.expr.length; t < i; t++) {
              const i = c(this.expr[t], e.expr[t]);
              if (0 !== i) return i;
            }
            return 0;
          }
          equals(e) {
            if (e.type === this.type) {
              if (this.expr.length !== e.expr.length) return !1;
              for (let t = 0, i = this.expr.length; t < i; t++)
                if (!this.expr[t].equals(e.expr[t])) return !1;
              return !0;
            }
            return !1;
          }
          evaluate(e) {
            for (let t = 0, i = this.expr.length; t < i; t++)
              if (!this.expr[t].evaluate(e)) return !1;
            return !0;
          }
          static _normalizeArr(e) {
            const t = [];
            let i = !1;
            for (const n of e)
              if (n)
                if (1 !== n.type) {
                  if (0 === n.type) return d.INSTANCE;
                  6 !== n.type ? t.push(n) : t.push(...n.expr);
                } else i = !0;
            if (0 === t.length && i) return h.INSTANCE;
            if (0 !== t.length) {
              if (1 === t.length) return t[0];
              for (t.sort(c); t.length > 1; ) {
                const e = t[t.length - 1];
                if (9 !== e.type) break;
                t.pop();
                const i = t.pop(),
                  n = w.create(e.expr.map((e) => y.create([e, i])));
                n && (t.push(n), t.sort(c));
              }
              return new y(t);
            }
          }
          serialize() {
            return this.expr.map((e) => e.serialize()).join(' && ');
          }
          keys() {
            const e = [];
            for (let t of this.expr) e.push(...t.keys());
            return e;
          }
          negate() {
            let e = [];
            for (let t of this.expr) e.push(t.negate());
            return w.create(e);
          }
        }
        class w {
          constructor(e) {
            (this.expr = e), (this.type = 9);
          }
          static create(e) {
            const t = w._normalizeArr(e);
            if (0 !== t.length) return 1 === t.length ? t[0] : new w(t);
          }
          cmp(e) {
            if (e.type !== this.type) return this.type - e.type;
            if (this.expr.length < e.expr.length) return -1;
            if (this.expr.length > e.expr.length) return 1;
            for (let t = 0, i = this.expr.length; t < i; t++) {
              const i = c(this.expr[t], e.expr[t]);
              if (0 !== i) return i;
            }
            return 0;
          }
          equals(e) {
            if (e.type === this.type) {
              if (this.expr.length !== e.expr.length) return !1;
              for (let t = 0, i = this.expr.length; t < i; t++)
                if (!this.expr[t].equals(e.expr[t])) return !1;
              return !0;
            }
            return !1;
          }
          evaluate(e) {
            for (let t = 0, i = this.expr.length; t < i; t++)
              if (this.expr[t].evaluate(e)) return !0;
            return !1;
          }
          static _normalizeArr(e) {
            let t = [],
              i = !1;
            if (e) {
              for (let n = 0, r = e.length; n < r; n++) {
                const r = e[n];
                if (r)
                  if (0 !== r.type) {
                    if (1 === r.type) return [h.INSTANCE];
                    9 !== r.type ? t.push(r) : (t = t.concat(r.expr));
                  } else i = !0;
              }
              if (0 === t.length && i) return [d.INSTANCE];
              t.sort(c);
            }
            return t;
          }
          serialize() {
            return this.expr.map((e) => e.serialize()).join(' || ');
          }
          keys() {
            const e = [];
            for (let t of this.expr) e.push(...t.keys());
            return e;
          }
          negate() {
            let e = [];
            for (let t of this.expr) e.push(t.negate());
            const t = (e) => (9 === e.type ? e.expr : [e]);
            for (; e.length > 1; ) {
              const i = e.shift(),
                n = e.shift(),
                r = [];
              for (const e of t(i)) for (const i of t(n)) r.push(l.and(e, i));
              e.unshift(l.or(...r));
            }
            return e[0];
          }
        }
        class C extends u {
          constructor(e, t) {
            super(e), (this._defaultValue = t);
          }
          bindTo(e) {
            return e.createKey(this.key, this._defaultValue);
          }
          getValue(e) {
            return e.getContextKeyValue(this.key);
          }
          toNegated() {
            return l.not(this.key);
          }
        }
        const S = (0, r.yh)('contextKeyService'),
          k = 'setContext';
      },
      5606: (e, t, i) => {
        'use strict';
        i.d(t, { u: () => r, i: () => s });
        var n = i(72065);
        const r = (0, n.yh)('contextViewService'),
          s = (0, n.yh)('contextMenuService');
      },
      28820: (e, t, i) => {
        'use strict';
        i.d(t, { S: () => n });
        const n = (0, i(72065).yh)('dialogService');
      },
      97108: (e, t, i) => {
        'use strict';
        i.d(t, { M: () => n });
        class n {
          constructor(e, t = [], i = !1) {
            (this.ctor = e),
              (this.staticArguments = t),
              (this.supportsDelayedInstantiation = i);
          }
        }
      },
      65026: (e, t, i) => {
        'use strict';
        i.d(t, { z: () => s, d: () => o });
        var n = i(97108);
        const r = [];
        function s(e, t, i) {
          r.push([e, new n.M(t, [], i)]);
        }
        function o() {
          return r;
        }
      },
      72065: (e, t, i) => {
        'use strict';
        var n;
        i.d(t, { I8: () => n, TG: () => r, yh: () => o, jt: () => a }),
          (function (e) {
            (e.serviceIds = new Map()),
              (e.DI_TARGET = '$di$target'),
              (e.DI_DEPENDENCIES = '$di$dependencies'),
              (e.getServiceDependencies = function (t) {
                return t[e.DI_DEPENDENCIES] || [];
              });
          })(n || (n = {}));
        const r = o('instantiationService');
        function s(e, t, i, r) {
          t[n.DI_TARGET] === t
            ? t[n.DI_DEPENDENCIES].push({ id: e, index: i, optional: r })
            : ((t[n.DI_DEPENDENCIES] = [{ id: e, index: i, optional: r }]),
              (t[n.DI_TARGET] = t));
        }
        function o(e) {
          if (n.serviceIds.has(e)) return n.serviceIds.get(e);
          const t = function (e, i, n) {
            if (3 !== arguments.length)
              throw new Error(
                '@IServiceName-decorator can only be used to decorate a parameter'
              );
            s(t, e, n, !1);
          };
          return (t.toString = () => e), n.serviceIds.set(e, t), t;
        }
        function a(e) {
          return function (t, i, n) {
            if (3 !== arguments.length)
              throw new Error(
                '@optional-decorator can only be used to decorate a parameter'
              );
            s(e, t, n, !0);
          };
        }
      },
      60972: (e, t, i) => {
        'use strict';
        i.d(t, { y: () => n });
        class n {
          constructor(...e) {
            this._entries = new Map();
            for (let [t, i] of e) this.set(t, i);
          }
          set(e, t) {
            const i = this._entries.get(e);
            return this._entries.set(e, t), i;
          }
          has(e) {
            return this._entries.has(e);
          }
          get(e) {
            return this._entries.get(e);
          }
        }
      },
      81294: (e, t, i) => {
        'use strict';
        i.d(t, { I: () => s });
        var n = i(89872),
          r = i(4669);
        const s = { JSONContribution: 'base.contributions.json' },
          o = new (class {
            constructor() {
              (this._onDidChangeSchema = new r.Q5()), (this.schemasById = {});
            }
            registerSchema(e, t) {
              var i;
              (this.schemasById[
                ((i = e),
                i.length > 0 && '#' === i.charAt(i.length - 1)
                  ? i.substring(0, i.length - 1)
                  : i)
              ] = t),
                this._onDidChangeSchema.fire(e);
            }
            notifySchemaChanged(e) {
              this._onDidChangeSchema.fire(e);
            }
          })();
        n.B.add(s.JSONContribution, o);
      },
      91847: (e, t, i) => {
        'use strict';
        i.d(t, { d: () => n });
        const n = (0, i(72065).yh)('keybindingService');
      },
      49989: (e, t, i) => {
        'use strict';
        i.d(t, { W: () => l });
        var n = i(22258),
          r = i(1432),
          s = i(94565),
          o = i(89872);
        class a {
          constructor() {
            (this._coreKeybindings = []),
              (this._extensionKeybindings = []),
              (this._cachedMergedKeybindings = null);
          }
          static bindToCurrentPlatform(e) {
            if (1 === r.OS) {
              if (e && e.win) return e.win;
            } else if (2 === r.OS) {
              if (e && e.mac) return e.mac;
            } else if (e && e.linux) return e.linux;
            return e;
          }
          registerKeybindingRule(e) {
            const t = a.bindToCurrentPlatform(e);
            if (t && t.primary) {
              const i = (0, n.gm)(t.primary, r.OS);
              i &&
                this._registerDefaultKeybinding(
                  i,
                  e.id,
                  e.args,
                  e.weight,
                  0,
                  e.when
                );
            }
            if (t && Array.isArray(t.secondary))
              for (let i = 0, s = t.secondary.length; i < s; i++) {
                const s = t.secondary[i],
                  o = (0, n.gm)(s, r.OS);
                o &&
                  this._registerDefaultKeybinding(
                    o,
                    e.id,
                    e.args,
                    e.weight,
                    -i - 1,
                    e.when
                  );
              }
          }
          registerCommandAndKeybindingRule(e) {
            this.registerKeybindingRule(e), s.P.registerCommand(e);
          }
          static _mightProduceChar(e) {
            return (
              (e >= 21 && e <= 30) ||
              (e >= 31 && e <= 56) ||
              80 === e ||
              81 === e ||
              82 === e ||
              83 === e ||
              84 === e ||
              85 === e ||
              86 === e ||
              110 === e ||
              111 === e ||
              87 === e ||
              88 === e ||
              89 === e ||
              90 === e ||
              91 === e ||
              92 === e
            );
          }
          _assertNoCtrlAlt(e, t) {
            e.ctrlKey &&
              e.altKey &&
              !e.metaKey &&
              a._mightProduceChar(e.keyCode) &&
              console.warn(
                'Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ',
                e,
                ' for ',
                t
              );
          }
          _registerDefaultKeybinding(e, t, i, n, s, o) {
            1 === r.OS && this._assertNoCtrlAlt(e.parts[0], t),
              this._coreKeybindings.push({
                keybinding: e,
                command: t,
                commandArgs: i,
                when: o,
                weight1: n,
                weight2: s,
                extensionId: null,
              }),
              (this._cachedMergedKeybindings = null);
          }
          getDefaultKeybindings() {
            return (
              this._cachedMergedKeybindings ||
                ((this._cachedMergedKeybindings = []
                  .concat(this._coreKeybindings)
                  .concat(this._extensionKeybindings)),
                this._cachedMergedKeybindings.sort(c)),
              this._cachedMergedKeybindings.slice(0)
            );
          }
        }
        const l = new a();
        function c(e, t) {
          return e.weight1 !== t.weight1
            ? e.weight1 - t.weight1
            : e.command < t.command
            ? -1
            : e.command > t.command
            ? 1
            : e.weight2 - t.weight2;
        }
        o.B.add('platform.keybindingsRegistry', l);
      },
      44349: (e, t, i) => {
        'use strict';
        i.d(t, { e: () => n });
        const n = (0, i(72065).yh)('labelService');
      },
      58664: (e, t, i) => {
        'use strict';
        i.d(t, {
          Lw: () => We,
          XN: () => Ye,
          ls: () => _t,
          ev: () => ct,
          CQ: () => Ve,
        });
        var n = i(65321),
          r = i(5976),
          s = i(9488),
          o = i(43799),
          a = i(4669),
          l = i(71050);
        class c {
          constructor(e, t) {
            (this.renderer = e), (this.modelProvider = t);
          }
          get templateId() {
            return this.renderer.templateId;
          }
          renderTemplate(e) {
            return {
              data: this.renderer.renderTemplate(e),
              disposable: r.JT.None,
            };
          }
          renderElement(e, t, i, n) {
            if ((i.disposable && i.disposable.dispose(), !i.data)) return;
            const r = this.modelProvider();
            if (r.isResolved(e))
              return this.renderer.renderElement(r.get(e), e, i.data, n);
            const s = new l.A(),
              o = r.resolve(e, s.token);
            (i.disposable = { dispose: () => s.cancel() }),
              this.renderer.renderPlaceholder(e, i.data),
              o.then((t) => this.renderer.renderElement(t, e, i.data, n));
          }
          disposeTemplate(e) {
            e.disposable && (e.disposable.dispose(), (e.disposable = void 0)),
              e.data &&
                (this.renderer.disposeTemplate(e.data), (e.data = void 0));
          }
        }
        class d {
          constructor(e, t) {
            (this.modelProvider = e), (this.accessibilityProvider = t);
          }
          getWidgetAriaLabel() {
            return this.accessibilityProvider.getWidgetAriaLabel();
          }
          getAriaLabel(e) {
            const t = this.modelProvider();
            return t.isResolved(e)
              ? this.accessibilityProvider.getAriaLabel(t.get(e))
              : null;
          }
        }
        var h,
          u = i(63580),
          g = i(33108),
          f = i(23193),
          p = i(38819),
          m = i(72065),
          _ = i(91847),
          b = i(89872),
          v = i(88810),
          y = i(97781),
          w = i(53725),
          C = i(59069);
        !(function (e) {
          (e[(e.Unknown = 0)] = 'Unknown'),
            (e[(e.Twistie = 1)] = 'Twistie'),
            (e[(e.Element = 2)] = 'Element');
        })(h || (h = {}));
        class S extends Error {
          constructor(e, t) {
            super(`TreeError [${e}] ${t}`);
          }
        }
        class k {
          constructor(e) {
            (this.fn = e), (this._map = new WeakMap());
          }
          map(e) {
            let t = this._map.get(e);
            return t || ((t = this.fn(e)), this._map.set(e, t)), t;
          }
        }
        var x = i(23547),
          L = i(25707),
          M = i(4850),
          D = i(75392);
        function N(e) {
          return 'object' == typeof e && 'visibility' in e && 'data' in e;
        }
        function E(e) {
          switch (e) {
            case !0:
              return 1;
            case !1:
              return 0;
            default:
              return e;
          }
        }
        function T(e) {
          return 'boolean' == typeof e.collapsible;
        }
        class I {
          constructor(e, t, i, n = {}) {
            (this.user = e),
              (this.list = t),
              (this.rootRef = []),
              (this.eventBufferer = new a.E7()),
              (this._onDidChangeCollapseState = new a.Q5()),
              (this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(
                this._onDidChangeCollapseState.event
              )),
              (this._onDidChangeRenderNodeCount = new a.Q5()),
              (this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(
                this._onDidChangeRenderNodeCount.event
              )),
              (this._onDidSplice = new a.Q5()),
              (this.onDidSplice = this._onDidSplice.event),
              (this.collapseByDefault =
                void 0 !== n.collapseByDefault && n.collapseByDefault),
              (this.filter = n.filter),
              (this.autoExpandSingleChildren =
                void 0 !== n.autoExpandSingleChildren &&
                n.autoExpandSingleChildren),
              (this.root = {
                parent: void 0,
                element: i,
                children: [],
                depth: 0,
                visibleChildrenCount: 0,
                visibleChildIndex: -1,
                collapsible: !1,
                collapsed: !1,
                renderNodeCount: 0,
                visibility: 1,
                visible: !0,
                filterData: void 0,
              });
          }
          splice(e, t, i = w.$.empty(), n, r) {
            if (0 === e.length) throw new S(this.user, 'Invalid tree location');
            const {
                parentNode: s,
                listIndex: o,
                revealed: a,
                visible: l,
              } = this.getParentNodeWithListIndex(e),
              c = [],
              d = w.$.map(i, (e) =>
                this.createTreeNode(e, s, s.visible ? 1 : 0, a, c, n)
              ),
              h = e[e.length - 1];
            let u = 0;
            for (let e = h; e >= 0 && e < s.children.length; e--) {
              const t = s.children[e];
              if (t.visible) {
                u = t.visibleChildIndex;
                break;
              }
            }
            const g = [];
            let f = 0,
              p = 0;
            for (const e of d)
              g.push(e),
                (p += e.renderNodeCount),
                e.visible && (e.visibleChildIndex = u + f++);
            const m = s.children.splice(h, t, ...g);
            let _ = 0;
            for (const e of m) e.visible && _++;
            if (0 !== _)
              for (let e = h + g.length; e < s.children.length; e++) {
                const t = s.children[e];
                t.visible && (t.visibleChildIndex -= _);
              }
            if (((s.visibleChildrenCount += f - _), a && l)) {
              const e = m.reduce(
                (e, t) => e + (t.visible ? t.renderNodeCount : 0),
                0
              );
              this._updateAncestorsRenderNodeCount(s, p - e),
                this.list.splice(o, e, c);
            }
            if (m.length > 0 && r) {
              const e = (t) => {
                r(t), t.children.forEach(e);
              };
              m.forEach(e);
            }
            this._onDidSplice.fire({ insertedNodes: g, deletedNodes: m });
            let b = s;
            for (; b; ) {
              if (2 === b.visibility) {
                this.refilter();
                break;
              }
              b = b.parent;
            }
          }
          rerender(e) {
            if (0 === e.length) throw new S(this.user, 'Invalid tree location');
            const {
              node: t,
              listIndex: i,
              revealed: n,
            } = this.getTreeNodeWithListIndex(e);
            t.visible && n && this.list.splice(i, 1, [t]);
          }
          has(e) {
            return this.hasTreeNode(e);
          }
          getListIndex(e) {
            const {
              listIndex: t,
              visible: i,
              revealed: n,
            } = this.getTreeNodeWithListIndex(e);
            return i && n ? t : -1;
          }
          getListRenderCount(e) {
            return this.getTreeNode(e).renderNodeCount;
          }
          isCollapsible(e) {
            return this.getTreeNode(e).collapsible;
          }
          setCollapsible(e, t) {
            const i = this.getTreeNode(e);
            void 0 === t && (t = !i.collapsible);
            const n = { collapsible: t };
            return this.eventBufferer.bufferEvents(() =>
              this._setCollapseState(e, n)
            );
          }
          isCollapsed(e) {
            return this.getTreeNode(e).collapsed;
          }
          setCollapsed(e, t, i) {
            const n = this.getTreeNode(e);
            void 0 === t && (t = !n.collapsed);
            const r = { collapsed: t, recursive: i || !1 };
            return this.eventBufferer.bufferEvents(() =>
              this._setCollapseState(e, r)
            );
          }
          _setCollapseState(e, t) {
            const {
                node: i,
                listIndex: n,
                revealed: r,
              } = this.getTreeNodeWithListIndex(e),
              s = this._setListNodeCollapseState(i, n, r, t);
            if (
              i !== this.root &&
              this.autoExpandSingleChildren &&
              s &&
              !T(t) &&
              i.collapsible &&
              !i.collapsed &&
              !t.recursive
            ) {
              let n = -1;
              for (let e = 0; e < i.children.length; e++)
                if (i.children[e].visible) {
                  if (n > -1) {
                    n = -1;
                    break;
                  }
                  n = e;
                }
              n > -1 && this._setCollapseState([...e, n], t);
            }
            return s;
          }
          _setListNodeCollapseState(e, t, i, n) {
            const r = this._setNodeCollapseState(e, n, !1);
            if (!i || !e.visible || !r) return r;
            const s = e.renderNodeCount,
              o = this.updateNodeAfterCollapseChange(e),
              a = s - (-1 === t ? 0 : 1);
            return this.list.splice(t + 1, a, o.slice(1)), r;
          }
          _setNodeCollapseState(e, t, i) {
            let n;
            if (
              (e === this.root
                ? (n = !1)
                : (T(t)
                    ? ((n = e.collapsible !== t.collapsible),
                      (e.collapsible = t.collapsible))
                    : e.collapsible
                    ? ((n = e.collapsed !== t.collapsed),
                      (e.collapsed = t.collapsed))
                    : (n = !1),
                  n &&
                    this._onDidChangeCollapseState.fire({ node: e, deep: i })),
              !T(t) && t.recursive)
            )
              for (const i of e.children)
                n = this._setNodeCollapseState(i, t, !0) || n;
            return n;
          }
          expandTo(e) {
            this.eventBufferer.bufferEvents(() => {
              let t = this.getTreeNode(e);
              for (; t.parent; )
                (t = t.parent),
                  (e = e.slice(0, e.length - 1)),
                  t.collapsed &&
                    this._setCollapseState(e, { collapsed: !1, recursive: !1 });
            });
          }
          refilter() {
            const e = this.root.renderNodeCount,
              t = this.updateNodeAfterFilterChange(this.root);
            this.list.splice(0, e, t);
          }
          createTreeNode(e, t, i, n, r, s) {
            const o = {
                parent: t,
                element: e.element,
                children: [],
                depth: t.depth + 1,
                visibleChildrenCount: 0,
                visibleChildIndex: -1,
                collapsible:
                  'boolean' == typeof e.collapsible
                    ? e.collapsible
                    : void 0 !== e.collapsed,
                collapsed:
                  void 0 === e.collapsed ? this.collapseByDefault : e.collapsed,
                renderNodeCount: 1,
                visibility: 1,
                visible: !0,
                filterData: void 0,
              },
              a = this._filterNode(o, i);
            (o.visibility = a), n && r.push(o);
            const l = e.children || w.$.empty(),
              c = n && 0 !== a && !o.collapsed,
              d = w.$.map(l, (e) => this.createTreeNode(e, o, a, c, r, s));
            let h = 0,
              u = 1;
            for (const e of d)
              o.children.push(e),
                (u += e.renderNodeCount),
                e.visible && (e.visibleChildIndex = h++);
            return (
              (o.collapsible = o.collapsible || o.children.length > 0),
              (o.visibleChildrenCount = h),
              (o.visible = 2 === a ? h > 0 : 1 === a),
              o.visible
                ? o.collapsed || (o.renderNodeCount = u)
                : ((o.renderNodeCount = 0), n && r.pop()),
              s && s(o),
              o
            );
          }
          updateNodeAfterCollapseChange(e) {
            const t = e.renderNodeCount,
              i = [];
            return (
              this._updateNodeAfterCollapseChange(e, i),
              this._updateAncestorsRenderNodeCount(e.parent, i.length - t),
              i
            );
          }
          _updateNodeAfterCollapseChange(e, t) {
            if (!1 === e.visible) return 0;
            if ((t.push(e), (e.renderNodeCount = 1), !e.collapsed))
              for (const i of e.children)
                e.renderNodeCount += this._updateNodeAfterCollapseChange(i, t);
            return this._onDidChangeRenderNodeCount.fire(e), e.renderNodeCount;
          }
          updateNodeAfterFilterChange(e) {
            const t = e.renderNodeCount,
              i = [];
            return (
              this._updateNodeAfterFilterChange(e, e.visible ? 1 : 0, i),
              this._updateAncestorsRenderNodeCount(e.parent, i.length - t),
              i
            );
          }
          _updateNodeAfterFilterChange(e, t, i, n = !0) {
            let r;
            if (e !== this.root) {
              if (((r = this._filterNode(e, t)), 0 === r))
                return (e.visible = !1), (e.renderNodeCount = 0), !1;
              n && i.push(e);
            }
            const s = i.length;
            e.renderNodeCount = e === this.root ? 0 : 1;
            let o = !1;
            if (e.collapsed && 0 === r) e.visibleChildrenCount = 0;
            else {
              let t = 0;
              for (const s of e.children)
                (o =
                  this._updateNodeAfterFilterChange(
                    s,
                    r,
                    i,
                    n && !e.collapsed
                  ) || o),
                  s.visible && (s.visibleChildIndex = t++);
              e.visibleChildrenCount = t;
            }
            return (
              e !== this.root && (e.visible = 2 === r ? o : 1 === r),
              e.visible
                ? e.collapsed || (e.renderNodeCount += i.length - s)
                : ((e.renderNodeCount = 0), n && i.pop()),
              this._onDidChangeRenderNodeCount.fire(e),
              e.visible
            );
          }
          _updateAncestorsRenderNodeCount(e, t) {
            if (0 !== t)
              for (; e; )
                (e.renderNodeCount += t),
                  this._onDidChangeRenderNodeCount.fire(e),
                  (e = e.parent);
          }
          _filterNode(e, t) {
            const i = this.filter ? this.filter.filter(e.element, t) : 1;
            return 'boolean' == typeof i
              ? ((e.filterData = void 0), i ? 1 : 0)
              : N(i)
              ? ((e.filterData = i.data), E(i.visibility))
              : ((e.filterData = void 0), E(i));
          }
          hasTreeNode(e, t = this.root) {
            if (!e || 0 === e.length) return !0;
            const [i, ...n] = e;
            return (
              !(i < 0 || i > t.children.length) &&
              this.hasTreeNode(n, t.children[i])
            );
          }
          getTreeNode(e, t = this.root) {
            if (!e || 0 === e.length) return t;
            const [i, ...n] = e;
            if (i < 0 || i > t.children.length)
              throw new S(this.user, 'Invalid tree location');
            return this.getTreeNode(n, t.children[i]);
          }
          getTreeNodeWithListIndex(e) {
            if (0 === e.length)
              return {
                node: this.root,
                listIndex: -1,
                revealed: !0,
                visible: !1,
              };
            const {
                parentNode: t,
                listIndex: i,
                revealed: n,
                visible: r,
              } = this.getParentNodeWithListIndex(e),
              s = e[e.length - 1];
            if (s < 0 || s > t.children.length)
              throw new S(this.user, 'Invalid tree location');
            const o = t.children[s];
            return {
              node: o,
              listIndex: i,
              revealed: n,
              visible: r && o.visible,
            };
          }
          getParentNodeWithListIndex(e, t = this.root, i = 0, n = !0, r = !0) {
            const [s, ...o] = e;
            if (s < 0 || s > t.children.length)
              throw new S(this.user, 'Invalid tree location');
            for (let e = 0; e < s; e++) i += t.children[e].renderNodeCount;
            return (
              (n = n && !t.collapsed),
              (r = r && t.visible),
              0 === o.length
                ? { parentNode: t, listIndex: i, revealed: n, visible: r }
                : this.getParentNodeWithListIndex(o, t.children[s], i + 1, n, r)
            );
          }
          getNode(e = []) {
            return this.getTreeNode(e);
          }
          getNodeLocation(e) {
            const t = [];
            let i = e;
            for (; i.parent; )
              t.push(i.parent.children.indexOf(i)), (i = i.parent);
            return t.reverse();
          }
          getParentNodeLocation(e) {
            return 0 === e.length
              ? void 0
              : 1 === e.length
              ? []
              : (0, s.JH)(e)[0];
          }
        }
        var O = i(15393),
          A = i(1432),
          R = i(59870),
          P = i(6626),
          F = i(73046);
        const B = (0, F.q5)('tree-item-expanded', F.lA.chevronDown),
          W = (0, F.q5)('tree-filter-on-type-on', F.lA.listFilter),
          Y = (0, F.q5)('tree-filter-on-type-off', F.lA.listSelection),
          H = (0, F.q5)('tree-filter-clear', F.lA.close),
          j = (0, F.q5)('tree-item-loading', F.lA.loading);
        class V extends L.kX {
          constructor(e) {
            super(e.elements.map((e) => e.element)), (this.data = e);
          }
        }
        function z(e) {
          return e instanceof L.kX ? new V(e) : e;
        }
        class U {
          constructor(e, t) {
            (this.modelProvider = e),
              (this.dnd = t),
              (this.autoExpandDisposable = r.JT.None);
          }
          getDragURI(e) {
            return this.dnd.getDragURI(e.element);
          }
          getDragLabel(e, t) {
            if (this.dnd.getDragLabel)
              return this.dnd.getDragLabel(
                e.map((e) => e.element),
                t
              );
          }
          onDragStart(e, t) {
            this.dnd.onDragStart && this.dnd.onDragStart(z(e), t);
          }
          onDragOver(e, t, i, n, r = !0) {
            const o = this.dnd.onDragOver(z(e), t && t.element, i, n),
              a = this.autoExpandNode !== t;
            if (
              (a &&
                (this.autoExpandDisposable.dispose(),
                (this.autoExpandNode = t)),
              void 0 === t)
            )
              return o;
            if (
              (a &&
                'boolean' != typeof o &&
                o.autoExpand &&
                (this.autoExpandDisposable = (0, O.Vg)(() => {
                  const e = this.modelProvider(),
                    i = e.getNodeLocation(t);
                  e.isCollapsed(i) && e.setCollapsed(i, !1),
                    (this.autoExpandNode = void 0);
                }, 500)),
              'boolean' == typeof o ||
                !o.accept ||
                void 0 === o.bubble ||
                o.feedback)
            )
              return r
                ? o
                : {
                    accept: 'boolean' == typeof o ? o : o.accept,
                    effect: 'boolean' == typeof o ? void 0 : o.effect,
                    feedback: [i],
                  };
            if (1 === o.bubble) {
              const i = this.modelProvider(),
                r = i.getNodeLocation(t),
                s = i.getParentNodeLocation(r),
                o = i.getNode(s),
                a = s && i.getListIndex(s);
              return this.onDragOver(e, o, a, n, !1);
            }
            const l = this.modelProvider(),
              c = l.getNodeLocation(t),
              d = l.getListIndex(c),
              h = l.getListRenderCount(c);
            return Object.assign(Object.assign({}, o), {
              feedback: (0, s.w6)(d, d + h),
            });
          }
          drop(e, t, i, n) {
            this.autoExpandDisposable.dispose(),
              (this.autoExpandNode = void 0),
              this.dnd.drop(z(e), t && t.element, i, n);
          }
          onDragEnd(e) {
            this.dnd.onDragEnd && this.dnd.onDragEnd(e);
          }
        }
        class $ {
          constructor(e) {
            this.delegate = e;
          }
          getHeight(e) {
            return this.delegate.getHeight(e.element);
          }
          getTemplateId(e) {
            return this.delegate.getTemplateId(e.element);
          }
          hasDynamicHeight(e) {
            return (
              !!this.delegate.hasDynamicHeight &&
              this.delegate.hasDynamicHeight(e.element)
            );
          }
          setDynamicHeight(e, t) {
            this.delegate.setDynamicHeight &&
              this.delegate.setDynamicHeight(e.element, t);
          }
        }
        var K;
        !(function (e) {
          (e.None = 'none'), (e.OnHover = 'onHover'), (e.Always = 'always');
        })(K || (K = {}));
        class q {
          constructor(e, t = []) {
            (this._elements = t),
              (this.onDidChange = a.ju.forEach(e, (e) => (this._elements = e)));
          }
          get elements() {
            return this._elements;
          }
        }
        class G {
          constructor(e, t, i, n, s = {}) {
            (this.renderer = e),
              (this.modelProvider = t),
              (this.activeNodes = n),
              (this.renderedElements = new Map()),
              (this.renderedNodes = new Map()),
              (this.indent = G.DefaultIndent),
              (this.hideTwistiesOfChildlessElements = !1),
              (this.shouldRenderIndentGuides = !1),
              (this.renderedIndentGuides = new P.r()),
              (this.activeIndentNodes = new Set()),
              (this.indentGuidesDisposable = r.JT.None),
              (this.disposables = new r.SL()),
              (this.templateId = e.templateId),
              this.updateOptions(s),
              a.ju.map(i, (e) => e.node)(
                this.onDidChangeNodeTwistieState,
                this,
                this.disposables
              ),
              e.onDidChangeTwistieState &&
                e.onDidChangeTwistieState(
                  this.onDidChangeTwistieState,
                  this,
                  this.disposables
                );
          }
          updateOptions(e = {}) {
            if (
              (void 0 !== e.indent && (this.indent = (0, R.u)(e.indent, 0, 40)),
              void 0 !== e.renderIndentGuides)
            ) {
              const t = e.renderIndentGuides !== K.None;
              if (
                t !== this.shouldRenderIndentGuides &&
                ((this.shouldRenderIndentGuides = t),
                this.indentGuidesDisposable.dispose(),
                t)
              ) {
                const e = new r.SL();
                this.activeNodes.onDidChange(
                  this._onDidChangeActiveNodes,
                  this,
                  e
                ),
                  (this.indentGuidesDisposable = e),
                  this._onDidChangeActiveNodes(this.activeNodes.elements);
              }
            }
            void 0 !== e.hideTwistiesOfChildlessElements &&
              (this.hideTwistiesOfChildlessElements =
                e.hideTwistiesOfChildlessElements);
          }
          renderTemplate(e) {
            const t = (0, n.R3)(e, (0, n.$)('.monaco-tl-row')),
              i = (0, n.R3)(t, (0, n.$)('.monaco-tl-indent')),
              s = (0, n.R3)(t, (0, n.$)('.monaco-tl-twistie')),
              o = (0, n.R3)(t, (0, n.$)('.monaco-tl-contents')),
              a = this.renderer.renderTemplate(o);
            return {
              container: e,
              indent: i,
              twistie: s,
              indentGuidesDisposable: r.JT.None,
              templateData: a,
            };
          }
          renderElement(e, t, i, n) {
            'number' == typeof n &&
              (this.renderedNodes.set(e, { templateData: i, height: n }),
              this.renderedElements.set(e.element, e));
            const r = G.DefaultIndent + (e.depth - 1) * this.indent;
            (i.twistie.style.paddingLeft = `${r}px`),
              (i.indent.style.width = r + this.indent - 16 + 'px'),
              this.renderTwistie(e, i),
              'number' == typeof n && this.renderIndentGuides(e, i),
              this.renderer.renderElement(e, t, i.templateData, n);
          }
          disposeElement(e, t, i, n) {
            i.indentGuidesDisposable.dispose(),
              this.renderer.disposeElement &&
                this.renderer.disposeElement(e, t, i.templateData, n),
              'number' == typeof n &&
                (this.renderedNodes.delete(e),
                this.renderedElements.delete(e.element));
          }
          disposeTemplate(e) {
            this.renderer.disposeTemplate(e.templateData);
          }
          onDidChangeTwistieState(e) {
            const t = this.renderedElements.get(e);
            t && this.onDidChangeNodeTwistieState(t);
          }
          onDidChangeNodeTwistieState(e) {
            const t = this.renderedNodes.get(e);
            t &&
              (this.renderTwistie(e, t.templateData),
              this._onDidChangeActiveNodes(this.activeNodes.elements),
              this.renderIndentGuides(e, t.templateData));
          }
          renderTwistie(e, t) {
            this.renderer.renderTwistie &&
              this.renderer.renderTwistie(e.element, t.twistie),
              e.collapsible &&
              (!this.hideTwistiesOfChildlessElements ||
                e.visibleChildrenCount > 0)
                ? ((0, n.PT)(t.twistie, B.classNames, 'collapsible'),
                  (0, n.og)(t.twistie, 'collapsed', e.collapsed))
                : (0, n.GK)(
                    t.twistie,
                    B.classNames,
                    'collapsible',
                    'collapsed'
                  ),
              e.collapsible
                ? t.container.setAttribute(
                    'aria-expanded',
                    String(!e.collapsed)
                  )
                : t.container.removeAttribute('aria-expanded');
          }
          renderIndentGuides(e, t) {
            if (
              ((0, n.PO)(t.indent),
              t.indentGuidesDisposable.dispose(),
              !this.shouldRenderIndentGuides)
            )
              return;
            const i = new r.SL(),
              s = this.modelProvider();
            let o = e;
            for (;;) {
              const e = s.getNodeLocation(o),
                a = s.getParentNodeLocation(e);
              if (!a) break;
              const l = s.getNode(a),
                c = (0, n.$)('.indent-guide', {
                  style: `width: ${this.indent}px`,
                });
              this.activeIndentNodes.has(l) && (0, n.cn)(c, 'active'),
                0 === t.indent.childElementCount
                  ? t.indent.appendChild(c)
                  : t.indent.insertBefore(c, t.indent.firstElementChild),
                this.renderedIndentGuides.add(l, c),
                i.add((0, r.OF)(() => this.renderedIndentGuides.delete(l, c))),
                (o = l);
            }
            t.indentGuidesDisposable = i;
          }
          _onDidChangeActiveNodes(e) {
            if (!this.shouldRenderIndentGuides) return;
            const t = new Set(),
              i = this.modelProvider();
            e.forEach((e) => {
              const n = i.getNodeLocation(e);
              try {
                const r = i.getParentNodeLocation(n);
                e.collapsible && e.children.length > 0 && !e.collapsed
                  ? t.add(e)
                  : r && t.add(i.getNode(r));
              } catch (e) {}
            }),
              this.activeIndentNodes.forEach((e) => {
                t.has(e) ||
                  this.renderedIndentGuides.forEach(e, (e) =>
                    (0, n.IV)(e, 'active')
                  );
              }),
              t.forEach((e) => {
                this.activeIndentNodes.has(e) ||
                  this.renderedIndentGuides.forEach(e, (e) =>
                    (0, n.cn)(e, 'active')
                  );
              }),
              (this.activeIndentNodes = t);
          }
          dispose() {
            this.renderedNodes.clear(),
              this.renderedElements.clear(),
              this.indentGuidesDisposable.dispose(),
              (0, r.B9)(this.disposables);
          }
        }
        G.DefaultIndent = 8;
        class Z {
          constructor(e, t, i) {
            (this.tree = e),
              (this.keyboardNavigationLabelProvider = t),
              (this._filter = i),
              (this._totalCount = 0),
              (this._matchCount = 0),
              (this._pattern = ''),
              (this._lowercasePattern = ''),
              (this.disposables = new r.SL()),
              e.onWillRefilter(this.reset, this, this.disposables);
          }
          get totalCount() {
            return this._totalCount;
          }
          get matchCount() {
            return this._matchCount;
          }
          set pattern(e) {
            (this._pattern = e), (this._lowercasePattern = e.toLowerCase());
          }
          filter(e, t) {
            if (this._filter) {
              const i = this._filter.filter(e, t);
              if (this.tree.options.simpleKeyboardNavigation) return i;
              let n;
              if (
                ((n =
                  'boolean' == typeof i
                    ? i
                      ? 1
                      : 0
                    : N(i)
                    ? E(i.visibility)
                    : i),
                0 === n)
              )
                return !1;
            }
            if (
              (this._totalCount++,
              this.tree.options.simpleKeyboardNavigation || !this._pattern)
            )
              return this._matchCount++, { data: D.CL.Default, visibility: !0 };
            const i = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(
                e
              ),
              n = i && i.toString();
            if (void 0 === n) return { data: D.CL.Default, visibility: !0 };
            const r = (0, D.EW)(
              this._pattern,
              this._lowercasePattern,
              0,
              n,
              n.toLowerCase(),
              0,
              !0
            );
            return r
              ? (this._matchCount++, { data: r, visibility: !0 })
              : this.tree.options.filterOnType
              ? 2
              : { data: D.CL.Default, visibility: !0 };
          }
          reset() {
            (this._totalCount = 0), (this._matchCount = 0);
          }
          dispose() {
            (0, r.B9)(this.disposables);
          }
        }
        class J {
          constructor(e, t, i, s, o) {
            (this.tree = e),
              (this.view = i),
              (this.filter = s),
              (this.keyboardNavigationDelegate = o),
              (this._enabled = !1),
              (this._pattern = ''),
              (this._empty = !1),
              (this._onDidChangeEmptyState = new a.Q5()),
              (this.positionClassName = 'ne'),
              (this.automaticKeyboardNavigation = !0),
              (this.triggered = !1),
              (this._onDidChangePattern = new a.Q5()),
              (this.enabledDisposables = new r.SL()),
              (this.disposables = new r.SL()),
              (this.domNode = (0, n.$)(
                `.monaco-list-type-filter.${this.positionClassName}`
              )),
              (this.domNode.draggable = !0),
              (0, M.j)(this.domNode, 'dragstart')(
                this.onDragStart,
                this,
                this.disposables
              ),
              (this.messageDomNode = (0, n.R3)(
                i.getHTMLElement(),
                (0, n.$)('.monaco-list-type-filter-message')
              )),
              (this.labelDomNode = (0, n.R3)(
                this.domNode,
                (0, n.$)('span.label')
              ));
            const l = (0, n.R3)(this.domNode, (0, n.$)('.controls'));
            (this._filterOnType = !!e.options.filterOnType),
              (this.filterOnTypeDomNode = (0, n.R3)(
                l,
                (0, n.$)('input.filter')
              )),
              (this.filterOnTypeDomNode.type = 'checkbox'),
              (this.filterOnTypeDomNode.checked = this._filterOnType),
              (this.filterOnTypeDomNode.tabIndex = -1),
              this.updateFilterOnTypeTitleAndIcon(),
              (0, M.j)(this.filterOnTypeDomNode, 'input')(
                this.onDidChangeFilterOnType,
                this,
                this.disposables
              ),
              (this.clearDomNode = (0, n.R3)(
                l,
                (0, n.$)('button.clear' + H.cssSelector)
              )),
              (this.clearDomNode.tabIndex = -1),
              (this.clearDomNode.title = (0, u.N)('clear', 'Clear')),
              (this.keyboardNavigationEventFilter =
                e.options.keyboardNavigationEventFilter),
              t.onDidSplice(this.onDidSpliceModel, this, this.disposables),
              this.updateOptions(e.options);
          }
          get enabled() {
            return this._enabled;
          }
          get pattern() {
            return this._pattern;
          }
          get filterOnType() {
            return this._filterOnType;
          }
          updateOptions(e) {
            e.simpleKeyboardNavigation ? this.disable() : this.enable(),
              void 0 !== e.filterOnType &&
                ((this._filterOnType = !!e.filterOnType),
                (this.filterOnTypeDomNode.checked = this._filterOnType)),
              void 0 !== e.automaticKeyboardNavigation &&
                (this.automaticKeyboardNavigation =
                  e.automaticKeyboardNavigation),
              this.tree.refilter(),
              this.render(),
              this.automaticKeyboardNavigation || this.onEventOrInput('');
          }
          enable() {
            if (this._enabled) return;
            const e = a.ju
                .chain((0, M.j)(this.view.getHTMLElement(), 'keydown'))
                .filter(
                  (e) =>
                    !(0, o.cK)(e.target) ||
                    e.target === this.filterOnTypeDomNode
                )
                .filter((e) => 'Dead' !== e.key && !/^Media/.test(e.key))
                .map((e) => new C.y(e))
                .filter(this.keyboardNavigationEventFilter || (() => !0))
                .filter(
                  () => this.automaticKeyboardNavigation || this.triggered
                )
                .filter(
                  (e) =>
                    (this.keyboardNavigationDelegate.mightProducePrintableCharacter(
                      e
                    ) &&
                      !(
                        18 === e.keyCode ||
                        16 === e.keyCode ||
                        15 === e.keyCode ||
                        17 === e.keyCode
                      )) ||
                    ((this.pattern.length > 0 || this.triggered) &&
                      (9 === e.keyCode || 1 === e.keyCode) &&
                      !e.altKey &&
                      !e.ctrlKey &&
                      !e.metaKey) ||
                    (1 === e.keyCode &&
                      (A.dz ? e.altKey && !e.metaKey : e.ctrlKey) &&
                      !e.shiftKey)
                )
                .forEach((e) => {
                  e.stopPropagation(), e.preventDefault();
                }).event,
              t = (0, M.j)(this.clearDomNode, 'click');
            a.ju
              .chain(a.ju.any(e, t))
              .event(this.onEventOrInput, this, this.enabledDisposables),
              (this.filter.pattern = ''),
              this.tree.refilter(),
              this.render(),
              (this._enabled = !0),
              (this.triggered = !1);
          }
          disable() {
            this._enabled &&
              (this.domNode.remove(),
              this.enabledDisposables.clear(),
              this.tree.refilter(),
              this.render(),
              (this._enabled = !1),
              (this.triggered = !1));
          }
          onEventOrInput(e) {
            'string' == typeof e
              ? this.onInput(e)
              : e instanceof MouseEvent ||
                9 === e.keyCode ||
                (1 === e.keyCode && (A.dz ? e.altKey : e.ctrlKey))
              ? this.onInput('')
              : 1 === e.keyCode
              ? this.onInput(
                  0 === this.pattern.length
                    ? ''
                    : this.pattern.substr(0, this.pattern.length - 1)
                )
              : this.onInput(this.pattern + e.browserEvent.key);
          }
          onInput(e) {
            const t = this.view.getHTMLElement();
            e && !this.domNode.parentElement
              ? t.append(this.domNode)
              : !e &&
                this.domNode.parentElement &&
                (this.domNode.remove(), this.tree.domFocus()),
              (this._pattern = e),
              this._onDidChangePattern.fire(e),
              (this.filter.pattern = e),
              this.tree.refilter(),
              e &&
                this.tree.focusNext(
                  0,
                  !0,
                  void 0,
                  (e) => !D.CL.isDefault(e.filterData)
                );
            const i = this.tree.getFocus();
            if (i.length > 0) {
              const e = i[0];
              null === this.tree.getRelativeTop(e) && this.tree.reveal(e, 0.5);
            }
            this.render(), e || (this.triggered = !1);
          }
          onDragStart() {
            const e = this.view.getHTMLElement(),
              { left: t } = (0, n.i)(e),
              i = e.clientWidth,
              s = i / 2,
              o = this.domNode.clientWidth,
              a = new r.SL();
            let l = this.positionClassName;
            const c = () => {
              switch (l) {
                case 'nw':
                  (this.domNode.style.top = '4px'),
                    (this.domNode.style.left = '4px');
                  break;
                case 'ne':
                  (this.domNode.style.top = '4px'),
                    (this.domNode.style.left = i - o - 6 + 'px');
              }
            };
            c(),
              (0, n.IV)(this.domNode, l),
              (0, n.cn)(this.domNode, 'dragging'),
              a.add((0, r.OF)(() => (0, n.IV)(this.domNode, 'dragging'))),
              (0, M.j)(document, 'dragover')(
                (e) => {
                  e.preventDefault();
                  const i = e.screenX - t;
                  e.dataTransfer && (e.dataTransfer.dropEffect = 'none'),
                    (l = i < s ? 'nw' : 'ne'),
                    c();
                },
                null,
                a
              ),
              (0, M.j)(this.domNode, 'dragend')(
                () => {
                  (this.positionClassName = l),
                    (this.domNode.className = `monaco-list-type-filter ${this.positionClassName}`),
                    (this.domNode.style.top = ''),
                    (this.domNode.style.left = ''),
                    (0, r.B9)(a);
                },
                null,
                a
              ),
              (x.P$.CurrentDragAndDropData = new x.TN('vscode-ui')),
              a.add((0, r.OF)(() => (x.P$.CurrentDragAndDropData = void 0)));
          }
          onDidSpliceModel() {
            this._enabled &&
              0 !== this.pattern.length &&
              (this.tree.refilter(), this.render());
          }
          onDidChangeFilterOnType() {
            this.tree.updateOptions({
              filterOnType: this.filterOnTypeDomNode.checked,
            }),
              this.tree.refilter(),
              this.tree.domFocus(),
              this.render(),
              this.updateFilterOnTypeTitleAndIcon();
          }
          updateFilterOnTypeTitleAndIcon() {
            this.filterOnType
              ? ((0, n.GK)(this.filterOnTypeDomNode, Y.classNames),
                (0, n.PT)(this.filterOnTypeDomNode, W.classNames),
                (this.filterOnTypeDomNode.title = (0, u.N)(
                  'disable filter on type',
                  'Disable Filter on Type'
                )))
              : ((0, n.GK)(this.filterOnTypeDomNode, W.classNames),
                (0, n.PT)(this.filterOnTypeDomNode, Y.classNames),
                (this.filterOnTypeDomNode.title = (0, u.N)(
                  'enable filter on type',
                  'Enable Filter on Type'
                )));
          }
          render() {
            const e =
              this.filter.totalCount > 0 && 0 === this.filter.matchCount;
            this.pattern && this.tree.options.filterOnType && e
              ? ((this.messageDomNode.textContent = (0, u.N)(
                  'empty',
                  'No elements found'
                )),
                (this._empty = !0))
              : ((this.messageDomNode.innerText = ''), (this._empty = !1)),
              (0, n.og)(this.domNode, 'no-matches', e),
              (this.domNode.title = (0, u.N)(
                'found',
                'Matched {0} out of {1} elements',
                this.filter.matchCount,
                this.filter.totalCount
              )),
              (this.labelDomNode.textContent =
                this.pattern.length > 16
                  ? '…' + this.pattern.substr(this.pattern.length - 16)
                  : this.pattern),
              this._onDidChangeEmptyState.fire(this._empty);
          }
          shouldAllowFocus(e) {
            return (
              !(this.enabled && this.pattern && !this.filterOnType) ||
              (this.filter.totalCount > 0 && this.filter.matchCount <= 1) ||
              !D.CL.isDefault(e.filterData)
            );
          }
          dispose() {
            this._enabled &&
              (this.domNode.remove(),
              this.enabledDisposables.dispose(),
              (this._enabled = !1),
              (this.triggered = !1)),
              this._onDidChangePattern.dispose(),
              (0, r.B9)(this.disposables);
          }
        }
        function Q(e) {
          let t = h.Unknown;
          return (
            (0, n.uU)(
              e.browserEvent.target,
              'monaco-tl-twistie',
              'monaco-tl-row'
            )
              ? (t = h.Twistie)
              : (0, n.uU)(
                  e.browserEvent.target,
                  'monaco-tl-contents',
                  'monaco-tl-row'
                ) && (t = h.Element),
            {
              browserEvent: e.browserEvent,
              element: e.element ? e.element.element : null,
              target: t,
            }
          );
        }
        function X(e, t) {
          t(e), e.children.forEach((e) => X(e, t));
        }
        class ee {
          constructor(e) {
            (this.identityProvider = e),
              (this.nodes = []),
              (this._onDidChange = new a.Q5()),
              (this.onDidChange = this._onDidChange.event);
          }
          get nodeSet() {
            return (
              this._nodeSet || (this._nodeSet = this.createNodeSet()),
              this._nodeSet
            );
          }
          set(e, t) {
            (0, s.fS)(this.nodes, e) || this._set(e, !1, t);
          }
          _set(e, t, i) {
            if (
              ((this.nodes = [...e]),
              (this.elements = void 0),
              (this._nodeSet = void 0),
              !t)
            ) {
              const e = this;
              this._onDidChange.fire({
                get elements() {
                  return e.get();
                },
                browserEvent: i,
              });
            }
          }
          get() {
            return (
              this.elements ||
                (this.elements = this.nodes.map((e) => e.element)),
              [...this.elements]
            );
          }
          getNodes() {
            return this.nodes;
          }
          has(e) {
            return this.nodeSet.has(e);
          }
          onDidModelSplice({ insertedNodes: e, deletedNodes: t }) {
            if (!this.identityProvider) {
              const e = this.createNodeSet(),
                i = (t) => e.delete(t);
              return t.forEach((e) => X(e, i)), void this.set([...e.values()]);
            }
            const i = new Set(),
              n = (e) =>
                i.add(this.identityProvider.getId(e.element).toString());
            t.forEach((e) => X(e, n));
            const r = new Map(),
              s = (e) =>
                r.set(this.identityProvider.getId(e.element).toString(), e);
            e.forEach((e) => X(e, s));
            const o = [];
            for (const e of this.nodes) {
              const t = this.identityProvider.getId(e.element).toString();
              if (i.has(t)) {
                const e = r.get(t);
                e && o.push(e);
              } else o.push(e);
            }
            this._set(o, !0);
          }
          createNodeSet() {
            const e = new Set();
            for (const t of this.nodes) e.add(t);
            return e;
          }
        }
        class te extends o.sx {
          constructor(e, t) {
            super(e), (this.tree = t);
          }
          onViewPointer(e) {
            if (
              (0, o.cK)(e.browserEvent.target) ||
              (0, o.hD)(e.browserEvent.target)
            )
              return;
            const t = e.element;
            if (!t) return super.onViewPointer(e);
            if (
              this.isSelectionRangeChangeEvent(e) ||
              this.isSelectionSingleChangeEvent(e)
            )
              return super.onViewPointer(e);
            const i = e.browserEvent.target,
              r =
                (0, n.pv)(i, 'monaco-tl-twistie') ||
                ((0, n.pv)(i, 'monaco-icon-label') &&
                  (0, n.pv)(i, 'folder-icon') &&
                  e.browserEvent.offsetX < 16);
            let s = !1;
            if (
              ((s =
                'function' == typeof this.tree.expandOnlyOnTwistieClick
                  ? this.tree.expandOnlyOnTwistieClick(t.element)
                  : !!this.tree.expandOnlyOnTwistieClick),
              s && !r)
            )
              return super.onViewPointer(e);
            if (
              this.tree.expandOnlyOnDoubleClick &&
              2 !== e.browserEvent.detail &&
              !r
            )
              return super.onViewPointer(e);
            if (t.collapsible) {
              const i = this.tree.model,
                n = i.getNodeLocation(t),
                o = e.browserEvent.altKey;
              if ((i.setCollapsed(n, void 0, o), s && r)) return;
            }
            super.onViewPointer(e);
          }
          onDoubleClick(e) {
            (0, n.pv)(e.browserEvent.target, 'monaco-tl-twistie') ||
              super.onDoubleClick(e);
          }
        }
        class ie extends o.aV {
          constructor(e, t, i, n, r, s, o) {
            super(e, t, i, n, o),
              (this.focusTrait = r),
              (this.selectionTrait = s);
          }
          createMouseController(e) {
            return new te(this, e.tree);
          }
          splice(e, t, i = []) {
            if ((super.splice(e, t, i), 0 === i.length)) return;
            const n = [],
              r = [];
            i.forEach((t, i) => {
              this.focusTrait.has(t) && n.push(e + i),
                this.selectionTrait.has(t) && r.push(e + i);
            }),
              n.length > 0 &&
                super.setFocus((0, s.cU)([...super.getFocus(), ...n])),
              r.length > 0 &&
                super.setSelection((0, s.cU)([...super.getSelection(), ...r]));
          }
          setFocus(e, t, i = !1) {
            super.setFocus(e, t),
              i ||
                this.focusTrait.set(
                  e.map((e) => this.element(e)),
                  t
                );
          }
          setSelection(e, t, i = !1) {
            super.setSelection(e, t),
              i ||
                this.selectionTrait.set(
                  e.map((e) => this.element(e)),
                  t
                );
          }
        }
        class ne {
          constructor(e, t, i, s, l = {}) {
            (this._options = l),
              (this.eventBufferer = new a.E7()),
              (this.disposables = new r.SL()),
              (this._onWillRefilter = new a.Q5()),
              (this.onWillRefilter = this._onWillRefilter.event),
              (this._onDidUpdateOptions = new a.Q5());
            const c = new $(i),
              d = new a.ZD(),
              h = new a.ZD(),
              u = new q(h.event);
            this.renderers = s.map(
              (e) => new G(e, () => this.model, d.event, u, l)
            );
            for (let e of this.renderers) this.disposables.add(e);
            let g;
            var f, p;
            l.keyboardNavigationLabelProvider &&
              ((g = new Z(this, l.keyboardNavigationLabelProvider, l.filter)),
              (l = Object.assign(Object.assign({}, l), { filter: g })),
              this.disposables.add(g)),
              (this.focus = new ee(l.identityProvider)),
              (this.selection = new ee(l.identityProvider)),
              (this.view = new ie(
                e,
                t,
                c,
                this.renderers,
                this.focus,
                this.selection,
                Object.assign(
                  Object.assign(
                    {},
                    ((f = () => this.model),
                    (p = l) &&
                      Object.assign(Object.assign({}, p), {
                        identityProvider: p.identityProvider && {
                          getId: (e) => p.identityProvider.getId(e.element),
                        },
                        dnd: p.dnd && new U(f, p.dnd),
                        multipleSelectionController: p.multipleSelectionController && {
                          isSelectionSingleChangeEvent: (e) =>
                            p.multipleSelectionController.isSelectionSingleChangeEvent(
                              Object.assign(Object.assign({}, e), {
                                element: e.element,
                              })
                            ),
                          isSelectionRangeChangeEvent: (e) =>
                            p.multipleSelectionController.isSelectionRangeChangeEvent(
                              Object.assign(Object.assign({}, e), {
                                element: e.element,
                              })
                            ),
                        },
                        accessibilityProvider:
                          p.accessibilityProvider &&
                          Object.assign(
                            Object.assign({}, p.accessibilityProvider),
                            {
                              getSetSize(e) {
                                const t = f(),
                                  i = t.getNodeLocation(e),
                                  n = t.getParentNodeLocation(i);
                                return t.getNode(n).visibleChildrenCount;
                              },
                              getPosInSet: (e) => e.visibleChildIndex + 1,
                              isChecked:
                                p.accessibilityProvider &&
                                p.accessibilityProvider.isChecked
                                  ? (e) =>
                                      p.accessibilityProvider.isChecked(
                                        e.element
                                      )
                                  : void 0,
                              getRole:
                                p.accessibilityProvider &&
                                p.accessibilityProvider.getRole
                                  ? (e) =>
                                      p.accessibilityProvider.getRole(e.element)
                                  : () => 'treeitem',
                              getAriaLabel: (e) =>
                                p.accessibilityProvider.getAriaLabel(e.element),
                              getWidgetAriaLabel: () =>
                                p.accessibilityProvider.getWidgetAriaLabel(),
                              getWidgetRole:
                                p.accessibilityProvider &&
                                p.accessibilityProvider.getWidgetRole
                                  ? () =>
                                      p.accessibilityProvider.getWidgetRole()
                                  : () => 'tree',
                              getAriaLevel: (e) => e.depth,
                              getActiveDescendantId:
                                p.accessibilityProvider.getActiveDescendantId &&
                                ((e) =>
                                  p.accessibilityProvider.getActiveDescendantId(
                                    e.element
                                  )),
                            }
                          ),
                        keyboardNavigationLabelProvider:
                          p.keyboardNavigationLabelProvider &&
                          Object.assign(
                            Object.assign(
                              {},
                              p.keyboardNavigationLabelProvider
                            ),
                            {
                              getKeyboardNavigationLabel: (e) =>
                                p.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(
                                  e.element
                                ),
                            }
                          ),
                        enableKeyboardNavigation: p.simpleKeyboardNavigation,
                      }))
                  ),
                  { tree: this }
                )
              )),
              (this.model = this.createModel(e, this.view, l)),
              (d.input = this.model.onDidChangeCollapseState);
            const m = a.ju.forEach(this.model.onDidSplice, (e) => {
              this.eventBufferer.bufferEvents(() => {
                this.focus.onDidModelSplice(e),
                  this.selection.onDidModelSplice(e);
              });
            });
            if (
              (m(() => null, null, this.disposables),
              (h.input = a.ju
                .chain(
                  a.ju.any(
                    m,
                    this.focus.onDidChange,
                    this.selection.onDidChange
                  )
                )
                .debounce(() => null, 0)
                .map(() => {
                  const e = new Set();
                  for (const t of this.focus.getNodes()) e.add(t);
                  for (const t of this.selection.getNodes()) e.add(t);
                  return [...e.values()];
                }).event),
              !1 !== l.keyboardSupport)
            ) {
              const e = a.ju
                .chain(this.view.onKeyDown)
                .filter((e) => !(0, o.cK)(e.target))
                .map((e) => new C.y(e));
              e
                .filter((e) => 15 === e.keyCode)
                .on(this.onLeftArrow, this, this.disposables),
                e
                  .filter((e) => 17 === e.keyCode)
                  .on(this.onRightArrow, this, this.disposables),
                e
                  .filter((e) => 10 === e.keyCode)
                  .on(this.onSpace, this, this.disposables);
            }
            if (l.keyboardNavigationLabelProvider) {
              const e = l.keyboardNavigationDelegate || o.WK;
              (this.typeFilterController = new J(
                this,
                this.model,
                this.view,
                g,
                e
              )),
                (this.focusNavigationFilter = (e) =>
                  this.typeFilterController.shouldAllowFocus(e)),
                this.disposables.add(this.typeFilterController);
            }
            (this.styleElement = (0, n.dS)(this.view.getHTMLElement())),
              (0, n.og)(
                this.getHTMLElement(),
                'always',
                this._options.renderIndentGuides === K.Always
              );
          }
          get onDidChangeFocus() {
            return this.eventBufferer.wrapEvent(this.focus.onDidChange);
          }
          get onDidChangeSelection() {
            return this.eventBufferer.wrapEvent(this.selection.onDidChange);
          }
          get onMouseDblClick() {
            return a.ju.map(this.view.onMouseDblClick, Q);
          }
          get onPointer() {
            return a.ju.map(this.view.onPointer, Q);
          }
          get onDidFocus() {
            return this.view.onDidFocus;
          }
          get onDidChangeCollapseState() {
            return this.model.onDidChangeCollapseState;
          }
          get expandOnlyOnDoubleClick() {
            var e;
            return (
              null !== (e = this._options.expandOnlyOnDoubleClick) &&
              void 0 !== e &&
              e
            );
          }
          get expandOnlyOnTwistieClick() {
            return (
              void 0 !== this._options.expandOnlyOnTwistieClick &&
              this._options.expandOnlyOnTwistieClick
            );
          }
          get onDidDispose() {
            return this.view.onDidDispose;
          }
          updateOptions(e = {}) {
            this._options = Object.assign(Object.assign({}, this._options), e);
            for (const t of this.renderers) t.updateOptions(e);
            this.view.updateOptions({
              enableKeyboardNavigation: this._options.simpleKeyboardNavigation,
              automaticKeyboardNavigation: this._options
                .automaticKeyboardNavigation,
              smoothScrolling: this._options.smoothScrolling,
              horizontalScrolling: this._options.horizontalScrolling,
            }),
              this.typeFilterController &&
                this.typeFilterController.updateOptions(this._options),
              this._onDidUpdateOptions.fire(this._options),
              (0, n.og)(
                this.getHTMLElement(),
                'always',
                this._options.renderIndentGuides === K.Always
              );
          }
          get options() {
            return this._options;
          }
          getHTMLElement() {
            return this.view.getHTMLElement();
          }
          get scrollTop() {
            return this.view.scrollTop;
          }
          set scrollTop(e) {
            this.view.scrollTop = e;
          }
          domFocus() {
            this.view.domFocus();
          }
          layout(e, t) {
            this.view.layout(e, t);
          }
          style(e) {
            const t = `.${this.view.domId}`,
              i = [];
            e.treeIndentGuidesStroke &&
              (i.push(
                `.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide  { border-color: ${e.treeIndentGuidesStroke.transparent(
                  0.4
                )}; }`
              ),
              i.push(
                `.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`
              ));
            const n = i.join('\n');
            n !== this.styleElement.innerHTML &&
              (this.styleElement.innerHTML = n),
              this.view.style(e);
          }
          collapse(e, t = !1) {
            return this.model.setCollapsed(e, !0, t);
          }
          expand(e, t = !1) {
            return this.model.setCollapsed(e, !1, t);
          }
          isCollapsible(e) {
            return this.model.isCollapsible(e);
          }
          setCollapsible(e, t) {
            return this.model.setCollapsible(e, t);
          }
          isCollapsed(e) {
            return this.model.isCollapsed(e);
          }
          refilter() {
            this._onWillRefilter.fire(void 0), this.model.refilter();
          }
          setSelection(e, t) {
            const i = e.map((e) => this.model.getNode(e));
            this.selection.set(i, t);
            const n = e
              .map((e) => this.model.getListIndex(e))
              .filter((e) => e > -1);
            this.view.setSelection(n, t, !0);
          }
          getSelection() {
            return this.selection.get();
          }
          setFocus(e, t) {
            const i = e.map((e) => this.model.getNode(e));
            this.focus.set(i, t);
            const n = e
              .map((e) => this.model.getListIndex(e))
              .filter((e) => e > -1);
            this.view.setFocus(n, t, !0);
          }
          focusNext(e = 1, t = !1, i, n = this.focusNavigationFilter) {
            this.view.focusNext(e, t, i, n);
          }
          getFocus() {
            return this.focus.get();
          }
          reveal(e, t) {
            this.model.expandTo(e);
            const i = this.model.getListIndex(e);
            -1 !== i && this.view.reveal(i, t);
          }
          getRelativeTop(e) {
            const t = this.model.getListIndex(e);
            return -1 === t ? null : this.view.getRelativeTop(t);
          }
          onLeftArrow(e) {
            e.preventDefault(), e.stopPropagation();
            const t = this.view.getFocusedElements();
            if (0 === t.length) return;
            const i = t[0],
              n = this.model.getNodeLocation(i);
            if (!this.model.setCollapsed(n, !0)) {
              const e = this.model.getParentNodeLocation(n);
              if (!e) return;
              const t = this.model.getListIndex(e);
              this.view.reveal(t), this.view.setFocus([t]);
            }
          }
          onRightArrow(e) {
            e.preventDefault(), e.stopPropagation();
            const t = this.view.getFocusedElements();
            if (0 === t.length) return;
            const i = t[0],
              n = this.model.getNodeLocation(i);
            if (!this.model.setCollapsed(n, !1)) {
              if (!i.children.some((e) => e.visible)) return;
              const [e] = this.view.getFocus(),
                t = e + 1;
              this.view.reveal(t), this.view.setFocus([t]);
            }
          }
          onSpace(e) {
            e.preventDefault(), e.stopPropagation();
            const t = this.view.getFocusedElements();
            if (0 === t.length) return;
            const i = t[0],
              n = this.model.getNodeLocation(i),
              r = e.browserEvent.altKey;
            this.model.setCollapsed(n, void 0, r);
          }
          dispose() {
            (0, r.B9)(this.disposables), this.view.dispose();
          }
        }
        class re {
          constructor(e, t, i = {}) {
            (this.user = e),
              (this.rootRef = null),
              (this.nodes = new Map()),
              (this.nodesByIdentity = new Map()),
              (this.model = new I(e, t, null, i)),
              (this.onDidSplice = this.model.onDidSplice),
              (this.onDidChangeCollapseState = this.model.onDidChangeCollapseState),
              (this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount),
              i.sorter &&
                (this.sorter = {
                  compare: (e, t) => i.sorter.compare(e.element, t.element),
                }),
              (this.identityProvider = i.identityProvider);
          }
          setChildren(e, t = w.$.empty(), i, n) {
            const r = this.getElementLocation(e);
            this._setChildren(r, this.preserveCollapseState(t), i, n);
          }
          _setChildren(e, t = w.$.empty(), i, n) {
            const r = new Set(),
              s = new Set();
            this.model.splice(
              [...e, 0],
              Number.MAX_VALUE,
              t,
              (e) => {
                if (null === e.element) return;
                const t = e;
                if (
                  (r.add(t.element),
                  this.nodes.set(t.element, t),
                  this.identityProvider)
                ) {
                  const e = this.identityProvider.getId(t.element).toString();
                  s.add(e), this.nodesByIdentity.set(e, t);
                }
                i && i(t);
              },
              (e) => {
                if (null === e.element) return;
                const t = e;
                if (
                  (r.has(t.element) || this.nodes.delete(t.element),
                  this.identityProvider)
                ) {
                  const e = this.identityProvider.getId(t.element).toString();
                  s.has(e) || this.nodesByIdentity.delete(e);
                }
                n && n(t);
              }
            );
          }
          preserveCollapseState(e = w.$.empty()) {
            return (
              this.sorter &&
                (e = (0, s.qt)([...e], this.sorter.compare.bind(this.sorter))),
              w.$.map(e, (e) => {
                let t = this.nodes.get(e.element);
                if (!t && this.identityProvider) {
                  const i = this.identityProvider.getId(e.element).toString();
                  t = this.nodesByIdentity.get(i);
                }
                if (!t)
                  return Object.assign(Object.assign({}, e), {
                    children: this.preserveCollapseState(e.children),
                  });
                const i =
                    'boolean' == typeof e.collapsible
                      ? e.collapsible
                      : t.collapsible,
                  n = void 0 !== e.collapsed ? e.collapsed : t.collapsed;
                return Object.assign(Object.assign({}, e), {
                  collapsible: i,
                  collapsed: n,
                  children: this.preserveCollapseState(e.children),
                });
              })
            );
          }
          rerender(e) {
            const t = this.getElementLocation(e);
            this.model.rerender(t);
          }
          has(e) {
            return this.nodes.has(e);
          }
          getListIndex(e) {
            const t = this.getElementLocation(e);
            return this.model.getListIndex(t);
          }
          getListRenderCount(e) {
            const t = this.getElementLocation(e);
            return this.model.getListRenderCount(t);
          }
          isCollapsible(e) {
            const t = this.getElementLocation(e);
            return this.model.isCollapsible(t);
          }
          setCollapsible(e, t) {
            const i = this.getElementLocation(e);
            return this.model.setCollapsible(i, t);
          }
          isCollapsed(e) {
            const t = this.getElementLocation(e);
            return this.model.isCollapsed(t);
          }
          setCollapsed(e, t, i) {
            const n = this.getElementLocation(e);
            return this.model.setCollapsed(n, t, i);
          }
          expandTo(e) {
            const t = this.getElementLocation(e);
            this.model.expandTo(t);
          }
          refilter() {
            this.model.refilter();
          }
          getNode(e = null) {
            if (null === e) return this.model.getNode(this.model.rootRef);
            const t = this.nodes.get(e);
            if (!t) throw new S(this.user, `Tree element not found: ${e}`);
            return t;
          }
          getNodeLocation(e) {
            return e.element;
          }
          getParentNodeLocation(e) {
            if (null === e)
              throw new S(this.user, 'Invalid getParentNodeLocation call');
            const t = this.nodes.get(e);
            if (!t) throw new S(this.user, `Tree element not found: ${e}`);
            const i = this.model.getNodeLocation(t),
              n = this.model.getParentNodeLocation(i);
            return this.model.getNode(n).element;
          }
          getElementLocation(e) {
            if (null === e) return [];
            const t = this.nodes.get(e);
            if (!t) throw new S(this.user, `Tree element not found: ${e}`);
            return this.model.getNodeLocation(t);
          }
        }
        function se(e) {
          return {
            element: {
              elements: [e.element],
              incompressible: e.incompressible || !1,
            },
            children: w.$.map(w.$.from(e.children), se),
            collapsible: e.collapsible,
            collapsed: e.collapsed,
          };
        }
        function oe(e) {
          const t = [e.element],
            i = e.incompressible || !1;
          let n, r;
          for (
            ;
            ([r, n] = w.$.consume(w.$.from(e.children), 2)),
              1 === r.length && !(e = r[0]).incompressible;

          )
            t.push(e.element);
          return {
            element: { elements: t, incompressible: i },
            children: w.$.map(w.$.concat(r, n), oe),
            collapsible: e.collapsible,
            collapsed: e.collapsed,
          };
        }
        function ae(e, t = 0) {
          let i;
          return (
            (i =
              t < e.element.elements.length - 1
                ? [ae(e, t + 1)]
                : w.$.map(w.$.from(e.children), (e) => ae(e, 0))),
            0 === t && e.element.incompressible
              ? {
                  element: e.element.elements[t],
                  children: i,
                  incompressible: !0,
                  collapsible: e.collapsible,
                  collapsed: e.collapsed,
                }
              : {
                  element: e.element.elements[t],
                  children: i,
                  collapsible: e.collapsible,
                  collapsed: e.collapsed,
                }
          );
        }
        function le(e) {
          return ae(e, 0);
        }
        function ce(e, t, i) {
          return e.element === t
            ? Object.assign(Object.assign({}, e), { children: i })
            : Object.assign(Object.assign({}, e), {
                children: w.$.map(w.$.from(e.children), (e) => ce(e, t, i)),
              });
        }
        class de {
          constructor(e, t, i = {}) {
            (this.user = e),
              (this.rootRef = null),
              (this.nodes = new Map()),
              (this.model = new re(e, t, i)),
              (this.enabled =
                void 0 === i.compressionEnabled || i.compressionEnabled);
          }
          get onDidSplice() {
            return this.model.onDidSplice;
          }
          get onDidChangeCollapseState() {
            return this.model.onDidChangeCollapseState;
          }
          get onDidChangeRenderNodeCount() {
            return this.model.onDidChangeRenderNodeCount;
          }
          setChildren(e, t = w.$.empty()) {
            if (null === e) {
              const e = w.$.map(t, this.enabled ? oe : se);
              return void this._setChildren(null, e);
            }
            const i = this.nodes.get(e);
            if (!i) throw new Error('Unknown compressed tree node');
            const n = this.model.getNode(i),
              r = this.model.getParentNodeLocation(i),
              s = this.model.getNode(r),
              o = ce(le(n), e, t),
              a = (this.enabled ? oe : se)(o),
              l = s.children.map((e) => (e === n ? a : e));
            this._setChildren(s.element, l);
          }
          setCompressionEnabled(e) {
            if (e === this.enabled) return;
            this.enabled = e;
            const t = this.model.getNode().children,
              i = w.$.map(t, le),
              n = w.$.map(i, e ? oe : se);
            this._setChildren(null, n);
          }
          _setChildren(e, t) {
            const i = new Set();
            this.model.setChildren(
              e,
              t,
              (e) => {
                for (const t of e.element.elements)
                  i.add(t), this.nodes.set(t, e.element);
              },
              (e) => {
                for (const t of e.element.elements)
                  i.has(t) || this.nodes.delete(t);
              }
            );
          }
          has(e) {
            return this.nodes.has(e);
          }
          getListIndex(e) {
            const t = this.getCompressedNode(e);
            return this.model.getListIndex(t);
          }
          getListRenderCount(e) {
            const t = this.getCompressedNode(e);
            return this.model.getListRenderCount(t);
          }
          getNode(e) {
            if (void 0 === e) return this.model.getNode();
            const t = this.getCompressedNode(e);
            return this.model.getNode(t);
          }
          getNodeLocation(e) {
            const t = this.model.getNodeLocation(e);
            return null === t ? null : t.elements[t.elements.length - 1];
          }
          getParentNodeLocation(e) {
            const t = this.getCompressedNode(e),
              i = this.model.getParentNodeLocation(t);
            return null === i ? null : i.elements[i.elements.length - 1];
          }
          isCollapsible(e) {
            const t = this.getCompressedNode(e);
            return this.model.isCollapsible(t);
          }
          setCollapsible(e, t) {
            const i = this.getCompressedNode(e);
            return this.model.setCollapsible(i, t);
          }
          isCollapsed(e) {
            const t = this.getCompressedNode(e);
            return this.model.isCollapsed(t);
          }
          setCollapsed(e, t, i) {
            const n = this.getCompressedNode(e);
            return this.model.setCollapsed(n, t, i);
          }
          expandTo(e) {
            const t = this.getCompressedNode(e);
            this.model.expandTo(t);
          }
          rerender(e) {
            const t = this.getCompressedNode(e);
            this.model.rerender(t);
          }
          refilter() {
            this.model.refilter();
          }
          getCompressedNode(e) {
            if (null === e) return null;
            const t = this.nodes.get(e);
            if (!t) throw new S(this.user, `Tree element not found: ${e}`);
            return t;
          }
        }
        const he = (e) => e[e.length - 1];
        class ue {
          constructor(e, t) {
            (this.unwrapper = e), (this.node = t);
          }
          get element() {
            return null === this.node.element
              ? null
              : this.unwrapper(this.node.element);
          }
          get children() {
            return this.node.children.map((e) => new ue(this.unwrapper, e));
          }
          get depth() {
            return this.node.depth;
          }
          get visibleChildrenCount() {
            return this.node.visibleChildrenCount;
          }
          get visibleChildIndex() {
            return this.node.visibleChildIndex;
          }
          get collapsible() {
            return this.node.collapsible;
          }
          get collapsed() {
            return this.node.collapsed;
          }
          get visible() {
            return this.node.visible;
          }
          get filterData() {
            return this.node.filterData;
          }
        }
        class ge {
          constructor(e, t, i = {}) {
            (this.rootRef = null), (this.elementMapper = i.elementMapper || he);
            const n = (e) => this.elementMapper(e.elements);
            (this.nodeMapper = new k((e) => new ue(n, e))),
              (this.model = new de(
                e,
                (function (e, t) {
                  return {
                    splice(i, n, r) {
                      t.splice(
                        i,
                        n,
                        r.map((t) => e.map(t))
                      );
                    },
                    updateElementHeight(e, i) {
                      t.updateElementHeight(e, i);
                    },
                  };
                })(this.nodeMapper, t),
                (function (e, t) {
                  return Object.assign(Object.assign({}, t), {
                    sorter: t.sorter && {
                      compare: (e, i) =>
                        t.sorter.compare(e.elements[0], i.elements[0]),
                    },
                    identityProvider: t.identityProvider && {
                      getId: (i) => t.identityProvider.getId(e(i)),
                    },
                    filter: t.filter && {
                      filter: (i, n) => t.filter.filter(e(i), n),
                    },
                  });
                })(n, i)
              ));
          }
          get onDidSplice() {
            return a.ju.map(
              this.model.onDidSplice,
              ({ insertedNodes: e, deletedNodes: t }) => ({
                insertedNodes: e.map((e) => this.nodeMapper.map(e)),
                deletedNodes: t.map((e) => this.nodeMapper.map(e)),
              })
            );
          }
          get onDidChangeCollapseState() {
            return a.ju.map(
              this.model.onDidChangeCollapseState,
              ({ node: e, deep: t }) => ({
                node: this.nodeMapper.map(e),
                deep: t,
              })
            );
          }
          get onDidChangeRenderNodeCount() {
            return a.ju.map(this.model.onDidChangeRenderNodeCount, (e) =>
              this.nodeMapper.map(e)
            );
          }
          setChildren(e, t = w.$.empty()) {
            this.model.setChildren(e, t);
          }
          setCompressionEnabled(e) {
            this.model.setCompressionEnabled(e);
          }
          has(e) {
            return this.model.has(e);
          }
          getListIndex(e) {
            return this.model.getListIndex(e);
          }
          getListRenderCount(e) {
            return this.model.getListRenderCount(e);
          }
          getNode(e) {
            return this.nodeMapper.map(this.model.getNode(e));
          }
          getNodeLocation(e) {
            return e.element;
          }
          getParentNodeLocation(e) {
            return this.model.getParentNodeLocation(e);
          }
          isCollapsible(e) {
            return this.model.isCollapsible(e);
          }
          setCollapsible(e, t) {
            return this.model.setCollapsible(e, t);
          }
          isCollapsed(e) {
            return this.model.isCollapsed(e);
          }
          setCollapsed(e, t, i) {
            return this.model.setCollapsed(e, t, i);
          }
          expandTo(e) {
            return this.model.expandTo(e);
          }
          rerender(e) {
            return this.model.rerender(e);
          }
          refilter() {
            return this.model.refilter();
          }
          getCompressedTreeNode(e = null) {
            return this.model.getNode(e);
          }
        }
        var fe = i(49898);
        class pe extends ne {
          constructor(e, t, i, n, r = {}) {
            super(e, t, i, n, r);
          }
          get onDidChangeCollapseState() {
            return this.model.onDidChangeCollapseState;
          }
          setChildren(e, t = w.$.empty()) {
            this.model.setChildren(e, t);
          }
          rerender(e) {
            void 0 !== e ? this.model.rerender(e) : this.view.rerender();
          }
          hasElement(e) {
            return this.model.has(e);
          }
          createModel(e, t, i) {
            return new re(e, t, i);
          }
        }
        class me {
          constructor(e, t) {
            (this._compressedTreeNodeProvider = e),
              (this.renderer = t),
              (this.templateId = t.templateId),
              t.onDidChangeTwistieState &&
                (this.onDidChangeTwistieState = t.onDidChangeTwistieState);
          }
          get compressedTreeNodeProvider() {
            return this._compressedTreeNodeProvider();
          }
          renderTemplate(e) {
            return {
              compressedTreeNode: void 0,
              data: this.renderer.renderTemplate(e),
            };
          }
          renderElement(e, t, i, n) {
            const r = this.compressedTreeNodeProvider.getCompressedTreeNode(
              e.element
            );
            1 === r.element.elements.length
              ? ((i.compressedTreeNode = void 0),
                this.renderer.renderElement(e, t, i.data, n))
              : ((i.compressedTreeNode = r),
                this.renderer.renderCompressedElements(r, t, i.data, n));
          }
          disposeElement(e, t, i, n) {
            i.compressedTreeNode
              ? this.renderer.disposeCompressedElements &&
                this.renderer.disposeCompressedElements(
                  i.compressedTreeNode,
                  t,
                  i.data,
                  n
                )
              : this.renderer.disposeElement &&
                this.renderer.disposeElement(e, t, i.data, n);
          }
          disposeTemplate(e) {
            this.renderer.disposeTemplate(e.data);
          }
          renderTwistie(e, t) {
            this.renderer.renderTwistie && this.renderer.renderTwistie(e, t);
          }
        }
        !(function (e, t, i, n) {
          var r,
            s = arguments.length,
            o =
              s < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n;
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n);
          else
            for (var a = e.length - 1; a >= 0; a--)
              (r = e[a]) &&
                (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
          s > 3 && o && Object.defineProperty(t, i, o);
        })([fe.H], me.prototype, 'compressedTreeNodeProvider', null);
        class _e extends pe {
          constructor(e, t, i, n, r = {}) {
            const s = () => this;
            super(
              e,
              t,
              i,
              n.map((e) => new me(s, e)),
              (function (e, t) {
                return (
                  t &&
                  Object.assign(Object.assign({}, t), {
                    keyboardNavigationLabelProvider: t.keyboardNavigationLabelProvider && {
                      getKeyboardNavigationLabel(i) {
                        let n;
                        try {
                          n = e().getCompressedTreeNode(i);
                        } catch (e) {
                          return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(
                            i
                          );
                        }
                        return 1 === n.element.elements.length
                          ? t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(
                              i
                            )
                          : t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(
                              n.element.elements
                            );
                      },
                    },
                  })
                );
              })(s, r)
            );
          }
          setChildren(e, t = w.$.empty()) {
            this.model.setChildren(e, t);
          }
          createModel(e, t, i) {
            return new ge(e, t, i);
          }
          updateOptions(e = {}) {
            super.updateOptions(e),
              void 0 !== e.compressionEnabled &&
                this.model.setCompressionEnabled(e.compressionEnabled);
          }
          getCompressedTreeNode(e = null) {
            return this.model.getCompressedTreeNode(e);
          }
        }
        var be = i(17301),
          ve = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        function ye(e) {
          return Object.assign(Object.assign({}, e), {
            children: [],
            refreshPromise: void 0,
            stale: !0,
            slow: !1,
            collapsedByDefault: void 0,
          });
        }
        function we(e, t) {
          return !!t.parent && (t.parent === e || we(e, t.parent));
        }
        class Ce {
          constructor(e) {
            this.node = e;
          }
          get element() {
            return this.node.element.element;
          }
          get children() {
            return this.node.children.map((e) => new Ce(e));
          }
          get depth() {
            return this.node.depth;
          }
          get visibleChildrenCount() {
            return this.node.visibleChildrenCount;
          }
          get visibleChildIndex() {
            return this.node.visibleChildIndex;
          }
          get collapsible() {
            return this.node.collapsible;
          }
          get collapsed() {
            return this.node.collapsed;
          }
          get visible() {
            return this.node.visible;
          }
          get filterData() {
            return this.node.filterData;
          }
        }
        class Se {
          constructor(e, t, i) {
            (this.renderer = e),
              (this.nodeMapper = t),
              (this.onDidChangeTwistieState = i),
              (this.renderedNodes = new Map()),
              (this.templateId = e.templateId);
          }
          renderTemplate(e) {
            return { templateData: this.renderer.renderTemplate(e) };
          }
          renderElement(e, t, i, n) {
            this.renderer.renderElement(
              this.nodeMapper.map(e),
              t,
              i.templateData,
              n
            );
          }
          renderTwistie(e, t) {
            return (
              e.slow ? (0, n.PT)(t, j.classNames) : (0, n.GK)(t, j.classNames),
              !1
            );
          }
          disposeElement(e, t, i, n) {
            this.renderer.disposeElement &&
              this.renderer.disposeElement(
                this.nodeMapper.map(e),
                t,
                i.templateData,
                n
              );
          }
          disposeTemplate(e) {
            this.renderer.disposeTemplate(e.templateData);
          }
          dispose() {
            this.renderedNodes.clear();
          }
        }
        function ke(e) {
          return {
            browserEvent: e.browserEvent,
            elements: e.elements.map((e) => e.element),
          };
        }
        function xe(e) {
          return {
            browserEvent: e.browserEvent,
            element: e.element && e.element.element,
            target: e.target,
          };
        }
        class Le extends L.kX {
          constructor(e) {
            super(e.elements.map((e) => e.element)), (this.data = e);
          }
        }
        function Me(e) {
          return e instanceof L.kX ? new Le(e) : e;
        }
        class De {
          constructor(e) {
            this.dnd = e;
          }
          getDragURI(e) {
            return this.dnd.getDragURI(e.element);
          }
          getDragLabel(e, t) {
            if (this.dnd.getDragLabel)
              return this.dnd.getDragLabel(
                e.map((e) => e.element),
                t
              );
          }
          onDragStart(e, t) {
            this.dnd.onDragStart && this.dnd.onDragStart(Me(e), t);
          }
          onDragOver(e, t, i, n, r = !0) {
            return this.dnd.onDragOver(Me(e), t && t.element, i, n);
          }
          drop(e, t, i, n) {
            this.dnd.drop(Me(e), t && t.element, i, n);
          }
          onDragEnd(e) {
            this.dnd.onDragEnd && this.dnd.onDragEnd(e);
          }
        }
        function Ne(e) {
          return (
            e &&
            Object.assign(Object.assign({}, e), {
              collapseByDefault: !0,
              identityProvider: e.identityProvider && {
                getId: (t) => e.identityProvider.getId(t.element),
              },
              dnd: e.dnd && new De(e.dnd),
              multipleSelectionController: e.multipleSelectionController && {
                isSelectionSingleChangeEvent: (t) =>
                  e.multipleSelectionController.isSelectionSingleChangeEvent(
                    Object.assign(Object.assign({}, t), { element: t.element })
                  ),
                isSelectionRangeChangeEvent: (t) =>
                  e.multipleSelectionController.isSelectionRangeChangeEvent(
                    Object.assign(Object.assign({}, t), { element: t.element })
                  ),
              },
              accessibilityProvider:
                e.accessibilityProvider &&
                Object.assign(Object.assign({}, e.accessibilityProvider), {
                  getPosInSet: void 0,
                  getSetSize: void 0,
                  getRole: e.accessibilityProvider.getRole
                    ? (t) => e.accessibilityProvider.getRole(t.element)
                    : () => 'treeitem',
                  isChecked: e.accessibilityProvider.isChecked
                    ? (t) => {
                        var i;
                        return !!(null === (i = e.accessibilityProvider) ||
                        void 0 === i
                          ? void 0
                          : i.isChecked(t.element));
                      }
                    : void 0,
                  getAriaLabel: (t) =>
                    e.accessibilityProvider.getAriaLabel(t.element),
                  getWidgetAriaLabel: () =>
                    e.accessibilityProvider.getWidgetAriaLabel(),
                  getWidgetRole: e.accessibilityProvider.getWidgetRole
                    ? () => e.accessibilityProvider.getWidgetRole()
                    : () => 'tree',
                  getAriaLevel:
                    e.accessibilityProvider.getAriaLevel &&
                    ((t) => e.accessibilityProvider.getAriaLevel(t.element)),
                  getActiveDescendantId:
                    e.accessibilityProvider.getActiveDescendantId &&
                    ((t) =>
                      e.accessibilityProvider.getActiveDescendantId(t.element)),
                }),
              filter: e.filter && {
                filter: (t, i) => e.filter.filter(t.element, i),
              },
              keyboardNavigationLabelProvider:
                e.keyboardNavigationLabelProvider &&
                Object.assign(
                  Object.assign({}, e.keyboardNavigationLabelProvider),
                  {
                    getKeyboardNavigationLabel: (t) =>
                      e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(
                        t.element
                      ),
                  }
                ),
              sorter: void 0,
              expandOnlyOnTwistieClick:
                void 0 === e.expandOnlyOnTwistieClick
                  ? void 0
                  : 'function' != typeof e.expandOnlyOnTwistieClick
                  ? e.expandOnlyOnTwistieClick
                  : (t) => e.expandOnlyOnTwistieClick(t.element),
              additionalScrollHeight: e.additionalScrollHeight,
            })
          );
        }
        function Ee(e, t) {
          t(e), e.children.forEach((e) => Ee(e, t));
        }
        class Te {
          constructor(e, t, i, n, s, o = {}) {
            (this.user = e),
              (this.dataSource = s),
              (this.nodes = new Map()),
              (this.subTreeRefreshPromises = new Map()),
              (this.refreshPromises = new Map()),
              (this._onDidRender = new a.Q5()),
              (this._onDidChangeNodeSlowState = new a.Q5()),
              (this.nodeMapper = new k((e) => new Ce(e))),
              (this.disposables = new r.SL()),
              (this.identityProvider = o.identityProvider),
              (this.autoExpandSingleChildren =
                void 0 !== o.autoExpandSingleChildren &&
                o.autoExpandSingleChildren),
              (this.sorter = o.sorter),
              (this.collapseByDefault = o.collapseByDefault),
              (this.tree = this.createTree(e, t, i, n, o)),
              (this.root = ye({
                element: void 0,
                parent: null,
                hasChildren: !0,
              })),
              this.identityProvider &&
                (this.root = Object.assign(Object.assign({}, this.root), {
                  id: null,
                })),
              this.nodes.set(null, this.root),
              this.tree.onDidChangeCollapseState(
                this._onDidChangeCollapseState,
                this,
                this.disposables
              );
          }
          get onDidChangeFocus() {
            return a.ju.map(this.tree.onDidChangeFocus, ke);
          }
          get onDidChangeSelection() {
            return a.ju.map(this.tree.onDidChangeSelection, ke);
          }
          get onMouseDblClick() {
            return a.ju.map(this.tree.onMouseDblClick, xe);
          }
          get onPointer() {
            return a.ju.map(this.tree.onPointer, xe);
          }
          get onDidFocus() {
            return this.tree.onDidFocus;
          }
          get onDidDispose() {
            return this.tree.onDidDispose;
          }
          createTree(e, t, i, n, r) {
            const s = new $(i),
              o = n.map(
                (e) =>
                  new Se(
                    e,
                    this.nodeMapper,
                    this._onDidChangeNodeSlowState.event
                  )
              ),
              a = Ne(r) || {};
            return new pe(e, t, s, o, a);
          }
          updateOptions(e = {}) {
            this.tree.updateOptions(e);
          }
          getHTMLElement() {
            return this.tree.getHTMLElement();
          }
          get scrollTop() {
            return this.tree.scrollTop;
          }
          set scrollTop(e) {
            this.tree.scrollTop = e;
          }
          domFocus() {
            this.tree.domFocus();
          }
          layout(e, t) {
            this.tree.layout(e, t);
          }
          style(e) {
            this.tree.style(e);
          }
          getInput() {
            return this.root.element;
          }
          setInput(e, t) {
            return ve(this, void 0, void 0, function* () {
              this.refreshPromises.forEach((e) => e.cancel()),
                this.refreshPromises.clear(),
                (this.root.element = e);
              const i = t && { viewState: t, focus: [], selection: [] };
              yield this._updateChildren(e, !0, !1, i),
                i &&
                  (this.tree.setFocus(i.focus),
                  this.tree.setSelection(i.selection)),
                t &&
                  'number' == typeof t.scrollTop &&
                  (this.scrollTop = t.scrollTop);
            });
          }
          _updateChildren(e = this.root.element, t = !0, i = !1, n) {
            return ve(this, void 0, void 0, function* () {
              if (void 0 === this.root.element)
                throw new S(this.user, 'Tree input not set');
              this.root.refreshPromise &&
                (yield this.root.refreshPromise,
                yield a.ju.toPromise(this._onDidRender.event));
              const r = this.getDataNode(e);
              if ((yield this.refreshAndRenderNode(r, t, n), i))
                try {
                  this.tree.rerender(r);
                } catch (e) {}
            });
          }
          rerender(e) {
            if (void 0 === e || e === this.root.element)
              return void this.tree.rerender();
            const t = this.getDataNode(e);
            this.tree.rerender(t);
          }
          collapse(e, t = !1) {
            const i = this.getDataNode(e);
            return this.tree.collapse(i === this.root ? null : i, t);
          }
          expand(e, t = !1) {
            return ve(this, void 0, void 0, function* () {
              if (void 0 === this.root.element)
                throw new S(this.user, 'Tree input not set');
              this.root.refreshPromise &&
                (yield this.root.refreshPromise,
                yield a.ju.toPromise(this._onDidRender.event));
              const i = this.getDataNode(e);
              if (this.tree.hasElement(i) && !this.tree.isCollapsible(i))
                return !1;
              if (
                (i.refreshPromise &&
                  (yield this.root.refreshPromise,
                  yield a.ju.toPromise(this._onDidRender.event)),
                i !== this.root &&
                  !i.refreshPromise &&
                  !this.tree.isCollapsed(i))
              )
                return !1;
              const n = this.tree.expand(i === this.root ? null : i, t);
              return (
                i.refreshPromise &&
                  (yield this.root.refreshPromise,
                  yield a.ju.toPromise(this._onDidRender.event)),
                n
              );
            });
          }
          setSelection(e, t) {
            const i = e.map((e) => this.getDataNode(e));
            this.tree.setSelection(i, t);
          }
          getSelection() {
            return this.tree.getSelection().map((e) => e.element);
          }
          setFocus(e, t) {
            const i = e.map((e) => this.getDataNode(e));
            this.tree.setFocus(i, t);
          }
          getFocus() {
            return this.tree.getFocus().map((e) => e.element);
          }
          reveal(e, t) {
            this.tree.reveal(this.getDataNode(e), t);
          }
          getDataNode(e) {
            const t = this.nodes.get(e === this.root.element ? null : e);
            if (!t) throw new S(this.user, `Data tree node not found: ${e}`);
            return t;
          }
          refreshAndRenderNode(e, t, i) {
            return ve(this, void 0, void 0, function* () {
              yield this.refreshNode(e, t, i), this.render(e, i);
            });
          }
          refreshNode(e, t, i) {
            return ve(this, void 0, void 0, function* () {
              let n;
              return (
                this.subTreeRefreshPromises.forEach((r, s) => {
                  !n &&
                    (function (e, t) {
                      return e === t || we(e, t) || we(t, e);
                    })(s, e) &&
                    (n = r.then(() => this.refreshNode(e, t, i)));
                }),
                n || this.doRefreshSubTree(e, t, i)
              );
            });
          }
          doRefreshSubTree(e, t, i) {
            return ve(this, void 0, void 0, function* () {
              let n;
              (e.refreshPromise = new Promise((e) => (n = e))),
                this.subTreeRefreshPromises.set(e, e.refreshPromise),
                e.refreshPromise.finally(() => {
                  (e.refreshPromise = void 0),
                    this.subTreeRefreshPromises.delete(e);
                });
              try {
                const r = yield this.doRefreshNode(e, t, i);
                (e.stale = !1),
                  yield Promise.all(
                    r.map((e) => this.doRefreshSubTree(e, t, i))
                  );
              } finally {
                n();
              }
            });
          }
          doRefreshNode(e, t, i) {
            return ve(this, void 0, void 0, function* () {
              let n;
              if (
                ((e.hasChildren = !!this.dataSource.hasChildren(e.element)),
                e.hasChildren)
              ) {
                const t = (0, O.Vs)(800);
                t.then(
                  () => {
                    (e.slow = !0), this._onDidChangeNodeSlowState.fire(e);
                  },
                  (e) => null
                ),
                  (n = this.doGetChildren(e).finally(() => t.cancel()));
              } else n = Promise.resolve(w.$.empty());
              try {
                const r = yield n;
                return this.setChildren(e, r, t, i);
              } catch (t) {
                if (
                  (e !== this.root &&
                    this.tree.collapse(e === this.root ? null : e),
                  (0, be.VV)(t))
                )
                  return [];
                throw t;
              } finally {
                e.slow &&
                  ((e.slow = !1), this._onDidChangeNodeSlowState.fire(e));
              }
            });
          }
          doGetChildren(e) {
            let t = this.refreshPromises.get(e);
            return (
              t ||
              ((t = (0, O.PG)(() =>
                ve(this, void 0, void 0, function* () {
                  const t = yield this.dataSource.getChildren(e.element);
                  return this.processChildren(t);
                })
              )),
              this.refreshPromises.set(e, t),
              t.finally(() => {
                this.refreshPromises.delete(e);
              }))
            );
          }
          _onDidChangeCollapseState({ node: e, deep: t }) {
            null !== e.element &&
              !e.collapsed &&
              e.element.stale &&
              (t
                ? this.collapse(e.element.element)
                : this.refreshAndRenderNode(e.element, !1).catch(be.dL));
          }
          setChildren(e, t, i, n) {
            const r = [...t];
            if (0 === e.children.length && 0 === r.length) return [];
            const s = new Map(),
              o = new Map();
            for (const t of e.children)
              if ((s.set(t.element, t), this.identityProvider)) {
                const e = this.tree.isCollapsed(t);
                o.set(t.id, { node: t, collapsed: e });
              }
            const a = [],
              l = r.map((t) => {
                const r = !!this.dataSource.hasChildren(t);
                if (!this.identityProvider) {
                  const i = ye({ element: t, parent: e, hasChildren: r });
                  return (
                    r &&
                      this.collapseByDefault &&
                      !this.collapseByDefault(t) &&
                      ((i.collapsedByDefault = !1), a.push(i)),
                    i
                  );
                }
                const l = this.identityProvider.getId(t).toString(),
                  c = o.get(l);
                if (c) {
                  const e = c.node;
                  return (
                    s.delete(e.element),
                    this.nodes.delete(e.element),
                    this.nodes.set(t, e),
                    (e.element = t),
                    (e.hasChildren = r),
                    i
                      ? c.collapsed
                        ? (e.children.forEach((e) =>
                            Ee(e, (e) => this.nodes.delete(e.element))
                          ),
                          e.children.splice(0, e.children.length),
                          (e.stale = !0))
                        : a.push(e)
                      : r &&
                        this.collapseByDefault &&
                        !this.collapseByDefault(t) &&
                        ((e.collapsedByDefault = !1), a.push(e)),
                    e
                  );
                }
                const d = ye({ element: t, parent: e, id: l, hasChildren: r });
                return (
                  n &&
                    n.viewState.focus &&
                    n.viewState.focus.indexOf(l) > -1 &&
                    n.focus.push(d),
                  n &&
                    n.viewState.selection &&
                    n.viewState.selection.indexOf(l) > -1 &&
                    n.selection.push(d),
                  n &&
                  n.viewState.expanded &&
                  n.viewState.expanded.indexOf(l) > -1
                    ? a.push(d)
                    : r &&
                      this.collapseByDefault &&
                      !this.collapseByDefault(t) &&
                      ((d.collapsedByDefault = !1), a.push(d)),
                  d
                );
              });
            for (const e of s.values())
              Ee(e, (e) => this.nodes.delete(e.element));
            for (const e of l) this.nodes.set(e.element, e);
            return (
              e.children.splice(0, e.children.length, ...l),
              e !== this.root &&
                this.autoExpandSingleChildren &&
                1 === l.length &&
                0 === a.length &&
                ((l[0].collapsedByDefault = !1), a.push(l[0])),
              a
            );
          }
          render(e, t) {
            const i = e.children.map((e) => this.asTreeElement(e, t));
            this.tree.setChildren(e === this.root ? null : e, i),
              e !== this.root && this.tree.setCollapsible(e, e.hasChildren),
              this._onDidRender.fire();
          }
          asTreeElement(e, t) {
            if (e.stale)
              return { element: e, collapsible: e.hasChildren, collapsed: !0 };
            let i;
            return (
              (i =
                !(
                  t &&
                  t.viewState.expanded &&
                  e.id &&
                  t.viewState.expanded.indexOf(e.id) > -1
                ) && e.collapsedByDefault),
              (e.collapsedByDefault = void 0),
              {
                element: e,
                children: e.hasChildren
                  ? w.$.map(e.children, (e) => this.asTreeElement(e, t))
                  : [],
                collapsible: e.hasChildren,
                collapsed: i,
              }
            );
          }
          processChildren(e) {
            return (
              this.sorter &&
                (e = [...e].sort(this.sorter.compare.bind(this.sorter))),
              e
            );
          }
          dispose() {
            this.disposables.dispose();
          }
        }
        class Ie {
          constructor(e) {
            this.node = e;
          }
          get element() {
            return {
              elements: this.node.element.elements.map((e) => e.element),
              incompressible: this.node.element.incompressible,
            };
          }
          get children() {
            return this.node.children.map((e) => new Ie(e));
          }
          get depth() {
            return this.node.depth;
          }
          get visibleChildrenCount() {
            return this.node.visibleChildrenCount;
          }
          get visibleChildIndex() {
            return this.node.visibleChildIndex;
          }
          get collapsible() {
            return this.node.collapsible;
          }
          get collapsed() {
            return this.node.collapsed;
          }
          get visible() {
            return this.node.visible;
          }
          get filterData() {
            return this.node.filterData;
          }
        }
        class Oe {
          constructor(e, t, i, n) {
            (this.renderer = e),
              (this.nodeMapper = t),
              (this.compressibleNodeMapperProvider = i),
              (this.onDidChangeTwistieState = n),
              (this.renderedNodes = new Map()),
              (this.disposables = []),
              (this.templateId = e.templateId);
          }
          renderTemplate(e) {
            return { templateData: this.renderer.renderTemplate(e) };
          }
          renderElement(e, t, i, n) {
            this.renderer.renderElement(
              this.nodeMapper.map(e),
              t,
              i.templateData,
              n
            );
          }
          renderCompressedElements(e, t, i, n) {
            this.renderer.renderCompressedElements(
              this.compressibleNodeMapperProvider().map(e),
              t,
              i.templateData,
              n
            );
          }
          renderTwistie(e, t) {
            return (
              e.slow ? (0, n.PT)(t, j.classNames) : (0, n.GK)(t, j.classNames),
              !1
            );
          }
          disposeElement(e, t, i, n) {
            this.renderer.disposeElement &&
              this.renderer.disposeElement(
                this.nodeMapper.map(e),
                t,
                i.templateData,
                n
              );
          }
          disposeCompressedElements(e, t, i, n) {
            this.renderer.disposeCompressedElements &&
              this.renderer.disposeCompressedElements(
                this.compressibleNodeMapperProvider().map(e),
                t,
                i.templateData,
                n
              );
          }
          disposeTemplate(e) {
            this.renderer.disposeTemplate(e.templateData);
          }
          dispose() {
            this.renderedNodes.clear(),
              (this.disposables = (0, r.B9)(this.disposables));
          }
        }
        class Ae extends Te {
          constructor(e, t, i, n, r, s, o = {}) {
            super(e, t, i, r, s, o),
              (this.compressionDelegate = n),
              (this.compressibleNodeMapper = new k((e) => new Ie(e))),
              (this.filter = o.filter);
          }
          createTree(e, t, i, n, r) {
            const s = new $(i),
              o = n.map(
                (e) =>
                  new Oe(
                    e,
                    this.nodeMapper,
                    () => this.compressibleNodeMapper,
                    this._onDidChangeNodeSlowState.event
                  )
              ),
              a =
                (function (e) {
                  const t = e && Ne(e);
                  return (
                    t &&
                    Object.assign(Object.assign({}, t), {
                      keyboardNavigationLabelProvider:
                        t.keyboardNavigationLabelProvider &&
                        Object.assign(
                          Object.assign({}, t.keyboardNavigationLabelProvider),
                          {
                            getCompressedNodeKeyboardNavigationLabel: (t) =>
                              e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(
                                t.map((e) => e.element)
                              ),
                          }
                        ),
                    })
                  );
                })(r) || {};
            return new _e(e, t, s, o, a);
          }
          asTreeElement(e, t) {
            return Object.assign(
              {
                incompressible: this.compressionDelegate.isIncompressible(
                  e.element
                ),
              },
              super.asTreeElement(e, t)
            );
          }
          updateOptions(e = {}) {
            this.tree.updateOptions(e);
          }
          render(e, t) {
            if (!this.identityProvider) return super.render(e, t);
            const i = (e) => this.identityProvider.getId(e).toString(),
              n = (e) => {
                const t = new Set();
                for (const n of e) {
                  const e = this.tree.getCompressedTreeNode(
                    n === this.root ? null : n
                  );
                  if (e.element)
                    for (const n of e.element.elements) t.add(i(n.element));
                }
                return t;
              },
              r = n(this.tree.getSelection()),
              s = n(this.tree.getFocus());
            super.render(e, t);
            const o = this.getSelection();
            let a = !1;
            const l = this.getFocus();
            let c = !1;
            const d = (e) => {
              const t = e.element;
              if (t)
                for (let e = 0; e < t.elements.length; e++) {
                  const n = i(t.elements[e].element),
                    d = t.elements[t.elements.length - 1].element;
                  r.has(n) && -1 === o.indexOf(d) && (o.push(d), (a = !0)),
                    s.has(n) && -1 === l.indexOf(d) && (l.push(d), (c = !0));
                }
              e.children.forEach(d);
            };
            d(this.tree.getCompressedTreeNode(e === this.root ? null : e)),
              a && this.setSelection(o),
              c && this.setFocus(l);
          }
          processChildren(e) {
            return (
              this.filter &&
                (e = w.$.filter(e, (e) => {
                  const t =
                    'boolean' == typeof (i = this.filter.filter(e, 1))
                      ? i
                        ? 1
                        : 0
                      : N(i)
                      ? E(i.visibility)
                      : E(i);
                  var i;
                  if (2 === t)
                    throw new Error(
                      'Recursive tree visibility not supported in async data compressed trees'
                    );
                  return 1 === t;
                })),
              super.processChildren(e)
            );
          }
        }
        class Re extends ne {
          constructor(e, t, i, n, r, s = {}) {
            super(e, t, i, n, s),
              (this.user = e),
              (this.dataSource = r),
              (this.identityProvider = s.identityProvider);
          }
          createModel(e, t, i) {
            return new re(e, t, i);
          }
        }
        var Pe = i(31106),
          Fe = function (e, t, i, n) {
            var r,
              s = arguments.length,
              o =
                s < 3
                  ? t
                  : null === n
                  ? (n = Object.getOwnPropertyDescriptor(t, i))
                  : n;
            if (
              'object' == typeof Reflect &&
              'function' == typeof Reflect.decorate
            )
              o = Reflect.decorate(e, t, i, n);
            else
              for (var a = e.length - 1; a >= 0; a--)
                (r = e[a]) &&
                  (o = (s < 3 ? r(o) : s > 3 ? r(t, i, o) : r(t, i)) || o);
            return s > 3 && o && Object.defineProperty(t, i, o), o;
          },
          Be = function (e, t) {
            return function (i, n) {
              t(i, n, e);
            };
          };
        const We = (0, m.yh)('listService');
        let Ye = class {
          constructor(e) {
            (this._themeService = e),
              (this.disposables = new r.SL()),
              (this.lists = []),
              (this._lastFocusedWidget = void 0),
              (this._hasCreatedStyleController = !1);
          }
          get lastFocusedList() {
            return this._lastFocusedWidget;
          }
          register(e, t) {
            if (!this._hasCreatedStyleController) {
              this._hasCreatedStyleController = !0;
              const e = new o.wD((0, n.dS)(), '');
              this.disposables.add((0, v.Jl)(e, this._themeService));
            }
            if (this.lists.some((t) => t.widget === e))
              throw new Error('Cannot register the same widget multiple times');
            const i = { widget: e, extraContextKeys: t };
            return (
              this.lists.push(i),
              e.getHTMLElement() === document.activeElement &&
                (this._lastFocusedWidget = e),
              (0, r.F8)(
                e.onDidFocus(() => (this._lastFocusedWidget = e)),
                (0, r.OF)(() => this.lists.splice(this.lists.indexOf(i), 1)),
                e.onDidDispose(() => {
                  (this.lists = this.lists.filter((e) => e !== i)),
                    this._lastFocusedWidget === e &&
                      (this._lastFocusedWidget = void 0);
                })
              )
            );
          }
          dispose() {
            this.disposables.dispose();
          }
        };
        Ye = Fe([Be(0, y.XE)], Ye);
        const He = new p.uy('listFocus', !0),
          je = new p.uy('listSupportsMultiselect', !0),
          Ve = p.Ao.and(He, p.Ao.not('inputFocus')),
          ze = new p.uy('listHasSelectionOrFocus', !1),
          Ue = new p.uy('listDoubleSelection', !1),
          $e = new p.uy('listMultiSelection', !1),
          Ke = new p.uy('listSupportsKeyboardNavigation', !0),
          qe = 'listAutomaticKeyboardNavigation',
          Ge = new p.uy(qe, !0);
        let Ze = !1;
        function Je(e, t) {
          const i = e.createScoped(t.getHTMLElement());
          return He.bindTo(i), i;
        }
        const Qe = 'workbench.list.multiSelectModifier',
          Xe = 'workbench.list.openMode',
          et = 'workbench.list.horizontalScrolling',
          tt = 'workbench.list.keyboardNavigation',
          it = 'workbench.list.automaticKeyboardNavigation',
          nt = 'workbench.tree.indent',
          rt = 'workbench.tree.renderIndentGuides',
          st = 'workbench.list.smoothScrolling';
        function ot(e) {
          return 'alt' === e.getValue(Qe);
        }
        class at extends r.JT {
          constructor(e) {
            super(),
              (this.configurationService = e),
              (this.useAltAsMultipleSelectionModifier = ot(e)),
              this.registerListeners();
          }
          registerListeners() {
            this._register(
              this.configurationService.onDidChangeConfiguration((e) => {
                e.affectsConfiguration(Qe) &&
                  (this.useAltAsMultipleSelectionModifier = ot(
                    this.configurationService
                  ));
              })
            );
          }
          isSelectionSingleChangeEvent(e) {
            return this.useAltAsMultipleSelectionModifier
              ? e.browserEvent.altKey
              : (0, o.Zo)(e);
          }
          isSelectionRangeChangeEvent(e) {
            return (0, o.wn)(e);
          }
        }
        function lt(e, t, i) {
          const n = new r.SL(),
            s = Object.assign({}, e);
          if (
            !1 !== e.multipleSelectionSupport &&
            !e.multipleSelectionController
          ) {
            const e = new at(t);
            (s.multipleSelectionController = e), n.add(e);
          }
          return (
            (s.keyboardNavigationDelegate = {
              mightProducePrintableCharacter: (e) =>
                i.mightProducePrintableCharacter(e),
            }),
            (s.smoothScrolling = t.getValue(st)),
            [s, n]
          );
        }
        let ct = class extends o.aV {
          constructor(e, t, i, n, r, s, o, a, l, c) {
            const d =
                void 0 !== r.horizontalScrolling
                  ? r.horizontalScrolling
                  : l.getValue(et),
              [h, u] = lt(r, l, c);
            super(
              e,
              t,
              i,
              n,
              Object.assign(
                Object.assign(
                  Object.assign(
                    { keyboardSupport: !1 },
                    (0, v.o)(a.getColorTheme(), v.O2)
                  ),
                  h
                ),
                { horizontalScrolling: d }
              )
            ),
              this.disposables.add(u),
              (this.contextKeyService = Je(s, this)),
              (this.themeService = a),
              je
                .bindTo(this.contextKeyService)
                .set(!(!1 === r.multipleSelectionSupport)),
              (this.listHasSelectionOrFocus = ze.bindTo(
                this.contextKeyService
              )),
              (this.listDoubleSelection = Ue.bindTo(this.contextKeyService)),
              (this.listMultiSelection = $e.bindTo(this.contextKeyService)),
              (this.horizontalScrolling = r.horizontalScrolling),
              (this._useAltAsMultipleSelectionModifier = ot(l)),
              this.disposables.add(this.contextKeyService),
              this.disposables.add(o.register(this)),
              r.overrideStyles && this.updateStyles(r.overrideStyles),
              this.disposables.add(
                this.onDidChangeSelection(() => {
                  const e = this.getSelection(),
                    t = this.getFocus();
                  this.contextKeyService.bufferChangeEvents(() => {
                    this.listHasSelectionOrFocus.set(
                      e.length > 0 || t.length > 0
                    ),
                      this.listMultiSelection.set(e.length > 1),
                      this.listDoubleSelection.set(2 === e.length);
                  });
                })
              ),
              this.disposables.add(
                this.onDidChangeFocus(() => {
                  const e = this.getSelection(),
                    t = this.getFocus();
                  this.listHasSelectionOrFocus.set(
                    e.length > 0 || t.length > 0
                  );
                })
              ),
              this.disposables.add(
                l.onDidChangeConfiguration((e) => {
                  e.affectsConfiguration(Qe) &&
                    (this._useAltAsMultipleSelectionModifier = ot(l));
                  let t = {};
                  if (
                    e.affectsConfiguration(et) &&
                    void 0 === this.horizontalScrolling
                  ) {
                    const e = l.getValue(et);
                    t = Object.assign(Object.assign({}, t), {
                      horizontalScrolling: e,
                    });
                  }
                  if (e.affectsConfiguration(st)) {
                    const e = l.getValue(st);
                    t = Object.assign(Object.assign({}, t), {
                      smoothScrolling: e,
                    });
                  }
                  Object.keys(t).length > 0 && this.updateOptions(t);
                })
              );
          }
          updateOptions(e) {
            super.updateOptions(e),
              e.overrideStyles && this.updateStyles(e.overrideStyles);
          }
          dispose() {
            super.dispose(), this._styler && this._styler.dispose();
          }
          updateStyles(e) {
            this._styler && this._styler.dispose(),
              (this._styler = (0, v.Jl)(this, this.themeService, e));
          }
        };
        ct = Fe(
          [Be(5, p.i6), Be(6, We), Be(7, y.XE), Be(8, g.Ui), Be(9, _.d)],
          ct
        );
        let dt = class extends class {
          constructor(e, t, i, n, r = {}) {
            const s = () => this.model,
              a = n.map((e) => new c(e, s));
            this.list = new o.aV(
              e,
              t,
              i,
              a,
              (function (e, t) {
                return Object.assign(Object.assign({}, t), {
                  accessibilityProvider:
                    t.accessibilityProvider &&
                    new d(e, t.accessibilityProvider),
                });
              })(s, r)
            );
          }
          updateOptions(e) {
            this.list.updateOptions(e);
          }
          getHTMLElement() {
            return this.list.getHTMLElement();
          }
          get onDidFocus() {
            return this.list.onDidFocus;
          }
          get onDidDispose() {
            return this.list.onDidDispose;
          }
          get onMouseDblClick() {
            return a.ju.map(
              this.list.onMouseDblClick,
              ({ element: e, index: t, browserEvent: i }) => ({
                element: void 0 === e ? void 0 : this._model.get(e),
                index: t,
                browserEvent: i,
              })
            );
          }
          get onPointer() {
            return a.ju.map(
              this.list.onPointer,
              ({ element: e, index: t, browserEvent: i }) => ({
                element: void 0 === e ? void 0 : this._model.get(e),
                index: t,
                browserEvent: i,
              })
            );
          }
          get onDidChangeFocus() {
            return a.ju.map(
              this.list.onDidChangeFocus,
              ({ elements: e, indexes: t, browserEvent: i }) => ({
                elements: e.map((e) => this._model.get(e)),
                indexes: t,
                browserEvent: i,
              })
            );
          }
          get onDidChangeSelection() {
            return a.ju.map(
              this.list.onDidChangeSelection,
              ({ elements: e, indexes: t, browserEvent: i }) => ({
                elements: e.map((e) => this._model.get(e)),
                indexes: t,
                browserEvent: i,
              })
            );
          }
          get model() {
            return this._model;
          }
          set model(e) {
            (this._model = e),
              this.list.splice(0, this.list.length, (0, s.w6)(e.length));
          }
          getFocus() {
            return this.list.getFocus();
          }
          setSelection(e, t) {
            this.list.setSelection(e, t);
          }
          getSelection() {
            return this.list.getSelection();
          }
          style(e) {
            this.list.style(e);
          }
          dispose() {
            this.list.dispose();
          }
        } {
          constructor(e, t, i, n, s, o, a, l, c, d) {
            const h =
                void 0 !== s.horizontalScrolling
                  ? s.horizontalScrolling
                  : c.getValue(et),
              [u, g] = lt(s, c, d);
            super(
              e,
              t,
              i,
              n,
              Object.assign(
                Object.assign(
                  Object.assign(
                    { keyboardSupport: !1 },
                    (0, v.o)(l.getColorTheme(), v.O2)
                  ),
                  u
                ),
                { horizontalScrolling: h }
              )
            ),
              (this.disposables = new r.SL()),
              this.disposables.add(g),
              (this.contextKeyService = Je(o, this)),
              (this.horizontalScrolling = s.horizontalScrolling),
              je
                .bindTo(this.contextKeyService)
                .set(!(!1 === s.multipleSelectionSupport)),
              (this._useAltAsMultipleSelectionModifier = ot(c)),
              this.disposables.add(this.contextKeyService),
              this.disposables.add(a.register(this)),
              s.overrideStyles &&
                this.disposables.add((0, v.Jl)(this, l, s.overrideStyles)),
              this.disposables.add(
                c.onDidChangeConfiguration((e) => {
                  e.affectsConfiguration(Qe) &&
                    (this._useAltAsMultipleSelectionModifier = ot(c));
                  let t = {};
                  if (
                    e.affectsConfiguration(et) &&
                    void 0 === this.horizontalScrolling
                  ) {
                    const e = c.getValue(et);
                    t = Object.assign(Object.assign({}, t), {
                      horizontalScrolling: e,
                    });
                  }
                  if (e.affectsConfiguration(st)) {
                    const e = c.getValue(st);
                    t = Object.assign(Object.assign({}, t), {
                      smoothScrolling: e,
                    });
                  }
                  Object.keys(t).length > 0 && this.updateOptions(t);
                })
              );
          }
          dispose() {
            super.dispose(), this.disposables.dispose();
          }
        };
        dt = Fe(
          [Be(5, p.i6), Be(6, We), Be(7, y.XE), Be(8, g.Ui), Be(9, _.d)],
          dt
        );
        class ht extends r.JT {
          constructor(e, t) {
            var i, n;
            super(),
              (this.widget = e),
              (this._onDidOpen = new a.Q5()),
              (this.onDidOpen = this._onDidOpen.event),
              (this.openOnFocus =
                null !== (i = null == t ? void 0 : t.openOnFocus) &&
                void 0 !== i &&
                i),
              this._register(
                a.ju.filter(
                  this.widget.onDidChangeSelection,
                  (e) => e.browserEvent instanceof KeyboardEvent
                )((e) => this.onSelectionFromKeyboard(e))
              ),
              this._register(
                this.widget.onPointer((e) => this.onPointer(e.browserEvent))
              ),
              this._register(
                this.widget.onMouseDblClick((e) =>
                  this.onMouseDblClick(e.browserEvent)
                )
              ),
              this.openOnFocus &&
                this._register(
                  a.ju.filter(
                    this.widget.onDidChangeFocus,
                    (e) => e.browserEvent instanceof KeyboardEvent
                  )((e) => this.onFocusFromKeyboard(e))
                ),
              'boolean' != typeof (null == t ? void 0 : t.openOnSingleClick) &&
              (null == t ? void 0 : t.configurationService)
                ? ((this.openOnSingleClick =
                    'doubleClick' !==
                    (null == t ? void 0 : t.configurationService.getValue(Xe))),
                  this._register(
                    null == t
                      ? void 0
                      : t.configurationService.onDidChangeConfiguration(() => {
                          this.openOnSingleClick =
                            'doubleClick' !==
                            (null == t
                              ? void 0
                              : t.configurationService.getValue(Xe));
                        })
                  ))
                : (this.openOnSingleClick =
                    null === (n = null == t ? void 0 : t.openOnSingleClick) ||
                    void 0 === n ||
                    n);
          }
          onFocusFromKeyboard(e) {
            const t = this.widget.getFocus();
            this.widget.setSelection(t, e.browserEvent);
            const i =
              'boolean' != typeof e.browserEvent.preserveFocus ||
              e.browserEvent.preserveFocus;
            this._open(i, !1, !1, e.browserEvent);
          }
          onSelectionFromKeyboard(e) {
            if (1 !== e.elements.length) return;
            const t =
              'boolean' != typeof e.browserEvent.preserveFocus ||
              e.browserEvent.preserveFocus;
            this._open(t, !1, !1, e.browserEvent);
          }
          onPointer(e) {
            if (!this.openOnSingleClick) return;
            if (2 === e.detail) return;
            const t = 1 === e.button,
              i = e.ctrlKey || e.metaKey || e.altKey;
            this._open(!0, t, i, e);
          }
          onMouseDblClick(e) {
            if (!e) return;
            const t = e.ctrlKey || e.metaKey || e.altKey;
            this._open(!1, !0, t, e);
          }
          _open(e, t, i, n) {
            this._onDidOpen.fire({
              editorOptions: {
                preserveFocus: e,
                pinned: t,
                revealIfVisible: !0,
              },
              sideBySide: i,
              element: this.widget.getSelection()[0],
              browserEvent: n,
            });
          }
        }
        class ut extends ht {
          constructor(e, t) {
            super(e, t);
          }
        }
        function gt(e, t) {
          let i = !1;
          return (n) => {
            if (i) return (i = !1), !1;
            const r = t.softDispatch(n, e);
            return r && r.enterChord ? ((i = !0), !1) : ((i = !1), !0);
          };
        }
        let ft = class extends pe {
          constructor(e, t, i, n, r, s, o, a, l, c, d) {
            const {
              options: h,
              getAutomaticKeyboardNavigation: u,
              disposable: g,
            } = vt(t, r, s, l, c, d);
            super(e, t, i, n, h),
              this.disposables.add(g),
              (this.internals = new yt(
                this,
                r,
                u,
                r.overrideStyles,
                s,
                o,
                a,
                l,
                d
              )),
              this.disposables.add(this.internals);
          }
        };
        ft = Fe(
          [
            Be(5, p.i6),
            Be(6, We),
            Be(7, y.XE),
            Be(8, g.Ui),
            Be(9, _.d),
            Be(10, Pe.F),
          ],
          ft
        );
        let pt = class extends _e {
          constructor(e, t, i, n, r, s, o, a, l, c, d) {
            const {
              options: h,
              getAutomaticKeyboardNavigation: u,
              disposable: g,
            } = vt(t, r, s, l, c, d);
            super(e, t, i, n, h),
              this.disposables.add(g),
              (this.internals = new yt(
                this,
                r,
                u,
                r.overrideStyles,
                s,
                o,
                a,
                l,
                d
              )),
              this.disposables.add(this.internals);
          }
          updateOptions(e = {}) {
            super.updateOptions(e),
              e.overrideStyles &&
                this.internals.updateStyleOverrides(e.overrideStyles);
          }
        };
        pt = Fe(
          [
            Be(5, p.i6),
            Be(6, We),
            Be(7, y.XE),
            Be(8, g.Ui),
            Be(9, _.d),
            Be(10, Pe.F),
          ],
          pt
        );
        let mt = class extends Re {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h) {
            const {
              options: u,
              getAutomaticKeyboardNavigation: g,
              disposable: f,
            } = vt(t, s, o, c, d, h);
            super(e, t, i, n, r, u),
              this.disposables.add(f),
              (this.internals = new yt(
                this,
                s,
                g,
                s.overrideStyles,
                o,
                a,
                l,
                c,
                h
              )),
              this.disposables.add(this.internals);
          }
          updateOptions(e = {}) {
            super.updateOptions(e),
              e.overrideStyles &&
                this.internals.updateStyleOverrides(e.overrideStyles);
          }
        };
        mt = Fe(
          [
            Be(6, p.i6),
            Be(7, We),
            Be(8, y.XE),
            Be(9, g.Ui),
            Be(10, _.d),
            Be(11, Pe.F),
          ],
          mt
        );
        let _t = class extends Te {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h) {
            const {
              options: u,
              getAutomaticKeyboardNavigation: g,
              disposable: f,
            } = vt(t, s, o, c, d, h);
            super(e, t, i, n, r, u),
              this.disposables.add(f),
              (this.internals = new yt(
                this,
                s,
                g,
                s.overrideStyles,
                o,
                a,
                l,
                c,
                h
              )),
              this.disposables.add(this.internals);
          }
          get onDidOpen() {
            return this.internals.onDidOpen;
          }
          updateOptions(e = {}) {
            super.updateOptions(e),
              e.overrideStyles &&
                this.internals.updateStyleOverrides(e.overrideStyles);
          }
        };
        _t = Fe(
          [
            Be(6, p.i6),
            Be(7, We),
            Be(8, y.XE),
            Be(9, g.Ui),
            Be(10, _.d),
            Be(11, Pe.F),
          ],
          _t
        );
        let bt = class extends Ae {
          constructor(e, t, i, n, r, s, o, a, l, c, d, h, u) {
            const {
              options: g,
              getAutomaticKeyboardNavigation: f,
              disposable: p,
            } = vt(t, o, a, d, h, u);
            super(e, t, i, n, r, s, g),
              this.disposables.add(p),
              (this.internals = new yt(
                this,
                o,
                f,
                o.overrideStyles,
                a,
                l,
                c,
                d,
                u
              )),
              this.disposables.add(this.internals);
          }
        };
        function vt(e, t, i, n, r, s) {
          Ke.bindTo(i), Ze || (Ge.bindTo(i), (Ze = !0));
          const o = () => {
              let e = i.getContextKeyValue(qe);
              return e && (e = n.getValue(it)), e;
            },
            a = s.isScreenReaderOptimized() ? 'simple' : n.getValue(tt),
            l =
              void 0 !== t.horizontalScrolling
                ? t.horizontalScrolling
                : n.getValue(et),
            [c, d] = lt(t, n, r),
            h = t.additionalScrollHeight;
          return {
            getAutomaticKeyboardNavigation: o,
            disposable: d,
            options: Object.assign(Object.assign({ keyboardSupport: !1 }, c), {
              indent: n.getValue(nt),
              renderIndentGuides: n.getValue(rt),
              smoothScrolling: n.getValue(st),
              automaticKeyboardNavigation: o(),
              simpleKeyboardNavigation: 'simple' === a,
              filterOnType: 'filter' === a,
              horizontalScrolling: l,
              keyboardNavigationEventFilter: gt(e, r),
              additionalScrollHeight: h,
              hideTwistiesOfChildlessElements:
                t.hideTwistiesOfChildlessElements,
              expandOnlyOnDoubleClick: 'doubleClick' === n.getValue(Xe),
            }),
          };
        }
        bt = Fe(
          [
            Be(7, p.i6),
            Be(8, We),
            Be(9, y.XE),
            Be(10, g.Ui),
            Be(11, _.d),
            Be(12, Pe.F),
          ],
          bt
        );
        let yt = class {
          constructor(e, t, i, n, r, s, o, a, l) {
            (this.tree = e),
              (this.themeService = o),
              (this.disposables = []),
              (this.contextKeyService = Je(r, e)),
              je
                .bindTo(this.contextKeyService)
                .set(!(!1 === t.multipleSelectionSupport)),
              (this.hasSelectionOrFocus = ze.bindTo(this.contextKeyService)),
              (this.hasDoubleSelection = Ue.bindTo(this.contextKeyService)),
              (this.hasMultiSelection = $e.bindTo(this.contextKeyService)),
              (this._useAltAsMultipleSelectionModifier = ot(a));
            const c = new Set();
            c.add(qe);
            const d = () => {
              const t = l.isScreenReaderOptimized() ? 'simple' : a.getValue(tt);
              e.updateOptions({
                simpleKeyboardNavigation: 'simple' === t,
                filterOnType: 'filter' === t,
              });
            };
            this.updateStyleOverrides(n),
              this.disposables.push(
                this.contextKeyService,
                s.register(e),
                e.onDidChangeSelection(() => {
                  const t = e.getSelection(),
                    i = e.getFocus();
                  this.contextKeyService.bufferChangeEvents(() => {
                    this.hasSelectionOrFocus.set(t.length > 0 || i.length > 0),
                      this.hasMultiSelection.set(t.length > 1),
                      this.hasDoubleSelection.set(2 === t.length);
                  });
                }),
                e.onDidChangeFocus(() => {
                  const t = e.getSelection(),
                    i = e.getFocus();
                  this.hasSelectionOrFocus.set(t.length > 0 || i.length > 0);
                }),
                a.onDidChangeConfiguration((n) => {
                  let r = {};
                  if (
                    (n.affectsConfiguration(Qe) &&
                      (this._useAltAsMultipleSelectionModifier = ot(a)),
                    n.affectsConfiguration(nt))
                  ) {
                    const e = a.getValue(nt);
                    r = Object.assign(Object.assign({}, r), { indent: e });
                  }
                  if (n.affectsConfiguration(rt)) {
                    const e = a.getValue(rt);
                    r = Object.assign(Object.assign({}, r), {
                      renderIndentGuides: e,
                    });
                  }
                  if (n.affectsConfiguration(st)) {
                    const e = a.getValue(st);
                    r = Object.assign(Object.assign({}, r), {
                      smoothScrolling: e,
                    });
                  }
                  if (
                    (n.affectsConfiguration(tt) && d(),
                    n.affectsConfiguration(it) &&
                      (r = Object.assign(Object.assign({}, r), {
                        automaticKeyboardNavigation: i(),
                      })),
                    n.affectsConfiguration(et) &&
                      void 0 === t.horizontalScrolling)
                  ) {
                    const e = a.getValue(et);
                    r = Object.assign(Object.assign({}, r), {
                      horizontalScrolling: e,
                    });
                  }
                  n.affectsConfiguration(Xe) &&
                    (r = Object.assign(Object.assign({}, r), {
                      expandOnlyOnDoubleClick: 'doubleClick' === a.getValue(Xe),
                    })),
                    Object.keys(r).length > 0 && e.updateOptions(r);
                }),
                this.contextKeyService.onDidChangeContext((t) => {
                  t.affectsSome(c) &&
                    e.updateOptions({ automaticKeyboardNavigation: i() });
                }),
                l.onDidChangeScreenReaderOptimized(() => d())
              ),
              (this.navigator = new ut(
                e,
                Object.assign({ configurationService: a }, t)
              )),
              this.disposables.push(this.navigator);
          }
          get onDidOpen() {
            return this.navigator.onDidOpen;
          }
          updateStyleOverrides(e) {
            (0, r.B9)(this.styler),
              (this.styler = e
                ? (0, v.Jl)(this.tree, this.themeService, e)
                : r.JT.None);
          }
          dispose() {
            (this.disposables = (0, r.B9)(this.disposables)),
              (0, r.B9)(this.styler),
              (this.styler = void 0);
          }
        };
        (yt = Fe(
          [Be(4, p.i6), Be(5, We), Be(6, y.XE), Be(7, g.Ui), Be(8, Pe.F)],
          yt
        )),
          b.B.as(f.IP.Configuration).registerConfiguration({
            id: 'workbench',
            order: 7,
            title: (0, u.N)('workbenchConfigurationTitle', 'Workbench'),
            type: 'object',
            properties: {
              [Qe]: {
                type: 'string',
                enum: ['ctrlCmd', 'alt'],
                enumDescriptions: [
                  (0, u.N)(
                    'multiSelectModifier.ctrlCmd',
                    'Maps to `Control` on Windows and Linux and to `Command` on macOS.'
                  ),
                  (0, u.N)(
                    'multiSelectModifier.alt',
                    'Maps to `Alt` on Windows and Linux and to `Option` on macOS.'
                  ),
                ],
                default: 'ctrlCmd',
                description: (0, u.N)(
                  {
                    key: 'multiSelectModifier',
                    comment: [
                      '- `ctrlCmd` refers to a value the setting can take and should not be localized.',
                      '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.',
                    ],
                  },
                  "The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier."
                ),
              },
              [Xe]: {
                type: 'string',
                enum: ['singleClick', 'doubleClick'],
                default: 'singleClick',
                description: (0, u.N)(
                  {
                    key: 'openModeModifier',
                    comment: [
                      '`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.',
                    ],
                  },
                  'Controls how to open items in trees and lists using the mouse (if supported). For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might choose to ignore this setting if it is not applicable. '
                ),
              },
              [et]: {
                type: 'boolean',
                default: !1,
                description: (0, u.N)(
                  'horizontalScrolling setting',
                  'Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.'
                ),
              },
              [nt]: {
                type: 'number',
                default: 8,
                minimum: 0,
                maximum: 40,
                description: (0, u.N)(
                  'tree indent setting',
                  'Controls tree indentation in pixels.'
                ),
              },
              [rt]: {
                type: 'string',
                enum: ['none', 'onHover', 'always'],
                default: 'onHover',
                description: (0, u.N)(
                  'render tree indent guides',
                  'Controls whether the tree should render indent guides.'
                ),
              },
              [st]: {
                type: 'boolean',
                default: !1,
                description: (0, u.N)(
                  'list smoothScrolling setting',
                  'Controls whether lists and trees have smooth scrolling.'
                ),
              },
              [tt]: {
                type: 'string',
                enum: ['simple', 'highlight', 'filter'],
                enumDescriptions: [
                  (0, u.N)(
                    'keyboardNavigationSettingKey.simple',
                    'Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.'
                  ),
                  (0, u.N)(
                    'keyboardNavigationSettingKey.highlight',
                    'Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.'
                  ),
                  (0, u.N)(
                    'keyboardNavigationSettingKey.filter',
                    'Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.'
                  ),
                ],
                default: 'highlight',
                description: (0, u.N)(
                  'keyboardNavigationSettingKey',
                  'Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.'
                ),
              },
              [it]: {
                type: 'boolean',
                default: !0,
                markdownDescription: (0, u.N)(
                  'automatic keyboard navigation setting',
                  'Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.'
                ),
              },
            },
          });
      },
      43557: (e, t, i) => {
        'use strict';
        i.d(t, { VZ: () => o, in: () => a, d8: () => d });
        var n = i(72065),
          r = i(5976),
          s = i(4669);
        const o = (0, n.yh)('logService');
        var a;
        !(function (e) {
          (e[(e.Trace = 0)] = 'Trace'),
            (e[(e.Debug = 1)] = 'Debug'),
            (e[(e.Info = 2)] = 'Info'),
            (e[(e.Warning = 3)] = 'Warning'),
            (e[(e.Error = 4)] = 'Error'),
            (e[(e.Critical = 5)] = 'Critical'),
            (e[(e.Off = 6)] = 'Off');
        })(a || (a = {}));
        const l = a.Info;
        class c extends r.JT {
          constructor() {
            super(...arguments),
              (this.level = l),
              (this._onDidChangeLogLevel = this._register(new s.Q5()));
          }
          setLevel(e) {
            this.level !== e &&
              ((this.level = e), this._onDidChangeLogLevel.fire(this.level));
          }
          getLevel() {
            return this.level;
          }
        }
        class d extends c {
          constructor(e = l) {
            super(), this.setLevel(e);
          }
          trace(e, ...t) {
            this.getLevel() <= a.Trace &&
              console.log('%cTRACE', 'color: #888', e, ...t);
          }
          info(e, ...t) {
            this.getLevel() <= a.Info &&
              console.log('%c INFO', 'color: #33f', e, ...t);
          }
          error(e, ...t) {
            this.getLevel() <= a.Error &&
              console.log('%c  ERR', 'color: #f33', e, ...t);
          }
          dispose() {}
        }
      },
      98674: (e, t, i) => {
        'use strict';
        i.d(t, { ZL: () => n, H0: () => r, lT: () => l });
        var n,
          r,
          s = i(72065),
          o = i(63580),
          a = i(14603);
        !(function (e) {
          (e[(e.Hint = 1)] = 'Hint'),
            (e[(e.Info = 2)] = 'Info'),
            (e[(e.Warning = 4)] = 'Warning'),
            (e[(e.Error = 8)] = 'Error');
        })(n || (n = {})),
          (function (e) {
            e.compare = function (e, t) {
              return t - e;
            };
            const t = Object.create(null);
            (t[e.Error] = (0, o.N)('sev.error', 'Error')),
              (t[e.Warning] = (0, o.N)('sev.warning', 'Warning')),
              (t[e.Info] = (0, o.N)('sev.info', 'Info')),
              (e.toString = function (e) {
                return t[e] || '';
              }),
              (e.fromSeverity = function (t) {
                switch (t) {
                  case a.Z.Error:
                    return e.Error;
                  case a.Z.Warning:
                    return e.Warning;
                  case a.Z.Info:
                    return e.Info;
                  case a.Z.Ignore:
                    return e.Hint;
                }
              }),
              (e.toSeverity = function (t) {
                switch (t) {
                  case e.Error:
                    return a.Z.Error;
                  case e.Warning:
                    return a.Z.Warning;
                  case e.Info:
                    return a.Z.Info;
                  case e.Hint:
                    return a.Z.Ignore;
                }
              });
          })(n || (n = {})),
          (function (e) {
            const t = '';
            function i(e, i) {
              let r = [t];
              return (
                e.source ? r.push(e.source.replace('¦', '\\¦')) : r.push(t),
                e.code
                  ? 'string' == typeof e.code
                    ? r.push(e.code.replace('¦', '\\¦'))
                    : r.push(e.code.value.replace('¦', '\\¦'))
                  : r.push(t),
                void 0 !== e.severity && null !== e.severity
                  ? r.push(n.toString(e.severity))
                  : r.push(t),
                e.message && i
                  ? r.push(e.message.replace('¦', '\\¦'))
                  : r.push(t),
                void 0 !== e.startLineNumber && null !== e.startLineNumber
                  ? r.push(e.startLineNumber.toString())
                  : r.push(t),
                void 0 !== e.startColumn && null !== e.startColumn
                  ? r.push(e.startColumn.toString())
                  : r.push(t),
                void 0 !== e.endLineNumber && null !== e.endLineNumber
                  ? r.push(e.endLineNumber.toString())
                  : r.push(t),
                void 0 !== e.endColumn && null !== e.endColumn
                  ? r.push(e.endColumn.toString())
                  : r.push(t),
                r.push(t),
                r.join('¦')
              );
            }
            (e.makeKey = function (e) {
              return i(e, !0);
            }),
              (e.makeKeyOptionalMessage = i);
          })(r || (r = {}));
        const l = (0, s.yh)('markerService');
      },
      59422: (e, t, i) => {
        'use strict';
        i.d(t, { lT: () => n, EO: () => r }), i(14603);
        const n = (0, i(72065).yh)('notificationService');
        class r {}
      },
      50988: (e, t, i) => {
        'use strict';
        i.d(t, { v4: () => l, SW: () => c, xn: () => d });
        var n = i(70666),
          r = i(72065),
          s = i(5976),
          o = i(97295),
          a = function (e, t, i, n) {
            return new (i || (i = Promise))(function (r, s) {
              function o(e) {
                try {
                  l(n.next(e));
                } catch (e) {
                  s(e);
                }
              }
              function a(e) {
                try {
                  l(n.throw(e));
                } catch (e) {
                  s(e);
                }
              }
              function l(e) {
                var t;
                e.done
                  ? r(e.value)
                  : ((t = e.value),
                    t instanceof i
                      ? t
                      : new i(function (e) {
                          e(t);
                        })).then(o, a);
              }
              l((n = n.apply(e, t || [])).next());
            });
          };
        const l = (0, r.yh)('openerService'),
          c = Object.freeze({
            _serviceBrand: void 0,
            registerOpener: () => s.JT.None,
            registerValidator: () => s.JT.None,
            registerExternalUriResolver: () => s.JT.None,
            setExternalOpener() {},
            open() {
              return a(this, void 0, void 0, function* () {
                return !1;
              });
            },
            resolveExternalUri(e) {
              return a(this, void 0, void 0, function* () {
                return { resolved: e, dispose() {} };
              });
            },
          });
        function d(e, t) {
          return n.o.isUri(e) ? (0, o.qq)(e.scheme, t) : (0, o.ok)(e, t + ':');
        }
      },
      90535: (e, t, i) => {
        'use strict';
        i.d(t, { E: () => r, e: () => s });
        var n = i(72065);
        class r {
          constructor(e) {
            this.callback = e;
          }
          report(e) {
            (this._value = e), this.callback(this._value);
          }
        }
        r.None = Object.freeze({ report() {} });
        const s = (0, n.yh)('editorProgressService');
      },
      90725: (e, t, i) => {
        'use strict';
        i.d(t, { Ry: () => n, IP: () => a });
        var n,
          r = i(89872),
          s = i(9488),
          o = i(5976);
        !(function (e) {
          (e[(e.PRESERVE = 0)] = 'PRESERVE'), (e[(e.LAST = 1)] = 'LAST');
        })(n || (n = {}));
        const a = { Quickaccess: 'workbench.contributions.quickaccess' };
        r.B.add(
          a.Quickaccess,
          new (class {
            constructor() {
              (this.providers = []), (this.defaultProvider = void 0);
            }
            registerQuickAccessProvider(e) {
              return (
                0 === e.prefix.length
                  ? (this.defaultProvider = e)
                  : this.providers.push(e),
                this.providers.sort(
                  (e, t) => t.prefix.length - e.prefix.length
                ),
                (0, o.OF)(() => {
                  this.providers.splice(this.providers.indexOf(e), 1),
                    this.defaultProvider === e &&
                      (this.defaultProvider = void 0);
                })
              );
            }
            getQuickAccessProviders() {
              return (0, s.kX)([this.defaultProvider, ...this.providers]);
            }
            getQuickAccessProvider(e) {
              return (
                (e && this.providers.find((t) => e.startsWith(t.prefix))) ||
                this.defaultProvider
              );
            }
          })()
        );
      },
      41157: (e, t, i) => {
        'use strict';
        i.d(t, { jG: () => r.j, eJ: () => s });
        var n = i(72065),
          r = i(67746);
        const s = (0, n.yh)('quickInputService');
      },
      89872: (e, t, i) => {
        'use strict';
        i.d(t, { B: () => s });
        var n = i(98401),
          r = i(35146);
        const s = new (class {
          constructor() {
            this.data = new Map();
          }
          add(e, t) {
            r.ok(n.HD(e)),
              r.ok(n.Kn(t)),
              r.ok(
                !this.data.has(e),
                'There is already an extension with this id'
              ),
              this.data.set(e, t);
          }
          as(e) {
            return this.data.get(e) || null;
          }
        })();
      },
      52365: (e, t, i) => {
        'use strict';
        i.d(t, { Uy: () => a, fk: () => l, vm: () => c });
        var n = i(72065),
          r = i(4669),
          s = i(5976),
          o = i(98401);
        const a = (0, n.yh)('storageService');
        var l;
        !(function (e) {
          (e[(e.NONE = 0)] = 'NONE'), (e[(e.SHUTDOWN = 1)] = 'SHUTDOWN');
        })(l || (l = {}));
        class c extends s.JT {
          constructor() {
            super(...arguments),
              (this._onDidChangeStorage = this._register(new r.Q5())),
              (this._onWillSaveState = this._register(new r.Q5())),
              (this.onWillSaveState = this._onWillSaveState.event),
              (this.globalCache = new Map()),
              (this.workspaceCache = new Map());
          }
          getCache(e) {
            return 0 === e ? this.globalCache : this.workspaceCache;
          }
          get(e, t, i) {
            const n = this.getCache(t).get(e);
            return (0, o.Jp)(n) ? i : n;
          }
          getBoolean(e, t, i) {
            const n = this.getCache(t).get(e);
            return (0, o.Jp)(n) ? i : 'true' === n;
          }
          getNumber(e, t, i) {
            const n = this.getCache(t).get(e);
            return (0, o.Jp)(n) ? i : parseInt(n, 10);
          }
          store(e, t, i) {
            if ((0, o.Jp)(t)) return this.remove(e, i);
            const n = String(t);
            return (
              this.getCache(i).get(e) === n ||
                (this.getCache(i).set(e, n),
                this._onDidChangeStorage.fire({ scope: i, key: e })),
              Promise.resolve()
            );
          }
          remove(e, t) {
            return this.getCache(t).delete(e)
              ? (this._onDidChangeStorage.fire({ scope: t, key: e }),
                Promise.resolve())
              : Promise.resolve();
          }
        }
      },
      10829: (e, t, i) => {
        'use strict';
        i.d(t, { b: () => n });
        const n = (0, i(72065).yh)('telemetryService');
      },
      73910: (e, t, i) => {
        'use strict';
        i.d(t, {
          IP: () => c,
          P6: () => h,
          dR: () => u,
          Id: () => g,
          XZ: () => f,
          R8: () => p,
          lR: () => m,
          xL: () => _,
          ur: () => b,
          Sw: () => v,
          rh: () => y,
          sE: () => w,
          zJ: () => C,
          dt: () => S,
          PR: () => k,
          XE: () => x,
          Pv: () => L,
          _l: () => M,
          YI: () => D,
          EP: () => N,
          RV: () => E,
          SU: () => T,
          C3: () => I,
          p: () => O,
          _t: () => A,
          OZ: () => R,
          j5: () => B,
          b7: () => W,
          GO: () => Y,
          g8: () => H,
          qe: () => j,
          _w: () => V,
          et: () => z,
          AB: () => U,
          yn: () => $,
          zR: () => K,
          lX: () => q,
          b6: () => G,
          uo: () => Z,
          pW: () => J,
          c6: () => Q,
          T8: () => X,
          Du: () => ee,
          fE: () => te,
          cv: () => ie,
          NO: () => ne,
          D0: () => re,
          Hf: () => se,
          D1: () => oe,
          Ng: () => ae,
          zK: () => le,
          tZ: () => ce,
          lo: () => de,
          kJ: () => he,
          op: () => ue,
          hE: () => ge,
          yb: () => fe,
          ES: () => pe,
          Rz: () => me,
          g_: () => _e,
          ny: () => be,
          MU: () => ve,
          jU: () => ye,
          pn: () => we,
          Ei: () => Ce,
          gk: () => Se,
          pt: () => ke,
          yJ: () => xe,
          Sb: () => Le,
          CN: () => Me,
          Lo: () => De,
          _Y: () => Ne,
          Fu: () => Ee,
          sK: () => Te,
          Cz: () => Ie,
          ke: () => Oe,
          yp: () => Ae,
          P4: () => Re,
          XL: () => Pe,
          mH: () => Fe,
          LL: () => Be,
          L_: () => We,
          _b: () => Ye,
          _2: () => He,
          dC: () => je,
          M6: () => Ve,
          rg: () => ze,
          yt: () => Ue,
          s$: () => $e,
          mV: () => Ke,
          $d: () => qe,
          AS: () => Ge,
          Gw: () => Ze,
          vG: () => Je,
          oS: () => Qe,
          S: () => Xe,
          Un: () => et,
          Cd: () => tt,
          DE: () => it,
          Hz: () => nt,
          jb: () => rt,
          $D: () => st,
          E3: () => ot,
          ZG: () => at,
          u2: () => lt,
          Pk: () => ct,
          I1: () => dt,
          U6: () => ht,
          Fm: () => ut,
          SP: () => gt,
          KT: () => ft,
          ov: () => pt,
          Gj: () => mt,
          Iv: () => _t,
          kV: () => bt,
          CA: () => vt,
          Xy: () => yt,
          br: () => wt,
          Jp: () => Ct,
          BO: () => St,
          OL: () => kt,
          _j: () => xt,
          Zn: () => Mt,
          kw: () => Dt,
          Sn: () => Et,
        });
        var n = i(89872),
          r = i(41264),
          s = i(4669),
          o = i(63580),
          a = i(81294),
          l = i(15393);
        const c = { ColorContribution: 'base.contributions.colors' },
          d = new (class {
            constructor() {
              (this._onDidChangeSchema = new s.Q5()),
                (this.onDidChangeSchema = this._onDidChangeSchema.event),
                (this.colorSchema = { type: 'object', properties: {} }),
                (this.colorReferenceSchema = {
                  type: 'string',
                  enum: [],
                  enumDescriptions: [],
                }),
                (this.colorsById = {});
            }
            registerColor(e, t, i, n = !1, r) {
              let s = {
                id: e,
                description: i,
                defaults: t,
                needsTransparency: n,
                deprecationMessage: r,
              };
              this.colorsById[e] = s;
              let o = {
                type: 'string',
                description: i,
                format: 'color-hex',
                defaultSnippets: [{ body: '${1:#ff0000}' }],
              };
              return (
                r && (o.deprecationMessage = r),
                (this.colorSchema.properties[e] = o),
                this.colorReferenceSchema.enum.push(e),
                this.colorReferenceSchema.enumDescriptions.push(i),
                this._onDidChangeSchema.fire(),
                e
              );
            }
            resolveDefaultColor(e, t) {
              const i = this.colorsById[e];
              if (i && i.defaults) return Et(i.defaults[t.type], t);
            }
            getColorSchema() {
              return this.colorSchema;
            }
            toString() {
              return Object.keys(this.colorsById)
                .sort((e, t) => {
                  let i = -1 === e.indexOf('.') ? 0 : 1,
                    n = -1 === t.indexOf('.') ? 0 : 1;
                  return i !== n ? i - n : e.localeCompare(t);
                })
                .map((e) => `- \`${e}\`: ${this.colorsById[e].description}`)
                .join('\n');
            }
          })();
        function h(e, t, i, n, r) {
          return d.registerColor(e, t, i, n, r);
        }
        n.B.add(c.ColorContribution, d);
        const u = h(
            'foreground',
            { dark: '#CCCCCC', light: '#616161', hc: '#FFFFFF' },
            o.N(
              'foreground',
              'Overall foreground color. This color is only used if not overridden by a component.'
            )
          ),
          g = h(
            'errorForeground',
            { dark: '#F48771', light: '#A1260D', hc: '#F48771' },
            o.N(
              'errorForeground',
              'Overall foreground color for error messages. This color is only used if not overridden by a component.'
            )
          ),
          f = h(
            'icon.foreground',
            { dark: '#C5C5C5', light: '#424242', hc: '#FFFFFF' },
            o.N(
              'iconForeground',
              'The default color for icons in the workbench.'
            )
          ),
          p = h(
            'focusBorder',
            { dark: '#007FD4', light: '#0090F1', hc: '#F38518' },
            o.N(
              'focusBorder',
              'Overall border color for focused elements. This color is only used if not overridden by a component.'
            )
          ),
          m = h(
            'contrastBorder',
            { light: null, dark: null, hc: '#6FC3DF' },
            o.N(
              'contrastBorder',
              'An extra border around elements to separate them from others for greater contrast.'
            )
          ),
          _ = h(
            'contrastActiveBorder',
            { light: null, dark: null, hc: p },
            o.N(
              'activeContrastBorder',
              'An extra border around active elements to separate them from others for greater contrast.'
            )
          ),
          b = h(
            'textLink.foreground',
            { light: '#006AB1', dark: '#3794FF', hc: '#3794FF' },
            o.N('textLinkForeground', 'Foreground color for links in text.')
          ),
          v = h(
            'textCodeBlock.background',
            { light: '#dcdcdc66', dark: '#0a0a0a66', hc: r.Il.black },
            o.N(
              'textCodeBlockBackground',
              'Background color for code blocks in text.'
            )
          ),
          y = h(
            'widget.shadow',
            { dark: '#000000', light: '#A8A8A8', hc: null },
            o.N(
              'widgetShadow',
              'Shadow color of widgets such as find/replace inside the editor.'
            )
          ),
          w = h(
            'input.background',
            { dark: '#3C3C3C', light: r.Il.white, hc: r.Il.black },
            o.N('inputBoxBackground', 'Input box background.')
          ),
          C = h(
            'input.foreground',
            { dark: u, light: u, hc: u },
            o.N('inputBoxForeground', 'Input box foreground.')
          ),
          S = h(
            'input.border',
            { dark: null, light: null, hc: m },
            o.N('inputBoxBorder', 'Input box border.')
          ),
          k = h(
            'inputOption.activeBorder',
            { dark: '#007ACC00', light: '#007ACC00', hc: m },
            o.N(
              'inputBoxActiveOptionBorder',
              'Border color of activated options in input fields.'
            )
          ),
          x = h(
            'inputOption.activeBackground',
            { dark: Mt(p, 0.4), light: Mt(p, 0.2), hc: r.Il.transparent },
            o.N(
              'inputOption.activeBackground',
              'Background color of activated options in input fields.'
            )
          ),
          L = h(
            'inputOption.activeForeground',
            { dark: r.Il.white, light: r.Il.black, hc: null },
            o.N(
              'inputOption.activeForeground',
              'Foreground color of activated options in input fields.'
            )
          ),
          M = h(
            'inputValidation.infoBackground',
            { dark: '#063B49', light: '#D6ECF2', hc: r.Il.black },
            o.N(
              'inputValidationInfoBackground',
              'Input validation background color for information severity.'
            )
          ),
          D = h(
            'inputValidation.infoForeground',
            { dark: null, light: null, hc: null },
            o.N(
              'inputValidationInfoForeground',
              'Input validation foreground color for information severity.'
            )
          ),
          N = h(
            'inputValidation.infoBorder',
            { dark: '#007acc', light: '#007acc', hc: m },
            o.N(
              'inputValidationInfoBorder',
              'Input validation border color for information severity.'
            )
          ),
          E = h(
            'inputValidation.warningBackground',
            { dark: '#352A05', light: '#F6F5D2', hc: r.Il.black },
            o.N(
              'inputValidationWarningBackground',
              'Input validation background color for warning severity.'
            )
          ),
          T = h(
            'inputValidation.warningForeground',
            { dark: null, light: null, hc: null },
            o.N(
              'inputValidationWarningForeground',
              'Input validation foreground color for warning severity.'
            )
          ),
          I = h(
            'inputValidation.warningBorder',
            { dark: '#B89500', light: '#B89500', hc: m },
            o.N(
              'inputValidationWarningBorder',
              'Input validation border color for warning severity.'
            )
          ),
          O = h(
            'inputValidation.errorBackground',
            { dark: '#5A1D1D', light: '#F2DEDE', hc: r.Il.black },
            o.N(
              'inputValidationErrorBackground',
              'Input validation background color for error severity.'
            )
          ),
          A = h(
            'inputValidation.errorForeground',
            { dark: null, light: null, hc: null },
            o.N(
              'inputValidationErrorForeground',
              'Input validation foreground color for error severity.'
            )
          ),
          R = h(
            'inputValidation.errorBorder',
            { dark: '#BE1100', light: '#BE1100', hc: m },
            o.N(
              'inputValidationErrorBorder',
              'Input validation border color for error severity.'
            )
          ),
          P = h(
            'dropdown.background',
            { dark: '#3C3C3C', light: r.Il.white, hc: r.Il.black },
            o.N('dropdownBackground', 'Dropdown background.')
          ),
          F = h(
            'dropdown.foreground',
            { dark: '#F0F0F0', light: null, hc: r.Il.white },
            o.N('dropdownForeground', 'Dropdown foreground.')
          ),
          B = h(
            'button.foreground',
            { dark: r.Il.white, light: r.Il.white, hc: r.Il.white },
            o.N('buttonForeground', 'Button foreground color.')
          ),
          W = h(
            'button.background',
            { dark: '#0E639C', light: '#007ACC', hc: null },
            o.N('buttonBackground', 'Button background color.')
          ),
          Y = h(
            'button.hoverBackground',
            { dark: Lt(W, 0.2), light: xt(W, 0.2), hc: null },
            o.N(
              'buttonHoverBackground',
              'Button background color when hovering.'
            )
          ),
          H = h(
            'badge.background',
            { dark: '#4D4D4D', light: '#C4C4C4', hc: r.Il.black },
            o.N(
              'badgeBackground',
              'Badge background color. Badges are small information labels, e.g. for search results count.'
            )
          ),
          j = h(
            'badge.foreground',
            { dark: r.Il.white, light: '#333', hc: r.Il.white },
            o.N(
              'badgeForeground',
              'Badge foreground color. Badges are small information labels, e.g. for search results count.'
            )
          ),
          V = h(
            'scrollbar.shadow',
            { dark: '#000000', light: '#DDDDDD', hc: null },
            o.N(
              'scrollbarShadow',
              'Scrollbar shadow to indicate that the view is scrolled.'
            )
          ),
          z = h(
            'scrollbarSlider.background',
            {
              dark: r.Il.fromHex('#797979').transparent(0.4),
              light: r.Il.fromHex('#646464').transparent(0.4),
              hc: Mt(m, 0.6),
            },
            o.N(
              'scrollbarSliderBackground',
              'Scrollbar slider background color.'
            )
          ),
          U = h(
            'scrollbarSlider.hoverBackground',
            {
              dark: r.Il.fromHex('#646464').transparent(0.7),
              light: r.Il.fromHex('#646464').transparent(0.7),
              hc: Mt(m, 0.8),
            },
            o.N(
              'scrollbarSliderHoverBackground',
              'Scrollbar slider background color when hovering.'
            )
          ),
          $ = h(
            'scrollbarSlider.activeBackground',
            {
              dark: r.Il.fromHex('#BFBFBF').transparent(0.4),
              light: r.Il.fromHex('#000000').transparent(0.6),
              hc: m,
            },
            o.N(
              'scrollbarSliderActiveBackground',
              'Scrollbar slider background color when clicked on.'
            )
          ),
          K = h(
            'progressBar.background',
            {
              dark: r.Il.fromHex('#0E70C0'),
              light: r.Il.fromHex('#0E70C0'),
              hc: m,
            },
            o.N(
              'progressBarBackground',
              'Background color of the progress bar that can show for long running operations.'
            )
          ),
          q = h(
            'editorError.foreground',
            { dark: '#F48771', light: '#E51400', hc: null },
            o.N(
              'editorError.foreground',
              'Foreground color of error squigglies in the editor.'
            )
          ),
          G = h(
            'editorError.border',
            {
              dark: null,
              light: null,
              hc: r.Il.fromHex('#E47777').transparent(0.8),
            },
            o.N('errorBorder', 'Border color of error boxes in the editor.')
          ),
          Z = h(
            'editorWarning.foreground',
            { dark: '#CCA700', light: '#E9A700', hc: null },
            o.N(
              'editorWarning.foreground',
              'Foreground color of warning squigglies in the editor.'
            )
          ),
          J = h(
            'editorWarning.border',
            {
              dark: null,
              light: null,
              hc: r.Il.fromHex('#FFCC00').transparent(0.8),
            },
            o.N('warningBorder', 'Border color of warning boxes in the editor.')
          ),
          Q = h(
            'editorInfo.foreground',
            { dark: '#75BEFF', light: '#75BEFF', hc: null },
            o.N(
              'editorInfo.foreground',
              'Foreground color of info squigglies in the editor.'
            )
          ),
          X = h(
            'editorInfo.border',
            {
              dark: null,
              light: null,
              hc: r.Il.fromHex('#75BEFF').transparent(0.8),
            },
            o.N('infoBorder', 'Border color of info boxes in the editor.')
          ),
          ee = h(
            'editorHint.foreground',
            {
              dark: r.Il.fromHex('#eeeeee').transparent(0.7),
              light: '#6c6c6c',
              hc: null,
            },
            o.N(
              'editorHint.foreground',
              'Foreground color of hint squigglies in the editor.'
            )
          ),
          te = h(
            'editorHint.border',
            {
              dark: null,
              light: null,
              hc: r.Il.fromHex('#eeeeee').transparent(0.8),
            },
            o.N('hintBorder', 'Border color of hint boxes in the editor.')
          ),
          ie = h(
            'editor.background',
            { light: '#fffffe', dark: '#1E1E1E', hc: r.Il.black },
            o.N('editorBackground', 'Editor background color.')
          ),
          ne = h(
            'editor.foreground',
            { light: '#333333', dark: '#BBBBBB', hc: r.Il.white },
            o.N('editorForeground', 'Editor default foreground color.')
          ),
          re = h(
            'editorWidget.background',
            { dark: '#252526', light: '#F3F3F3', hc: '#0C141F' },
            o.N(
              'editorWidgetBackground',
              'Background color of editor widgets, such as find/replace.'
            )
          ),
          se = h(
            'editorWidget.foreground',
            { dark: u, light: u, hc: u },
            o.N(
              'editorWidgetForeground',
              'Foreground color of editor widgets, such as find/replace.'
            )
          ),
          oe = h(
            'editorWidget.border',
            { dark: '#454545', light: '#C8C8C8', hc: m },
            o.N(
              'editorWidgetBorder',
              'Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.'
            )
          ),
          ae = h(
            'editorWidget.resizeBorder',
            { light: null, dark: null, hc: null },
            o.N(
              'editorWidgetResizeBorder',
              'Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.'
            )
          ),
          le = h(
            'quickInput.background',
            { dark: re, light: re, hc: re },
            o.N(
              'pickerBackground',
              'Quick picker background color. The quick picker widget is the container for pickers like the command palette.'
            )
          ),
          ce = h(
            'quickInput.foreground',
            { dark: se, light: se, hc: se },
            o.N(
              'pickerForeground',
              'Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.'
            )
          ),
          de = h(
            'quickInputTitle.background',
            {
              dark: new r.Il(new r.VS(255, 255, 255, 0.105)),
              light: new r.Il(new r.VS(0, 0, 0, 0.06)),
              hc: '#000000',
            },
            o.N(
              'pickerTitleBackground',
              'Quick picker title background color. The quick picker widget is the container for pickers like the command palette.'
            )
          ),
          he = h(
            'pickerGroup.foreground',
            { dark: '#3794FF', light: '#0066BF', hc: r.Il.white },
            o.N(
              'pickerGroupForeground',
              'Quick picker color for grouping labels.'
            )
          ),
          ue = h(
            'pickerGroup.border',
            { dark: '#3F3F46', light: '#CCCEDB', hc: r.Il.white },
            o.N('pickerGroupBorder', 'Quick picker color for grouping borders.')
          ),
          ge = h(
            'editor.selectionBackground',
            { light: '#ADD6FF', dark: '#264F78', hc: '#f3f518' },
            o.N('editorSelectionBackground', 'Color of the editor selection.')
          ),
          fe = h(
            'editor.selectionForeground',
            { light: null, dark: null, hc: '#000000' },
            o.N(
              'editorSelectionForeground',
              'Color of the selected text for high contrast.'
            )
          ),
          pe = h(
            'editor.inactiveSelectionBackground',
            { light: Mt(ge, 0.5), dark: Mt(ge, 0.5), hc: Mt(ge, 0.5) },
            o.N(
              'editorInactiveSelection',
              'Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          me = h(
            'editor.selectionHighlightBackground',
            {
              light: Nt(ge, ie, 0.3, 0.6),
              dark: Nt(ge, ie, 0.3, 0.6),
              hc: null,
            },
            o.N(
              'editorSelectionHighlight',
              'Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          _e = h(
            'editor.selectionHighlightBorder',
            { light: null, dark: null, hc: _ },
            o.N(
              'editorSelectionHighlightBorder',
              'Border color for regions with the same content as the selection.'
            )
          ),
          be = h(
            'editor.findMatchBackground',
            { light: '#A8AC94', dark: '#515C6A', hc: null },
            o.N('editorFindMatch', 'Color of the current search match.')
          ),
          ve = h(
            'editor.findMatchHighlightBackground',
            { light: '#EA5C0055', dark: '#EA5C0055', hc: null },
            o.N(
              'findMatchHighlight',
              'Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          ye = h(
            'editor.findRangeHighlightBackground',
            { dark: '#3a3d4166', light: '#b4b4b44d', hc: null },
            o.N(
              'findRangeHighlight',
              'Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          we = h(
            'editor.findMatchBorder',
            { light: null, dark: null, hc: _ },
            o.N(
              'editorFindMatchBorder',
              'Border color of the current search match.'
            )
          ),
          Ce = h(
            'editor.findMatchHighlightBorder',
            { light: null, dark: null, hc: _ },
            o.N(
              'findMatchHighlightBorder',
              'Border color of the other search matches.'
            )
          ),
          Se = h(
            'editor.findRangeHighlightBorder',
            { dark: null, light: null, hc: Mt(_, 0.4) },
            o.N(
              'findRangeHighlightBorder',
              'Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          ke = h(
            'editor.hoverHighlightBackground',
            { light: '#ADD6FF26', dark: '#264f7840', hc: '#ADD6FF26' },
            o.N(
              'hoverHighlight',
              'Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          xe = h(
            'editorHoverWidget.background',
            { light: re, dark: re, hc: re },
            o.N('hoverBackground', 'Background color of the editor hover.')
          ),
          Le = h(
            'editorHoverWidget.foreground',
            { light: se, dark: se, hc: se },
            o.N('hoverForeground', 'Foreground color of the editor hover.')
          ),
          Me = h(
            'editorHoverWidget.border',
            { light: oe, dark: oe, hc: oe },
            o.N('hoverBorder', 'Border color of the editor hover.')
          ),
          De = h(
            'editorHoverWidget.statusBarBackground',
            { dark: Lt(xe, 0.2), light: xt(xe, 0.05), hc: re },
            o.N(
              'statusBarBackground',
              'Background color of the editor hover status bar.'
            )
          ),
          Ne = h(
            'editorLink.activeForeground',
            { dark: '#4E94CE', light: r.Il.blue, hc: r.Il.cyan },
            o.N('activeLinkForeground', 'Color of active links.')
          ),
          Ee = h(
            'editorLightBulb.foreground',
            { dark: '#FFCC00', light: '#DDB100', hc: '#FFCC00' },
            o.N(
              'editorLightBulbForeground',
              'The color used for the lightbulb actions icon.'
            )
          ),
          Te = h(
            'editorLightBulbAutoFix.foreground',
            { dark: '#75BEFF', light: '#007ACC', hc: '#75BEFF' },
            o.N(
              'editorLightBulbAutoFixForeground',
              'The color used for the lightbulb auto fix actions icon.'
            )
          ),
          Ie = new r.Il(new r.VS(155, 185, 85, 0.2)),
          Oe = new r.Il(new r.VS(255, 0, 0, 0.2)),
          Ae = h(
            'diffEditor.insertedTextBackground',
            { dark: Ie, light: Ie, hc: null },
            o.N(
              'diffEditorInserted',
              'Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          Re = h(
            'diffEditor.removedTextBackground',
            { dark: Oe, light: Oe, hc: null },
            o.N(
              'diffEditorRemoved',
              'Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          Pe = h(
            'diffEditor.insertedTextBorder',
            { dark: null, light: null, hc: '#33ff2eff' },
            o.N(
              'diffEditorInsertedOutline',
              'Outline color for the text that got inserted.'
            )
          ),
          Fe = h(
            'diffEditor.removedTextBorder',
            { dark: null, light: null, hc: '#FF008F' },
            o.N(
              'diffEditorRemovedOutline',
              'Outline color for text that got removed.'
            )
          ),
          Be = h(
            'diffEditor.border',
            { dark: null, light: null, hc: m },
            o.N(
              'diffEditorBorder',
              'Border color between the two text editors.'
            )
          ),
          We = h(
            'diffEditor.diagonalFill',
            { dark: '#cccccc33', light: '#22222233', hc: null },
            o.N(
              'diffDiagonalFill',
              "Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views."
            )
          ),
          Ye = h(
            'list.focusBackground',
            { dark: '#062F4A', light: '#D6EBFF', hc: null },
            o.N(
              'listFocusBackground',
              'List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          He = h(
            'list.focusForeground',
            { dark: null, light: null, hc: null },
            o.N(
              'listFocusForeground',
              'List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          je = h(
            'list.activeSelectionBackground',
            { dark: '#094771', light: '#0074E8', hc: null },
            o.N(
              'listActiveSelectionBackground',
              'List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          Ve = h(
            'list.activeSelectionForeground',
            { dark: r.Il.white, light: r.Il.white, hc: null },
            o.N(
              'listActiveSelectionForeground',
              'List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          ze = h(
            'list.inactiveSelectionBackground',
            { dark: '#37373D', light: '#E4E6F1', hc: null },
            o.N(
              'listInactiveSelectionBackground',
              'List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          Ue = h(
            'list.inactiveSelectionForeground',
            { dark: null, light: null, hc: null },
            o.N(
              'listInactiveSelectionForeground',
              'List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          $e = h(
            'list.inactiveFocusBackground',
            { dark: null, light: null, hc: null },
            o.N(
              'listInactiveFocusBackground',
              'List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.'
            )
          ),
          Ke = h(
            'list.hoverBackground',
            { dark: '#2A2D2E', light: '#F0F0F0', hc: null },
            o.N(
              'listHoverBackground',
              'List/Tree background when hovering over items using the mouse.'
            )
          ),
          qe = h(
            'list.hoverForeground',
            { dark: null, light: null, hc: null },
            o.N(
              'listHoverForeground',
              'List/Tree foreground when hovering over items using the mouse.'
            )
          ),
          Ge = h(
            'list.dropBackground',
            { dark: Ye, light: Ye, hc: null },
            o.N(
              'listDropBackground',
              'List/Tree drag and drop background when moving items around using the mouse.'
            )
          ),
          Ze = h(
            'list.highlightForeground',
            { dark: '#0097fb', light: '#0066BF', hc: p },
            o.N(
              'highlight',
              'List/Tree foreground color of the match highlights when searching inside the list/tree.'
            )
          ),
          Je = h(
            'listFilterWidget.background',
            { light: '#efc1ad', dark: '#653723', hc: r.Il.black },
            o.N(
              'listFilterWidgetBackground',
              'Background color of the type filter widget in lists and trees.'
            )
          ),
          Qe = h(
            'listFilterWidget.outline',
            { dark: r.Il.transparent, light: r.Il.transparent, hc: '#f38518' },
            o.N(
              'listFilterWidgetOutline',
              'Outline color of the type filter widget in lists and trees.'
            )
          ),
          Xe = h(
            'listFilterWidget.noMatchesOutline',
            { dark: '#BE1100', light: '#BE1100', hc: m },
            o.N(
              'listFilterWidgetNoMatchesOutline',
              'Outline color of the type filter widget in lists and trees, when there are no matches.'
            )
          ),
          et = h(
            'tree.indentGuidesStroke',
            { dark: '#585858', light: '#a9a9a9', hc: '#a9a9a9' },
            o.N(
              'treeIndentGuidesStroke',
              'Tree stroke color for the indentation guides.'
            )
          ),
          tt = h(
            'menu.border',
            { dark: null, light: null, hc: m },
            o.N('menuBorder', 'Border color of menus.')
          ),
          it = h(
            'menu.foreground',
            { dark: F, light: u, hc: F },
            o.N('menuForeground', 'Foreground color of menu items.')
          ),
          nt = h(
            'menu.background',
            { dark: P, light: P, hc: P },
            o.N('menuBackground', 'Background color of menu items.')
          ),
          rt = h(
            'menu.selectionForeground',
            { dark: Ve, light: Ve, hc: Ve },
            o.N(
              'menuSelectionForeground',
              'Foreground color of the selected menu item in menus.'
            )
          ),
          st = h(
            'menu.selectionBackground',
            { dark: je, light: je, hc: je },
            o.N(
              'menuSelectionBackground',
              'Background color of the selected menu item in menus.'
            )
          ),
          ot = h(
            'menu.selectionBorder',
            { dark: null, light: null, hc: _ },
            o.N(
              'menuSelectionBorder',
              'Border color of the selected menu item in menus.'
            )
          ),
          at = h(
            'menu.separatorBackground',
            { dark: '#BBBBBB', light: '#888888', hc: m },
            o.N(
              'menuSeparatorBackground',
              'Color of a separator menu item in menus.'
            )
          ),
          lt = h(
            'editor.snippetTabstopHighlightBackground',
            {
              dark: new r.Il(new r.VS(124, 124, 124, 0.3)),
              light: new r.Il(new r.VS(10, 50, 100, 0.2)),
              hc: new r.Il(new r.VS(124, 124, 124, 0.3)),
            },
            o.N(
              'snippetTabstopHighlightBackground',
              'Highlight background color of a snippet tabstop.'
            )
          ),
          ct = h(
            'editor.snippetTabstopHighlightBorder',
            { dark: null, light: null, hc: null },
            o.N(
              'snippetTabstopHighlightBorder',
              'Highlight border color of a snippet tabstop.'
            )
          ),
          dt = h(
            'editor.snippetFinalTabstopHighlightBackground',
            { dark: null, light: null, hc: null },
            o.N(
              'snippetFinalTabstopHighlightBackground',
              'Highlight background color of the final tabstop of a snippet.'
            )
          ),
          ht = h(
            'editor.snippetFinalTabstopHighlightBorder',
            {
              dark: '#525252',
              light: new r.Il(new r.VS(10, 50, 100, 0.5)),
              hc: '#525252',
            },
            o.N(
              'snippetFinalTabstopHighlightBorder',
              'Highlight border color of the final tabstop of a snippet.'
            )
          ),
          ut = h(
            'editorOverviewRuler.findMatchForeground',
            { dark: '#d186167e', light: '#d186167e', hc: '#AB5A00' },
            o.N(
              'overviewRulerFindMatchForeground',
              'Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          gt = h(
            'editorOverviewRuler.selectionHighlightForeground',
            { dark: '#A0A0A0CC', light: '#A0A0A0CC', hc: '#A0A0A0CC' },
            o.N(
              'overviewRulerSelectionHighlightForeground',
              'Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.'
            ),
            !0
          ),
          ft = h(
            'minimap.findMatchHighlight',
            { light: '#d18616', dark: '#d18616', hc: '#AB5A00' },
            o.N(
              'minimapFindMatchHighlight',
              'Minimap marker color for find matches.'
            ),
            !0
          ),
          pt = h(
            'minimap.selectionHighlight',
            { light: '#ADD6FF', dark: '#264F78', hc: '#ffffff' },
            o.N(
              'minimapSelectionHighlight',
              'Minimap marker color for the editor selection.'
            ),
            !0
          ),
          mt = h(
            'minimap.errorHighlight',
            {
              dark: new r.Il(new r.VS(255, 18, 18, 0.7)),
              light: new r.Il(new r.VS(255, 18, 18, 0.7)),
              hc: new r.Il(new r.VS(255, 50, 50, 1)),
            },
            o.N('minimapError', 'Minimap marker color for errors.')
          ),
          _t = h(
            'minimap.warningHighlight',
            { dark: Z, light: Z, hc: J },
            o.N('overviewRuleWarning', 'Minimap marker color for warnings.')
          ),
          bt = h(
            'minimap.background',
            { dark: null, light: null, hc: null },
            o.N('minimapBackground', 'Minimap background color.')
          ),
          vt = h(
            'minimapSlider.background',
            { light: Mt(z, 0.5), dark: Mt(z, 0.5), hc: Mt(z, 0.5) },
            o.N('minimapSliderBackground', 'Minimap slider background color.')
          ),
          yt = h(
            'minimapSlider.hoverBackground',
            { light: Mt(U, 0.5), dark: Mt(U, 0.5), hc: Mt(U, 0.5) },
            o.N(
              'minimapSliderHoverBackground',
              'Minimap slider background color when hovering.'
            )
          ),
          wt = h(
            'minimapSlider.activeBackground',
            { light: Mt($, 0.5), dark: Mt($, 0.5), hc: Mt($, 0.5) },
            o.N(
              'minimapSliderActiveBackground',
              'Minimap slider background color when clicked on.'
            )
          ),
          Ct = h(
            'problemsErrorIcon.foreground',
            { dark: q, light: q, hc: q },
            o.N(
              'problemsErrorIconForeground',
              'The color used for the problems error icon.'
            )
          ),
          St = h(
            'problemsWarningIcon.foreground',
            { dark: Z, light: Z, hc: Z },
            o.N(
              'problemsWarningIconForeground',
              'The color used for the problems warning icon.'
            )
          ),
          kt = h(
            'problemsInfoIcon.foreground',
            { dark: Q, light: Q, hc: Q },
            o.N(
              'problemsInfoIconForeground',
              'The color used for the problems info icon.'
            )
          );
        function xt(e, t) {
          return (i) => {
            let n = Et(e, i);
            if (n) return n.darken(t);
          };
        }
        function Lt(e, t) {
          return (i) => {
            let n = Et(e, i);
            if (n) return n.lighten(t);
          };
        }
        function Mt(e, t) {
          return (i) => {
            let n = Et(e, i);
            if (n) return n.transparent(t);
          };
        }
        function Dt(...e) {
          return (t) => {
            for (let i of e) {
              let e = Et(i, t);
              if (e) return e;
            }
          };
        }
        function Nt(e, t, i, n) {
          return (s) => {
            let o = Et(e, s);
            if (o) {
              let e = Et(t, s);
              return e
                ? o.isDarkerThan(e)
                  ? r.Il.getLighterColor(o, e, i).transparent(n)
                  : r.Il.getDarkerColor(o, e, i).transparent(n)
                : o.transparent(i * n);
            }
          };
        }
        function Et(e, t) {
          if (null !== e)
            return 'string' == typeof e
              ? '#' === e[0]
                ? r.Il.fromHex(e)
                : t.getColor(e)
              : e instanceof r.Il
              ? e
              : 'function' == typeof e
              ? e(t)
              : void 0;
        }
        const Tt = 'vscode://schemas/workbench-colors';
        let It = n.B.as(a.I.JSONContribution);
        It.registerSchema(Tt, d.getColorSchema());
        const Ot = new l.pY(() => It.notifySchemaChanged(Tt), 200);
        d.onDidChangeSchema(() => {
          Ot.isScheduled() || Ot.schedule();
        });
      },
      88810: (e, t, i) => {
        'use strict';
        i.d(t, {
          o: () => r,
          WZ: () => o,
          Jl: () => a,
          O2: () => l,
          tj: () => d,
        });
        var n = i(73910);
        function r(e, t) {
          const i = Object.create(null);
          for (let r in t) {
            const s = t[r];
            s && (i[r] = (0, n.Sn)(s, e));
          }
          return i;
        }
        function s(e, t, i) {
          function n(n) {
            const s = r(e.getColorTheme(), t);
            'function' == typeof i ? i(s) : i.style(s);
          }
          return n(e.getColorTheme()), e.onDidColorThemeChange(n);
        }
        function o(e, t, i) {
          return s(
            t,
            {
              badgeBackground: (i && i.badgeBackground) || n.g8,
              badgeForeground: (i && i.badgeForeground) || n.qe,
              badgeBorder: n.lR,
            },
            e
          );
        }
        function a(e, t, i) {
          return s(t, Object.assign(Object.assign({}, l), i || {}), e);
        }
        const l = {
            listFocusBackground: n._b,
            listFocusForeground: n._2,
            listActiveSelectionBackground: (0, n._j)(n.dC, 0.1),
            listActiveSelectionForeground: n.M6,
            listFocusAndSelectionBackground: n.dC,
            listFocusAndSelectionForeground: n.M6,
            listInactiveSelectionBackground: n.rg,
            listInactiveSelectionForeground: n.yt,
            listInactiveFocusBackground: n.s$,
            listHoverBackground: n.mV,
            listHoverForeground: n.$d,
            listDropBackground: n.AS,
            listFocusOutline: n.xL,
            listSelectionOutline: n.xL,
            listHoverOutline: n.xL,
            listFilterWidgetBackground: n.vG,
            listFilterWidgetOutline: n.oS,
            listFilterWidgetNoMatchesOutline: n.S,
            listMatchesShadow: n.rh,
            treeIndentGuidesStroke: n.Un,
          },
          c = {
            shadowColor: n.rh,
            borderColor: n.Cd,
            foregroundColor: n.DE,
            backgroundColor: n.Hz,
            selectionForegroundColor: n.jb,
            selectionBackgroundColor: n.$D,
            selectionBorderColor: n.E3,
            separatorColor: n.ZG,
          };
        function d(e, t, i) {
          return s(t, Object.assign(Object.assign({}, c), i), e);
        }
      },
      97781: (e, t, i) => {
        'use strict';
        i.d(t, {
          XE: () => a,
          EN: () => l,
          kS: () => c,
          QP: () => d,
          m6: () => h,
          IP: () => u,
          Ic: () => f,
          bB: () => p,
        });
        var n = i(72065),
          r = i(5976),
          s = i(89872),
          o = i(4669);
        const a = (0, n.yh)('themeService');
        function l(e) {
          return { id: e };
        }
        var c;
        !(function (e) {
          e.isThemeIcon = function (e) {
            return e && 'object' == typeof e && 'string' == typeof e.id;
          };
          const t = /^\$\(([a-z.]+\/)?([a-z-~]+)\)$/i;
          e.fromString = function (e) {
            const i = t.exec(e);
            if (!i) return;
            let [, n, r] = i;
            return n || (n = 'codicon/'), { id: n + r };
          };
          const i = /^(codicon\/)?([a-z-]+)(~[a-z]+)?$/i;
          e.asClassName = function (e) {
            const t = i.exec(e.id);
            if (!t) return;
            let [, , n, r] = t,
              s = `codicon codicon-${n}`;
            return r && (s += ` ${r.substr(1)}`), s;
          };
        })(c || (c = {}));
        const d = 'hc';
        function h(e) {
          switch (e) {
            case 'dark':
              return 'vs-dark';
            case d:
              return 'hc-black';
            default:
              return 'vs';
          }
        }
        const u = { ThemingContribution: 'base.contributions.theming' };
        let g = new (class {
          constructor() {
            (this.themingParticipants = []),
              (this.themingParticipants = []),
              (this.onThemingParticipantAddedEmitter = new o.Q5());
          }
          onColorThemeChange(e) {
            return (
              this.themingParticipants.push(e),
              this.onThemingParticipantAddedEmitter.fire(e),
              (0, r.OF)(() => {
                const t = this.themingParticipants.indexOf(e);
                this.themingParticipants.splice(t, 1);
              })
            );
          }
          getThemingParticipants() {
            return this.themingParticipants;
          }
        })();
        function f(e) {
          return g.onColorThemeChange(e);
        }
        s.B.add(u.ThemingContribution, g);
        class p extends r.JT {
          constructor(e) {
            super(),
              (this.themeService = e),
              (this.theme = e.getColorTheme()),
              this._register(
                this.themeService.onDidColorThemeChange((e) =>
                  this.onThemeChange(e)
                )
              );
          }
          onThemeChange(e) {
            (this.theme = e), this.updateStyles();
          }
          updateStyles() {}
        }
      },
      64862: (e, t, i) => {
        'use strict';
        i.d(t, { t: () => n, Y: () => r });
        const n = (0, i(72065).yh)('undoRedoService');
        class r {
          constructor(e, t) {
            (this.resource = e), (this.elements = t);
          }
        }
      },
      37280: (e, t, i) => {
        'use strict';
        i.d(t, { u: () => s, i: () => o });
        var n = i(4669),
          r = i(5976);
        const s = (0, i(72065).yh)('IStorageKeysSyncRegistryService');
        class o extends r.JT {
          constructor() {
            super(),
              (this._storageKeys = new Map()),
              (this._onDidChangeStorageKeys = this._register(new n.Q5())),
              this._register((0, r.OF)(() => this._storageKeys.clear()));
          }
          get storageKeys() {
            return [...this._storageKeys.values()];
          }
          registerStorageKey(e) {
            this._storageKeys.has(e.key) ||
              (this._storageKeys.set(e.key, e),
              this._onDidChangeStorageKeys.fire(this.storageKeys));
          }
        }
      },
      40382: (e, t, i) => {
        'use strict';
        i.d(t, { ec: () => o, md: () => c });
        var n = i(70666),
          r = i(95935),
          s = i(72065);
        i(43702);
        const o = (0, s.yh)('contextService');
        var a, l;
        !(function (e) {
          e.isIWorkspace = function (e) {
            return !(
              !e ||
              'object' != typeof e ||
              'string' != typeof e.id ||
              !Array.isArray(e.folders)
            );
          };
        })(a || (a = {})),
          (function (e) {
            e.isIWorkspaceFolder = function (e) {
              return !(
                !e ||
                'object' != typeof e ||
                !n.o.isUri(e.uri) ||
                'string' != typeof e.name ||
                'function' != typeof e.toResource
              );
            };
          })(l || (l = {}));
        class c {
          constructor(e, t) {
            (this.raw = t),
              (this.uri = e.uri),
              (this.index = e.index),
              (this.name = e.name);
          }
          toResource(e) {
            return r.Vo(this.uri, e);
          }
          toJSON() {
            return { uri: this.uri, name: this.name, index: this.index };
          }
        }
      },
      673: (e) => {
        e.exports = (function e(t) {
          'use strict';
          var i = /^\0+/g,
            n = /[\0\r\f]/g,
            r = /: */g,
            s = /zoo|gra/,
            o = /([,: ])(transform)/g,
            a = /,+\s*(?![^(]*[)])/g,
            l = / +\s*(?![^(]*[)])/g,
            c = / *[\0] */g,
            d = /,\r+?/g,
            h = /([\t\r\n ])*\f?&/g,
            u = /:global\(((?:[^\(\)\[\]]*|\[.*\]|\([^\(\)]*\))*)\)/g,
            g = /\W+/g,
            f = /@(k\w+)\s*(\S*)\s*/,
            p = /::(place)/g,
            m = /:(read-only)/g,
            _ = /\s+(?=[{\];=:>])/g,
            b = /([[}=:>])\s+/g,
            v = /(\{[^{]+?);(?=\})/g,
            y = /\s{2,}/g,
            w = /([^\(])(:+) */g,
            C = /[svh]\w+-[tblr]{2}/,
            S = /\(\s*(.*)\s*\)/g,
            k = /([\s\S]*?);/g,
            x = /-self|flex-/g,
            L = /[^]*?(:[rp][el]a[\w-]+)[^]*/,
            M = /stretch|:\s*\w+\-(?:conte|avail)/,
            D = /([^-])(image-set\()/,
            N = '-webkit-',
            E = '-moz-',
            T = '-ms-',
            I = 59,
            O = 125,
            A = 123,
            R = 40,
            P = 41,
            F = 10,
            B = 13,
            W = 64,
            Y = 32,
            H = 45,
            j = 42,
            V = 44,
            z = 58,
            U = 47,
            $ = 62,
            K = 43,
            q = 126,
            G = 107,
            Z = 1,
            J = 1,
            Q = 0,
            X = 1,
            ee = 1,
            te = 1,
            ie = 0,
            ne = 0,
            re = 0,
            se = [],
            oe = [],
            ae = 0,
            le = null,
            ce = 0,
            de = 1,
            he = '',
            ue = '',
            ge = '';
          function fe(e, t, r, s, o) {
            for (
              var a,
                l,
                d = 0,
                h = 0,
                u = 0,
                g = 0,
                _ = 0,
                b = 0,
                v = 0,
                y = 0,
                C = 0,
                k = 0,
                x = 0,
                L = 0,
                M = 0,
                D = 0,
                E = 0,
                T = 0,
                W = 0,
                ie = 0,
                oe = 0,
                le = r.length,
                me = le - 1,
                Ce = '',
                Se = '',
                ke = '',
                xe = '',
                Le = '',
                Me = '';
              E < le;

            ) {
              if (
                ((v = r.charCodeAt(E)),
                E === me &&
                  h + g + u + d !== 0 &&
                  (0 !== h && (v = h === U ? F : U),
                  (g = u = d = 0),
                  le++,
                  me++),
                h + g + u + d === 0)
              ) {
                if (
                  E === me &&
                  (T > 0 && (Se = Se.replace(n, '')), Se.trim().length > 0)
                ) {
                  switch (v) {
                    case Y:
                    case 9:
                    case I:
                    case B:
                    case F:
                      break;
                    default:
                      Se += r.charAt(E);
                  }
                  v = I;
                }
                if (1 === W)
                  switch (v) {
                    case A:
                    case O:
                    case I:
                    case 34:
                    case 39:
                    case R:
                    case P:
                    case V:
                      W = 0;
                    case 9:
                    case B:
                    case F:
                    case Y:
                      break;
                    default:
                      for (W = 0, oe = E, _ = v, E--, v = I; oe < le; )
                        switch (r.charCodeAt(oe++)) {
                          case F:
                          case B:
                          case I:
                            ++E, (v = _), (oe = le);
                            break;
                          case z:
                            T > 0 && (++E, (v = _));
                          case A:
                            oe = le;
                        }
                  }
                switch (v) {
                  case A:
                    for (
                      _ = (Se = Se.trim()).charCodeAt(0), x = 1, oe = ++E;
                      E < le;

                    ) {
                      switch ((v = r.charCodeAt(E))) {
                        case A:
                          x++;
                          break;
                        case O:
                          x--;
                          break;
                        case U:
                          switch ((b = r.charCodeAt(E + 1))) {
                            case j:
                            case U:
                              E = we(b, E, me, r);
                          }
                          break;
                        case 91:
                          v++;
                        case R:
                          v++;
                        case 34:
                        case 39:
                          for (; E++ < me && r.charCodeAt(E) !== v; );
                      }
                      if (0 === x) break;
                      E++;
                    }
                    switch (
                      ((ke = r.substring(oe, E)),
                      0 === _ &&
                        (_ = (Se = Se.replace(i, '').trim()).charCodeAt(0)),
                      _)
                    ) {
                      case 64:
                        switch (
                          (T > 0 && (Se = Se.replace(n, '')),
                          (b = Se.charCodeAt(1)))
                        ) {
                          case 100:
                          case 109:
                          case 115:
                          case H:
                            a = t;
                            break;
                          default:
                            a = se;
                        }
                        if (
                          ((oe = (ke = fe(t, a, ke, b, o + 1)).length),
                          re > 0 && 0 === oe && (oe = Se.length),
                          ae > 0 &&
                            ((l = ye(
                              3,
                              ke,
                              (a = pe(se, Se, ie)),
                              t,
                              J,
                              Z,
                              oe,
                              b,
                              o,
                              s
                            )),
                            (Se = a.join('')),
                            void 0 !== l &&
                              0 === (oe = (ke = l.trim()).length) &&
                              ((b = 0), (ke = ''))),
                          oe > 0)
                        )
                          switch (b) {
                            case 115:
                              Se = Se.replace(S, ve);
                            case 100:
                            case 109:
                            case H:
                              ke = Se + '{' + ke + '}';
                              break;
                            case G:
                              (ke =
                                (Se = Se.replace(
                                  f,
                                  '$1 $2' + (de > 0 ? he : '')
                                )) +
                                '{' +
                                ke +
                                '}'),
                                (ke =
                                  1 === ee || (2 === ee && be('@' + ke, 3))
                                    ? '@' + N + ke + '@' + ke
                                    : '@' + ke);
                              break;
                            default:
                              (ke = Se + ke),
                                112 === s && ((xe += ke), (ke = ''));
                          }
                        else ke = '';
                        break;
                      default:
                        ke = fe(t, pe(t, Se, ie), ke, s, o + 1);
                    }
                    (Le += ke),
                      (L = 0),
                      (W = 0),
                      (D = 0),
                      (T = 0),
                      (ie = 0),
                      (M = 0),
                      (Se = ''),
                      (ke = ''),
                      (v = r.charCodeAt(++E));
                    break;
                  case O:
                  case I:
                    if (
                      (oe = (Se = (T > 0 ? Se.replace(n, '') : Se).trim())
                        .length) > 1
                    )
                      switch (
                        (0 === D &&
                          ((_ = Se.charCodeAt(0)) === H ||
                            (_ > 96 && _ < 123)) &&
                          (oe = (Se = Se.replace(' ', ':')).length),
                        ae > 0 &&
                          void 0 !==
                            (l = ye(1, Se, t, e, J, Z, xe.length, s, o, s)) &&
                          0 === (oe = (Se = l.trim()).length) &&
                          (Se = '\0\0'),
                        (_ = Se.charCodeAt(0)),
                        (b = Se.charCodeAt(1)),
                        _)
                      ) {
                        case 0:
                          break;
                        case 64:
                          if (105 === b || 99 === b) {
                            Me += Se + r.charAt(E);
                            break;
                          }
                        default:
                          if (Se.charCodeAt(oe - 1) === z) break;
                          xe += _e(Se, _, b, Se.charCodeAt(2));
                      }
                    (L = 0),
                      (W = 0),
                      (D = 0),
                      (T = 0),
                      (ie = 0),
                      (Se = ''),
                      (v = r.charCodeAt(++E));
                }
              }
              switch (v) {
                case B:
                case F:
                  if (h + g + u + d + ne === 0)
                    switch (k) {
                      case P:
                      case 39:
                      case 34:
                      case 64:
                      case q:
                      case 62:
                      case j:
                      case 43:
                      case U:
                      case H:
                      case z:
                      case V:
                      case I:
                      case A:
                      case O:
                        break;
                      default:
                        D > 0 && (W = 1);
                    }
                  h === U
                    ? (h = 0)
                    : X + L === 0 &&
                      s !== G &&
                      Se.length > 0 &&
                      ((T = 1), (Se += '\0')),
                    ae * ce > 0 && ye(0, Se, t, e, J, Z, xe.length, s, o, s),
                    (Z = 1),
                    J++;
                  break;
                case I:
                case O:
                  if (h + g + u + d === 0) {
                    Z++;
                    break;
                  }
                default:
                  switch ((Z++, (Ce = r.charAt(E)), v)) {
                    case 9:
                    case Y:
                      if (g + d + h === 0)
                        switch (y) {
                          case V:
                          case z:
                          case 9:
                          case Y:
                            Ce = '';
                            break;
                          default:
                            v !== Y && (Ce = ' ');
                        }
                      break;
                    case 0:
                      Ce = '\\0';
                      break;
                    case 12:
                      Ce = '\\f';
                      break;
                    case 11:
                      Ce = '\\v';
                      break;
                    case 38:
                      g + h + d === 0 &&
                        X > 0 &&
                        ((ie = 1), (T = 1), (Ce = '\f' + Ce));
                      break;
                    case 108:
                      if (g + h + d + Q === 0 && D > 0)
                        switch (E - D) {
                          case 2:
                            112 === y && r.charCodeAt(E - 3) === z && (Q = y);
                          case 8:
                            111 === C && (Q = C);
                        }
                      break;
                    case z:
                      g + h + d === 0 && (D = E);
                      break;
                    case V:
                      h + u + g + d === 0 && ((T = 1), (Ce += '\r'));
                      break;
                    case 34:
                    case 39:
                      0 === h && (g = g === v ? 0 : 0 === g ? v : g);
                      break;
                    case 91:
                      g + h + u === 0 && d++;
                      break;
                    case 93:
                      g + h + u === 0 && d--;
                      break;
                    case P:
                      g + h + d === 0 && u--;
                      break;
                    case R:
                      if (g + h + d === 0) {
                        if (0 === L)
                          switch (2 * y + 3 * C) {
                            case 533:
                              break;
                            default:
                              (x = 0), (L = 1);
                          }
                        u++;
                      }
                      break;
                    case 64:
                      h + u + g + d + D + M === 0 && (M = 1);
                      break;
                    case j:
                    case U:
                      if (g + d + u > 0) break;
                      switch (h) {
                        case 0:
                          switch (2 * v + 3 * r.charCodeAt(E + 1)) {
                            case 235:
                              h = U;
                              break;
                            case 220:
                              (oe = E), (h = j);
                          }
                          break;
                        case j:
                          v === U &&
                            y === j &&
                            oe + 2 !== E &&
                            (33 === r.charCodeAt(oe + 2) &&
                              (xe += r.substring(oe, E + 1)),
                            (Ce = ''),
                            (h = 0));
                      }
                  }
                  if (0 === h) {
                    if (X + g + d + M === 0 && s !== G && v !== I)
                      switch (v) {
                        case V:
                        case q:
                        case 62:
                        case 43:
                        case P:
                        case R:
                          if (0 === L) {
                            switch (y) {
                              case 9:
                              case Y:
                              case F:
                              case B:
                                Ce += '\0';
                                break;
                              default:
                                Ce = '\0' + Ce + (v === V ? '' : '\0');
                            }
                            T = 1;
                          } else
                            switch (v) {
                              case R:
                                D + 7 === E && 108 === y && (D = 0), (L = ++x);
                                break;
                              case P:
                                0 == (L = --x) && ((T = 1), (Ce += '\0'));
                            }
                          break;
                        case 9:
                        case Y:
                          switch (y) {
                            case 0:
                            case A:
                            case O:
                            case I:
                            case V:
                            case 12:
                            case 9:
                            case Y:
                            case F:
                            case B:
                              break;
                            default:
                              0 === L && ((T = 1), (Ce += '\0'));
                          }
                      }
                    (Se += Ce), v !== Y && 9 !== v && (k = v);
                  }
              }
              (C = y), (y = v), E++;
            }
            if (
              ((oe = xe.length),
              re > 0 &&
                0 === oe &&
                0 === Le.length &&
                (0 === t[0].length) == 0 &&
                (109 !== s || (1 === t.length && (X > 0 ? ue : ge) === t[0])) &&
                (oe = t.join(',').length + 2),
              oe > 0)
            ) {
              if (
                ((a =
                  0 === X && s !== G
                    ? (function (e) {
                        for (
                          var t, i, r = 0, s = e.length, o = Array(s);
                          r < s;
                          ++r
                        ) {
                          for (
                            var a = e[r].split(c),
                              l = '',
                              d = 0,
                              h = 0,
                              u = 0,
                              g = 0,
                              f = a.length;
                            d < f;
                            ++d
                          )
                            if (!(0 === (h = (i = a[d]).length) && f > 1)) {
                              if (
                                ((u = l.charCodeAt(l.length - 1)),
                                (g = i.charCodeAt(0)),
                                (t = ''),
                                0 !== d)
                              )
                                switch (u) {
                                  case j:
                                  case q:
                                  case $:
                                  case K:
                                  case Y:
                                  case R:
                                    break;
                                  default:
                                    t = ' ';
                                }
                              switch (g) {
                                case 38:
                                  i = t + ue;
                                case q:
                                case $:
                                case K:
                                case Y:
                                case P:
                                case R:
                                  break;
                                case 91:
                                  i = t + i + ue;
                                  break;
                                case z:
                                  switch (
                                    2 * i.charCodeAt(1) +
                                    3 * i.charCodeAt(2)
                                  ) {
                                    case 530:
                                      if (te > 0) {
                                        i = t + i.substring(8, h - 1);
                                        break;
                                      }
                                    default:
                                      (d < 1 || a[d - 1].length < 1) &&
                                        (i = t + ue + i);
                                  }
                                  break;
                                case V:
                                  t = '';
                                default:
                                  i =
                                    h > 1 && i.indexOf(':') > 0
                                      ? t + i.replace(w, '$1' + ue + '$2')
                                      : t + i + ue;
                              }
                              l += i;
                            }
                          o[r] = l.replace(n, '').trim();
                        }
                        return o;
                      })(t)
                    : t),
                ae > 0 &&
                  void 0 !== (l = ye(2, xe, a, e, J, Z, oe, s, o, s)) &&
                  0 === (xe = l).length)
              )
                return Me + xe + Le;
              if (((xe = a.join(',') + '{' + xe + '}'), ee * Q != 0)) {
                switch ((2 !== ee || be(xe, 2) || (Q = 0), Q)) {
                  case 111:
                    xe = xe.replace(m, ':-moz-$1') + xe;
                    break;
                  case 112:
                    xe =
                      xe.replace(p, '::-webkit-input-$1') +
                      xe.replace(p, '::-moz-$1') +
                      xe.replace(p, ':-ms-input-$1') +
                      xe;
                }
                Q = 0;
              }
            }
            return Me + xe + Le;
          }
          function pe(e, t, i) {
            var n = t.trim().split(d),
              r = n,
              s = n.length,
              o = e.length;
            switch (o) {
              case 0:
              case 1:
                for (var a = 0, l = 0 === o ? '' : e[0] + ' '; a < s; ++a)
                  r[a] = me(l, r[a], i, o).trim();
                break;
              default:
                a = 0;
                var c = 0;
                for (r = []; a < s; ++a)
                  for (var h = 0; h < o; ++h)
                    r[c++] = me(e[h] + ' ', n[a], i, o).trim();
            }
            return r;
          }
          function me(e, t, i, n) {
            var r = t,
              s = r.charCodeAt(0);
            switch ((s < 33 && (s = (r = r.trim()).charCodeAt(0)), s)) {
              case 38:
                switch (X + n) {
                  case 0:
                  case 1:
                    if (0 === e.trim().length) break;
                  default:
                    return r.replace(h, '$1' + e.trim());
                }
                break;
              case z:
                switch (r.charCodeAt(1)) {
                  case 103:
                    if (te > 0 && X > 0)
                      return r.replace(u, '$1').replace(h, '$1' + ge);
                    break;
                  default:
                    return e.trim() + r.replace(h, '$1' + e.trim());
                }
              default:
                if (i * X > 0 && r.indexOf('\f') > 0)
                  return r.replace(
                    h,
                    (e.charCodeAt(0) === z ? '' : '$1') + e.trim()
                  );
            }
            return e + r;
          }
          function _e(e, t, i, n) {
            var c,
              d = 0,
              h = e + ';',
              u = 2 * t + 3 * i + 4 * n;
            if (944 === u)
              return (function (e) {
                var t = e.length,
                  i = e.indexOf(':', 9) + 1,
                  n = e.substring(0, i).trim(),
                  r = e.substring(i, t - 1).trim();
                switch (e.charCodeAt(9) * de) {
                  case 0:
                    break;
                  case H:
                    if (110 !== e.charCodeAt(10)) break;
                  default:
                    var s = r.split(((r = ''), a)),
                      o = 0;
                    for (i = 0, t = s.length; o < t; i = 0, ++o) {
                      for (var c = s[o], d = c.split(l); (c = d[i]); ) {
                        var h = c.charCodeAt(0);
                        if (
                          1 === de &&
                          ((h > W && h < 90) ||
                            (h > 96 && h < 123) ||
                            95 === h ||
                            (h === H && c.charCodeAt(1) !== H))
                        )
                          switch (
                            isNaN(parseFloat(c)) +
                            (-1 !== c.indexOf('('))
                          ) {
                            case 1:
                              switch (c) {
                                case 'infinite':
                                case 'alternate':
                                case 'backwards':
                                case 'running':
                                case 'normal':
                                case 'forwards':
                                case 'both':
                                case 'none':
                                case 'linear':
                                case 'ease':
                                case 'ease-in':
                                case 'ease-out':
                                case 'ease-in-out':
                                case 'paused':
                                case 'reverse':
                                case 'alternate-reverse':
                                case 'inherit':
                                case 'initial':
                                case 'unset':
                                case 'step-start':
                                case 'step-end':
                                  break;
                                default:
                                  c += he;
                              }
                          }
                        d[i++] = c;
                      }
                      r += (0 === o ? '' : ',') + d.join(' ');
                    }
                }
                return (
                  (r = n + r + ';'),
                  1 === ee || (2 === ee && be(r, 1)) ? N + r + r : r
                );
              })(h);
            if (0 === ee || (2 === ee && !be(h, 1))) return h;
            switch (u) {
              case 1015:
                return 97 === h.charCodeAt(10) ? N + h + h : h;
              case 951:
                return 116 === h.charCodeAt(3) ? N + h + h : h;
              case 963:
                return 110 === h.charCodeAt(5) ? N + h + h : h;
              case 1009:
                if (100 !== h.charCodeAt(4)) break;
              case 969:
              case 942:
                return N + h + h;
              case 978:
                return N + h + E + h + h;
              case 1019:
              case 983:
                return N + h + E + h + T + h + h;
              case 883:
                return h.charCodeAt(8) === H
                  ? N + h + h
                  : h.indexOf('image-set(', 11) > 0
                  ? h.replace(D, '$1-webkit-$2') + h
                  : h;
              case 932:
                if (h.charCodeAt(4) === H)
                  switch (h.charCodeAt(5)) {
                    case 103:
                      return (
                        N +
                        'box-' +
                        h.replace('-grow', '') +
                        N +
                        h +
                        T +
                        h.replace('grow', 'positive') +
                        h
                      );
                    case 115:
                      return N + h + T + h.replace('shrink', 'negative') + h;
                    case 98:
                      return (
                        N + h + T + h.replace('basis', 'preferred-size') + h
                      );
                  }
                return N + h + T + h + h;
              case 964:
                return N + h + T + 'flex-' + h + h;
              case 1023:
                if (99 !== h.charCodeAt(8)) break;
                return (
                  (c = h
                    .substring(h.indexOf(':', 15))
                    .replace('flex-', '')
                    .replace('space-between', 'justify')),
                  N + 'box-pack' + c + N + h + T + 'flex-pack' + c + h
                );
              case 1005:
                return s.test(h)
                  ? h.replace(r, ':' + N) + h.replace(r, ':' + E) + h
                  : h;
              case 1e3:
                switch (
                  ((d = (c = h.substring(13).trim()).indexOf('-') + 1),
                  c.charCodeAt(0) + c.charCodeAt(d))
                ) {
                  case 226:
                    c = h.replace(C, 'tb');
                    break;
                  case 232:
                    c = h.replace(C, 'tb-rl');
                    break;
                  case 220:
                    c = h.replace(C, 'lr');
                    break;
                  default:
                    return h;
                }
                return N + h + T + c + h;
              case 1017:
                if (-1 === h.indexOf('sticky', 9)) return h;
              case 975:
                switch (
                  ((d = (h = e).length - 10),
                  (u =
                    (c = (33 === h.charCodeAt(d) ? h.substring(0, d) : h)
                      .substring(e.indexOf(':', 7) + 1)
                      .trim()).charCodeAt(0) +
                    (0 | c.charCodeAt(7))))
                ) {
                  case 203:
                    if (c.charCodeAt(8) < 111) break;
                  case 115:
                    h = h.replace(c, N + c) + ';' + h;
                    break;
                  case 207:
                  case 102:
                    h =
                      h.replace(c, N + (u > 102 ? 'inline-' : '') + 'box') +
                      ';' +
                      h.replace(c, N + c) +
                      ';' +
                      h.replace(c, T + c + 'box') +
                      ';' +
                      h;
                }
                return h + ';';
              case 938:
                if (h.charCodeAt(5) === H)
                  switch (h.charCodeAt(6)) {
                    case 105:
                      return (
                        (c = h.replace('-items', '')),
                        N + h + N + 'box-' + c + T + 'flex-' + c + h
                      );
                    case 115:
                      return N + h + T + 'flex-item-' + h.replace(x, '') + h;
                    default:
                      return (
                        N +
                        h +
                        T +
                        'flex-line-pack' +
                        h.replace('align-content', '').replace(x, '') +
                        h
                      );
                  }
                break;
              case 973:
              case 989:
                if (h.charCodeAt(3) !== H || 122 === h.charCodeAt(4)) break;
              case 931:
              case 953:
                if (!0 === M.test(e))
                  return 115 ===
                    (c = e.substring(e.indexOf(':') + 1)).charCodeAt(0)
                    ? _e(
                        e.replace('stretch', 'fill-available'),
                        t,
                        i,
                        n
                      ).replace(':fill-available', ':stretch')
                    : h.replace(c, N + c) +
                        h.replace(c, E + c.replace('fill-', '')) +
                        h;
                break;
              case 962:
                if (
                  ((h = N + h + (102 === h.charCodeAt(5) ? T + h : '') + h),
                  i + n === 211 &&
                    105 === h.charCodeAt(13) &&
                    h.indexOf('transform', 10) > 0)
                )
                  return (
                    h
                      .substring(0, h.indexOf(';', 27) + 1)
                      .replace(o, '$1-webkit-$2') + h
                  );
            }
            return h;
          }
          function be(e, t) {
            var i = e.indexOf(1 === t ? ':' : '{'),
              n = e.substring(0, 3 !== t ? i : 10),
              r = e.substring(i + 1, e.length - 1);
            return le(2 !== t ? n : n.replace(L, '$1'), r, t);
          }
          function ve(e, t) {
            var i = _e(t, t.charCodeAt(0), t.charCodeAt(1), t.charCodeAt(2));
            return i !== t + ';'
              ? i.replace(k, ' or ($1)').substring(4)
              : '(' + t + ')';
          }
          function ye(e, t, i, n, r, s, o, a, l, c) {
            for (var d, h = 0, u = t; h < ae; ++h)
              switch ((d = oe[h].call(Se, e, u, i, n, r, s, o, a, l, c))) {
                case void 0:
                case !1:
                case !0:
                case null:
                  break;
                default:
                  u = d;
              }
            if (u !== t) return u;
          }
          function we(e, t, i, n) {
            for (var r = t + 1; r < i; ++r)
              switch (n.charCodeAt(r)) {
                case U:
                  if (e === j && n.charCodeAt(r - 1) === j && t + 2 !== r)
                    return r + 1;
                  break;
                case F:
                  if (e === U) return r + 1;
              }
            return r;
          }
          function Ce(e) {
            for (var t in e) {
              var i = e[t];
              switch (t) {
                case 'keyframe':
                  de = 0 | i;
                  break;
                case 'global':
                  te = 0 | i;
                  break;
                case 'cascade':
                  X = 0 | i;
                  break;
                case 'compress':
                  ie = 0 | i;
                  break;
                case 'semicolon':
                  ne = 0 | i;
                  break;
                case 'preserve':
                  re = 0 | i;
                  break;
                case 'prefix':
                  (le = null),
                    i
                      ? 'function' != typeof i
                        ? (ee = 1)
                        : ((ee = 2), (le = i))
                      : (ee = 0);
              }
            }
            return Ce;
          }
          function Se(t, i) {
            if (void 0 !== this && this.constructor === Se) return e(t);
            var r = t,
              s = r.charCodeAt(0);
            s < 33 && (s = (r = r.trim()).charCodeAt(0)),
              de > 0 && (he = r.replace(g, 91 === s ? '' : '-')),
              (s = 1),
              1 === X ? (ge = r) : (ue = r);
            var o,
              a = [ge];
            ae > 0 &&
              void 0 !== (o = ye(-1, i, a, a, J, Z, 0, 0, 0, 0)) &&
              'string' == typeof o &&
              (i = o);
            var l = fe(se, a, i, 0, 0);
            return (
              ae > 0 &&
                void 0 !== (o = ye(-2, l, a, a, J, Z, l.length, 0, 0, 0)) &&
                'string' != typeof (l = o) &&
                (s = 0),
              (he = ''),
              (ge = ''),
              (ue = ''),
              (Q = 0),
              (J = 1),
              (Z = 1),
              ie * s == 0
                ? l
                : (function (e) {
                    return e
                      .replace(n, '')
                      .replace(_, '')
                      .replace(b, '$1')
                      .replace(v, '$1')
                      .replace(y, ' ');
                  })(l)
            );
          }
          return (
            (Se.use = function e(t) {
              switch (t) {
                case void 0:
                case null:
                  ae = oe.length = 0;
                  break;
                default:
                  if ('function' == typeof t) oe[ae++] = t;
                  else if ('object' == typeof t)
                    for (var i = 0, n = t.length; i < n; ++i) e(t[i]);
                  else ce = 0 | !!t;
              }
              return e;
            }),
            (Se.set = Ce),
            void 0 !== t && Ce(t),
            Se
          );
        })(null);
      },
      73466: (e, t, i) => {
        'use strict';
        function n() {}
        function r(e, t) {
          for (const i in t) e[i] = t[i];
          return e;
        }
        function s(e) {
          return e();
        }
        function o() {
          return Object.create(null);
        }
        function a(e) {
          e.forEach(s);
        }
        function l(e) {
          return 'function' == typeof e;
        }
        function c(e, t) {
          return e != e
            ? t == t
            : e !== t || (e && 'object' == typeof e) || 'function' == typeof e;
        }
        function d(e) {
          return 0 === Object.keys(e).length;
        }
        function h(e, ...t) {
          if (null == e) return n;
          const i = e.subscribe(...t);
          return i.unsubscribe ? () => i.unsubscribe() : i;
        }
        function u(e) {
          let t;
          return h(e, (e) => (t = e))(), t;
        }
        function g(e, t, i, n) {
          if (e) {
            const r = f(e, t, i, n);
            return e[0](r);
          }
        }
        function f(e, t, i, n) {
          return e[1] && n ? r(i.ctx.slice(), e[1](n(t))) : i.ctx;
        }
        function p(e, t, i, n, r, s, o) {
          const a = (function (e, t, i, n) {
            if (e[2] && n) {
              const r = e[2](n(i));
              if (void 0 === t.dirty) return r;
              if ('object' == typeof r) {
                const e = [],
                  i = Math.max(t.dirty.length, r.length);
                for (let n = 0; n < i; n += 1) e[n] = t.dirty[n] | r[n];
                return e;
              }
              return t.dirty | r;
            }
            return t.dirty;
          })(t, n, r, s);
          if (a) {
            const r = f(t, i, n, o);
            e.p(r, a);
          }
        }
        function m(e) {
          return null == e ? '' : e;
        }
        function _(e) {
          return e && l(e.destroy) ? e.destroy : n;
        }
        new Set();
        let b = !1;
        const v = new Set();
        function y(e, t) {
          b && v.delete(t), t.parentNode !== e && e.appendChild(t);
        }
        function w(e, t, i) {
          b && v.delete(t),
            (t.parentNode !== e || (i && t.nextSibling !== i)) &&
              e.insertBefore(t, i || null);
        }
        function C(e) {
          b ? v.add(e) : e.parentNode && e.parentNode.removeChild(e);
        }
        function S(e, t) {
          for (let i = 0; i < e.length; i += 1) e[i] && e[i].d(t);
        }
        function k(e) {
          return document.createElement(e);
        }
        function x(e) {
          return document.createTextNode(e);
        }
        function L() {
          return x(' ');
        }
        function M() {
          return x('');
        }
        function D(e, t, i, n) {
          return (
            e.addEventListener(t, i, n), () => e.removeEventListener(t, i, n)
          );
        }
        function N(e, t, i) {
          null == i
            ? e.removeAttribute(t)
            : e.getAttribute(t) !== i && e.setAttribute(t, i);
        }
        function E(e) {
          return '' === e ? null : +e;
        }
        function T(e, t) {
          (t = '' + t), e.wholeText !== t && (e.data = t);
        }
        function I(e, t) {
          e.value = null == t ? '' : t;
        }
        let O;
        function A(e) {
          O = e;
        }
        function R() {
          if (!O)
            throw new Error('Function called outside component initialization');
          return O;
        }
        function P(e) {
          R().$$.on_mount.push(e);
        }
        function F(e, t) {
          const i = e.$$.callbacks[t.type];
          i && i.slice().forEach((e) => e(t));
        }
        new Set();
        const B = [],
          W = [],
          Y = [],
          H = [],
          j = Promise.resolve();
        let V = !1;
        function z() {
          V || ((V = !0), j.then(G));
        }
        function U() {
          return z(), j;
        }
        function $(e) {
          Y.push(e);
        }
        let K = !1;
        const q = new Set();
        function G() {
          if (!K) {
            K = !0;
            do {
              for (let e = 0; e < B.length; e += 1) {
                const t = B[e];
                A(t), Z(t.$$);
              }
              for (A(null), B.length = 0; W.length; ) W.pop()();
              for (let e = 0; e < Y.length; e += 1) {
                const t = Y[e];
                q.has(t) || (q.add(t), t());
              }
              Y.length = 0;
            } while (B.length);
            for (; H.length; ) H.pop()();
            (V = !1), (K = !1), q.clear();
          }
        }
        function Z(e) {
          if (null !== e.fragment) {
            e.update(), a(e.before_update);
            const t = e.dirty;
            (e.dirty = [-1]),
              e.fragment && e.fragment.p(e.ctx, t),
              e.after_update.forEach($);
          }
        }
        const J = new Set();
        let Q, X;
        function ee() {
          Q = { r: 0, c: [], p: Q };
        }
        function te() {
          Q.r || a(Q.c), (Q = Q.p);
        }
        function ie(e, t) {
          e && e.i && (J.delete(e), e.i(t));
        }
        function ne(e, t, i, n) {
          if (e && e.o) {
            if (J.has(e)) return;
            J.add(e),
              Q.c.push(() => {
                J.delete(e), n && (i && e.d(1), n());
              }),
              e.o(t);
          }
        }
        function re(e, t) {
          const i = {},
            n = {},
            r = { $$scope: 1 };
          let s = e.length;
          for (; s--; ) {
            const o = e[s],
              a = t[s];
            if (a) {
              for (const e in o) e in a || (n[e] = 1);
              for (const e in a) r[e] || ((i[e] = a[e]), (r[e] = 1));
              e[s] = a;
            } else for (const e in o) r[e] = 1;
          }
          for (const e in n) e in i || (i[e] = void 0);
          return i;
        }
        function se(e) {
          return 'object' == typeof e && null !== e ? e : {};
        }
        function oe(e) {
          e && e.c();
        }
        function ae(e, t, i, n) {
          const {
            fragment: r,
            on_mount: o,
            on_destroy: c,
            after_update: d,
          } = e.$$;
          r && r.m(t, i),
            n ||
              $(() => {
                const t = o.map(s).filter(l);
                c ? c.push(...t) : a(t), (e.$$.on_mount = []);
              }),
            d.forEach($);
        }
        function le(e, t) {
          const i = e.$$;
          null !== i.fragment &&
            (a(i.on_destroy),
            i.fragment && i.fragment.d(t),
            (i.on_destroy = i.fragment = null),
            (i.ctx = []));
        }
        function ce(e, t, i, r, s, l, c = [-1]) {
          const d = O;
          A(e);
          const h = (e.$$ = {
            fragment: null,
            ctx: null,
            props: l,
            update: n,
            not_equal: s,
            bound: o(),
            on_mount: [],
            on_destroy: [],
            on_disconnect: [],
            before_update: [],
            after_update: [],
            context: new Map(d ? d.$$.context : t.context || []),
            callbacks: o(),
            dirty: c,
            skip_bound: !1,
          });
          let u = !1;
          if (
            ((h.ctx = i
              ? i(e, t.props || {}, (t, i, ...n) => {
                  const r = n.length ? n[0] : i;
                  return (
                    h.ctx &&
                      s(h.ctx[t], (h.ctx[t] = r)) &&
                      (!h.skip_bound && h.bound[t] && h.bound[t](r),
                      u &&
                        (function (e, t) {
                          -1 === e.$$.dirty[0] &&
                            (B.push(e), z(), e.$$.dirty.fill(0)),
                            (e.$$.dirty[(t / 31) | 0] |= 1 << t % 31);
                        })(e, t)),
                    i
                  );
                })
              : []),
            h.update(),
            (u = !0),
            a(h.before_update),
            (h.fragment = !!r && r(h.ctx)),
            t.target)
          ) {
            if (t.hydrate) {
              b = !0;
              const e = ((g = t.target), Array.from(g.childNodes));
              h.fragment && h.fragment.l(e), e.forEach(C);
            } else h.fragment && h.fragment.c();
            t.intro && ie(e.$$.fragment),
              ae(e, t.target, t.anchor, t.customElement),
              (function () {
                b = !1;
                for (const e of v) e.parentNode.removeChild(e);
                v.clear();
              })(),
              G();
          }
          var g;
          A(d);
        }
        'undefined' != typeof window
          ? window
          : 'undefined' != typeof globalThis
          ? globalThis
          : global,
          new Set([
            'allowfullscreen',
            'allowpaymentrequest',
            'async',
            'autofocus',
            'autoplay',
            'checked',
            'controls',
            'default',
            'defer',
            'disabled',
            'formnovalidate',
            'hidden',
            'ismap',
            'loop',
            'multiple',
            'muted',
            'nomodule',
            'novalidate',
            'open',
            'playsinline',
            'readonly',
            'required',
            'reversed',
            'selected',
          ]),
          'function' == typeof HTMLElement &&
            (X = class extends HTMLElement {
              constructor() {
                super(), this.attachShadow({ mode: 'open' });
              }
              connectedCallback() {
                const { on_mount: e } = this.$$;
                this.$$.on_disconnect = e.map(s).filter(l);
                for (const e in this.$$.slotted)
                  this.appendChild(this.$$.slotted[e]);
              }
              attributeChangedCallback(e, t, i) {
                this[e] = i;
              }
              disconnectedCallback() {
                a(this.$$.on_disconnect);
              }
              $destroy() {
                le(this, 1), (this.$destroy = n);
              }
              $on(e, t) {
                const i = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);
                return (
                  i.push(t),
                  () => {
                    const e = i.indexOf(t);
                    -1 !== e && i.splice(e, 1);
                  }
                );
              }
              $set(e) {
                this.$$set &&
                  !d(e) &&
                  ((this.$$.skip_bound = !0),
                  this.$$set(e),
                  (this.$$.skip_bound = !1));
              }
            });
        class de {
          $destroy() {
            le(this, 1), (this.$destroy = n);
          }
          $on(e, t) {
            const i = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);
            return (
              i.push(t),
              () => {
                const e = i.indexOf(t);
                -1 !== e && i.splice(e, 1);
              }
            );
          }
          $set(e) {
            this.$$set &&
              !d(e) &&
              ((this.$$.skip_bound = !0),
              this.$$set(e),
              (this.$$.skip_bound = !1));
          }
        }
        const he = [];
        function ue(e, t) {
          return { subscribe: ge(e, t).subscribe };
        }
        function ge(e, t = n) {
          let i;
          const r = [];
          function s(t) {
            if (c(e, t) && ((e = t), i)) {
              const t = !he.length;
              for (let t = 0; t < r.length; t += 1) {
                const i = r[t];
                i[1](), he.push(i, e);
              }
              if (t) {
                for (let e = 0; e < he.length; e += 2) he[e][0](he[e + 1]);
                he.length = 0;
              }
            }
          }
          return {
            set: s,
            update: function (t) {
              s(t(e));
            },
            subscribe: function (o, a = n) {
              const l = [o, a];
              return (
                r.push(l),
                1 === r.length && (i = t(s) || n),
                o(e),
                () => {
                  const e = r.indexOf(l);
                  -1 !== e && r.splice(e, 1),
                    0 === r.length && (i(), (i = null));
                }
              );
            },
          };
        }
        function fe(e, t, i) {
          const r = !Array.isArray(e),
            s = r ? [e] : e,
            o = t.length < 2;
          return ue(i, (e) => {
            let i = !1;
            const c = [];
            let d = 0,
              u = n;
            const g = () => {
                if (d) return;
                u();
                const i = t(r ? c[0] : c, e);
                o ? e(i) : (u = l(i) ? i : n);
              },
              f = s.map((e, t) =>
                h(
                  e,
                  (e) => {
                    (c[t] = e), (d &= ~(1 << t)), i && g();
                  },
                  () => {
                    d |= 1 << t;
                  }
                )
              );
            return (
              (i = !0),
              g(),
              function () {
                a(f), u();
              }
            );
          });
        }
        function pe(e) {
          let t, i, n;
          const s = [e[2]];
          var o = e[0];
          function a(e) {
            let t = {};
            for (let e = 0; e < s.length; e += 1) t = r(t, s[e]);
            return { props: t };
          }
          return (
            o && ((t = new o(a())), t.$on('routeEvent', e[7])),
            {
              c() {
                t && oe(t.$$.fragment), (i = M());
              },
              m(e, r) {
                t && ae(t, e, r), w(e, i, r), (n = !0);
              },
              p(e, n) {
                const r = 4 & n ? re(s, [se(e[2])]) : {};
                if (o !== (o = e[0])) {
                  if (t) {
                    ee();
                    const e = t;
                    ne(e.$$.fragment, 1, 0, () => {
                      le(e, 1);
                    }),
                      te();
                  }
                  o
                    ? ((t = new o(a())),
                      t.$on('routeEvent', e[7]),
                      oe(t.$$.fragment),
                      ie(t.$$.fragment, 1),
                      ae(t, i.parentNode, i))
                    : (t = null);
                } else o && t.$set(r);
              },
              i(e) {
                n || (t && ie(t.$$.fragment, e), (n = !0));
              },
              o(e) {
                t && ne(t.$$.fragment, e), (n = !1);
              },
              d(e) {
                e && C(i), t && le(t, e);
              },
            }
          );
        }
        function me(e) {
          let t, i, n;
          const s = [{ params: e[1] }, e[2]];
          var o = e[0];
          function a(e) {
            let t = {};
            for (let e = 0; e < s.length; e += 1) t = r(t, s[e]);
            return { props: t };
          }
          return (
            o && ((t = new o(a())), t.$on('routeEvent', e[6])),
            {
              c() {
                t && oe(t.$$.fragment), (i = M());
              },
              m(e, r) {
                t && ae(t, e, r), w(e, i, r), (n = !0);
              },
              p(e, n) {
                const r =
                  6 & n
                    ? re(s, [2 & n && { params: e[1] }, 4 & n && se(e[2])])
                    : {};
                if (o !== (o = e[0])) {
                  if (t) {
                    ee();
                    const e = t;
                    ne(e.$$.fragment, 1, 0, () => {
                      le(e, 1);
                    }),
                      te();
                  }
                  o
                    ? ((t = new o(a())),
                      t.$on('routeEvent', e[6]),
                      oe(t.$$.fragment),
                      ie(t.$$.fragment, 1),
                      ae(t, i.parentNode, i))
                    : (t = null);
                } else o && t.$set(r);
              },
              i(e) {
                n || (t && ie(t.$$.fragment, e), (n = !0));
              },
              o(e) {
                t && ne(t.$$.fragment, e), (n = !1);
              },
              d(e) {
                e && C(i), t && le(t, e);
              },
            }
          );
        }
        function _e(e) {
          let t, i, n, r;
          const s = [me, pe],
            o = [];
          function a(e, t) {
            return e[1] ? 0 : 1;
          }
          return (
            (t = a(e)),
            (i = o[t] = s[t](e)),
            {
              c() {
                i.c(), (n = M());
              },
              m(e, i) {
                o[t].m(e, i), w(e, n, i), (r = !0);
              },
              p(e, [r]) {
                let l = t;
                (t = a(e)),
                  t === l
                    ? o[t].p(e, r)
                    : (ee(),
                      ne(o[l], 1, 1, () => {
                        o[l] = null;
                      }),
                      te(),
                      (i = o[t]),
                      i ? i.p(e, r) : ((i = o[t] = s[t](e)), i.c()),
                      ie(i, 1),
                      i.m(n.parentNode, n));
              },
              i(e) {
                r || (ie(i), (r = !0));
              },
              o(e) {
                ne(i), (r = !1);
              },
              d(e) {
                o[t].d(e), e && C(n);
              },
            }
          );
        }
        function be() {
          const e = window.location.href.indexOf('#/');
          let t = e > -1 ? window.location.href.substr(e + 1) : '/';
          const i = t.indexOf('?');
          let n = '';
          return (
            i > -1 && ((n = t.substr(i + 1)), (t = t.substr(0, i))),
            { location: t, querystring: n }
          );
        }
        const ve = ue(null, function (e) {
            e(be());
            const t = () => {
              e(be());
            };
            return (
              window.addEventListener('hashchange', t, !1),
              function () {
                window.removeEventListener('hashchange', t, !1);
              }
            );
          }),
          ye = fe(ve, (e) => e.location);
        function we(e, t, i) {
          let { routes: n = {} } = t,
            { prefix: r = '' } = t,
            { restoreScrollState: s = !1 } = t;
          class o {
            constructor(e, t) {
              if (
                !t ||
                ('function' != typeof t &&
                  ('object' != typeof t || !0 !== t._sveltesparouter))
              )
                throw Error('Invalid component object');
              if (
                !e ||
                ('string' == typeof e &&
                  (e.length < 1 ||
                    ('/' != e.charAt(0) && '*' != e.charAt(0)))) ||
                ('object' == typeof e && !(e instanceof RegExp))
              )
                throw Error(
                  'Invalid value for "path" argument - strings must start with / or *'
                );
              const { pattern: i, keys: n } = (function (e, t) {
                if (e instanceof RegExp) return { keys: !1, pattern: e };
                var i,
                  n,
                  r,
                  s,
                  o = [],
                  a = '',
                  l = e.split('/');
                for (l[0] || l.shift(); (r = l.shift()); )
                  '*' === (i = r[0])
                    ? (o.push('wild'), (a += '/(.*)'))
                    : ':' === i
                    ? ((n = r.indexOf('?', 1)),
                      (s = r.indexOf('.', 1)),
                      o.push(r.substring(1, ~n ? n : ~s ? s : r.length)),
                      (a += ~n && !~s ? '(?:/([^/]+?))?' : '/([^/]+?)'),
                      ~s && (a += (~n ? '?' : '') + '\\' + r.substring(s)))
                    : (a += '/' + r);
                return { keys: o, pattern: new RegExp('^' + a + '/?$', 'i') };
              })(e);
              (this.path = e),
                'object' == typeof t && !0 === t._sveltesparouter
                  ? ((this.component = t.component),
                    (this.conditions = t.conditions || []),
                    (this.userData = t.userData),
                    (this.props = t.props || {}))
                  : ((this.component = () => Promise.resolve(t)),
                    (this.conditions = []),
                    (this.props = {})),
                (this._pattern = i),
                (this._keys = n);
            }
            match(e) {
              if (r)
                if ('string' == typeof r) {
                  if (!e.startsWith(r)) return null;
                  e = e.substr(r.length) || '/';
                } else if (r instanceof RegExp) {
                  const t = e.match(r);
                  if (!t || !t[0]) return null;
                  e = e.substr(t[0].length) || '/';
                }
              const t = this._pattern.exec(e);
              if (null === t) return null;
              if (!1 === this._keys) return t;
              const i = {};
              let n = 0;
              for (; n < this._keys.length; ) {
                try {
                  i[this._keys[n]] = decodeURIComponent(t[n + 1] || '') || null;
                } catch (e) {
                  i[this._keys[n]] = null;
                }
                n++;
              }
              return i;
            }
            async checkConditions(e) {
              for (let t = 0; t < this.conditions.length; t++)
                if (!(await this.conditions[t](e))) return !1;
              return !0;
            }
          }
          const a = [];
          n instanceof Map
            ? n.forEach((e, t) => {
                a.push(new o(t, e));
              })
            : Object.keys(n).forEach((e) => {
                a.push(new o(e, n[e]));
              });
          let l = null,
            c = null,
            d = {};
          const h = (function () {
            const e = R();
            return (t, i) => {
              const n = e.$$.callbacks[t];
              if (n) {
                const r = (function (e, t) {
                  const i = document.createEvent('CustomEvent');
                  return i.initCustomEvent(e, !1, !1, t), i;
                })(t, i);
                n.slice().forEach((t) => {
                  t.call(e, r);
                });
              }
            };
          })();
          async function u(e, t) {
            await U(), h(e, t);
          }
          let g = null;
          var f;
          s &&
            (window.addEventListener('popstate', (e) => {
              g = e.state && e.state.scrollY ? e.state : null;
            }),
            (f = () => {
              g ? window.scrollTo(g.scrollX, g.scrollY) : window.scrollTo(0, 0);
            }),
            R().$$.after_update.push(f));
          let p = null,
            m = null;
          return (
            ve.subscribe(async (e) => {
              p = e;
              let t = 0;
              for (; t < a.length; ) {
                const n = a[t].match(e.location);
                if (!n) {
                  t++;
                  continue;
                }
                const r = {
                  route: a[t].path,
                  location: e.location,
                  querystring: e.querystring,
                  userData: a[t].userData,
                };
                if (!(await a[t].checkConditions(r)))
                  return (
                    i(0, (l = null)), (m = null), void u('conditionsFailed', r)
                  );
                u('routeLoading', Object.assign({}, r));
                const s = a[t].component;
                if (m != s) {
                  s.loading
                    ? (i(0, (l = s.loading)),
                      (m = s),
                      i(1, (c = s.loadingParams)),
                      i(2, (d = {})),
                      u(
                        'routeLoaded',
                        Object.assign({}, r, { component: l, name: l.name })
                      ))
                    : (i(0, (l = null)), (m = null));
                  const t = await s();
                  if (e != p) return;
                  i(0, (l = (t && t.default) || t)), (m = s);
                }
                return (
                  n && 'object' == typeof n && Object.keys(n).length
                    ? i(1, (c = n))
                    : i(1, (c = null)),
                  i(2, (d = a[t].props)),
                  void u(
                    'routeLoaded',
                    Object.assign({}, r, { component: l, name: l.name })
                  )
                );
              }
              i(0, (l = null)), (m = null);
            }),
            (e.$$set = (e) => {
              'routes' in e && i(3, (n = e.routes)),
                'prefix' in e && i(4, (r = e.prefix)),
                'restoreScrollState' in e && i(5, (s = e.restoreScrollState));
            }),
            (e.$$.update = () => {
              32 & e.$$.dirty &&
                (history.scrollRestoration = s ? 'manual' : 'auto');
            }),
            [
              l,
              c,
              d,
              n,
              r,
              s,
              function (t) {
                F(e, t);
              },
              function (t) {
                F(e, t);
              },
            ]
          );
        }
        fe(ve, (e) => e.querystring);
        const Ce = class extends de {
            constructor(e) {
              super(),
                ce(this, e, we, _e, c, {
                  routes: 3,
                  prefix: 4,
                  restoreScrollState: 5,
                });
            }
          },
          Se = 'function' == typeof atob,
          ke = 'function' == typeof btoa,
          xe = 'function' == typeof Buffer,
          Le = 'function' == typeof TextDecoder ? new TextDecoder() : void 0,
          Me = 'function' == typeof TextEncoder ? new TextEncoder() : void 0,
          De = [
            ...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
          ],
          Ne = ((e) => {
            let t = {};
            return e.forEach((e, i) => (t[e] = i)), t;
          })(De),
          Ee = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,
          Te = String.fromCharCode.bind(String),
          Ie =
            'function' == typeof Uint8Array.from
              ? Uint8Array.from.bind(Uint8Array)
              : (e, t = (e) => e) =>
                  new Uint8Array(Array.prototype.slice.call(e, 0).map(t)),
          Oe = (e) => e.replace(/[^A-Za-z0-9\+\/]/g, ''),
          Ae = ke
            ? (e) => btoa(e)
            : xe
            ? (e) => Buffer.from(e, 'binary').toString('base64')
            : (e) => {
                let t,
                  i,
                  n,
                  r,
                  s = '';
                const o = e.length % 3;
                for (let o = 0; o < e.length; ) {
                  if (
                    (i = e.charCodeAt(o++)) > 255 ||
                    (n = e.charCodeAt(o++)) > 255 ||
                    (r = e.charCodeAt(o++)) > 255
                  )
                    throw new TypeError('invalid character found');
                  (t = (i << 16) | (n << 8) | r),
                    (s +=
                      De[(t >> 18) & 63] +
                      De[(t >> 12) & 63] +
                      De[(t >> 6) & 63] +
                      De[63 & t]);
                }
                return o ? s.slice(0, o - 3) + '==='.substring(o) : s;
              },
          Re = xe
            ? (e) => Buffer.from(e).toString('base64')
            : (e) => {
                let t = [];
                for (let i = 0, n = e.length; i < n; i += 4096)
                  t.push(Te.apply(null, e.subarray(i, i + 4096)));
                return Ae(t.join(''));
              },
          Pe = (e) => {
            if (e.length < 2)
              return (t = e.charCodeAt(0)) < 128
                ? e
                : t < 2048
                ? Te(192 | (t >>> 6)) + Te(128 | (63 & t))
                : Te(224 | ((t >>> 12) & 15)) +
                  Te(128 | ((t >>> 6) & 63)) +
                  Te(128 | (63 & t));
            var t =
              65536 +
              1024 * (e.charCodeAt(0) - 55296) +
              (e.charCodeAt(1) - 56320);
            return (
              Te(240 | ((t >>> 18) & 7)) +
              Te(128 | ((t >>> 12) & 63)) +
              Te(128 | ((t >>> 6) & 63)) +
              Te(128 | (63 & t))
            );
          },
          Fe = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,
          Be = xe
            ? (e) => Buffer.from(e, 'utf8').toString('base64')
            : Me
            ? (e) => Re(Me.encode(e))
            : (e) => Ae(e.replace(Fe, Pe)),
          We = (e, t = !1) =>
            t
              ? ((e) =>
                  e
                    .replace(/[+\/]/g, (e) => ('+' == e ? '-' : '_'))
                    .replace(/=+$/m, ''))(Be(e))
              : Be(e),
          Ye = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,
          He = (e) => {
            switch (e.length) {
              case 4:
                var t =
                  (((7 & e.charCodeAt(0)) << 18) |
                    ((63 & e.charCodeAt(1)) << 12) |
                    ((63 & e.charCodeAt(2)) << 6) |
                    (63 & e.charCodeAt(3))) -
                  65536;
                return Te(55296 + (t >>> 10)) + Te(56320 + (1023 & t));
              case 3:
                return Te(
                  ((15 & e.charCodeAt(0)) << 12) |
                    ((63 & e.charCodeAt(1)) << 6) |
                    (63 & e.charCodeAt(2))
                );
              default:
                return Te(
                  ((31 & e.charCodeAt(0)) << 6) | (63 & e.charCodeAt(1))
                );
            }
          },
          je = Se
            ? (e) => atob(Oe(e))
            : xe
            ? (e) => Buffer.from(e, 'base64').toString('binary')
            : (e) => {
                if (((e = e.replace(/\s+/g, '')), !Ee.test(e)))
                  throw new TypeError('malformed base64.');
                e += '=='.slice(2 - (3 & e.length));
                let t,
                  i,
                  n,
                  r = '';
                for (let s = 0; s < e.length; )
                  (t =
                    (Ne[e.charAt(s++)] << 18) |
                    (Ne[e.charAt(s++)] << 12) |
                    ((i = Ne[e.charAt(s++)]) << 6) |
                    (n = Ne[e.charAt(s++)])),
                    (r +=
                      64 === i
                        ? Te((t >> 16) & 255)
                        : 64 === n
                        ? Te((t >> 16) & 255, (t >> 8) & 255)
                        : Te((t >> 16) & 255, (t >> 8) & 255, 255 & t));
                return r;
              },
          Ve = xe
            ? (e) => Ie(Buffer.from(e, 'base64'))
            : (e) => Ie(je(e), (e) => e.charCodeAt(0)),
          ze = xe
            ? (e) => Buffer.from(e, 'base64').toString('utf8')
            : Le
            ? (e) => Le.decode(Ve(e))
            : (e) => je(e).replace(Ye, He),
          Ue = We,
          $e = (e) => We(e, !0),
          Ke = (e) => ze(Oe(e.replace(/[-_]/g, (e) => ('-' == e ? '+' : '/')))),
          qe = {
            code:
              'graph TD\n    A[Christmas] --\x3e|Get money| B(Go shopping)\n    B --\x3e C{Let me think}\n    C --\x3e|One| D[Laptop]\n    C --\x3e|Two| E[iPhone]\n    C --\x3e|Three| F[fa:fa-car Car]\n  ',
            mermaid: {
              theme:
                (window.matchMedia('(prefers-color-scheme: dark)').matches,
                'default'),
            },
          },
          Ge = ge(qe),
          Ze = (e) => {
            let t;
            try {
              const i = Ke(e);
              console.log('state from url', i), (t = JSON.parse(i));
            } catch (e) {
              console.error('Init error', e), (t = qe);
            }
            Ge.set({ ...t, updateEditor: !0 });
          },
          Je = (e, t) => {
            const i = u(Ge);
            Ge.set({ ...i, code: e, updateEditor: t });
          },
          Qe = ge(void 0),
          Xe = ge(void 0);
        var et = i(21140),
          tt = i.n(et);
        function it(e) {
          let t, i, n;
          return {
            c() {
              (t = k('div')),
                (i = x(e[1])),
                N(t, 'id', 'error'),
                N(t, 'class', (n = m(e[0]) + ' svelte-104hor5'));
            },
            m(e, n) {
              w(e, t, n), y(t, i);
            },
            p(e, r) {
              2 & r && T(i, e[1]),
                1 & r &&
                  n !== (n = m(e[0]) + ' svelte-104hor5') &&
                  N(t, 'class', n);
            },
            d(e) {
              e && C(t);
            },
          };
        }
        function nt(e) {
          let t,
            i = e[1] && it(e);
          return {
            c() {
              i && i.c(), (t = M());
            },
            m(e, n) {
              i && i.m(e, n), w(e, t, n);
            },
            p(e, [n]) {
              e[1]
                ? i
                  ? i.p(e, n)
                  : ((i = it(e)), i.c(), i.m(t.parentNode, t))
                : i && (i.d(1), (i = null));
            },
            i: n,
            o: n,
            d(e) {
              i && i.d(e), e && C(t);
            },
          };
        }
        function rt(e, t, i) {
          let n,
            { classes: r = '' } = t,
            { errorStore: s } = t;
          return (
            s.subscribe((e) => {
              i(1, (n = !!e && e.toString()));
            }),
            (e.$$set = (e) => {
              'classes' in e && i(0, (r = e.classes)),
                'errorStore' in e && i(2, (s = e.errorStore));
            }),
            [r, n, s]
          );
        }
        const st = class extends de {
            constructor(e) {
              super(), ce(this, e, rt, nt, c, { classes: 0, errorStore: 2 });
            }
          },
          ot = (e) => {
            e.languages.register({ id: 'mermaid' }),
              e.languages.setMonarchTokensProvider('mermaid', {
                typeKeywords: [
                  'graph',
                  'stateDiagram',
                  'sequenceDiagram',
                  'classDiagram',
                  'pie',
                  'flowchart',
                  'gantt',
                ],
                keywords: ['patricipant', 'as'],
                arrows: ['---', '===', '--\x3e', '==>'],
                tokenizer: {
                  root: [
                    [/[{}]/, 'delimiter.bracket'],
                    [
                      /[a-z_$][\w$]*/,
                      {
                        cases: {
                          '@typeKeywords': 'keyword',
                          '@keywords': 'keyword',
                        },
                      },
                    ],
                    [/[-=>ox]+/, { cases: { '@arrows': 'transition' } }],
                    [/[\[\{\(}]+.+?[\)\]\}]+/, 'string'],
                    [/\".*\"/, 'string'],
                  ],
                },
                whitespace: [
                  [/[ \t\r\n]+/, 'white'],
                  [/\%\%.*$/, 'comment'],
                ],
              }),
              e.editor.defineTheme('myCoolTheme', {
                base: 'vs',
                inherit: !1,
                rules: [
                  { token: 'keyword', foreground: '880000', fontStyle: 'bold' },
                  {
                    token: 'custom-error',
                    foreground: 'ff0000',
                    fontStyle: 'bold',
                  },
                  { token: 'string', foreground: 'AA8500' },
                  {
                    token: 'transition',
                    foreground: '008800',
                    fontStyle: 'bold',
                  },
                  {
                    token: 'delimiter.bracket',
                    foreground: '000000',
                    fontStyle: 'bold',
                  },
                ],
              }),
              e.languages.registerCompletionItemProvider('mermaid', {
                provideCompletionItems: () => ({
                  suggestions: [
                    {
                      label: 'simpleText',
                      kind: e.languages.CompletionItemKind.Text,
                      insertText: 'simpleText',
                    },
                    {
                      label: 'testing',
                      kind: e.languages.CompletionItemKind.Keyword,
                      insertText: 'testing(${1:condition})',
                      insertTextRules:
                        e.languages.CompletionItemInsertTextRule
                          .InsertAsSnippet,
                    },
                    {
                      label: 'ifelse',
                      kind: e.languages.CompletionItemKind.Snippet,
                      insertText: [
                        'if (${1:condition}) {',
                        '\t$0',
                        '} else {',
                        '\t',
                        '}',
                      ].join('\n'),
                      insertTextRules:
                        e.languages.CompletionItemInsertTextRule
                          .InsertAsSnippet,
                      documentation: 'If-Else Statement',
                    },
                  ],
                }),
              });
          },
          at = (e) => (t) => e && e.layout();
        var lt = i(36640),
          ct = i(63844),
          dt = i.n(ct)()({ strategy: 'scroll' });
        function ht(e, t) {
          dt.listenTo(e, t);
          var i = t;
          return {
            update: function (t) {
              dt.removeListener(e, i), dt.listenTo(e, t), (i = t);
            },
            destroy: function () {
              dt.removeListener(e, i);
            },
          };
        }
        function ut(e) {
          let t, i, n, r, s, o, a, c;
          return (
            (s = new st({ props: { errorStore: Qe } })),
            {
              c() {
                (t = k('div')),
                  (i = k('div')),
                  (r = L()),
                  oe(s.$$.fragment),
                  N(i, 'id', 'editor'),
                  N(i, 'class', 'svelte-129q4vv'),
                  N(t, 'id', 'editor-container');
              },
              m(l, d) {
                w(l, t, d),
                  y(t, i),
                  y(t, r),
                  ae(s, t, null),
                  (o = !0),
                  a || ((c = _((n = ht.call(null, i, e[0])))), (a = !0));
              },
              p(e, [t]) {
                n && l(n.update) && 1 & t && n.update.call(null, e[0]);
              },
              i(e) {
                o || (ie(s.$$.fragment, e), (o = !0));
              },
              o(e) {
                ne(s.$$.fragment, e), (o = !1);
              },
              d(e) {
                e && C(t), le(s), (a = !1), c();
              },
            }
          );
        }
        function gt(e, t, i) {
          let n;
          const r = [];
          let s = null,
            o = () => {};
          const a = (e, t) => {
            try {
              tt().parse(e),
                n &&
                  (t && n.setValue(e),
                  r.forEach((e) => {
                    n.deltaDecorations(e, []);
                  })),
                Je(e, !1),
                Qe.set(void 0);
            } catch (e) {
              Qe.set('Syntax Error'),
                console.log('Error in parsed', e.hash),
                e.hash.line,
                r.push(
                  n.deltaDecorations(
                    [],
                    [
                      {
                        range: new lt.Range(
                          e.hash.loc.first_line,
                          e.hash.loc.last_line,
                          e.hash.loc.first_column,
                          e.hash.loc.last_column
                        ),
                        options: { inlineClassName: 'myInlineDecoration' },
                      },
                    ]
                  )
                );
            }
          };
          return (
            Ge.subscribe((e) => {
              e.updateEditor && a(e.code, !0);
            }),
            P(async () => {
              ot(lt),
                (s = document.getElementById('editor')),
                (n = lt.editor.create(s, {
                  value: '',
                  theme: 'myCoolTheme',
                  language: 'mermaid',
                })),
                i(0, (o = at(n))),
                n.onDidChangeModelContent(function (e) {
                  a(n.getValue(), !1);
                }),
                ot(lt);
            }),
            [o]
          );
        }
        const ft = class extends de {
          constructor(e) {
            super(), ce(this, e, gt, ut, c, {});
          }
        };
        var pt = i(50158);
        function mt(e) {
          let t, i, n, r, s, o, a, c;
          return (
            (s = new st({ props: { errorStore: Xe } })),
            {
              c() {
                (t = k('div')),
                  (i = k('div')),
                  (r = L()),
                  oe(s.$$.fragment),
                  N(i, 'id', 'editor-conf'),
                  N(i, 'class', 'svelte-e1y9ss'),
                  N(t, 'id', 'editor-container');
              },
              m(l, d) {
                w(l, t, d),
                  y(t, i),
                  y(t, r),
                  ae(s, t, null),
                  (o = !0),
                  a || ((c = _((n = ht.call(null, i, e[0])))), (a = !0));
              },
              p(e, [t]) {
                n && l(n.update) && 1 & t && n.update.call(null, e[0]);
              },
              i(e) {
                o || (ie(s.$$.fragment, e), (o = !0));
              },
              o(e) {
                ne(s.$$.fragment, e), (o = !1);
              },
              d(e) {
                e && C(t), le(s), (a = !1), c();
              },
            }
          );
        }
        function _t(e, t, i) {
          let n,
            r = () => {};
          const s = (e, t) => {
            console.log(e),
              t && n && n.setValue(JSON.stringify(e, null, 2)),
              ((e, t) => {
                const i = u(Ge);
                Ge.set({ ...i, mermaid: e, updateEditor: !1 });
              })(e),
              Xe.set(void 0);
          };
          return (
            Ge.subscribe((e) => {
              console.log(e.mermaid, e.updateEditor),
                e.updateEditor && s(e.mermaid, !0);
            }),
            P(async () => {
              console.log('Mounting config');
              const e = document.getElementById('editor-conf');
              (n = pt.editor.create(e, {
                value: '',
                theme: 'myCoolTheme',
                language: 'json',
              })),
                i(0, (r = at(n))),
                n.onDidChangeModelContent(function (e) {
                  try {
                    const e = JSON.parse(n.getValue());
                    s(e, !1);
                  } catch (e) {
                    console.log('Error in parsed', e), Xe.set(e);
                  }
                }),
                ot(pt);
            }),
            [r]
          );
        }
        const bt = class extends de {
          constructor(e) {
            super(), ce(this, e, _t, mt, c, {});
          }
        };
        function vt(e) {
          let t, i, r;
          return {
            c() {
              (t = k('div')),
                (i = k('div')),
                N(i, 'id', 'container'),
                N(i, 'class', 'svelte-adxv1m'),
                N(t, 'id', 'view'),
                N(t, 'class', (r = e[1] + ' ' + e[0] + ' svelte-adxv1m'));
            },
            m(n, r) {
              w(n, t, r), y(t, i), e[4](i);
            },
            p(e, [i]) {
              3 & i &&
                r !== (r = e[1] + ' ' + e[0] + ' svelte-adxv1m') &&
                N(t, 'class', r);
            },
            i: n,
            o: n,
            d(i) {
              i && C(t), e[4](null);
            },
          };
        }
        function yt(e, t, i) {
          let n,
            r,
            { code: s = '' } = t,
            { configClasses: o = '' } = t,
            { codeClasses: a = '' } = t;
          P(async () => {
            Ge.subscribe((e) => {
              try {
                r &&
                  e &&
                  (i(
                    3,
                    (s = e.code.replace(/</g, '&lt;').replace(/>/g, '&gt;'))
                  ),
                  i(2, (r.innerHTML = s), r),
                  (o = (o = s).replace(/^\s*%%.*\n/g, '\n')),
                  console.debug(
                    'Detecting diagram type based on the text ' + o
                  ),
                  (t = o.match(/^\s*sequenceDiagram/)
                    ? 'sequence'
                    : o.match(/^\s*gantt/)
                    ? 'gantt'
                    : o.match(/^\s*classDiagram/)
                    ? 'class'
                    : o.match(/^\s*stateDiagram/)
                    ? 'state'
                    : o.match(/^\s*gitGraph/)
                    ? 'git'
                    : o.match(/^\s*flowchart/)
                    ? 'flowchart'
                    : o.match(/^\s*info/)
                    ? 'info'
                    : o.match(/^\s*pie/)
                    ? 'pie'
                    : 'flowchart'),
                  clearTimeout(n),
                  (n = setTimeout(function () {
                    console.log('ga:', 'send', 'event', 'render', t, t),
                      ga('send', 'event', t, 'render', 'render');
                  }, 5e3)),
                  delete r.dataset.processed,
                  tt().initialize(Object.assign({}, e.mermaid)),
                  tt().init(void 0, r),
                  s && tt().render('graph-div', s, l));
              } catch (e) {
                console.log('view fail', e);
              }
              var t, o;
            }),
              Qe.subscribe((e) => {
                void 0 === e
                  ? i(1, (a = ''))
                  : (i(1, (a = 'error')), console.log('code error: ', e));
              }),
              Xe.subscribe((e) => {
                void 0 === e
                  ? i(0, (o = ''))
                  : (i(0, (o = 'error')), console.log('conf error: ', e));
              });
          });
          let l = function (e, t) {};
          return (
            (e.$$set = (e) => {
              'code' in e && i(3, (s = e.code)),
                'configClasses' in e && i(0, (o = e.configClasses)),
                'codeClasses' in e && i(1, (a = e.codeClasses));
            }),
            [
              o,
              a,
              r,
              s,
              function (e) {
                W[e ? 'unshift' : 'push'](() => {
                  (r = e), i(2, r);
                });
              },
            ]
          );
        }
        const wt = class extends de {
          constructor(e) {
            super(),
              ce(this, e, yt, vt, c, {
                code: 3,
                configClasses: 0,
                codeClasses: 1,
              });
          }
        };
        function Ct(e) {
          let t, i, n, r, s, o, a;
          const l = e[4].default,
            c = g(l, e, e[3], null);
          return {
            c() {
              (t = k('div')),
                (i = k('div')),
                (n = x(e[0])),
                (r = L()),
                (s = k('div')),
                c && c.c(),
                N(i, 'id', 'title'),
                N(i, 'class', 'padding svelte-m2i2uf'),
                N(s, 'id', 'content'),
                N(s, 'class', (o = m(e[1]) + ' svelte-m2i2uf')),
                N(t, 'id', 'card'),
                N(t, 'class', 'svelte-m2i2uf');
            },
            m(e, o) {
              w(e, t, o),
                y(t, i),
                y(i, n),
                y(t, r),
                y(t, s),
                c && c.m(s, null),
                (a = !0);
            },
            p(e, [t]) {
              (!a || 1 & t) && T(n, e[0]),
                c && c.p && (!a || 8 & t) && p(c, l, e, e[3], t, null, null),
                (!a || (2 & t && o !== (o = m(e[1]) + ' svelte-m2i2uf'))) &&
                  N(s, 'class', o);
            },
            i(e) {
              a || (ie(c, e), (a = !0));
            },
            o(e) {
              ne(c, e), (a = !1);
            },
            d(e) {
              e && C(t), c && c.d(e);
            },
          };
        }
        function St(e, t, i) {
          let { $$slots: n = {}, $$scope: r } = t,
            { title: s = '' } = t,
            { noPadding: o = !1 } = t,
            a = 'padding';
          return (
            o && (a = ''),
            (e.$$set = (e) => {
              'title' in e && i(0, (s = e.title)),
                'noPadding' in e && i(2, (o = e.noPadding)),
                '$$scope' in e && i(3, (r = e.$$scope));
            }),
            [s, a, o, r, n]
          );
        }
        const kt = class extends de {
          constructor(e) {
            super(), ce(this, e, St, Ct, c, { title: 0, noPadding: 2 });
          }
        };
        function xt(e) {
          let t, i;
          const n = e[1].default,
            r = g(n, e, e[0], null);
          return {
            c() {
              (t = k('div')),
                r && r.c(),
                N(t, 'id', 'tag'),
                N(t, 'class', 'svelte-1nm8e4l');
            },
            m(e, n) {
              w(e, t, n), r && r.m(t, null), (i = !0);
            },
            p(e, [t]) {
              r && r.p && (!i || 1 & t) && p(r, n, e, e[0], t, null, null);
            },
            i(e) {
              i || (ie(r, e), (i = !0));
            },
            o(e) {
              ne(r, e), (i = !1);
            },
            d(e) {
              e && C(t), r && r.d(e);
            },
          };
        }
        function Lt(e, t, i) {
          let { $$slots: n = {}, $$scope: r } = t;
          return (
            (e.$$set = (e) => {
              '$$scope' in e && i(0, (r = e.$$scope));
            }),
            [r, n]
          );
        }
        const Mt = class extends de {
          constructor(e) {
            super(), ce(this, e, Lt, xt, c, {});
          }
        };
        var Dt = i(30381),
          Nt = i.n(Dt);
        function Et(e) {
          let t,
            i,
            r,
            s,
            o,
            l,
            c,
            d,
            h,
            u,
            g,
            f,
            p,
            m,
            _,
            b,
            v,
            S,
            M,
            T,
            O,
            A,
            R,
            P,
            F,
            B,
            W,
            Y,
            H,
            j,
            V,
            z,
            U,
            $,
            K,
            q,
            G,
            Z,
            J,
            Q,
            X,
            ee,
            te,
            ie,
            ne,
            re,
            se,
            oe,
            ae,
            le,
            ce,
            de,
            he,
            ue,
            ge = e[7](),
            fe =
              ge &&
              (function (e) {
                let t, i, n, r, s;
                return {
                  c() {
                    (t = k('button')),
                      (i = k('a')),
                      (n = x('Copy Image')),
                      N(i, 'class', 'link-style svelte-187ys3m'),
                      N(i, 'href', e[0]),
                      N(i, 'download', ''),
                      N(t, 'class', 'button-style svelte-187ys3m');
                  },
                  m(o, a) {
                    w(o, t, a),
                      y(t, i),
                      y(i, n),
                      r || ((s = D(i, 'click', e[8])), (r = !0));
                  },
                  p(e, t) {
                    1 & t && N(i, 'href', e[0]);
                  },
                  d(e) {
                    e && C(t), (r = !1), s();
                  },
                };
              })(e);
          return {
            c() {
              (t = k('div')),
                fe && fe.c(),
                (i = L()),
                (r = k('button')),
                (s = k('a')),
                (o = x('Download PNG')),
                (l = L()),
                (c = k('button')),
                (d = k('a')),
                (h = x('Link to view')),
                (u = L()),
                (g = k('button')),
                (f = k('a')),
                (p = x('Download SVG')),
                (m = L()),
                (_ = k('button')),
                (b = k('a')),
                (v = x('Link to Image')),
                (S = L()),
                (M = k('button')),
                (T = k('a')),
                (O = x('Link to SVG')),
                (A = x('\n  (markdown is base64 encoded for these urls)')),
                (R = L()),
                (P = k('div')),
                (F = k('label')),
                (F.textContent = 'Copy Markdown'),
                (B = L()),
                (W = k('br')),
                (Y = L()),
                (H = k('input')),
                (j = x('\n\nPNG size:\n')),
                (V = k('br')),
                (z = L()),
                (U = k('input')),
                ($ = L()),
                (K = k('label')),
                (K.textContent = 'auto'),
                (q = k('br')),
                (G = L()),
                (Z = k('input')),
                (J = L()),
                (Q = k('label')),
                (Q.textContent = 'width'),
                (X = L()),
                (ee = k('input')),
                (ie = k('br')),
                (ne = L()),
                (re = k('input')),
                (se = L()),
                (oe = k('label')),
                (oe.textContent = 'height'),
                (ae = L()),
                (le = k('input')),
                (de = k('br')),
                N(s, 'class', 'link-style svelte-187ys3m'),
                N(s, 'href', e[0]),
                N(s, 'download', ''),
                N(r, 'class', 'button-style svelte-187ys3m'),
                N(d, 'class', 'link-style svelte-187ys3m'),
                N(d, 'href', e[0]),
                N(c, 'class', 'button-style svelte-187ys3m'),
                N(f, 'class', 'link-style svelte-187ys3m'),
                N(f, 'href', e[0]),
                N(f, 'download', ''),
                N(g, 'class', 'button-style svelte-187ys3m'),
                N(b, 'class', 'link-style svelte-187ys3m'),
                N(b, 'href', e[1]),
                N(_, 'class', 'button-style svelte-187ys3m'),
                N(T, 'class', 'link-style svelte-187ys3m'),
                N(T, 'href', e[2]),
                N(M, 'class', 'button-style svelte-187ys3m'),
                N(t, 'id', 'links'),
                N(t, 'class', 'svelte-187ys3m'),
                N(F, 'for', 'markdown'),
                N(F, 'class', 'button-style svelte-187ys3m'),
                N(H, 'id', 'markdown'),
                N(H, 'type', 'text'),
                (H.value = e[3]),
                N(H, 'class', 'svelte-187ys3m'),
                N(P, 'id', 'copy-section'),
                N(P, 'class', 'svelte-187ys3m'),
                N(U, 'type', 'radio'),
                (U.__value = 'auto'),
                (U.value = U.__value),
                N(U, 'id', 'autosize'),
                e[13][0].push(U),
                N(K, 'for', 'autosize'),
                N(Z, 'type', 'radio'),
                (Z.__value = 'width'),
                (Z.value = Z.__value),
                N(Z, 'id', 'width-active'),
                e[13][0].push(Z),
                N(Q, 'for', 'width'),
                N(ee, 'id', 'width'),
                N(ee, 'type', 'number'),
                N(ee, 'min', '3'),
                N(ee, 'max', '10000'),
                (ee.disabled = te = 'width' !== e[4]),
                N(re, 'type', 'radio'),
                (re.__value = 'height'),
                (re.value = re.__value),
                N(re, 'id', 'height-active'),
                e[13][0].push(re),
                N(oe, 'for', 'height'),
                N(le, 'id', 'height'),
                N(le, 'type', 'number'),
                N(le, 'min', '3'),
                N(le, 'max', '10000'),
                (le.disabled = ce = 'height' !== e[4]);
            },
            m(n, a) {
              w(n, t, a),
                fe && fe.m(t, null),
                y(t, i),
                y(t, r),
                y(r, s),
                y(s, o),
                y(t, l),
                y(t, c),
                y(c, d),
                y(d, h),
                y(t, u),
                y(t, g),
                y(g, f),
                y(f, p),
                y(t, m),
                y(t, _),
                y(_, b),
                y(b, v),
                y(t, S),
                y(t, M),
                y(M, T),
                y(T, O),
                y(t, A),
                w(n, R, a),
                w(n, P, a),
                y(P, F),
                y(P, B),
                y(P, W),
                y(P, Y),
                y(P, H),
                w(n, j, a),
                w(n, V, a),
                w(n, z, a),
                w(n, U, a),
                (U.checked = U.__value === e[4]),
                w(n, $, a),
                w(n, K, a),
                w(n, q, a),
                w(n, G, a),
                w(n, Z, a),
                (Z.checked = Z.__value === e[4]),
                w(n, J, a),
                w(n, Q, a),
                w(n, X, a),
                w(n, ee, a),
                I(ee, e[5]),
                w(n, ie, a),
                w(n, ne, a),
                w(n, re, a),
                (re.checked = re.__value === e[4]),
                w(n, se, a),
                w(n, oe, a),
                w(n, ae, a),
                w(n, le, a),
                I(le, e[6]),
                w(n, de, a),
                he ||
                  ((ue = [
                    D(s, 'click', e[9]),
                    D(f, 'click', e[10]),
                    D(H, 'click', e[11]),
                    D(U, 'change', e[12]),
                    D(Z, 'change', e[14]),
                    D(ee, 'input', e[15]),
                    D(re, 'change', e[16]),
                    D(le, 'input', e[17]),
                  ]),
                  (he = !0));
            },
            p(e, [t]) {
              ge && fe.p(e, t),
                1 & t && N(s, 'href', e[0]),
                1 & t && N(d, 'href', e[0]),
                1 & t && N(f, 'href', e[0]),
                2 & t && N(b, 'href', e[1]),
                4 & t && N(T, 'href', e[2]),
                8 & t && H.value !== e[3] && (H.value = e[3]),
                16 & t && (U.checked = U.__value === e[4]),
                16 & t && (Z.checked = Z.__value === e[4]),
                16 & t && te !== (te = 'width' !== e[4]) && (ee.disabled = te),
                32 & t && E(ee.value) !== e[5] && I(ee, e[5]),
                16 & t && (re.checked = re.__value === e[4]),
                16 & t && ce !== (ce = 'height' !== e[4]) && (le.disabled = ce),
                64 & t && E(le.value) !== e[6] && I(le, e[6]);
            },
            i: n,
            o: n,
            d(i) {
              i && C(t),
                fe && fe.d(),
                i && C(R),
                i && C(P),
                i && C(j),
                i && C(V),
                i && C(z),
                i && C(U),
                e[13][0].splice(e[13][0].indexOf(U), 1),
                i && C($),
                i && C(K),
                i && C(q),
                i && C(G),
                i && C(Z),
                e[13][0].splice(e[13][0].indexOf(Z), 1),
                i && C(J),
                i && C(Q),
                i && C(X),
                i && C(ee),
                i && C(ie),
                i && C(ne),
                i && C(re),
                e[13][0].splice(e[13][0].indexOf(re), 1),
                i && C(se),
                i && C(oe),
                i && C(ae),
                i && C(le),
                i && C(de),
                (he = !1),
                a(ue);
            },
          };
        }
        function Tt(e, t, i) {
          const n = () => {
              const e = document
                .getElementById('container')
                .innerHTML.replaceAll('<br>', '<br/>');
              return Ue(e);
            },
            r = (e, t) => {
              const i = document.createElement('canvas'),
                r = document
                  .querySelector('#container svg')
                  .getBoundingClientRect();
              if (((i.width = r.width), (i.height = r.height), 'width' === u)) {
                const e = r.height / r.width;
                (i.width = g), (i.height = g * e);
              } else if ('height' === u) {
                const e = r.width / r.height;
                (i.width = f * e), (i.height = f);
              }
              const s = i.getContext('2d');
              (s.fillStyle = 'white'), s.fillRect(0, 0, i.width, i.height);
              const o = new Image();
              (o.onload = t(i, s, o)),
                console.log('SVG', n()),
                (o.src = `data:image/svg+xml;base64,${n()}`),
                e.stopPropagation(),
                e.preventDefault();
            },
            s = (e, t, i) => () => {
              t.drawImage(i, 0, 0, e.width, e.height);
              const n = document.createElement('a');
              (n.download = `mermaid-diagram-${Nt()().format(
                'YYYYMMDDHHmmss'
              )}.png`),
                (n.href = e
                  .toDataURL('image/png')
                  .replace('image/png', 'image/octet-stream')),
                n.click();
            },
            o = (e, t, i) => () => {
              t.drawImage(i, 0, 0, e.width, e.height),
                e.toBlob((e) => {
                  try {
                    navigator.clipboard.write([
                      new ClipboardItem({ [e.type]: e }),
                    ]);
                  } catch (e) {
                    console.error(e);
                  }
                });
            };
          let a,
            l,
            c,
            d,
            h,
            u = 'auto',
            g = 1920,
            f = 1080;
          return (
            Ge.subscribe((e) => {
              (l = $e(JSON.stringify(e))),
                i(
                  0,
                  (a = `${window.location.pathname.split('#')[0]}#/view/${l}`)
                ),
                i(1, (c = `https://mermaid.ink/img/${l}`)),
                i(2, (d = `https://mermaid.ink/svg/${l}`)),
                i(
                  3,
                  (h = `[![](${c})](${window.location.protocol}//${window.location.host}${window.location.pathname}#/edit/${l})`)
                );
            }),
            [
              a,
              c,
              d,
              h,
              u,
              g,
              f,
              () => window.hasOwnProperty('ClipboardItem'),
              (e) => {
                r(e, o);
              },
              (e) => {
                r(e, s);
              },
              (e) => {
                console.log('event', e.target),
                  (e.target.href = `data:image/svg+xml;base64,${n()}`),
                  (e.target.download = `mermaid-diagram-${Nt()().format(
                    'YYYYMMDDHHmmss'
                  )}.svg`),
                  console.log('event', e);
              },
              (e) => {
                e.target.select(), document.execCommand('Copy');
              },
              function () {
                (u = this.__value), i(4, u);
              },
              [[]],
              function () {
                (u = this.__value), i(4, u);
              },
              function () {
                (g = E(this.value)), i(5, g);
              },
              function () {
                (u = this.__value), i(4, u);
              },
              function () {
                (f = E(this.value)), i(6, f);
              },
            ]
          );
        }
        const It = class extends de {
            constructor(e) {
              super(), ce(this, e, Tt, Et, c, {});
            }
          },
          Ot = { i8: '8.9.3' };
        function At(e, t, i) {
          const n = e.slice();
          return (n[9] = t[i]), (n[11] = i), n;
        }
        function Rt(e, t, i) {
          const n = e.slice();
          return (n[12] = t[i]), (n[11] = i), n;
        }
        function Pt(e) {
          let t,
            i,
            n,
            r,
            s,
            o = e[12] + '';
          function a(...t) {
            return e[7](e[12], ...t);
          }
          return {
            c() {
              (t = k('button')),
                (i = x(o)),
                (n = L()),
                N(t, 'class', 'button-style svelte-mx8k4g');
            },
            m(e, o) {
              w(e, t, o),
                y(t, i),
                y(t, n),
                r || ((s = D(t, 'click', a)), (r = !0));
            },
            p(t, i) {
              e = t;
            },
            d(e) {
              e && C(t), (r = !1), s();
            },
          };
        }
        function Ft(e) {
          let t, i;
          return (
            (t = new ft({ props: { data: e[1].data } })),
            {
              c() {
                oe(t.$$.fragment);
              },
              m(e, n) {
                ae(t, e, n), (i = !0);
              },
              p(e, i) {
                const n = {};
                2 & i && (n.data = e[1].data), t.$set(n);
              },
              i(e) {
                i || (ie(t.$$.fragment, e), (i = !0));
              },
              o(e) {
                ne(t.$$.fragment, e), (i = !1);
              },
              d(e) {
                le(t, e);
              },
            }
          );
        }
        function Bt(e) {
          let t, i;
          return (
            (t = new bt({})),
            {
              c() {
                oe(t.$$.fragment);
              },
              m(e, n) {
                ae(t, e, n), (i = !0);
              },
              i(e) {
                i || (ie(t.$$.fragment, e), (i = !0));
              },
              o(e) {
                ne(t.$$.fragment, e), (i = !1);
              },
              d(e) {
                le(t, e);
              },
            }
          );
        }
        function Wt(e) {
          let t, i;
          return (
            (t = new wt({})),
            {
              c() {
                oe(t.$$.fragment);
              },
              m(e, n) {
                ae(t, e, n), (i = !0);
              },
              i(e) {
                i || (ie(t.$$.fragment, e), (i = !0));
              },
              o(e) {
                ne(t.$$.fragment, e), (i = !1);
              },
              d(e) {
                le(t, e);
              },
            }
          );
        }
        function Yt(e) {
          let t;
          return {
            c() {
              t = x('No records.');
            },
            m(e, i) {
              w(e, t, i);
            },
            p: n,
            d(e) {
              e && C(t);
            },
          };
        }
        function Ht(e) {
          let t,
            i = e[2],
            n = [];
          for (let t = 0; t < i.length; t += 1) n[t] = jt(At(e, i, t));
          return {
            c() {
              for (let e = 0; e < n.length; e += 1) n[e].c();
              t = M();
            },
            m(e, i) {
              for (let t = 0; t < n.length; t += 1) n[t].m(e, i);
              w(e, t, i);
            },
            p(e, r) {
              if (100 & r) {
                let s;
                for (i = e[2], s = 0; s < i.length; s += 1) {
                  const o = At(e, i, s);
                  n[s]
                    ? n[s].p(o, r)
                    : ((n[s] = jt(o)), n[s].c(), n[s].m(t.parentNode, t));
                }
                for (; s < n.length; s += 1) n[s].d(1);
                n.length = i.length;
              }
            },
            d(e) {
              S(n, e), e && C(t);
            },
          };
        }
        function jt(e) {
          let t,
            i,
            n,
            r,
            s,
            o = e[6](e[9].time) + '';
          function a(...t) {
            return e[8](e[9], ...t);
          }
          return {
            c() {
              (t = k('button')),
                (i = x(o)),
                (n = L()),
                N(t, 'class', 'button-style svelte-mx8k4g');
            },
            m(e, o) {
              w(e, t, o),
                y(t, i),
                y(t, n),
                r || ((s = D(t, 'click', a)), (r = !0));
            },
            p(t, n) {
              (e = t), 4 & n && o !== (o = e[6](e[9].time) + '') && T(i, o);
            },
            d(e) {
              e && C(t), (r = !1), s();
            },
          };
        }
        function Vt(e) {
          let t, i, n, r, s;
          function o(e, t) {
            return e[2].length > 0 ? Ht : Yt;
          }
          let a = o(e),
            l = a(e);
          return {
            c() {
              (t = k('span')),
                (t.textContent =
                  'Automatically saves once every minute, up to 10 records.'),
                (i = L()),
                (n = k('br')),
                (r = L()),
                (s = k('div')),
                l.c(),
                N(t, 'id', 'historyLoaderSubTitle'),
                N(t, 'class', 'svelte-mx8k4g'),
                N(s, 'id', 'historyList'),
                N(s, 'class', 'button-container svelte-mx8k4g');
            },
            m(e, o) {
              w(e, t, o),
                w(e, i, o),
                w(e, n, o),
                w(e, r, o),
                w(e, s, o),
                l.m(s, null);
            },
            p(e, t) {
              a === (a = o(e)) && l
                ? l.p(e, t)
                : (l.d(1), (l = a(e)), l && (l.c(), l.m(s, null)));
            },
            d(e) {
              e && C(t), e && C(i), e && C(n), e && C(r), e && C(s), l.d();
            },
          };
        }
        function zt(e) {
          let t;
          return {
            c() {
              (t = k('div')),
                (t.innerHTML =
                  '<button class="button-style svelte-mx8k4g"><a href="https://mermaid-js.github.io/mermaid/#/n00b-gettingStarted" target="_blank" class="link-style svelte-mx8k4g">Mermaid Documentation</a></button> \n              <button class="button-style svelte-mx8k4g"><a href="https://github.com/mermaid-js/mermaid/blob/master/docs/getting-started/Tutorials.md" target="_blank" class="link-style svelte-mx8k4g">Live Editor Video Tutorials</a></button> \n              <button class="button-style svelte-mx8k4g"><a href="https://github.com/mermaid-js/mermaid" target="_blank" class="link-style svelte-mx8k4g">Mermaid on GitHub</a></button> \n              <button class="button-style svelte-mx8k4g"><a href="https://github.com/mermaid-js/mermaid-live-editor" target="_blank" class="link-style svelte-mx8k4g">Live Editor on GitHub</a></button> \n              <button class="button-style svelte-mx8k4g"><a href="https://github.com/mermaid-js/mermaid-cli" target="_blank" class="link-style svelte-mx8k4g">Mermaid CLI</a></button>'),
                N(t, 'class', 'button-container svelte-mx8k4g');
            },
            m(e, i) {
              w(e, t, i);
            },
            d(e) {
              e && C(t);
            },
          };
        }
        function Ut(e) {
          let t, i;
          return (
            (t = new It({})),
            {
              c() {
                oe(t.$$.fragment);
              },
              m(e, n) {
                ae(t, e, n), (i = !0);
              },
              i(e) {
                i || (ie(t.$$.fragment, e), (i = !0));
              },
              o(e) {
                ne(t.$$.fragment, e), (i = !1);
              },
              d(e) {
                le(t, e);
              },
            }
          );
        }
        function $t(e) {
          let t;
          return {
            c() {
              t = x(e[0]);
            },
            m(e, i) {
              w(e, t, i);
            },
            p(e, i) {
              1 & i && T(t, e[0]);
            },
            d(e) {
              e && C(t);
            },
          };
        }
        function Kt(e) {
          let t,
            i,
            n,
            r,
            s,
            o,
            a,
            l,
            c,
            d,
            h,
            u,
            g,
            f,
            p,
            m,
            _,
            b,
            v,
            M,
            D,
            E,
            T,
            I,
            O,
            A,
            R,
            P,
            F,
            B,
            W = Object.keys(e[3]),
            Y = [];
          for (let t = 0; t < W.length; t += 1) Y[t] = Pt(Rt(e, W, t));
          return (
            (h = new kt({
              props: {
                title: 'Code',
                noPadding: 'true',
                $$slots: { default: [Ft] },
                $$scope: { ctx: e },
              },
            })),
            (g = new kt({
              props: {
                title: 'Mermaid Configuration',
                $$slots: { default: [Bt] },
                $$scope: { ctx: e },
              },
            })),
            (m = new kt({
              props: {
                title: 'Preview',
                $$slots: { default: [Wt] },
                $$scope: { ctx: e },
              },
            })),
            (M = new kt({
              props: {
                title: 'Editing history',
                $$slots: { default: [Vt] },
                $$scope: { ctx: e },
              },
            })),
            (E = new kt({
              props: {
                title: 'Links',
                $$slots: { default: [zt] },
                $$scope: { ctx: e },
              },
            })),
            (O = new kt({
              props: {
                title: 'Actions',
                $$slots: { default: [Ut] },
                $$scope: { ctx: e },
              },
            })),
            (F = new Mt({
              props: {
                color: 'green',
                $$slots: { default: [$t] },
                $$scope: { ctx: e },
              },
            })),
            {
              c() {
                (t = k('div')),
                  (i = k('div')),
                  (i.innerHTML =
                    '<h1 id="app-title" class="svelte-mx8k4g">Mermaid Live Editor</h1>'),
                  (n = L()),
                  (r = k('div')),
                  (s = k('div')),
                  (o = k('span')),
                  (o.innerHTML = '<strong>Diagram presets:</strong>'),
                  (a = L());
                for (let e = 0; e < Y.length; e += 1) Y[e].c();
                (l = L()),
                  (c = k('div')),
                  (d = k('div')),
                  oe(h.$$.fragment),
                  (u = L()),
                  oe(g.$$.fragment),
                  (f = L()),
                  (p = k('div')),
                  oe(m.$$.fragment),
                  (_ = L()),
                  (b = k('div')),
                  (v = k('div')),
                  oe(M.$$.fragment),
                  (D = L()),
                  oe(E.$$.fragment),
                  (T = L()),
                  (I = k('div')),
                  oe(O.$$.fragment),
                  (A = L()),
                  (R = k('div')),
                  (P = x('Powered by mermaid\n    ')),
                  oe(F.$$.fragment),
                  N(i, 'id', 'title-container'),
                  N(i, 'class', 'svelte-mx8k4g'),
                  N(o, 'id', 'sampleLoaderTitle'),
                  N(s, 'class', 'button-container svelte-mx8k4g'),
                  N(r, 'id', 'sampleLoader'),
                  N(r, 'class', 'svelte-mx8k4g'),
                  N(d, 'id', 'col1'),
                  N(d, 'class', 'svelte-mx8k4g'),
                  N(v, 'id', 'link-col1'),
                  N(v, 'class', 'svelte-mx8k4g'),
                  N(I, 'id', 'link-col2'),
                  N(I, 'class', 'svelte-mx8k4g'),
                  N(b, 'id', 'link-root'),
                  N(b, 'class', 'svelte-mx8k4g'),
                  N(p, 'id', 'col2'),
                  N(p, 'class', 'svelte-mx8k4g'),
                  N(c, 'id', 'editor-root'),
                  N(c, 'class', 'svelte-mx8k4g'),
                  N(R, 'id', 'power'),
                  N(R, 'class', 'svelte-mx8k4g'),
                  N(t, 'id', 'body'),
                  N(t, 'class', 'svelte-mx8k4g');
              },
              m(e, C) {
                w(e, t, C),
                  y(t, i),
                  y(t, n),
                  y(t, r),
                  y(r, s),
                  y(s, o),
                  y(s, a);
                for (let e = 0; e < Y.length; e += 1) Y[e].m(s, null);
                y(t, l),
                  y(t, c),
                  y(c, d),
                  ae(h, d, null),
                  y(d, u),
                  ae(g, d, null),
                  y(c, f),
                  y(c, p),
                  ae(m, p, null),
                  y(p, _),
                  y(p, b),
                  y(b, v),
                  ae(M, v, null),
                  y(v, D),
                  ae(E, v, null),
                  y(b, T),
                  y(b, I),
                  ae(O, I, null),
                  y(t, A),
                  y(t, R),
                  y(R, P),
                  ae(F, R, null),
                  (B = !0);
              },
              p(e, [t]) {
                if (24 & t) {
                  let i;
                  for (W = Object.keys(e[3]), i = 0; i < W.length; i += 1) {
                    const n = Rt(e, W, i);
                    Y[i]
                      ? Y[i].p(n, t)
                      : ((Y[i] = Pt(n)), Y[i].c(), Y[i].m(s, null));
                  }
                  for (; i < Y.length; i += 1) Y[i].d(1);
                  Y.length = W.length;
                }
                const i = {};
                16386 & t && (i.$$scope = { dirty: t, ctx: e }), h.$set(i);
                const n = {};
                16384 & t && (n.$$scope = { dirty: t, ctx: e }), g.$set(n);
                const r = {};
                16384 & t && (r.$$scope = { dirty: t, ctx: e }), m.$set(r);
                const o = {};
                16388 & t && (o.$$scope = { dirty: t, ctx: e }), M.$set(o);
                const a = {};
                16384 & t && (a.$$scope = { dirty: t, ctx: e }), E.$set(a);
                const l = {};
                16384 & t && (l.$$scope = { dirty: t, ctx: e }), O.$set(l);
                const c = {};
                16385 & t && (c.$$scope = { dirty: t, ctx: e }), F.$set(c);
              },
              i(e) {
                B ||
                  (ie(h.$$.fragment, e),
                  ie(g.$$.fragment, e),
                  ie(m.$$.fragment, e),
                  ie(M.$$.fragment, e),
                  ie(E.$$.fragment, e),
                  ie(O.$$.fragment, e),
                  ie(F.$$.fragment, e),
                  (B = !0));
              },
              o(e) {
                ne(h.$$.fragment, e),
                  ne(g.$$.fragment, e),
                  ne(m.$$.fragment, e),
                  ne(M.$$.fragment, e),
                  ne(E.$$.fragment, e),
                  ne(O.$$.fragment, e),
                  ne(F.$$.fragment, e),
                  (B = !1);
              },
              d(e) {
                e && C(t),
                  S(Y, e),
                  le(h),
                  le(g),
                  le(m),
                  le(M),
                  le(E),
                  le(O),
                  le(F);
              },
            }
          );
        }
        function qt(e, t, i) {
          let { mermaidVersion: n = Ot.i8 } = t,
            { params: r = {} } = t,
            s = [];
          P(async () => {
            ga('send', 'pageview'), ga('send', 'event', 'version', n, n);
            const e = '_mermaid_history_';
            i(2, (s = JSON.parse(localStorage.getItem(e) || '[]')));
            let t = s.length > 0 ? s[s.length - 1] : null;
            var o;
            r.data
              ? Ze(r.data)
              : t
              ? ((o = { code: t.code, mermaid: {}, updateEditor: !0 }),
                Ge.set(o))
              : a('Flow Chart'),
              Ge.subscribe((e) => {
                !(async function (e) {
                  if (
                    !e ||
                    e.length < 1 ||
                    ('/' != e.charAt(0) && 0 !== e.indexOf('#/'))
                  )
                    throw Error('Invalid parameter location');
                  await U();
                  const t = ('#' == e.charAt(0) ? '' : '#') + e;
                  try {
                    window.history.replaceState(void 0, void 0, t);
                  } catch (e) {
                    console.warn(
                      "Caught exception while replacing the current page. If you're running this in the Svelte REPL, please note that the `replace` method might not work in this environment."
                    );
                  }
                  window.dispatchEvent(new Event('hashchange'));
                })(
                  `/${u(ye).split('/')[1] || 'edit'}/` + $e(JSON.stringify(e))
                );
              });
            let l = null;
            Ge.subscribe((e) => {
              l = (e && e.code) || l;
            }),
              setInterval(() => {
                l != t &&
                  (s.unshift({ time: new Date().toISOString(), code: (t = l) }),
                  s.length > 10 && s.pop(),
                  localStorage.setItem(e, JSON.stringify(s))),
                  i(2, s);
              }, 6e4);
          });
          const o = {
            'Flow Chart':
              'graph TD\n    A[Christmas] --\x3e|Get money| B(Go shopping)\n    B --\x3e C{Let me think}\n    C --\x3e|One| D[Laptop]\n    C --\x3e|Two| E[iPhone]\n    C --\x3e|Three| F[fa:fa-car Car]',
            'Sequence Diagram':
              'sequenceDiagram\n    Alice->>+John: Hello John, how are you?\n    Alice->>+John: John, can you hear me?\n    John--\x3e>-Alice: Hi Alice, I can hear you!\n    John--\x3e>-Alice: I feel great!\n            ',
            'Class Diagram':
              'classDiagram\n    Animal <|-- Duck\n    Animal <|-- Fish\n    Animal <|-- Zebra\n    Animal : +int age\n    Animal : +String gender\n    Animal: +isMammal()\n    Animal: +mate()\n    class Duck{\n      +String beakColor\n      +swim()\n      +quack()\n    }\n    class Fish{\n      -int sizeInFeet\n      -canEat()\n    }\n    class Zebra{\n      +bool is_wild\n      +run()\n    }\n            ',
            'State Diagram':
              'stateDiagram-v2\n    [*] --\x3e Still\n    Still --\x3e [*]\n    Still --\x3e Moving\n    Moving --\x3e Still\n    Moving --\x3e Crash\n    Crash --\x3e [*]\n            ',
            'Gantt Chart':
              'gantt\n    title A Gantt Diagram\n    dateFormat  YYYY-MM-DD\n    section Section\n    A task           :a1, 2014-01-01, 30d\n    Another task     :after a1  , 20d\n    section Another\n    Task in sec      :2014-01-12  , 12d\n    another task      : 24d\n            ',
            'Pie Chart':
              'pie title Pets adopted by volunteers\n    "Dogs" : 386\n    "Cats" : 85\n    "Rats" : 15\n            ',
            'ER Diagram':
              'erDiagram\n          CUSTOMER }|..|{ DELIVERY-ADDRESS : has\n          CUSTOMER ||--o{ ORDER : places\n          CUSTOMER ||--o{ INVOICE : "liable for"\n          DELIVERY-ADDRESS ||--o{ ORDER : receives\n          INVOICE ||--|{ ORDER : covers\n          ORDER ||--|{ ORDER-ITEM : includes\n          PRODUCT-CATEGORY ||--|{ PRODUCT : contains\n          PRODUCT ||--o{ ORDER-ITEM : "ordered in"\n            ',
          };
          function a(e) {
            l(o[e]);
          }
          function l(e) {
            e && Je(e, !0);
          }
          return (
            (e.$$set = (e) => {
              'mermaidVersion' in e && i(0, (n = e.mermaidVersion)),
                'params' in e && i(1, (r = e.params));
            }),
            [
              n,
              r,
              s,
              o,
              a,
              l,
              function (e) {
                return `${Nt()(e).fromNow()} (${new Date(e).toLocaleString()})`;
              },
              (e, t) => a(e),
              (e, t) => l(e.code),
            ]
          );
        }
        const Gt = class extends de {
          constructor(e) {
            super(), ce(this, e, qt, Kt, c, { mermaidVersion: 0, params: 1 });
          }
        };
        function Zt(e) {
          let t, i, r;
          return (
            (i = new wt({})),
            {
              c() {
                (t = k('div')),
                  oe(i.$$.fragment),
                  N(t, 'id', 'view-page'),
                  N(t, 'class', 'svelte-clxwlp');
              },
              m(e, n) {
                w(e, t, n), ae(i, t, null), (r = !0);
              },
              p: n,
              i(e) {
                r || (ie(i.$$.fragment, e), (r = !0));
              },
              o(e) {
                ne(i.$$.fragment, e), (r = !1);
              },
              d(e) {
                e && C(t), le(i);
              },
            }
          );
        }
        function Jt(e, t, i) {
          let { params: n = {} } = t;
          return (
            P(async () => {
              ga('send', 'pageview'), n.data && Ze(n.data);
            }),
            (e.$$set = (e) => {
              'params' in e && i(0, (n = e.params));
            }),
            [n]
          );
        }
        const Qt = class extends de {
          constructor(e) {
            super(), ce(this, e, Jt, Zt, c, { params: 0 });
          }
        };
        function Xt(e) {
          let t, i, r, s;
          return (
            (r = new Ce({ props: { routes: e[0] } })),
            {
              c() {
                (t = k('link')),
                  (i = L()),
                  oe(r.$$.fragment),
                  N(
                    t,
                    'href',
                    'https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap'
                  ),
                  N(t, 'rel', 'stylesheet');
              },
              m(e, n) {
                y(document.head, t), w(e, i, n), ae(r, e, n), (s = !0);
              },
              p: n,
              i(e) {
                s || (ie(r.$$.fragment, e), (s = !0));
              },
              o(e) {
                ne(r.$$.fragment, e), (s = !1);
              },
              d(e) {
                C(t), e && C(i), le(r, e);
              },
            }
          );
        }
        function ei(e) {
          return [{ '/': Gt, '/edit/:data': Gt, '/view/:data': Qt, '*': Gt }];
        }
        const ti = new (class extends de {
          constructor(e) {
            super(), ce(this, e, ei, Xt, c, {});
          }
        })({ target: document.body, props: {} });
        window.app = ti;
      },
    },
    n = {};
  function r(e) {
    var t = n[e];
    if (void 0 !== t) return t.exports;
    var s = (n[e] = { id: e, loaded: !1, exports: {} });
    return i[e].call(s.exports, s, s.exports, r), (s.loaded = !0), s.exports;
  }
  (r.m = i),
    (r.n = (e) => {
      var t = e && e.__esModule ? () => e.default : () => e;
      return r.d(t, { a: t }), t;
    }),
    (r.d = (e, t) => {
      for (var i in t)
        r.o(t, i) &&
          !r.o(e, i) &&
          Object.defineProperty(e, i, { enumerable: !0, get: t[i] });
    }),
    (r.f = {}),
    (r.e = (e) =>
      Promise.all(Object.keys(r.f).reduce((t, i) => (r.f[i](e, t), t), []))),
    (r.u = (e) => e + '.' + e + '.js'),
    (r.miniCssF = (e) => {}),
    (r.g = (function () {
      if ('object' == typeof globalThis) return globalThis;
      try {
        return this || new Function('return this')();
      } catch (e) {
        if ('object' == typeof window) return window;
      }
    })()),
    (r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)),
    (e = {}),
    (t = 'mermaid-live-editor:'),
    (r.l = (i, n, s, o) => {
      if (e[i]) e[i].push(n);
      else {
        var a, l;
        if (void 0 !== s)
          for (
            var c = document.getElementsByTagName('script'), d = 0;
            d < c.length;
            d++
          ) {
            var h = c[d];
            if (
              h.getAttribute('src') == i ||
              h.getAttribute('data-webpack') == t + s
            ) {
              a = h;
              break;
            }
          }
        a ||
          ((l = !0),
          ((a = document.createElement('script')).charset = 'utf-8'),
          (a.timeout = 120),
          r.nc && a.setAttribute('nonce', r.nc),
          a.setAttribute('data-webpack', t + s),
          (a.src = i)),
          (e[i] = [n]);
        var u = (t, n) => {
            (a.onerror = a.onload = null), clearTimeout(g);
            var r = e[i];
            if (
              (delete e[i],
              a.parentNode && a.parentNode.removeChild(a),
              r && r.forEach((e) => e(n)),
              t)
            )
              return t(n);
          },
          g = setTimeout(
            u.bind(null, void 0, { type: 'timeout', target: a }),
            12e4
          );
        (a.onerror = u.bind(null, a.onerror)),
          (a.onload = u.bind(null, a.onload)),
          l && document.head.appendChild(a);
      }
    }),
    (r.r = (e) => {
      'undefined' != typeof Symbol &&
        Symbol.toStringTag &&
        Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
        Object.defineProperty(e, '__esModule', { value: !0 });
    }),
    (r.nmd = (e) => ((e.paths = []), e.children || (e.children = []), e)),
    (() => {
      var e;
      r.g.importScripts && (e = r.g.location + '');
      var t = r.g.document;
      if (!e && t && (t.currentScript && (e = t.currentScript.src), !e)) {
        var i = t.getElementsByTagName('script');
        i.length && (e = i[i.length - 1].src);
      }
      if (!e)
        throw new Error(
          'Automatic publicPath is not supported in this browser'
        );
      (e = e
        .replace(/#.*$/, '')
        .replace(/\?.*$/, '')
        .replace(/\/[^\/]+$/, '/')),
        (r.p = e);
    })(),
    (() => {
      var e = { 4296: 0 };
      r.f.j = (t, i) => {
        var n = r.o(e, t) ? e[t] : void 0;
        if (0 !== n)
          if (n) i.push(n[2]);
          else {
            var s = new Promise((i, r) => (n = e[t] = [i, r]));
            i.push((n[2] = s));
            var o = r.p + r.u(t),
              a = new Error();
            r.l(
              o,
              (i) => {
                if (r.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) {
                  var s = i && ('load' === i.type ? 'missing' : i.type),
                    o = i && i.target && i.target.src;
                  (a.message =
                    'Loading chunk ' + t + ' failed.\n(' + s + ': ' + o + ')'),
                    (a.name = 'ChunkLoadError'),
                    (a.type = s),
                    (a.request = o),
                    n[1](a);
                }
              },
              'chunk-' + t,
              t
            );
          }
      };
      var t = (t, i) => {
          var n,
            s,
            [o, a, l] = i,
            c = 0;
          for (n in a) r.o(a, n) && (r.m[n] = a[n]);
          for (l && l(r), t && t(i); c < o.length; c++)
            (s = o[c]), r.o(e, s) && e[s] && e[s][0](), (e[o[c]] = 0);
        },
        i = (self.webpackChunkmermaid_live_editor =
          self.webpackChunkmermaid_live_editor || []);
      i.forEach(t.bind(null, 0)), (i.push = t.bind(null, i.push.bind(i)));
    })(),
    r(73466);
})();
