text: var $jscomp = $jscomp || {};
  $jscomp.scope = {};
  $jscomp.ASSUME_ES5 = !1;
  $jscomp.ASSUME_NO_NATIVE_MAP = !1;
  $jscomp.ASSUME_NO_NATIVE_SET = !1;
  $jscomp.defineProperty =
    $jscomp.ASSUME_ES5 || 'function' == typeof Object.defineProperties
      ? Object.defineProperty
      : function (d, k, f) {
          d != Array.prototype && d != Object.prototype && (d[k] = f.value);
        };
  $jscomp.getGlobal = function (d) {
    return 'undefined' != typeof window && window === d
      ? d
      : 'undefined' != typeof global && null != global
      ? global
      : d;
  };
  $jscomp.global = $jscomp.getGlobal(this);
  $jscomp.polyfill = function (d, k, f, u) {
    if (k) {
      f = $jscomp.global;
      d = d.split('.');
      for (u = 0; u < d.length - 1; u++) {
        var h = d[u];
        h in f || (f[h] = {});
        f = f[h];
      }
      d = d[d.length - 1];
      u = f[d];
      k = k(u);
      k != u &&
        null != k &&
        $jscomp.defineProperty(f, d, { configurable: !0, writable: !0, value: k });
    }
  };
  $jscomp.polyfill(
    'Math.imul',
    function (d) {
      return d
        ? d
        : function (d, f) {
            d = Number(d);
            f = Number(f);
            var k = d & 65535,
              h = f & 65535;
            return (
              (k * h + (((((d >>> 16) & 65535) * h + k * ((f >>> 16) & 65535)) << 16) >>> 0)) | 0
            );
          };
    },
    'es6',
    'es3',
  );
  $jscomp.polyfill(
    'Math.clz32',
    function (d) {
      return d
        ? d
        : function (d) {
            d = Number(d) >>> 0;
            if (0 === d) return 32;
            var f = 0;
            0 === (d & 4294901760) && ((d <<= 16), (f += 16));
            0 === (d & 4278190080) && ((d <<= 8), (f += 8));
            0 === (d & 4026531840) && ((d <<= 4), (f += 4));
            0 === (d & 3221225472) && ((d <<= 2), (f += 2));
            0 === (d & 2147483648) && f++;
            return f;
          };
    },
    'es6',
    'es3',
  );
  $jscomp.polyfill(
    'Math.trunc',
    function (d) {
      return d
        ? d
        : function (d) {
            d = Number(d);
            if (isNaN(d) || Infinity === d || -Infinity === d || 0 === d) return d;
            var f = Math.floor(Math.abs(d));
            return 0 > d ? -f : f;
          };
    },
    'es6',
    'es3',
  );
  $jscomp.SYMBOL_PREFIX = 'jscomp_symbol_';
  $jscomp.initSymbol = function () {
    $jscomp.initSymbol = function () {};
    $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol);
  };
  $jscomp.Symbol = (function () {
    var d = 0;
    return function (k) {
      return $jscomp.SYMBOL_PREFIX + (k || '') + d++;
    };
  })();
  $jscomp.initSymbolIterator = function () {
    $jscomp.initSymbol();
    var d = $jscomp.global.Symbol.iterator;
    d || (d = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol('iterator'));
    'function' != typeof Array.prototype[d] &&
      $jscomp.defineProperty(Array.prototype, d, {
        configurable: !0,
        writable: !0,
        value: function () {
          return $jscomp.arrayIterator(this);
        },
      });
    $jscomp.initSymbolIterator = function () {};
  };
  $jscomp.arrayIterator = function (d) {
    var k = 0;
    return $jscomp.iteratorPrototype(function () {
      return k < d.length ? { done: !1, value: d[k++] } : { done: !0 };
    });
  };
  $jscomp.iteratorPrototype = function (d) {
    $jscomp.initSymbolIterator();
    d = { next: d };
    d[$jscomp.global.Symbol.iterator] = function () {
      return this;
    };
    return d;
  };
  $jscomp.makeIterator = function (d) {
    $jscomp.initSymbolIterator();
    var k = d[Symbol.iterator];
    return k ? k.call(d) : $jscomp.arrayIterator(d);
  };
  $jscomp.FORCE_POLYFILL_PROMISE = !1;
  $jscomp.polyfill(
    'Promise',
    function (d) {
      function k() {
        this.batch_ = null;
      }
      function f(d) {
        return d instanceof h
          ? d
          : new h(function (r, f) {
              r(d);
            });
      }
      if (d && !$jscomp.FORCE_POLYFILL_PROMISE) return d;
      k.prototype.asyncExecute = function (d) {
        null == this.batch_ && ((this.batch_ = []), this.asyncExecuteBatch_());
        this.batch_.push(d);
        return this;
      };
      k.prototype.asyncExecuteBatch_ = function () {
        var d = this;
        this.asyncExecuteFunction(function () {
          d.executeBatch_();
        });
      };
      var u = $jscomp.global.setTimeout;
      k.prototype.asyncExecuteFunction = function (d) {
        u(d, 0);
      };
      k.prototype.executeBatch_ = function () {
        for (; this.batch_ && this.batch_.length; ) {
          var d = this.batch_;
          this.batch_ = [];
          for (var B = 0; B < d.length; ++B) {
            var f = d[B];
            delete d[B];
            try {
              f();
            } catch (v) {
              this.asyncThrow_(v);
            }
          }
        }
        this.batch_ = null;
      };
      k.prototype.asyncThrow_ = function (d) {
        this.asyncExecuteFunction(function () {
          throw d;
        });
      };
      var h = function (d) {
        this.state_ = 0;
        this.result_ = void 0;
        this.onSettledCallbacks_ = [];
        var r = this.createResolveAndReject_();
        try {
          d(r.resolve, r.reject);
        } catch (Y) {
          r.reject(Y);
        }
      };
      h.prototype.createResolveAndReject_ = function () {
        function d(d) {
          return function (r) {
            h || ((h = !0), d.call(f, r));
          };
        }
        var f = this,
          h = !1;
        return { resolve: d(this.resolveTo_), reject: d(this.reject_) };
      };
      h.prototype.resolveTo_ = function (d) {
        if (d === this) this.reject_(new TypeError('A Promise cannot resolve to itself'));
        else if (d instanceof h) this.settleSameAsPromise_(d);
        else {
          a: switch (typeof d) {
            case 'object':
              var f = null != d;
              break a;
            case 'function':
              f = !0;
              break a;
            default:
              f = !1;
          }
          f ? this.resolveToNonPromiseObj_(d) : this.fulfill_(d);
        }
      };
      h.prototype.resolveToNonPromiseObj_ = function (d) {
        var f = void 0;
        try {
          f = d.then;
        } catch (Y) {
          this.reject_(Y);
          return;
        }
        'function' == typeof f ? this.settleSameAsThenable_(f, d) : this.fulfill_(d);
      };
      h.prototype.reject_ = function (d) {
        this.settle_(2, d);
      };
      h.prototype.fulfill_ = function (d) {
        this.settle_(1, d);
      };
      h.prototype.settle_ = function (d, f) {
        if (0 != this.state_)
          throw Error(
            ('Cannot settle(' + d + ', ' + f) | ('): Promise already settled in state' + this.state_),
          );
        this.state_ = d;
        this.result_ = f;
        this.executeOnSettledCallbacks_();
      };
      h.prototype.executeOnSettledCallbacks_ = function () {
        if (null != this.onSettledCallbacks_) {
          for (var d = this.onSettledCallbacks_, f = 0; f < d.length; ++f) d[f].call(), (d[f] = null);
          this.onSettledCallbacks_ = null;
        }
      };
      var ha = new k();
      h.prototype.settleSameAsPromise_ = function (d) {
        var f = this.createResolveAndReject_();
        d.callWhenSettled_(f.resolve, f.reject);
      };
      h.prototype.settleSameAsThenable_ = function (d, f) {
        var h = this.createResolveAndReject_();
        try {
          d.call(f, h.resolve, h.reject);
        } catch (v) {
          h.reject(v);
        }
      };
      h.prototype.then = function (d, f) {
        function k(d, f) {
          return 'function' == typeof d
            ? function (f) {
                try {
                  v(d(f));
                } catch (O) {
                  r(O);
                }
              }
            : f;
        }
        var v,
          r,
          B = new h(function (d, f) {
            v = d;
            r = f;
          });
        this.callWhenSettled_(k(d, v), k(f, r));
        return B;
      };
      h.prototype.catch = function (d) {
        return this.then(void 0, d);
      };
      h.prototype.callWhenSettled_ = function (d, f) {
        function h() {
          switch (k.state_) {
            case 1:
              d(k.result_);
              break;
            case 2:
              f(k.result_);
              break;
            default:
              throw Error('Unexpected state: ' + k.state_);
          }
        }
        var k = this;
        null == this.onSettledCallbacks_
          ? ha.asyncExecute(h)
          : this.onSettledCallbacks_.push(function () {
              ha.asyncExecute(h);
            });
      };
      h.resolve = f;
      h.reject = function (d) {
        return new h(function (f, h) {
          h(d);
        });
      };
      h.race = function (d) {
        return new h(function (h, k) {
          for (var v = $jscomp.makeIterator(d), r = v.next(); !r.done; r = v.next())
            f(r.value).callWhenSettled_(h, k);
        });
      };
      h.all = function (d) {
        var k = $jscomp.makeIterator(d),
          r = k.next();
        return r.done
          ? f([])
          : new h(function (d, h) {
              function v(f) {
                return function (h) {
                  u[f] = h;
                  B--;
                  0 == B && d(u);
                };
              }
              var u = [],
                B = 0;
              do u.push(void 0), B++, f(r.value).callWhenSettled_(v(u.length - 1), h), (r = k.next());
              while (!r.done);
            });
      };
      return h;
    },
    'es6',
    'es3',
  );
  var DracoDecoderModule = function (d) {
    function k(a, c) {
      c || (c = 16);
      return Math.ceil(a / c) * c;
    }
    function f(a, c) {
      a || O('Assertion failed: ' + c);
    }
    function u(a, c) {
      if (0 === c || !a) return '';
      for (var b = 0, e, d = 0; ; ) {
        e = W[(a + d) >> 0];
        b |= e;
        if (0 == e && !c) break;
        d++;
        if (c && d == c) break;
      }
      c || (c = d);
      e = '';
      if (128 > b) {
        for (; 0 < c; )
          (b = String.fromCharCode.apply(String, W.subarray(a, a + Math.min(c, 1024)))),
            (e = e ? e + b : b),
            (a += 1024),
            (c -= 1024);
        return e;
      }
      return h(W, a);
    }
    function h(a, c) {
      for (var b = c; a[b]; ) ++b;
      if (16 < b - c && a.subarray && Ia) return Ia.decode(a.subarray(c, b));
      for (b = ''; ; ) {
        var e = a[c++];
        if (!e) return b;
        if (e & 128) {
          var d = a[c++] & 63;
          if (192 == (e & 224)) b += String.fromCharCode(((e & 31) << 6) | d);
          else {
            var f = a[c++] & 63;
            if (224 == (e & 240)) e = ((e & 15) << 12) | (d << 6) | f;
            else {
              var g = a[c++] & 63;
              if (240 == (e & 248)) e = ((e & 7) << 18) | (d << 12) | (f << 6) | g;
              else {
                var h = a[c++] & 63;
                if (248 == (e & 252)) e = ((e & 3) << 24) | (d << 18) | (f << 12) | (g << 6) | h;
                else {
                  var k = a[c++] & 63;
                  e = ((e & 1) << 30) | (d << 24) | (f << 18) | (g << 12) | (h << 6) | k;
                }
              }
            }
            65536 > e
              ? (b += String.fromCharCode(e))
              : ((e -= 65536), (b += String.fromCharCode(55296 | (e >> 10), 56320 | (e & 1023))));
          }
        } else b += String.fromCharCode(e);
      }
    }
    function ha(a, c) {
      0 < a % c && (a += c - (a % c));
      return a;
    }
    function r() {
      a.HEAP8 = ia = new Int8Array(D);
      a.HEAP16 = Ja = new Int16Array(D);
      a.HEAP32 = E = new Int32Array(D);
      a.HEAPU8 = W = new Uint8Array(D);
      a.HEAPU16 = new Uint16Array(D);
      a.HEAPU32 = new Uint32Array(D);
      a.HEAPF32 = new Float32Array(D);
      a.HEAPF64 = new Float64Array(D);
    }
    function B(e) {
      for (; 0 < e.length; ) {
        var c = e.shift();
        if ('function' == typeof c) c();
        else {
          var b = c.func;
          'number' === typeof b
            ? void 0 === c.arg
              ? a.dynCall_v(b)
              : a.dynCall_vi(b, c.arg)
            : b(void 0 === c.arg ? null : c.arg);
        }
      }
    }
    function Y(a) {
      return String.prototype.startsWith
        ? a.startsWith('data:application/octet-stream;base64,')
        : 0 === a.indexOf('data:application/octet-stream;base64,');
    }
    function v() {
      return !!v.uncaught_exception;
    }
    function la() {
      var e = y.last;
      if (!e) return (sa(0), 0) | 0;
      var c = y.infos[e],
        b = c.type;
      if (!b) return (sa(0), e) | 0;
      var p = Array.prototype.slice.call(arguments);
      a.___cxa_is_pointer_type(b);
      la.buffer || (la.buffer = Ka(4));
      E[la.buffer >> 2] = e;
      e = la.buffer;
      for (var d = 0; d < p.length; d++)
        if (p[d] && a.___cxa_can_catch(p[d], b, e))
          return (e = E[e >> 2]), (c.adjusted = e), (sa(p[d]), e) | 0;
      e = E[e >> 2];
      return (sa(b), e) | 0;
    }
    function Z(e, c) {
      w.varargs = c;
      try {
        var b = w.get(),
          p = w.get(),
          d = w.get();
        e = 0;
        Z.buffers ||
          ((Z.buffers = [null, [], []]),
          (Z.printChar = function (c, b) {
            var e = Z.buffers[c];
            f(e);
            0 === b || 10 === b
              ? ((1 === c ? a.print : a.printErr)(h(e, 0)), (e.length = 0))
              : e.push(b);
          }));
        for (c = 0; c < d; c++) {
          for (var g = E[(p + 8 * c) >> 2], k = E[(p + (8 * c + 4)) >> 2], l = 0; l < k; l++)
            Z.printChar(b, W[g + l]);
          e += k;
        }
        return e;
      } catch (ya) {
        return ('undefined' !== typeof FS && ya instanceof FS.ErrnoError) || O(ya), -ya.errno;
      }
    }
    function ma(e, c) {
      ma.seen || (ma.seen = {});
      e in ma.seen || (a.dynCall_v(c), (ma.seen[e] = 1));
    }
    function na(a) {
      this.name = 'ExitStatus';
      this.message = 'Program terminated with exit(' + a + ')';
      this.status = a;
    }
    function wa(e) {
      function c() {
        if (!a.calledRun && ((a.calledRun = !0), !oa)) {
          La || ((La = !0), B(Ma));
          B(Na);
          if (a.onRuntimeInitialized) a.onRuntimeInitialized();
          if (a.postRun)
            for ('function' == typeof a.postRun && (a.postRun = [a.postRun]); a.postRun.length; )
              Oa.unshift(a.postRun.shift());
          B(Oa);
        }
      }
      if (!(0 < ea)) {
        if (a.preRun)
          for ('function' == typeof a.preRun && (a.preRun = [a.preRun]); a.preRun.length; )
            Pa.unshift(a.preRun.shift());
        B(Pa);
        0 < ea ||
          a.calledRun ||
          (a.setStatus
            ? (a.setStatus('Running...'),
              setTimeout(function () {
                setTimeout(function () {
                  a.setStatus('');
                }, 1);
                c();
              }, 1))
            : c());
      }
    }
    function O(e) {
      if (a.onAbort) a.onAbort(e);
      void 0 !== e ? (a.print(e), a.printErr(e), (e = JSON.stringify(e))) : (e = '');
      oa = !0;
      throw 'abort(' + e + '). Build with -s ASSERTIONS=1 for more info.';
    }
    function m() {}
    function t(a) {
      return (a || m).__cache__;
    }
    function T(a, c) {
      var b = t(c),
        e = b[a];
      if (e) return e;
      e = Object.create((c || m).prototype);
      e.ptr = a;
      return (b[a] = e);
    }
    function U(a) {
      if ('string' === typeof a) {
        for (var c = 0, b = 0; b < a.length; ++b) {
          var e = a.charCodeAt(b);
          55296 <= e && 57343 >= e && (e = (65536 + ((e & 1023) << 10)) | (a.charCodeAt(++b) & 1023));
          127 >= e
            ? ++c
            : (c =
                2047 >= e
                  ? c + 2
                  : 65535 >= e
                  ? c + 3
                  : 2097151 >= e
                  ? c + 4
                  : 67108863 >= e
                  ? c + 5
                  : c + 6);
        }
        c = Array(c + 1);
        b = 0;
        e = c.length;
        if (0 < e) {
          e = b + e - 1;
          for (var d = 0; d < a.length; ++d) {
            var f = a.charCodeAt(d);
            55296 <= f &&
              57343 >= f &&
              (f = (65536 + ((f & 1023) << 10)) | (a.charCodeAt(++d) & 1023));
            if (127 >= f) {
              if (b >= e) break;
              c[b++] = f;
            } else {
              if (2047 >= f) {
                if (b + 1 >= e) break;
                c[b++] = 192 | (f >> 6);
              } else {
                if (65535 >= f) {
                  if (b + 2 >= e) break;
                  c[b++] = 224 | (f >> 12);
                } else {
                  if (2097151 >= f) {
                    if (b + 3 >= e) break;
                    c[b++] = 240 | (f >> 18);
                  } else {
                    if (67108863 >= f) {
                      if (b + 4 >= e) break;
                      c[b++] = 248 | (f >> 24);
                    } else {
                      if (b + 5 >= e) break;
                      c[b++] = 252 | (f >> 30);
                      c[b++] = 128 | ((f >> 24) & 63);
                    }
                    c[b++] = 128 | ((f >> 18) & 63);
                  }
                  c[b++] = 128 | ((f >> 12) & 63);
                }
                c[b++] = 128 | ((f >> 6) & 63);
              }
              c[b++] = 128 | (f & 63);
            }
          }
          c[b] = 0;
        }
        a = l.alloc(c, ia);
        l.copy(c, ia, a);
      }
      return a;
    }
    function z() {
      throw 'cannot construct a Status, no constructor in IDL';
    }
    function F() {
      this.ptr = Wa();
      t(F)[this.ptr] = this;
    }
    function G() {
      this.ptr = Xa();
      t(G)[this.ptr] = this;
    }
    function H() {
      this.ptr = Ya();
      t(H)[this.ptr] = this;
    }
    function I() {
      this.ptr = Za();
      t(I)[this.ptr] = this;
    }
    function J() {
      this.ptr = $a();
      t(J)[this.ptr] = this;
    }
    function n() {
      this.ptr = ab();
      t(n)[this.ptr] = this;
    }
    function P() {
      this.ptr = bb();
      t(P)[this.ptr] = this;
    }
    function x() {
      this.ptr = cb();
      t(x)[this.ptr] = this;
    }
    function K() {
      this.ptr = db();
      t(K)[this.ptr] = this;
    }
    function q() {
      this.ptr = eb();
      t(q)[this.ptr] = this;
    }
    function L() {
      this.ptr = fb();
      t(L)[this.ptr] = this;
    }
    function M() {
      this.ptr = gb();
      t(M)[this.ptr] = this;
    }
    function V() {
      this.ptr = hb();
      t(V)[this.ptr] = this;
    }
    function Q() {
      this.ptr = ib();
      t(Q)[this.ptr] = this;
    }
    function g() {
      this.ptr = jb();
      t(g)[this.ptr] = this;
    }
    function C() {
      this.ptr = kb();
      t(C)[this.ptr] = this;
    }
    function X() {
      throw 'cannot construct a VoidPtr, no constructor in IDL';
    }
    function N() {
      this.ptr = lb();
      t(N)[this.ptr] = this;
    }
    function R() {
      this.ptr = mb();
      t(R)[this.ptr] = this;
    }
    d = d || {};
    var a = 'undefined' !== typeof d ? d : {},
      Qa = !1,
      Ra = !1;
    a.onRuntimeInitialized = function () {
      Qa = !0;
      if (Ra && 'function' === typeof a.onModuleLoaded) a.onModuleLoaded(a);
    };
    a.onModuleParsed = function () {
      Ra = !0;
      if (Qa && 'function' === typeof a.onModuleLoaded) a.onModuleLoaded(a);
    };
    a.isVersionSupported = function (a) {
      if ('string' !== typeof a) return !1;
      a = a.split('.');
      return 2 > a.length || 3 < a.length
        ? !1
        : 1 == a[0] && 0 <= a[1] && 3 >= a[1]
        ? !0
        : 0 != a[0] || 10 < a[1]
        ? !1
        : !0;
    };
    var pa = {},
      aa;
    for (aa in a) a.hasOwnProperty(aa) && (pa[aa] = a[aa]);
    a.arguments = [];
    a.thisProgram = './this.program';
    a.quit = function (a, c) {
      throw c;
    };
    a.preRun = [];
    a.postRun = [];
    var ja = !1,
      fa = !1,
      qa = !1,
      za = !1;
    if (a.ENVIRONMENT)
      if ('WEB' === a.ENVIRONMENT) ja = !0;
      else if ('WORKER' === a.ENVIRONMENT) fa = !0;
      else if ('NODE' === a.ENVIRONMENT) qa = !0;
      else if ('SHELL' === a.ENVIRONMENT) za = !0;
      else
        throw Error(
          "Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.",
        );
    else
      (ja = 'object' === typeof window),
        (fa = 'function' === typeof importScripts),
        (qa = 'object' === typeof process && 'function' === typeof require && !ja && !fa),
        (za = !ja && !qa && !fa);
    if (qa) {
      var Aa, Ba;
      a.read = function (a, c) {
        Aa || (Aa = require('fs'));
        Ba || (Ba = require('path'));
        a = Ba.normalize(a);
        a = Aa.readFileSync(a);
        return c ? a : a.toString();
      };
      a.readBinary = function (e) {
        e = a.read(e, !0);
        e.buffer || (e = new Uint8Array(e));
        f(e.buffer);
        return e;
      };
      1 < process.argv.length && (a.thisProgram = process.argv[1].replace(/\\/g, '/'));
      a.arguments = process.argv.slice(2);
      process.on('uncaughtException', function (a) {
        if (!(a instanceof na)) throw a;
      });
      process.on('unhandledRejection', function (a, c) {
        process.exit(1);
      });
      a.inspect = function () {
        return '[Emscripten Module object]';
      };
    } else if (za)
      'undefined' != typeof read &&
        (a.read = function (a) {
          return read(a);
        }),
        (a.readBinary = function (a) {
          if ('function' === typeof readbuffer) return new Uint8Array(readbuffer(a));
          a = read(a, 'binary');
          f('object' === typeof a);
          return a;
        }),
        'undefined' != typeof scriptArgs
          ? (a.arguments = scriptArgs)
          : 'undefined' != typeof arguments && (a.arguments = arguments),
        'function' === typeof quit &&
          (a.quit = function (a, c) {
            quit(a);
          });
    else if (ja || fa)
      (a.read = function (a) {
        var c = new XMLHttpRequest();
        c.open('GET', a, !1);
        c.send(null);
        return c.responseText;
      }),
        fa &&
          (a.readBinary = function (a) {
            var c = new XMLHttpRequest();
            c.open('GET', a, !1);
            c.responseType = 'arraybuffer';
            c.send(null);
            return new Uint8Array(c.response);
          }),
        (a.readAsync = function (a, c, b) {
          var e = new XMLHttpRequest();
          e.open('GET', a, !0);
          e.responseType = 'arraybuffer';
          e.onload = function () {
            200 == e.status || (0 == e.status && e.response) ? c(e.response) : b();
          };
          e.onerror = b;
          e.send(null);
        }),
        (a.setWindowTitle = function (a) {
          document.title = a;
        });
    a.print =
      'undefined' !== typeof console
        ? console.log.bind(console)
        : 'undefined' !== typeof print
        ? print
        : null;
    a.printErr =
      'undefined' !== typeof printErr
        ? printErr
        : ('undefined' !== typeof console && console.warn.bind(console)) || a.print;
    a.print = a.print;
    a.printErr = a.printErr;
    for (aa in pa) pa.hasOwnProperty(aa) && (a[aa] = pa[aa]);
    pa = void 0;
    var oa = 0,
      Ia = 'undefined' !== typeof TextDecoder ? new TextDecoder('utf8') : void 0;
    'undefined' !== typeof TextDecoder && new TextDecoder('utf-16le');
    var ia, W, Ja, E, ba, Ca, ta, ua, Da, ka;
    var Ea = (ba = Ca = ta = ua = Da = ka = 0);
    var Sa = !1;
    a.reallocBuffer ||
      (a.reallocBuffer = function (a) {
        try {
          if (ArrayBuffer.transfer) var c = ArrayBuffer.transfer(D, a);
          else {
            var b = ia;
            c = new ArrayBuffer(a);
            new Int8Array(c).set(b);
          }
        } catch (p) {
          return !1;
        }
        return nb(c) ? c : !1;
      });
    try {
      var Ta = Function.prototype.call.bind(
        Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get,
      );
      Ta(new ArrayBuffer(4));
    } catch (e) {
      Ta = function (a) {
        return a.byteLength;
      };
    }
    var Fa = a.TOTAL_STACK || 5242880,
      A = a.TOTAL_MEMORY || 16777216;
    A < Fa &&
      a.printErr(
        'TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + A + '! (TOTAL_STACK=' + Fa + ')',
      );
    if (a.buffer) var D = a.buffer;
    else
      'object' === typeof WebAssembly && 'function' === typeof WebAssembly.Memory
        ? ((a.wasmMemory = new WebAssembly.Memory({ initial: A / 65536 })), (D = a.wasmMemory.buffer))
        : (D = new ArrayBuffer(A)),
        (a.buffer = D);
    r();
    E[0] = 1668509029;
    Ja[1] = 25459;
    if (115 !== W[2] || 99 !== W[3]) throw 'Runtime error: expected the system to be little-endian!';
    var Pa = [],
      Ma = [],
      Na = [],
      ob = [],
      Oa = [],
      La = !1,
      ea = 0,
      Ga = null,
      ra = null;
    a.preloadedImages = {};
    a.preloadedAudios = {};
    (function () {
      function e() {
        try {
          if (a.wasmBinary) return new Uint8Array(a.wasmBinary);
          if (a.readBinary) return a.readBinary(f);
          throw "on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)";
        } catch (Va) {
          O(Va);
        }
      }
      function c() {
        return a.wasmBinary || (!ja && !fa) || 'function' !== typeof fetch
          ? new Promise(function (a, c) {
              a(e());
            })
          : fetch(f, { credentials: 'same-origin' })
              .then(function (a) {
                if (!a.ok) throw "failed to load wasm binary file at '" + f + "'";
                return a.arrayBuffer();
              })
              .catch(function () {
                return e();
              });
      }
      function b(b, e, d) {
        function p(c, b) {
          k = c.exports;
          k.memory &&
            ((c = k.memory),
            (b = a.buffer),
            c.byteLength < b.byteLength &&
              a.printErr(
                'the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here',
              ),
            (b = new Int8Array(b)),
            new Int8Array(c).set(b),
            (a.buffer = D = c),
            r());
          a.asm = k;
          a.usingWasm = !0;
          ea--;
          a.monitorRunDependencies && a.monitorRunDependencies(ea);
          0 == ea &&
            (null !== Ga && (clearInterval(Ga), (Ga = null)), ra && ((c = ra), (ra = null), c()));
        }
        function g(a) {
          p(a.instance, a.module);
        }
        function S(b) {
          c()
            .then(function (a) {
              return WebAssembly.instantiate(a, h);
            })
            .then(b)
            .catch(function (c) {
              a.printErr('failed to asynchronously prepare wasm: ' + c);
              O(c);
            });
        }
        if ('object' !== typeof WebAssembly) return a.printErr('no native wasm support detected'), !1;
        if (!(a.wasmMemory instanceof WebAssembly.Memory))
          return a.printErr('no native wasm Memory in use'), !1;
        e.memory = a.wasmMemory;
        h.global = { NaN: NaN, Infinity: Infinity };
        h['global.Math'] = Math;
        h.env = e;
        ea++;
        a.monitorRunDependencies && a.monitorRunDependencies(ea);
        if (a.instantiateWasm)
          try {
            return a.instantiateWasm(h, p);
          } catch (pb) {
            return a.printErr('Module.instantiateWasm callback failed with error: ' + pb), !1;
          }
        a.wasmBinary ||
        'function' !== typeof WebAssembly.instantiateStreaming ||
        Y(f) ||
        'function' !== typeof fetch
          ? S(g)
          : WebAssembly.instantiateStreaming(fetch(f, { credentials: 'same-origin' }), h)
              .then(g)
              .catch(function (c) {
                a.printErr('wasm streaming compile failed: ' + c);
                a.printErr('falling back to ArrayBuffer instantiation');
                S(g);
              });
        return {};
      }
      var d = 'draco_decoder.wast',
        f = 'draco_decoder.wasm',
        g = 'draco_decoder.temp.asm.js';
      'function' === typeof a.locateFile &&
        (Y(d) || (d = a.locateFile(d)), Y(f) || (f = a.locateFile(f)), Y(g) || (g = a.locateFile(g)));
      var h = {
          global: null,
          env: null,
          asm2wasm: {
            'f64-rem': function (a, c) {
              return a % c;
            },
            debugger: function () {
              debugger;
            },
          },
          parent: a,
        },
        k = null;
      a.asmPreload = a.asm;
      var l = a.reallocBuffer;
      a.reallocBuffer = function (c) {
        if ('asmjs' === m) var b = l(c);
        else
          a: {
            c = ha(c, a.usingWasm ? 65536 : 16777216);
            var e = a.buffer.byteLength;
            if (a.usingWasm)
              try {
                b =
                  -1 !== a.wasmMemory.grow((c - e) / 65536) ? (a.buffer = a.wasmMemory.buffer) : null;
                break a;
              } catch (ud) {
                b = null;
                break a;
              }
            b = void 0;
          }
        return b;
      };
      var m = '';
      a.asm = function (c, e, d) {
        if (!e.table) {
          var p = a.wasmTableSize;
          void 0 === p && (p = 1024);
          var f = a.wasmMaxTableSize;
          e.table =
            'object' === typeof WebAssembly && 'function' === typeof WebAssembly.Table
              ? void 0 !== f
                ? new WebAssembly.Table({ initial: p, maximum: f, element: 'anyfunc' })
                : new WebAssembly.Table({ initial: p, element: 'anyfunc' })
              : Array(p);
          a.wasmTable = e.table;
        }
        e.memoryBase || (e.memoryBase = a.STATIC_BASE);
        e.tableBase || (e.tableBase = 0);
        (c = b(c, e, d)) ||
          O(
            'no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods',
          );
        return c;
      };
    })();
    Ea = 1024;
    ba = Ea + 14480;
    Ma.push();
    a.STATIC_BASE = Ea;
    a.STATIC_BUMP = 14480;
    var qb = ba;
    ba += 16;
    var y = {
        last: 0,
        caught: [],
        infos: {},
        deAdjust: function (a) {
          if (!a || y.infos[a]) return a;
          for (var c in y.infos) if (y.infos[c].adjusted === a) return c;
          return a;
        },
        addRef: function (a) {
          a && y.infos[a].refcount++;
        },
        decRef: function (e) {
          if (e) {
            var c = y.infos[e];
            f(0 < c.refcount);
            c.refcount--;
            0 !== c.refcount ||
              c.rethrown ||
              (c.destructor && a.dynCall_vi(c.destructor, e),
              delete y.infos[e],
              ___cxa_free_exception(e));
          }
        },
        clearRef: function (a) {
          a && (y.infos[a].refcount = 0);
        },
      },
      w = {
        varargs: 0,
        get: function (a) {
          w.varargs += 4;
          return E[(w.varargs - 4) >> 2];
        },
        getStr: function () {
          return u(w.get());
        },
        get64: function () {
          var a = w.get(),
            c = w.get();
          0 <= a ? f(0 === c) : f(-1 === c);
          return a;
        },
        getZero: function () {
          f(0 === w.get());
        },
      },
      va = {},
      Ha = 1;
    ka = (function (a) {
      f(!Sa);
      var c = ba;
      ba = (ba + a + 15) & -16;
      return c;
    })(4);
    Ca = ta = k(ba);
    ua = Ca + Fa;
    Da = k(ua);
    E[ka >> 2] = Da;
    Sa = !0;
    a.wasmTableSize = 468;
    a.wasmMaxTableSize = 468;
    a.asmGlobalArg = {};
    a.asmLibraryArg = {
      abort: O,
      assert: f,
      enlargeMemory: function () {
        var e = a.usingWasm ? 65536 : 16777216,
          c = 2147483648 - e;
        if (E[ka >> 2] > c) return !1;
        var b = A;
        for (A = Math.max(A, 16777216); A < E[ka >> 2]; )
          A = 536870912 >= A ? ha(2 * A, e) : Math.min(ha((3 * A + 2147483648) / 4, e), c);
        e = a.reallocBuffer(A);
        if (!e || e.byteLength != A) return (A = b), !1;
        a.buffer = D = e;
        r();
        return !0;
      },
      getTotalMemory: function () {
        return A;
      },
      abortOnCannotGrowMemory: function () {
        O(
          'Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value ' +
            A +
            ', (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ',
        );
      },
      invoke_ii: function (e, c) {
        try {
          return a.dynCall_ii(e, c);
        } catch (b) {
          if ('number' !== typeof b && 'longjmp' !== b) throw b;
          a.setThrew(1, 0);
        }
      },
      invoke_iii: function (e, c, b) {
        try {
          return a.dynCall_iii(e, c, b);
        } catch (p) {
          if ('number' !== typeof p && 'longjmp' !== p) throw p;
          a.setThrew(1, 0);
        }
      },
      invoke_iiii: function (e, c, b, d) {
        try {
          return a.dynCall_iiii(e, c, b, d);
        } catch (S) {
          if ('number' !== typeof S && 'longjmp' !== S) throw S;
          a.setThrew(1, 0);
        }
      },
      invoke_iiiiiii: function (e, c, b, d, f, g, h) {
        try {
          return a.dynCall_iiiiiii(e, c, b, d, f, g, h);
        } catch (da) {
          if ('number' !== typeof da && 'longjmp' !== da) throw da;
          a.setThrew(1, 0);
        }
      },
      invoke_v: function (e) {
        try {
          a.dynCall_v(e);
        } catch (c) {
          if ('number' !== typeof c && 'longjmp' !== c) throw c;
          a.setThrew(1, 0);
        }
      },
      invoke_vi: function (e, c) {
        try {
          a.dynCall_vi(e, c);
        } catch (b) {
          if ('number' !== typeof b && 'longjmp' !== b) throw b;
          a.setThrew(1, 0);
        }
      },
      invoke_vii: function (e, c, b) {
        try {
          a.dynCall_vii(e, c, b);
        } catch (p) {
          if ('number' !== typeof p && 'longjmp' !== p) throw p;
          a.setThrew(1, 0);
        }
      },
      invoke_viii: function (e, c, b, d) {
        try {
          a.dynCall_viii(e, c, b, d);
        } catch (S) {
          if ('number' !== typeof S && 'longjmp' !== S) throw S;
          a.setThrew(1, 0);
        }
      },
      invoke_viiii: function (e, c, b, d, f) {
        try {
          a.dynCall_viiii(e, c, b, d, f);
        } catch (xa) {
          if ('number' !== typeof xa && 'longjmp' !== xa) throw xa;
          a.setThrew(1, 0);
        }
      },
      invoke_viiiii: function (e, c, b, d, f, g) {
        try {
          a.dynCall_viiiii(e, c, b, d, f, g);
        } catch (ca) {
          if ('number' !== typeof ca && 'longjmp' !== ca) throw ca;
          a.setThrew(1, 0);
        }
      },
      invoke_viiiiii: function (e, c, b, d, f, g, h) {
        try {
          a.dynCall_viiiiii(e, c, b, d, f, g, h);
        } catch (da) {
          if ('number' !== typeof da && 'longjmp' !== da) throw da;
          a.setThrew(1, 0);
        }
      },
      __ZSt18uncaught_exceptionv: v,
      ___cxa_allocate_exception: function (a) {
        return Ka(a);
      },
      ___cxa_begin_catch: function (a) {
        var c = y.infos[a];
        c && !c.caught && ((c.caught = !0), v.uncaught_exception--);
        c && (c.rethrown = !1);
        y.caught.push(a);
        y.addRef(y.deAdjust(a));
        return a;
      },
      ___cxa_find_matching_catch: la,
      ___cxa_pure_virtual: function () {
        oa = !0;
        throw 'Pure virtual function called!';
      },
      ___cxa_throw: function (a, c, b) {
        y.infos[a] = {
          ptr: a,
          adjusted: a,
          type: c,
          destructor: b,
          refcount: 0,
          caught: !1,
          rethrown: !1,
        };
        y.last = a;
        'uncaught_exception' in v ? v.uncaught_exception++ : (v.uncaught_exception = 1);
        throw (
          a +
          ' - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.'
        );
      },
      ___gxx_personality_v0: function () {},
      ___resumeException: function (a) {
        y.last || (y.last = a);
        throw (
          a +
          ' - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.'
        );
      },
      ___setErrNo: function (d) {
        a.___errno_location && (E[a.___errno_location() >> 2] = d);
        return d;
      },
      ___syscall140: function (a, c) {
        w.varargs = c;
        try {
          var b = w.getStreamFromFD();
          w.get();
          var d = w.get(),
            e = w.get(),
            f = w.get();
          FS.llseek(b, d, f);
          E[e >> 2] = b.position;
          b.getdents && 0 === d && 0 === f && (b.getdents = null);
          return 0;
        } catch (ca) {
          return ('undefined' !== typeof FS && ca instanceof FS.ErrnoError) || O(ca), -ca.errno;
        }
      },
      ___syscall146: Z,
      ___syscall6: function (a, c) {
        w.varargs = c;
        try {
          var b = w.getStreamFromFD();
          FS.close(b);
          return 0;
        } catch (p) {
          return ('undefined' !== typeof FS && p instanceof FS.ErrnoError) || O(p), -p.errno;
        }
      },
      _abort: function () {
        a.abort();
      },
      _emscripten_memcpy_big: function (a, c, b) {
        W.set(W.subarray(c, c + b), a);
        return a;
      },
      _llvm_trap: function () {
        O('trap!');
      },
      _pthread_getspecific: function (a) {
        return va[a] || 0;
      },
      _pthread_key_create: function (a, c) {
        if (0 == a) return 22;
        E[a >> 2] = Ha;
        va[Ha] = 0;
        Ha++;
        return 0;
      },
      _pthread_once: ma,
      _pthread_setspecific: function (a, c) {
        if (!(a in va)) return 22;
        va[a] = c;
        return 0;
      },
      flush_NO_FILESYSTEM: function () {
        var d = a._fflush;
        d && d(0);
        if ((d = Z.printChar)) {
          var c = Z.buffers;
          c[1].length && d(1, 10);
          c[2].length && d(2, 10);
        }
      },
      DYNAMICTOP_PTR: ka,
      tempDoublePtr: qb,
      ABORT: oa,
      STACKTOP: ta,
      STACK_MAX: ua,
    };
    var Ua = a.asm(a.asmGlobalArg, a.asmLibraryArg, D);
    a.asm = Ua;
    a.___cxa_can_catch = function () {
      return a.asm.___cxa_can_catch.apply(null, arguments);
    };
    a.___cxa_is_pointer_type = function () {
      return a.asm.___cxa_is_pointer_type.apply(null, arguments);
    };
    var $a = (a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 =
        function () {
          return a.asm._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0.apply(
            null,
            arguments,
          );
        }),
      rb = (a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 = function () {
        return a.asm._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1.apply(
          null,
          arguments,
        );
      }),
      sb = (a._emscripten_bind_AttributeOctahedronTransform___destroy___0 = function () {
        return a.asm._emscripten_bind_AttributeOctahedronTransform___destroy___0.apply(
          null,
          arguments,
        );
      }),
      tb = (a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 = function () {
        return a.asm._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0.apply(
          null,
          arguments,
        );
      }),
      cb = (a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 =
        function () {
          return a.asm._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0.apply(
            null,
            arguments,
          );
        }),
      ub = (a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 = function () {
        return a.asm._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1.apply(
          null,
          arguments,
        );
      }),
      vb = (a._emscripten_bind_AttributeQuantizationTransform___destroy___0 = function () {
        return a.asm._emscripten_bind_AttributeQuantizationTransform___destroy___0.apply(
          null,
          arguments,
        );
      }),
      wb = (a._emscripten_bind_AttributeQuantizationTransform_min_value_1 = function () {
        return a.asm._emscripten_bind_AttributeQuantizationTransform_min_value_1.apply(
          null,
          arguments,
        );
      }),
      xb = (a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 = function () {
        return a.asm._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0.apply(
          null,
          arguments,
        );
      }),
      yb = (a._emscripten_bind_AttributeQuantizationTransform_range_0 = function () {
        return a.asm._emscripten_bind_AttributeQuantizationTransform_range_0.apply(null, arguments);
      }),
      bb = (a._emscripten_bind_AttributeTransformData_AttributeTransformData_0 = function () {
        return a.asm._emscripten_bind_AttributeTransformData_AttributeTransformData_0.apply(
          null,
          arguments,
        );
      }),
      zb = (a._emscripten_bind_AttributeTransformData___destroy___0 = function () {
        return a.asm._emscripten_bind_AttributeTransformData___destroy___0.apply(null, arguments);
      }),
      Ab = (a._emscripten_bind_AttributeTransformData_transform_type_0 = function () {
        return a.asm._emscripten_bind_AttributeTransformData_transform_type_0.apply(null, arguments);
      }),
      ib = (a._emscripten_bind_DecoderBuffer_DecoderBuffer_0 = function () {
        return a.asm._emscripten_bind_DecoderBuffer_DecoderBuffer_0.apply(null, arguments);
      }),
      Bb = (a._emscripten_bind_DecoderBuffer_Init_2 = function () {
        return a.asm._emscripten_bind_DecoderBuffer_Init_2.apply(null, arguments);
      }),
      Cb = (a._emscripten_bind_DecoderBuffer___destroy___0 = function () {
        return a.asm._emscripten_bind_DecoderBuffer___destroy___0.apply(null, arguments);
      }),
      Db = (a._emscripten_bind_Decoder_DecodeBufferToMesh_2 = function () {
        return a.asm._emscripten_bind_Decoder_DecodeBufferToMesh_2.apply(null, arguments);
      }),
      Eb = (a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2 = function () {
        return a.asm._emscripten_bind_Decoder_DecodeBufferToPointCloud_2.apply(null, arguments);
      }),
      jb = (a._emscripten_bind_Decoder_Decoder_0 = function () {
        return a.asm._emscripten_bind_Decoder_Decoder_0.apply(null, arguments);
      }),
      Fb = (a._emscripten_bind_Decoder_GetAttributeByUniqueId_2 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeByUniqueId_2.apply(null, arguments);
      }),
      Gb = (a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3.apply(null, arguments);
      }),
      Hb = (a._emscripten_bind_Decoder_GetAttributeFloat_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeFloat_3.apply(null, arguments);
      }),
      Ib = (a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3.apply(null, arguments);
      }),
      Jb = (a._emscripten_bind_Decoder_GetAttributeIdByName_2 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeIdByName_2.apply(null, arguments);
      }),
      Kb = (a._emscripten_bind_Decoder_GetAttributeId_2 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeId_2.apply(null, arguments);
      }),
      Lb = (a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3.apply(null, arguments);
      }),
      Mb = (a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3.apply(null, arguments);
      }),
      Nb = (a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3.apply(null, arguments);
      }),
      Ob = (a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3.apply(null, arguments);
      }),
      Pb = (a._emscripten_bind_Decoder_GetAttributeMetadata_2 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeMetadata_2.apply(null, arguments);
      }),
      Qb = (a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3.apply(null, arguments);
      }),
      Rb = (a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3.apply(null, arguments);
      }),
      Sb = (a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3.apply(null, arguments);
      }),
      Tb = (a._emscripten_bind_Decoder_GetAttribute_2 = function () {
        return a.asm._emscripten_bind_Decoder_GetAttribute_2.apply(null, arguments);
      }),
      Ub = (a._emscripten_bind_Decoder_GetEncodedGeometryType_1 = function () {
        return a.asm._emscripten_bind_Decoder_GetEncodedGeometryType_1.apply(null, arguments);
      }),
      Vb = (a._emscripten_bind_Decoder_GetFaceFromMesh_3 = function () {
        return a.asm._emscripten_bind_Decoder_GetFaceFromMesh_3.apply(null, arguments);
      }),
      Wb = (a._emscripten_bind_Decoder_GetMetadata_1 = function () {
        return a.asm._emscripten_bind_Decoder_GetMetadata_1.apply(null, arguments);
      }),
      Xb = (a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 = function () {
        return a.asm._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2.apply(null, arguments);
      }),
      Yb = (a._emscripten_bind_Decoder_SkipAttributeTransform_1 = function () {
        return a.asm._emscripten_bind_Decoder_SkipAttributeTransform_1.apply(null, arguments);
      }),
      Zb = (a._emscripten_bind_Decoder___destroy___0 = function () {
        return a.asm._emscripten_bind_Decoder___destroy___0.apply(null, arguments);
      }),
      gb = (a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 = function () {
        return a.asm._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0.apply(null, arguments);
      }),
      $b = (a._emscripten_bind_DracoFloat32Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoFloat32Array_GetValue_1.apply(null, arguments);
      }),
      ac = (a._emscripten_bind_DracoFloat32Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoFloat32Array___destroy___0.apply(null, arguments);
      }),
      bc = (a._emscripten_bind_DracoFloat32Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoFloat32Array_size_0.apply(null, arguments);
      }),
      fb = (a._emscripten_bind_DracoInt16Array_DracoInt16Array_0 = function () {
        return a.asm._emscripten_bind_DracoInt16Array_DracoInt16Array_0.apply(null, arguments);
      }),
      cc = (a._emscripten_bind_DracoInt16Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoInt16Array_GetValue_1.apply(null, arguments);
      }),
      dc = (a._emscripten_bind_DracoInt16Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoInt16Array___destroy___0.apply(null, arguments);
      }),
      ec = (a._emscripten_bind_DracoInt16Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoInt16Array_size_0.apply(null, arguments);
      }),
      lb = (a._emscripten_bind_DracoInt32Array_DracoInt32Array_0 = function () {
        return a.asm._emscripten_bind_DracoInt32Array_DracoInt32Array_0.apply(null, arguments);
      }),
      fc = (a._emscripten_bind_DracoInt32Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoInt32Array_GetValue_1.apply(null, arguments);
      }),
      gc = (a._emscripten_bind_DracoInt32Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoInt32Array___destroy___0.apply(null, arguments);
      }),
      hc = (a._emscripten_bind_DracoInt32Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoInt32Array_size_0.apply(null, arguments);
      }),
      db = (a._emscripten_bind_DracoInt8Array_DracoInt8Array_0 = function () {
        return a.asm._emscripten_bind_DracoInt8Array_DracoInt8Array_0.apply(null, arguments);
      }),
      ic = (a._emscripten_bind_DracoInt8Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoInt8Array_GetValue_1.apply(null, arguments);
      }),
      jc = (a._emscripten_bind_DracoInt8Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoInt8Array___destroy___0.apply(null, arguments);
      }),
      kc = (a._emscripten_bind_DracoInt8Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoInt8Array_size_0.apply(null, arguments);
      }),
      Wa = (a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 = function () {
        return a.asm._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0.apply(null, arguments);
      }),
      lc = (a._emscripten_bind_DracoUInt16Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoUInt16Array_GetValue_1.apply(null, arguments);
      }),
      mc = (a._emscripten_bind_DracoUInt16Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoUInt16Array___destroy___0.apply(null, arguments);
      }),
      nc = (a._emscripten_bind_DracoUInt16Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoUInt16Array_size_0.apply(null, arguments);
      }),
      Za = (a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 = function () {
        return a.asm._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0.apply(null, arguments);
      }),
      oc = (a._emscripten_bind_DracoUInt32Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoUInt32Array_GetValue_1.apply(null, arguments);
      }),
      pc = (a._emscripten_bind_DracoUInt32Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoUInt32Array___destroy___0.apply(null, arguments);
      }),
      qc = (a._emscripten_bind_DracoUInt32Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoUInt32Array_size_0.apply(null, arguments);
      }),
      Ya = (a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 = function () {
        return a.asm._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0.apply(null, arguments);
      }),
      rc = (a._emscripten_bind_DracoUInt8Array_GetValue_1 = function () {
        return a.asm._emscripten_bind_DracoUInt8Array_GetValue_1.apply(null, arguments);
      }),
      sc = (a._emscripten_bind_DracoUInt8Array___destroy___0 = function () {
        return a.asm._emscripten_bind_DracoUInt8Array___destroy___0.apply(null, arguments);
      }),
      tc = (a._emscripten_bind_DracoUInt8Array_size_0 = function () {
        return a.asm._emscripten_bind_DracoUInt8Array_size_0.apply(null, arguments);
      }),
      hb = (a._emscripten_bind_GeometryAttribute_GeometryAttribute_0 = function () {
        return a.asm._emscripten_bind_GeometryAttribute_GeometryAttribute_0.apply(null, arguments);
      }),
      uc = (a._emscripten_bind_GeometryAttribute___destroy___0 = function () {
        return a.asm._emscripten_bind_GeometryAttribute___destroy___0.apply(null, arguments);
      }),
      kb = (a._emscripten_bind_Mesh_Mesh_0 = function () {
        return a.asm._emscripten_bind_Mesh_Mesh_0.apply(null, arguments);
      }),
      vc = (a._emscripten_bind_Mesh___destroy___0 = function () {
        return a.asm._emscripten_bind_Mesh___destroy___0.apply(null, arguments);
      }),
      wc = (a._emscripten_bind_Mesh_num_attributes_0 = function () {
        return a.asm._emscripten_bind_Mesh_num_attributes_0.apply(null, arguments);
      }),
      xc = (a._emscripten_bind_Mesh_num_faces_0 = function () {
        return a.asm._emscripten_bind_Mesh_num_faces_0.apply(null, arguments);
      }),
      yc = (a._emscripten_bind_Mesh_num_points_0 = function () {
        return a.asm._emscripten_bind_Mesh_num_points_0.apply(null, arguments);
      }),
      zc = (a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_GetDoubleEntry_2.apply(null, arguments);
      }),
      Ac = (a._emscripten_bind_MetadataQuerier_GetEntryName_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_GetEntryName_2.apply(null, arguments);
      }),
      Bc = (a._emscripten_bind_MetadataQuerier_GetIntEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_GetIntEntry_2.apply(null, arguments);
      }),
      Cc = (a._emscripten_bind_MetadataQuerier_GetStringEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_GetStringEntry_2.apply(null, arguments);
      }),
      Dc = (a._emscripten_bind_MetadataQuerier_HasDoubleEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_HasDoubleEntry_2.apply(null, arguments);
      }),
      Ec = (a._emscripten_bind_MetadataQuerier_HasEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_HasEntry_2.apply(null, arguments);
      }),
      Fc = (a._emscripten_bind_MetadataQuerier_HasIntEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_HasIntEntry_2.apply(null, arguments);
      }),
      Gc = (a._emscripten_bind_MetadataQuerier_HasStringEntry_2 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_HasStringEntry_2.apply(null, arguments);
      }),
      eb = (a._emscripten_bind_MetadataQuerier_MetadataQuerier_0 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_MetadataQuerier_0.apply(null, arguments);
      }),
      Hc = (a._emscripten_bind_MetadataQuerier_NumEntries_1 = function () {
        return a.asm._emscripten_bind_MetadataQuerier_NumEntries_1.apply(null, arguments);
      }),
      Ic = (a._emscripten_bind_MetadataQuerier___destroy___0 = function () {
        return a.asm._emscripten_bind_MetadataQuerier___destroy___0.apply(null, arguments);
      }),
      mb = (a._emscripten_bind_Metadata_Metadata_0 = function () {
        return a.asm._emscripten_bind_Metadata_Metadata_0.apply(null, arguments);
      }),
      Jc = (a._emscripten_bind_Metadata___destroy___0 = function () {
        return a.asm._emscripten_bind_Metadata___destroy___0.apply(null, arguments);
      }),
      Kc = (a._emscripten_bind_PointAttribute_GetAttributeTransformData_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_GetAttributeTransformData_0.apply(
          null,
          arguments,
        );
      }),
      ab = (a._emscripten_bind_PointAttribute_PointAttribute_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_PointAttribute_0.apply(null, arguments);
      }),
      Lc = (a._emscripten_bind_PointAttribute___destroy___0 = function () {
        return a.asm._emscripten_bind_PointAttribute___destroy___0.apply(null, arguments);
      }),
      Mc = (a._emscripten_bind_PointAttribute_attribute_type_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_attribute_type_0.apply(null, arguments);
      }),
      Nc = (a._emscripten_bind_PointAttribute_byte_offset_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_byte_offset_0.apply(null, arguments);
      }),
      Oc = (a._emscripten_bind_PointAttribute_byte_stride_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_byte_stride_0.apply(null, arguments);
      }),
      Pc = (a._emscripten_bind_PointAttribute_data_type_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_data_type_0.apply(null, arguments);
      }),
      Qc = (a._emscripten_bind_PointAttribute_normalized_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_normalized_0.apply(null, arguments);
      }),
      Rc = (a._emscripten_bind_PointAttribute_num_components_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_num_components_0.apply(null, arguments);
      }),
      Sc = (a._emscripten_bind_PointAttribute_size_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_size_0.apply(null, arguments);
      }),
      Tc = (a._emscripten_bind_PointAttribute_unique_id_0 = function () {
        return a.asm._emscripten_bind_PointAttribute_unique_id_0.apply(null, arguments);
      }),
      Xa = (a._emscripten_bind_PointCloud_PointCloud_0 = function () {
        return a.asm._emscripten_bind_PointCloud_PointCloud_0.apply(null, arguments);
      }),
      Uc = (a._emscripten_bind_PointCloud___destroy___0 = function () {
        return a.asm._emscripten_bind_PointCloud___destroy___0.apply(null, arguments);
      }),
      Vc = (a._emscripten_bind_PointCloud_num_attributes_0 = function () {
        return a.asm._emscripten_bind_PointCloud_num_attributes_0.apply(null, arguments);
      }),
      Wc = (a._emscripten_bind_PointCloud_num_points_0 = function () {
        return a.asm._emscripten_bind_PointCloud_num_points_0.apply(null, arguments);
      }),
      Xc = (a._emscripten_bind_Status___destroy___0 = function () {
        return a.asm._emscripten_bind_Status___destroy___0.apply(null, arguments);
      }),
      Yc = (a._emscripten_bind_Status_code_0 = function () {
        return a.asm._emscripten_bind_Status_code_0.apply(null, arguments);
      }),
      Zc = (a._emscripten_bind_Status_error_msg_0 = function () {
        return a.asm._emscripten_bind_Status_error_msg_0.apply(null, arguments);
      }),
      $c = (a._emscripten_bind_Status_ok_0 = function () {
        return a.asm._emscripten_bind_Status_ok_0.apply(null, arguments);
      }),
      ad = (a._emscripten_bind_VoidPtr___destroy___0 = function () {
        return a.asm._emscripten_bind_VoidPtr___destroy___0.apply(null, arguments);
      }),
      bd = (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM =
        function () {
          return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM.apply(
            null,
            arguments,
          );
        }),
      cd = (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM = function () {
        return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM.apply(
          null,
          arguments,
        );
      }),
      dd = (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM =
        function () {
          return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM.apply(
            null,
            arguments,
          );
        }),
      ed = (a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM =
        function () {
          return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM.apply(
            null,
            arguments,
          );
        }),
      fd = (a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE = function () {
        return a.asm._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE.apply(
          null,
          arguments,
        );
      }),
      gd = (a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD = function () {
        return a.asm._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD.apply(null, arguments);
      }),
      hd = (a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH = function () {
        return a.asm._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH.apply(
          null,
          arguments,
        );
      }),
      id = (a._emscripten_enum_draco_GeometryAttribute_Type_COLOR = function () {
        return a.asm._emscripten_enum_draco_GeometryAttribute_Type_COLOR.apply(null, arguments);
      }),
      jd = (a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC = function () {
        return a.asm._emscripten_enum_draco_GeometryAttribute_Type_GENERIC.apply(null, arguments);
      }),
      kd = (a._emscripten_enum_draco_GeometryAttribute_Type_INVALID = function () {
        return a.asm._emscripten_enum_draco_GeometryAttribute_Type_INVALID.apply(null, arguments);
      }),
      ld = (a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL = function () {
        return a.asm._emscripten_enum_draco_GeometryAttribute_Type_NORMAL.apply(null, arguments);
      }),
      md = (a._emscripten_enum_draco_GeometryAttribute_Type_POSITION = function () {
        return a.asm._emscripten_enum_draco_GeometryAttribute_Type_POSITION.apply(null, arguments);
      }),
      nd = (a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD = function () {
        return a.asm._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD.apply(null, arguments);
      }),
      od = (a._emscripten_enum_draco_StatusCode_ERROR = function () {
        return a.asm._emscripten_enum_draco_StatusCode_ERROR.apply(null, arguments);
      }),
      pd = (a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER = function () {
        return a.asm._emscripten_enum_draco_StatusCode_INVALID_PARAMETER.apply(null, arguments);
      }),
      qd = (a._emscripten_enum_draco_StatusCode_IO_ERROR = function () {
        return a.asm._emscripten_enum_draco_StatusCode_IO_ERROR.apply(null, arguments);
      }),
      rd = (a._emscripten_enum_draco_StatusCode_OK = function () {
        return a.asm._emscripten_enum_draco_StatusCode_OK.apply(null, arguments);
      }),
      sd = (a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION = function () {
        return a.asm._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION.apply(null, arguments);
      }),
      td = (a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION = function () {
        return a.asm._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION.apply(null, arguments);
      }),
      nb = (a._emscripten_replace_memory = function () {
        return a.asm._emscripten_replace_memory.apply(null, arguments);
      });
    a._free = function () {
      return a.asm._free.apply(null, arguments);
    };
    a._llvm_bswap_i32 = function () {
      return a.asm._llvm_bswap_i32.apply(null, arguments);
    };
    var Ka = (a._malloc = function () {
      return a.asm._malloc.apply(null, arguments);
    });
    a._memcpy = function () {
      return a.asm._memcpy.apply(null, arguments);
    };
    a._memmove = function () {
      return a.asm._memmove.apply(null, arguments);
    };
    a._memset = function () {
      return a.asm._memset.apply(null, arguments);
    };
    a._sbrk = function () {
      return a.asm._sbrk.apply(null, arguments);
    };
    a.establishStackSpace = function () {
      return a.asm.establishStackSpace.apply(null, arguments);
    };
    a.getTempRet0 = function () {
      return a.asm.getTempRet0.apply(null, arguments);
    };
    a.runPostSets = function () {
      return a.asm.runPostSets.apply(null, arguments);
    };
    var sa = (a.setTempRet0 = function () {
      return a.asm.setTempRet0.apply(null, arguments);
    });
    a.setThrew = function () {
      return a.asm.setThrew.apply(null, arguments);
    };
    a.stackAlloc = function () {
      return a.asm.stackAlloc.apply(null, arguments);
    };
    a.stackRestore = function () {
      return a.asm.stackRestore.apply(null, arguments);
    };
    a.stackSave = function () {
      return a.asm.stackSave.apply(null, arguments);
    };
    a.dynCall_ii = function () {
      return a.asm.dynCall_ii.apply(null, arguments);
    };
    a.dynCall_iii = function () {
      return a.asm.dynCall_iii.apply(null, arguments);
    };
    a.dynCall_iiii = function () {
      return a.asm.dynCall_iiii.apply(null, arguments);
    };
    a.dynCall_iiiiiii = function () {
      return a.asm.dynCall_iiiiiii.apply(null, arguments);
    };
    a.dynCall_v = function () {
      return a.asm.dynCall_v.apply(null, arguments);
    };
    a.dynCall_vi = function () {
      return a.asm.dynCall_vi.apply(null, arguments);
    };
    a.dynCall_vii = function () {
      return a.asm.dynCall_vii.apply(null, arguments);
    };
    a.dynCall_viii = function () {
      return a.asm.dynCall_viii.apply(null, arguments);
    };
    a.dynCall_viiii = function () {
      return a.asm.dynCall_viiii.apply(null, arguments);
    };
    a.dynCall_viiiii = function () {
      return a.asm.dynCall_viiiii.apply(null, arguments);
    };
    a.dynCall_viiiiii = function () {
      return a.asm.dynCall_viiiiii.apply(null, arguments);
    };
    a.asm = Ua;
    a.then = function (d) {
      if (a.calledRun) d(a);
      else {
        var c = a.onRuntimeInitialized;
        a.onRuntimeInitialized = function () {
          c && c();
          d(a);
        };
      }
      return a;
    };
    na.prototype = Error();
    na.prototype.constructor = na;
    ra = function c() {
      a.calledRun || wa();
      a.calledRun || (ra = c);
    };
    a.run = wa;
    a.exit = function (c, b) {
      if (!b || !a.noExitRuntime || 0 !== c) {
        if (!a.noExitRuntime && ((oa = !0), (ta = void 0), B(ob), a.onExit)) a.onExit(c);
        qa && process.exit(c);
        a.quit(c, new na(c));
      }
    };
    a.abort = O;
    if (a.preInit)
      for ('function' == typeof a.preInit && (a.preInit = [a.preInit]); 0 < a.preInit.length; )
        a.preInit.pop()();
    a.noExitRuntime = !0;
    wa();
    m.prototype = Object.create(m.prototype);
    m.prototype.constructor = m;
    m.prototype.__class__ = m;
    m.__cache__ = {};
    a.WrapperObject = m;
    a.getCache = t;
    a.wrapPointer = T;
    a.castObject = function (a, b) {
      return T(a.ptr, b);
    };
    a.NULL = T(0);
    a.destroy = function (a) {
      if (!a.__destroy__) throw 'Error: Cannot destroy object. (Did you create it yourself?)';
      a.__destroy__();
      delete t(a.__class__)[a.ptr];
    };
    a.compare = function (a, b) {
      return a.ptr === b.ptr;
    };
    a.getPointer = function (a) {
      return a.ptr;
    };
    a.getClass = function (a) {
      return a.__class__;
    };
    var l = {
      buffer: 0,
      size: 0,
      pos: 0,
      temps: [],
      needed: 0,
      prepare: function () {
        if (l.needed) {
          for (var c = 0; c < l.temps.length; c++) a._free(l.temps[c]);
          l.temps.length = 0;
          a._free(l.buffer);
          l.buffer = 0;
          l.size += l.needed;
          l.needed = 0;
        }
        l.buffer || ((l.size += 128), (l.buffer = a._malloc(l.size)), f(l.buffer));
        l.pos = 0;
      },
      alloc: function (c, b) {
        f(l.buffer);
        c = c.length * b.BYTES_PER_ELEMENT;
        c = (c + 7) & -8;
        l.pos + c >= l.size
          ? (f(0 < c), (l.needed += c), (b = a._malloc(c)), l.temps.push(b))
          : ((b = l.buffer + l.pos), (l.pos += c));
        return b;
      },
      copy: function (a, b, d) {
        switch (b.BYTES_PER_ELEMENT) {
          case 2:
            d >>= 1;
            break;
          case 4:
            d >>= 2;
            break;
          case 8:
            d >>= 3;
        }
        for (var c = 0; c < a.length; c++) b[d + c] = a[c];
      },
    };
    z.prototype = Object.create(m.prototype);
    z.prototype.constructor = z;
    z.prototype.__class__ = z;
    z.__cache__ = {};
    a.Status = z;
    z.prototype.code = z.prototype.code = function () {
      return Yc(this.ptr);
    };
    z.prototype.ok = z.prototype.ok = function () {
      return !!$c(this.ptr);
    };
    z.prototype.error_msg = z.prototype.error_msg = function () {
      return u(Zc(this.ptr));
    };
    z.prototype.__destroy__ = z.prototype.__destroy__ = function () {
      Xc(this.ptr);
    };
    F.prototype = Object.create(m.prototype);
    F.prototype.constructor = F;
    F.prototype.__class__ = F;
    F.__cache__ = {};
    a.DracoUInt16Array = F;
    F.prototype.GetValue = F.prototype.GetValue = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return lc(c, a);
    };
    F.prototype.size = F.prototype.size = function () {
      return nc(this.ptr);
    };
    F.prototype.__destroy__ = F.prototype.__destroy__ = function () {
      mc(this.ptr);
    };
    G.prototype = Object.create(m.prototype);
    G.prototype.constructor = G;
    G.prototype.__class__ = G;
    G.__cache__ = {};
    a.PointCloud = G;
    G.prototype.num_attributes = G.prototype.num_attributes = function () {
      return Vc(this.ptr);
    };
    G.prototype.num_points = G.prototype.num_points = function () {
      return Wc(this.ptr);
    };
    G.prototype.__destroy__ = G.prototype.__destroy__ = function () {
      Uc(this.ptr);
    };
    H.prototype = Object.create(m.prototype);
    H.prototype.constructor = H;
    H.prototype.__class__ = H;
    H.__cache__ = {};
    a.DracoUInt8Array = H;
    H.prototype.GetValue = H.prototype.GetValue = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return rc(c, a);
    };
    H.prototype.size = H.prototype.size = function () {
      return tc(this.ptr);
    };
    H.prototype.__destroy__ = H.prototype.__destroy__ = function () {
      sc(this.ptr);
    };
    I.prototype = Object.create(m.prototype);
    I.prototype.constructor = I;
    I.prototype.__class__ = I;
    I.__cache__ = {};
    a.DracoUInt32Array = I;
    I.prototype.GetValue = I.prototype.GetValue = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return oc(c, a);
    };
    I.prototype.size = I.prototype.size = function () {
      return qc(this.ptr);
    };
    I.prototype.__destroy__ = I.prototype.__destroy__ = function () {
      pc(this.ptr);
    };
    J.prototype = Object.create(m.prototype);
    J.prototype.constructor = J;
    J.prototype.__class__ = J;
    J.__cache__ = {};
    a.AttributeOctahedronTransform = J;
    J.prototype.InitFromAttribute = J.prototype.InitFromAttribute = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return !!rb(c, a);
    };
    J.prototype.quantization_bits = J.prototype.quantization_bits = function () {
      return tb(this.ptr);
    };
    J.prototype.__destroy__ = J.prototype.__destroy__ = function () {
      sb(this.ptr);
    };
    n.prototype = Object.create(m.prototype);
    n.prototype.constructor = n;
    n.prototype.__class__ = n;
    n.__cache__ = {};
    a.PointAttribute = n;
    n.prototype.size = n.prototype.size = function () {
      return Sc(this.ptr);
    };
    n.prototype.GetAttributeTransformData = n.prototype.GetAttributeTransformData = function () {
      return T(Kc(this.ptr), P);
    };
    n.prototype.attribute_type = n.prototype.attribute_type = function () {
      return Mc(this.ptr);
    };
    n.prototype.data_type = n.prototype.data_type = function () {
      return Pc(this.ptr);
    };
    n.prototype.num_components = n.prototype.num_components = function () {
      return Rc(this.ptr);
    };
    n.prototype.normalized = n.prototype.normalized = function () {
      return !!Qc(this.ptr);
    };
    n.prototype.byte_stride = n.prototype.byte_stride = function () {
      return Oc(this.ptr);
    };
    n.prototype.byte_offset = n.prototype.byte_offset = function () {
      return Nc(this.ptr);
    };
    n.prototype.unique_id = n.prototype.unique_id = function () {
      return Tc(this.ptr);
    };
    n.prototype.__destroy__ = n.prototype.__destroy__ = function () {
      Lc(this.ptr);
    };
    P.prototype = Object.create(m.prototype);
    P.prototype.constructor = P;
    P.prototype.__class__ = P;
    P.__cache__ = {};
    a.AttributeTransformData = P;
    P.prototype.transform_type = P.prototype.transform_type = function () {
      return Ab(this.ptr);
    };
    P.prototype.__destroy__ = P.prototype.__destroy__ = function () {
      zb(this.ptr);
    };
    x.prototype = Object.create(m.prototype);
    x.prototype.constructor = x;
    x.prototype.__class__ = x;
    x.__cache__ = {};
    a.AttributeQuantizationTransform = x;
    x.prototype.InitFromAttribute = x.prototype.InitFromAttribute = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return !!ub(c, a);
    };
    x.prototype.quantization_bits = x.prototype.quantization_bits = function () {
      return xb(this.ptr);
    };
    x.prototype.min_value = x.prototype.min_value = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return wb(c, a);
    };
    x.prototype.range = x.prototype.range = function () {
      return yb(this.ptr);
    };
    x.prototype.__destroy__ = x.prototype.__destroy__ = function () {
      vb(this.ptr);
    };
    K.prototype = Object.create(m.prototype);
    K.prototype.constructor = K;
    K.prototype.__class__ = K;
    K.__cache__ = {};
    a.DracoInt8Array = K;
    K.prototype.GetValue = K.prototype.GetValue = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return ic(c, a);
    };
    K.prototype.size = K.prototype.size = function () {
      return kc(this.ptr);
    };
    K.prototype.__destroy__ = K.prototype.__destroy__ = function () {
      jc(this.ptr);
    };
    q.prototype = Object.create(m.prototype);
    q.prototype.constructor = q;
    q.prototype.__class__ = q;
    q.__cache__ = {};
    a.MetadataQuerier = q;
    q.prototype.HasEntry = q.prototype.HasEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return !!Ec(c, a, b);
    };
    q.prototype.HasIntEntry = q.prototype.HasIntEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return !!Fc(c, a, b);
    };
    q.prototype.GetIntEntry = q.prototype.GetIntEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return Bc(c, a, b);
    };
    q.prototype.HasDoubleEntry = q.prototype.HasDoubleEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return !!Dc(c, a, b);
    };
    q.prototype.GetDoubleEntry = q.prototype.GetDoubleEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return zc(c, a, b);
    };
    q.prototype.HasStringEntry = q.prototype.HasStringEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return !!Gc(c, a, b);
    };
    q.prototype.GetStringEntry = q.prototype.GetStringEntry = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return u(Cc(c, a, b));
    };
    q.prototype.NumEntries = q.prototype.NumEntries = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return Hc(c, a);
    };
    q.prototype.GetEntryName = q.prototype.GetEntryName = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return u(Ac(c, a, b));
    };
    q.prototype.__destroy__ = q.prototype.__destroy__ = function () {
      Ic(this.ptr);
    };
    L.prototype = Object.create(m.prototype);
    L.prototype.constructor = L;
    L.prototype.__class__ = L;
    L.__cache__ = {};
    a.DracoInt16Array = L;
    L.prototype.GetValue = L.prototype.GetValue = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return cc(c, a);
    };
    L.prototype.size = L.prototype.size = function () {
      return ec(this.ptr);
    };
    L.prototype.__destroy__ = L.prototype.__destroy__ = function () {
      dc(this.ptr);
    };
    M.prototype = Object.create(m.prototype);
    M.prototype.constructor = M;
    M.prototype.__class__ = M;
    M.__cache__ = {};
    a.DracoFloat32Array = M;
    M.prototype.GetValue = M.prototype.GetValue = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return $b(c, a);
    };
    M.prototype.size = M.prototype.size = function () {
      return bc(this.ptr);
    };
    M.prototype.__destroy__ = M.prototype.__destroy__ = function () {
      ac(this.ptr);
    };
    V.prototype = Object.create(m.prototype);
    V.prototype.constructor = V;
    V.prototype.__class__ = V;
    V.__cache__ = {};
    a.GeometryAttribute = V;
    V.prototype.__destroy__ = V.prototype.__destroy__ = function () {
      uc(this.ptr);
    };
    Q.prototype = Object.create(m.prototype);
    Q.prototype.constructor = Q;
    Q.prototype.__class__ = Q;
    Q.__cache__ = {};
    a.DecoderBuffer = Q;
    Q.prototype.Init = Q.prototype.Init = function (a, b) {
      var c = this.ptr;
      l.prepare();
      if ('object' == typeof a && 'object' === typeof a) {
        var d = l.alloc(a, ia);
        l.copy(a, ia, d);
        a = d;
      }
      b && 'object' === typeof b && (b = b.ptr);
      Bb(c, a, b);
    };
    Q.prototype.__destroy__ = Q.prototype.__destroy__ = function () {
      Cb(this.ptr);
    };
    g.prototype = Object.create(m.prototype);
    g.prototype.constructor = g;
    g.prototype.__class__ = g;
    g.__cache__ = {};
    a.Decoder = g;
    g.prototype.GetEncodedGeometryType = g.prototype.GetEncodedGeometryType = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return Ub(c, a);
    };
    g.prototype.DecodeBufferToPointCloud = g.prototype.DecodeBufferToPointCloud = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return T(Eb(c, a, b), z);
    };
    g.prototype.DecodeBufferToMesh = g.prototype.DecodeBufferToMesh = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return T(Db(c, a, b), z);
    };
    g.prototype.GetAttributeId = g.prototype.GetAttributeId = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return Kb(c, a, b);
    };
    g.prototype.GetAttributeIdByName = g.prototype.GetAttributeIdByName = function (a, b) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      return Jb(c, a, b);
    };
    g.prototype.GetAttributeIdByMetadataEntry = g.prototype.GetAttributeIdByMetadataEntry = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      l.prepare();
      a && 'object' === typeof a && (a = a.ptr);
      b = b && 'object' === typeof b ? b.ptr : U(b);
      d = d && 'object' === typeof d ? d.ptr : U(d);
      return Ib(c, a, b, d);
    };
    g.prototype.GetAttribute = g.prototype.GetAttribute = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return T(Tb(c, a, b), n);
    };
    g.prototype.GetAttributeByUniqueId = g.prototype.GetAttributeByUniqueId = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return T(Fb(c, a, b), n);
    };
    g.prototype.GetMetadata = g.prototype.GetMetadata = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return T(Wb(c, a), R);
    };
    g.prototype.GetAttributeMetadata = g.prototype.GetAttributeMetadata = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return T(Pb(c, a, b), R);
    };
    g.prototype.GetFaceFromMesh = g.prototype.GetFaceFromMesh = function (a, b, d) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Vb(c, a, b, d);
    };
    g.prototype.GetTriangleStripsFromMesh = g.prototype.GetTriangleStripsFromMesh = function (a, b) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      return Xb(c, a, b);
    };
    g.prototype.GetAttributeFloat = g.prototype.GetAttributeFloat = function (a, b, d) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Hb(c, a, b, d);
    };
    g.prototype.GetAttributeFloatForAllPoints = g.prototype.GetAttributeFloatForAllPoints = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Gb(c, a, b, d);
    };
    g.prototype.GetAttributeIntForAllPoints = g.prototype.GetAttributeIntForAllPoints = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Ob(c, a, b, d);
    };
    g.prototype.GetAttributeInt8ForAllPoints = g.prototype.GetAttributeInt8ForAllPoints = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Nb(c, a, b, d);
    };
    g.prototype.GetAttributeUInt8ForAllPoints = g.prototype.GetAttributeUInt8ForAllPoints = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Sb(c, a, b, d);
    };
    g.prototype.GetAttributeInt16ForAllPoints = g.prototype.GetAttributeInt16ForAllPoints = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Lb(c, a, b, d);
    };
    g.prototype.GetAttributeUInt16ForAllPoints = g.prototype.GetAttributeUInt16ForAllPoints =
      function (a, b, d) {
        var c = this.ptr;
        a && 'object' === typeof a && (a = a.ptr);
        b && 'object' === typeof b && (b = b.ptr);
        d && 'object' === typeof d && (d = d.ptr);
        return !!Qb(c, a, b, d);
      };
    g.prototype.GetAttributeInt32ForAllPoints = g.prototype.GetAttributeInt32ForAllPoints = function (
      a,
      b,
      d,
    ) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      b && 'object' === typeof b && (b = b.ptr);
      d && 'object' === typeof d && (d = d.ptr);
      return !!Mb(c, a, b, d);
    };
    g.prototype.GetAttributeUInt32ForAllPoints = g.prototype.GetAttributeUInt32ForAllPoints =
      function (a, b, d) {
        var c = this.ptr;
        a && 'object' === typeof a && (a = a.ptr);
        b && 'object' === typeof b && (b = b.ptr);
        d && 'object' === typeof d && (d = d.ptr);
        return !!Rb(c, a, b, d);
      };
    g.prototype.SkipAttributeTransform = g.prototype.SkipAttributeTransform = function (a) {
      var c = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      Yb(c, a);
    };
    g.prototype.__destroy__ = g.prototype.__destroy__ = function () {
      Zb(this.ptr);
    };
    C.prototype = Object.create(m.prototype);
    C.prototype.constructor = C;
    C.prototype.__class__ = C;
    C.__cache__ = {};
    a.Mesh = C;
    C.prototype.num_faces = C.prototype.num_faces = function () {
      return xc(this.ptr);
    };
    C.prototype.num_attributes = C.prototype.num_attributes = function () {
      return wc(this.ptr);
    };
    C.prototype.num_points = C.prototype.num_points = function () {
      return yc(this.ptr);
    };
    C.prototype.__destroy__ = C.prototype.__destroy__ = function () {
      vc(this.ptr);
    };
    X.prototype = Object.create(m.prototype);
    X.prototype.constructor = X;
    X.prototype.__class__ = X;
    X.__cache__ = {};
    a.VoidPtr = X;
    X.prototype.__destroy__ = X.prototype.__destroy__ = function () {
      ad(this.ptr);
    };
    N.prototype = Object.create(m.prototype);
    N.prototype.constructor = N;
    N.prototype.__class__ = N;
    N.__cache__ = {};
    a.DracoInt32Array = N;
    N.prototype.GetValue = N.prototype.GetValue = function (a) {
      var b = this.ptr;
      a && 'object' === typeof a && (a = a.ptr);
      return fc(b, a);
    };
    N.prototype.size = N.prototype.size = function () {
      return hc(this.ptr);
    };
    N.prototype.__destroy__ = N.prototype.__destroy__ = function () {
      gc(this.ptr);
    };
    R.prototype = Object.create(m.prototype);
    R.prototype.constructor = R;
    R.prototype.__class__ = R;
    R.__cache__ = {};
    a.Metadata = R;
    R.prototype.__destroy__ = R.prototype.__destroy__ = function () {
      Jc(this.ptr);
    };
    (function () {
      function c() {
        a.OK = rd();
        a.ERROR = od();
        a.IO_ERROR = qd();
        a.INVALID_PARAMETER = pd();
        a.UNSUPPORTED_VERSION = td();
        a.UNKNOWN_VERSION = sd();
        a.INVALID_GEOMETRY_TYPE = fd();
        a.POINT_CLOUD = gd();
        a.TRIANGULAR_MESH = hd();
        a.ATTRIBUTE_INVALID_TRANSFORM = bd();
        a.ATTRIBUTE_NO_TRANSFORM = cd();
        a.ATTRIBUTE_QUANTIZATION_TRANSFORM = ed();
        a.ATTRIBUTE_OCTAHEDRON_TRANSFORM = dd();
        a.INVALID = kd();
        a.POSITION = md();
        a.NORMAL = ld();
        a.COLOR = id();
        a.TEX_COORD = nd();
        a.GENERIC = jd();
      }
      a.calledRun ? c() : Na.unshift(c);
    })();
    if ('function' === typeof a.onModuleParsed) a.onModuleParsed();
    return d;
  };
  'object' === typeof exports && 'object' === typeof module
    ? (module.exports = DracoDecoderModule)
    : 'function' === typeof define && define.amd
    ? define([], function () {
        return DracoDecoderModule;
      })
    : 'object' === typeof exports && (exports.DracoDecoderModule = DracoDecoderModule);
  