Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 3866615ed9f87500bac83f78574eecc8 > files > 537

js-of-ocaml-doc-1.2-2.fc18.noarch.rpm

// This program was compiled from OCaml by js_of_ocaml 1.0
function caml_raise_with_arg (tag, arg) { throw [0, tag, arg]; }
function caml_raise_with_string (tag, msg) {
  caml_raise_with_arg (tag, new MlWrappedString (msg));
}
function caml_invalid_argument (msg) {
  caml_raise_with_string(caml_global_data[4], msg);
}
function caml_array_bound_error () {
  caml_invalid_argument("index out of bounds");
}
function caml_str_repeat(n, s) {
  if (!n) { return ""; }
  if (n & 1) { return caml_str_repeat(n - 1, s) + s; }
  var r = caml_str_repeat(n >> 1, s);
  return r + r;
}
function MlString(param) {
  if (param != null) {
    this.bytes = this.fullBytes = param;
    this.last = this.len = param.length;
  }
}
MlString.prototype = {
  string:null,
  bytes:null,
  fullBytes:null,
  array:null,
  len:null,
  last:0,
  toJsString:function() {
    return this.string = decodeURIComponent (escape(this.getFullBytes()));
  },
  toBytes:function() {
    if (this.string != null)
      var b = unescape (encodeURIComponent (this.string));
    else {
      var b = "", a = this.array, l = a.length;
      for (var i = 0; i < l; i ++) b += String.fromCharCode (a[i]);
    }
    this.bytes = this.fullBytes = b;
    this.last = this.len = b.length;
    return b;
  },
  getBytes:function() {
    var b = this.bytes;
    if (b == null) b = this.toBytes();
    return b;
  },
  getFullBytes:function() {
    var b = this.fullBytes;
    if (b !== null) return b;
    b = this.bytes;
    if (b == null) b = this.toBytes ();
    if (this.last < this.len) {
      this.bytes = (b += caml_str_repeat(this.len - this.last, '\0'));
      this.last = this.len;
    }
    this.fullBytes = b;
    return b;
  },
  toArray:function() {
    var b = this.bytes;
    if (b == null) b = this.toBytes ();
    var a = [], l = this.last;
    for (var i = 0; i < l; i++) a[i] = b.charCodeAt(i);
    for (l = this.len; i < l; i++) a[i] = 0;
    this.string = this.bytes = this.fullBytes = null;
    this.last = this.len;
    this.array = a;
    return a;
  },
  getArray:function() {
    var a = this.array;
    if (!a) a = this.toArray();
    return a;
  },
  getLen:function() {
    var len = this.len;
    if (len !== null) return len;
    this.toBytes();
    return this.len;
  },
  toString:function() { var s = this.string; return s?s:this.toJsString(); },
  valueOf:function() { var s = this.string; return s?s:this.toJsString(); },
  blitToArray:function(i1, a2, i2, l) {
    var a1 = this.array;
    if (a1)
      for (var i = 0; i < l; i++) a2 [i2 + i] = a1 [i1 + i];
    else {
      var b = this.bytes;
      if (b == null) b = this.toBytes();
      var l1 = this.last - i1;
      if (l <= l1)
        for (var i = 0; i < l; i++) a2 [i2 + i] = b.charCodeAt(i1 + i);
      else {
        for (var i = 0; i < l1; i++) a2 [i2 + i] = b.charCodeAt(i1 + i);
        for (; i < l; i++) a2 [i2 + i] = 0;
      }
    }
  },
  get:function (i) {
    var a = this.array;
    if (a) return a[i];
    var b = this.bytes;
    if (b == null) b = this.toBytes();
    return (i<this.last)?b.charCodeAt(i):0;
  },
  safeGet:function (i) {
    if (!this.len) this.toBytes();
    if ((i < 0) || (i >= this.len)) caml_array_bound_error ();
    return this.get(i);
  },
  set:function (i, c) {
    var a = this.array;
    if (!a) {
      if (this.last == i) {
        this.bytes += String.fromCharCode (c & 0xff);
        this.last ++;
        return 0;
      }
      a = this.toArray();
    } else if (this.bytes != null) {
      this.bytes = this.fullBytes = this.string = null;
    }
    a[i] = c & 0xff;
    return 0;
  },
  safeSet:function (i, c) {
    if (this.len == null) this.toBytes ();
    if ((i < 0) || (i >= this.len)) caml_array_bound_error ();
    this.set(i, c);
  },
  fill:function (ofs, len, c) {
    if (ofs >= this.last && this.last && c == 0) return;
    var a = this.array;
    if (!a) a = this.toArray();
    else if (this.bytes != null) {
      this.bytes = this.fullBytes = this.string = null;
    }
    var l = ofs + len;
    for (var i = ofs; i < l; i++) a[i] = c;
  },
  compare:function (s2) {
    if (this.string != null && s2.string != null) {
      if (this.string < s2.string) return -1;
      if (this.string > s2.string) return 1;
      return 0;
    }
    var b1 = this.getFullBytes ();
    var b2 = s2.getFullBytes ();
    if (b1 < b2) return -1;
    if (b1 > b2) return 1;
    return 0;
  },
  equal:function (s2) {
    if (this.string != null && s2.string != null)
      return this.string == s2.string;
    return this.getFullBytes () == s2.getFullBytes ();
  },
  lessThan:function (s2) {
    if (this.string != null && s2.string != null)
      return this.string < s2.string;
    return this.getFullBytes () < s2.getFullBytes ();
  },
  lessEqual:function (s2) {
    if (this.string != null && s2.string != null)
      return this.string <= s2.string;
    return this.getFullBytes () <= s2.getFullBytes ();
  }
}
function MlWrappedString (s) { this.string = s; }
MlWrappedString.prototype = new MlString();
function MlMakeString (l) { this.bytes = ""; this.len = l; }
MlMakeString.prototype = new MlString ();
function caml_array_get (array, index) {
  if ((index < 0) || (index >= array.length - 1)) caml_array_bound_error();
  return array[index+1];
}
function caml_array_set (array, index, newval) {
  if ((index < 0) || (index >= array.length - 1)) caml_array_bound_error();
  array[index+1]=newval; return 0;
}
function caml_blit_string(s1, i1, s2, i2, len) {
  if (len === 0) return;
  if (i2 === s2.last && s2.bytes != null) {
    var b = s1.bytes;
    if (b == null) b = s1.toBytes ();
    if (i1 > 0 || s1.last > len) b = b.slice(i1, i1 + len);
    s2.bytes += b;
    s2.last += b.length;
    return;
  }
  var a = s2.array;
  if (!a) a = s2.toArray(); else { s2.bytes = s2.string = null; }
  s1.blitToArray (i1, a, i2, len);
}
function caml_call_gen(f, args) {
  if(f.fun)
    return caml_call_gen(f.fun, args);
  var n = f.length;
  var d = n - args.length;
  if (d == 0)
    return f.apply(null, args);
  else if (d < 0)
    return caml_call_gen(f.apply(null, args.slice(0,n)), args.slice(n));
  else
    return function (x){ return caml_call_gen(f, args.concat([x])); };
}
function caml_classify_float (x) {
  if (isFinite (x)) {
    if (Math.abs(x) >= 2.2250738585072014e-308) return 0;
    if (x != 0) return 1;
    return 2;
  }
  return isNaN(x)?4:3;
}
function caml_create_string(len) {
  if (len < 0) caml_invalid_argument("String.create");
  return new MlMakeString(len);
}
function caml_int64_compare(x,y) {
  var x3 = x[3] << 16;
  var y3 = y[3] << 16;
  if (x3 > y3) return 1;
  if (x3 < y3) return -1;
  if (x[2] > y[2]) return 1;
  if (x[2] < y[2]) return -1;
  if (x[1] > y[1]) return 1;
  if (x[1] < y[1]) return -1;
  return 0;
}
function caml_int_compare (a, b) {
  if (a < b) return (-1); if (a == b) return 0; return 1;
}
function caml_compare_val (a, b, total) {
  var stack = [];
  for(;;) {
    if (!(total && a === b)) {
      if (a instanceof MlString) {
        if (b instanceof MlString) {
            if (a != b) {
		var x = a.compare(b);
		if (x != 0) return x;
	    }
        } else
          return 1;
      } else if (a instanceof Array && a[0] === (a[0]|0)) {
        var ta = a[0];
        if (ta === 250) {
          a = a[1];
          continue;
        } else if (b instanceof Array && b[0] === (b[0]|0)) {
          var tb = b[0];
          if (tb === 250) {
            b = b[1];
            continue;
          } else if (ta != tb) {
            return (ta < tb)?-1:1;
          } else {
            switch (ta) {
            case 248: {
		var x = caml_int_compare(a[2], b[2]);
		if (x != 0) return x;
		break;
	    }
            case 255: {
		var x = caml_int64_compare(a, b);
		if (x != 0) return x;
		break;
	    }
            default:
              if (a.length != b.length) return (a.length < b.length)?-1:1;
              if (a.length > 1) stack.push(a, b, 1);
            }
          }
        } else
          return 1;
      } else if (b instanceof MlString ||
                 (b instanceof Array && b[0] === (b[0]|0))) {
        return -1;
      } else {
        if (a < b) return -1;
        if (a > b) return 1;
        if (total && a != b) {
          if (a == a) return 1;
          if (b == b) return -1;
        }
      }
    }
    if (stack.length == 0) return 0;
    var i = stack.pop();
    b = stack.pop();
    a = stack.pop();
    if (i + 1 < a.length) stack.push(a, b, i + 1);
    a = a[i];
    b = b[i];
  }
}
function caml_equal (x, y) { return +(caml_compare_val(x,y,false) == 0); }
function caml_fill_string(s, i, l, c) { s.fill (i, l, c); }
var caml_global_data = [0];
function caml_failwith (msg) {
  caml_raise_with_string(caml_global_data[3], msg);
}
function caml_float_of_string(s) {
  var res;
  s = s.getFullBytes();
  res = +s;
  if ((s.length > 0) && (res === res)) return res;
  s = s.replace(/_/g,"");
  res = +s;
  if (((s.length > 0) && (res === res)) || /^[+-]?nan$/i.test(s)) return res;
  caml_failwith("float_of_string");
}
function caml_parse_format (fmt) {
  fmt = fmt.toString ();
  var len = fmt.length;
  if (len > 31) caml_invalid_argument("format_int: format too long");
  var f =
    { justify:'+', signstyle:'-', filler:' ', alternate:false,
      base:0, signedconv:false, width:0, uppercase:false,
      sign:1, prec:-1, conv:'f' };
  for (var i = 0; i < len; i++) {
    var c = fmt.charAt(i);
    switch (c) {
    case '-':
      f.justify = '-'; break;
    case '+': case ' ':
      f.signstyle = c; break;
    case '0':
      f.filler = '0'; break;
    case '#':
      f.alternate = true; break;
    case '1': case '2': case '3': case '4': case '5':
    case '6': case '7': case '8': case '9':
      f.width = 0;
      while (c=fmt.charCodeAt(i) - 48, c >= 0 && c <= 9) {
        f.width = f.width * 10 + c; i++
      }
      i--;
     break;
    case '.':
      f.prec = 0;
      i++;
      while (c=fmt.charCodeAt(i) - 48, c >= 0 && c <= 9) {
        f.prec = f.prec * 10 + c; i++
      }
      i--;
    case 'd': case 'i':
      f.signedconv = true; /* fallthrough */
    case 'u':
      f.base = 10; break;
    case 'x':
      f.base = 16; break;
    case 'X':
      f.base = 16; f.uppercase = true; break;
    case 'o':
      f.base = 8; break;
    case 'e': case 'f': case 'g':
      f.signedconv = true; f.conv = c; break;
    case 'E': case 'F': case 'G':
      f.signedconv = true; f.uppercase = true;
      f.conv = c.toLowerCase (); break;
    }
  }
  return f;
}
function caml_finish_formatting(f, rawbuffer) {
  if (f.uppercase) rawbuffer = rawbuffer.toUpperCase();
  var len = rawbuffer.length;
  if (f.signedconv && (f.sign < 0 || f.signstyle != '-')) len++;
  if (f.alternate) {
    if (f.base == 8) len += 1;
    if (f.base == 16) len += 2;
  }
  var buffer = "";
  if (f.justify == '+' && f.filler == ' ')
    for (var i = len; i < f.width; i++) buffer += ' ';
  if (f.signedconv) {
    if (f.sign < 0) buffer += '-';
    else if (f.signstyle != '-') buffer += f.signstyle;
  }
  if (f.alternate && f.base == 8) buffer += '0';
  if (f.alternate && f.base == 16) buffer += "0x";
  if (f.justify == '+' && f.filler == '0')
    for (var i = len; i < f.width; i++) buffer += '0';
  buffer += rawbuffer;
  if (f.justify == '-')
    for (var i = len; i < f.width; i++) buffer += ' ';
  return new MlWrappedString (buffer);
}
function caml_format_float (fmt, x) {
  var s, f = caml_parse_format(fmt);
  var prec = (f.prec < 0)?6:f.prec;
  if (x < 0) { f.sign = -1; x = -x; }
  if (isNaN(x)) { s = "nan"; f.filler = ' '; }
  else if (!isFinite(x)) { s = "inf"; f.filler = ' '; }
  else
    switch (f.conv) {
    case 'e':
      var s = x.toExponential(prec);
      var i = s.length;
      if (s.charAt(i - 3) == 'e')
        s = s.slice (0, i - 1) + '0' + s.slice (i - 1);
      break;
    case 'f':
      s = x.toFixed(prec); break;
    case 'g':
      prec = prec?prec:1;
      s = x.toExponential(prec - 1);
      var j = s.indexOf('e');
      var exp = +s.slice(j + 1);
      if (exp < -4 || x.toFixed(0).length > prec) {
        var i = j - 1; while (s.charAt(i) == '0') i--;
        if (s.charAt(i) == '.') i--;
        s = s.slice(0, i + 1) + s.slice(j);
        i = s.length;
        if (s.charAt(i - 3) == 'e')
          s = s.slice (0, i - 1) + '0' + s.slice (i - 1);
        break;
      } else {
        var p = prec;
        if (exp < 0) { p -= exp + 1; s = x.toFixed(p); }
        else while (s = x.toFixed(p), s.length > prec + 1) p--;
        if (p) {
          var i = s.length - 1; while (s.charAt(i) == '0') i--;
          if (s.charAt(i) == '.') i--;
          s = s.slice(0, i + 1);
        }
      }
      break;
    }
  return caml_finish_formatting(f, s);
}
function caml_format_int(fmt, i) {
  if (fmt.toString() == "%d") return new MlWrappedString(""+i);
  var f = caml_parse_format(fmt);
  if (i < 0) { if (f.signedconv) { f.sign = -1; i = -i; } else i >>>= 0; }
  var s = i.toString(f.base);
  if (f.prec >= 0) {
    f.filler = ' ';
    var n = f.prec - s.length;
    if (n > 0) s = caml_str_repeat (n, '0') + s;
  }
  return caml_finish_formatting(f, s);
}
function caml_get_exception_backtrace () {
  caml_invalid_argument
    ("Primitive 'caml_get_exception_backtrace' not implemented");
}
function caml_int64_is_negative(x) {
  return (x[3] << 16) < 0;
}
function caml_int64_neg (x) {
  var y1 = - x[1];
  var y2 = - x[2] + (y1 >> 24);
  var y3 = - x[3] + (y2 >> 24);
  return [255, y1 & 0xffffff, y2 & 0xffffff, y3 & 0xffff];
}
function caml_int64_of_int32 (x) {
  return [255, x & 0xffffff, (x >> 24) & 0xffffff, (x >> 31) & 0xffff]
}
function caml_int64_ucompare(x,y) {
  if (x[3] > y[3]) return 1;
  if (x[3] < y[3]) return -1;
  if (x[2] > y[2]) return 1;
  if (x[2] < y[2]) return -1;
  if (x[1] > y[1]) return 1;
  if (x[1] < y[1]) return -1;
  return 0;
}
function caml_int64_lsl1 (x) {
  x[3] = (x[3] << 1) | (x[2] >> 23);
  x[2] = ((x[2] << 1) | (x[1] >> 23)) & 0xffffff;
  x[1] = (x[1] << 1) & 0xffffff;
}
function caml_int64_lsr1 (x) {
  x[1] = ((x[1] >>> 1) | (x[2] << 23)) & 0xffffff;
  x[2] = ((x[2] >>> 1) | (x[3] << 23)) & 0xffffff;
  x[3] = x[3] >>> 1;
}
function caml_int64_sub (x, y) {
  var z1 = x[1] - y[1];
  var z2 = x[2] - y[2] + (z1 >> 24);
  var z3 = x[3] - y[3] + (z2 >> 24);
  return [255, z1 & 0xffffff, z2 & 0xffffff, z3 & 0xffff];
}
function caml_int64_udivmod (x, y) {
  var offset = 0;
  var modulus = x.slice ();
  var divisor = y.slice ();
  var quotient = [255, 0, 0, 0];
  while (caml_int64_ucompare (modulus, divisor) > 0) {
    offset++;
    caml_int64_lsl1 (divisor);
  }
  while (offset >= 0) {
    offset --;
    caml_int64_lsl1 (quotient);
    if (caml_int64_ucompare (modulus, divisor) >= 0) {
      quotient[1] ++;
      modulus = caml_int64_sub (modulus, divisor);
    }
    caml_int64_lsr1 (divisor);
  }
  return [0,quotient, modulus];
}
function caml_int64_to_int32 (x) {
  return x[1] | (x[2] << 24);
}
function caml_int64_is_zero(x) {
  return (x[3]|x[2]|x[1]) == 0;
}
function caml_int64_format (fmt, x) {
  var f = caml_parse_format(fmt);
  if (f.signedconv && caml_int64_is_negative(x)) {
    f.sign = -1; x = caml_int64_neg(x);
  }
  var buffer = "";
  var wbase = caml_int64_of_int32(f.base);
  var cvtbl = "0123456789abcdef";
  do {
    var p = caml_int64_udivmod(x, wbase);
    x = p[1];
    buffer = cvtbl.charAt(caml_int64_to_int32(p[2])) + buffer;
  } while (! caml_int64_is_zero(x));
  if (f.prec >= 0) {
    f.filler = ' ';
    var n = f.prec - buffer.length;
    if (n > 0) buffer = caml_str_repeat (n, '0') + buffer;
  }
  return caml_finish_formatting(f, buffer);
}
function caml_parse_sign_and_base (s) {
  var i = 0, base = 10, sign = s.get(0) == 45?(i++,-1):1;
  if (s.get(i) == 48)
    switch (s.get(i + 1)) {
    case 120: case 88: base = 16; i += 2; break;
    case 111: case 79: base =  8; i += 2; break;
    case  98: case 66: base =  2; i += 2; break;
    }
  return [i, sign, base];
}
function caml_parse_digit(c) {
  if (c >= 48 && c <= 57)  return c - 48;
  if (c >= 65 && c <= 90)  return c - 55;
  if (c >= 97 && c <= 122) return c - 87;
  return -1;
}
function caml_int_of_string (s) {
  var r = caml_parse_sign_and_base (s);
  var i = r[0], sign = r[1], base = r[2];
  var threshold = -1 >>> 0;
  var c = s.get(i);
  var d = caml_parse_digit(c);
  if (d < 0 || d >= base) caml_failwith("int_of_string");
  var res = d;
  for (;;) {
    i++;
    c = s.get(i);
    if (c == 95) continue;
    d = caml_parse_digit(c);
    if (d < 0 || d >= base) break;
    res = base * res + d;
    if (res > threshold) caml_failwith("int_of_string");
  }
  if (i != s.getLen()) caml_failwith("int_of_string");
  res = sign * res;
  if ((res | 0) != res) caml_failwith("int_of_string");
  return res;
}
function caml_is_printable(c) { return +(c > 31 && c < 127); }
function caml_js_from_byte_string (s) {return s.getFullBytes();}
function caml_js_get_console () {
  var c = window.console?window.console:{};
  var m = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
           "trace", "group", "groupCollapsed", "groupEnd", "time", "timeEnd"];
  function f () {}
  for (var i = 0; i < m.length; i++) if (!c[m[i]]) c[m[i]]=f;
  return c;
}
function caml_js_on_ie () {
  var ua = window.navigator?window.navigator.userAgent:"";
  return ua.indexOf("MSIE") != -1 && ua.indexOf("Opera") != 0;
}
function caml_js_to_byte_string (s) {return new MlString (s);}
function caml_js_wrap_callback(f) {
  var toArray = Array.prototype.slice;
  return function () {
    var args = (arguments.length > 0)?toArray.call (arguments):[undefined];
    return caml_call_gen(f, args);
  }
}
function caml_make_vect (len, init) {
  var b = [0]; for (var i = 1; i <= len; i++) b[i] = init; return b;
}
function caml_ml_flush () { return 0; }
function caml_ml_open_descriptor_out () { return 0; }
function caml_ml_out_channels_list () { return 0; }
function caml_ml_output () { return 0; }
function caml_mul(x,y) {
  return ((((x >> 16) * y) << 16) + (x & 0xffff) * y)|0;
}
function caml_compare (a, b) { return caml_compare_val (a, b, true); }
function caml_notequal (x, y) { return +(caml_compare_val(x,y,false) != 0); }
function caml_obj_is_block (x) { return +(x instanceof Array); }
function caml_obj_tag (x) { return (x instanceof Array)?x[0]:1000; }
function caml_register_global (n, v) { caml_global_data[n + 1] = v; }
var caml_named_values = {};
function caml_register_named_value(nm,v) {
  caml_named_values[nm] = v; return 0;
}
function caml_string_equal(s1, s2) {
  var b1 = s1.fullBytes;
  var b2 = s2.fullBytes;
  if (b1 != null && b2 != null) return (b1 == b2)?1:0;
  return (s1.getFullBytes () == s2.getFullBytes ())?1:0;
}
function caml_string_notequal(s1, s2) { return 1-caml_string_equal(s1, s2); }
function caml_sys_get_config () {
  return [0, new MlWrappedString("Unix"), 32];
}
function caml_update_dummy (x, y) {
  if( typeof y==="function" ) { x.fun = y; return 0; }
  if( y.fun ) { x.fun = y.fun; return 0; }
  var i = y.length; while (i--) x[i] = y[i]; return 0;
}
(function()
   {function _jF_(_v$_,_wa_,_wb_,_wc_,_wd_,_we_,_wf_)
     {return _v$_.length==6
              ?_v$_(_wa_,_wb_,_wc_,_wd_,_we_,_wf_)
              :caml_call_gen(_v$_,[_wa_,_wb_,_wc_,_wd_,_we_,_wf_]);}
    function _fz_(_v7_,_v8_,_v9_,_v__)
     {return _v7_.length==3
              ?_v7_(_v8_,_v9_,_v__)
              :caml_call_gen(_v7_,[_v8_,_v9_,_v__]);}
    function _f4_(_v4_,_v5_,_v6_)
     {return _v4_.length==2?_v4_(_v5_,_v6_):caml_call_gen(_v4_,[_v5_,_v6_]);}
    function _c7_(_v2_,_v3_)
     {return _v2_.length==1?_v2_(_v3_):caml_call_gen(_v2_,[_v3_]);}
    var
     _a_=[0,new MlString("Failure")],
     _b_=[0,new MlString("Invalid_argument")],
     _c_=[0,new MlString("Not_found")],
     _d_=[0,new MlString("Assert_failure")],
     _e_=new MlString("File \"%s\", line %d, characters %d-%d: %s"),
     _f_=new MlString("monkey.model"),
     _g_=new MlString("canvas");
    caml_register_global(5,[0,new MlString("Division_by_zero")]);
    caml_register_global(3,_b_);
    caml_register_global(2,_a_);
    var
     _cv_=[0,new MlString("Out_of_memory")],
     _cu_=[0,new MlString("Match_failure")],
     _ct_=[0,new MlString("Stack_overflow")],
     _cs_=[0,new MlString("Undefined_recursive_module")],
     _cr_=new MlString("%.12g"),
     _cq_=new MlString("."),
     _cp_=new MlString("%d"),
     _co_=new MlString("true"),
     _cn_=new MlString("false"),
     _cm_=new MlString("Pervasives.do_at_exit"),
     _cl_=new MlString("\\b"),
     _ck_=new MlString("\\t"),
     _cj_=new MlString("\\n"),
     _ci_=new MlString("\\r"),
     _ch_=new MlString("\\\\"),
     _cg_=new MlString("\\'"),
     _cf_=new MlString(""),
     _ce_=new MlString("String.blit"),
     _cd_=new MlString("String.sub"),
     _cc_=new MlString("Queue.Empty"),
     _cb_=new MlString("Buffer.add: cannot grow buffer"),
     _ca_=new MlString(""),
     _b$_=new MlString(""),
     _b__=new MlString("\""),
     _b9_=new MlString("\""),
     _b8_=new MlString("'"),
     _b7_=new MlString("'"),
     _b6_=new MlString("."),
     _b5_=new MlString("printf: bad positional specification (0)."),
     _b4_=new MlString("%_"),
     _b3_=[0,new MlString("printf.ml"),144,8],
     _b2_=new MlString("''"),
     _b1_=new MlString("Printf: premature end of format string ``"),
     _b0_=new MlString("''"),
     _bZ_=new MlString(" in format string ``"),
     _bY_=new MlString(", at char number "),
     _bX_=new MlString("Printf: bad conversion %"),
     _bW_=new MlString("Sformat.index_of_int: negative argument "),
     _bV_=new MlString(""),
     _bU_=new MlString(", %s%s"),
     _bT_=[1,1],
     _bS_=new MlString("%s\n"),
     _bR_=
      new
       MlString
       ("(Program not linked with -g, cannot print stack backtrace)\n"),
     _bQ_=new MlString("Raised at"),
     _bP_=new MlString("Re-raised at"),
     _bO_=new MlString("Raised by primitive operation at"),
     _bN_=new MlString("Called from"),
     _bM_=new MlString("%s file \"%s\", line %d, characters %d-%d"),
     _bL_=new MlString("%s unknown location"),
     _bK_=new MlString("Out of memory"),
     _bJ_=new MlString("Stack overflow"),
     _bI_=new MlString("Pattern matching failed"),
     _bH_=new MlString("Assertion failed"),
     _bG_=new MlString("Undefined recursive module"),
     _bF_=new MlString("(%s%s)"),
     _bE_=new MlString(""),
     _bD_=new MlString(""),
     _bC_=new MlString("(%s)"),
     _bB_=new MlString("%d"),
     _bA_=new MlString("%S"),
     _bz_=new MlString("_"),
     _by_=[0,new MlString("src/core/lwt.ml"),692,20],
     _bx_=[0,new MlString("src/core/lwt.ml"),695,8],
     _bw_=[0,new MlString("src/core/lwt.ml"),670,20],
     _bv_=[0,new MlString("src/core/lwt.ml"),673,8],
     _bu_=[0,new MlString("src/core/lwt.ml"),648,20],
     _bt_=[0,new MlString("src/core/lwt.ml"),651,8],
     _bs_=[0,new MlString("src/core/lwt.ml"),498,8],
     _br_=[0,new MlString("src/core/lwt.ml"),487,9],
     _bq_=new MlString("Lwt.wakeup_result"),
     _bp_=new MlString("Lwt.Canceled"),
     state_return_unit_bo_=[0,0],
     _bn_=new MlString("script"),
     _bm_=new MlString("canvas"),
     _bl_=new MlString("browser can't read file: unimplemented"),
     _bk_=new MlString("utf8"),
     _bj_=[0,new MlString("file.ml"),132,15],
     _bi_=new MlString("string"),
     _bh_=new MlString("can't retrieve file name: not implemented"),
     _bg_=new MlString("\\$&"),
     _bf_=new MlString("$$$$"),
     _be_=new MlString("g"),
     _bd_=new MlString("g"),
     _bc_=new MlString("[$]"),
     _bb_=new MlString("[\\][()\\\\|+*.?{}^$]"),
     _ba_=[0,new MlString(""),0],
     _a$_=new MlString(""),
     _a__=new MlString(""),
     _a9_=new MlString("#"),
     _a8_=new MlString(""),
     _a7_=new MlString("?"),
     _a6_=new MlString(""),
     _a5_=new MlString("/"),
     _a4_=new MlString("/"),
     _a3_=new MlString(":"),
     _a2_=new MlString(""),
     _a1_=new MlString("http://"),
     _a0_=new MlString(""),
     _aZ_=new MlString("#"),
     _aY_=new MlString(""),
     _aX_=new MlString("?"),
     _aW_=new MlString(""),
     _aV_=new MlString("/"),
     _aU_=new MlString("/"),
     _aT_=new MlString(":"),
     _aS_=new MlString(""),
     _aR_=new MlString("https://"),
     _aQ_=new MlString(""),
     _aP_=new MlString("#"),
     _aO_=new MlString(""),
     _aN_=new MlString("?"),
     _aM_=new MlString(""),
     _aL_=new MlString("/"),
     _aK_=new MlString("file://"),
     _aJ_=new MlString(""),
     _aI_=new MlString(""),
     _aH_=new MlString(""),
     _aG_=new MlString(""),
     _aF_=new MlString(""),
     _aE_=new MlString(""),
     _aD_=new MlString("="),
     _aC_=new MlString("&"),
     _aB_=new MlString("file"),
     _aA_=new MlString("file:"),
     _az_=new MlString("http"),
     _ay_=new MlString("http:"),
     _ax_=new MlString("https"),
     _aw_=new MlString("https:"),
     _av_=new MlString("%2B"),
     _au_=new MlString("Url.Local_exn"),
     _at_=new MlString("+"),
     _as_=new MlString("Url.Not_an_http_protocol"),
     _ar_=
      new
       MlString
       ("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?/([^\\?#]*)(\\?([^#]*))?(#(.*))?$"),
     _aq_=
      new MlString("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#])*)?(#(.*))?$"),
     _ap_=new MlString(""),
     _ao_=new MlString("POST"),
     _an_=new MlString("multipart/form-data; boundary="),
     _am_=new MlString("POST"),
     _al_=
      [0,
       new MlString("POST"),
       [0,new MlString("application/x-www-form-urlencoded")],
       126925477],
     _ak_=[0,new MlString("POST"),0,126925477],
     _aj_=new MlString("GET"),
     _ai_=new MlString("?"),
     _ah_=new MlString("Content-type"),
     _ag_=new MlString("="),
     _af_=new MlString("="),
     _ae_=new MlString("&"),
     _ad_=new MlString("Content-Type: application/octet-stream\r\n"),
     _ac_=new MlString("\"\r\n"),
     _ab_=new MlString("\"; filename=\""),
     _aa_=new MlString("Content-Disposition: form-data; name=\""),
     _$_=new MlString("\r\n"),
     ___=new MlString("\r\n"),
     _Z_=new MlString("\r\n"),
     _Y_=new MlString("--"),
     _X_=new MlString("\r\n"),
     _W_=new MlString("\"\r\n\r\n"),
     _V_=new MlString("Content-Disposition: form-data; name=\""),
     _U_=new MlString("--\r\n"),
     _T_=new MlString("--"),
     _S_=new MlString("js_of_ocaml-------------------"),
     _R_=new MlString("Msxml2.XMLHTTP"),
     _Q_=new MlString("Msxml3.XMLHTTP"),
     _P_=new MlString("Microsoft.XMLHTTP"),
     _O_=[0,new MlString("xmlHttpRequest.ml"),79,2],
     _N_=new MlString("XmlHttpRequest.Wrong_headers"),
     _M_=new MlString("webgl"),
     _L_=new MlString("experimental-webgl"),
     _K_=new MlString("uncaught exception: %s"),
     _J_=new MlString("%.1f"),
     _I_=new MlString("loading"),
     _H_=new MlString("fps"),
     _G_=new MlString("fragment-shader"),
     _F_=new MlString("vertex-shader"),
     _E_=new MlString("program loaded"),
     _D_=new MlString("u_proj"),
     _C_=new MlString("u_lightPos"),
     _B_=new MlString("u_ambientLight"),
     _A_=new MlString("a_position"),
     _z_=new MlString("a_normal"),
     _y_=new MlString("ready"),
     _x_=new MlString("\n"),
     _w_=[0,1,[0,2,[0,3,[0,4,0]]]],
     _v_=new MlString("f"),
     _u_=new MlString("v"),
     _t_=new MlString("vn"),
     _s_=[0,1,[0,2,0]],
     _r_=new MlString("can't find script element %s"),
     _q_=new MlString("Unable to link the shader program."),
     _p_=new MlString("An error occurred compiling the shaders: \n%s\n%s"),
     _o_=new MlString("can't initialise webgl context"),
     _n_=new MlString("can't find canvas element %s"),
     _m_=new MlString("WebGL error"),
     _l_=new MlString("(v|vn|f)\\ ([^\\ ]+)\\ ([^\\ ]+)\\ ([^\\ ]+)"),
     _k_=new MlString("([0-9]+)//([0-9]+)");
    function _j_(s_h_){throw [0,_a_,s_h_];}
    function _cw_(s_i_){throw [0,_b_,s_i_];}
    function _cH_(s1_cx_,s2_cz_)
     {var
       l1_cy_=s1_cx_.getLen(),
       l2_cA_=s2_cz_.getLen(),
       s_cB_=caml_create_string(l1_cy_+l2_cA_|0);
      caml_blit_string(s1_cx_,0,s_cB_,0,l1_cy_);
      caml_blit_string(s2_cz_,0,s_cB_,l1_cy_,l2_cA_);
      return s_cB_;}
    function string_of_int_cQ_(n_cC_){return caml_format_int(_cp_,n_cC_);}
    function string_of_float_cR_(f_cD_)
     {var _cE_=caml_format_float(_cr_,f_cD_),i_cF_=0,l_cG_=_cE_.getLen();
      for(;;)
       {if(l_cG_<=i_cF_)
         var _cI_=_cH_(_cE_,_cq_);
        else
         {var
           _cJ_=_cE_.safeGet(i_cF_),
           _cK_=48<=_cJ_?58<=_cJ_?0:1:45===_cJ_?1:0;
          if(_cK_){var _cL_=i_cF_+1|0,i_cF_=_cL_;continue;}
          var _cI_=_cE_;}
        return _cI_;}}
    function _cN_(l1_cM_,l2_cO_)
     {if(l1_cM_)
       {var hd_cP_=l1_cM_[1];return [0,hd_cP_,_cN_(l1_cM_[2],l2_cO_)];}
      return l2_cO_;}
    var stderr_cS_=caml_ml_open_descriptor_out(2);
    function output_string_c0_(oc_cU_,s_cT_)
     {return caml_ml_output(oc_cU_,s_cT_,0,s_cT_.getLen());}
    function do_at_exit_cZ_(param_cY_)
     {var param_cV_=caml_ml_out_channels_list(0);
      for(;;)
       {if(param_cV_)
         {var l_cW_=param_cV_[2];
          try {}catch(_cX_){}
          var param_cV_=l_cW_;
          continue;}
        return 0;}}
    caml_register_named_value(_cm_,do_at_exit_cZ_);
    function _c4_(_c2_,_c1_){return caml_ml_output_char(_c2_,_c1_);}
    function _do_(_c3_){return caml_ml_flush(_c3_);}
    function _dn_(l_c5_,f_c6_)
     {if(0===l_c5_)return [0];
      var res_c8_=caml_make_vect(l_c5_,_c7_(f_c6_,0)),_c9_=1,_c__=l_c5_-1|0;
      if(!(_c__<_c9_))
       {var i_c$_=_c9_;
        for(;;)
         {res_c8_[i_c$_+1]=_c7_(f_c6_,i_c$_);
          var _da_=i_c$_+1|0;
          if(_c__!==i_c$_){var i_c$_=_da_;continue;}
          break;}}
      return res_c8_;}
    function _dp_(l_db_)
     {if(l_db_)
       {var accu_dc_=0,param_dd_=l_db_,tl_dj_=l_db_[2],hd_dg_=l_db_[1];
        for(;;)
         {if(param_dd_)
           {var
             t_df_=param_dd_[2],
             _de_=accu_dc_+1|0,
             accu_dc_=_de_,
             param_dd_=t_df_;
            continue;}
          var a_dh_=caml_make_vect(accu_dc_,hd_dg_),i_di_=1,param_dk_=tl_dj_;
          for(;;)
           {if(param_dk_)
             {var tl_dl_=param_dk_[2];
              a_dh_[i_di_+1]=param_dk_[1];
              var _dm_=i_di_+1|0,i_di_=_dm_,param_dk_=tl_dl_;
              continue;}
            return a_dh_;}}}
      return [0];}
    function _dE_(l_dq_)
     {var l1_dr_=l_dq_,l2_ds_=0;
      for(;;)
       {if(l1_dr_)
         {var
           l_dt_=l1_dr_[2],
           _du_=[0,l1_dr_[1],l2_ds_],
           l1_dr_=l_dt_,
           l2_ds_=_du_;
          continue;}
        return l2_ds_;}}
    function _dy_(f_dw_,param_dv_)
     {if(param_dv_)
       {var l_dx_=param_dv_[2],r_dz_=_c7_(f_dw_,param_dv_[1]);
        return [0,r_dz_,_dy_(f_dw_,l_dx_)];}
      return 0;}
    function _dF_(f_dC_,param_dA_)
     {var param_dB_=param_dA_;
      for(;;)
       {if(param_dB_)
         {var l_dD_=param_dB_[2];
          _c7_(f_dC_,param_dB_[1]);
          var param_dB_=l_dD_;
          continue;}
        return 0;}}
    function _d2_(n_dG_,c_dI_)
     {var s_dH_=caml_create_string(n_dG_);
      caml_fill_string(s_dH_,0,n_dG_,c_dI_);
      return s_dH_;}
    function _d3_(s_dL_,ofs_dJ_,len_dK_)
     {if(0<=ofs_dJ_&&0<=len_dK_&&!((s_dL_.getLen()-len_dK_|0)<ofs_dJ_))
       {var r_dM_=caml_create_string(len_dK_);
        caml_blit_string(s_dL_,ofs_dJ_,r_dM_,0,len_dK_);
        return r_dM_;}
      return _cw_(_cd_);}
    function _d4_(s1_dP_,ofs1_dO_,s2_dR_,ofs2_dQ_,len_dN_)
     {if
       (0<=
        len_dN_&&
        0<=
        ofs1_dO_&&
        !((s1_dP_.getLen()-len_dN_|0)<ofs1_dO_)&&
        0<=
        ofs2_dQ_&&
        !((s2_dR_.getLen()-len_dN_|0)<ofs2_dQ_))
       return caml_blit_string(s1_dP_,ofs1_dO_,s2_dR_,ofs2_dQ_,len_dN_);
      return _cw_(_ce_);}
    function _d5_(sep_dY_,l_dS_)
     {if(l_dS_)
       {var hd_dT_=l_dS_[1],num_dU_=[0,0],len_dV_=[0,0],tl_dX_=l_dS_[2];
        _dF_
         (function(s_dW_)
           {num_dU_[1]+=1;len_dV_[1]=len_dV_[1]+s_dW_.getLen()|0;return 0;},
          l_dS_);
        var
         r_dZ_=
          caml_create_string
           (len_dV_[1]+caml_mul(sep_dY_.getLen(),num_dU_[1]-1|0)|0);
        caml_blit_string(hd_dT_,0,r_dZ_,0,hd_dT_.getLen());
        var pos_d0_=[0,hd_dT_.getLen()];
        _dF_
         (function(s_d1_)
           {caml_blit_string(sep_dY_,0,r_dZ_,pos_d0_[1],sep_dY_.getLen());
            pos_d0_[1]=pos_d0_[1]+sep_dY_.getLen()|0;
            caml_blit_string(s_d1_,0,r_dZ_,pos_d0_[1],s_d1_.getLen());
            pos_d0_[1]=pos_d0_[1]+s_d1_.getLen()|0;
            return 0;},
          tl_dX_);
        return r_dZ_;}
      return _cf_;}
    var
     _d6_=caml_sys_get_config(0)[2],
     _d7_=caml_mul(_d6_/8|0,(1<<(_d6_-10|0))-1|0)-1|0,
     _ee_=252,
     _ed_=253,
     _d__=[0,_cc_];
    function _ec_(param_d8_){return [0,0,0];}
    function _ef_(q_d9_)
     {if(0===q_d9_[1])throw [0,_d__];
      q_d9_[1]=q_d9_[1]-1|0;
      var tail_d$_=q_d9_[2],head_ea_=tail_d$_[2];
      if(head_ea_===tail_d$_)q_d9_[2]=0;else tail_d$_[2]=head_ea_[2];
      return head_ea_[1];}
    function _eg_(q_eb_){return q_eb_[1];}
    function _ey_(n_eh_)
     {var
       n_ei_=1<=n_eh_?n_eh_:1,
       n_ej_=_d7_<n_ei_?_d7_:n_ei_,
       s_ek_=caml_create_string(n_ej_);
      return [0,s_ek_,0,n_ej_,s_ek_];}
    function _ez_(b_el_){return _d3_(b_el_[1],0,b_el_[2]);}
    function _es_(b_em_,more_eo_)
     {var new_len_en_=[0,b_em_[3]];
      for(;;)
       {if(new_len_en_[1]<(b_em_[2]+more_eo_|0))
         {new_len_en_[1]=2*new_len_en_[1]|0;continue;}
        if(_d7_<new_len_en_[1])
         if((b_em_[2]+more_eo_|0)<=_d7_)new_len_en_[1]=_d7_;else _j_(_cb_);
        var new_buffer_ep_=caml_create_string(new_len_en_[1]);
        _d4_(b_em_[1],0,new_buffer_ep_,0,b_em_[2]);
        b_em_[1]=new_buffer_ep_;
        b_em_[3]=new_len_en_[1];
        return 0;}}
    function _eA_(b_eq_,c_et_)
     {var pos_er_=b_eq_[2];
      if(b_eq_[3]<=pos_er_)_es_(b_eq_,1);
      b_eq_[1].safeSet(pos_er_,c_et_);
      b_eq_[2]=pos_er_+1|0;
      return 0;}
    function _eB_(b_ew_,s_eu_)
     {var len_ev_=s_eu_.getLen(),new_position_ex_=b_ew_[2]+len_ev_|0;
      if(b_ew_[3]<new_position_ex_)_es_(b_ew_,len_ev_);
      _d4_(s_eu_,0,b_ew_[1],b_ew_[2],len_ev_);
      b_ew_[2]=new_position_ex_;
      return 0;}
    function index_of_int_eF_(i_eC_)
     {return 0<=i_eC_?i_eC_:_j_(_cH_(_bW_,string_of_int_cQ_(i_eC_)));}
    function add_int_index_eG_(i_eD_,idx_eE_)
     {return index_of_int_eF_(i_eD_+idx_eE_|0);}
    var _eH_=_c7_(add_int_index_eG_,1);
    function _eO_(fmt_eI_){return _d3_(fmt_eI_,0,fmt_eI_.getLen());}
    function bad_conversion_eQ_(sfmt_eJ_,i_eK_,c_eM_)
     {var
       _eL_=_cH_(_bZ_,_cH_(sfmt_eJ_,_b0_)),
       _eN_=_cH_(_bY_,_cH_(string_of_int_cQ_(i_eK_),_eL_));
      return _cw_(_cH_(_bX_,_cH_(_d2_(1,c_eM_),_eN_)));}
    function bad_conversion_format_fF_(fmt_eP_,i_eS_,c_eR_)
     {return bad_conversion_eQ_(_eO_(fmt_eP_),i_eS_,c_eR_);}
    function incomplete_format_fG_(fmt_eT_)
     {return _cw_(_cH_(_b1_,_cH_(_eO_(fmt_eT_),_b2_)));}
    function extract_format_fb_(fmt_eU_,start_e2_,stop_e4_,widths_e6_)
     {function skip_positional_spec_e1_(start_eV_)
       {if
         ((fmt_eU_.safeGet(start_eV_)-48|0)<
          0||
          9<
          (fmt_eU_.safeGet(start_eV_)-48|0))
         return start_eV_;
        var i_eW_=start_eV_+1|0;
        for(;;)
         {var _eX_=fmt_eU_.safeGet(i_eW_);
          if(48<=_eX_)
           {if(!(58<=_eX_)){var _eZ_=i_eW_+1|0,i_eW_=_eZ_;continue;}
            var _eY_=0;}
          else
           if(36===_eX_){var _e0_=i_eW_+1|0,_eY_=1;}else var _eY_=0;
          if(!_eY_)var _e0_=start_eV_;
          return _e0_;}}
      var
       start_e3_=skip_positional_spec_e1_(start_e2_+1|0),
       b_e5_=_ey_((stop_e4_-start_e3_|0)+10|0);
      _eA_(b_e5_,37);
      var i_e7_=start_e3_,widths_e8_=_dE_(widths_e6_);
      for(;;)
       {if(i_e7_<=stop_e4_)
         {var _e9_=fmt_eU_.safeGet(i_e7_);
          if(42===_e9_)
           {if(widths_e8_)
             {var t_e__=widths_e8_[2];
              _eB_(b_e5_,string_of_int_cQ_(widths_e8_[1]));
              var
               i_e$_=skip_positional_spec_e1_(i_e7_+1|0),
               i_e7_=i_e$_,
               widths_e8_=t_e__;
              continue;}
            throw [0,_d_,_b3_];}
          _eA_(b_e5_,_e9_);
          var _fa_=i_e7_+1|0,i_e7_=_fa_;
          continue;}
        return _ez_(b_e5_);}}
    function extract_format_int_g5_
     (conv_fh_,fmt_ff_,start_fe_,stop_fd_,widths_fc_)
     {var sfmt_fg_=extract_format_fb_(fmt_ff_,start_fe_,stop_fd_,widths_fc_);
      if(78!==conv_fh_&&110!==conv_fh_)return sfmt_fg_;
      sfmt_fg_.safeSet(sfmt_fg_.getLen()-1|0,117);
      return sfmt_fg_;}
    function sub_format_fH_
     (incomplete_format_fo_,bad_conversion_format_fy_,conv_fD_,fmt_fi_,i_fC_)
     {var len_fj_=fmt_fi_.getLen();
      function sub_fmt_fA_(c_fk_,i_fx_)
       {var close_fl_=40===c_fk_?41:125;
        function sub_fw_(j_fm_)
         {var j_fn_=j_fm_;
          for(;;)
           {if(len_fj_<=j_fn_)return _c7_(incomplete_format_fo_,fmt_fi_);
            if(37===fmt_fi_.safeGet(j_fn_))
             {var _fp_=j_fn_+1|0;
              if(len_fj_<=_fp_)
               var _fq_=_c7_(incomplete_format_fo_,fmt_fi_);
              else
               {var _fr_=fmt_fi_.safeGet(_fp_),_fs_=_fr_-40|0;
                if(_fs_<0||1<_fs_)
                 {var _ft_=_fs_-83|0;
                  if(_ft_<0||2<_ft_)
                   var _fu_=1;
                  else
                   switch(_ft_)
                    {case 1:var _fu_=1;break;
                     case 2:var _fv_=1,_fu_=0;break;
                     default:var _fv_=0,_fu_=0;}
                  if(_fu_){var _fq_=sub_fw_(_fp_+1|0),_fv_=2;}}
                else
                 var _fv_=0===_fs_?0:1;
                switch(_fv_)
                 {case 1:
                   var
                    _fq_=
                     _fr_===close_fl_
                      ?_fp_+1|0
                      :_fz_(bad_conversion_format_fy_,fmt_fi_,i_fx_,_fr_);
                   break;
                  case 2:break;
                  default:var _fq_=sub_fw_(sub_fmt_fA_(_fr_,_fp_+1|0)+1|0);}}
              return _fq_;}
            var _fB_=j_fn_+1|0,j_fn_=_fB_;
            continue;}}
        return sub_fw_(i_fx_);}
      return sub_fmt_fA_(conv_fD_,i_fC_);}
    function sub_format_for_printf_f7_(conv_fE_)
     {return _fz_
              (sub_format_fH_,
               incomplete_format_fG_,
               bad_conversion_format_fF_,
               conv_fE_);}
    function iter_on_format_args_gl_(fmt_fI_,add_conv_fT_,add_char_f3_)
     {var lim_fJ_=fmt_fI_.getLen()-1|0;
      function scan_fmt_f5_(i_fK_)
       {var i_fL_=i_fK_;
        a:
        for(;;)
         {if(i_fL_<lim_fJ_)
           {if(37===fmt_fI_.safeGet(i_fL_))
             {var skip_fM_=0,i_fN_=i_fL_+1|0;
              for(;;)
               {if(lim_fJ_<i_fN_)
                 var _fO_=incomplete_format_fG_(fmt_fI_);
                else
                 {var _fP_=fmt_fI_.safeGet(i_fN_);
                  if(58<=_fP_)
                   {if(95===_fP_)
                     {var _fR_=i_fN_+1|0,_fQ_=1,skip_fM_=_fQ_,i_fN_=_fR_;
                      continue;}}
                  else
                   if(32<=_fP_)
                    switch(_fP_-32|0)
                     {case 1:
                      case 2:
                      case 4:
                      case 5:
                      case 6:
                      case 7:
                      case 8:
                      case 9:
                      case 12:
                      case 15:break;
                      case 0:
                      case 3:
                      case 11:
                      case 13:var _fS_=i_fN_+1|0,i_fN_=_fS_;continue;
                      case 10:
                       var _fU_=_fz_(add_conv_fT_,skip_fM_,i_fN_,105),i_fN_=_fU_;
                       continue;
                      default:var _fV_=i_fN_+1|0,i_fN_=_fV_;continue;}
                  var i_fW_=i_fN_;
                  c:
                  for(;;)
                   {if(lim_fJ_<i_fW_)
                     var _fX_=incomplete_format_fG_(fmt_fI_);
                    else
                     {var _fY_=fmt_fI_.safeGet(i_fW_);
                      if(126<=_fY_)
                       var _fZ_=0;
                      else
                       switch(_fY_)
                        {case 78:
                         case 88:
                         case 100:
                         case 105:
                         case 111:
                         case 117:
                         case 120:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,105),_fZ_=1;break;
                         case 69:
                         case 70:
                         case 71:
                         case 101:
                         case 102:
                         case 103:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,102),_fZ_=1;break;
                         case 33:
                         case 37:
                         case 44:
                         case 64:var _fX_=i_fW_+1|0,_fZ_=1;break;
                         case 83:
                         case 91:
                         case 115:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,115),_fZ_=1;break;
                         case 97:
                         case 114:
                         case 116:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,_fY_),_fZ_=1;
                          break;
                         case 76:
                         case 108:
                         case 110:
                          var j_f0_=i_fW_+1|0;
                          if(lim_fJ_<j_f0_)
                           {var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,105),_fZ_=1;}
                          else
                           {var _f1_=fmt_fI_.safeGet(j_f0_)-88|0;
                            if(_f1_<0||32<_f1_)
                             var _f2_=1;
                            else
                             switch(_f1_)
                              {case 0:
                               case 12:
                               case 17:
                               case 23:
                               case 29:
                               case 32:
                                var
                                 _fX_=
                                  _f4_
                                   (add_char_f3_,_fz_(add_conv_fT_,skip_fM_,i_fW_,_fY_),105),
                                 _fZ_=1,
                                 _f2_=0;
                                break;
                               default:var _f2_=1;}
                            if(_f2_)
                             {var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,105),_fZ_=1;}}
                          break;
                         case 67:
                         case 99:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,99),_fZ_=1;break;
                         case 66:
                         case 98:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,66),_fZ_=1;break;
                         case 41:
                         case 125:
                          var _fX_=_fz_(add_conv_fT_,skip_fM_,i_fW_,_fY_),_fZ_=1;
                          break;
                         case 40:
                          var
                           _fX_=scan_fmt_f5_(_fz_(add_conv_fT_,skip_fM_,i_fW_,_fY_)),
                           _fZ_=1;
                          break;
                         case 123:
                          var
                           i_f6_=_fz_(add_conv_fT_,skip_fM_,i_fW_,_fY_),
                           j_f8_=_fz_(sub_format_for_printf_f7_,_fY_,fmt_fI_,i_f6_),
                           i_f9_=i_f6_;
                          for(;;)
                           {if(i_f9_<(j_f8_-2|0))
                             {var
                               _f__=_f4_(add_char_f3_,i_f9_,fmt_fI_.safeGet(i_f9_)),
                               i_f9_=_f__;
                              continue;}
                            var _f$_=j_f8_-1|0,i_fW_=_f$_;
                            continue c;}
                         default:var _fZ_=0;}
                      if(!_fZ_)
                       var _fX_=bad_conversion_format_fF_(fmt_fI_,i_fW_,_fY_);}
                    var _fO_=_fX_;
                    break;}}
                var i_fL_=_fO_;
                continue a;}}
            var _ga_=i_fL_+1|0,i_fL_=_ga_;
            continue;}
          return i_fL_;}}
      scan_fmt_f5_(0);
      return 0;}
    function count_arguments_of_format_ii_(fmt_gm_)
     {var ac_gb_=[0,0,0,0];
      function add_conv_gk_(skip_gg_,i_gh_,c_gc_)
       {var _gd_=41!==c_gc_?1:0,_ge_=_gd_?125!==c_gc_?1:0:_gd_;
        if(_ge_)
         {var inc_gf_=97===c_gc_?2:1;
          if(114===c_gc_)ac_gb_[3]=ac_gb_[3]+1|0;
          if(skip_gg_)
           ac_gb_[2]=ac_gb_[2]+inc_gf_|0;
          else
           ac_gb_[1]=ac_gb_[1]+inc_gf_|0;}
        return i_gh_+1|0;}
      iter_on_format_args_gl_
       (fmt_gm_,add_conv_gk_,function(i_gi_,param_gj_){return i_gi_+1|0;});
      return ac_gb_[1];}
    function scan_positional_spec_g1_(fmt_gn_,got_spec_gq_,i_go_)
     {var _gp_=fmt_gn_.safeGet(i_go_);
      if((_gp_-48|0)<0||9<(_gp_-48|0))return _f4_(got_spec_gq_,0,i_go_);
      var accu_gr_=_gp_-48|0,j_gs_=i_go_+1|0;
      for(;;)
       {var _gt_=fmt_gn_.safeGet(j_gs_);
        if(48<=_gt_)
         {if(!(58<=_gt_))
           {var
             _gw_=j_gs_+1|0,
             _gv_=(10*accu_gr_|0)+(_gt_-48|0)|0,
             accu_gr_=_gv_,
             j_gs_=_gw_;
            continue;}
          var _gu_=0;}
        else
         if(36===_gt_)
          if(0===accu_gr_)
           {var _gx_=_j_(_b5_),_gu_=1;}
          else
           {var
             _gx_=
              _f4_(got_spec_gq_,[0,index_of_int_eF_(accu_gr_-1|0)],j_gs_+1|0),
             _gu_=1;}
         else
          var _gu_=0;
        if(!_gu_)var _gx_=_f4_(got_spec_gq_,0,i_go_);
        return _gx_;}}
    function next_index_gW_(spec_gy_,n_gz_)
     {return spec_gy_?n_gz_:_c7_(_eH_,n_gz_);}
    function get_index_gL_(spec_gA_,n_gB_){return spec_gA_?spec_gA_[1]:n_gB_;}
    function _jE_
     (to_s_iC_,get_out_gD_,outc_iO_,outs_iD_,flush_in_,k_iU_,fmt_gC_)
     {var out_gE_=_c7_(get_out_gD_,fmt_gC_);
      function pr_im_(k_gJ_,n_iT_,fmt_gF_,v_gO_)
       {var len_gI_=fmt_gF_.getLen();
        function doprn_ij_(n_iL_,i_gG_)
         {var i_gH_=i_gG_;
          for(;;)
           {if(len_gI_<=i_gH_)return _c7_(k_gJ_,out_gE_);
            var _gK_=fmt_gF_.safeGet(i_gH_);
            if(37===_gK_)
             {var
               get_arg_gS_=
                function(spec_gN_,n_gM_)
                 {return caml_array_get(v_gO_,get_index_gL_(spec_gN_,n_gM_));},
               scan_flags_gY_=
                function(spec_g0_,n_gT_,widths_gV_,i_gP_)
                 {var i_gQ_=i_gP_;
                  for(;;)
                   {var _gR_=fmt_gF_.safeGet(i_gQ_)-32|0;
                    if(!(_gR_<0||25<_gR_))
                     switch(_gR_)
                      {case 1:
                       case 2:
                       case 4:
                       case 5:
                       case 6:
                       case 7:
                       case 8:
                       case 9:
                       case 12:
                       case 15:break;
                       case 10:
                        return scan_positional_spec_g1_
                                (fmt_gF_,
                                 function(wspec_gU_,i_gZ_)
                                  {var _gX_=[0,get_arg_gS_(wspec_gU_,n_gT_),widths_gV_];
                                   return scan_flags_gY_
                                           (spec_g0_,next_index_gW_(wspec_gU_,n_gT_),_gX_,i_gZ_);},
                                 i_gQ_+1|0);
                       default:var _g2_=i_gQ_+1|0,i_gQ_=_g2_;continue;}
                    var _g3_=fmt_gF_.safeGet(i_gQ_);
                    if(124<=_g3_)
                     var _g4_=0;
                    else
                     switch(_g3_)
                      {case 78:
                       case 88:
                       case 100:
                       case 105:
                       case 111:
                       case 117:
                       case 120:
                        var
                         x_g6_=get_arg_gS_(spec_g0_,n_gT_),
                         s_g7_=
                          caml_format_int
                           (extract_format_int_g5_(_g3_,fmt_gF_,i_gH_,i_gQ_,widths_gV_),
                            x_g6_),
                         _g9_=
                          cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_g7_,i_gQ_+1|0),
                         _g4_=1;
                        break;
                       case 69:
                       case 71:
                       case 101:
                       case 102:
                       case 103:
                        var
                         x_g__=get_arg_gS_(spec_g0_,n_gT_),
                         s_g$_=
                          caml_format_float
                           (extract_format_fb_(fmt_gF_,i_gH_,i_gQ_,widths_gV_),x_g__),
                         _g9_=
                          cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_g$_,i_gQ_+1|0),
                         _g4_=1;
                        break;
                       case 76:
                       case 108:
                       case 110:
                        var _ha_=fmt_gF_.safeGet(i_gQ_+1|0)-88|0;
                        if(_ha_<0||32<_ha_)
                         var _hb_=1;
                        else
                         switch(_ha_)
                          {case 0:
                           case 12:
                           case 17:
                           case 23:
                           case 29:
                           case 32:
                            var i_hc_=i_gQ_+1|0,_hd_=_g3_-108|0;
                            if(_hd_<0||2<_hd_)
                             var _he_=0;
                            else
                             {switch(_hd_)
                               {case 1:var _he_=0,_hf_=0;break;
                                case 2:
                                 var
                                  x_hg_=get_arg_gS_(spec_g0_,n_gT_),
                                  _hh_=
                                   caml_format_int
                                    (extract_format_fb_(fmt_gF_,i_gH_,i_hc_,widths_gV_),x_hg_),
                                  _hf_=1;
                                 break;
                                default:
                                 var
                                  x_hi_=get_arg_gS_(spec_g0_,n_gT_),
                                  _hh_=
                                   caml_format_int
                                    (extract_format_fb_(fmt_gF_,i_gH_,i_hc_,widths_gV_),x_hi_),
                                  _hf_=1;}
                              if(_hf_){var s_hj_=_hh_,_he_=1;}}
                            if(!_he_)
                             {var
                               x_hk_=get_arg_gS_(spec_g0_,n_gT_),
                               s_hj_=
                                caml_int64_format
                                 (extract_format_fb_(fmt_gF_,i_gH_,i_hc_,widths_gV_),x_hk_);}
                            var
                             _g9_=
                              cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_hj_,i_hc_+1|0),
                             _g4_=1,
                             _hb_=0;
                            break;
                           default:var _hb_=1;}
                        if(_hb_)
                         {var
                           x_hl_=get_arg_gS_(spec_g0_,n_gT_),
                           s_hm_=
                            caml_format_int
                             (extract_format_int_g5_(110,fmt_gF_,i_gH_,i_gQ_,widths_gV_),
                              x_hl_),
                           _g9_=
                            cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_hm_,i_gQ_+1|0),
                           _g4_=1;}
                        break;
                       case 37:
                       case 64:
                        var _g9_=cont_s_g8_(n_gT_,_d2_(1,_g3_),i_gQ_+1|0),_g4_=1;
                        break;
                       case 83:
                       case 115:
                        var x_hn_=get_arg_gS_(spec_g0_,n_gT_);
                        if(115===_g3_)
                         var x_ho_=x_hn_;
                        else
                         {var n_hp_=[0,0],_hq_=0,_hr_=x_hn_.getLen()-1|0;
                          if(!(_hr_<_hq_))
                           {var i_hs_=_hq_;
                            for(;;)
                             {var
                               _ht_=x_hn_.safeGet(i_hs_),
                               _hu_=
                                14<=_ht_
                                 ?34===_ht_?1:92===_ht_?1:0
                                 :11<=_ht_?13<=_ht_?1:0:8<=_ht_?1:0,
                               _hv_=_hu_?2:caml_is_printable(_ht_)?1:4;
                              n_hp_[1]=n_hp_[1]+_hv_|0;
                              var _hw_=i_hs_+1|0;
                              if(_hr_!==i_hs_){var i_hs_=_hw_;continue;}
                              break;}}
                          if(n_hp_[1]===x_hn_.getLen())
                           var _hx_=x_hn_;
                          else
                           {var s__hy_=caml_create_string(n_hp_[1]);
                            n_hp_[1]=0;
                            var _hz_=0,_hA_=x_hn_.getLen()-1|0;
                            if(!(_hA_<_hz_))
                             {var i_hB_=_hz_;
                              for(;;)
                               {var _hC_=x_hn_.safeGet(i_hB_),_hD_=_hC_-34|0;
                                if(_hD_<0||58<_hD_)
                                 if(-20<=_hD_)
                                  var _hE_=1;
                                 else
                                  {switch(_hD_+34|0)
                                    {case 8:
                                      s__hy_.safeSet(n_hp_[1],92);
                                      n_hp_[1]+=1;
                                      s__hy_.safeSet(n_hp_[1],98);
                                      var _hF_=1;
                                      break;
                                     case 9:
                                      s__hy_.safeSet(n_hp_[1],92);
                                      n_hp_[1]+=1;
                                      s__hy_.safeSet(n_hp_[1],116);
                                      var _hF_=1;
                                      break;
                                     case 10:
                                      s__hy_.safeSet(n_hp_[1],92);
                                      n_hp_[1]+=1;
                                      s__hy_.safeSet(n_hp_[1],110);
                                      var _hF_=1;
                                      break;
                                     case 13:
                                      s__hy_.safeSet(n_hp_[1],92);
                                      n_hp_[1]+=1;
                                      s__hy_.safeSet(n_hp_[1],114);
                                      var _hF_=1;
                                      break;
                                     default:var _hE_=1,_hF_=0;}
                                   if(_hF_)var _hE_=0;}
                                else
                                 var
                                  _hE_=
                                   (_hD_-1|0)<0||56<(_hD_-1|0)
                                    ?(s__hy_.safeSet(n_hp_[1],92),
                                      n_hp_[1]+=
                                      1,
                                      s__hy_.safeSet(n_hp_[1],_hC_),
                                      0)
                                    :1;
                                if(_hE_)
                                 if(caml_is_printable(_hC_))
                                  s__hy_.safeSet(n_hp_[1],_hC_);
                                 else
                                  {s__hy_.safeSet(n_hp_[1],92);
                                   n_hp_[1]+=1;
                                   s__hy_.safeSet(n_hp_[1],48+(_hC_/100|0)|0);
                                   n_hp_[1]+=1;
                                   s__hy_.safeSet(n_hp_[1],48+((_hC_/10|0)%10|0)|0);
                                   n_hp_[1]+=1;
                                   s__hy_.safeSet(n_hp_[1],48+(_hC_%10|0)|0);}
                                n_hp_[1]+=1;
                                var _hG_=i_hB_+1|0;
                                if(_hA_!==i_hB_){var i_hB_=_hG_;continue;}
                                break;}}
                            var _hx_=s__hy_;}
                          var x_ho_=_cH_(_b9_,_cH_(_hx_,_b__));}
                        if(i_gQ_===(i_gH_+1|0))
                         var s_hH_=x_ho_;
                        else
                         {var
                           _hI_=
                            extract_format_fb_(fmt_gF_,i_gH_,i_gQ_,widths_gV_);
                          try
                           {var neg_hJ_=0,i_hK_=1;
                            for(;;)
                             {if(_hI_.getLen()<=i_hK_)
                               var _hL_=[0,0,neg_hJ_];
                              else
                               {var _hM_=_hI_.safeGet(i_hK_);
                                if(49<=_hM_)
                                 if(58<=_hM_)
                                  var _hN_=0;
                                 else
                                  {var
                                    _hL_=
                                     [0,
                                      caml_int_of_string
                                       (_d3_(_hI_,i_hK_,(_hI_.getLen()-i_hK_|0)-1|0)),
                                      neg_hJ_],
                                    _hN_=1;}
                                else
                                 {if(45===_hM_)
                                   {var _hP_=i_hK_+1|0,_hO_=1,neg_hJ_=_hO_,i_hK_=_hP_;
                                    continue;}
                                  var _hN_=0;}
                                if(!_hN_){var _hQ_=i_hK_+1|0,i_hK_=_hQ_;continue;}}
                              var match_hR_=_hL_;
                              break;}}
                          catch(_hS_)
                           {if(_hS_[1]!==_a_)throw _hS_;
                            var match_hR_=bad_conversion_eQ_(_hI_,0,115);}
                          var
                           p_hT_=match_hR_[1],
                           _hU_=x_ho_.getLen(),
                           _hV_=0,
                           neg_hZ_=match_hR_[2],
                           _hY_=32;
                          if(p_hT_===_hU_&&0===_hV_)
                           {var _hW_=x_ho_,_hX_=1;}
                          else
                           var _hX_=0;
                          if(!_hX_)
                           if(p_hT_<=_hU_)
                            var _hW_=_d3_(x_ho_,_hV_,_hU_);
                           else
                            {var res_h0_=_d2_(p_hT_,_hY_);
                             if(neg_hZ_)
                              _d4_(x_ho_,_hV_,res_h0_,0,_hU_);
                             else
                              _d4_(x_ho_,_hV_,res_h0_,p_hT_-_hU_|0,_hU_);
                             var _hW_=res_h0_;}
                          var s_hH_=_hW_;}
                        var
                         _g9_=
                          cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_hH_,i_gQ_+1|0),
                         _g4_=1;
                        break;
                       case 67:
                       case 99:
                        var x_h1_=get_arg_gS_(spec_g0_,n_gT_);
                        if(99===_g3_)
                         var s_h2_=_d2_(1,x_h1_);
                        else
                         {if(39===x_h1_)
                           var _h3_=_cg_;
                          else
                           if(92===x_h1_)
                            var _h3_=_ch_;
                           else
                            {if(14<=x_h1_)
                              var _h4_=0;
                             else
                              switch(x_h1_)
                               {case 8:var _h3_=_cl_,_h4_=1;break;
                                case 9:var _h3_=_ck_,_h4_=1;break;
                                case 10:var _h3_=_cj_,_h4_=1;break;
                                case 13:var _h3_=_ci_,_h4_=1;break;
                                default:var _h4_=0;}
                             if(!_h4_)
                              if(caml_is_printable(x_h1_))
                               {var s_h5_=caml_create_string(1);
                                s_h5_.safeSet(0,x_h1_);
                                var _h3_=s_h5_;}
                              else
                               {var s_h6_=caml_create_string(4);
                                s_h6_.safeSet(0,92);
                                s_h6_.safeSet(1,48+(x_h1_/100|0)|0);
                                s_h6_.safeSet(2,48+((x_h1_/10|0)%10|0)|0);
                                s_h6_.safeSet(3,48+(x_h1_%10|0)|0);
                                var _h3_=s_h6_;}}
                          var s_h2_=_cH_(_b7_,_cH_(_h3_,_b8_));}
                        var
                         _g9_=
                          cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_h2_,i_gQ_+1|0),
                         _g4_=1;
                        break;
                       case 66:
                       case 98:
                        var
                         _h8_=i_gQ_+1|0,
                         _h7_=get_arg_gS_(spec_g0_,n_gT_)?_co_:_cn_,
                         _g9_=cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),_h7_,_h8_),
                         _g4_=1;
                        break;
                       case 40:
                       case 123:
                        var
                         xf_h9_=get_arg_gS_(spec_g0_,n_gT_),
                         j_h__=_fz_(sub_format_for_printf_f7_,_g3_,fmt_gF_,i_gQ_+1|0);
                        if(123===_g3_)
                         {var
                           b_h$_=_ey_(xf_h9_.getLen()),
                           add_char_id_=
                            function(i_ib_,c_ia_){_eA_(b_h$_,c_ia_);return i_ib_+1|0;};
                          iter_on_format_args_gl_
                           (xf_h9_,
                            function(skip_ic_,i_if_,c_ie_)
                             {if(skip_ic_)_eB_(b_h$_,_b4_);else _eA_(b_h$_,37);
                              return add_char_id_(i_if_,c_ie_);},
                            add_char_id_);
                          var
                           _ig_=_ez_(b_h$_),
                           _g9_=cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),_ig_,j_h__),
                           _g4_=1;}
                        else
                         {var
                           _ih_=next_index_gW_(spec_g0_,n_gT_),
                           m_ik_=
                            add_int_index_eG_
                             (count_arguments_of_format_ii_(xf_h9_),_ih_),
                           _g9_=
                            pr_im_
                             (function(param_il_){return doprn_ij_(m_ik_,j_h__);},
                              _ih_,
                              xf_h9_,
                              v_gO_),
                           _g4_=1;}
                        break;
                       case 33:
                        _c7_(flush_in_,out_gE_);
                        var _g9_=doprn_ij_(n_gT_,i_gQ_+1|0),_g4_=1;
                        break;
                       case 41:
                        var _g9_=cont_s_g8_(n_gT_,_ca_,i_gQ_+1|0),_g4_=1;break;
                       case 44:
                        var _g9_=cont_s_g8_(n_gT_,_b$_,i_gQ_+1|0),_g4_=1;break;
                       case 70:
                        var x_io_=get_arg_gS_(spec_g0_,n_gT_);
                        if(0===widths_gV_)
                         var s_ip_=string_of_float_cR_(x_io_);
                        else
                         {var
                           sfmt_iq_=
                            extract_format_fb_(fmt_gF_,i_gH_,i_gQ_,widths_gV_);
                          if(70===_g3_)sfmt_iq_.safeSet(sfmt_iq_.getLen()-1|0,103);
                          var s_ir_=caml_format_float(sfmt_iq_,x_io_);
                          if(3<=caml_classify_float(x_io_))
                           var _is_=s_ir_;
                          else
                           {var i_it_=0,l_iu_=s_ir_.getLen();
                            for(;;)
                             {if(l_iu_<=i_it_)
                               var _iv_=_cH_(s_ir_,_b6_);
                              else
                               {var
                                 _iw_=s_ir_.safeGet(i_it_)-46|0,
                                 _ix_=
                                  _iw_<0||23<_iw_
                                   ?55===_iw_?1:0
                                   :(_iw_-1|0)<0||21<(_iw_-1|0)?1:0;
                                if(!_ix_){var _iy_=i_it_+1|0,i_it_=_iy_;continue;}
                                var _iv_=s_ir_;}
                              var _is_=_iv_;
                              break;}}
                          var s_ip_=_is_;}
                        var
                         _g9_=
                          cont_s_g8_(next_index_gW_(spec_g0_,n_gT_),s_ip_,i_gQ_+1|0),
                         _g4_=1;
                        break;
                       case 91:
                        var
                         _g9_=bad_conversion_format_fF_(fmt_gF_,i_gQ_,_g3_),
                         _g4_=1;
                        break;
                       case 97:
                        var
                         printer_iz_=get_arg_gS_(spec_g0_,n_gT_),
                         n_iA_=_c7_(_eH_,get_index_gL_(spec_g0_,n_gT_)),
                         arg_iB_=get_arg_gS_(0,n_iA_),
                         _iF_=i_gQ_+1|0,
                         _iE_=next_index_gW_(spec_g0_,n_iA_);
                        if(to_s_iC_)
                         _f4_(outs_iD_,out_gE_,_f4_(printer_iz_,0,arg_iB_));
                        else
                         _f4_(printer_iz_,out_gE_,arg_iB_);
                        var _g9_=doprn_ij_(_iE_,_iF_),_g4_=1;
                        break;
                       case 114:
                        var
                         _g9_=bad_conversion_format_fF_(fmt_gF_,i_gQ_,_g3_),
                         _g4_=1;
                        break;
                       case 116:
                        var
                         printer_iG_=get_arg_gS_(spec_g0_,n_gT_),
                         _iI_=i_gQ_+1|0,
                         _iH_=next_index_gW_(spec_g0_,n_gT_);
                        if(to_s_iC_)
                         _f4_(outs_iD_,out_gE_,_c7_(printer_iG_,0));
                        else
                         _c7_(printer_iG_,out_gE_);
                        var _g9_=doprn_ij_(_iH_,_iI_),_g4_=1;
                        break;
                       default:var _g4_=0;}
                    if(!_g4_)
                     var _g9_=bad_conversion_format_fF_(fmt_gF_,i_gQ_,_g3_);
                    return _g9_;}},
               _iN_=i_gH_+1|0,
               _iK_=0;
              return scan_positional_spec_g1_
                      (fmt_gF_,
                       function(spec_iM_,i_iJ_)
                        {return scan_flags_gY_(spec_iM_,n_iL_,_iK_,i_iJ_);},
                       _iN_);}
            _f4_(outc_iO_,out_gE_,_gK_);
            var _iP_=i_gH_+1|0,i_gH_=_iP_;
            continue;}}
        function cont_s_g8_(n_iS_,s_iQ_,i_iR_)
         {_f4_(outs_iD_,out_gE_,s_iQ_);return doprn_ij_(n_iS_,i_iR_);}
        return doprn_ij_(n_iT_,0);}
      var
       kpr_iV_=_f4_(pr_im_,k_iU_,index_of_int_eF_(0)),
       _iW_=count_arguments_of_format_ii_(fmt_gC_);
      if(_iW_<0||6<_iW_)
       {var
         loop_i9_=
          function(i_iX_,args_i3_)
           {if(_iW_<=i_iX_)
             {var
               a_iY_=caml_make_vect(_iW_,0),
               _i1_=
                function(i_iZ_,arg_i0_)
                 {return caml_array_set(a_iY_,(_iW_-i_iZ_|0)-1|0,arg_i0_);},
               i_i2_=0,
               param_i4_=args_i3_;
              for(;;)
               {if(param_i4_)
                 {var _i5_=param_i4_[2],_i6_=param_i4_[1];
                  if(_i5_)
                   {_i1_(i_i2_,_i6_);
                    var _i7_=i_i2_+1|0,i_i2_=_i7_,param_i4_=_i5_;
                    continue;}
                  _i1_(i_i2_,_i6_);}
                return _f4_(kpr_iV_,fmt_gC_,a_iY_);}}
            return function(x_i8_)
             {return loop_i9_(i_iX_+1|0,[0,x_i8_,args_i3_]);};},
         _i__=loop_i9_(0,0);}
      else
       switch(_iW_)
        {case 1:
          var
           _i__=
            function(x_ja_)
             {var a_i$_=caml_make_vect(1,0);
              caml_array_set(a_i$_,0,x_ja_);
              return _f4_(kpr_iV_,fmt_gC_,a_i$_);};
          break;
         case 2:
          var
           _i__=
            function(x_jc_,y_jd_)
             {var a_jb_=caml_make_vect(2,0);
              caml_array_set(a_jb_,0,x_jc_);
              caml_array_set(a_jb_,1,y_jd_);
              return _f4_(kpr_iV_,fmt_gC_,a_jb_);};
          break;
         case 3:
          var
           _i__=
            function(x_jf_,y_jg_,z_jh_)
             {var a_je_=caml_make_vect(3,0);
              caml_array_set(a_je_,0,x_jf_);
              caml_array_set(a_je_,1,y_jg_);
              caml_array_set(a_je_,2,z_jh_);
              return _f4_(kpr_iV_,fmt_gC_,a_je_);};
          break;
         case 4:
          var
           _i__=
            function(x_jj_,y_jk_,z_jl_,t_jm_)
             {var a_ji_=caml_make_vect(4,0);
              caml_array_set(a_ji_,0,x_jj_);
              caml_array_set(a_ji_,1,y_jk_);
              caml_array_set(a_ji_,2,z_jl_);
              caml_array_set(a_ji_,3,t_jm_);
              return _f4_(kpr_iV_,fmt_gC_,a_ji_);};
          break;
         case 5:
          var
           _i__=
            function(x_jo_,y_jp_,z_jq_,t_jr_,u_js_)
             {var a_jn_=caml_make_vect(5,0);
              caml_array_set(a_jn_,0,x_jo_);
              caml_array_set(a_jn_,1,y_jp_);
              caml_array_set(a_jn_,2,z_jq_);
              caml_array_set(a_jn_,3,t_jr_);
              caml_array_set(a_jn_,4,u_js_);
              return _f4_(kpr_iV_,fmt_gC_,a_jn_);};
          break;
         case 6:
          var
           _i__=
            function(x_ju_,y_jv_,z_jw_,t_jx_,u_jy_,v_jz_)
             {var a_jt_=caml_make_vect(6,0);
              caml_array_set(a_jt_,0,x_ju_);
              caml_array_set(a_jt_,1,y_jv_);
              caml_array_set(a_jt_,2,z_jw_);
              caml_array_set(a_jt_,3,t_jx_);
              caml_array_set(a_jt_,4,u_jy_);
              caml_array_set(a_jt_,5,v_jz_);
              return _f4_(kpr_iV_,fmt_gC_,a_jt_);};
          break;
         default:var _i__=_f4_(kpr_iV_,fmt_gC_,[0]);}
      return _i__;}
    function _jS_(oc_jB_)
     {function _jD_(_jA_){return 0;}
      return _jF_
              (_jE_,
               0,
               function(param_jC_){return oc_jB_;},
               _c4_,
               output_string_c0_,
               _do_,
               _jD_);}
    function _jO_(fmt_jG_){return _ey_(2*fmt_jG_.getLen()|0);}
    function _jL_(k_jJ_,b_jH_)
     {var s_jI_=_ez_(b_jH_);b_jH_[2]=0;return _c7_(k_jJ_,s_jI_);}
    function _jR_(k_jK_)
     {var _jN_=_c7_(_jL_,k_jK_);
      return _jF_(_jE_,1,_jO_,_eA_,_eB_,function(_jM_){return 0;},_jN_);}
    function _jT_(fmt_jQ_)
     {return _f4_(_jR_,function(s_jP_){return s_jP_;},fmt_jQ_);}
    var _jU_=[0,0];
    function _j1_(x_jV_,i_jW_)
     {var f_jX_=x_jV_[i_jW_+1];
      return caml_obj_is_block(f_jX_)
              ?caml_obj_tag(f_jX_)===_ee_
                ?_f4_(_jT_,_bA_,f_jX_)
                :caml_obj_tag(f_jX_)===_ed_?string_of_float_cR_(f_jX_):_bz_
              :_f4_(_jT_,_bB_,f_jX_);}
    function _j0_(x_jY_,i_jZ_)
     {if(x_jY_.length-1<=i_jZ_)return _bV_;
      var _j2_=_j0_(x_jY_,i_jZ_+1|0);
      return _fz_(_jT_,_bU_,_j1_(x_jY_,i_jZ_),_j2_);}
    function _kj_(x_j4_)
     {var param_j3_=_jU_[1];
      for(;;)
       {if(param_j3_)
         {var tl_j9_=param_j3_[2],hd_j5_=param_j3_[1];
          try {var _j6_=_c7_(hd_j5_,x_j4_),_j7_=_j6_;}catch(_j__){var _j7_=0;}
          if(!_j7_){var param_j3_=tl_j9_;continue;}
          var _j8_=_j7_[1];}
        else
         if(x_j4_[1]===_cv_)
          var _j8_=_bK_;
         else
          if(x_j4_[1]===_ct_)
           var _j8_=_bJ_;
          else
           if(x_j4_[1]===_cu_)
            {var
              match_j$_=x_j4_[2],
              char_ka_=match_j$_[3],
              _j8_=
               _jF_
                (_jT_,
                 _e_,
                 match_j$_[1],
                 match_j$_[2],
                 char_ka_,
                 char_ka_+5|0,
                 _bI_);}
           else
            if(x_j4_[1]===_d_)
             {var
               match_kb_=x_j4_[2],
               char_kc_=match_kb_[3],
               _j8_=
                _jF_
                 (_jT_,
                  _e_,
                  match_kb_[1],
                  match_kb_[2],
                  char_kc_,
                  char_kc_+6|0,
                  _bH_);}
            else
             if(x_j4_[1]===_cs_)
              {var
                match_kd_=x_j4_[2],
                char_ke_=match_kd_[3],
                _j8_=
                 _jF_
                  (_jT_,
                   _e_,
                   match_kd_[1],
                   match_kd_[2],
                   char_ke_,
                   char_ke_+6|0,
                   _bG_);}
             else
              {var _kf_=x_j4_.length-1,constructor_ki_=x_j4_[0+1][0+1];
               if(_kf_<0||2<_kf_)
                {var
                  _kg_=_j0_(x_j4_,2),
                  _kh_=_fz_(_jT_,_bF_,_j1_(x_j4_,1),_kg_);}
               else
                switch(_kf_)
                 {case 1:var _kh_=_bD_;break;
                  case 2:var _kh_=_f4_(_jT_,_bC_,_j1_(x_j4_,1));break;
                  default:var _kh_=_bE_;}
               var _j8_=_cH_(constructor_ki_,_kh_);}
        return _j8_;}}
    32===_d6_;
    function _km_(param_kl_)
     {var seq_kk_=[];
      caml_update_dummy(seq_kk_,[0,seq_kk_,seq_kk_]);
      return seq_kk_;}
    var Canceled_kn_=[0,_bp_],current_data_ko_=[0,0],max_removed_k__=42;
    function repr_rec_ks_(t_kp_)
     {var _kq_=t_kp_[1];
      {if(3===_kq_[0])
        {var t__kr_=_kq_[1],t___kt_=repr_rec_ks_(t__kr_);
         if(t___kt_!==t__kr_)t_kp_[1]=[3,t___kt_];
         return t___kt_;}
       return t_kp_;}}
    function repr_k$_(t_ku_){return repr_rec_ks_(t_ku_);}
    function call_unsafe_k4_(f_kw_,x_kv_)
     {try
       {var _kx_=_c7_(f_kw_,x_kv_);}
      catch(_ky_)
       {_kj_(_ky_);
        caml_ml_output_char(stderr_cS_,10);
        var _kz_=caml_get_exception_backtrace(0);
        if(_kz_)
         {var a_kA_=_kz_[1],_kB_=0,_kC_=a_kA_.length-1-1|0;
          if(!(_kC_<_kB_))
           {var i_kD_=_kB_;
            for(;;)
             {if(caml_notequal(caml_array_get(a_kA_,i_kD_),_bT_))
               {var
                 _kE_=caml_array_get(a_kA_,i_kD_),
                 is_raise_kF_=0===_kE_[0]?_kE_[1]:_kE_[1],
                 info_kG_=is_raise_kF_?0===i_kD_?_bQ_:_bP_:0===i_kD_?_bO_:_bN_,
                 _kH_=
                  0===_kE_[0]
                   ?_jF_(_jT_,_bM_,info_kG_,_kE_[2],_kE_[3],_kE_[4],_kE_[5])
                   :_f4_(_jT_,_bL_,info_kG_);
                _fz_(_jS_,stderr_cS_,_bS_,_kH_);}
              var _kI_=i_kD_+1|0;
              if(_kC_!==i_kD_){var i_kD_=_kI_;continue;}
              break;}}}
        else
         _f4_(_jS_,stderr_cS_,_bR_);
        do_at_exit_cZ_(0);
        return caml_sys_exit(2);}
      return _kx_;}
    function run_waiters_rec_kT_(state_kN_,ws_kJ_,rem_kL_)
     {var ws_kK_=ws_kJ_,rem_kM_=rem_kL_;
      for(;;)
       if(typeof ws_kK_==="number")
        return run_waiters_rec_next_kO_(state_kN_,rem_kM_);
       else
        switch(ws_kK_[0])
         {case 1:
           _c7_(ws_kK_[1],state_kN_);
           return run_waiters_rec_next_kO_(state_kN_,rem_kM_);
          case 2:
           var
            ws1_kP_=ws_kK_[1],
            _kQ_=[0,ws_kK_[2],rem_kM_],
            ws_kK_=ws1_kP_,
            rem_kM_=_kQ_;
           continue;
          default:
           var _kR_=ws_kK_[1][1];
           return _kR_
                   ?(_c7_(_kR_[1],state_kN_),
                     run_waiters_rec_next_kO_(state_kN_,rem_kM_))
                   :run_waiters_rec_next_kO_(state_kN_,rem_kM_);}}
    function run_waiters_rec_next_kO_(state_kU_,rem_kS_)
     {return rem_kS_?run_waiters_rec_kT_(state_kU_,rem_kS_[1],rem_kS_[2]):0;}
    function run_cancel_handlers_rec_k6_(chs_kV_,rem_kX_)
     {var chs_kW_=chs_kV_,rem_kY_=rem_kX_;
      for(;;)
       if(typeof chs_kW_==="number")
        return run_cancel_handlers_rec_next_k0_(rem_kY_);
       else
        switch(chs_kW_[0])
         {case 1:
           var n_kZ_=chs_kW_[1];
           if(n_kZ_[4]){n_kZ_[4]=0;n_kZ_[1][2]=n_kZ_[2];n_kZ_[2][1]=n_kZ_[1];}
           return run_cancel_handlers_rec_next_k0_(rem_kY_);
          case 2:
           var
            chs1_k1_=chs_kW_[1],
            _k2_=[0,chs_kW_[2],rem_kY_],
            chs_kW_=chs1_k1_,
            rem_kY_=_k2_;
           continue;
          default:
           var f_k3_=chs_kW_[2];
           current_data_ko_[1]=chs_kW_[1];
           call_unsafe_k4_(f_k3_,0);
           return run_cancel_handlers_rec_next_k0_(rem_kY_);}}
    function run_cancel_handlers_rec_next_k0_(rem_k5_)
     {return rem_k5_?run_cancel_handlers_rec_k6_(rem_k5_[1],rem_k5_[2]):0;}
    function unsafe_run_waiters_la_(sleeper_k8_,state_k7_)
     {var
       _k9_=
        1===state_k7_[0]
         ?state_k7_[1][1]===Canceled_kn_
           ?(run_cancel_handlers_rec_k6_(sleeper_k8_[4],0),1)
           :0
         :0;
      _k9_;
      return run_waiters_rec_kT_(state_k7_,sleeper_k8_[2],0);}
    var wakening_lb_=[0,0],to_wakeup_lc_=_ec_(0);
    function wakeup_result_ln_(t_ld_,result_lg_)
     {var t_le_=repr_rec_ks_(t_ld_),_lf_=t_le_[1];
      switch(_lf_[0])
       {case 1:if(_lf_[1][1]===Canceled_kn_)return 0;break;
        case 2:
         var sleeper_lh_=_lf_[1];
         t_le_[1]=result_lg_;
         var
          snapshot_li_=current_data_ko_[1],
          already_wakening_lj_=wakening_lb_[1]?1:(wakening_lb_[1]=1,0);
         unsafe_run_waiters_la_(sleeper_lh_,result_lg_);
         if(already_wakening_lj_)
          {current_data_ko_[1]=snapshot_li_;var _lk_=0;}
         else
          for(;;)
           {if(0!==to_wakeup_lc_[1])
             {var closure_ll_=_ef_(to_wakeup_lc_);
              unsafe_run_waiters_la_(closure_ll_[1],closure_ll_[2]);
              continue;}
            wakening_lb_[1]=0;
            current_data_ko_[1]=snapshot_li_;
            var _lk_=0;
            break;}
         return _lk_;
        default:}
      return _cw_(_bq_);}
    function wakeup_lP_(t_lo_,v_lm_)
     {return wakeup_result_ln_(t_lo_,[0,v_lm_]);}
    function append_lv_(l1_lp_,l2_lq_)
     {return typeof l1_lp_==="number"
              ?l2_lq_
              :typeof l2_lq_==="number"?l1_lp_:[2,l1_lp_,l2_lq_];}
    function cleanup_ls_(ws_lr_)
     {if(typeof ws_lr_!=="number")
       switch(ws_lr_[0])
        {case 2:
          var l1_lt_=ws_lr_[1],_lu_=cleanup_ls_(ws_lr_[2]);
          return append_lv_(cleanup_ls_(l1_lt_),_lu_);
         case 1:break;
         default:if(!ws_lr_[1][1])return 0;}
      return ws_lr_;}
    function connect_lQ_(t1_lw_,t2_ly_)
     {var t1_lx_=repr_k$_(t1_lw_),t2_lz_=repr_k$_(t2_ly_),_lA_=t1_lx_[1];
      {if(2===_lA_[0])
        {var sleeper1_lB_=_lA_[1];
         if(t1_lx_===t2_lz_)return 0;
         var _lC_=t2_lz_[1];
         {if(2===_lC_[0])
           {var sleeper2_lD_=_lC_[1];
            t2_lz_[1]=[3,t1_lx_];
            sleeper1_lB_[1]=sleeper2_lD_[1];
            var
             waiters_lE_=append_lv_(sleeper1_lB_[2],sleeper2_lD_[2]),
             removed_lF_=sleeper1_lB_[3]+sleeper2_lD_[3]|0;
            if(max_removed_k__<removed_lF_)
             {sleeper1_lB_[3]=0;sleeper1_lB_[2]=cleanup_ls_(waiters_lE_);}
            else
             {sleeper1_lB_[3]=removed_lF_;sleeper1_lB_[2]=waiters_lE_;}
            var
             _lG_=sleeper2_lD_[4],
             _lH_=sleeper1_lB_[4],
             _lI_=
              typeof _lH_==="number"
               ?_lG_
               :typeof _lG_==="number"?_lH_:[2,_lH_,_lG_];
            sleeper1_lB_[4]=_lI_;
            return 0;}
          t1_lx_[1]=_lC_;
          return unsafe_run_waiters_la_(sleeper1_lB_,_lC_);}}
       throw [0,_d_,_br_];}}
    function fast_connect_lR_(t_lJ_,state_lM_)
     {var t_lK_=repr_k$_(t_lJ_),_lL_=t_lK_[1];
      {if(2===_lL_[0])
        {var sleeper_lN_=_lL_[1];
         t_lK_[1]=state_lM_;
         return unsafe_run_waiters_la_(sleeper_lN_,state_lM_);}
       throw [0,_d_,_bs_];}}
    function return_lS_(v_lO_){return [0,[0,v_lO_]];}
    var return_unit_mF_=[0,state_return_unit_bo_];
    function fail_mk_(e_lT_){return [0,[1,e_lT_]];}
    function temp_mb_(t_lU_){return [0,[2,[0,[0,[0,t_lU_]],0,0,0]]];}
    function task_mG_(param_lW_)
     {var _lV_=[0,[2,[0,1,0,0,0]]];return [0,_lV_,_lV_];}
    function add_immutable_waiter_mm_(sleeper_lZ_,waiter_lX_)
     {var
       _lY_=[1,waiter_lX_],
       _l0_=sleeper_lZ_[2],
       _l1_=typeof _l0_==="number"?_lY_:[2,_lY_,_l0_];
      sleeper_lZ_[2]=_l1_;
      return 0;}
    function on_cancel_mH_(t_l2_,f_l4_)
     {var _l3_=repr_k$_(t_l2_)[1];
      switch(_l3_[0])
       {case 1:
         if(_l3_[1][1]===Canceled_kn_)return call_unsafe_k4_(f_l4_,0);break;
        case 2:
         var
          sleeper_l5_=_l3_[1],
          handler_l6_=[0,current_data_ko_[1],f_l4_],
          _l7_=sleeper_l5_[4],
          _l8_=typeof _l7_==="number"?handler_l6_:[2,handler_l6_,_l7_];
         sleeper_l5_[4]=_l8_;
         return 0;
        default:}
      return 0;}
    function _mI_(t_l9_,f_mh_)
     {var t_l__=repr_k$_(t_l9_),_l$_=t_l__[1];
      switch(_l$_[0])
       {case 1:var _ma_=[0,_l$_];break;
        case 2:
         var
          sleeper_md_=_l$_[1],
          res_mc_=temp_mb_(t_l__),
          data_mf_=current_data_ko_[1];
         add_immutable_waiter_mm_
          (sleeper_md_,
           function(state_me_)
            {switch(state_me_[0])
              {case 0:
                var v_mg_=state_me_[1];
                current_data_ko_[1]=data_mf_;
                try
                 {var _mi_=_c7_(f_mh_,v_mg_),_mj_=_mi_;}
                catch(_ml_){var _mj_=fail_mk_(_ml_);}
                return connect_lQ_(res_mc_,_mj_);
               case 1:return fast_connect_lR_(res_mc_,state_me_);
               default:throw [0,_d_,_bu_];}});
         var _ma_=res_mc_;
         break;
        case 3:throw [0,_d_,_bt_];
        default:var _ma_=_c7_(f_mh_,_l$_[1]);}
      return _ma_;}
    function _mJ_(t_mn_,f_mw_)
     {var t_mo_=repr_k$_(t_mn_),_mp_=t_mo_[1];
      switch(_mp_[0])
       {case 1:var _mq_=[0,_mp_];break;
        case 2:
         var
          sleeper_ms_=_mp_[1],
          res_mr_=temp_mb_(t_mo_),
          data_mu_=current_data_ko_[1];
         add_immutable_waiter_mm_
          (sleeper_ms_,
           function(state_mt_)
            {switch(state_mt_[0])
              {case 0:
                var v_mv_=state_mt_[1];
                current_data_ko_[1]=data_mu_;
                try
                 {var _mx_=[0,_c7_(f_mw_,v_mv_)],_my_=_mx_;}
                catch(_mz_){var _my_=[1,_mz_];}
                return fast_connect_lR_(res_mr_,_my_);
               case 1:return fast_connect_lR_(res_mr_,state_mt_);
               default:throw [0,_d_,_bw_];}});
         var _mq_=res_mr_;
         break;
        case 3:throw [0,_d_,_bv_];
        default:
         var v_mA_=_mp_[1];
         try
          {var _mB_=[0,_c7_(f_mw_,v_mA_)],_mC_=_mB_;}
         catch(_mD_){var _mC_=[1,_mD_];}
         var _mq_=[0,_mC_];}
      return _mq_;}
    var pause_hook_mL_=[0,function(_mE_){return 0;}],_mK_=_km_(0),_mO_=[0,0];
    function _m0_(param_mS_)
     {var _mM_=1-(_mK_[2]===_mK_?1:0);
      if(_mM_)
       {var tmp_mN_=_km_(0);
        tmp_mN_[1][2]=_mK_[2];
        _mK_[2][1]=tmp_mN_[1];
        tmp_mN_[1]=_mK_[1];
        _mK_[1][2]=tmp_mN_;
        _mK_[1]=_mK_;
        _mK_[2]=_mK_;
        _mO_[1]=0;
        var curr_mP_=tmp_mN_[2];
        for(;;)
         {var _mQ_=curr_mP_!==tmp_mN_?1:0;
          if(_mQ_)
           {if(curr_mP_[4])wakeup_lP_(curr_mP_[3],0);
            var _mR_=curr_mP_[2],curr_mP_=_mR_;
            continue;}
          return _mQ_;}}
      return _mM_;}
    function iter_s_mU_(f_mW_,l_mT_)
     {if(l_mT_)
       {var
         l_mV_=l_mT_[2],
         x_mY_=l_mT_[1],
         _mZ_=function(param_mX_){return iter_s_mU_(f_mW_,l_mV_);};
        return _mI_(_c7_(f_mW_,x_mY_),_mZ_);}
      return return_unit_mF_;}
    var null_m1_=null,undefined_m2_=undefined;
    function _no_(x_m3_,f_m4_)
     {return x_m3_==null_m1_?null_m1_:_c7_(f_m4_,x_m3_);}
    function _nb_(x_m5_,f_m6_,g_m7_)
     {return x_m5_==null_m1_?_c7_(f_m6_,0):_c7_(g_m7_,x_m5_);}
    function _np_(x_m8_,f_m9_){return x_m8_==null_m1_?_c7_(f_m9_,0):x_m8_;}
    function _nq_(x_nc_)
     {function _na_(x_m__){return [0,x_m__];}
      return _nb_(x_nc_,function(param_m$_){return 0;},_na_);}
    function _nr_(x_nd_){return x_nd_!==undefined_m2_?1:0;}
    function _nm_(x_ne_,f_nf_,g_ng_)
     {return x_ne_===undefined_m2_?_c7_(f_nf_,0):_c7_(g_ng_,x_ne_);}
    function _ns_(x_nh_,f_ni_)
     {return x_nh_===undefined_m2_?_c7_(f_ni_,0):x_nh_;}
    function _nt_(x_nn_)
     {function _nl_(x_nj_){return [0,x_nj_];}
      return _nm_(x_nn_,function(param_nk_){return 0;},_nl_);}
    var
     _true_nu_=true,
     _false_nv_=false,
     regExp_nw_=RegExp,
     array_constructor_nx_=Array;
    function array_get_nC_(_ny_,_nz_){return _ny_[_nz_];}
    function str_array_nD_(_nA_){return _nA_;}
    function match_result_nE_(_nB_){return _nB_;}
    var date_constr_nF_=Date,math_nJ_=Math;
    function escape_nI_(s_nG_){return escape(s_nG_);}
    function _nK_(e_nH_)
     {return e_nH_ instanceof array_constructor_nx_
              ?0
              :[0,new MlWrappedString(e_nH_.toString())];}
    _jU_[1]=[0,_nK_,_jU_[1]];
    function _nN_(_nL_){return _nL_;}
    function _nO_(_nM_){return _nM_;}
    function handler_nU_(f_nQ_)
     {return _nO_
              (caml_js_wrap_callback
                (function(e_nP_)
                  {if(e_nP_)
                    {var res_nR_=_c7_(f_nQ_,e_nP_);
                     if(!(res_nR_|0))e_nP_.preventDefault();
                     return res_nR_;}
                   var _nS_=event,res_nT_=_c7_(f_nQ_,_nS_);
                   _nS_.returnValue=res_nT_;
                   return res_nT_;}));}
    var
     onIE_nV_=caml_js_on_ie(0)|0,
     window_nW_=window,
     document_nX_=window_nW_.document,
     html_element_nY_=window.HTMLElement,
     float32Array_n2_=window.Float32Array,
     _n0_=
      _nN_(html_element_nY_)===undefined_m2_
       ?function(e_nZ_)
         {return _nN_(e_nZ_.innerHTML)===undefined_m2_?null_m1_:_nO_(e_nZ_);}
       :function(e_n1_)
         {return e_n1_ instanceof html_element_nY_?_nO_(e_n1_):null_m1_;};
    function _n6_(tag_n3_,e_n4_)
     {var _n5_=tag_n3_.toString();
      return e_n4_.tagName.toLowerCase()===_n5_?_nO_(e_n4_):null_m1_;}
    function _n9_(e_n7_){return _n6_(_bm_,e_n7_);}
    function _oa_(e_n8_){return _n6_(_bn_,e_n8_);}
    var _n$_=window.FileReader;
    pause_hook_mL_[1]=
    function(param_n__)
     {return 1===param_n__
              ?(window_nW_.setTimeout(caml_js_wrap_callback(_m0_),0),0)
              :0;};
    var _ob_=caml_js_get_console(0);
    function regexp_on_(s_oc_)
     {var _od_=_be_.toString();
      return new regExp_nw_(caml_js_from_byte_string(s_oc_),_od_);}
    function string_match_oo_(r_oe_,s_og_,i_of_)
     {r_oe_.lastIndex=i_of_;
      var
       _oh_=r_oe_.exec(caml_js_from_byte_string(s_og_)),
       _oi_=_oh_==null_m1_?null_m1_:match_result_nE_(_oh_);
      return _nq_(_oi_);}
    function matched_group_op_(r_ok_,i_oj_)
     {var
       _ol_=array_get_nC_(r_ok_,i_oj_),
       _om_=_ol_===undefined_m2_?undefined_m2_:caml_js_to_byte_string(_ol_);
      return _nt_(_om_);}
    var
     quote_repl_re_oq_=new regExp_nw_(_bc_.toString(),_bd_.toString()),
     _os_=regexp_on_(_bb_),
     l_or_=window_nW_.location;
    function split_ov_(c_ot_,s_ou_)
     {return str_array_nD_(s_ou_.split(_d2_(1,c_ot_).toString()));}
    var Local_exn_ow_=[0,_au_];
    function interrupt_oy_(param_ox_){throw [0,Local_exn_ow_];}
    var
     af2e6a4db_oz_=caml_js_from_byte_string(_at_),
     _oA_=
      regexp_on_
       (caml_js_to_byte_string(af2e6a4db_oz_.replace(_os_,_bg_.toString())));
    function urldecode_js_string_string_oI_(s_oB_)
     {return caml_js_to_byte_string(unescape(s_oB_));}
    function urlencode_oJ_(_opt__oC_,s_oE_)
     {var with_plus_oD_=_opt__oC_?_opt__oC_[1]:1;
      if(with_plus_oD_)
       {var
         _oF_=
          caml_js_to_byte_string(escape_nI_(caml_js_from_byte_string(s_oE_)));
        _oA_.lastIndex=0;
        var
         a41432fb9_oG_=caml_js_from_byte_string(_oF_),
         a11bb050d_oH_=caml_js_from_byte_string(_av_);
        return caml_js_to_byte_string
                (a41432fb9_oG_.replace
                  (_oA_,
                   a11bb050d_oH_.replace(quote_repl_re_oq_,_bf_.toString())));}
      return caml_js_to_byte_string
              (escape_nI_(caml_js_from_byte_string(s_oE_)));}
    var Not_an_http_protocol_pk_=[0,_as_];
    function path_of_path_string_oQ_(s_oK_)
     {try
       {var length_oL_=s_oK_.getLen();
        if(0===length_oL_)
         var _oM_=_ba_;
        else
         {var i_oN_=0,_oP_=47,_oO_=s_oK_.getLen();
          for(;;)
           {if(_oO_<=i_oN_)throw [0,_c_];
            if(s_oK_.safeGet(i_oN_)!==_oP_)
             {var _oT_=i_oN_+1|0,i_oN_=_oT_;continue;}
            if(0===i_oN_)
             var
              _oR_=
               [0,_a$_,path_of_path_string_oQ_(_d3_(s_oK_,1,length_oL_-1|0))];
            else
             {var
               _oS_=
                path_of_path_string_oQ_
                 (_d3_(s_oK_,i_oN_+1|0,(length_oL_-i_oN_|0)-1|0)),
               _oR_=[0,_d3_(s_oK_,0,i_oN_),_oS_];}
            var _oM_=_oR_;
            break;}}}
      catch(_oU_){if(_oU_[1]===_c_)return [0,s_oK_,0];throw _oU_;}
      return _oM_;}
    function encode_arguments_pl_(l_oY_)
     {return _d5_
              (_aC_,
               _dy_
                (function(param_oV_)
                  {var
                    n_oW_=param_oV_[1],
                    _oX_=_cH_(_aD_,urlencode_oJ_(0,param_oV_[2]));
                   return _cH_(urlencode_oJ_(0,n_oW_),_oX_);},
                 l_oY_));}
    function decode_arguments_js_string_pm_(s_oZ_)
     {var arr_o0_=split_ov_(38,s_oZ_),len_pj_=arr_o0_.length;
      function aux_pf_(acc_pe_,idx_o1_)
       {var idx_o2_=idx_o1_;
        for(;;)
         {if(0<=idx_o2_)
           {try
             {var
               _pc_=idx_o2_-1|0,
               _pd_=
                function(s_o9_)
                 {function _o$_(param_o3_)
                   {var y_o7_=param_o3_[2],x_o6_=param_o3_[1];
                    function get_o5_(t_o4_)
                     {return urldecode_js_string_string_oI_
                              (_ns_(t_o4_,interrupt_oy_));}
                    var _o8_=get_o5_(y_o7_);
                    return [0,get_o5_(x_o6_),_o8_];}
                  var arr_bis_o__=split_ov_(61,s_o9_);
                  if(2===arr_bis_o__.length)
                   {var
                     _pa_=array_get_nC_(arr_bis_o__,1),
                     _pb_=_nN_([0,array_get_nC_(arr_bis_o__,0),_pa_]);}
                  else
                   var _pb_=undefined_m2_;
                  return _nm_(_pb_,interrupt_oy_,_o$_);},
               _pg_=
                aux_pf_
                 ([0,
                   _nm_(array_get_nC_(arr_o0_,idx_o2_),interrupt_oy_,_pd_),
                   acc_pe_],
                  _pc_);}
            catch(_ph_)
             {if(_ph_[1]===Local_exn_ow_)
               {var _pi_=idx_o2_-1|0,idx_o2_=_pi_;continue;}
              throw _ph_;}
            return _pg_;}
          return acc_pe_;}}
      return aux_pf_(0,len_pj_-1|0);}
    var
     url_re_pn_=new regExp_nw_(caml_js_from_byte_string(_ar_)),
     file_re_pY_=new regExp_nw_(caml_js_from_byte_string(_aq_));
    function string_of_url_pX_(param_po_)
     {switch(param_po_[0])
       {case 1:
         var
          match_pp_=param_po_[1],
          frag_pq_=match_pp_[6],
          args_pr_=match_pp_[5],
          port_ps_=match_pp_[2],
          path_pv_=match_pp_[3],
          host_pu_=match_pp_[1],
          _pt_=
           caml_string_notequal(frag_pq_,_a0_)
            ?_cH_(_aZ_,urlencode_oJ_(0,frag_pq_))
            :_aY_,
          _pw_=args_pr_?_cH_(_aX_,encode_arguments_pl_(args_pr_)):_aW_,
          _py_=_cH_(_pw_,_pt_),
          _pA_=
           _cH_
            (_aU_,
             _cH_
              (_d5_
                (_aV_,
                 _dy_
                  (function(eta_px_){return urlencode_oJ_(0,eta_px_);},
                   path_pv_)),
               _py_)),
          _pz_=443===port_ps_?_aS_:_cH_(_aT_,string_of_int_cQ_(port_ps_)),
          _pB_=_cH_(_pz_,_pA_);
         return _cH_(_aR_,_cH_(urlencode_oJ_(0,host_pu_),_pB_));
        case 2:
         var
          match_pC_=param_po_[1],
          frag_pD_=match_pC_[4],
          args_pE_=match_pC_[3],
          path_pG_=match_pC_[1],
          _pF_=
           caml_string_notequal(frag_pD_,_aQ_)
            ?_cH_(_aP_,urlencode_oJ_(0,frag_pD_))
            :_aO_,
          _pH_=args_pE_?_cH_(_aN_,encode_arguments_pl_(args_pE_)):_aM_,
          _pJ_=_cH_(_pH_,_pF_);
         return _cH_
                 (_aK_,
                  _cH_
                   (_d5_
                     (_aL_,
                      _dy_
                       (function(eta_pI_){return urlencode_oJ_(0,eta_pI_);},
                        path_pG_)),
                    _pJ_));
        default:
         var
          match_pK_=param_po_[1],
          frag_pL_=match_pK_[6],
          args_pM_=match_pK_[5],
          port_pN_=match_pK_[2],
          path_pQ_=match_pK_[3],
          host_pP_=match_pK_[1],
          _pO_=
           caml_string_notequal(frag_pL_,_a__)
            ?_cH_(_a9_,urlencode_oJ_(0,frag_pL_))
            :_a8_,
          _pR_=args_pM_?_cH_(_a7_,encode_arguments_pl_(args_pM_)):_a6_,
          _pT_=_cH_(_pR_,_pO_),
          _pV_=
           _cH_
            (_a4_,
             _cH_
              (_d5_
                (_a5_,
                 _dy_
                  (function(eta_pS_){return urlencode_oJ_(0,eta_pS_);},
                   path_pQ_)),
               _pT_)),
          _pU_=80===port_pN_?_a2_:_cH_(_a3_,string_of_int_cQ_(port_pN_)),
          _pW_=_cH_(_pU_,_pV_);
         return _cH_(_a1_,_cH_(urlencode_oJ_(0,host_pP_),_pW_));}}
    urldecode_js_string_string_oI_(l_or_.hostname);
    try
     {caml_int_of_string(caml_js_to_byte_string(l_or_.port));}
    catch(_pZ_){if(_pZ_[1]!==_a_)throw _pZ_;}
    path_of_path_string_oQ_(urldecode_js_string_string_oI_(l_or_.pathname));
    decode_arguments_js_string_pm_(l_or_.search);
    urldecode_js_string_string_oI_(l_or_.href);
    var formData_p7_=window.FormData;
    function _p6_(form_contents_p0_,form_elt_p2_)
     {if(891486873<=form_contents_p0_[1])
       {var list_p1_=form_contents_p0_[2];
        list_p1_[1]=[0,form_elt_p2_,list_p1_[1]];
        return 0;}
      var
       f_p3_=form_contents_p0_[2],
       _p4_=form_elt_p2_[2],
       _p5_=form_elt_p2_[1];
      return 781515420<=_p4_[1]
              ?f_p3_.append(_p5_.toString(),_p4_[2])
              :f_p3_.append(_p5_.toString(),_p4_[2]);}
    function _p9_(param_p8_){return ActiveXObject;}
    var _qH_=[0,_N_];
    function error_qe_(f_p$_)
     {return _f4_
              (_jR_,
               function(s_p__)
                {_ob_.error(s_p__.toString());return _j_(s_p__);},
               f_p$_);}
    function debug_qI_(f_qb_)
     {return _f4_
              (_jR_,function(s_qa_){return _ob_.log(s_qa_.toString());},f_qb_);}
    function check_error_qJ_(gl_qc_)
     {var _qd_=gl_qc_.NO;
      return caml_notequal(gl_qc_.getError(),_qd_)?error_qe_(_m_):0;}
    function load_shader_qK_(gl_qf_,shader_qh_,text_qg_)
     {gl_qf_.shaderSource(shader_qh_,text_qg_);
      gl_qf_.compileShader(shader_qh_);
      if(gl_qf_.getShaderParameter(shader_qh_,gl_qf_.COMPILE_STATUS)|0)
       return 0;
      var _qi_=new MlWrappedString(gl_qf_.getShaderInfoLog(shader_qh_));
      return _fz_(error_qe_,_p_,new MlWrappedString(text_qg_),_qi_);}
    function get_source_qL_(src_id_qj_)
     {function _ql_(param_qk_){return _f4_(error_qe_,_r_,src_id_qj_);}
      return _np_
              (_no_(document_nX_.getElementById(src_id_qj_.toString()),_oa_),
               _ql_).text;}
    function float32array_qM_(a_qm_)
     {var
       array_qn_=new float32Array_n2_(a_qm_.length-1),
       _qo_=0,
       _qp_=a_qm_.length-1-1|0;
      if(!(_qp_<_qo_))
       {var i_qq_=_qo_;
        for(;;)
         {array_qn_[i_qq_]=a_qm_[i_qq_+1];
          var _qr_=i_qq_+1|0;
          if(_qp_!==i_qq_){var i_qq_=_qr_;continue;}
          break;}}
      return array_qn_;}
    function _qx_(i_qs_,j_qt_){return (i_qs_*4|0)+j_qt_|0;}
    function _qN_(m1_qA_,m2_qy_)
     {return _dn_
              (16,
               function(p_qu_)
                {var
                  _qv_=p_qu_%4|0,
                  _qw_=p_qu_/4|0,
                  _qz_=caml_array_get(m2_qy_,_qx_(3,_qv_)),
                  _qB_=caml_array_get(m1_qA_,_qx_(_qw_,3))*_qz_,
                  _qC_=caml_array_get(m2_qy_,_qx_(2,_qv_)),
                  _qD_=caml_array_get(m1_qA_,_qx_(_qw_,2))*_qC_,
                  _qE_=caml_array_get(m2_qy_,_qx_(1,_qv_)),
                  _qF_=caml_array_get(m1_qA_,_qx_(_qw_,1))*_qE_,
                  _qG_=caml_array_get(m2_qy_,_qx_(0,_qv_));
                 return caml_array_get(m1_qA_,_qx_(_qw_,0))*
                        _qG_+
                        _qF_+
                        _qD_+
                        _qB_;});}
    var line_regexp_qO_=regexp_on_(_l_),couple_regexp_qQ_=regexp_on_(_k_);
    function read_coord_couple_re_(c_qP_)
     {var _qR_=string_match_oo_(couple_regexp_qQ_,c_qP_,0);
      if(_qR_)
       {var _qS_=_dy_(_c7_(matched_group_op_,_qR_[1]),_s_);
        if(_qS_)
         {var _qT_=_qS_[1];
          if(_qT_)
           {var _qU_=_qS_[2];
            if(_qU_)
             {var _qV_=_qU_[1];
              if(_qV_&&!_qU_[2])
               {var v_qW_=_qT_[1],_qX_=caml_int_of_string(_qV_[1]);
                return [0,[0,caml_int_of_string(v_qW_),_qX_]];}}}}
        return 0;}
      return 0;}
    function concat_rd_(a_q0_)
     {var r_qY_=[0,0],_qZ_=0,_q1_=a_q0_.length-1-1|0;
      if(!(_q1_<_qZ_))
       {var i_q2_=_qZ_;
        a:
        for(;;)
         {var len_q3_=0,param_q4_=a_q0_[i_q2_+1],_q7_=r_qY_[1];
          for(;;)
           {if(param_q4_)
             {var
               l_q6_=param_q4_[2],
               _q5_=len_q3_+1|0,
               len_q3_=_q5_,
               param_q4_=l_q6_;
              continue;}
            r_qY_[1]=_q7_+len_q3_|0;
            var _q8_=i_q2_+1|0;
            if(_q1_!==i_q2_){var i_q2_=_q8_;continue a;}
            break;}
          break;}}
      var pos_q9_=[0,-1],l_q__=[0,0],_rc_=r_qY_[1];
      return _dn_
              (_rc_,
               function(param_rb_)
                {for(;;)
                  {var _q$_=l_q__[1];
                   if(_q$_){var t_ra_=_q$_[1];l_q__[1]=_q$_[2];return t_ra_;}
                   pos_q9_[1]+=1;
                   l_q__[1]=caml_array_get(a_q0_,pos_q9_[1]);
                   continue;}});}
    var pi_rI_=4*Math.atan(1);
    function start_vM_(param_rf_)
     {var
       pos_rg_=param_rf_[1],
       norm_ri_=param_rf_[2],
       fps_text_rh_=document_nX_.createTextNode(_I_.toString()),
       _rj_=_no_(document_nX_.getElementById(_H_.toString()),_n0_);
      if(_rj_!=null_m1_)_rj_.appendChild(fps_text_rh_);
      function _rl_(param_rk_){return _f4_(error_qe_,_n_,_g_);}
      var
       canvas_rm_=
        _np_(_no_(document_nX_.getElementById(_g_.toString()),_n9_),_rl_);
      function _rs_(param_ro_)
       {return _f4_
                (_jR_,
                 function(s_rn_)
                  {window_nW_.alert(s_rn_.toString());return _j_(s_rn_);},
                 _o_);}
      try
       {var
         ctx_rp_=canvas_rm_.getContext(_M_.toString()),
         _rq_=
          1-(ctx_rp_==null_m1_?1:0)
           ?ctx_rp_
           :canvas_rm_.getContext(_L_.toString()),
         _rr_=_rq_;}
      catch(_sb_){var _rr_=null_m1_;}
      var
       gl_rt_=_np_(_rr_,_rs_),
       _ru_=get_source_qL_(_G_),
       _rv_=get_source_qL_(_F_),
       vertexShader_rw_=gl_rt_.createShader(gl_rt_.VERTEX_SHADER),
       fragmentShader_rx_=gl_rt_.createShader(gl_rt_.FRAGMENT_SHADER);
      load_shader_qK_(gl_rt_,vertexShader_rw_,_rv_);
      load_shader_qK_(gl_rt_,fragmentShader_rx_,_ru_);
      var prog_ry_=gl_rt_.createProgram();
      gl_rt_.attachShader(prog_ry_,vertexShader_rw_);
      gl_rt_.attachShader(prog_ry_,fragmentShader_rx_);
      gl_rt_.linkProgram(prog_ry_);
      if(!(gl_rt_.getProgramParameter(prog_ry_,gl_rt_.LINK_STATUS)|0))
       error_qe_(_q_);
      gl_rt_.useProgram(prog_ry_);
      check_error_qJ_(gl_rt_);
      debug_qI_(_E_);
      gl_rt_.enable(gl_rt_.DEPTH_TEST);
      gl_rt_.depthFunc(gl_rt_.LESS);
      var
       proj_loc_rz_=gl_rt_.getUniformLocation(prog_ry_,_D_.toString()),
       lightPos_loc_rA_=gl_rt_.getUniformLocation(prog_ry_,_C_.toString()),
       ambientLight_loc_rB_=gl_rt_.getUniformLocation(prog_ry_,_B_.toString()),
       lightPos_rC_=float32array_qM_([-1,3,0,-1]),
       ambientLight_rD_=float32array_qM_([-1,0.1,0.1,0.1]);
      gl_rt_.uniform3fv(lightPos_loc_rA_,lightPos_rC_);
      gl_rt_.uniform3fv(ambientLight_loc_rB_,ambientLight_rD_);
      var pos_attr_rE_=gl_rt_.getAttribLocation(prog_ry_,_A_.toString());
      gl_rt_.enableVertexAttribArray(pos_attr_rE_);
      var array_buffer_rF_=gl_rt_.createBuffer();
      gl_rt_.bindBuffer(gl_rt_.ARRAY_BUFFER,array_buffer_rF_);
      gl_rt_.bufferData(gl_rt_.ARRAY_BUFFER,pos_rg_,gl_rt_.STATIC_DRAW);
      gl_rt_.vertexAttribPointer(pos_attr_rE_,3,gl_rt_.FLOAT,_false_nv_,0,0);
      var norm_attr_rG_=gl_rt_.getAttribLocation(prog_ry_,_z_.toString());
      gl_rt_.enableVertexAttribArray(norm_attr_rG_);
      var norm_buffer_rH_=gl_rt_.createBuffer();
      gl_rt_.bindBuffer(gl_rt_.ARRAY_BUFFER,norm_buffer_rH_);
      gl_rt_.bufferData(gl_rt_.ARRAY_BUFFER,norm_ri_,gl_rt_.STATIC_DRAW);
      gl_rt_.vertexAttribPointer(norm_attr_rG_,3,gl_rt_.FLOAT,_false_nv_,0,0);
      var
       _rJ_=pi_rI_/2,
       mat_rK_=
        _qN_
         ([-1,
           1,
           0,
           0,
           0,
           0,
           Math.cos(_rJ_),
           Math.sin(_rJ_),
           0,
           0,
           -Math.sin(_rJ_),
           Math.cos(_rJ_),
           0,
           0,
           0,
           0,
           1],
          _qN_
           ([-1,0.5,0,0,0,0,0.5,0,0,0,0,0.5,0,0,0,0,1],
            [-1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]));
      check_error_qJ_(gl_rt_);
      debug_qI_(_y_);
      function get_time_rM_(param_rL_)
       {return new date_constr_nF_().getTime();}
      var last_draw_rN_=[0,get_time_rM_(0)],draw_times_rO_=_ec_(0);
      function f_r$_(param_sa_)
       {var _rP_=1*(new date_constr_nF_().getTime()/1000);
        gl_rt_.uniformMatrix4fv
         (proj_loc_rz_,
          _false_nv_,
          float32array_qM_
           (_qN_
             (mat_rK_,
              [-1,
               Math.cos(_rP_),
               0,
               -Math.sin(_rP_),
               0,
               0,
               1,
               0,
               0,
               Math.sin(_rP_),
               0,
               Math.cos(_rP_),
               0,
               0,
               0,
               0,
               1])));
        gl_rt_.clear(gl_rt_.DEPTH_BUFFER_BIT|gl_rt_.COLOR_BUFFER_BIT);
        gl_rt_.drawArrays(gl_rt_.TRIANGLES,0,pos_rg_.length/3|0);
        check_error_qJ_(gl_rt_);
        var now_rQ_=get_time_rM_(0),_rR_=now_rQ_-last_draw_rN_[1];
        if(0===draw_times_rO_[1])
         {var cell_rS_=[];
          caml_update_dummy(cell_rS_,[0,_rR_,cell_rS_]);
          draw_times_rO_[1]=1;
          draw_times_rO_[2]=cell_rS_;}
        else
         {var tail_rT_=draw_times_rO_[2],cell_rU_=[0,_rR_,tail_rT_[2]];
          draw_times_rO_[1]=draw_times_rO_[1]+1|0;
          tail_rT_[2]=cell_rU_;
          draw_times_rO_[2]=cell_rU_;}
        last_draw_rN_[1]=now_rQ_;
        if(50<_eg_(draw_times_rO_))_ef_(draw_times_rO_);
        var _rV_=0,_rW_=_eg_(draw_times_rO_),_r3_=1000;
        if(0===draw_times_rO_[1])
         var _rX_=_rV_;
        else
         {var tail_rY_=draw_times_rO_[2],accu_rZ_=_rV_,cell_r0_=tail_rY_[2];
          for(;;)
           {var _r1_=accu_rZ_+cell_r0_[1];
            if(cell_r0_!==tail_rY_)
             {var _r2_=cell_r0_[2],accu_rZ_=_r1_,cell_r0_=_r2_;continue;}
            var _rX_=_r1_;
            break;}}
        fps_text_rh_.data=_f4_(_jT_,_J_,1/_rX_*_rW_*_r3_).toString();
        var
         match_r4_=task_mG_(0),
         t_r5_=match_r4_[1],
         w_r6_=match_r4_[2],
         _r8_=0.02*1000,
         id_r9_=
          window_nW_.setTimeout
           (caml_js_wrap_callback
             (function(param_r7_){return wakeup_lP_(w_r6_,0);}),
            _r8_);
        on_cancel_mH_
         (t_r5_,function(param_r__){return window_nW_.clearTimeout(id_r9_);});
        return _mI_(t_r5_,f_r$_);}
      return f_r$_(0);}
    window_nW_.onload=
    handler_nU_
     (function(param_v1_)
       {function _sd_(exn_sc_){return _f4_(error_qe_,_K_,_kj_(exn_sc_));}
        try
         {var
           _s$_=0,
           _ta_=0,
           _tb_=0,
           _tc_=0,
           _td_=0,
           _te_=0,
           _tg_=
            function(frame_se_)
             {var
               a_sf_=
                str_array_nD_(frame_se_[4].toString().split(_x_.toString()));
              window_nW_.arr=a_sf_;
              var vertex_sg_=[0,0],norm_sh_=[0,0],face_si_=[0,0],i_sj_=0;
              for(;;)
               {var _sk_=_nt_(array_get_nC_(a_sf_,i_sj_));
                if(_sk_)
                 {var
                   _sl_=
                    string_match_oo_
                     (line_regexp_qO_,new MlWrappedString(_sk_[1]),0);
                  if(_sl_)
                   {var _sm_=_dy_(_c7_(matched_group_op_,_sl_[1]),_w_);
                    if(_sm_)
                     {var _sn_=_sm_[1];
                      if(_sn_)
                       {var _so_=_sn_[1];
                        if(caml_string_notequal(_so_,_v_))
                         if(caml_string_notequal(_so_,_u_))
                          if(caml_string_notequal(_so_,_t_))
                           var _sp_=0;
                          else
                           {var _sq_=_sm_[2];
                            if(_sq_)
                             {var _sr_=_sq_[1];
                              if(_sr_)
                               {var _ss_=_sq_[2];
                                if(_ss_)
                                 {var _st_=_ss_[1];
                                  if(_st_)
                                   {var _su_=_ss_[2];
                                    if(_su_)
                                     {var _sv_=_su_[1];
                                      if(_sv_&&!_su_[2])
                                       {var
                                         _sw_=
                                          [0,
                                           [1,
                                            [0,
                                             caml_float_of_string(_sr_[1]),
                                             caml_float_of_string(_st_[1]),
                                             caml_float_of_string(_sv_[1])]]],
                                         _sp_=1;}
                                      else
                                       var _sp_=0;}
                                    else
                                     var _sp_=0;}
                                  else
                                   var _sp_=0;}
                                else
                                 var _sp_=0;}
                              else
                               var _sp_=0;}
                            else
                             var _sp_=0;}
                         else
                          {var _sx_=_sm_[2];
                           if(_sx_)
                            {var _sy_=_sx_[1];
                             if(_sy_)
                              {var _sz_=_sx_[2];
                               if(_sz_)
                                {var _sA_=_sz_[1];
                                 if(_sA_)
                                  {var _sB_=_sz_[2];
                                   if(_sB_)
                                    {var _sC_=_sB_[1];
                                     if(_sC_&&!_sB_[2])
                                      {var
                                        _sw_=
                                         [0,
                                          [0,
                                           [0,
                                            caml_float_of_string(_sy_[1]),
                                            caml_float_of_string(_sA_[1]),
                                            caml_float_of_string(_sC_[1])]]],
                                        _sp_=1;}
                                     else
                                      var _sp_=0;}
                                   else
                                    var _sp_=0;}
                                 else
                                  var _sp_=0;}
                               else
                                var _sp_=0;}
                             else
                              var _sp_=0;}
                           else
                            var _sp_=0;}
                        else
                         {var _sD_=_sm_[2];
                          if(_sD_)
                           {var _sE_=_sD_[1];
                            if(_sE_)
                             {var _sF_=_sD_[2];
                              if(_sF_)
                               {var _sG_=_sF_[1];
                                if(_sG_)
                                 {var _sH_=_sF_[2];
                                  if(_sH_)
                                   {var _sI_=_sH_[1];
                                    if(_sI_&&!_sH_[2])
                                     {var
                                       _sJ_=
                                        _dy_
                                         (read_coord_couple_re_,
                                          [0,_sE_[1],[0,_sG_[1],[0,_sI_[1],0]]]);
                                      if(_sJ_)
                                       {var _sK_=_sJ_[1];
                                        if(_sK_)
                                         {var _sL_=_sJ_[2];
                                          if(_sL_)
                                           {var _sM_=_sL_[1];
                                            if(_sM_)
                                             {var _sN_=_sL_[2];
                                              if(_sN_)
                                               {var _sO_=_sN_[1];
                                                if(_sO_&&!_sN_[2])
                                                 {var _sw_=[0,[2,[0,_sK_[1],_sM_[1],_sO_[1]]]],_sp_=1,_sP_=0;}
                                                else
                                                 var _sP_=1;}
                                              else
                                               var _sP_=1;}
                                            else
                                             var _sP_=1;}
                                          else
                                           var _sP_=1;}
                                        else
                                         var _sP_=1;}
                                      else
                                       var _sP_=1;
                                      if(_sP_){var _sw_=0,_sp_=1;}}
                                    else
                                     var _sp_=0;}
                                  else
                                   var _sp_=0;}
                                else
                                 var _sp_=0;}
                              else
                               var _sp_=0;}
                            else
                             var _sp_=0;}
                          else
                           var _sp_=0;}}
                      else
                       var _sp_=0;}
                    else
                     var _sp_=0;
                    if(!_sp_)var _sw_=0;}
                  else
                   var _sw_=0;
                  if(_sw_)
                   {var _sQ_=_sw_[1];
                    switch(_sQ_[0])
                     {case 1:
                       var match_sR_=_sQ_[1];
                       norm_sh_[1]=
                       [0,[0,match_sR_[1],match_sR_[2],match_sR_[3]],norm_sh_[1]];
                       break;
                      case 2:
                       var match_sS_=_sQ_[1];
                       face_si_[1]=
                       [0,[0,match_sS_[1],match_sS_[2],match_sS_[3]],face_si_[1]];
                       break;
                      default:
                       var match_sT_=_sQ_[1];
                       vertex_sg_[1]=
                       [0,[0,match_sT_[1],match_sT_[2],match_sT_[3]],vertex_sg_[1]];}}
                  var _sU_=i_sj_+1|0,i_sj_=_sU_;
                  continue;}
                var
                 _sV_=_dp_(_dE_(face_si_[1])),
                 _sW_=_dp_(_dE_(norm_sh_[1])),
                 _sX_=_dp_(_dE_(vertex_sg_[1])),
                 vertex__s8_=
                  _dn_
                   (_sV_.length-1,
                    function(i_sY_)
                     {var
                       _sZ_=caml_array_get(_sV_,i_sY_),
                       match_s0_=caml_array_get(_sX_,_sZ_[1][1]-1|0),
                       match_s1_=caml_array_get(_sX_,_sZ_[2][1]-1|0),
                       match_s2_=caml_array_get(_sX_,_sZ_[3][1]-1|0);
                      return [0,
                              match_s0_[1],
                              [0,
                               match_s0_[2],
                               [0,
                                match_s0_[3],
                                [0,
                                 match_s1_[1],
                                 [0,
                                  match_s1_[2],
                                  [0,
                                   match_s1_[3],
                                   [0,match_s2_[1],[0,match_s2_[2],[0,match_s2_[3],0]]]]]]]]];}),
                 norm__s9_=
                  _dn_
                   (_sV_.length-1,
                    function(i_s3_)
                     {var
                       _s4_=caml_array_get(_sV_,i_s3_),
                       match_s5_=caml_array_get(_sW_,_s4_[1][2]-1|0),
                       match_s6_=caml_array_get(_sW_,_s4_[2][2]-1|0),
                       match_s7_=caml_array_get(_sW_,_s4_[3][2]-1|0);
                      return [0,
                              match_s5_[1],
                              [0,
                               match_s5_[2],
                               [0,
                                match_s5_[3],
                                [0,
                                 match_s6_[1],
                                 [0,
                                  match_s6_[2],
                                  [0,
                                   match_s6_[3],
                                   [0,match_s7_[1],[0,match_s7_[2],[0,match_s7_[3],0]]]]]]]]];}),
                 vertex_s__=float32array_qM_(concat_rd_(vertex__s8_));
                return [0,vertex_s__,float32array_qM_(concat_rd_(norm__s9_))];}},
           headers_tf_=_te_?_te_[1]:0,
           get_args_th_=_tb_?_tb_[1]:0,
           check_headers_ti_=_s$_?_s$_[1]:function(param_tj_,_tk_){return 1;};
          if(_ta_)
           {var form_arg_tl_=_ta_[1];
            if(_tc_)
             {var post_args_tn_=_tc_[1];
              _dF_
               (function(param_tm_)
                 {return _p6_
                          (form_arg_tl_,
                           [0,param_tm_[1],[0,-976970511,param_tm_[2].toString()]]);},
                post_args_tn_);}
            var form_arg_to_=[0,form_arg_tl_];}
          else
           if(_tc_)
            {var
              post_args_tp_=_tc_[1],
              _tq_=_nt_(_nN_(formData_p7_)),
              contents_tr_=
               _tq_?[0,808620462,new (_tq_[1])()]:[0,891486873,[0,0]];
             _dF_
              (function(param_ts_)
                {return _p6_
                         (contents_tr_,
                          [0,param_ts_[1],[0,-976970511,param_ts_[2].toString()]]);},
               post_args_tp_);
             var form_arg_to_=[0,contents_tr_];}
           else
            var form_arg_to_=0;
          if(form_arg_to_)
           {var _tt_=form_arg_to_[1];
            if(_td_)
             var _tu_=[0,_ao_,_td_,126925477];
            else
             {if(891486873<=_tt_[1])
               {var yes_tv_=0,no_tw_=0,param_tx_=_tt_[2][1];
                for(;;)
                 {if(param_tx_)
                   {var
                     l_ty_=param_tx_[2],
                     x_tz_=param_tx_[1],
                     _tA_=781515420<=x_tz_[2][1]?0:1;
                    if(_tA_)
                     {var _tB_=[0,x_tz_,yes_tv_],yes_tv_=_tB_,param_tx_=l_ty_;
                      continue;}
                    var _tC_=[0,x_tz_,no_tw_],no_tw_=_tC_,param_tx_=l_ty_;
                    continue;}
                  var _tD_=_dE_(no_tw_);
                  _dE_(yes_tv_);
                  if(_tD_)
                   {var
                     nine_digits_tF_=
                      function(param_tE_)
                       {return string_of_int_cQ_(math_nJ_.random()*1000000000|0);},
                     _tG_=nine_digits_tF_(0),
                     _tH_=_cH_(_S_,_cH_(nine_digits_tF_(0),_tG_)),
                     _tI_=[0,_am_,[0,_cH_(_an_,_tH_)],[0,164354597,_tH_]];}
                  else
                   var _tI_=_al_;
                  var _tJ_=_tI_;
                  break;}}
              else
               var _tJ_=_ak_;
              var _tu_=_tJ_;}
            var match_tK_=_tu_;}
          else
           var match_tK_=[0,_aj_,_td_,126925477];
          var
           post_encode_tL_=match_tK_[3],
           content_type_tM_=match_tK_[2],
           method__tO_=match_tK_[1],
           _tN_=caml_js_from_byte_string(_f_),
           _ul_=
            function(handle_tP_)
             {var
               res_tQ_=match_result_nE_(handle_tP_),
               _tR_=
                caml_js_to_byte_string
                 (_ns_(array_get_nC_(res_tQ_,1),interrupt_oy_).toLowerCase());
              if
               (caml_string_notequal(_tR_,_aB_)&&
                caml_string_notequal(_tR_,_aA_))
               {if
                 (caml_string_notequal(_tR_,_az_)&&
                  caml_string_notequal(_tR_,_ay_))
                 {if
                   (caml_string_notequal(_tR_,_ax_)&&
                    caml_string_notequal(_tR_,_aw_))
                   {var _tT_=1,_tS_=0;}
                  else
                   var _tS_=1;
                  if(_tS_){var ssl_tU_=1,_tT_=2;}}
                else
                 var _tT_=0;
                switch(_tT_)
                 {case 1:var _tV_=0;break;
                  case 2:var _tV_=1;break;
                  default:var ssl_tU_=0,_tV_=1;}
                if(_tV_)
                 {var
                   path_str_tW_=
                    urldecode_js_string_string_oI_
                     (_ns_(array_get_nC_(res_tQ_,5),interrupt_oy_)),
                   _tY_=
                    function(param_tX_){return caml_js_from_byte_string(_aF_);},
                   _t0_=
                    urldecode_js_string_string_oI_
                     (_ns_(array_get_nC_(res_tQ_,9),_tY_)),
                   _t1_=
                    function(param_tZ_){return caml_js_from_byte_string(_aG_);},
                   _t2_=
                    decode_arguments_js_string_pm_
                     (_ns_(array_get_nC_(res_tQ_,7),_t1_)),
                   _t4_=path_of_path_string_oQ_(path_str_tW_),
                   _t5_=
                    function(param_t3_){return caml_js_from_byte_string(_aH_);},
                   _t6_=
                    caml_js_to_byte_string(_ns_(array_get_nC_(res_tQ_,4),_t5_)),
                   _t7_=
                    caml_string_notequal(_t6_,_aE_)
                     ?caml_int_of_string(_t6_)
                     :ssl_tU_?443:80,
                   url_t8_=
                    [0,
                     urldecode_js_string_string_oI_
                      (_ns_(array_get_nC_(res_tQ_,2),interrupt_oy_)),
                     _t7_,
                     _t4_,
                     path_str_tW_,
                     _t2_,
                     _t0_],
                   _t9_=ssl_tU_?[1,url_t8_]:[0,url_t8_];
                  return [0,_t9_];}}
              throw [0,Not_an_http_protocol_pk_];},
           _um_=
            function(param_uk_)
             {function _ui_(handle_t__)
               {var
                 res_t$_=match_result_nE_(handle_t__),
                 path_str_ua_=
                  urldecode_js_string_string_oI_
                   (_ns_(array_get_nC_(res_t$_,2),interrupt_oy_));
                function _uc_(param_ub_)
                 {return caml_js_from_byte_string(_aI_);}
                var
                 _ue_=
                  caml_js_to_byte_string(_ns_(array_get_nC_(res_t$_,6),_uc_));
                function _uf_(param_ud_)
                 {return caml_js_from_byte_string(_aJ_);}
                var
                 _ug_=
                  decode_arguments_js_string_pm_
                   (_ns_(array_get_nC_(res_t$_,4),_uf_));
                return [0,
                        [2,
                         [0,
                          path_of_path_string_oQ_(path_str_ua_),
                          path_str_ua_,
                          _ug_,
                          _ue_]]];}
              function _uj_(param_uh_){return 0;}
              return _nb_(file_re_pY_.exec(_tN_),_uj_,_ui_);},
           _un_=_nb_(url_re_pn_.exec(_tN_),_um_,_ul_);
          if(_un_)
           {var _uo_=_un_[1];
            switch(_uo_[0])
             {case 0:
               var url_up_=_uo_[1],_uq_=url_up_.slice(),_ur_=url_up_[5];
               _uq_[5]=0;
               var match_us_=[0,string_of_url_pX_([0,_uq_]),_ur_],_ut_=1;
               break;
              case 1:
               var url_uu_=_uo_[1],_uv_=url_uu_.slice(),_uw_=url_uu_[5];
               _uv_[5]=0;
               var match_us_=[0,string_of_url_pX_([1,_uv_]),_uw_],_ut_=1;
               break;
              default:var _ut_=0;}}
          else
           var _ut_=0;
          if(!_ut_)var match_us_=[0,_f_,0];
          var
           url_ux_=match_us_[1],
           _uy_=_cN_(match_us_[2],get_args_th_),
           url_uz_=
            _uy_?_cH_(url_ux_,_cH_(_ai_,encode_arguments_pl_(_uy_))):url_ux_,
           match_uA_=task_mG_(0),
           w_uB_=match_uA_[2],
           res_uC_=match_uA_[1];
          try
           {var _uD_=new XMLHttpRequest(),req_uE_=_uD_;}
          catch(_vP_)
           {try
             {var
               a5f6575ba_uF_=_p9_(0),
               _uG_=new a5f6575ba_uF_(_R_.toString()),
               req_uE_=_uG_;}
            catch(_uN_)
             {try
               {var
                 a64f1392a_uH_=_p9_(0),
                 _uI_=new a64f1392a_uH_(_Q_.toString()),
                 req_uE_=_uI_;}
              catch(_uM_)
               {try
                 {var
                   a30a5da5a_uJ_=_p9_(0),
                   _uK_=new a30a5da5a_uJ_(_P_.toString());}
                catch(_uL_){throw [0,_d_,_O_];}
                var req_uE_=_uK_;}}}
          req_uE_.open(method__tO_.toString(),url_uz_.toString(),_true_nu_);
          if(content_type_tM_)
           req_uE_.setRequestHeader
            (_ah_.toString(),content_type_tM_[1].toString());
          _dF_
           (function(param_uO_)
             {return req_uE_.setRequestHeader
                      (param_uO_[1].toString(),param_uO_[2].toString());},
            headers_tf_);
          var
           headers_uU_=
            function(s_uS_)
             {function _uR_(v_uP_){return [0,new MlWrappedString(v_uP_)];}
              function _uT_(param_uQ_){return 0;}
              return _nb_
                      (req_uE_.getResponseHeader(caml_js_from_byte_string(s_uS_)),
                       _uT_,
                       _uR_);},
           checked_uV_=[0,0],
           do_check_headers_uY_=
            function(param_uX_)
             {var
               _uW_=
                checked_uV_[1]
                 ?0
                 :_f4_(check_headers_ti_,req_uE_.status,headers_uU_)
                   ?0
                   :(wakeup_result_ln_
                      (w_uB_,[1,[0,_qH_,[0,req_uE_.status,headers_uU_]]]),
                     req_uE_.abort(),
                     1);
              _uW_;
              checked_uV_[1]=1;
              return 0;};
          req_uE_.onreadystatechange=
          caml_js_wrap_callback
           (function(param_u3_)
             {switch(req_uE_.readyState)
               {case 2:if(!onIE_nV_)return do_check_headers_uY_(0);break;
                case 3:if(onIE_nV_)return do_check_headers_uY_(0);break;
                case 4:
                 do_check_headers_uY_(0);
                 var
                  _u2_=
                   function(param_u1_)
                    {var _uZ_=_nq_(req_uE_.responseXML);
                     if(_uZ_)
                      {var doc_u0_=_uZ_[1];
                       return _nO_(doc_u0_.documentElement)===null_m1_
                               ?0
                               :[0,doc_u0_];}
                     return 0;};
                 return wakeup_lP_
                         (w_uB_,
                          [0,
                           url_uz_,
                           req_uE_.status,
                           headers_uU_,
                           new MlWrappedString(req_uE_.responseText),
                           _u2_]);
                default:}
              return 0;});
          if(form_arg_to_)
           {var _u4_=form_arg_to_[1];
            if(891486873<=_u4_[1])
             {var l_u5_=_u4_[2];
              if(typeof post_encode_tL_==="number")
               {var _u$_=l_u5_[1];
                req_uE_.send
                 (_nO_
                   (_d5_
                      (_ae_,
                       _dy_
                        (function(param_u6_)
                          {var _u7_=param_u6_[2],_u8_=param_u6_[1];
                           if(781515420<=_u7_[1])
                            {var
                              _u9_=
                               _cH_
                                (_ag_,urlencode_oJ_(0,new MlWrappedString(_u7_[2].name)));
                             return _cH_(urlencode_oJ_(0,_u8_),_u9_);}
                           var
                            _u__=
                             _cH_(_af_,urlencode_oJ_(0,new MlWrappedString(_u7_[2])));
                           return _cH_(urlencode_oJ_(0,_u8_),_u__);},
                         _u$_)).toString
                     ()));}
              else
               {var
                 boundary_va_=post_encode_tL_[2],
                 _vd_=
                  function(data_vb_)
                   {var data_vc_=_nO_(data_vb_.join(_ap_.toString()));
                    return _nr_(req_uE_.sendAsBinary)
                            ?req_uE_.sendAsBinary(data_vc_)
                            :req_uE_.send(data_vc_);},
                 _vf_=l_u5_[1],
                 b_ve_=new array_constructor_nx_(),
                 _vK_=
                  function(param_vg_)
                   {b_ve_.push(_cH_(_T_,_cH_(boundary_va_,_U_)).toString());
                    return b_ve_;};
                _mJ_
                 (_mJ_
                   (iter_s_mU_
                     (function(v_vh_)
                       {b_ve_.push(_cH_(_Y_,_cH_(boundary_va_,_Z_)).toString());
                        var _vi_=v_vh_[2],_vj_=v_vh_[1];
                        if(781515420<=_vi_[1])
                         {var
                           value_vk_=_vi_[2],
                           _vr_=-1041425454,
                           _vs_=
                            function(file_vq_)
                             {var
                               _vn_=_ad_.toString(),
                               _vm_=_ac_.toString(),
                               _vl_=_nt_(value_vk_.name);
                              if(_vl_)
                               var _vo_=_vl_[1];
                              else
                               {var
                                 _vp_=_nt_(value_vk_.fileName),
                                 _vo_=_vp_?_vp_[1]:_j_(_bh_);}
                              b_ve_.push
                               (_cH_(_aa_,_cH_(_vj_,_ab_)).toString(),_vo_,_vm_,_vn_);
                              b_ve_.push(___.toString(),file_vq_,_$_.toString());
                              return return_lS_(0);},
                           _vt_=_nt_(_nN_(_n$_));
                          if(_vt_)
                           {var
                             reader_vu_=new (_vt_[1])(),
                             match_vv_=task_mG_(0),
                             res_vw_=match_vv_[1],
                             w_vA_=match_vv_[2];
                            reader_vu_.onloadend=
                            handler_nU_
                             (function(param_vB_)
                               {if(2===reader_vu_.readyState)
                                 {var
                                   _vx_=reader_vu_.result,
                                   _vy_=
                                    caml_equal(typeof _vx_,_bi_.toString())?_nO_(_vx_):null_m1_,
                                   _vz_=_nq_(_vy_);
                                  if(!_vz_)throw [0,_d_,_bj_];
                                  wakeup_lP_(w_vA_,_vz_[1]);}
                                return _false_nv_;});
                            on_cancel_mH_
                             (res_vw_,function(param_vC_){return reader_vu_.abort();});
                            if(typeof _vr_==="number")
                             if(-550809787===_vr_)
                              reader_vu_.readAsDataURL(value_vk_);
                             else
                              if(936573133<=_vr_)
                               reader_vu_.readAsText(value_vk_);
                              else
                               reader_vu_.readAsBinaryString(value_vk_);
                            else
                             reader_vu_.readAsText(value_vk_,_vr_[2]);
                            var _vD_=res_vw_;}
                          else
                           {var fail_vF_=function(param_vE_){return _j_(_bl_);};
                            if(typeof _vr_==="number")
                             var
                              _vG_=
                               -550809787===_vr_
                                ?_nr_(value_vk_.getAsDataURL)
                                  ?value_vk_.getAsDataURL()
                                  :fail_vF_(0)
                                :936573133<=_vr_
                                  ?_nr_(value_vk_.getAsText)
                                    ?value_vk_.getAsText(_bk_.toString())
                                    :fail_vF_(0)
                                  :_nr_(value_vk_.getAsBinary)
                                    ?value_vk_.getAsBinary()
                                    :fail_vF_(0);
                            else
                             {var
                               e_vH_=_vr_[2],
                               _vG_=
                                _nr_(value_vk_.getAsText)
                                 ?value_vk_.getAsText(e_vH_)
                                 :fail_vF_(0);}
                            var _vD_=return_lS_(_vG_);}
                          return _mI_(_vD_,_vs_);}
                        var value_vJ_=_vi_[2],_vI_=_X_.toString();
                        b_ve_.push
                         (_cH_(_V_,_cH_(_vj_,_W_)).toString(),value_vJ_,_vI_);
                        return return_lS_(0);},
                      _vf_),
                    _vK_),
                  _vd_);}}
            else
             req_uE_.send(_u4_[2]);}
          else
           req_uE_.send(null_m1_);
          on_cancel_mH_(res_uC_,function(param_vL_){return req_uE_.abort();});
          var _vN_=_mI_(_mJ_(res_uC_,_tg_),start_vM_),_vO_=_vN_;}
        catch(_vQ_){var _vO_=fail_mk_(_vQ_);}
        var t_vR_=repr_k$_(_vO_),_vS_=t_vR_[1];
        switch(_vS_[0])
         {case 1:_sd_(_vS_[1]);break;
          case 2:
           var
            sleeper_vU_=_vS_[1],
            res_vT_=temp_mb_(t_vR_),
            data_vW_=current_data_ko_[1];
           add_immutable_waiter_mm_
            (sleeper_vU_,
             function(state_vV_)
              {switch(state_vV_[0])
                {case 0:return fast_connect_lR_(res_vT_,state_vV_);
                 case 1:
                  var exn_vX_=state_vV_[1];
                  current_data_ko_[1]=data_vW_;
                  try
                   {var _vY_=_sd_(exn_vX_),_vZ_=_vY_;}
                  catch(_v0_){var _vZ_=fail_mk_(_v0_);}
                  return connect_lQ_(res_vT_,_vZ_);
                 default:throw [0,_d_,_by_];}});
           break;
          case 3:throw [0,_d_,_bx_];
          default:}
        return _true_nu_;});
    do_at_exit_cZ_(0);
    return;}
  ());